Category: it

Category was added automatically. Read all entries about "it".

KRK

Криптография и Свобода - 2. Криптографическое мироздание

Оригинал взят у kolkankulma в Криптография и Свобода - 2. Криптографическое мироздание
Оригинал взят у mikhailmasl в Криптография и Свобода - 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



KRK

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

Оригинал взят у kolkankulma в Криптография и Свобода - 2. Корея
Оригинал взят у mikhailmasl в Криптография и Свобода - 2

Корея

        По большому счету, поездка в Корею напоминала авантюру, схожую с принятым в молодости решением поступать на 4 факультет Высшей Школы КГБ. Интуитивно ясно, что там нужны специалисты-криптографы, но какова при этом будет проза жизни в незнакомой стране?

        Но по сравнению с абсолютной неизвестностью о 4 факультете ВКШ в 1974 году, о Южной Корее в 2002 году было известно, что это динамически развивающаяся страна, причем развивающаяся исключительно за счет своей промышленности, производящей известную всему миру электронику, бытовую технику и автомобили. Как корейцы смогли построить такую страну без нефти и газа? Что такое типичная корейская компания, в которой мне предстояло работать? Ну и наконец самый интересный для меня вопрос: что представляют из себя корейские специалисты-криптографы?

        В детстве я любил читать газеты, и в то время (конец 60-х годов) о Южной Корее писали не иначе, как о марионеточной проамериканской стране. Возможно, какая-то доля истины в этом и была: страна жила на американские дотации, которые зачастую банально разворовывались - некий аналог легких нефтяных денег в современной России. Но затем власть в Сеуле захватили военные и, как теперь стало ясно, они навели порядок в экономике. Вместо банального разворовывания деньги стали вкладываться в закупку новых технологий и развитие производства. Через 10 – 15 лет о Южной Корее заговорили как об азиатском тигре и южнокорейские товары стали завоевывать мир. Вот такая краткая и поучительная история со счастливым концом про корейское экономическое чудо. Ну а мне предстояло увидеть это чудо своими глазами и даже принять некоторое участие в том, чтобы оно стало еще чудеснее. А причина, по которой корейцы в 2002 году стали искать зарубежного криптографа, была простая: у них накануне по Интернету утащили из одного банка $50000. Это, конечно, не чеченские авизо, но что-то на ту же тему. История получила широкую огласку и, перефразируя популярную песню Андрея Макаревича, корейский исполком забил в колокола.

        Здесь настала пора познакомиться с корейской криптографией. На мой взгляд, таких богатых криптографических традиций, как в России, у корейцев нет, но они умудрились примерно на 10 лет раньше, чем в России, сделать криптографическую защиту бытовой и общедоступной. Например, полноценный Internet Banking и общенациональный сертификационный центр Yessign в Корее существуют уже с конца 90-х годов. Поход ногами в банк считается здесь почти неприличным, все операции – по Интернету. А это, в первую очередь, предполагает аутентификацию пользователя банковским сервером, а аутентификация – это digital signature, по-русски – электронно-цифровая подпись или ЭЦП, слово, которое только сейчас начинает входить в обиход россиян. Корейцы не изобретали своих оригинальных алгоритмов ЭЦП - как и в большинстве развитых стран они применяют алгоритм RSA. Они не ломали через колено CRYPTO API – встроенный в Windows криптографический интерфейс - ради внесения в него каких-то своих «изюминок», такое ломание всегда чревато сбоями и конфликтами в работе компьютера. Корейская специфика процесса аутентификации была внесена аккуратно и осторожно, руководствуясь принципом: CRYPTO API священно и неприкосновенно. Все это, а еще и значительно меньшая ретивость чиновников, в совокупности и дали корейцам выигрыш в 10 лет.

        Мне, безусловно, было очень интересно познакомиться с корейской криптографической технологией и в этой книге я еще не раз ее коснусь. Ну а как же там при такой технологии умудрились утащить из банка $50000? Как оказалось, довольно просто: хакеры просканировали память компьютера и нашли в ней секретный ключ. Как защититься от подобных атак – ответ тоже достаточно очевиден: спрятать секретный ключ куда-нибудь в более надежное место, например в смарт-карту, а работу с ним осуществлять с помощью какого-нибудь общеизвестного криптографического интерфейса: Cryptography Service Provider (CSP) или специализированного интерфейса для смарт карт PKCS#11. Эти три слова: Smart Card, CSP и PKCS#11 стали ключевыми за все время моей работы в Южной Корее.

        Ну а что же представляет из себя типичная корейская софтверная компания и каковы особенности работы в ней российского специалиста? Здесь надо отметить, что помимо российских программистов корейцы приглашают на работу также программистов из других стран, но у россиян, как правило, более основательное базовое образование. В компании Shinhwa, где я начинал свою корейскую «карьеру», было четверо россиян и один индиец. В криптографии же разбирался только я один, все остальные, как корейцы, так и иностранцы, делали специализированное ПО для какого-то устройства. Первоначальная цель моей работы была такой: сделать Smart Card CSP для системы Internet Banking корейского Kookmin Bank, по-русски – народный банк, некий аналог нашего Сбербанка, 13-ый рейтинг в мировой классификации крупнейших банков.

        Про все перипетии создания этого CSP я расскажу чуть позже, здесь же только отмечу, что в отличии от 1992 года, когда мне приходилось практически в одиночку решать все технические вопросы при создании системы защиты телеграфных авизо для Центрального Банка России: от разработки оригинального алгоритма вычисления кода подтверждения достоверности до обучения операционисток ЦБ работе с программной реализацией Криптоцентр-Авизо – в Корее я делал только строго определенную задачу – программную реализацию Smart Card CSP. Буквально сочетание «Smart Card» переводится на русский язык как «умная карта». Внутри карты есть простенький процессор, с помощью которого можно выполнять некоторые криптографические и не только криптографические операции. Некоторые операции можно выполнять на уровне hardware, т.е. с помощью команд, встроенных в архитектуру процессора. Как правило, эти операции выполняются достаточно быстро, типичным примером такой операции является выработка случайных чисел. Если какую-то операцию нельзя выполнить на уровне hardware, то в смарт-карте есть своя внутренняя операционная система, позволяющая программировать некоторые функции на языке, схожем с C или JAVA, однако такая функция, реализованная на уровне software, будет работать намного медленнее, чем на hardware. Например, выработку случайных ключей для алгоритма RSA реализовать в Smart Card на уровне software за разумное время практически невозможно.

    Саму смарт-карту создавала и программировала компания LG-Hitachi, причем японская Hitachi штамповала чипы и обеспечивала их начинку на уровне hardware: в частности, не сразу, а примерно через год японцы научились довольно быстро вырабатывать случайные ключи для алгоритма RSA на аппаратном уровне – технически это весьма нетривиальная проблема. Корейская LG писала необходимые программы (applets) для этих чипов, т.е. обеспечивала уровень software. Эти applets затем прописывались в чипы с помощью специальных устройств и образовывали так называемый набор APDU команд, с помощью которых осуществляется взаимодействие чипа с компьютером. Ну а моя работа – вставить эти APDU команды в текст программы для CSP.

    В Hitachi чипы проектировал японец Номура, веселый и общительный парень лет 30, я встречался с ним только один раз, когда он приезжал в Корею. Мне же, несмотря на неоднократные приглашения Номуры, съездить в Японию так и не удалось: для россиян слишком сложная процедура оформления японской визы. А в LG аплеты писал small mr. Lee – маленький мистер Ли, ибо в том подразделении LG, с которым мы контактировали, было целых три мистера Ли, и чтобы как-то их различать, пришлось обозвать их как Huge, Big and Small в соответствии с их служебным положением. Для себя я называл small mr. Lee просто Кирюшкой, он был очень похож на одного моего дачного знакомого. Кирюшка учился в Австралии и неплохо говорил по-английски. LG откомандировала его на Shinhwa и там у нас с ним сложился общий дуэт по окучиванию Kookmin Bank.

    Мой первый корейский босс – тоже мистер Ли (по моим впечатлениям, 40% корейцев – мистеры Ли, 30% – мистеры Кимы) – чем-то напоминал уже известного читателю по первой книге «Криптография и Свобода» российского г-на К. Но теперь у меня уже имелся опыт общения с подобными людьми, так что здесь я не питал лишних иллюзий. А вот Президент компании Shinhwa – мистер Хо – оставил о себе очень приятные воспоминания. Это был веселый, энергичный и очень активный человек, он постоянно организовывал различные интересные вылазки: то на корейский горнолыжный курорт, то на водных лыжах, то на «живой» концерт какой-то корейской рок-звезды, причем все расходы оплачивала компания Shinhwa.

    По корейским (хорошим) традициям каждая компания организовывает для своих сотрудников два раза в год – весной и осенью – пикники на природе. Россияне хорошо представляют себе смысл слова «пикник на природе», корейское понимание - примерно такое же. Обычно в пятницу в обед к офису компании подаются автобусы, люди и выпивка погружаются в них, и автобусы везут компанию километров за 150 на юг (на севере – Северная Корея) от Сеула. Там в придорожном кабачке пикник начинается, разгорается и т.д. в соответствии с корейскими стандартами, отличающимися от российских только тем, что вместо водки – корейская соджа, рисовая водка крепостью 24%. Часам к 12 ночи фирма опять погружается в автобусы, которые отвозят отдохнувших сотрудников в заранее забронированный отель, чаще всего напоминающий турбазу. Ночь в комнате в спартанских условиях (на полу, легкий матрац и соломенная подушка) и на утро – отрезвляющие мероприятия: спортивные изыскания, футбол, лазание по горам и т.п. Во второй половине дня пришедшая в себя фирма отвозится назад в Сеул до следующего пикника.

    К сожалению, где-то к 2005 году IT-бизнес (информационные технологии) компании Shinhwa забуксовал. Его основу составляли продажи какого-то устройства, которое к тому времени, по-видимому, уже морально устарело, а контракт с LG на поставку SmartCard CSP для Kookmin Bank, хотя и был к тому времени выполнен, но не принес желаемых финансовых дивидендов. Поэтому мистер Хо решил этот бизнес продать, а новый владелец собирался перепрофилировать компанию на BT-бизнес (био технологии). Все законно, владелец компании волен поступать со своей собственностью так, как ему заблагорассудиться. Но больше всего меня в этой истории поразило отношение старого и нового владельцев к персоналу фирмы: ведь многим сотрудникам, не желающим участвовать в BT-бизнесе (по-простому – работать на аптеку), в том числе и мне, предстояло искать себе новую работу.

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

    Сразу после прилета - в автобусы и в гонконгский диснейленд. Дерево Тарзана, путешествие по реке с полной имитацией живых горилл, бегемотов, жирафов, аборигенов-людоедов и извержения вулкана, 3D-кинотеатр, в котором до Miki Mouse так и хочется дотронуться рукой, веселая и радостная атмосфера праздника. Все три дня я с жадностью пытался все сфотографировать и снять на видео и, возможно, несколько помещенных ниже фотографий из этого турне помогут читателю тоже на мгновение окунуться в его атмосферу, полную чудес, юмора и фантазии, так необходимых для творческой работы.

Компания Shinhwa у главного входа в диснейленд.

Фонтан на входе в диснейленд.

Вулкан.

Дерево Тарзана.

Тарзан.

Вид с дерева Тарзана.

Самогонный аппарат Тарзана.

    Второй день был целиком посвящен самому Гонконгу.

    А на третий день нас повезли в китайский город Шенг-Шен, что в 30 минутах от Гонконга на электричке. Шенг-Шен вырос за последние 15 лет как на дрожжах за счет электроники, благо рынок – Гонконг – под боком. Там сейчас еще построили великолепный парк-музей китайской истории с имитацией Великой Китайской Стены.

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

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

    Однако, пора поговорить и о чем-то более существенном, чем о самогонном аппарате Тарзана и китайских развлекалочках. О криптографии более детально.



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