x, y, z

Об истории криптографии и надежности ваших паролей

Комментарии: 2
Сергей Владимиров
Сергей Владимиров
Со времен возникновения письменности и до середины XX века криптография была искусством. Сейчас это не только проработанная область науки на стыке математики и информатики, но и то, чем мы пользуемся ежедневно. К чему может привести незнание криптографии и любовь к халяве, как прочитать вашу переписку, почему шифрование на открытых ключах безопаснее и что значит cLhmGccA4aSaRslIsnA, рассказывает кандидат физико-математических наук, лектор по защите информации в МФТИ Сергей Владимиров.

Классическая криптография, или Искусство сохранять голову

Один из самых простых способов скрыть информацию — заменить каждую букву алфавита на другие буквы того же алфавита. Понятно, что так называемый шифр Цезаря, где каждая буква письма заменялась на букву, отстоящую по алфавиту на три позиции дальше, был не очень надежной криптосистемой. Так что чтобы расшифровать такой текст, достаточно знать алгоритм замены.

Существует и другой способ получить зашифрованный текст, или шифротекст, — заменить буквы одного алфавита на буквы другого алфавита или на картинки, как в «Пляшущих человечках» Конан Дойля. Чтобы прочитать такой текст, требуется ключ, соотносящий два алфавита между собой (или криптоаналитические способности Шерлока Холмса). Прием, который помог вымышленному гению взломать шифр, был описан еще в VIII веке арабским филологом аль-Фарахиди в «Книге тайного языка». Он верно предположил, что зашифрованное письмо начинается со стандартной фразы «Во имя Аллаха», и это помогло ему разгадать все остальное. В более поздних арабских трактатах впервые упоминается частотный криптоанализ — сопоставление самых часто употребляемых букв алфавита с самыми часто встречающимися в шифротексте символами. Над созданием устойчивого к частотному криптоанализу шифра бились многие европейские криптографы эпохи Возрождения. Например, заменяли не на одну букву, а на две или больше. Техники шифрования тех времен дали основу для более современных криптосистем.

Шифром Цезаря со сдвигом 13 скрывают спойлеры и ругательства на интернет-форумах
Шифром Цезаря со сдвигом 13 скрывают спойлеры и ругательства на интернет-форумах

Современная криптография, или Наука защищенного общения

Криптография сильно повлияла на ход Второй мировой войны. В начале XX века появились электромеханические шифровальные машины, в том числе знаменитая немецкая «Энигма», однако криптография все еще оставалась искусством, а не наукой. Одна из первых шифровальных школ для математиков появилась в Польше: первые успехи по взлому «Энигмы» принадлежат ее ученикам. Мариан Реевский, применив математические методы, сумел разгадать логическую структуру «Энигмы», однако немцы совершенствовали машину, и задача расшифровки все время усложнялась. После захвата Польши криптографические наработки передали в британский Блетчли-парк, где работала команда британских математиков, в том числе Алан Тьюринг. С помощью Turing Bombe, разведки, стандартных фраз и ошибок противника «Энигму» удалось взломать, тем самым приблизив окончание войны где-то на два года. С современной точки зрения шифровальный механизм был не очень надежен, хотя немцы считали иначе. Для взлома следующей криптомашины уже пришлось разработать первый электронный компьютер.

Ротор «Энигмы»
Ротор «Энигмы»

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

После войны математик Клод Шеннон опубликовал научные труды, которые положили начало развития криптографии как точной математической науки. В частности, принцип Керкгоффса, французского офицера XIX века, гласит: «Стойкость криптосистемы не должна зависеть от секретности алгоритма». То есть предполагается, что взломщик знает, каким образом открытый текст (текст до шифрования) преобразуется в закрытый (шифротекст). Но ключ, с помощью которого это делается, должен оставаться тайной. Взломать такую систему можно простым перебором ключа, именно поэтому важно, чтобы ключ был не слишком коротким и чтобы был один-единственный способ понять, что он правильный.

В то же время слишком большой ключ отнимает непозволительно много вычислительных ресурсов, даже для современных машин. В 70-х годах прошлого века компьютеры и обмен информацией только начали входить в жизнь обычных американцев. Тогда существовало много разных способов шифрования, но не было единого стандарта, как когда-то не было стандарта 220В для розеток. Разработать стандарт шифрования поручили фирме IBM, которая с приходом Хорста Фейстеля представила общественности первый стандарт государственного уровня — DES (Data Encryption Standard) на блочных шифрах. Принятый как временная мера DES продержался до 2002 года, после чего его заменили более надежным AES (Advanced Encryption Standard). В России первый стандарт ввели в 1990 году, он тоже работал на блочных шифрах, сейчас же действует ГОСТ Р 34.10-2012, основанный на эллиптических кривых.

Два ключа лучше, чем один

