После трёх лет разработки и 19 тестовых выпусков состоялся релиз библиотеки OpenSSL 3.0.0 с реализацией протоколов SSL/TLS и различных алгоритмов шифрования. Новая ветка включает изменения, нарушающие обратную совместимость на уровне API и ABI, но изменения не повлияют на работу большинства приложений, для перевода которых с OpenSSL 1.1.1 достаточно пересборки. Поддержка прошлой ветки OpenSSL 1.1.1 будет осуществляться до сентября 2023 года...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=55760
>>Ранее применявшаяся собственная лицензия OpenSSL была основана на тексте устаревшей лицензии Apache 1.0 и требовала явного упоминания OpenSSL в рекламных материалах при использовании библиотек OpenSSL, а также добавления специального примечания в случае поставки OpenSSL в составе продукта. Подобные требования делали старую лицензию несовместимой с GPL, что создавало трудности при использовании OpenSSL в проектах с лицензией GPL. Для обхода данной несовместимости GPL-проекты вынуждены были применять специфичные лицензионные соглашения, в которых основной текст GPL дополнялся пунктом, явно разрешающим связывание приложения с библиотекой OpenSSL и упоминающим, что требования GPL не распространяется на связывание с OpenSSLЯркий пример того, показывающий, что надо гнать поганой метлой всяких юристуток, которые дpoчят на всякие лицензии и портят жизнь нормальным пацанам. Открыл код - значит позволил пользоваться им другим, вот и всё. А юристутки понапридумывали всякие лицензии, только мозги всем ибyд.
Все так пока ты сам не написал кода или не решил на этом как-то заработать
Пока ты пиявка то все хорошоа, а как станешь донором, то заебешься с себя
сбрасывать этих нахлебников и я так думаю что ОпенСурс это просто код
который дороже моентихировать чем отдать просто так
Чтобы опенсорщик писал хороший код - он должен быть голодный.
Ну ты и маньяк.
Вспомнились ребята с http://hungry.com -- вообще сытый музыкант или художник обычно тоже так себе... голодающий -- это уже тяжко, но так-то брюхо и впрямь энергию от головы оттягивает неслабо.Ср.: "сытое брюхо к учению глухо".
>Для обхода данной несовместимости GPL-проекты вынуждены были применять специфичные лицензионные соглашения, в которых основной текст GPL дополнялся пунктом, явно разрешающим связывание приложения с библиотекой OpenSSL и упоминающим, что требования GPL не распространяется на связывание с OpenSSL.Это не проблема других лицензий же, так ведь, гпльщики?
Когда гпл ворует код из апача и нет возможности вернуть его обратно из-за паразитности гпл, то вы говорите что это проблема апача. Интересно что вы скажите про этот случай. Жду применения шаблона «это другое, понимать надо» и доказательств того, что стрелочка обратно не поворачивается.
> Это не проблема других лицензий же, так ведь, гпльщики?конечно проблема - мы создадим им массу грабель - вплоть до несобираемости нашим единственно-верным компилятором.
И да, очень интересно, а автора ssleay они спросили?
> И да, очень интересно, а автора ssleay они спросили?Спросили всех контрибуторов в OpenSSL, и это вообще-то многомесячный процесс был, ото всех ответы получить.
В лицензии Apache это by design. Если бы использующим эту лицензию это не нравилось, они взяли бы другую, но их, очевидно, всё устраивает.
>В лицензии Apache это by design.В приведённой мною цитате страдали именно гпльщики. Своими оценками поделились семеро, а мнение почему-то не высказали. Мне бы хотелось услышать их мнение почему «это другое», и почему они позасовывали языки кой-куда, вместо того, чтобы объяснить, почему такое возможно с божественной лицензией.
Ты в курсе, что в мире софта GPLесть достойные библиотеки? Я тебе их перечислю: GnuTLS, Libgcrypt, Nettle. Выбирай какая больше нравится и подходит под твои задачи.
Как это оправдало страдания гпльщиков, вынужденных есть кактус, как в приведённой цитате? Дан конкретный пример, и вопрос был почему в этом случае страдания оправданы. Не как этого избежать, а почему это хорошо и «это другое».
Люди, которые ценят свою свободу и чистоту кода не буду пользоваться лицензиями отличными от GPL. Ответ достаточный?
Ничего ты не понимаешь. Это другое. Когда используют код ГПЛ и не раскрывают свой - это воровство. А когда ГПЛ использует чужой код делая непозволительные собственной лицензией действия - это щедрость. Так что раньше, когда проекты гпл использовали опенссл, это опенссл воровал код, но гпл своей доброй волей их прощал.
Вы так говорите, как будто это плохо. Хотя в bsd-like лицензиях черным по белому написано "используйте и унижайте меня как хотите, мне это нравится".
Почему шифры ГОСТ не добавили?
Были PR, зависти в бесконечном кругу "долго ждУТ ревью – ещё дольше ждут исправлений после review – GOTO 10" с экспоненциальным увеличением времени ожидания на каждой итерации.
>В libcrypto реализована концепция подключаемых провайдеров, ... При помощи провайдеров можно добавлять собственные реализации алгоритмов для таких операций как шифрование, расшифровка, формирование ключей, вычисление MAC, создание и проверка цифровых подписей.Если стрибогим кузнечикам надо, сами добавят.
На AES лапу-то поднять стрёмно. Кушайте АНБшной криптографии, не обляпайтесь.
Какое у вас бинарное мышление, "есть крипта не подчиняется товарищу майору, значит она АНБ-шное". По другому мыслить не умеете.
Это вам везде товарищи майоры мерещатся. А тут скорее ситуация, что есть нога кого надо нога, а есть нога людей второго сорта, их интересы как бы и не важны.
> Какое у вас бинарное мышление, "есть крипта не подчиняется товарищу майору, значит она АНБ-шное".Докажите, что оно не АНБ-шное. В случае с зондами от товарища майора - доказательство тривиально.
> В случае с зондами от товарища майора - доказательство тривиально.Что-то вроде Бритвы Мицгола, да?
Алгоритмы ГОСТ добавляются отдельным модулем. Кстати кроме указанного ченжлога в билиотеке есть заментное кол-во улучшений связанных именно с русской криптографией (ну и с китайской тоже)
Шапочку из фольги уже можно сворачивать?
Никогда не стоит.
Простите, ударение на каком слоге?
В данном контексте, "не ст`оит".
Клетка Фарадея вроде получше?
Смотря сколько фольги есть
"русская криптография", "китайская криптография" -- какие ржачные термины)))
Суверенная, я бы сказал.
Осветлённая батюшкой. Теперь криптография в безопасности.
Мне вот интересно -- ляпающие подобное вообще хоть в чём-то _для себя_ разобрались или слепо верят во всё, что в книжке (или на лопате), а чтоб как-то вроде бы как самооправдаться -- пытаются остро шютить?..
Скрепная
Кстати, китайскую, корейскую и японскую криптографию почему-то приняли в OpenSSL как внутренние алгоритмы с доступом через EVP API. А русскую криптографию единственную заставили переписать в виде ENGINE, механизм который вообще-то используется для подключения аппаратных шифроустройств. И использование алгоритмов через ENGINE естественно сложнее, чем просто через EVP API.
Потому что они небезопасны.
Пруфов нет.
Это криптография, солнышко, тут нужны пруфы что они безопасны. Нет алгоритма генерации сбоксов - нет пруфов. Нет пруфов - нет безопасности. Повторяю, они небезопасны.
Алгоритм существует. "Получить у уполномоченной организации".
Под пописку о неразгашении гостайны.
Вся симметричная криптография - это security through obscurity.
Вся ассиметричная основана на недоказанных предположениях.
> Это криптография, солнышко, тут нужны пруфы что они безопасны.Вы готовы принимать такие доказательства на веру? (что неспособны их проверить -- и так вижу)
это там где для с-бокса, который должен быть рандомным, удалось написать код который его генерит, причем код в 4 раза меньше самого с-бокса, БУГАГА очень "безопасное" шиврование да!
А теперь докажите, что это влияет на стойкость.
Я читал такое объяснение ситуации: некоторые варианты конфигурации могут быть слабее остальных. Никто не доказал, что выбранные значения слабые. Случайные же значения могут быть более слабыми, чем задумано.
А в AES S-box тоже не рандомный, но никого это почему-то не беспокоит
AES S-box сделан в соответствии с принципом "У меня в рукаве ничего нет".
Все так про свои алгоритмы говорят
"QUIC is on our minds, but it will not be included in the OpenSSL 3.0 release."Значит пока в топку, ждём дальше.
https://ru.wikipedia.org/wiki/QUIC
Почему сетевой протокол должен быть добавлен в библиотеку криптографии?
Читайте:https://www.openssl.org/blog/blog/2020/02/17/QUIC-and-OpenSSL/
А почему жду ?
Потому что nginx заявили что в основную ветку добавят поддержку quic только когда подержка quic будет в openssl.
> Значит пока в топку, ждём дальше.Не стоит. QUIC - это местечковый гугловый продукт, все, кто не гугл, используют его на свой страх и риск. Гугловцы допиливают его очень активно, и стандартизированные версии быстро устаревают. Поэтому, если нужен QUIC, кроме BoringSSL вариантов нет.
> кроме BoringSSL вариантов нет.Сейчас да, но через пару лет (год на пока openssl разродится и год пока nginx интегрирует)надеюсь все болячки протокола уже победят.
Так что я очень неспешно жду :)
К тому времени гугловцы QUIC уже задепрекейтят и забросят, и сделают какой-нибудь FAST (HTTP/7) поверх DCCP :)
Помниться где то читал, что это будующий http 3 или 4, сколько их там уже. Или я его с чем то путаю?
да, http/3=quic
Конечно, чего уж там, все основные CDN поддерживают (половина трафика интернет). Конечно, фигня...
Теперь старым играм и эту либу подкладывать придётся. Ну, чо, не в первый раз.
Это что за игры которые либо нельзя пересобрать, либо не таскают с собой все библиотеки?
Закрыть, запретить и сделать EEE этому ненужному ненужно.
Такая масштабная поломка API требует слоя совместимости со старыми программами. Чтобы можно было слинковать со слоем совместимости, который будет оборачивать новый API, и старые программы получили security-апдейты.
Под старыми программами вы подразумеваете программы которые не развиваются (иначе у них бы не было проблем перейти на новую версию openssl). Но такие программы сами по себе не получают security-апдейты, зачем им апдейты openssl? Другими словами, они априори дырявое гнильё, версией openssl это не вылечить.
Весь софт - гнильё, недырявых программ и библиотек не бывает, включая openssl новейшей версии. Да и вообще valar morghulis, улавливаешь?
Осуждаю за сломанный abi. Если до 23 года не придумают какой-нибудь враппер, который позволит работать десктопным приложениям без перекомпиляции, это будет фейл.
Перетопчутся на libssl1.1.dll
Позволь поинтересоваться, ты в мире опенсорса или как? Неизменное ABI это для клозетсорщиков. Перекомпиляция при открытых исходниках это нормальное явление.
Никаких врапперов не будет, и это правильно. И не вижу с чем у вас проблема - что за непонятное желание обновить OpenSSL не обновляя софт его использующий? Хотите сидеть на гнилье - сидите на гнилье. Хотите свежего - будет свежий софт со свежим OpenSSL. ABI надо чуть ли не специально ломать, чтобы усложнить жизнь таким вот некрофилам. А то вы же ещё и issue пишете со своими странными хотелками, время сообщества тратите.
Этот фанат Xiaomi/Huawei/Oppo/OnePlus/ZTE/realme порвался, уносите.
Проблема в том, что некоторый софт обновится, а некоторый нет. А DLL hell никак не решается
> что за непонятное желание обновить OpenSSL не обновляя софт его использующий?Деточка, я ж возьму сейчас и напишу Вашему работодателю, из сети которого Вы в рабочее время пишете, что пациент профнепригоден и даже сам этого не понимает -- конкретно от крипто (и в целом сколь-нибудь значимых данных) и долгоиграющего кода (и сколь-нибудь важных систем) его стоит держать подальше.
Потому что один дятел, пущенный со своей установкой "всё ломать, так будет лучше" -- способен натворить немалых бед целой команде нормальных людей, если не поймать на горячем и не выпороть.
Может, сперва хоть про Даннинга-Крюгера почитаете? А то и попытаетесь понять, что _всё_, благодаря чему вообще существуете -- построено взрослыми людьми с ровно противоположным намерением: чтоб работало, а не чтоб "обмазаться свежим"?..
> Новая ветка включает изменения, нарушающие обратную совместимость на уровне API и ABIЭто реально ВСЁ что она содержит!
> но изменения не повлияют на работу большинства приложений, для перевода которых с OpenSSL 1.1.1 достаточно пересборки.
Ага!
https://build.opensuse.org/staging_workflows/openSUSE:Factory (зарегиться для OBS на SuSE нужно)
Staging:Gcc7 openssl-3
Там дохренища несобранных приложений (пока не соберётся (красный цвет) кол-во не собравшихся приложений будет не полным).
Попробуйте выкинуть доистрический компилятор для начала.
> Попробуйте выкинуть доистрический компилятор для начала.Деточка, опять же с этим сперва к своему работодателю (можно непосредственному начальнику) -- для начала посмотрев версию gcc в каком-нить centos7. Вот _там_ -- нет, не доисторическая, а по меркам эксплуатационщиков всего лишь почти вчерашняя.
Это не отменяет того, что актуальный софт зачастую не поддерживается доисторическими компиляторами и в лучшем случае кое-как собирается. А вот хамить не обязательно, я тоже могу тебе поводить кое-чем по губам, да вот тебе не понравится, ага?
*sigh*Написал.
PS: в смысле в яндекс написал, посоветовавшись со старым приятелем вдобавок.
gcc-10, Gentoo.
В системе порядка 2700 программ. Из них порядка 130 - требуют openssl.
Переход на версию 3.0.0 был остановлен после достижения 15-ти пакетов, сборка которых обломалась с сообщением "Deprecated in version >= 3.0.0".
Так что версия 3+ ещё не готова к повсеместному внедрению не потому, что OpenSSL 3.0.0 такой кривой-косой или компилятор тупой, а потому что некоторые прикладные программы завязаны на особенности ветки OpenSSL версии 1.1.1. Т.е. без переделывания самих прикладных программ забуксуем на ветке 1.1.1.
А вот в LibreSSL такой фигни нет...
Кто про что, а меня интересные баги интересуют. На этот раз приглянулось:static int dh_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)
{
return ossl_ffc_params_cmp(&a->pkey.dh->params, &a->pkey.dh->params,
a->ameth != &ossl_dhx_asn1_meth);
}Предупреждение PVS-Studio: V751 Parameter 'b' is not used inside function body. dh_ameth.c 312
Классика :) https://pvs-studio.com/ru/blog/posts/cpp/0509/
> return ossl_ffc_params_cmp(&a->pkey.dh->params, &a->pkey.dh->params,эпоха копипастеров :-( это вот насколько ж надо не уметь пользоваться клавиатурой, чтобы тут было быстрее (и неправильно) скопировать чем вручную набрать?
вряд ли такой ляп можно внести руками.
Это определяется как warning обычным компилятором, для этого проприетарный анализатор который рекламируют спамом и враньём, и который на деле недалеко ушёл от тех же варнингов, а до взрослых анализаторов типа cppcheck ему вообще как до китая раком, для этого не нужен.
Я сообщений про PVS-Studio за последние 12 месяцев видел, даже не помню сколько, но точно меньше 10 штук. Не тянет на спам.Потока вранья от Андрея тоже не вижу.
И может потрудитесь дать ссылку на какое-нибудь сравнение анализаторов, которое доказывает, что "до взрослых анализаторов типа cppcheck ему вообще как до китая раком" ?
А то как-то балабольством попахивает, аж 3 раза.
> Я сообщений про PVS-Studio за последние 12 месяцев видел, даже не помню сколько, но точно меньше 10 штук. Не тянет на спам.Вы наверное профильных ресурсов вовсе не читаете. Так-то моя бабушка тоже не видела.
Ну ради интереса, посчитайте сколько Andrey2008 за последний год настрочил хотя бы на Хабре, удивитесь. Открою секрет - 43 статьи, всё о своей поделке. Это не считая LOR где у него уже 5-й, кажется, аккаунт, при том что предыдущие именно за спам и были забанены (например https://www.linux.org.ru/people/Andrey_Karpov_2009/profile) и других ресурсов. И это только один человек. Даже если бы они все заткнулись, им всё равно никогда не простят то что творилось несколько лет назад - паразитирование на СПО, попытки рекламироваться в чужом коде и совсем уж зашквар, откровенную спамную рассылку на email:
> Perhaps, it would be of interest to you, as a member of GitHub community,
> that there is now a possibility to use a free license for PVS-Studio.
>
> PVS-Studio is a powerful static source code analysis solution for bug
> detection in C, C++, and C# projects. It works in Windows and Linux
> environment....
> Best regards, PVS-Studio team
Спасибо за объяснение. Да, рассылка на спам пожалуй потянет. А на ЛОРе же вроде Андрей раньше спамил, а потом перестал, встал на путь исправления так сказать? Или нет, просто не очень слежу? А публикации на Хабре где были, на своём канале? Если да, то все коммерческие компании свои каналы на Хабре и других площадках как раз для саморекламы и используют, это обычная практика, я бы не назвал это спамом если Хабр не пихает те статьи в ленту всё время.А про враньё Андрея и низкий уровень PVS-Studio относительно cppcheck и других есть что-то? Как-то хочется верить в хорошее в людях.
Залогинься, Андрей. Уж лучше оправдывайся чем из-под анонима себя пытаться выгородить, выглядит как детский сад.
> а до взрослых анализаторов типа cppcheckДеточка, сообщить миру "хочу на мороз" можно проще и прямее.
И да, всякому хамству есть мера. Тем более, повторюсь, прям в рабочее время из AS208722.
> Это определяется как warning обычным компиляторомХочется внести ясность. Судя по комментариям многие подумали, что анализатор PVS-Studio предупреждает про неиспользуемый аргумент функции. Это не совсем так. Вернее, это так, но анализатор действует более умно, чем большинство линтеров или компиляторов.
Просто ругаться на неиспользуемые аргументы - плохая идея. Будет очень много ложных срабатываний, и именно поэтому многие программисты не смотрят (отключают) эти предупреждения компиляторов/анализаторов.
В анализаторе реализуется некая эмпирическая "магия". PVS-Studio опирается на то, что есть однотипные аргументы, и при этом некоторые из них не используются, в то время как некоторые используются несколько раз. При этом действует ещё ряд дополнительных исключений из правила. Например, диагностика не сработает, если число неиспользуемых аргументов больше двух.
Всё это позволяет диагностике V751 выдавать мало ложных срабатываний, что выгодно отличает инструмент от аналогов - https://pvs-studio.com/ru/blog/posts/0802/ . Собственно, при разработке PVS-Studio не реализуются правила, если невозможно их сделать лучше, чем у компиляторов. Благодаря описанной диагностике, удаётся находить вот такие интересные ошибки - https://pvs-studio.com/ru/blog/examples/v751/ .
P.S. В анализаторе PVS-Studio есть и "тупой" вариант этой диагностики - V2537 - https://pvs-studio.com/ru/docs/warnings/v2537/ . Она разработана для проверки соответствия кода программы стандарту MISRA C и MISRA C++. Но это особенный случай, и по умолчанию эта диагностика отключена, как и все остальные диагностики, относящиеся к MISRA.
>> Реализован полноценный клиент для протоколов HTTP и HTTPS, поддерживающий методы GET и POSTКто-то может объяснить что это и зачем? А метод PUT и другие?
> Реализован полноценный клиент для протоколов HTTP и HTTPS, поддерживающий методы GET и POSTОй. Мелькание в заголовках с очередной найденной дырой в реализации этого клиента в ближайшие пять лет им обеспечено. План был именно в этом?
CPU: AMD Ryzen 4600H
Тест: https://openwrt.org/docs/guide-user/perf_and_log/benchmark.o...
Выводы: AES-192 и AES-256 ускорились в 6 раз благодаря переходу на OpenSSL версии 3.0.0.Итог: откатил до версии 1.1.1l, так как у минимум десятка программ ломается компиляции из-за ошибок, которые "Deprecaced in OpenSSL >=3.0.0".
с AES-128 та же история - примерно в 6 раз ускорилась операция.Как я понял - в ветке 3.0.0+ задействованы оптимизации под фичи новых процессоров. Именно поэтому операции расчёта AES так ускорились.