Как создать самоподписанный сертификат на эллиптических кривых?




Комментарии
Гость (22/02/2013 09:59)   
Вот, создал[link1] по инструкции[link2], но сервер с ним не работает. Что с ним не так?
Гость (22/02/2013 18:23)   
есть кто живой?
Гость (22/02/2013 22:56)   
См. /comment50261[link3] ещё.
Гость (23/02/2013 07:19)   
Лол, мой же пост годичной давности.

Скажите, что не так с моим сертификатом?
Гость (23/02/2013 14:05)   
Кто-нибудь, потестите его у себя на сервере.
Гость (23/02/2013 21:45)   
См. /comment50261 ещё.
Лол, мой же пост годичной давности.
Лол, а почему бы тогда не продолжить обсуждение в том топике, зачем новый нужно было создавать? Ну, хотя да, там сам топик был изначально не об этом. В любом случае, могли бы и сами дать ссылку на предыдущее обсуждение для полноты картины.

сервер с ним не работает.
Очень информативно, прям как для поста на форуме. Что в дебаге, что пишет, какая ошибка?

Возможно, такие сертификаты не очень популярны, чтобы нарыть толковые инструкции с гугла. Мало кто сам работает с HTTPS-серверами среди местной публики, и ещё меньше тех, кто на сообщения отвечает.
Гость (23/02/2013 22:13)   

Я только прочитав пост понял, что он мой.

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

Виндовый просмотровщих показывает в главе "открытый ключ" какую-то хрень. Что это может значить?
Гость (23/02/2013 23:04)   
Где хоть спросить можно?
Гость (24/02/2013 01:00)   
Где хоть спросить можно?

https://en.wikipedia.org/wiki/Stack_Overflow
http://stackoverflow.com
Вроде бы это чуть ли ни единственный сайт для сложных технических вопросов, где не только их задают, но ещё и отвечают (кстати, не только по программированию, но и по другим областям знаний, включая абстрактную математику).
Гость (24/02/2013 11:17)   
Хер там. Спросил на security.stackexchange.com – закрыли тему. Он не такой хороший, как кажется.

Забыл написать. Засунул его в pyload – не мог зайти на страницу, с RSA сертификатом все работало прекрасно. Сообщений об ошибке 0.
Гость (24/02/2013 21:38)   
Спросил на security.stackexchange.com – закрыли тему.

На основании чего? Слишком поверхностный вопрос? Не того уровня, что заслуживает обсуждения?

с RSA сертификатом все работало прекрасно. Сообщений об ошибке 0.

Может ли быть такой вариант, что браузеры попросту не поддерживают работу с такими сертификатами? Где-то была статистика по используемым алгоритмам в сертификатах, и сертификатов с ECC там было совсем мало, если не единичные случаи.
Гость (24/02/2013 21:41)   
Браузеры все проверяли?
— sentaus (24/02/2013 22:00, исправлен 24/02/2013 22:03)   

Хрень какая-то.

сервер с ним не работает

Совершенно секретный сервер, не имеющий названия? :)


Ничего не пишет. Вообще.

С отключёнными логгированием? :)


кто-то поймет, что с ним не так.

Похоже, закрытый ключ открытому не соответствует:


Гость (24/02/2013 22:12)   

Написал ниже.

С включенным дефолтовым. Может, он у тебя заработает? :)

У кого денвер стоит – проверьте, может он там заработает или хоть ошибки высрет?
Гость (24/02/2013 22:52)   
Попробовал в денвере запустить –
Ээ а че надо, чтобы сервер его поддерживал?
Гость (24/02/2013 22:56)   
Посмотрел еще раз внимательно на ошибку прыщелиса
А curl говорит:
Что с этим делать?
— unknown (24/02/2013 23:23)   
Возможно, что ECC в его нынешнем виде, всё ещё криво поддерживается как серверным, так и клиентским софтом. И везде могут быть внезапные грабли.

Потому будет ещё весело, когда всю симметричную криптографию будут потихоньку переписывать на Keccak (он претендует не только на замену хэшей, но и шифров, и разных криптографических функций, и кусков протоколов).