В конце 1970-х — начале 1980-х годов интерес общественности к криптографии вырос настолько, что государственные службы обеспокоились, как бы надежные способы шифрования не попали в руки террористов и преступников, и попытались подавить гражданскую (или открытую) криптографию. Однако череда принятых мер и законов не была успешной. Так, криптосистема RSA, разработанная Ривестом (R), Шамиром (S) и Адлеманом (A) в 1977 году, несмотря на первоначальные препятствия АНБ, сейчас используется практически везде. Она обладает интересным криптографическим свойством, которое можно понять, для начала познакомившись с так называемыми симметричными системами шифрования. В симметричной криптографии для шифрования и дешифрования используется один и тот же ключ. Эти простые алгоритмы идеологически описаны еще в 50-х, но всем им свойственен один большой недостаток. Представим, что Боб и Алиса общаются в школе с помощью шифра. Тогда, чтобы создать секретный канал связи, им сначала нужно найти безопасный канал для передачи ключа, например дупло дерева в парке. Возникает вопрос, почему бы им тогда просто не класть туда записки? Эту проблему симметричного шифрования называют проблемой распространения ключей.

Схема шифрования

RSA считается первой реальной системой, которая использует шифрование на открытых ключах, или асимметричное шифрование. В этом случае у Боба есть два ключа, один закрытый (private key), а другой распространяется по открытому каналу и даже написан на визитке Боба (public key). Тогда зашифровать сообщение для Боба с помощью открытого ключа может любой, но расшифровать может только Боб, потому что закрытый ключ он никому не показывает. Для наглядности рассмотрим такой пример: пусть в телефонной книге 264 фамилии. Чтобы зашифровать текст, поочередно берем каждую букву текста, выбираем любую фамилию на эту букву и записываем номер. Теоретически, расшифровать такое послание может каждый, у кого есть такая книга, но для этого ему придется пролистать ее всю, с 20-значным числом фамилий. У легального же пользователя, которому посылается это сообщение, есть закрытый ключ — такая же книга, но отсортированная не в алфавитном порядке, а по номерам.

2^64=18 446 744 073 709 551 616

Этот пример показывает, что ни одна криптографическая система не является идеально надежной — всегда можно взять и отсортировать телефонную книгу по номерам. Только это займет очень-очень много времени. При современных алгоритмах криптосистемы на открытых ключах взламываются за время большее, чем время существования Вселенной, но теоретически это возможно.

Мультипаспорт

Криптографически стойкая хэш-функция преобразует исходный текст в одну строчку так, что из этой строчки невозможно (или очень сложно) получить исходный текст. Хэш-функцию используют, например, там, где нужно вводить пароль: фразу в строке ввода сравнивают не с самим паролем, а с его хэш-функцией.
Проверить, не исказилась ли информация во время передачи по зашифрованному каналу можно с помощью электронной цифровой подписи (digital signature). В этом случае Алиса зашифровывает текст своим закрытым ключом и вместе с открытым текстом отправляет Бобу. Если Боб расшифрует шифротекст открытым ключом Алисы и он совпадет с не зашифрованным текстом, то все хорошо. На практике закрытым ключом обычно зашифровывается хэш-функция документа. Но что если злоумышленник выдает свой открытый ключ за открытый ключ Алисы? Чтобы ему помешать, электронная подпись помимо прочего содержит так называемый сертификат открытого ключа, выданный доверенным центром сертификации (CA, сertification authority), который имеет данные по всем открытым ключам и их пользователям. Сертификат, в свою очередь, тоже должен быть подписан. Важно, что открытый ключ доверенного центра должен быть известен заранее, иначе его тоже можно подделать.

Схема шифрования закрытым и открытым ключом

Зеленый замочек

Когда вы запрашиваете страницы таких сервисов, как «ВКонтакте», Google, «Одноклассники», Facebook и многих других, адрес в браузерной строке начинается с https://, а рядом с ним стоит зеленый замочек. Что это значит? HTTPS отличается от HTTP тем, что данные передаются с помощью криптографических протоколов SSL и TLS. Это означает, что когда вы заходите на тот же «ВКонтакте», вся информация, которой вы обмениваетесь с собеседником, шифруется. Вторая важная особенность протокола состоит в том, что он пытается гарантировать, что это действительно тот сайт, на который вы хотели зайти. Если вы послали запрос и установили соединение с легальным «ВКонтакте», то вам придет сертификат открытого ключа, который содержит все параметры шифрования между вами и сервером. Сертификат открытого ключа должен быть подписан доверенным центром (CA), а сертификат доверенного центра, в свою очередь, должен быть подписан корневым доверенным центром (root CA). Так получается цепочка сертификатов, или цепочка доверия. Честными должны быть все члены цепочки, а корневой центр должен иметь широко известный открытый ключ. Таких корневых центров немного, и все их открытые ключи зашиты в браузер. Чтобы браузер показал зеленый замочек, в конце цепочки сертификатов должен находиться сертификат корневого центра, известного браузеру. Чтобы подделаться под «ВКонтакте» или «Одноклассники», злоумышленнику придется подделать цифровую подпись корневого доверенного центра. Подделать цифровую подпись почти нереально, ведь для этого нужно знать закрытый ключ корневого доверенного центра. Поэтому соединение HTTPS защищает от компьютерных атак. Но это в теории, а как на практике?

Цепочка доверия на примере сертификатов SSL
Цепочка доверия на примере сертификатов SSL

