LINUX.ORG.RU

Безопасность всех Unix систем держится на одном человеке

 ,


0

1

В рассылке Full Disclosure появился пост об интересной уязвимости в OpenSSL. Со слов некоего Джефри Волтона (Jeffrey Walton) проект имеет всего одного разработчика на фуллтайме и поэтому, т.к. это опенсорс и денег с неба никто не дает - донатьте деньги, пиши патчи и все будет чики пуки.

Цитата сообщения на багтрекинге:

Certificate chain verification in crypto/x509/x509_vfy.c X509_verify_cert() fails badly and may allow verification bypass if check_issued() on line 259 returns false negative on check whether the last certificate in chain is self signed. For example, check_issued() may return false negative in case of memory allocation failure (although could not find how to force that).

253 /* Examine last certificate in chain and see if it
254 * is self signed.
255 */
256
257 i=sk_X509_num(ctx->chain);
258 x=sk_X509_value(ctx->chain,i-1);
259 if (ctx->check_issued(ctx, x, x))

This is because «for» loop later does not require to find even a single issuer certificate from trust store and will happily break loop if last certificate is actually self signed.

А вы избавились от OpenSSL в своем дистрибутиве и переключились на gnutls самописный вариант?

Перемещено beastie из talks

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 3)

А вы избавились от OpenSSL в своем дистрибутиве и переключились на gnutls?

Разве это не разработчик gnutls ушел из проекта GNU с криками про тоталитарную власть бородача?

vurdalak ★★★★★
()

Что-то верится с трудом. Думаю, что корпорации вкидывают денег/кода поцану.

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

Разве это не разработчик gnutls ушел из проекта GNU с криками про тоталитарную власть бородача?

Он не ушел. Просто отказался играть по правилам FSF.

gh0stwizard ★★★★★
() автор топика

как будто gnutls не один Никлас пилит?

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

А так можно? Либо ты подчиняешься FSF, либо не в GNU.

vurdalak ★★★★★
()

проект имеет всего одного разработчика на фуллтайме и поэтому

дай угадаю, это Dr. Steven Henson? (вроде так) :)

Harald ★★★★★
()

А вы избавились от OpenSSL в своем дистрибутиве и переключились на gnutls самописный вариант?

назови альтернативу получше

Harald ★★★★★
()

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

Harald ★★★★★
()

Агенты АНБ опять погнали свой тухлый ветерок на СПО?

Безопасность .. держится на одном человеке

Это OpenSource, детка. Кака-така «безопасность на одном человеке»? Код открыт, ссышь - сиди проверяй. Этот мейнтейнер просто справедливо заслужил доверие.

Когда будут факты (а не вбросы тухлой пропаганды от АНБ), говорящие, что дядьке не нужно больше доверять, тогда мейнтенера сменят. Но не раньше.

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

Это все понятно. Главная проблема заключается в том, что круг людей лично знакомых IRL с разработчиком имеет ограниченное кол-во. Хорошо, если автор живет в Америке, а не на Филлипинских островах. Зачем это нужно? Достоверным фактом будет фотоснимок, запись прослушки, но не код. Код всегда можно обернуть на человеческий фактор: усталось, высокую нагрузку и т.п. И этим активно пользуются.

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

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

Хотите спокойствия? Пользуйтесь одобренными NSA продуктами.

А где можно скачать список одобренных тем для разговоров и занятий?

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

Код всегда можно обернуть на человеческий фактор

До тех пор как этот код попадет в debian stable/RHEL/Centos пройдет не один год тестирования и ковыряния. И не два.

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

Достоверным фактом будет фотоснимок, запись прослушки, но не код.

А вот и не угадал:
достоверным фактом являются конструктивные действия, которые предпринимает человек для развития проекта, а не домыслы глядящих на физиономию и слушающие тембр голоса.

Ты можешь 10 лет слушать сказки человека и верить ему, но когда на 11й дойдет до дела и он тебя предаст, только тогда поймешь кто он такой.

Кстати, именно поэтому считается, что дружба, выросшая из деловых отношений самая крепкая. Только дело по-настоящему даёт репутацию человеку.

Причём, деструктивные действия также реально снижают репутацию.

Например, Линус Торвальдс бывает матерится и факи кажет, но это к делу не относится. А своё дело делает отлично - поэтому у него репутация и высокая.

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

А вот и не угадал

Снимок или запись подтверждают определенные действия. У тебя же действия это нечто вымышленное. Друг тебя предаст, скинет на другого, а ты и не будешь знать. И тут прихожу я и показываю тебе снимок как друг подставляет другого человека. Разница есть?