Вам ECC-сертификат для ознакомительного экспериментирования или реальной работы? Есть где рабочие примеры? А то год назад при сканировании уязвимых urandom действительно на тысячи сертификатов нашли только один ECC.
Гость (25/02/2013 00:24)   

Ну за год-то можно было научиться говорить без анально-фекальной темы?


Если там оно было сформулировано как здесь с ноль инфы, да ещё с такой лексикой, то неудивительно.


Разве там всё так просто? Универсальная в keccak'е лишь губка, как я понял из поверхностного чтения популярных постов на тему.
Гость (25/02/2013 00:32)   
Мне желательно бы заставить сабж (pyload) работать с эллиптическимы кривыми, чтобы меньше тормозил.
Рабочие примеры чего?

Пардон, но есть разница – криво поддерживается и вообще ни хрена не работает, нашлось всего 2 скрипта для генерации, один из которых еще и под мак.

Вот интересно, а почему так? Говорят, что дело в каких-то патентах – но они вроде бы скоро закончатся, действуют наверняка только на территории сшашки, да и вообще, я по ссылке педивикии читал, что они покрывают не ЭК, а только некоторые оптимизации (типа не хранить f(x), если есть x и известна f). Да и на территории рашки вроде бы ЭК даже признано госстандартом?

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

Хм? Поподробнее можно (желаетльно не здесь)?
Да ИТАКВСЕРАБОТАЕТ. Торопиться пока некуда. Там разница не как между 2 кбит RSA и соответствующей эллиптикой.

Прыщелис 3 см. выше, IE выдает ахрененно информативное сообщение "Internet Explorer не может отобразить эту веб-страницу".

Раз ты такой умный, может подскажешь, как ее собрать?
— sentaus (25/02/2013 00:58)   
Вот интересно, а почему так?

Всем пофиг.
Гость (25/02/2013 01:14)   
sentaus, как я уже сказал, на встраиваемых системах альтернативы просто нет. Я видел рутер, где был выставлен 2 кбит RSA ключ. Каждая страница открывалась секунды 3. Так что я сомневаюсь, что все так просто. По сравнению с этим на кеччак действительно всех пофиг.
Гость (25/02/2013 10:07)   

Например[link4].


Всё бросил и побежал гуглить, экспериментировать, интересоваться в рассылках, и так неделю-две. Раз ты такой борзый, что сам не можешь прогуглить и найти ответ? Слабо разобраться с вопросом самостоятельно и выдать связный ответ в виде поста на форуме?
Гость (25/02/2013 11:03)   

Ты не охренел? Я тебе ничем не обязан, и вообще-то я задал вопрос, а ты хочешь, чтобы я сам на него ответил и запостил тут ответ? Ты не еврей?
— unknown (25/02/2013 11:11, исправлен 25/02/2013 11:15)   
Хм? Поподробнее можно (желаетльно не здесь)?
Да ИТАКВСЕРАБОТАЕТ. Торопиться пока некуда. Там разница не как между 2 кбит RSA и соответствующей эллиптикой.

Разница действительно не в скорости, а в том, чтобы убрать кашу из разных громоздких алгоритмов, конструкций и протоколов, пытающихся безопасно связать хэширование, шифрование, аутентификацию, дополнение блоков, ГПСЧ, получение промежуточных ключей и пр. В итоге эта каша будет без конца вылезать дырами в реализации SSL и аналогичных продуктов.



Это надо ждать новых стандартов на основе Keccak, что вполне может растянуться на десятилетия.


Подробности по приведённой постом выше ссылке.



Вам тоже никто не обязан. Можно вежливо и конструктивно спросить, а можно хамить, паясничать, истерить и получать в ответ соответствующую реакцию. Впрочем, её всегда можно получить :)

Гость (25/02/2013 13:13)   
Я вполне вежливо спросил и дал всю информацию, что смог собрать. Но гостю неймется... Если он умнее – пусть попробует собрать больше.

ЩИТО? Это я?