О безопасности

Самое уязвимое место криптографической защиты — это человек. Если браузер получил сертификат открытого ключа, проверил его цепочку сертификатов и оказалось, что он не подписан корневым доверенным центром, он покажет пользователю предупреждение, что соединение небезопасно. Что делает пользователь? — «Все равно зайти». Поэтому современные браузеры мешают проделать этот небезопасный путь и пытаются защитить пользователя от самого себя — нужно не один раз «все равно зайти», а несколько. Но если пользователь все-таки соглашается, то злоумышленник показывает страницу якобы «ВКонтакте», просит ввести его логин, пароль или номер телефона, после чего возникает экран: «Ведутся технические работы». Можно сделать хитрее и запрашивать от вашего имени у сервера страницы «ВКонтакте» и показывать их вам, пропуская через себя и читая ваш трафик так, чтобы вы ничего не заподозрили. Такая атака называется «человек посередине» или man-in-the-middle. Чтобы прочитать вашу переписку, то есть совершить атаку man-in-the-middle, нужно выдать себя за другого человека, когда связь только-только устанавливается. Происходит следующее:

1) В тот момент, когда Боб посылает свой открытый ключ серверу, Мэн перехватывает сообщение.
2) Мэн посылает свой открытый ключ серверу, выдав себя за Боба.
3) Сервер посылает свой открытый ключ лже-Бобу. Мэн посылает Бобу свой открытый ключ, выдав себя за сервер.
4) Если у Боба нет цепочки доверенных сертификатов, атака совершена.

Тем, кто работает в крупных компаниях, необходимо понимать, сколько стоит информация, ее защита, взлом защищенной системы и внедрение системы безопасности. Самый защищенный компьютер — отключенный от всех сетей, в том числе электрической, убранный в сейф (и спрятанный ключ). Поэтому любая защита — это баланс между тем, чтобы было удобно работать, и тем, чтобы система была достаточно защищена. «Достаточно» — это значит, что стоимость взлома превышает стоимость информации для злоумышленника. В крупных компаниях все это посчитано, а обычным пользователям достаточно соблюдать элементарные меры предосторожности. К сожалению, большинство пользователей не понимают, зачем вообще нужно шифрование. Серверам приходится усложнять парольную политику, но делают они это не для того, чтобы сохранить приватность вашей переписки или других данных (им это не нужно), они делают это, чтобы защититься от спама.

Big Data is watching

Для тех, кто беспокоится о приватности: поведение в интернете обрабатывается компьютером с одной единственной целью — продать вас рекламодателю. В современном мире интернет знает о вас все — пол, возраст, увлечения, профессию, даже если вы ему этого не говорили. Big Data позволяет провести анализ вашего поведения и отправить информацию о вас всем возможным рекламодателям еще до того, как вы увидели на сайте кучу баннеров. Эти данные стоят дорого, и их собирают не только чтобы настучать, а чтобы продать. От такого нарушения неприкосновенности частной жизни спасают баннерорезки или, например, Tor, который стирает личность пользователя в сети. А мессенджеры вроде Telegram или Whats Up работают на доверии пользователя к поставщику приложения, что он не воспользуется доступом к частным данным.

Что будет в 2018?

Надо понимать, что 30% трафика передаются по зашифрованному каналу — сюда входят все сообщения, картинки и так далее. Оставшиеся 70%, возможно, приходятся на видео, так как его шифровать накладно. В 2018 году вступят в силу законы, среди которых есть пункт, согласно которому операторы связи должны предоставлять весь трафик пользователя в расшифрованном виде. Но как это сделать, там не написано, и сейчас технической возможности для этого у них нет. Единственное, что есть, похоже на то, как это происходит в Казахстане. А именно, между вами и всеми сервисами — Google, Facebook, «Яндекс», «ВКонтакте», «Одноклассники», «Мой круг», Flickr, mipt.ru и так далее — операторы вставляют свой сервер, который будет выдавать себя за них с точки зрения протокола. При этом они говорят: «Чтобы пользоваться интернетом, нужно установить себе новый доверенный сертификат, это нужно для вашей же безопасности» (хотя на самом деле — чтобы оператор мог читать вашу переписку). Только в этом случае оператор получит доступ ко всем передаваемым сообщениям. Скорее всего, в 2018 году это и случится. Дальше либо запретят VPN (Virtual Private Network, виртуальная частная сеть), либо будет как в Китае, где запрещен Twitter и большинство людей защищены от информации.

/ax/d1/1/a361/08.jpg

Взламывать шифры — тоже наука, она называется криптоанализом. Криптология объединяет под собой науку шифрования и дешифрования. Кроме информации, можно скрыть сам факт передачи информации. Это если, например, побрить человека налысо, набить у него на голове татуировку и, когда волосы отрастут, отправить его получателю зашифрованного послания. Известным способом замаскировать зашифрованное послание под невинное письмо является решетка Кардано. Современные методы позволяют оставлять зашифрованные послания в изображениях, музыке, видео.

Подготовила Мария Комарова
27 июля 2016
T&P
Комментарии: 2