Я даже добавлю. Сам был сведетелем подобной ситуации. Мой друг доверял другому человеку, почти как брату. Потом начались кражи у друга денег. Я и еще один товарищ поняли, что виновник был друг моего друга. Друг очень-очень упорно не верил в то, что его подставил такой близкий человек. И лишь факт личной проверки наших домыслов образумил его (все было снято на камеры банкоматов).

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

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

Если бы тут был false positive то это дыра, а false negative не о чем говорит. И да, все кому надо знают что openssl написан через задницу, это не новость.

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

И да, все кому надо знают что openssl написан через задницу, это не новость.

И еще более странно, что альтернатив практически нет. gnutls шевелится и никак не дошевелится (т.к. не покрывает весь функционал openssl) с 2008? года. cyaSSL не смотря на двойную лицензию (одна из которых gplv2) до сих пор ни один дистрибутив не запилил в качестве пакета, хотя бы для тестирования.

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

Как у тебя ещё аватарку не удалили, а?

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

Я вообще считаю весь API openssl большой ошибкой. Те альтернативы что есть тщательно его копируют «для совместимости». В результате ничего для нормальных людей так и не сделали :(

true_admin ★★★★★
()

Тоже мне, новость...

В России это — сплошь и рядом, когда функционирование чего-нибудь здоровенного зависит от одного человека.

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

Хотите спокойствия?
Пользуйтесь одобренными NSA зонтами.

починил

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

и какой, по твоему, должен быть правильный API?

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

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

ну это скорей от плохой документированности и отсутствия подробных внятных туториалов, а API предметной области соответствует :)

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

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

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

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

Пользуйтесь одобренными NSA продуктами.

Как жить - на собрании подскажут,
Что пить - почитай в указе,
Что есть - в "Полезных советах".
Указ прочитай три раза,
И два о крылатых ракетах,
Где жить - разузнай в Исполкоме,
На что - разве это важно?
Что петь тебе скажут в Горкоме,
Борцом будь за мир отважным!
С кем спать - спроси у ячейки,
Дадут там ответ достойный.
Позором клейми недоделки!
"НЕТ!" крикни звёздным войнам!
Что не так - обратись в газету
и в радиопередачу. -
Помогут отцовским советом
И недруги все заплачут.
Зарплату отдай в Фонд Мира,
Пусть в мире смеются дети.
С начальством будь скромным и смирным,
Оно за тебя в ответе.
Вступай в ДОСААФ скорее!
Крепи страны оборону!
В месяц тридцать копеек -
И за оборону спокоен.
Партии нашей слава!
Пройдя, поклонись Обкому.
Да здравствует наша держава,
Великие наши законы!
В жизнь Ильича заветы!
Вперёд с нами, алые стяги!
Все мы за мир в ответе,
Поднимем повыше флаги!

Янка 1986 (?)

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

И еще более странно, что альтернатив практически нет.

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

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

Я предлагаю судить об этом на примере простого асинхронного telnet-сервера.

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

Я писал ПО для ресселера сертификатов comodo. Openssl даже не мог экспортировать данные по сертификату. У него тупо не было нужных функций. Вернее, всё было настолько кривое что, по-моему, я в итоге через shell запускал openssl и парсил вывод регекспами. Ну или патчить openssl, но я решил не оставлять такое западло тем кто поддерживал сайт после меня.

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

+500

Единственный «нормальный» способ импортировать/экспортировать ключи, это сохранить их в формате PEM и преобразовать. Другие способы — это ковыряние в кишках структур, что не рекомендуется манами openssl.

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

я в итоге через shell запускал openssl и парсил вывод регекспами.

юниксвей же :)

Openssl даже не мог экспортировать данные по сертификату. У него тупо не было нужных функций.

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

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

почему это нет, когда есть?

Просто ты не нашёл нужные функции

Можно название функции которая вернёт или пары (ключ=>значение) или структуру с описанием сертификата? Я имею в виду параметры аля «срок действия», common name итп.

В своё время я перерыл все библиотеки добрую треть этого самого openssl. Я очень удивлюсь если сейчас назовёшь что-то кроме X509_print_ex() или подобного барахла.

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

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

Опять не угадал. Давай еще раз.
При оценке программиста нужно смотреть какой код он пишет и как часто. Если он еще и мейнтейнер (сопровождающий проекта), то нужно оценивать какие куски кода (патчи) он принимает, и насколько оперативно, а также наскольно эти патчи полезны для проекта. Это и определит репутацию программиста/мейнтейнера.

