По идеи, при добавлении хэш-функции к тому же самому Вихрю Мерсенна получится криптостойкий ГПСЧ. Скорость думаю будет повыше чем у блочного шифра, все таки хэш функции гораздо быстрее.
Просто для меня такое решение имеет один минус. Возможно, это весьма субъективно, но все же. Используя сразу два инструмента: ГПСЧ и хэш-функцию мы усложняем всю схему. Соответственно больше шансов на ошибку, меньше шансов учесть все возможные угрозы. Поэтому я как то в этом плане консервативен, чем проще тем лучше. Для меня BBS вообще идеальный генератор, с которым никакая fortuna не сравнится:)
В целом идею поддерживаю. Хотя мне тоже кажется, что лучше сделать плашку «новость» и дать возможность автору самому выбирать тип публикации.
Кстати, есть ведь еще тип топика «туториал». Можно такие топики тоже каким-нибудь образом поощрять.
Целый комплекс алгоритмов, предназначенный для создания криптографически стойкого ГПСЧ. Разработан Брюсом Шнайером и Нилом Фергюссоном. Хорошее описание есть в их совместной книге «Практическая криптография».
Для сдвигового регистра это ничего не изменит, т.к. он и так возвращает только один бит. Для Вихря Мерсенна вариант на первый взгляд выглядит интересным, но опять таки потеря скорости колосальная.
Сам генератор там вроде несложный. Похож на CTR, только вместо блочного шифра, хэш функции используются. А вот функции сбора и хранения энтропии это да. Тема для отдельного топика.
А вообще соберись уже) Очень интересно про него будет подробности почитать.
Странно. Какими средствами пользуетесь? Только что проверил в браузере, выгрузил DER сертификат и PEM. Конвертнул DER в base64, все совпало. Но я на этом не успокоился и из хранилища сертификатов windows выгрузил DER сертификат в base64, тоже самое значение получилось.
Ну что касается PEM, тот тут все просто объясняется. Это действительно обычный DER сертификат в base64 кодировке.:)
Что касается использования, могу предположить, что PEM вероятно применяется в электронной почте, т.к. DER сертификат содержит бинарные данные и его нельзя отправить в теле письма.
А вот второй формат выгрузки действительно любопытен. Не встречался с такой формой записи.
Здравствуйте.
По первому пункту по-моему вы не совсем правы, если я вас правильно понял. То что отпечаток может вычисляться не только с помощью SHA-1 это вы верно подметили. А вот, то что алгоритм отпечатся можно задать при генерации этого я нигде не нашел. Насколько понял проверяющая программа сама выбирает хеш-функцию, а так как стандарт по умолчанию долгие годы был SHA-1, во многих реализациях используется именно эта функция.
А вот по второму пункту тут я с вами целиком согласен. Действительно, если сгенерировать сертификат 2-го уровня и не указать в нем дополнительные сведения об издателе сертификат все-равно найдет правильного издателя по наименованию. Я внес небольшие поправки в пост, чтобы не вводить читателей в заблуждение.
Я просто хотел немного вас дополнить и сказать, что такого рода поля, содержащие, например, сведения об издателеи называются расширениями. И возможность добавлять расширения доступна только для сертификатов версии 3.
Знаю, читал. Очень помогла кстати. Спасибо.
Теперь про ваш вопрос, или это не вопрос?) Я бы не стал называть это громким словом «статья», обычный пост в блоге. Было интересно поковырять собственноручно сгенерированный сертификат, нашел пару прикольных вещей, описал процесс в коллективном блоге.
Кому-то это покажется поверхностным, а кому-то (таким людям типа меня, которым было просто любопытно узнать что же это за зверь такой x.509) поможет удовлетворить любопытство.
Конечно, есть еще очень много всего, что в топик просто не уместилось. Если кому-то станут интересны подробности постараюсь ответить в комментариях. А не получится у меня, помогут умные люди типа вас, за это мы хабр и любим.)
SEQUENCE(3 elem)
<TBS>SEQUENCE(7 elem)
[0](1 elem)
INTEGER 2
INTEGER 1
SEQUENCE(2 elem)
OBJECT IDENTIFIER 1.2.840.113549.1.1.5
NULL
SEQUENCE(1 elem)
SET(1 elem)
SEQUENCE(2 elem)
OBJECT IDENTIFIER 2.5.4.3
UTF8String CA
SEQUENCE(2 elem)
UTCTime 13-09-15 15:35:02 UTC
GeneralizedTime 2113-09-22 15:35:02 UTC
SEQUENCE(1 elem)
SET(1 elem)
SEQUENCE(2 elem)
OBJECT IDENTIFIER 2.5.4.3
UTF8String CA
SEQUENCE(2 elem)
SEQUENCE(2 elem)
OBJECT IDENTIFIER 1.2.840.113549.1.1.1
NULL
BIT STRING(1 elem)
SEQUENCE(2 elem)
INTEGER 00: 8D 80 B5 8E 80 8E 94 D1 04 03 6A 45 1A 54 5E 7E
EE 6D 0C CB 0B 82 03 F1 7D C9 6F ED 52 02 B2 08
C3 48 D1 24 70 C3 50 C2 1C 40 BC B5 9D F8 E8 A8
41 16 7B 0B 34 1F 27 8D 32 2D 38 BA 18 A5 31 A9
E3 15 20 3D E4 0A DC D8 CD 42 B0 E3 66 53 85 21
7C 90 13 E9 F9 C9 26 5A F3 FF 8C A8 92 25 CD 23
08 69 F4 A2 F8 7B BF CD 45 E8 19 33 F1 AA E0 2B
92 31 22 34 60 27 2E D7 56 04 8B 1B 59 64 77 5F
INTEGER 65537</TBS>
SEQUENCE(2 elem)
OBJECT IDENTIFIER 1.2.840.113549.1.1.5
NULL
BIT STRING 00: 0A 1C ED 77 F4 79 D5 EC 73 51 32 25 09 61 F7 00
C4 64 74 29 86 5B 67 F2 3D A9 39 34 6B 3C A9 92
B8 BF 07 13 0B A0 9B DF 41 E2 8A F6 D3 17 53 E1
BA 7F C0 D0 BC 10 B7 9B 63 4F 06 D0 7B AC C6 FB
CE 95 F7 8A 72 AA 10 EA B0 D1 6D 74 69 5E 20 68
5D 1A 66 28 C5 59 33 43 DB EE DA 00 80 99 5E DD
17 AC 43 36 1E D0 5B 06 0F 8C 6C 82 D3 BB 3E 2B
A5 F1 94 FB 53 7B B0 54 22 6F F6 4C 18 1B 72 1C
Отступы в тексте описывают уровень вложения, т.е. SEQUENCE(3 elem) первый уровень вложения, все элементы сертификата входят в этот блок.
SEQUENCE(7 elem) — второй уровень вложения, и т.д.
Собственно элементы этого самого SEQUENCE(7 elem) и будут входить в TSB-сертификат. В блоке <source> тэги не работают, выделил часть TBS-сертификата «тэгом» <TBS>.
Про смысл фичи тут много вариантов. Вот vittore а своем комментарии приводит достаточно правдоподобное объяснение.
В любом случае, пост не об этом, а о самом протоколе SSL и одной из его множества уязвимостей.
Просто для меня такое решение имеет один минус. Возможно, это весьма субъективно, но все же. Используя сразу два инструмента: ГПСЧ и хэш-функцию мы усложняем всю схему. Соответственно больше шансов на ошибку, меньше шансов учесть все возможные угрозы. Поэтому я как то в этом плане консервативен, чем проще тем лучше. Для меня BBS вообще идеальный генератор, с которым никакая fortuna не сравнится:)
Кстати, есть ведь еще тип топика «туториал». Можно такие топики тоже каким-нибудь образом поощрять.
А вообще соберись уже) Очень интересно про него будет подробности почитать.
Добавлю в пост, если вы не против.
Спасибо большое за уточнения и разъяснения.
Что касается использования, могу предположить, что PEM вероятно применяется в электронной почте, т.к. DER сертификат содержит бинарные данные и его нельзя отправить в теле письма.
А вот второй формат выгрузки действительно любопытен. Не встречался с такой формой записи.
Не уловил о чем вы. Вы имеете в виду назначение сертификата? Например: шифрование файлов или электронная почта. Или вы о чем то другом?
По первому пункту по-моему вы не совсем правы, если я вас правильно понял. То что отпечаток может вычисляться не только с помощью SHA-1 это вы верно подметили. А вот, то что алгоритм отпечатся можно задать при генерации этого я нигде не нашел. Насколько понял проверяющая программа сама выбирает хеш-функцию, а так как стандарт по умолчанию долгие годы был SHA-1, во многих реализациях используется именно эта функция.
А вот по второму пункту тут я с вами целиком согласен. Действительно, если сгенерировать сертификат 2-го уровня и не указать в нем дополнительные сведения об издателе сертификат все-равно найдет правильного издателя по наименованию. Я внес небольшие поправки в пост, чтобы не вводить читателей в заблуждение.
Я просто хотел немного вас дополнить и сказать, что такого рода поля, содержащие, например, сведения об издателеи называются расширениями. И возможность добавлять расширения доступна только для сертификатов версии 3.
Теперь про ваш вопрос, или это не вопрос?) Я бы не стал называть это громким словом «статья», обычный пост в блоге. Было интересно поковырять собственноручно сгенерированный сертификат, нашел пару прикольных вещей, описал процесс в коллективном блоге.
Кому-то это покажется поверхностным, а кому-то (таким людям типа меня, которым было просто любопытно узнать что же это за зверь такой x.509) поможет удовлетворить любопытство.
Конечно, есть еще очень много всего, что в топик просто не уместилось. Если кому-то станут интересны подробности постараюсь ответить в комментариях. А не получится у меня, помогут умные люди типа вас, за это мы хабр и любим.)
Отступы в тексте описывают уровень вложения, т.е. SEQUENCE(3 elem) первый уровень вложения, все элементы сертификата входят в этот блок.
SEQUENCE(7 elem) — второй уровень вложения, и т.д.
Собственно элементы этого самого SEQUENCE(7 elem) и будут входить в TSB-сертификат. В блоке
<source>
тэги не работают, выделил часть TBS-сертификата «тэгом»<TBS>
.Как то мимо меня прошли переводы предыдущих глав, пойду наверстывать упущенное.