Издање ОпенССЛ 3.0.0 криптографске библиотеке

Након три године развоја и 19 тестних издања, библиотека ОпенССЛ 3.0.0 је пуштена у продају са имплементацијом ССЛ/ТЛС протокола и различитих алгоритама за шифровање. Нова грана укључује промене које нарушавају компатибилност уназад на нивоу АПИ-ја и АБИ-ја, али промене неће утицати на рад већине апликација које захтевају реконструкцију да би мигрирали са ОпенССЛ 1.1.1. Претходна грана ОпенССЛ 1.1.1 биће подржана до септембра 2023.

Значајна промена у броју верзије је због преласка на традиционално нумерисање „Мајор.Мање.Закрпа”. Прва цифра (Мајор) у броју верзије ће се сада променити само ако је компатибилност нарушена на нивоу АПИ/АБИ, а друга (Мала) ће се променити када се функционалност повећа без промене АПИ/АБИ. Исправна ажурирања ће бити испоручена са променом треће цифре (закрпа). Број 3.0.0 одмах после 1.1.1 је изабран да би се избегла преклапања са тренутно у развоју ФИПС модул за ОпенССЛ, за који је коришћена 2.к нумерација.

Друга важна промена за пројекат је прелазак са двоструке лиценце (ОпенССЛ и ССЛеаи) на Апацхе 2.0 лиценцу. Претходна власничка ОпенССЛ лиценца је била заснована на тексту старе Апацхе 1.0 лиценце и захтевала је експлицитно помињање ОпенССЛ-а у маркетиншким материјалима када се користе ОпенССЛ библиотеке, као и посебно обавештење ако је ОпенССЛ обезбеђен као део производа. Ови захтеви су учинили да стара лиценца није компатибилна са ГПЛ-ом, што је отежавало коришћење ОпенССЛ-а у пројектима са ГПЛ лиценцом. Да би се заобишла ова некомпатибилност, ГПЛ пројекти су били приморани да користе посебне уговоре о лиценци у којима је главни текст ГПЛ-а допуњен клаузулом која је експлицитно дозвољавала да се апликација повеже са ОпенССЛ библиотеком и помиње да захтеви ГПЛ-а нису применити на повезивање са ОпенССЛ-ом.

