?

Log in

No account? Create an account
entries friends calendar profile Previous Previous Next Next
March 27th, 2012 - mikhailmasl

"Криптография и Свобода 2" - это продолжение первой книги "Криптография и Свобода", которую я выложил в свой ЖЖ почти четыре года назад. Большим сюрпризюм для меня был достаточно большой интерес читателей к этой книге. Возможно, что сама тема криптографии, подготовки специалистов-криптографов и их дальнейшей судьбы в наше время представляют интерес уже потому, что советская криптография - это одна из тех немногих сфер, где СССР реально был законодателем мировой моды. Но это было давно, около 30 лет назад, и криптографию не мог не затронуть тот общий развал, который произошел в нашей стране на рубеже 90-х годов прошлого века. Развитие криптографии в России практически остановилось, а во всем мире, наоборот, ускорилось. Криптографические методы, секретные ключи и сертификаты открытых ключей из экзотических стали превращаться в повседневные, бытовые понятия, появились электронные платежи, Internet Banking, ЭЦП, системы электронной аутентификации и многое другое, без чего сейчас немыслимо существование человека в развитых странах. А российским криптографам оставалось только завидовать этому прогрессу, который очень мало затронул Россию в "лихие" 90-е. У тех из них, кто не собирался связывать свою судьбу с "чиновничьим бизнесом", все чаще стало возникать желание уехать за границу.

    Обо всем этом я написал в первой книге "Криптография и Свобода". И вот - "Криптография и Свобода - 2", своеобразные "заметки криптографического натуралиста" о жизни и работе в Южной Корее.



Содержание.

ПРЕДИСЛОВИЕ

Корея

Международные криптографические стандарты
Public Key Infrasturcture (PKI)
Сеул
Сказка про числа, которые не хотели ни с кем делиться
RSA vs EC
Криптографическое мироздание
Назад в будущее
MCSSHA

12 мая 1943 года

Мой корейский фотоальбом

Продолжение
В начало книги Криптография и Свобода
WEB-сайт автора: http://broadband-77-37-134-143.ip.moscow.rt.ru

3 comments or Leave a comment

ПРЕДИСЛОВИЕ

          Я благодарен всем, кто прочитал мою первую книгу «Криптография и Свобода», которая была написана в Сеуле почти десять лет тому назад.

Великолепная криптографическая школа, созданная в начале 60-х годов прошлого века прекрасными специалистами, фанатами своей профессии, заслуживала того, чтобы о ней узнали современные читатели. Школа как в прямом, так и в переносном смысле, включающая в себя вольнолюбивый 4 факультет в специфической структуре Высшей Краснознаменной Школы КГБ СССР, университетские традиции, привнесенные на факультет его основателями, уникальный состав преподавателей факультета, интереснейшая специальность, дружный студенческий коллектив. Теперь, после 30 с лишним лет с момента его окончания стало совершенно очевидно, что криптографическое образование - надежный и востребованный капитал, остающийся в силе при всяких политических катаклизмах в нашей и не только нашей стране.

        Сейчас, к сожалению, профессия инженера, создателя материальных и интеллектуальных ценностей, не так популярна, как в те 70-е годы: нефть, распределение нефтяных денег, торговля, юристы и экономисты куда понятнее и престижнее. Но тем, кто все же решил стать инженером и связать свою жизнь с производством, а не распределением, я хочу дать достаточно тривиальный совет: попробуйте свои силы за границей. И совсем не обязательно уезжать из России навсегда, иногда достаточно нескольких лет, после чего тянет назад. Но вырваться в иное измерение, иные условия труда, иные критерии оценки специалиста – необходимо.

        Про то, как мне довелось постигать эти истины – в этой книге.

М.Масленников

Москва, 2011 - 2012.

Назад                                   Продолжение

Leave a comment

Корея

        По большому счету, поездка в Корею напоминала авантюру, схожую с принятым в молодости решением поступать на 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

