LINUX.ORG.RU

OpenBSD производит массовый аудит и переработку OpenSSL — libreSSL

 , , , ,


1

4

В свете недавней очень серьёзной уязвимости Heartbleed протокола Heartbeat в сторонней библиотеке OpenSSL, разработчики OpenBSD решили окончательно и бесповоротно переписать всю библиотеку SSL, удалив груду разных кодов совместимости и поддержки несуществующих архитектур (например, big-endian i386/amd64), сохранив лишь API-совместимость с upstream OpenSSL.

Данное начинание некоторые временно называли OpenOpenSSL (т.к. оригинальный OpenSSL разрабатывается вне OpenBSD), но OpenBSD Foundation теперь объявило официальное название — «LibreSSL (the OpenBSD fork of OpenSSL)». Название также можно воспринимать как «lib-re-ssl» — переработка библиотеки ssl.

Что именно принудило проект OpenBSD отказаться от какого-либо сотрудничества с OpenSSL в будущем? Разработчик tedu@openbsd решил описать историю нового libressl на свежую память:

  • Протокол Heartbeat никто до сих пор не использует, однако он был всегда включён с момента поддержки в OpenSSL пару лет назад, и его нельзя было выключить без перекомпиляции с OPENSSL_NO_HEARTBEATS. (Поддержка теперь была полностью удалена из OpenBSD libressl.)
  • Предполагалось, что для избежания Heartbleed на OpenBSD достаточно будет установить опцию J в malloc.conf. Однако разработчики OpenSSL специально позаботились и сделали это невозможным, и поэтому даже на OpenBSD необходимо пересобирать всю библиотеку для устранения серьёзной уязвимости Heartbleed (в 5.3, 5.4 и 5.5, OpenSSL 1.0.0f в 5.2 и ранее не уязвим).
  • В процессе тестирования опции J с OpenSSL была обнаружена старинная ошибка в OpenSSL, о которой уже несколько лет было известно разработчикам OpenSSL, и даже имелось очень простое исправление. Однако разработчики OpenSSL до сих пор не приняли это к сведению. Командам OpenBSD, FreeBSD и Debian пришлось исправлять ошибку без какой-либо помощи от OpenSSL. Пару недель спустя, в upstream CVE-2010-5298 до сих пор исправить не удосужились.

Так как сотрудничество с таким upstream нереально и в дальнейшем не предполагается, было принято решение улучшить читаемость всего кода в соответствии с style(9) — KNF, а также удалить весь неиспользуемый код для упрощения аудита. В будущем планируется выпуск портативной версии, после периода стабилизации.

>>> http://BXR.SU/OpenBSD/lib/libssl/src/ssl/



Проверено: fallout4all ()

Заодно и ГОСТ выкинули, оставив только AES:

Removal of most (all?) backend engines, some of which didn’t even have appropriate licensing

Так что я бы ещё призадумался.

Lothlorien ★★★ ()
Последнее исправление: Lothlorien (всего исправлений: 1)
Ответ на: комментарий от Lothlorien

Re: ГОСТ

В рассылке об этом было. ГОСТ выкинули исключительно из-за того, что он всё равно по умолчанию не использовался в OpenBSD по техническим причинам.

http://marc.info/?l=openbsd-tech&m=139759834003004&w=2

No, I have no objections against GOST and it is not a political
decision. But the GOST engine was not even compiled on OpenBSD and we
have OPENSSL_NO_DYNAMIC_ENGINE defined by default. It was just
sitting in our source tree.

Так что, если кому нужно, и не лень сделать, чтобы всё работало пучком, то обещают вернуть без отлагательств.

cnst ()

поддержки несуществующий архитектур (например, big-endian i386/amd64)

Сначала шаман, теперь этот товарищ.. Ну и проверяльщики.

И много там несуществующий архитектур?

sT331h0rs3 ★★★★★ ()

я так понял, все говорит о том, что OpenSSL продались, и о уязвимости было известно?

Lincor ()

Вся политика безопасности в OpenBSD - чистой воды PR!

katya_mama ()
Ответ на: комментарий от sT331h0rs3

Прекращена поддержка устаревших и несущественных для проекта OpenBSD платформ, в том числе Mac OS, NetWare, OS/2 и VMS, прекращена поддержка big-endian для i386 и amd64 (они всегда little-endian).

anonymous ()
Ответ на: комментарий от anonymous

Надо отметить, что поддержку прочих ОСей они выпилили временно:

Multi OS support will happen once we have

  • Flensed, refactored, rewritten, and fixed enough of the code so we have stable baseline that we trust and can be maintained/improved.
  • The right Portability team in place.
  • A Stable Commitment of Funding to support an increased development and porting effort.
anonymous ()
Ответ на: комментарий от katya_mama

Вся политика безопасности в OpenBSD - чистой воды PR!

Правильно, а то лицензии не продаются, приходится деньги на поборы энергокомпаний с протянутой рукой собирать.

B ()
Ответ на: комментарий от anonymous

Пользуюсь GOST'ом

Заодно и ГОСТ выкинули, оставив только AES:

А вы им пользуетесь?

К сожалению или к счастью, но пользуюсь.

Camel ★★★★★ ()

Годно! Даже если случится маловероятное и сабж «не взлетит», то патчи всё-равно нужно издавать отдельной книгой, которая несомненно станет бестселлером.

Macil ★★★★★ ()

не «портативной», а «портабельной» (или «портируемой»?)

aim1159 ★★★★★ ()

Мне кажется, что библиотеки шифрования типа ssl должны быть под лицензией гпл, а не бсд. Чтобы если кто-то удосужится в популярном софте в тот-же libressl добавить своих закладок и перекомпилять, то можно было в юридическом поле запросить открытия кодов закладок)

ppy ★★ ()
Ответ на: комментарий от ppy

Чтобы если кто-то удосужится в популярном софте в тот-же libressl добавить своих закладок и перекомпилять, то можно было в юридическом поле запросить открытия кодов закладок)

Если это открытый продукт, то код и так есть, а если проприетарный, то открытие библиотеки ничего не даст, т.к. в проприетарный продукт можно закладки куда угодно и в любом количестве напихать.

Loki13 ★★★★★ ()
Ответ на: комментарий от katya_mama

Ага-ага! Именно поэтому все пользуются openssh и не жужжат ;-)

black_13 ()
Ответ на: комментарий от katya_mama

Вся политика безопасности в OpenBSD - чистой воды PR!

Ну не совсем PR. Они все-таки стараются придерживаться политики минимализма, и небезуспешно, надо признать. Другое дело, насколько все это искренне с их стороны-это конечно вопрос.

ChAnton ()
Ответ на: комментарий от aim1159

Слова «портабельный» в русском языке нет. «Портативный» - переносной, небольшой по размерам, удобный для ношения при себе. В данном случае же, речь вообще идет о «портируемой» версии, то есть, после окончательного выкидывания хлама и замены опасных функций, будет добавляться поддержка других платформ.

anonymous ()
Ответ на: комментарий от Lincor

я так понял, все говорит о том, что OpenSSL продались, и о >>уязвимости было известно?

Очень может быть что именно так и есть. Точнее сказать, обычно это именно так и бывает на деле. Возможно что openssl-это даже подразделение АНБ.

ChAnton ()

Суровые мужики. Они, наверное, рыбку со своего логотипа каждый день на завтрак кушают.

h4tr3d ★★★★ ()
Ответ на: комментарий от anonymous

Слова «портабельный» в русском языке нет.

в русском языке «нет» огромной горы устоявшихся технических терминов. Что теперь, их не использовать?

arkhnchul ★★ ()
Ответ на: комментарий от Loki13

Если это bsd то кода как бы нет, поскольку его можно закрыть в любой момент. ppy именно об этом говорит.

zloelamo ★★★ ()
Ответ на: комментарий от Lothlorien

Заодно и ГОСТ выкинули

Это в связи с санкциями против России?

anonymous ()
Ответ на: комментарий от zloelamo

Если это bsd то кода как бы нет, поскольку его можно закрыть в любой момент. ppy именно об этом говорит.

Я имел ввиду, что если библиотека открытая будет использоваться проприетарщиной(например LGPL), то легче от этого не будет, т.к. если у тебя есть закрытый софт где ты хозяин и бох, то тебе нет смысла дыры(технологические отверстия конечно же) в библиотеку выносить.

Loki13 ★★★★★ ()
Ответ на: комментарий от arkhnchul

в русском языке есть слово «портируемый». если для вас сленговое «портабельный» является техническим термином, то подозреваю, что вам надо уроки учить, а не на лоре сидеть.

anonymous ()
Ответ на: комментарий от arkhnchul

Во-первых, при наличии совершенно вменяемого русского аналога - таки да, не использовать. Ни один из «канализаторов-портабелизаторов» не смог ни разу привести аргумент против использования слова «портативный», в то время как оно отлично описывает суть такого рода программ. Во-вторых, «портабельный» пришло к нам с форумов, где юные компьютерные гении «портабелизируют софт» (читай «бездумно закатывают все, что видят, в Thinstall»), пусть бы там и оставалось. В третьих (субъективный аргумент), слово «портабельный» лично у меня созвучно с не менее дурацким словом «ебибельный».

На досуге очень советую прочитать эту книгу. Когда я её читал, то готов был подписаться буквально под каждой строчкой. Свой язык нужно уважать, и не тащить в него всякую каку. Иначе, мы с вами в один прекрасный день обнаружим, что вовсю шпарим на рунглише.

anonymous ()
Ответ на: комментарий от anonymous

Обнаружил в своём сообщении лишние запятые, но исправить уже не могу. С избыточностью запятых у меня проблемы, борюсь с этим.

anonymous ()

Наглядный пример. «Пинговать». Одним понятным словом иначе и не скажешь. Нет вот в нашем языке родного термина. А вот заменить «роутер» на «маршрутизатор» вполне можно, понятность не теряется. Да, само слово «маршрут» не исконно русское, но оно словарное.