Ты же предлагаешь смотреть на его фотографию и мочу в свете ультрафиолета. Каким бы ни были фотоснимки и результаты анализов, какой бы личностью не оказался этот человек (может он пьет кровь девственниц), но если этот человек конструктивен в профессиональной сфере, то его репутация как специалиста будет высокой.

Готов ответить на дополнительные вопросы.

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

Готов ответить на дополнительные вопросы.

Нету никаких вопросов. Мы походу живем в разных мирах.

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

Подумай, почему у них есть поддержка TPM :)

Наверное потому же, почему эта поддержка есть у GnuTLS, а именно:
чтобы предоставить желающим (несмотря на все недостатки TPM) использовать этот модуль.

Никто же не заставляет - эта фича опциональная.

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

Мы походу живем в разных мирах.

Похоже что да. Чур я живу в реальном мире.

Если реальные люди позволяют агентам АНБ дрючить их во все места и при этом ничего не предпринимают, а могут только ныть в рассылках, высасывая из пальцев свои подозрения, и поливая говнецом людей, которые работают, и при этом против которых нет дискредитирующих фактов, то что я могу сказать... Кнопочка «форк» и вперед. Впрочем, я это уже говорил в 1м сообщении.

p.s. Я даже больше скажу: вся эта деятельность по поливанию говнецом ключевых фигур в СПО как раз и выглядит подозрительно. Как будто троли АНБ специально и раскачивают лодку.
Точно так же действует ЦРУ на Ближнем востоке, дестабилизруя ситуцию в Старом свете, чтобы спасти свою экономику во главе вонючей ФРС из рук которой оно кормится.

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

ну например, CommonName можно извлекать так :)

копипаста с интернетов

X509_NAME_ENTRY *common_name_entry = NULL;
ASN1_STRING *common_name_asn1 = NULL;
char *common_name_str = NULL;
// Find the position of the CN field in the Subject field of the certificate
common_name_loc = X509_NAME_get_index_by_NID(X509_get_subject_name((X509 *) server_cert), NID_commonName , -1);
if (common_name_loc < 0) {
return Error;
}
// Extract the CN field
common_name_entry = X509_NAME_get_entry(X509_get_subject_name((X509 *) server_cert), common_name_loc);
if (common_name_entry == NULL) {
return Error;
}
// Convert the CN field to a C string
common_name_asn1 = X509_NAME_ENTRY_get_data(common_name_entry);
if (common_name_asn1 == NULL) {
return Error;
}
common_name_str = (char *) ASN1_STRING_data(common_name_asn1);

для сроков действия нашёл в x509.h вот такое:

#define		X509_get_notBefore(x) ((x)->cert_info->validity->notBefore)
#define		X509_get_notAfter(x) ((x)->cert_info->validity->notAfter)

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

И ты считаешь это нормальным? Для остальных полей тоже такие простыни городить? А уж как весело когда у тебя сайт написан не на сях, а на руби и для таких костылей нужно дописывать соответствующие модули.

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

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

cyaSSL не смотря на двойную лицензию (одна из которых gplv2) до сих пор ни один дистрибутив не запилил в качестве пакета, хотя бы для тестирования.

Orly?

pinkbyte@oas1 ~ $ eix cyassl
* net-libs/cyassl
     Available versions:  2.4.6 2.5.0 ~2.7.0 {+aes aes-ccm aes-gcm aes-ni +arc4 +asn big blake2 camellia +coding crl crl-monitor cyassl-hardening debug +des3 +dh dsa -dtls ecc +errorstrings examples extra fortress +hc128 +httpd +huge ipv6 leanpsk mcapi md2 md4 +md5 +memory nullcipher ocsp +psk pwdbased rabbit +ripemd +rsa savecert savesession +sessioncerts +sha sha512 small sni (+)sniffer static-libs test +testcert threads +zlib}
     Homepage:            http://www.yassl.com/yaSSL/Home.html
     Description:         Lightweight SSL/TLS library targeted at embedded and RTOS environments

Даже в stable есть

Pinkbyte ★★★★★
()

Хвала Зевсу, у меня семёра корпоратива.

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

назови альтернативу получше

PolarSSL. Правда GPL.

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

А где можно скачать список одобренных тем для разговоров и занятий?

Можно спросить у своего куратора.

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

ищи в постах зелёной пони.

А меня уже ликбез задолбал.

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