2 comments or Leave a comment

Международные криптографические стандарты

    В моей «прошлой» криптографической жизни (в КГБ) само словосочетание «криптографические стандарты» было каким-то нелепым. Основная задача – обеспечение стойкости шифра, удобства его реализации – вторичны. Какие тут могут быть стандарты! Криптосхема – понятие секретное, гриф секретности всего на одну ступень ниже, чем у ключей. Таков был подход к военной и государственной криптографии до появления персональных компьютеров и Интернет.

    Появление компьютеров положило начало гражданской криптографии. Вопросы стойкости отошли на второй план, поскольку возможности компьютера позволяли реализовывать любые криптографические фантазии: если DES (американский Data Encryption Standard) вызывал какие-то сомнения в стойкости из-за сравнительно короткого ключа, то крутим его 3 раза на разных ключах, получаем 3DES. На первый же план вышли вопросы встраивания криптографических процедур в общеизвестные приложения: электронную почту, текстовые редакторы, файловую систему и т.п. Мои первые программы больше напоминали «криптографические идеи чучхе» - весь интерфейс свой, полностью выполняющий некоторый законченный цикл задач, как, например, было в автоматизированной системе электронного документооборота TeleDoc. Практически с первого же дня пребывания в Корее стало ясно, что здесь, в условиях высокоразвитых информационных технологий, эти идеи устарели. Нужно переучиваться жить по международным криптографическим стандартам.

    К таким стандартам, в первую очередь, я бы отнес разработанный Microsoft интерфейс Cryptography Service Provider, или сокращенно CSP. Это набор функций, удовлетворяющих определенным правилам Microsoft, и позволяющий выполнять наиболее типовые криптографические задачи: выработку ключей, шифрование, хеширование, подпись и проверку подписи и т.п. Все эти функции объединяются в динамическую библиотеку, которая затем регистрируется под уникальным именем в системном реестре Windows. Я позволю себе без надобности не вдаваться слишком глубоко в технические детали CSP, опасаясь что книга при этом будет скучной для большинства нормальных читателей, которым они неинтересны. Если же кто-то захочет узнать более подробно о функциях интерфейса CSP, то для этих целей на сайте Microsoft имеется обширная техническая документация. Нормальный программист-разработчик приложений под Windows, планирующий использовать в них криптографические функции, просто обязан полностью перепахать всю документацию Microsoft по CSP.

    Для «криптографических обывателей», да и просто для ленивых программистов (лень – двигатель прогресса), могу пересказать CSP своими словами, как в советское время пропагандисты пересказывали на политзанятиях политику Коммунистической Партии и Советского Правительства. Не спите, берите ручки, пишите конспект.

  1. CSP – обычная динамическая библиотека, содержащая экспортируемые криптографические функции, которые можно вызывать напрямую: LoadLibrary -> GetProcAddress.
  2. Для удобства программистов Microsoft встроил в Windows специальный интерфейс CRYPTO API, значительно упрощающий вызов функций CSP.
  3. Интерфейс CRYPTO API поддерживает только те CSP, которые правильно зарегистрированы в реестре Windows, каждый зарегистрированный CSP имеет персональное осмысленное имя (как правило, отличное от названия DLL) и электронную подпись Microsoft.
  4. На каждом компьютере может быть установлено и зарегистрировано несколько различных CSP от разных производителей.
  5. Интерфейс CRYPTO API дает возможность прикладной программе загружать CSP не по названию DLL, а по его зарегистрированному имени.
  6. В операционную систему Windows уже включены несколько CSP от Microsoft.

Вопросы будут? Будут. Что такое электронная подпись Microsoft?

