'; text ='
Криптография
и
Свобода
Книга 2
Михаил Масленников
Михаил Масленников
Криптография и свобода
Автограф
2014
- 2 -
ПРЕДИСЛОВИЕ
«Криптография и Свобода», которая была написана в Сеуле
почти десять лет тому назад.
Великолепная криптографическая школа, созданная в начале
60-х годов прошлого века прекрасными специалистами,
фанатами своей профессии, заслуживала того, чтобы о ней
узнали современные читатели. Школа как в прямом, так и в
переносном смысле, включающая в себя вольнолюбивый 4
факультет в специфической структуре Высшей
Краснознаменной Школы КГБ СССР, университетские
традиции, привнесенные на факультет его основателями,
уникальный состав преподавателей факультета,
интереснейшая специальность, дружный студенческий
коллектив. Теперь, после 30 с лишним лет с момента его
окончания стало совершенно очевидно, что
криптографическое образование - надежный и
востребованный капитал, остающийся в силе при всяких
политических катаклизмах в нашей и не только нашей стране.
материальных и интеллектуальных ценностей, не так
популярна, как в те 70-е годы: нефть, распределение
нефтяных денег, торговля, юристы и экономисты куда
понятнее и престижнее. Но тем, кто все же решил стать
инженером и связать свою жизнь с производством, а не
распределением, я хочу дать достаточно тривиальный совет:
попробуйте свои силы за границей. И совсем не обязательно
уезжать из России навсегда, иногда достаточно нескольких
лет, после чего тянет назад. Но вырваться в иное измерение,
иные условия труда, иные критерии оценки специалиста –
необходимо.
книге.
М.Масленников
Москва, 2011.
- 3 -
Оглавление
- 4 -
- 5 -
Корея
авантюру, схожую с принятым в молодости решением поступать
на 4 факультет Высшей Школы КГБ. Интуитивно ясно, что там
нужны специалисты-криптографы, но какова при этом будет
проза жизни в незнакомой стране?
факультете ВКШ в 1974 году, о Южной Корее в 2002 году было
известно, что это динамически развивающаяся страна, причем
развивающаяся исключительно за счет своей промышленности,
производящей известную всему миру электронику, бытовую
технику и автомобили. Как корейцы смогли построить такую
страну без нефти и газа? Что такое типичная корейская
компания, в которой мне предстояло работать? Ну и наконец
самый интересный для меня вопрос: что представляют из себя
корейские специалисты-криптографы?
годов) о Южной Корее писали не иначе, как о марионеточной
проамериканской стране. Возможно, какая-то доля истины в
этом и была: страна жила на американские дотации, которые
зачастую банально разворовывались - некий аналог легких
нефтяных денег в современной России. Но затем власть в Сеуле
захватили военные и, как теперь стало ясно, они навели порядок
в экономике. Вместо банального разворовывания деньги стали
вкладываться в закупку новых технологий и развитие
производства. Через 10 – 15 лет о Южной Корее заговорили как
об азиатском тигре и южнокорейские товары стали завоевывать
мир. Вот такая краткая и поучительная история со счастливым
концом про корейское экономическое чудо. Ну а мне предстояло
увидеть это чудо своими глазами и даже принять некоторое
участие в том, чтобы оно стало еще чудеснее. А причина, по
которой корейцы в 2002 году стали искать зарубежного
криптографа, была простая: у них накануне по Интернету
утащили из одного банка $50000. Это, конечно, не чеченские
авизо, но что-то на ту же тему. История получила широкую
огласку и, перефразируя популярную песню Андрея Макаревича,
корейский исполком забил в колокола.
- 6 -
криптографией. На мой взгляд, таких богатых криптографических
традиций, как в России, у корейцев нет, но они умудрились
примерно на 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 стали
ключевыми за все время моей работы в Южной Корее.
- 7 -
софтверная компания и каковы особенности работы в ней
российского специалиста? Здесь надо отметить, что помимо
российских программистов корейцы приглашают на работу также
программистов из других стран, но у россиян, как правило, более
основательное базовое образование. В компании 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 за разумное время практически невозможно.
Саму смарт-карту создавала и программировала компания
- 8 -
LG-Hitachi, причем японская Hitachi штамповала чипы и
обеспечивала их начинку на уровне hardware: в частности, не
сразу, а примерно через год японцы научились довольно быстро
вырабатывать случайные ключи для алгоритма RSA на
аппаратном уровне – технически это весьма нетривиальная
проблема. Корейская LG писала необходимые программы
(applets) для этих чипов, т.е. обеспечивала уровень software. Эти
applets затем прописывались в чипы с помощью специальных
устройств и образовывали так называемый набор APDU команд,
с помощью которых осуществляется взаимодействие чипа с
компьютером. Ну а моя работа – вставить эти APDU команды в
текст программы для CSP.
общительный парень лет 30, я встречался с ним только один
раз, когда он приезжал в Корею. Мне же, несмотря на
неоднократные приглашения Номуры, съездить в Японию так и
не удалось: для россиян слишком сложная процедура
оформления японской визы. А в LG аплеты писал small mr. Lee –
маленький мистер Ли, ибо в том подразделении LG, с которым
мы контактировали, было целых три мистера Ли, и чтобы как-то
их различать, пришлось обозвать их как Huge, Big and Small в
соответствии с их служебным положением. Для себя я называл
small mr. Lee просто Кирюшкой, он был очень похож на одного
моего дачного знакомого. Кирюшка учился в Австралии и
неплохо говорил по-английски. LG откомандировала его на
Shinhwa и там у нас с ним сложился общий дуэт по окучиванию
Kookmin Bank.
впечатлениям, 40% корейцев – мистеры Ли, 30% – мистеры
Кимы) – чем-то напоминал уже известного читателю по первой
книге «Криптография и Свобода» российского г-на К. Но теперь у
меня уже имелся опыт общения с подобными людьми, так что
здесь я не питал лишних иллюзий. А вот Президент компании
Shinhwa – мистер Хо – оставил о себе очень приятные
воспоминания. Это был веселый, энергичный и очень активный
человек, он постоянно организовывал различные интересные
вылазки: то на корейский горнолыжный курорт, то на водных
лыжах, то на «живой» концерт какой-то корейской рок-звезды,
- 9 -
причем все расходы оплачивала компания Shinhwa.
организовывает для своих сотрудников два раза в год – весной и
осенью – пикники на природе. Россияне хорошо представляют
себе смысл слова «пикник на природе», корейское понимание -
примерно такое же. Обычно в пятницу в обед к офису компании
подаются автобусы, люди и выпивка погружаются в них, и
автобусы везут компанию километров за 150 на юг (на севере –
Северная Корея) от Сеула. Там в придорожном кабачке пикник
начинается, разгорается и т.д. в соответствии с корейскими
стандартами, отличающимися от российских только тем, что
вместо водки – корейская соджа, рисовая водка крепостью 24%.
Часам к 12 ночи фирма опять погружается в автобусы, которые
отвозят отдохнувших сотрудников в заранее забронированный
отель, чаще всего напоминающий турбазу. Ночь в комнате в
спартанских условиях (на полу, легкий матрац и соломенная
подушка) и на утро – отрезвляющие мероприятия: спортивные
изыскания, футбол, лазание по горам и т.п. Во второй половине
дня пришедшая в себя фирма отвозится назад в Сеул до
следующего пикника.
(информационные технологии) компании Shinhwa забуксовал.
Его основу составляли продажи какого-то устройства, которое к
тому времени, по-видимому, уже морально устарело, а контракт
с LG на поставку SmartCard CSP для Kookmin Bank, хотя и был к
тому времени выполнен, но не принес желаемых финансовых
дивидендов. Поэтому мистер Хо решил этот бизнес продать, а
новый владелец собирался перепрофилировать компанию на
BT-бизнес (био технологии). Все законно, владелец компании
волен поступать со своей собственностью так, как ему
заблагорассудиться. Но больше всего меня в этой истории
поразило отношение старого и нового владельцев к персоналу
фирмы: ведь многим сотрудникам, не желающим участвовать в
BT-бизнесе (по-простому – работать на аптеку), в том числе и
мне, предстояло искать себе новую работу.
года, поэтому традиционный осенний пикник 2005 года новый и
- 10 -
Компания Shinhwa у главного входа в диснейленд.
старый владельцы решили провести в декабре 2005 года и
сделать его запоминающимся, чтобы у сотрудников не осталось
чувства обиды к компании. Вместо традиционной схемы: в
автобусы и на природу, фирма была полностью погружена в
самолет и отправилась на три дня в Гонконг.
Сразу после прилета - в автобусы и в гонконгский диснейленд.
Дерево Тарзана, путешествие по реке с полной имитацией
живых горилл, бегемотов, жирафов, аборигенов-людоедов и
извержения вулкана, 3D-кинотеатр, в котором до Miki Mouse так
и хочется дотронуться рукой, веселая и радостная атмосфера
праздника. Все три дня я с жадностью пытался все
сфотографировать и снять на видео и, возможно, несколько
помещенных ниже фотографий из этого турне помогут читателю
тоже на мгновение окунуться в его атмосферу, полную чудес,
юмора и фантазии, так необходимых для творческой работы.
- 11 -
- 12 -
И в заключение «китайского» дня было феерическое
представление с морем красок и огня.
Фонтан на входе в диснейленд.
Вулкан.
Дерево Тарзана.
Тарзан.
Вид с дерева Тарзана.
Самогонный аппарат Тарзана.
Второй день был целиком посвящен самому Гонконгу.
А на третий день нас повезли в китайский город Шенг-Шен, что в 30 минутах от Гонконга на электричке. Шенг-Шен вырос за последние 15 лет как на дрожжах за счет электроники, благо рынок – Гонконг – под боком. Там сейчас еще построили великолепный парк-музей китайской истории с имитацией Великой Китайской Стены.
- 13 -
Вот такие в Корее нравы и обычаи. Используя терминологию
программиста, я бы назвал Корею страной с дружественным
интерфейсом.
чем о самогонном аппарате Тарзана и китайских развлекалочках.
О криптографии более детально.
Международные криптографические стандарты
словосочетание «криптографические стандарты» было каким-то
нелепым. Основная задача – обеспечение стойкости шифра,
удобства его реализации – вторичны. Какие тут могут быть
стандарты! Криптосхема – понятие секретное, гриф секретности
всего на одну ступень ниже, чем у ключей. Таков был подход к
военной и государственной криптографии до появления
персональных компьютеров и Интернет.
криптографии. Вопросы стойкости отошли на второй план,
поскольку возможности компьютера позволяли реализовывать
любые криптографические фантазии: если DES (американский
Data Encryption Standard) вызывал какие-то сомнения в
стойкости из-за сравнительно короткого ключа, то крутим его 3
раза на разных ключах, получаем 3DES. На первый же план
вышли вопросы встраивания криптографических процедур в
общеизвестные приложения: электронную почту, текстовые
редакторы, файловую систему и т.п. Мои первые программы
больше напоминали «криптографические идеи чучхе» - весь
интерфейс свой, полностью выполняющий некоторый
законченный цикл задач, как, например, было в
автоматизированной системе электронного документооборота
TeleDoc. Практически с первого же дня пребывания в Корее
стало ясно, что здесь, в условиях высокоразвитых
информационных технологий, эти идеи устарели. Нужно
переучиваться жить по международным криптографическим
стандартам.
- 14 -
разработанный Microsoft интерфейс Cryptography Service
Provider, или сокращенно CSP. Это набор функций,
удовлетворяющих определенным правилам Microsoft, и
позволяющий выполнять наиболее типовые криптографические
задачи: выработку ключей, шифрование, хеширование, подпись
и проверку подписи и т.п. Все эти функции объединяются в
динамическую библиотеку, которая затем регистрируется под
уникальным именем в системном реестре Windows. Я позволю
себе без надобности не вдаваться слишком глубоко в
технические детали CSP, опасаясь что книга при этом будет
скучной для большинства нормальных читателей, которым они
неинтересны. Если же кто-то захочет узнать более подробно о
функциях интерфейса CSP, то для этих целей на сайте Microsoft
имеется обширная техническая документация. Нормальный
программист-разработчик приложений под Windows,
планирующий использовать в них криптографические функции,
просто обязан полностью перепахать всю документацию
Microsoft по CSP.
ленивых программистов (лень – двигатель прогресса), могу
пересказать CSP своими словами, как в советское время
пропагандисты пересказывали на политзанятиях политику
Коммунистической Партии и Советского Правительства. Не
спите, берите ручки, пишите конспект.
1)
экспортируемые криптографические функции, которые можно
вызывать напрямую: LoadLibrary -> GetProcAddress.
2)
специальный интерфейс CRYPTO API, значительно упрощающий
вызов функций CSP.
3)
которые правильно зарегистрированы в реестре Windows,
каждый зарегистрированный CSP имеет персональное
осмысленное имя (как правило, отличное от названия DLL) и
электронную подпись Microsoft.
4)
зарегистрировано несколько различных CSP от разных
- 15 -
производителей.
5)
программе загружать CSP не по названию DLL, а по его
зарегистрированному имени.
6)
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 свои
криптографические «изюминки». К таким «изюминкам», в первую
очередь, относится более надежное место хранения секретного
- 16 -
ключа, оригинальные алгоритмы шифрования, надежный
генератор случайных чисел, проверка оригинальных параметров
(у корейцев в 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-кода автоматически расшифровывалась и выдавалась
на экран такая картинка
- 17 -
С 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 изначально разрабатывался как специализированный
криптографический интерфейс для смарт-карт. Если заглянуть в
его документацию, то там основными понятиями являются слот и
- 18 -
токен – их можно наглядно интерпретировать как считыватель
смарт-карт и сама карта. Однако если хорошо покопаться в
основном меню 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.
- 19 -
Строго говоря, это не стандарт, а общедоступная, бесплатная,
наиболее популярная библиотека криптографических процедур,
выложенная вместе с исходными кодами на сайте OpenSSL. Но
прежде чем окунуться в OpenSSL - некоторые страницы
недавней криптографической истории. Я уже приводил их в книге
«Практическая криптография».
"В соответствии с решением Конгресса США (Закон 103-160 от
30 ноября 1993 г.), министру обороны предписывалось:
•
(NRC) провести детальное исследование по криптографическим
технологиям и национальной политике в области криптографии;
•
(NSA), Управлению высших исследовательских проектов
(ARPA) и другим органам министерства обороны, а также другим
федеральным органам оказывать полное содействие NRC в этой
работе….
В этом исследовании предлагалось дать оценку воздействия
криптографических технологий на интересы правительства США
по обеспечению национальной безопасности, интересы
правоохранительной деятельности правительства США,
коммерческие интересы промышленности США и интересы
охраны неприкосновенности личной жизни граждан США, а
также влияния контроля над экспортом криптографических
технологий на коммерческие интересы промышленности
США….
Отчет был подготовлен комитетом из 16 специалистов,
представляющих науку (информатику, правоведение, медицину),
государственные учреждения, частные фирмы и банки, и
отрецензирован другой группой экспертов. Предварительная
версия отчета вышла 30 мая 1996 г. и распространялась
(бесплатно) издательством, а также доступна по Интернету в
виде фотокопий страниц по http://www.nap.edu/readingroom/…
Комитет пришел к выводу, что преимущества широкого
распространения криптографии перевешивают его недостатки, и
призвал к изменению национальной политики в криптографии.
Эта политика должна преследовать следующие цели:
•
элементов американского общества;
- 20 -
•
отраслей промышленности США в глобальной экономике, в том
числе (но не только) производства компьютеров, программного
обеспечения и средств связи;
•
внутренних угроз.
Рекомендации комитета по национальной криптографической
политике включают следующее.
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.)
Американцы и здесь стали законодателями криптографической
- 21 -
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
моды. Десятилетиями проповедовавшаяся идеология
секретности в криптографии впервые рухнула в Америке. На
рубеже 2000-х годов надежные криптографические алгоритмы
стали достоянием гражданской криптографии, конкретным и
ощутимым ударом по этой идеологии секретности стал OpenSSL.
На мой взгляд, OpenSSL наиболее полно сочетает в себе
криптографию и свободу. Свободу творчества и обмена
криптографическими идеями и технологиями.
Вот оригинальные условия использования исходного кода из
OpenSSL:
- 22 -
Вкратце эти условия можно пересказать так: вот вам исходники,
делайте с ними все, что хотите, только не забудьте при этом
упомянуть их авторов, и в первую очередь Эрика Янга.
Не забудем! Эрик Янг, Тим Хадсон и вся команда OpenSSL
сделали для популяризации криптографических методов намного
больше, чем все АНБ, КГБ-ФАПСИ-ФСБ и прочие секретные
ведомства, вместе взятые. Ибо в OpenSSL приведены хорошо
отлаженные исходные коды практически всех современных
криптографических алгоритмов. Отпал вечный вопрос о
закладках и «потайных ходах» - влезайте в исходники и можете
сами убедиться в их честности.
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.]
- 23 -
Сам принцип широкой открытой публикации довольно сложных
криптографических алгоритмов является гарантией отсутствия в
них каких-то критических ошибок или неоптимальных методов
реализации: тестировщиков – миллионы, если разработчики что
то проглядели – моментально выявят и подправят.
Появление OpenSSL решило и еще одну важную задачу:
ликвидацию самопальных разработок криптографических
алгоритмов. Ведь любой программист, начиная создавать какую
то криптографическую программу, интуитивно пытается сам
реализовать основные необходимые криптографические
алгоритмы: RSA, DES, RC 2 – 5, SHA1, MD 2 – 5 и т.п.
Оказывается, что этого делать не надо, как, например, не надо
писать своей операционной системы. В OpenSSL есть уже
готовые исходные коды, распространяемые свободно и
бесплатно. Нужно только не прятать голову под