Читать книгу «Невероятное. Рассказ о работе советского криптографа в Южной Корее» онлайн полностью📖 — Михаила Евгеньевича Масленникова — MyBook.
image

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.