Так кто нибудь скажет, как сделать и заюзать сабж, или это все-таки за рамками возможного?

Я говорю о том, что прямо щас никто не бросит все и будет переводить все на кеччак, пока и так все работает. Есть проблемы и поважнее, например сабж. Это во всех практических областях кагбэ так – переход должен чем-то оправдываться.
Гость (25/02/2013 20:47)   
Ап.
— sentaus (25/02/2013 22:28)   
или это все-таки за рамками возможного?

Пока гугл, майкрософт и мозилла собирают браузеры без поддержки EC, будет за рамками возможного.
Гость (25/02/2013 23:02)   
А откуда информация, что браузеры их не поддерживают? И даже curl? Если даже curl не поддерживает, то суши весла.
Гость (25/02/2013 23:07)   
http://www.mozilla.org/project.....intenancePolicy.html[link5]
8. We consider the following algorithms and key sizes to be acceptable and supported in Mozilla products:
    • Elliptic Curve Digital Signature Algorithm (using ANSI X9.62) over SECG and NIST named curves P-256, P-384, and P-512;


https://developer.mozilla.org/.....ecurity_in_Firefox_2[link6] (ага, firefox 2!)
Firefox 2 supports Elliptic Curve Cryptography in TLS. Support is presently limited to curves of 256, 384, and 521 (yes, 521) bits.

Гость (25/02/2013 23:22)   
Я тебе ничем не обязан, и вообще-то я задал вопрос, а ты хочешь, чтобы я сам на него ответил и запостил тут ответ?

Никто никому не обязан. Как уже давно понятно, вопрос не из стандартных, не самый простой. Чтобы на него ответить, надо основательно гуглить тему. Среди публики сайта все, кто что знал, уже высказались, для дальнейшего надо серьёзно вникать в тему, но это никому мало кому интересно. Не надо смотреть на здесь постящих как на богов, которые всё знают и всё могут решить одним движением пальца. Раз развёрнутого ответа нет, а он вам нужен, вам придётся докапываться до истины самому. Как докапаетесь и всё поймёте, напишите развёрнутый пост на тему, это будет полезной заметкой как для вас, так и для остальных. Наконец, реагировать на вполне уместные замечания в духе Раз ты такой умный «сам дурак» не нужно, потому что даже тот, кто и мог бы вам помочь, после этого помогать не захочет.
— sentaus (25/02/2013 23:25, исправлен 25/02/2013 23:26)   
А откуда информация, что браузеры их не поддерживают?

Да я тут сгенерил сертификат, развернул его на nginx, и FF, Chrome и IE с ним не заработали, а Konqueror, rekonq и qupzilla заработали. Отсюда я этот вывод и сделал. Хотя, один момент я наверно всё-таки упустил.

Гость (25/02/2013 23:33)   
Что за момент? Можешь сертификат выложить? Алсо, как посмотреть список поддерживаемых протоколов в браузерах, хотя бы в том же прыщелисе?

Это и называется "сам спросил – сам ответь и другим расскажи". Нет уж, спасибо.
И замечания мне могут делать только те, кто могут сделать лучше.
Гость (25/02/2013 23:38)   
А собсно, что я парюсь – фитон только год назад стал их поддерживать и то только 3.3, хз как там 2.х http://bugs.python.org/issue13627

sentaus, а энджинкс ЭК поддерживает? Как на нем протестировать сертификат?
— sentaus (25/02/2013 23:47)   
Что за момент?

Выбор эллиптической кривой.

Можешь сертификат выложить?


Ды пожалуйста. Этот даже FF и Chrome распознают.

Сертификат:


Закрытый ключ:



Это и называется "сам спросил – сам ответь и другим расскажи".

Инициативность наказуема обязательностью исполнения. :)
Гость (25/02/2013 23:56)   
А на чем и как его можно по-быстренькому потестировать? Это secp521r1? Можешь комадны для генерации тоже выложить?
Гость (26/02/2013 00:18)   
Уряяяя! Оно заработало!

