Шрифт:
Вершина корейской горы Добонгсан
KISA
Иногда в России мне приходилось спрашивать у криптографических чиновников:
– Как вы относитесь к международным криптографическим стандартам?
Типовой ответ:
– У нас свои стандарты.
А один на стене своего служебного кабинета в ФАПСИ даже повесил плакат
– Тот, кто встроил RSA, тот проныра и лиса.
Вот такие в России «идеи чучхе». Почему-то криптографические чиновники считают оторванность российской криптографии от цивилизованного мира за благо. «Мы сами себе придумываем свои криптографические стандарты, нам Америка не указ!»
Лукавят! Не все российские криптографические стандарты придуманы в России. Все, что касается открытых ключей и электронной подписи, придумали американские криптографы. Я писал об этом в книге «Маркант».
Но главное не в том, кто и что придумал, а в том, как использовать криптографические алгоритмы.
Если вы создаете какой-то сложный программный комплекс, например, систему Интернет-банкинга, ориентированную на неопределенный круг потребителей (помните – «количество подписчиков онлайн-банкинга составляло 23 миллиона, что составляет около половины населения страны»), то ваш программный комплекс должен будет работать с типовыми устройствами и типовой операционной системой, которыми пользуется этот неопределенный круг потребителей в своей повседневной жизни. Если в свободной стране вы начнете создавать какие-то надуманные проблемы миллионам пользователей, то они просто не будут использовать ваш Интернет-банкинг и закажут его создание другой фирме.
Типичный пример надуманных проблем, создаваемых в России криптографическими чиновниками, – это запрет общепринятых международных стандартов и, в первую очередь, запрет асимметричного алгоритма RSA. Разумных объяснений этим запретам нет, так захотели чиновники и все тут. И, к огромному сожалению, эти чиновники получили практически неограниченные права все запрещать, не неся при этом ни малейшей ответственности за последствия, вызываемые этими необоснованными запретами.
В Южной Корее я наконец-то выбрался из российского криптографического «королевства кривых зеркал». Полстраны пользовались Интернет-банкингом не потому, что разрешили чиновники, а потому, что это было удобно. Хотя криптографические чиновники в Южной Корее тоже есть, но само название их организации – Korean Information Security Agency (KISA) – для уха российского криптографа звучало ласково и по-домашнему тепло. Они не создавали никаких идиотских запретов, а наоборот, иногда очень даже помогали. Далее в этой книге я расскажу, когда и при каких обстоятельствах мне пришлось иметь дело с KISA.
Естественно, что никто в Южной Корее не считал криптографию и создание криптографических программ чем-то особенным, требующим каких-то лицензий и сертификатов от KISA. Используй при этом все, что необходимо и удобно, главное – чтобы работало и было востребовано конечным пользователем. Создать как-то иначе Интернет-банкинг, которым пользуется полстраны, просто невозможно. Нужно для создания более безопасного Интернет-банкинга привлечь иностранного криптографа – пожалуйста, никакого разрешения KISA для этого тоже не требовалось.
Олимпийский парк в Сеуле. Скульптура «Указующий перст».
Пьяный алгоритм RSA
Взявшись за написание этой книги, я сам себе дал слово писать ее как можно более простым языком, по возможности избегать сложных математических формул и терминов. Книга должна быть интересной обычному читателю, который не должен напрягаться от чего-то непонятного. Непонятно – значит надо разъяснить как можно более простыми словами и примерами.
Как я упоминал выше, в 2003 году малазиец Гекке Краай пишет про Интеренет-банкинг Южной Кореи: «Это был первый случай взлома и ограбления счета онлайн-банкинга в Южной Корее, лидере по количеству пользователей высокоскоростного Интернета» Сам случай произошел в 2002 году. А когда в Южной Корее запустили систему Интернет-банкинга?
Корейский Интернет-банкинг был тесно связан с криптографией. В нем использовалась криптографическая аутентификация и электронная цифровая подпись. В свою очередь, эти два понятия тесно связаны с асимметричной криптографией и цифровыми сертификатами.
Когда какой-то человек приходит в отделение банка, то его просят представиться: кто вы и что вам здесь надо. Если тот же человек пытается зайти на банковский сервер, то сервер делает фактически то же самое – пытается проверить подлинность и цели обратившегося к нему клиента. А как это сделать? Одним из распространенных методов проверки подлинности клиента является его криптографическая аутентификация, т.е. проверка подлинности с помощью криптографических методов.
Криптографическая аутентификация предполагает проверку электронно-цифровой подписи (ЭЦП) клиента. А нормальная ЭЦП, в свою очередь, предполагает наличие у клиента ключа для подписи, а у сервера – ключа для проверки подписи клиента. Ключ, с помощью которого клиент осуществляет подпись, называется private key, а ключ, с помощью которого сервер осуществляет проверку подписи клиента – public key. По-русски – закрытые и открытые ключи. Закрытый ключ иногда именуют секретным, а открытый – публичным.
Вопросы и ответы.
Есть ли у клиента его открытый ключ?
Есть.
Есть ли у сервера закрытый ключ клиента?
Нет.
Связаны ли между собой закрытые и открытые ключи?
Да, связаны, каждому закрытому ключу соответствует строго определенный открытый ключ.
Можно ли по закрытому ключу определить открытый ключ?
Да.
Можно ли по открытому ключу определить закрытый?
Нет.
Теперь о сертификате. Открытый ключ еще называют публичным, потому что он у всех на виду. А появляться на публике голому открытому ключу просто неприлично. Вот его приодевают и приукрашивают в специальной организации, называемой Центром Сертификации (ЦС) или, по терминологии Microsoft, Certification Authority (CA). Приодетый и приукрашенный открытый ключ, получивший в ЦС персональную ЭЦП, и принято называть сертификатом.