Ну это такая, на первый взгляд неприятная заморочка для разработчиков CSP, когда готовую к реализации библиотеку CSP надо еще послать в Microsoft, чтобы там ее подписали. Пишешь-пишешь код библиотеки CSP, а проверить его толком – проблема, не будешь же чуть ли не каждый день посылать свой полуфабрикат в MS! Тут надо заметить, что процедура эта абсолютно бесплатная и MS, как правило, в трехдневный срок возвращает подписанную библиотеку.

Первые года два моего пребывания в Корее я прямолинейно слал свой CSP на подпись в MS, через день-два всплывали новые глюки, код CSP исправлялся и опять отсылался по тому же адресу. Один раз меня там «взяли на заметку» и прислали такой нестандартный ответ:

Hi Reed,

Is it okay to sign this?

    В переводе на русский – достал уже. Стало ясно, что нужен иной подход. Описанный на сайте MS способ тестирования – временное переопределение CRYPTO API – неудобен и работает только под Windows-2000.

Решение нашлось простое и универсальное. Полностью выдавать свои профессиональные тайны не буду, а только намекну: ни к чему посылать в MS все CSP, достаточно и одного кусочка, но такого, что следующие 4 года я в MS не посылал ничего. Сразу наступили тишина и спокойствие...

Проснувшийся advanced user с задней парты непременно задаст и такой вопрос: а зачем вообще надо писать свои CSP, если в Windows уже есть встроенные от MS? Отвечаю: для того, чтобы культурно, ничего не ломая, встроить в Windows свои криптографические «изюминки». К таким «изюминкам», в первую очередь, относится более надежное место хранения секретного ключа, оригинальные алгоритмы шифрования, надежный генератор случайных чисел, проверка оригинальных параметров (у корейцев в Internet Banking проверяется национальный ID, аналог нашего ИНН) и т.п. А Microsoft Base Cryptographic Provider хорошо использовать в каких-то бытовых целях, например, в Outlook при шифровании писем к girlfriend.

Вот вкратце и все общие сведения о CSP. Разработчик, создавший свой оригинальный CSP в строгом соответствии с канонами MS, в качестве бонуса получает возможность его использования в огромной гамме приложений под Windows: IE, Outlook, VPN, IPSEC, WinLogOn, Adobe Acrobat и прочая, прочая, прочая... Любимым развлечением у моих корейцев была демонстрация потенциальным покупателям возможностей SmartCard CSP в встроенной в Windows Vista системе шифрования файлов (EFS) – после подсоединения Smart Card и ввода PIN-кода автоматически расшифровывалась и выдавалась на экран такая картинка



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

2 comments or Leave a comment