Главная проблема была в том, что долбаный фитон (по крайней мере, 2.7), судя по всему, до сих пор не умеет работать с ЭК и никогда и не научится, а на тройку переписывать ради ЭК никто ничего не будет. Так что даже если бы сертификат был рабочим и поддерживаемым фаерфоксом, я бы этого все равно не увидел :(

sentaus, колись, как ты сгенерировал сертификаты без CN?
Гость (26/02/2013 00:49)   
У меня на фаерфоксе почему-то не работает secp256k1, интересно, почему?
Гость (26/02/2013 06:24)   

[tele]
openssl
[/tele]
И зачем вообще вам питон?
— unknown (26/02/2013 10:06, исправлен 26/02/2013 10:07)   

[telepate mode]
Уж очень презрительно-утилитарный подход к своей задаче и инструментам её решения.


Делают наверное какую-нибудь специфическую проприетарную железку по кем-то спущенному техзаданию "лишь бы завелось", но "должно работать в установленный срок" и "заказчики требуют".


А здесь большинству пофиг и неинтересно.
[/telepate mode]


У меня на фаерфоксе почему-то не работает secp256k1

Судя по документам, которые выпускает то НИСТ, то АНБ, то Цертиком, то торговая палата США (они ещё между собой не разобрались и не переделили все патенты, в России хоть единый стандарт) в ECC ещё м.б. куча несовместимых между собой стандартов и реализаций. Поэтому на эти грабли добровольно никто не спешит или делают коммерческую разработку с нуля под заказ и пропихивают свой вариант стандарта в какой-то сфере индустрии (в "умных" электросчётчиках, например).

Гость (26/02/2013 11:58)   
Не понял, чем не нравится подход?

Про зачем я писал выше – Pyload. Гугл в помощь. Ну и хотелось бы использовать это в других местах, на dd-wrt например, но, боюсь, не заведется.

secp521r1 ведь работает, в документе выше написано, что лис должен и 256 поддерживать (а других кривых на 256 в openssl нет).
— unknown (26/02/2013 12:20)   
Про зачем я писал выше – Pyload. Гугл в помощь. Ну и хотелось бы использовать это в других местах, на dd-wrt например, но, боюсь, не заведется.

Понял :) Необоснованные упрёки снимаются.

Правда, мало кому интересно ECC, а специально проверять его настройку желания нет. Если бы с самого начала подробно указали задачу, где это перспективно, то кто-то бы взял на заметку, может бы тоже заинтересовался. Не все же сталкиваются с Pyload и микрожелезками.
Гость (26/02/2013 12:52)   
Pyload – всего лишь очередная прога, имеющая в составе веб-интерфейс, а микрожелезки от рутера и меньше я уже[link7] упоминал[link8]. Вопрос я задал потому, что "оно же по идее должно работать – так какого хрена оно не работает?".
— unknown (26/02/2013 13:38, исправлен 26/02/2013 13:55)   

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


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


Первым коммерческим центром по выдаче ECC-сертификатов стал Symantec[link9] в середине февраля 2013 года. Это они ещё только рекламную компанию проводят. И рассчитывают на гибридные решения — откат на старый тип сертификатов при неудаче в соединении.

Гость (26/02/2013 14:06)   

В реальности редко контролируется клиент и сервер, например, есть веб-сервер, который должен поддерживать все существующие браузеры, или хотя бы некоторые, если сервер в квартирной локалке.

Под "работать" я имел в виду массовую поддержку, экзотикой заниматься не хочу, если делать "падсибя", то можно будет сразу использовать, например, srp.
Гость (26/02/2013 21:30)   
Продолжаем прямой эфир.

В сервере OpenSSL 0.9.8l 5 Nov 2009 – версия, вкомпиленная в последнюю версию pyopenssl.

Firefox 3 посылает вот что (дамп Wireshark):


Ответ:


Классический пример из реального мира – программа А зависит от библиотеки Б, которая зависит от библиотеки В, которая заброшена 2 года назад, содержит сишный код и для винды есть в бинарниках, сделаных хз кем и хз когда. Новые версии библиотек появляются/начинают использоваться в библиотеках через время x, и так по цепочке. Для железа еще можно сделать поправку на сложность апдейтов и нежелание выбрасывать ее, пока она работает. Сколько лет не обновлялась dd-wrt? И станет ли кто-то перевыпускать прошивку ради апдейта openssl?

