mikhailmasl (mikhailmasl) wrote,
mikhailmasl
mikhailmasl

Category:

Криптография и Свобода - 2

Криптографическое мироздание

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

В центре этой вселенной – ясно солнышко - алгоритм RSA. Всякие там DH и EC – из другой галактики, мы к ним не полетим, RSA теплее и светит во всем цивилизованном мире. А вокруг RSA вращаются планеты: DES простой, 3DES – 112, 3DES -168, AES, куча разных RC: 2, 4, 5. Эти планеты – алгоритмы симметричного шифрования, без них, на одной солнечной энергии, наш криптолет будет плестись как полудохлая кляча.

А вот и развилочка: по левую сторону от солнышка – другие планетки: SHA - 1, 2 а из-за бугра еще и 3 выглядывает. И рядом MD 2, 4, 5. Это смешарики-хешарики, они солнечную энергию в ЭЦП превращают.

А для прикола возьмем с собой в полет кое-какую живность. Собак брать не будем, возьмем обезьянок MAC и HMAC.

Самое интересное: космическое пространство, вакуум, а в нем растут деревья! Только не простые, а ASN-деревья. С начала освоения криптографической вселенной этих деревьев уже повырастало огромное множество, целый ботанический сад, по которому мы сейчас прогуляемся на своем криптолете.

Вот, например, уже известный нам сертификат – открытый ключ со множеством нарядных атрибутов. Это, оказывается, тоже ASN-дерево. Если говорить точнее, то ASN-деревом является наиболее часто употребляемая форма представления сертификата – X.509.

У меня сохранился старенький сертификат одного из корейских банков – Korean Exchange Bank. Давайте немного полазаем по его ASN-дереву.

    Это начало ASN-дерева. Сравните его с «привычным» представлением сертификата – все достаточно очевидно.

    Только представление сертификата в виде ASN-дерева более наглядно показывает принцип построения этого дерева: это набор определенных параметров, каждый из которых имеет свой персональный идентификатор – OBJECT_ID. Например, название страны имеет идентификатор 2.5.4.6, название организации – 2.5.4.10 и т.д. Если кто-то заинтересуется тем, какие вообще существуют в мире идентификаторы и что означают их цифры – милости прошу в OID Repository.

    Отметим, что в этом дереве сначала идет информация об издателе сертификата, т.е. о Certification Authority. Срок действия сертификата и информация о его владельце – следующий кусок дерева.

    Тут, по-видимому, тоже не требуется особых пояснений – сравните этот кусок дерева с привычной картинкой сертификата

    А вот дальше в этом дереве находится одна из самых главных его частей – открытый ключ, для которого и выдан этот сертификат.

    Открытый ключ находится в ASN-дереве вместе с идентификатором своего алгоритма и состоит из двух частей: модуля (первое INTEGER) и открытой экспоненты (второе INTEGER). Признаюсь, что во всех RSA-ключах мне не приходилось встречать открытой экспоненты, отличной от 01 00 01.

    Не желая больше испытывать терпение читателя этой скучной и нудной процедурой разбора всяких веточек и листочков этого дерева, залезем сразу на его верхушку. А там – подпись Удостоверяющего Центра, то, что придает этому сертификату его юридическую значимость.

ASN - садоводство – интересная штука. Профессиональные программисты наверняка подскажут несколько типовых программ, предназначенных для построения таких деревьев и «ухода» за ними. Меня же в Корее, при отсутствии привычной россиянину летней дачи, охватила страсть выращивать виртуальные ASN-деревья и ставить над ними всякие эксперименты. К примеру, Microsoft не очень-то лояльно относится к попыткам внести какие-то изменения в имеющиеся на его сервере Windows Server 2003 шаблоны сертификатов. Ну и бог с ним! Делаем проще: берем готовый сертификат, выкидываем из него подпись Удостоверяющего Центра, всячески издеваемся над оставшимся ASN-деревом: что-то подпиливаем, что-то, наоборот, добавляем, потом подписываем заново на ключе УЦ – готов изощренный сертификат! Вот такой у меня там получился ASN-конструктор, приведенные выше картинки ASN-дерева – его продукция.

    Каких только ASN-деревьев не увидишь в криптографическом пространстве! Тут и дерево подписи, получаемое с помощью функции CryptSignMessage, и дерево зашифрованного сообщения, получаемого с помощью CryptEncryptMessage, и различные timestamp, и online certificate status, и прочая, прочая, прочая… Читателей, заинтересовавшихся всем этим ботаническим садом, мы, пожалуй, отправим в самостоятельный полет, а всем неулетевшим сейчас будут показаны некоторые простенькие криптографические фокусы с одним ASN-деревом. Вот оно.

Это файл типа PFX, содержащий в зашифрованном виде секретный асимметричный ключ и сертификат к нему. Шифрование осуществляется с помощью ключа, вырабатываемого из пароля пользователя, это так называемое Password Based Encryption, описанное в PKCS#5. А OID 1.2.840.113549.1.12.1.6 означает PKCS #12 Password Based Encryption With SHA-1 and 40-bit RC2-CBC, что в криптографическом переводе на русский язык означает «туши свет, бросай гранату», ибо даже малые дети знают, что 40-битовый шифр RC2 является нестойким. Легко и непринужденно он вскрывается тотальной переборкой ключей, чем мы сейчас и займемся с читателями-хакерами.





Назад                                 Продолжение
В начало книги Криптография и Свобода - 2

Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments