Полная версия
Невероятное. Рассказ о работе советского криптографа в Южной Корее
Пора искать работу за пределами Российской Федерации.
Осенью 2002 года поиск зарубежного работодателя в Интернете завершился успешно. Предложение из Южной Кореи, требуется специалист-криптограф. Для чего – я тогда еще не знал.
Я сразу же сказал на проводившемся по Интернету собеседовании, что до 1994 года был на военной службе подполковником КГБ, а на криптографа учился на 4 факультете Высшей школы КГБ СССР. Работодателя это нисколько не смутило. Гораздо больше его интересовали мои работы по криптографической защите Центрального Банка России и банка «Возрождение». Собеседование прошло успешно.
Самолет «Аэрофлота» подлетал к Сеульскому аэропорту Инчхон. Кто и как меня там встретит? Как мы будем общаться, на каком языке? Где я буду жить? Как начнется моя работа в корейской компании? Что делать в выходные? А вдруг в Южной Корее тоже есть какие-то законодательные запреты в области криптографии?
Эти и многие другие вопросы вызывали некоторое волнение и опасения. Все они оказались напрасными, это сказывалась привычка к «советскому образу жизни» с его запретами и проблемами на каждом шагу.
Мое первое очное знакомство с корейским работодателем прошло успешно. Мы общались с ним по-английски, моих познаний в этом языке со времен экзаменов кандидатского минимума оказалось вполне достаточно. Никаких запретов в области криптографии в Южной Корее нет, условия жизни – нормальные, отдельный номер в гостинице, оплачивает жилье компания. Я с головой погрузился в свою любимую работу, а по выходным – лазил по корейским горам.
Они расположены тут же, в Сеуле, и в них развернуты национальные парки для отдыха. Южная Корея – территориально весьма небольшая страна, ее размер сравним с размером Московской области, 70% территории – горы. Дачных участков практически ни у кого нет, по выходным жители Сеула в большинстве своем отправляются в национальные парки лазить по горам. До этих парков легко добраться на метро.
Вершина корейской горы Добонгсан
KISA
Иногда в России мне приходилось спрашивать у криптографических чиновников:
– Как вы относитесь к международным криптографическим стандартам?
Типовой ответ:
– У нас свои стандарты.
А один на стене своего служебного кабинета в ФАПСИ даже повесил плакат
– Тот, кто встроил RSA, тот проныра и лиса.
Вот такие в России «идеи чучхе». Почему-то криптографические чиновники считают оторванность российской криптографии от цивилизованного мира за благо. «Мы сами себе придумываем свои криптографические стандарты, нам Америка не указ!»
Лукавят! Не все российские криптографические стандарты придуманы в России. Все, что касается открытых ключей и электронной подписи, придумали американские криптографы. Я писал об этом в книге «Маркант».
Но главное не в том, кто и что придумал, а в том, как использовать криптографические алгоритмы.
Если вы создаете какой-то сложный программный комплекс, например, систему Интернет-банкинга, ориентированную на неопределенный круг потребителей (помните – «количество подписчиков онлайн-банкинга составляло 23 миллиона, что составляет около половины населения страны»), то ваш программный комплекс должен будет работать с типовыми устройствами и типовой операционной системой, которыми пользуется этот неопределенный круг потребителей в своей повседневной жизни. Если в свободной стране вы начнете создавать какие-то надуманные проблемы миллионам пользователей, то они просто не будут использовать ваш Интернет-банкинг и закажут его создание другой фирме.
Типичный пример надуманных проблем, создаваемых в России криптографическими чиновниками, – это запрет общепринятых международных стандартов и, в первую очередь, запрет асимметричного алгоритма RSA. Разумных объяснений этим запретам нет, так захотели чиновники и все тут. И, к огромному сожалению, эти чиновники получили практически неограниченные права все запрещать, не неся при этом ни малейшей ответственности за последствия, вызываемые этими необоснованными запретами.
В Южной Корее я наконец-то выбрался из российского криптографического «королевства кривых зеркал». Полстраны пользовались Интернет-банкингом не потому, что разрешили чиновники, а потому, что это было удобно. Хотя криптографические чиновники в Южной Корее тоже есть, но само название их организации – Korean Information Security Agency (KISA) – для уха российского криптографа звучало ласково и по-домашнему тепло. Они не создавали никаких идиотских запретов, а наоборот, иногда очень даже помогали. Далее в этой книге я расскажу, когда и при каких обстоятельствах мне пришлось иметь дело с KISA.
Естественно, что никто в Южной Корее не считал криптографию и создание криптографических программ чем-то особенным, требующим каких-то лицензий и сертификатов от KISA. Используй при этом все, что необходимо и удобно, главное – чтобы работало и было востребовано конечным пользователем. Создать как-то иначе Интернет-банкинг, которым пользуется полстраны, просто невозможно. Нужно для создания более безопасного Интернет-банкинга привлечь иностранного криптографа – пожалуйста, никакого разрешения KISA для этого тоже не требовалось.
Олимпийский парк в Сеуле. Скульптура «Указующий перст».
Пьяный алгоритм RSA
Взявшись за написание этой книги, я сам себе дал слово писать ее как можно более простым языком, по возможности избегать сложных математических формул и терминов. Книга должна быть интересной обычному читателю, который не должен напрягаться от чего-то непонятного. Непонятно – значит надо разъяснить как можно более простыми словами и примерами.
Как я упоминал выше, в 2003 году малазиец Гекке Краай пишет про Интеренет-банкинг Южной Кореи: «Это был первый случай взлома и ограбления счета онлайн-банкинга в Южной Корее, лидере по количеству пользователей высокоскоростного Интернета» Сам случай произошел в 2002 году. А когда в Южной Корее запустили систему Интернет-банкинга?
Корейский Интернет-банкинг был тесно связан с криптографией. В нем использовалась криптографическая аутентификация и электронная цифровая подпись. В свою очередь, эти два понятия тесно связаны с асимметричной криптографией и цифровыми сертификатами.
Когда какой-то человек приходит в отделение банка, то его просят представиться: кто вы и что вам здесь надо. Если тот же человек пытается зайти на банковский сервер, то сервер делает фактически то же самое – пытается проверить подлинность и цели обратившегося к нему клиента. А как это сделать? Одним из распространенных методов проверки подлинности клиента является его криптографическая аутентификация, т.е. проверка подлинности с помощью криптографических методов.
Криптографическая аутентификация предполагает проверку электронно-цифровой подписи (ЭЦП) клиента. А нормальная ЭЦП, в свою очередь, предполагает наличие у клиента ключа для подписи, а у сервера – ключа для проверки подписи клиента. Ключ, с помощью которого клиент осуществляет подпись, называется private key, а ключ, с помощью которого сервер осуществляет проверку подписи клиента – public key. По-русски – закрытые и открытые ключи. Закрытый ключ иногда именуют секретным, а открытый – публичным.
Вопросы и ответы.
Есть ли у клиента его открытый ключ?
Есть.
Есть ли у сервера закрытый ключ клиента?
Нет.
Связаны ли между собой закрытые и открытые ключи?
Да, связаны, каждому закрытому ключу соответствует строго определенный открытый ключ.
Можно ли по закрытому ключу определить открытый ключ?
Да.
Можно ли по открытому ключу определить закрытый?
Нет.
Теперь о сертификате. Открытый ключ еще называют публичным, потому что он у всех на виду. А появляться на публике голому открытому ключу просто неприлично. Вот его приодевают и приукрашивают в специальной организации, называемой Центром Сертификации (ЦС) или, по терминологии Microsoft, Certification Authority (CA). Приодетый и приукрашенный открытый ключ, получивший в ЦС персональную ЭЦП, и принято называть сертификатом.
Как приодевают и приукрашивают в ЦС открытый ключ – особая песня. Различных атрибутов в сертификате может быть великое множество: фамилия, имя, отчество владельца, его должность, место работы, место жительства, электронная почта и т.д. и т.п. Указывается также назначение ключа (key usage или extended key usage): для подписи или шифрования электронной почты, для идентификации пользователя на сервере, для подписи программных кодов, для EFS (Encrypted File System) и прочая, прочая, прочая. В сертификате обязательно присутствуют срок действия ключа и электронная подпись ЦС. Здесь опять же, пробегая галопом по такой необъятной теме, как состав информации, включаемой в сертификат, я руководствовался принципами гуманизма к обычному читателю, стараясь не перегружать далекого от криптографии человека всеми нюансами, связанными с созданием в современных информационных системах персональных сертификатов. Вкратце: это «одетый» открытый ключ, получивший «паспорт» – персональную ЭЦП в ЦС. «Одежд» может быть много, иногда и самых экзотических: корейцы, например, включают в свои сертификаты хеш-функцию от национального ID и некоторого случайного числа – это их персональный атрибут, который называется KR, по-видимому, Korean Random.
Читаем Википедию.
«Инфраструктура открытых ключей (ИОК, англ. PKI – public key infrastructure) – набор средств (технических, материальных, людских и т. д.), распределённых служб и компонентов, в совокупности используемых для поддержки криптозадач, на основе закрытого и открытого ключей. В основе PKI лежит использование криптографической системы с открытым ключом»
В Интернете я наткнулся на интересную презентацию, которую приготовил mr. Jae-IL, Lee, Vice President of Korea Information Security Agency and Secretary General of Korea PKI Forum. В ней дается краткое представление о PKI наиболее развитых стран азиатско-тихоокеанского региона: Южной Кореи, Китая, Японии, Сингапура, Тайваня, Таиланда и Индии. В частности, с момента появления PKI в феврале 1999 года в Корее было выдано примерно 11 миллионов сертификатов, а в Китае – 5 млн. с августа 2004. По остальным странам даются только даты появления PKI: в Японии – апрель 2001, Сингапур – 1998 год, Тайвань – апрель 2002, Таиланд – 2001 год, Индия – июнь 2000. Россия в этой презентации даже не упоминается.
В самой Корее действует 6 национальных сертификационных центров. Около 70% выданных сертификатов используются для Internet Banking.
Тут меня немного смутило расхождение в количестве пользователей Интернет-банкинга у Гекке Краай (23 миллиона) и mr. Jae-IL, Lee, Vice President of KISA (70% от 11 миллионов). У одного из них данные не совсем верные. По-моему, прав вице-президент KISA. Но в любом случае, счет идет на миллионы пользователей.
Итак, предварительной оценкой начала работы Интернет-банкинга в Южной Корее можно считать февраль 1999 года, когда появилась первая PKI. Эта PKI была представлена в виде специализированного программного обеспечения XecureWeb, разработанного корейской фирмой SoftForum. Вот что сказано про XecureWeb в японской Википедии (https://ja.wikipedia.org/wiki/Xecureweb)
«XecureWeb – система, разработанная в Корее. Это программное обеспечение (программное обеспечение PKI), которое обеспечивает взаимное доверие и надежную связь в сети»
Читатель, видимо уже заинтересовался: а какая асимметричная криптография используется в Корее? Можно ли рассказать о ней поподробнее?
Рассказываю поподробнее.
Как-то в апреле 1977 года три еврея собрались выпить. Напились и придумали алгоритм с открытым распределением ключей RSA – первые буквы их фамилий: Rivest, Shamir, Adleman. Не верите? Напрасно. Читайте Википедию.
«Рон Ривест, Ади Шамир и Леонард Адлеман из Массачусетского технологического института в течение года предприняли несколько попыток создать одностороннюю функцию, которую было бы трудно инвертировать. Ривест и Шамир, будучи компьютерными учеными, предложили множество потенциальных функций, а Адлеман, будучи математиком, отвечал за поиск их слабых мест. Они опробовали множество подходов, включая "ранцевый" и "перестановочные полиномы". Какое-то время они думали, что то, чего они хотели достичь, невозможно из-за противоречивых требований. В апреле 1977 года они провели Песах в доме одного из студентов и выпили много манишевицкого вина, а затем вернулись к себе домой около полуночи. Ривест, не в силах заснуть, лег на диван с учебником математики и начал думать о своей односторонней функции. Остаток ночи он провел, формализуя свою идею, и к рассвету большая часть статьи была готова. Алгоритм теперь известен как RSA – инициалы их фамилий в том же порядке, что и в их статье.»
И стал этот пьяный алгоритм RSA мировым асимметричным стандартом. Очень удобным и практичным. С его помощью легко осуществлять асимметричное шифрование и электронную подпись. И в корейском Интернет-банкинге тоже используется алгоритм RSA.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.