Поэтому поддержкой ЭК надо заняться прямо сегодня, чтобы лет через 5 она стала повсеместной и попытка подключить ЭК с "щас сгенерируем и заменим 2 файла" не превращалась в траходром с беганьем по всему интернету.
— sentaus (26/02/2013 21:46)   
У меня на фаерфоксе почему-то не работает secp256k1, интересно, почему?


Так вот же ответ:
Гость (26/02/2013 21:54)   
А в моем openssl его тупо нет, есть только secp256k1. И всего-то понадобилось заглянуть в дамп Wiresharka, как просто! Интересно, отсохли бы руки у прыщелисовцев, если бы они у себя на странице написали названия кривых, а не только количество бит?
— sentaus (26/02/2013 21:57)   
А в моем openssl его тупо нет, есть только secp256k1. И всего-то понадобилось заглянуть в дамп Wiresharka, как просто! Интересно, отсохли бы руки у прыщелисовцев, если бы они у себя на странице написали названия кривых, а не только количество бит?

Думаю, об этом надо у них и спросить :) Заодно это же стоит выяснить у MS и гугла. (Интересно, кто на контакт охотнее пойдёт? :))
Гость (26/02/2013 22:00)   
А ms и гугл у себя что-то писали? Я об этом[link10].
— sentaus (26/02/2013 22:08)   
Поэтому поддержкой ЭК надо заняться прямо сегодня, чтобы лет через 5 она стала повсеместной и попытка подключить ЭК с "щас сгенерируем и заменим 2 файла" не превращалась в траходром с беганьем по всему интернету.


А ms и гугл у себя что-то писали?


Я не видел такого. Кто б запинал их двигаться в сторону поддержки ECC? :) Чтобы хотя бы как у rekonq – аж 25 кривых умеет.
Гость (26/02/2013 22:27)   
Гугл у себя на сайте добавил PFF на эллиптических кривых, в свое время это распиарили. Полностью на ЭК не перешли из-за наличия отсутствия соответствующих УЦ.

А так самый простой способ проверить – снифать Wireshark-ом TLS рукопожатие. Хотя по идее где-то должна быть и документация...
Гость (27/02/2013 01:13)   

Почти угадано :)


Проблема выбора констант[link11], ECC и Tor[link12]. Может, всё из-за констант? :)
Гость (27/02/2013 15:14)   
Скорее, патенты, но никто не признается.
Гость (27/02/2013 21:32)   
Короче, решил проблему просто – включил перед сервером nginx, он все умеет и регулярно обновляется.
Гость (27/02/2013 23:07)   

Напишите, как генерили сертификат. Командой в openssl? Просто интересно.
Гость (27/02/2013 23:56)   
Ссылка в первом посте. Список кривых на этой странице, меняешь кривую на одну из них.
Гость (20/03/2013 13:56)   
Сказал спасибо тем, кто помог (sentaus), упомянул тех, кто не помогал, но зудел (Гость (25/02/2013 00:24)) – потерли. Что я такого сказал?

Ссылки
[link1] http://rghost.net/44006688

[link2] http://this.is.thoughtcrime.org.nz/elliptic-curve-ca-guide

[link3] https://www.pgpru.com/comment50261

[link4] https://www.pgpru.com/comment48068

[link5] http://www.mozilla.org/projects/security/certs/policy/MaintenancePolicy.html

[link6] https://developer.mozilla.org/en-US/docs/Security_in_Firefox_2

[link7] https://www.pgpru.com/comment61239

[link8] https://www.pgpru.com/comment61242

[link9] https://www.networkworld.com/news/2013/021313-symantec-266643.html

[link10] https://www.pgpru.com/comment61264

[link11] https://www.pgpru.com/forum/kriptografija/eschjorazoecc

[link12] https://www.pgpru.com/comment50123