Криптография. Как защитить свои данные в цифровом пространстве
Шрифт:
Если постоянно пользоваться криптографическими ключами, возникает вопрос: где они находятся?
Рассмотрим конкретный пример. Каждый раз, когда вы звоните кому-то по сотовому телефону, вы используете криптографию. Безопасность этого процесса опирается на способность сотового оператора отличить вас от остальных 5 миллиардов абонентов на планете [52] . Для этого оператор выдает вам секретный криптографический ключ – число, «известное» только ему и вам, при помощи которого вы сообщаете оператору о попытке сделать звонок. А теперь я объясню, почему это почти соответствует действительности.
52
Количество абонентов мобильной связи в мире
Что это за особое секретное число, которое используется для звонка? Это явно не ваш телефонный номер – он не секретный. Криптографический ключ мобильного телефона вам наверняка неизвестен. И тому есть две веские причины, ни одна из которых не сводится к тому, что вам этот ключ знать нельзя.
Первая и, наверное, главная причина в том, что криптографические ключи представляют собой большие числа. Если вас попросят запомнить число от 0 до 10, вы легко с этим справитесь. Скорее всего, вы способны запомнить числа до 10 000 или даже до миллиона, так как числа такой длины часто используют в качестве PIN-кодов (хотя об этом чуть позже). Но в криптографических масштабах 1 миллион – это не большое число. Ключи не просто очень большие, их размер едва ли не за гранью нашего понимания.
В порядке упражнения попытайтесь представить себе количество звезд во вселенной, умноженное на 40 000 [53] . Даже если вам удастся это вообразить, вы все равно будете оперировать значениями не того масштаба. Ключи примерно такого размера когда-то действительно использовались, но их давно уже не признают достаточно безопасными в большинстве современных сфер применения криптографии. Теперь мы пользуемся ключами в триллион раз большими. Если у вас от таких чисел начала кружиться голова, то вы уловили суть. Обычный человек не в состоянии запомнить современный криптографический ключ.
53
Этот пример основан на предположении о том, что в нашей вселенной существует около 1022 звезд. Подсчет звезд – это не точная наука, так как мы можем только догадываться об их количестве по нашим наблюдениям с помощью существующих телескопов. По последним оценкам этот показатель приближается к 1024, и многие специалисты подозревают, что он тоже может быть заниженным. Например, см. статью Элизабет Хауэлл, «How Many Stars Are in the Universe?» от 18 мая 2017 года в разделе Science & Astronomy на сайте https://www.space.com/26078-how-many-stars-are-there.html. Подсчет криптографических ключей является куда более точным процессом!
Сотового оператора не интересует, кто говорит по телефону и даже с какого аппарата прошел звонок. Оператора заботит, куда послать счет за услуги. Это вторая причина, почему вам неизвестен ключ, который используется в вашем сотовом. Таким образом, оператору нужен какой-то уникальный аспект вашей мобильной учетной записи, которым может быть невообразимо большое число. Именно его вы и получаете при регистрации номера. Это очень маленькая пластиковая карта с крошечным встроенным микрочипом, так называемым модулем идентификации абонента (англ. subscriber identity module – SIM), которая вставляется в ваш телефон. Основное назначение SIM-карты состоит в хранении криптографического ключа. Этот ключ позволяет отличить вашу учетную запись от любой другой на планете, поэтому, если вы одолжите кому-то свой телефон или вставите свою SIM-карту в другое устройство, счет придет именно вам.
Итак, криптографические ключи в большинстве своем являются огромными числами, пользуются которыми непосредственно компьютеры, а не люди. Поэтому большинство ключей находится либо на самих компьютерах, либо на устройствах, которые к ним подключаются. Например, ключи для защиты банковских транзакций хранятся на чипе, встроенном в вашу платежную карту. Ключи к вашей сети Wi-Fi – в вашем маршрутизаторе. Ключи для защиты данных, которыми вы обмениваетесь с интернет-магазином, зашиты в программный код вашего браузера. Криптографический ключ, позволяющий вашей машине открывать дверной замок, когда вы к ней приближаетесь, находятся в брелоке (и пусть вас не вводят в заблуждение слова о так называемой технологии входа «без ключа»: на самом деле ключ здесь двойной, одна его часть физическая, а другая криптографическая). Вы не знаете, какое число представляет любой из этих ключей, но у вас есть доступ к местам, где они хранятся.
Итак, криптографические ключи – это секретная информация, знание которой можно использовать для идентификации той или иной сущности в киберпространстве. Но что насчет таких секретных данных, как пароли и PIN-коды [54] ? Можно ли их считать криптографическими ключами?
Не совсем, хотя иногда они таковыми оказываются. В каком-то смысле. Запутались? Неудивительно, различие между этими понятиями и правда тонкое.
54
Термин персональный идентификационный номер (англ. personal identification number или PIN) обычно используют для обозначения коротких паролей, состоящих из цифр. Он уходит своими корнями в конец 1960-х, когда появились первые банкоматы. В нашем контексте PIN-коды и пароли представляют собой одно и то же – строку секретных символов.
Криптографические ключи действительно чем-то похожи на пароли и PIN-коды, но знак равенства между ними поставить нельзя. Пароли и PIN-коды, несомненно, являются секретными данными, необходимыми для обеспечения безопасности в киберпространстве. Но считать ли их криптографическими ключами, зависит от способа применения.
Пароли и PIN-коды в основном применяются для идентификации. Например, когда вы входите в систему, компьютер запрашивает пароль и проверяет его корректность. Если проверка прошла успешно, компьютер выводит на экран приветствие. С точки зрения криптографии в этом нет ничего особенного, так как в основе этого процесса нет шифрования [55] : вы всего лишь предоставляете пароль, чтобы компьютер мог его проверить.
55
На самом деле в этом процессе нередко участвует криптография, поскольку компьютеры в большинстве своем хранят не копии ваших паролей, а значения, вычисленные на их основе с помощью криптографической функции особого типа.
Именно в этом и состоит ключевая проблема входа в систему. Пароль – это секретные данные, которые вам полагается оберегать, но, входя в систему, вы их «выдаете». В каком-то смысле вы теряете контроль, поскольку вам приходится доверять устройству, которому вы передаете их, а заодно всем сетям и устройствам, которым эти данные переправляются далее. Вы вынуждены верить, что все они не допустят никаких злоупотреблений.
Ввод пароля в домашний компьютер вряд ли покажется вам чем-то безрассудным, и вы, конечно же, правы. Но иногда мы взаимодействуем с удаленными компьютерами, например когда вводим пароль для доступа к каким-то ресурсам на веб-странице. В этом случае пароль передается незащищенным по компьютерным сетям, прежде чем дойдет до сервера, на котором физически находится сайт (некоторые хорошо спроектированные веб-сайты используют для защиты паролей криптографию, но не все). Любой, у кого есть доступ к промежуточной сети, сможет прочитать ваш пароль и позже использовать его, чтобы выдать себя за вас. Точно так же, снимая деньги в банкомате, мы «выдаем» свой PIN-код, и важные секретные данные передаются другому устройству [56] .
56
При вводе PIN-кода в банкомат мы фактически надеемся на то, что он не сделает с ним ничего плохого. Однако существует много атак, известных как скимминг, в ходе которых преступники модифицируют банкомат, чтобы заполучить данные о карте и PIN-коде (последний можно узнать, наложив поддельную клавиатуру).
Криптографические ключи ни в коем случае нельзя так раскрывать. Их используют для демонстрации того, что они вам известны, но сами ключи при этом не раскрываются. Таким образом ключ остается секретным на протяжении всего процесса – как до, так и после использования. Этот уровень секретности имеет куда более строгие требования по сравнению с теми, которые мы предъявляем к паролям и PIN-кодам.
Но иногда криптографические ключи напрямую связывают с паролями: для простоты использования. Как вы помните, они представляют собой огромные числа, запомнить которые нереально. В связи с этим они обычно хранятся на устройствах. Но это не всегда представляется возможным.
Допустим, вы решили скрыть содержимое отдельного конфиденциального файла на своем компьютере с помощью криптографии. Предположим, вы нечасто этим занимаетесь, поэтому в вашей системе не включено автоматическое шифрование файлов (между прочим, вы можете его включить). Таким образом вам придется создать ключ специально для этого случая, который придется как-то запомнить на будущее.
Конец ознакомительного фрагмента.