С CSP мы еще неоднократно встретимся в этой книге, это, на мой взгляд, одна из основных криптографических рабочих лошадок в современном мире информационных технологий. CSP придумывали и разрабатывали, как мне кажется, в первую очередь практики, стремясь сделать простыми и удобными основные криптографические функции в операционной системе Windows. А вот аббревиатуру PKCS - Public-Key Cryptography Standards – придумали в специализированной криптографической RSA Laboratories люди, более склонные к теоретическим исследованиям и математическим моделям. В этих стандартах расписаны общие принципы решения наиболее типовых криптографических задач, например, как из пароля пользователя выработать секретные ключи для некоторого шифра (PKCS # 5), как создать запрос на сертификат (PKCS # 10) и т.п.

И опять же, стараясь не навязывать обычному читателю скучный набор описаний этих стандартов, я отсылаю программистов на сайт RSA Laboratories – там все строго и дисциплинированно. А с остальными мы немного поговорим о PKCS # 11 – в некотором роде аналоге-конкуренте CSP.

Если взять наиболее распространенный в Windows браузер – Internet Explorer – то в нем все криптографические операции выполняет CSP. Использование криптографических операций встречается в IE довольно часто, например, когда вы заходите на сайт по протоколу SSL: в этом случае весь ваш трафик шифруется с использованием одноразового session key, который также вырабатывается с помощью CSP. А вот в другом и тоже довольно популярном браузере – Mozilla Firefox – все криптографические операции выполняются с помощью PKCS # 11.

CSP жестко привязан к Windows, в другой операционной системе он не работает, поскольку там нет CRYPTO API от MS. PKCS #11, наоборот, не зависит от каких-то специфических интерфейсов, поэтому Firefox работает как в Windows, так и в Linux, MAC OS и прочих альтернативах MS. И, кстати, никаких хитрых подписей в библиотеке PKCS # 11 не требуется.

PKCS # 11 изначально разрабатывался как специализированный криптографический интерфейс для смарт-карт. Если заглянуть в его документацию, то там основными понятиями являются слот и токен – их можно наглядно интерпретировать как считыватель смарт-карт и сама карта. Однако если хорошо покопаться в основном меню Mozilla Firefox, то можно найти раздел «Устройства защиты», а в нем всегда присутствует NSS Internal PKCS # 11 Module – встроенный в этот браузер внутренний модуль PKCS # 11, в котором слоты и токены – не «железо», а некоторые виртуальные объекты. Никто не запрещает программисту написать свой PKCS # 11 тоже с виртуальными слотами и токенами. Однако в большинстве случаев интерфейс PKCS # 11 входит в комплект поставки смарт-карты как универсальное средство использования этой карты в программных приложениях.

Корейцы, естественно, после того, как была наглядно доказана порочность хранения секретного ключа для Internet Banking в оперативной памяти компьютера, заинтересовались PKCS # 11. Эволюция, по моим грубым прикидкам, происходила примерно так:

1998 – 2003 – первая версия Internet Banking, для диалога с банковским сервером используется технология ActiveX с собственными внутренними криптографическими функциями. Возможности использования CSP заложены, но реально не работают, все ключи – в памяти компьютера.

2003 – 2006 – появляется возможность использования Smart Card CSP, где секретные ключи всегда находятся только внутри Smart Card. Для диалога с банковским сервером – прежний чуть доработанный ActiveX, ориентированный на CSP.

2006 – 2009 – появляется ActiveX, ориентированный на PKCS # 11. В 2007 году корейское KISA (Korean Information Security Agency) объявляет открытый конкурс на разработку чипа для смарт-карты и интерфейса PKCS #11 к нему.

Таким образом, у корейцев произошло смещение первоначальных приоритетов от CSP к PKCS # 11. На мой взгляд, это объективный процесс, поскольку PKCS # 11 более универсален и многообразен, хотя на первый взгляд кажется громоздким.

Ну и в заключение о стандарте PKCS # 11: в 2008 году KISA выдала первые 7 сертификатов, из них в 3 использовалась моя разработка PKCS # 11.

А теперь, наконец, о моем самом любимом криптографическом стандарте – OpenSSL. Строго говоря, это не стандарт, а общедоступная, бесплатная, наиболее популярная библиотека криптографических процедур, выложенная вместе с исходными кодами на сайте OpenSSL. Но прежде чем окунуться в OpenSSL - некоторые страницы недавней криптографической истории. Я уже приводил их в книге «Практическая криптография».

"В соответствии с решением Конгресса США (Закон 103-160 от 30 ноября 1993 г.), министру обороны предписывалось:

  1. поручить Национальному совету по исследованиям (NRC) провести детальное исследование по криптографическим технологиям и национальной политике в области криптографии;
  2. дать указание Национальному агентству безопасности (NSA), Управлению высших исследовательских проектов (ARPA) и другим органам министерства обороны, а также другим федеральным органам оказывать полное содействие NRC в этой работе….

В этом исследовании предлагалось дать оценку воздействия криптографических технологий на интересы правительства США по обеспечению национальной безопасности, интересы правоохранительной деятельности правительства США, коммерческие интересы промышленности США и интересы охраны неприкосновенности личной жизни граждан США, а также влияния контроля над экспортом криптографических технологий на коммерческие интересы промышленности США….

Отчет был подготовлен комитетом из 16 специалистов, представляющих науку (информатику, правоведение, медицину), государственные учреждения, частные фирмы и банки, и отрецензирован другой группой экспертов. Предварительная версия отчета вышла 30 мая 1996 г. и распространялась (бесплатно) издательством, а также доступна по Интернету в виде фотокопий страниц по http://www.nap.edu/readingroom/…

Комитет пришел к выводу, что преимущества широкого распространения криптографии перевешивают его недостатки, и призвал к изменению национальной политики в криптографии. Эта политика должна преследовать следующие цели:

        широкая доступность криптографии для всех законных элементов американского общества;

        дальнейший экономический рост и лидерство ключевых отраслей промышленности США в глобальной экономике, в том числе (но не только) производства компьютеров, программного обеспечения и средств связи;

        общественная безопасность и защита от внешних и внутренних угроз.

Рекомендации комитета по национальной криптографической политике включают следующее.

  1. Никакой закон не должен препятствовать производству, продаже или использованию любых видов шифрования в пределах США.
  2. Национальная политика по криптографии должна разрабатываться исполнительной и законодательной ветвями власти на основе открытого публичного обсуждения и основываться на подчинении закону.
  3. Национальная политика по криптографии в отношении разработки и использования коммерческой криптографии должна лучше согласовываться с силами рынка.
  4. Экспортные ограничения на криптографию должны постепенно смягчаться, но не должны быть отменены полностью.
  5. Правительство должно принять меры, чтобы помочь правоохранительным органам и органам национальной безопасности приспособиться к новым техническим реальностям информационного века.
  6. Правительство должно разработать механизмы для обеспечения информационной безопасности в частном секторе."

Это выдержка из американского отчета "Роль криптографии в обеспечении безопасности информационного общества" (Cryptography's Role in Securing the Information Society. Kenneth W. Dam and Herbert S. Lin, Editors. Committee to Study National Cryptography Policy, Computer Science and Telecommunications Board, Commission on Physical Sciences, Mathematics, and Applications; National Research Council. National Academy Press, Washington D.C., 1996, 688 p., index. Library of Congress Catalog Number 96-68943, ISBN 0-309-05475-3.)

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

Вот оригинальные условия использования исходного кода из OpenSSL:

Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)

All rights reserved.

This package is an SSL implementation written

by Eric Young (eay@cryptsoft.com).

The implementation was written so as to conform with Netscapes SSL.

This library is free for commercial and non-commercial use as long as

the following conditions are aheared to. The following conditions

apply to all code found in this distribution, be it the RC4, RSA,

lhash, DES, etc., code; not just the SSL code. The SSL documentation

included with this distribution is covered by the same copyright terms

except that the holder is Tim Hudson (tjh@cryptsoft.com).

Copyright remains Eric Young's, and as such any Copyright notices in

the code are not to be removed.

If this package is used in a product, Eric Young should be given attribution

as the author of the parts of the library used.

This can be in the form of a textual message at program startup or

in documentation (online or textual) provided with the package.

Redistribution and use in source and binary forms, with or without

modification, are permitted provided that the following conditions

are met:

1. Redistributions of source code must retain the copyright

notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright

notice, this list of conditions and the following disclaimer in the

documentation and/or other materials provided with the distribution.

3. All advertising materials mentioning features or use of this software

must display the following acknowledgement:

"This product includes cryptographic software written by

Eric Young (eay@cryptsoft.com)"

The word 'cryptographic' can be left out if the rouines from the library

being used are not cryptographic related.

4. If you include any Windows specific code (or a derivative thereof) from

the apps directory (application code) you must include an acknowledgement:

"This product includes software written by Tim Hudson (tjh@cryptsoft.com)"

THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND

ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE

ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE

FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL

DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS

OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)

HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT

LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY

OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

SUCH DAMAGE.

The licence and distribution terms for any publically available version or

derivative of this code cannot be changed. i.e. this code cannot simply be

copied and put under another distribution licence

[including the GNU Public Licence.]

Вкратце эти условия можно пересказать так: вот вам исходники, делайте с ними все, что хотите, только не забудьте при этом упомянуть их авторов, и в первую очередь Эрика Янга.

Не забудем! Эрик Янг, Тим Хадсон и вся команда OpenSSL сделали для популяризации криптографических методов намного больше, чем все АНБ, КГБ-ФАПСИ-ФСБ и прочие секретные ведомства, вместе взятые. Ибо в OpenSSL приведены хорошо отлаженные исходные коды практически всех современных криптографических алгоритмов. Отпал вечный вопрос о закладках и «потайных ходах» - влезайте в исходники и можете сами убедиться в их честности. Сам принцип широкой открытой публикации довольно сложных криптографических алгоритмов является гарантией отсутствия в них каких-то критических ошибок или неоптимальных методов реализации: тестировщиков – миллионы, если разработчики что-то проглядели – моментально выявят и подправят.

Появление OpenSSL решило и еще одну важную задачу: ликвидацию самопальных разработок криптографических алгоритмов. Ведь любой программист, начиная создавать какую-то криптографическую программу, интуитивно пытается сам реализовать основные необходимые криптографические алгоритмы: RSA, DES, RC 2 5, SHA1, MD 2 5 и т.п. Оказывается, что этого делать не надо, как, например, не надо писать своей операционной системы. В OpenSSL есть уже готовые исходные коды, распространяемые свободно и бесплатно. Нужно только не прятать голову под крыло и честно признаться, что коды взяты из OpenSSL.