anonymous ()
Ответ на: комментарий от anonymous

С чего бы это «портабельный» вдруг стал аналогом «портируемого»? Тут есть вполне ощутимая разница. Портируемая программа не обязательно будет «портабельной». «Портабельная» это программа, не требующая установки. Исполняемые и вспомогательные файлы которой можно перенести копированием в другую систему с сохранением работоспособности и настроек. То есть, это портативная программа. А «портирование» обычно подразумевает адаптацию исходного кода для новой платформы.

anonymous ()
Ответ на: комментарий от anonymous

Ни один из «канализаторов-портабелизаторов» не смог ни разу привести аргумент против использования слова «портативный», в то время как оно отлично описывает суть такого рода программ.

«портативный - есть две ручки для переноски». Означает оно несколько не то, что «портируемый» или оное «портабельный».

Во-вторых, «портабельный» пришло к нам с форумов, где юные компьютерные гении «портабелизируют софт»

бОльшая часть терминов из прикладных областей - устоявшийся в среде сленг.

На досуге очень советую прочитать эту книгу. Когда я её читал, то готов был подписаться буквально под каждой строчкой.

читал. Подписываться не готов. Язык прежде всего есть форма и средство кодирования информации, а уже затем все остальное, включая культуру, эстетическое его восприятие итд.

arkhnchul ★★ ()
Ответ на: комментарий от anonymous

для этого случая есть другое слово «портативный». посмотрите текст новости, оно там есть. а ваше незнание терминологии не только показывает вашу безграмотность, но и добавляет путаницы.

anonymous ()

немного не в тему, но кому интересно про предпосылки уязвимости (сам читал, но не все - фрагментарно (интересно, есть инструменты, обнаруживающее это?)):

In late February, users of  iPhones, iPads and iPods were enjoined to upgrade their devices immediately because  "an attacker with a privileged network position may capture or modify data in sessions protected by SSL/TLS." The bug was traced [1] to code of the following form:

 if (error_of_first_kind)
    goto fail;
if (error_of_second_kind)
    goto fail;
if (error_of_third_kind)
    goto fail;
if (error_of_fourth_kind)
    goto fail;
if (error_of_fifth_kind)
    goto fail;
     goto fail; 
if (error_of_sixth_kind)
    goto fail;
The_truly_important_code_handling_non_erroneous_case
those-who-say-code-does-not-matter

HN comments

swwwfactory ★★ ()
Ответ на: комментарий от anonymous

Слова «портабельный» в русском языке нет.

Переносимый.

«Портативный» - переносной, небольшой по размерам, удобный для ношения при себе.

Портативный - именно, что небольшой по размерам (если в плане кода, то для встраиваемых систем, к примеру), а не переносимый в плане кода (на разные ОС). Так что «Портативный» не подходит, как перевод для «Portable».

AS ★★★★★ ()
Ответ на: комментарий от anonymous

«Портабельная» это программа, не требующая установки.

Да ну ? Это в мире Windows так придумали ? :-) Они там много, что навыдумывали. ;-)

А «портирование» обычно подразумевает адаптацию исходного кода для новой платформы.

Именно это и подразумевается под возможностью собрать в другой ОС.

AS ★★★★★ ()
Ответ на: комментарий от anonymous

Иди в школу чучело, и там учителям свои познания показывай. Нечего технические темы засирать.

anonymous ()
Ответ на: Re: ГОСТ от cnst

Re: ГОСТ

Так что, если кому нужно, и не лень сделать, чтобы всё работало пучком, то обещают вернуть без отлагательств.

Отлично. В качестве статического engine, я правильно понимаю?

anonymous ()
Ответ на: комментарий от anonymous

А вы им пользуетесь?

Да, в сертифицированной Криптокомом версии. Правда не в опёнке.

anonymous ()
Ответ на: комментарий от ppy

библиотеки шифрования типа ssl должны быть под лицензией гпл, а не бсд

А вот и нет. Хочется напомнить FAQ OpenBSD: «People sometimes ask if it bothers us that our free work is put into commercial products. The answer is, we would prefer that our good code be widely used rather than have commercial software vendors reimplement and create badly coded or incompatible alternative solutions to already solved problems».

С этой точки зрения гораздо лучше, когда коммерческие продукты включают проверенный код, правильно реализующий стандарты, нежели поделия.

anonymous ()
Ответ на: комментарий от anonymous

Это в связи с санкциями против России?

Против США. OpenBSD это канадский проект, и ограничений по распространению криптографии в этой стране нет, в отличие от отсталых САСШ.

anonymous ()
Ответ на: комментарий от anonymous

ты еще топикстартеру это напиши, а потом иди в танки поиграй.

anonymous ()
Ответ на: комментарий от ppy

Мне кажется, что библиотеки шифрования типа ssl должны быть под лицензией гпл, а не бсд

а что интересно в OpenSSL (и LibreSSL) — лицензия и не GPL и не BSD — а своя собственная «открытая» лицензия, которая по факту не является свободной из-за одного кой-какого пункта

user_id_68054 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.