У поређењу са ОпенССЛ 1.1.1 граном, ОпенССЛ 3.0.0 је додао више од 7500 промена које је допринело 350 програмера. Главне иновације ОпенССЛ 3.0.0:

  • Предложен је нови ФИПС модул, укључујући имплементацију криптографских алгоритама који су у складу са сигурносним стандардом ФИПС 140-2 (процес сертификације за модул треба да почне овог месеца, а сертификација ФИПС 140-2 се очекује следеће године). Нови модул је много лакши за коришћење и повезивање са многим апликацијама неће бити теже од промене конфигурационе датотеке. Подразумевано, ФИПС модул је онемогућен и захтева да се омогући опција енабле-фипс.
  • либцрипто имплементира концепт плуггабле провајдера, који је заменио концепт мотора (АПИ ЕНГИНЕ је застарео). Уз помоћ провајдера, можете додати сопствене имплементације алгоритама за такве операције као што су шифровање, дешифровање, генерисање кључева, израчунавање МАЦ-а, креирање и верификација дигиталних потписа. Могуће је и повезати нове и креирати алтернативне имплементације већ подржаних алгоритама (подразумевано, провајдер уграђен у ОпенССЛ се сада користи за сваки алгоритам).
  • Додата подршка за протокол за управљање сертификатима (РФЦ 4210), који се може користити за тражење сертификата од ЦА сервера, ажурирање сертификата и опозив сертификата. Рад са ЦМП-ом се обавља помоћу новог опенссл-цмп услужног програма, који такође подржава ЦРМФ формат (РФЦ 4211) и слање захтева преко ХТТП/ХТТПС-а (РФЦ 6712).
  • Имплементиран је пуноправни клијент за ХТТП и ХТТПС протоколе, који подржава методе ГЕТ и ПОСТ, преусмеравање захтева, рад преко проксија, АСН.1 кодирање и обраду истека времена.
  • Додан је нови ЕВП_МАЦ (Мессаге Аутхентицатион Цоде АПИ) да би се олакшало додавање нових имплементација лажних уметања.
  • Предлаже се нови софтверски интерфејс за генерисање кључева - ЕВП_КДФ (Кеи Дериватион Фунцтион АПИ), који поједностављује додавање нових имплементација КДФ и ПРФ. Стари ЕВП_ПКЕИ АПИ, преко којег су били доступни алгоритми сцрипт, ТЛС1 ПРФ и ХКДФ, редизајниран је у облику слоја имплементираног на врху ЕВП_КДФ и ЕВП_МАЦ АПИ-ја.
  • Имплементација ТЛС протокола пружа могућност коришћења ТЛС клијента и сервера уграђених у Линук кернел ради убрзања операција. Да бисте омогућили имплементацију ТЛС-а коју обезбеђује Линук кернел, морате омогућити опцију „ССЛ_ОП_ЕНАБЛЕ_КТЛС“ или поставку „енабле-ктлс“.
  • Додата подршка за нове алгоритме:
    • Алгоритми за генерисање кључева (КДФ) су „СИНГЛЕ СТЕП“ и „ССХ“.
    • Симулирани алгоритми уметања (МАЦ) су „ГМАЦ“ и „КМАЦ“.
    • Алгоритам за енкапсулацију кључа РСА (КЕМ) „РСАСВЕ“.
    • Алгоритам шифровања "АЕС-СИВ" (РФЦ-8452).
    • Додати позиви ЕВП АПИ-ју са подршком за инверзне шифре користећи АЕС алгоритам за шифровање кључева (Кеи Врап): „АЕС-128-ВРАП-ИНВ“, „АЕС-192-ВРАП-ИНВ“, „АЕС-256-ВРАП- ИНВ“ , „АЕС-128-ВРАП-ПАД-ИНВ“, „АЕС-192-ВРАП-ПАД-ИНВ“ и „АЕС-256-ВРАП-ПАД-ИНВ“.
    • Додата подршка за алгоритме позајмљивања шифрованог текста (ЦТС) за ЕВП АПИ: „АЕС-128-ЦБЦ-ЦТС“, „АЕС-192-ЦБЦ-ЦТС“, „АЕС-256-ЦБЦ-ЦТС“, „ЦАМЕЛЛИА-128-ЦБЦ -ЦТС”“, „ЦАМЕЛЛИА-192-ЦБЦ-ЦТС“ и „ЦАМЕЛЛИА-256-ЦБЦ-ЦТС“.
    • Додата подршка за ЦАдЕС-БЕС дигиталне потписе (РФЦ 5126).
    • АЕС_ГЦМ имплементира параметар АутхЕнвелопедДата (РФЦ 5083) да би омогућио шифровање и дешифровање порука аутентификованих и шифрованих коришћењем АЕС ГЦМ режима.
  • Функције ПКЦС7_гет_оцтет_стринг и ПКЦС7_типе_ис_отхер су додате јавном АПИ-ју.
  • ПКЦС#12 АПИ замењује подразумеване алгоритме који се користе у функцији ПКЦС12_цреате() са ПБКДФ2 и АЕС, и користи СХА-256 алгоритам за израчунавање МАЦ-а. Да бисте вратили претходно понашање, обезбеђена је опција "-легаци". Додат је велики број нових проширених позива у ПКЦС12_*_ек, ПКЦС5_*_ек и ПКЦС8_*_ек, као што су ПКЦС12_адд_кеи_ек().ПКЦС12_цреате_ек() и ПКЦС12_децрипт_скеи_ек().
  • За Виндовс платформу, додата је подршка за синхронизацију нити помоћу механизма СРВЛоцк.
  • Додан је нови АПИ за праћење, омогућен преко параметра енабле-траце.
  • Опсег кључева подржаних у функцијама ЕВП_ПКЕИ_публиц_цхецк() и ЕВП_ПКЕИ_парам_цхецк() је проширен: РСА, ДСА, ЕД25519, Кс25519, ЕД448 и Кс448.
  • Подсистем РАНД_ДРБГ је уклоњен, замењен ЕВП_РАНД АПИ-јем. Функције ФИПС_моде() и ФИПС_моде_сет() су уклоњене.
  • Значајан део АПИ-ја је застарео – коришћење застарелих позива у коду пројекта ће резултирати упозорењима током компилације. Укључујући АПИ-је ниског нивоа који су везани за одређене имплементације алгоритама (на пример, АЕС_сет_енцрипт_кеи и АЕС_енцрипт) су званично проглашени застарелим. Званична подршка у ОпенССЛ 3.0.0 је сада обезбеђена само за ЕВП АПИ-је високог нивоа који су апстраховани од појединачних типова алгоритама (овај АПИ укључује, на пример, функције ЕВП_ЕнцриптИнит_ек, ЕВП_ЕнцриптУпдате и ЕВП_ЕнцриптФинал). Застарели АПИ-ји ће бити уклоњени у једном од наредних великих издања. Имплементације старих алгоритама као што су МД2 и ДЕС, доступни преко ЕВП АПИ-ја, премештене су у посебан „легаци“ модул, који је подразумевано онемогућен.
  • Документација и тестни пакет су значајно проширени. У поређењу са граном 1.1.1, обим документације је повећан за 94%, а величина кода тестног пакета је повећана за 54%.

Извор: опеннет.ру

Додај коментар