К такому выводу я пришел примерно через 2 года работы в Корее. А начало было такое...

У корейцев была самопальная разработка основных криптографических алгоритмов, ее осуществляла компания ETRI в исследовательском центре города Дей-Джона. OpenSSL в те времена (2002-2003 гг.) по каким-то причинам в Корее не использовалась. Прямо в аэропорту мой новый корейский босс – мистер Ли – ставит мне задачу: разработать CSP. Примерно через месяц становится ясно, что нужны готовые реализации базовых криптографических алгоритмов, а про OpenSSL в то время у меня были еще достаточно смутные представления. И тут мистер Ли приходит мне на помощь: садится на свою машину и едет в Дей-Джон, примерно за 100 километров от Сеула, добывать на ETRI исходники базовых криптографических алгоритмов. Как он там их добывал – неизвестно. Но к концу дня довольный мистер Ли привез из Дей-Джона флешку с исходниками ETRI – прямо сюжет для очередной серии мультфильма «Шпионские страсти»: по заданию бывшего подполковника КГБ из корейского исследовательского центра крадутся исходные тексты криптографичеких программ, аналоги которых выложены в OpenSSL. Предлагаю этот сюжет всем желающим на основе лицензионного соглашения OpenSSL.

После двух лет работы в Корее, когда я уже ясно представлял себе, что такое OpenSSL, я «под ноль, бульдозером» выкорчевал из всех своих программ продукцию ETRI и заменил ее на OpenSSL.

..............................

Криптографического самопала в России – море. Когда я вернулся в Россию на криптографическую софтверную фирму, то сразу же честно признался, что моими любимыми продуктами являются Borland C++ Builder и OpenSSL. Первая реакция: Borland – загнивает (уже лет 20 и никак не загниет), а OpenSSL – чуждый зарубежный продукт. Нужно все свое. Про свое – не новая песня, ее (заменим все зарубежное ПО на свое) пели около пяти лет назад даже некоторые высокопоставленные чиновники. Однако, как говорил В.С. Высоцкий, «Пусть жизнь рассудит...» Примерно через те же два года OpenSSL и в России был признан как светлое будущее всех прогрессивных криптографов, а самопал стали выкорчевывать и заменять на Эрика Янга. Диалектика!


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

4 comments or Leave a comment