Прежде всего, киберпространство по своей природе не материально. Конечно, некоторые его элементы – вычислительные центры, компьютеры, маршрутизаторы и провода – вполне осязаемы, но информация, которая к ним относится, производится ими и обрабатывается, существует только в виртуальном мире. Информация в киберпространстве представлена только цифровыми данными. Вы не можете их пощупать или положить в конверт. Именно благодаря нематериальности цифровых данных с ними можно делать столько удивительного, в том числе копировать с идеальной точностью, преобразовывать до неузнаваемости и передавать по планете со скоростью света. Возможность представлять и использовать информацию цифровым образом оказалась по-настоящему революционной.
Ввиду нематериальности цифровых данных для их защиты подходят очень немногие механизмы безопасности из тех, что мы используем в реальном мире. Конечно, мы можем надежно хранить флеш-накопитель в ящике стола, но, как только нам становится нужна записанная на нем информация, мы должны как-то подключить его к киберпространству, и – оп! – физическая защита теряет свою эффективность. В киберпространстве необходимы совершенно другие механизмы безопасности.
Назвать киберпространство знакомым тоже нельзя. Не в том плане, что мы не привыкли в нем работать. В конце концов, мы зависим от поисковых систем в Интернете, продаем и покупаем онлайн, общаемся в социальных сетях. Мы все сильнее привыкаем к жизни в киберпространстве. Но знакомы ли мы с этим пространством как таковым? Многие ли из нас имеют хоть какое-то представление о том, как оно работает? Мало кто понимает, как устроены компьютеры, не говоря уже о том, как их программируют, как они соединяются и обмениваются информацией. Найти тех, кто разбирается в принципах обработки информации в киберпространстве, не проще. Куда на самом деле попадают данные, которые мы вводим? Кто их может видеть? Что с ними делают? Для большинства из нас киберпространство сродни волшебству: мы жмем кнопку – и (абракадабра!) – что-то происходит[42 - Общий недостаток понимания того, как устроено киберпространство, вредит отдельным людям, но это, наверное, создает еще более хронические проблемы для общества в целом. В отчете правительства Великобритании освещаются экономические потери, вызванные общей нехваткой цифровых навыков, и выявляется необходимость существенно улучшить обучение в этой сфере в школах, вузах и на производстве: «Digital Skills Crisis», комитет по науке и технике палаты общин Великобритании, 7 июня 2016 года, https://publications.parliament.uk/pa/cm201617/cmselect/cmsctech/270/270.pdf.].
Незнакомость киберпространства несет в себе опасность, так как без элементарного понимания, что это такое и как оно работает, нам приходится слепо доверять системам, которые якобы должны делать то, что нам нужно. Это делает нас наивными и уязвимыми, что, в свою очередь, серьезно сказывается на безопасности: если что-то идет не так, мы не в состоянии это заметить. Мы даже не знаем, что в принципе может пойти не так, поскольку не знаем, чего следует ожидать. Если вы видите что-то подозрительное, пожалуйста, обратитесь к сотруднику компании. Это не поможет, если у вас нет ни малейшего представления о том, что подозрительно, а что нет.
Самое главное – то, что нам недостает элементарного здравого смысла, на основе которого мы принимаем решения о безопасности в материальном мире. В киберпространстве люди идут на такие риски, которые в реальной жизни были бы немыслимы, – шлют грабителям открытки, когда уезжают в отпуск (рассылая внерабочие сообщения и публикуя в Интернете свежие фотографии[43 - В 2010 году датский веб-сайт под названием Please Rob Me (дословно, «пожалуйста, ограбь меня») вызвал много споров, объединив ленты из социальных сетей и мобильного геолокационного приложения, в результате чего получился список адресов потенциально пустых домов. Создатели утверждали, что это делалось для повышения уровня осведомленности пользователей, но многие осудили эту инициативу, назвав ее безответственной. И хотя инструмент PleaseRobMe давно не существует, количество геолокационных приложений только увеличилось, а возможности по объединению источников данных для получения такого рода информации стали намного эффективней. См. Дженнифер Ван Гроув, «Are We All Asking to Be Robbed?», Mashable, 17 февраля 2010 года, https://mashable.com/2010/02/17/pleaserobme.]), печатают на футболках свои банковские реквизиты (покупая еду на ненадежном веб-сайте) и ведут прямую трансляцию с домашних камер слежения (избыточно используя социальные сети). Наши предки в африканских саваннах понимали на уровне инстинктов, что при виде льва они должны что есть духу бежать к ближайшему дереву, и это мы от них унаследовали. Нам не нужно дважды думать, стоит ли, уходя из дома посреди большого города, запирать дверь на замок. Однако в киберпространстве такого здравого смысла еще очень мало. Мы не видим открытые электронные двери и уж точно не знаем, как их закрыть. Нам сложно заметить цифровых львов, даже когда они ходят туда-сюда по нашим экранам.
Наконец, киберпространство свободно от ограничений географического положения. Это, наверное, самое главное его преимущество. Мы можем делать покупки, общаться с друзьями, просматривать фотографии, работать и планировать путешествия в любую точку планеты, не выходя из дома. Это невероятные возможности, и, что еще удивительнее, повседневные невероятные возможности.
Тем не менее заниматься своими делами удаленно могут разные люди, в том числе и те, чьи интересы противоречат нашим. Жулик может искать и находить жертв по всему миру. Та же история с правительствами и корпорациями, которые хотят больше знать о нашей повседневной жизни. В реальном мире угрозы в основном исходят от того, что нас окружает. В киберпространстве они приходят отовсюду.
Суть проблемы
Чтобы оценить потенциальные угрозы в киберпространстве, стоит вернуться к трем аспектам безопасности, изложенным в начале этой главы. Давайте рассмотрим их в обратном порядке.
Во-первых, многие потенциальные угрозы имеют намного более высокую вероятность возникновения в киберпространстве, чем в материальном мире[44 - В качестве одного из многочисленных примеров можно привести следующую ситуацию: в 2016 году платформа под названием Avalanche была закрыта международным объединением правоохранительных органов. Она размещалась в восточной Европе и управляла сетью взломанных компьютерных систем, из которых можно было осуществлять различные киберпреступления, включая такие атаки как фишинг, спам, вымогательство и DoS. По оценкам, максимальное количество компьютеров, контролируемых платформой Avalanche, достигало полумиллиона: Уорик Эшфорд, «UK Helps Dismantle Avalanche Global Cyber Network», Computer Weekly, 2 декабря 2016 года, http://www.computerweekly.com/news/450404018/UK-helps-dismantle-Avalanche-global-cyber-network.]. Обычный человек, занимающийся своими делами, как правило, не становится жертвой руританских мошенников. О киберпространстве этого сказать нельзя. Не каждое даже супертоталитарное государство постоянно отслеживает повседневную жизнь своих граждан чисто материальными средствами, такими как развитая сеть информаторов[45 - Самым печально известным примером такого рода была сеть, созданная Министерством государственной безопасности ГДР (Штази) в период между 1950 и 1990 годами. Штази вовлекло в нее более четверти миллиона граждан Восточной Германии, чтобы следить за всем населением страны и выявлять диссидентов.]. В киберпространстве это становится делать все проще, и люди об этом даже не подозревают[46 - Остановитесь на секунду и задумайтесь о том, сколько всего о вашей повседневной жизни могут знать мобильный телефон, поисковая система и социальные сети, собирая данные, которые вы генерируете при взаимодействии с ними. Теперь представьте, насколько больше они могли бы о вас узнать, поделившись этой информацией друг с другом. Если хотите менее гипотетический пример, введите «наблюдение за работниками» в свою любимую поисковую систему (прибавив еще чуть-чуть к тем сведениям о вас, которые у нее уже есть). Результаты могут вас расстроить.].
Во-вторых, в киберпространстве ослабевает наша способность учитывать контекст в принятии решений о безопасности. Стоит ли доверять тому или другому сайту? Ответить на этот вопрос почти всегда непросто. Мы редко сталкиваемся с такими трудностями в материальном мире, где внешний вид и атмосфера помещения становится источником контекстной информации о магазине. Если кто-то постучит вам в дверь и начнет расспрашивать о вашем банковском счете, вы вряд ли поддадитесь. Но мало кого настораживает электронное письмо с похожими вопросами якобы от своего банка. Лишенные защиты, которую дает физический контекст, мы хуже анализируем угрозы безопасности.
Наконец, базовые защитные механизмы, вокруг которых мы выстраиваем безопасность в материальном мире, не подходят для киберпространства. Мы не можем «прошептать» электронное письмо, заклеить воском цифровой документ или узнать в лицо продавца за прилавком интернет-магазина.
Киберпространство сделало мир меньше, из-за чего многие потенциальные угрозы стали ближе. Киберпространство – это место, которое большинство из нас совершенно не понимает. Что еще хуже, в нем невозможно использовать традиционные средства безопасности. Похоже, у нас возникла проблема.
На помощь приходит криптография
Я обрисовал мрачные перспективы и потенциал безопасности в киберпространстве. Угрозы и вправду реальны, а обеспечение защиты связано с существенными трудностями. Но ведь мы каждый день пользуемся Интернетом без особых проблем. Неужели это простое везение?
Было бы ошибкой полагать, что понятие безопасности в киберпространстве отсутствует. Специалисты осознают многие виртуальные угрозы, и огромная часть технологий была разработана сразу с расчетом на определенный уровень защиты. Положение вещей нельзя назвать идеальным, но «идеальной» безопасности не существует ни в киберпространстве, ни в реальном мире.
Главная идея состоит в том, что любые концепции безопасности в киберпространстве должны быть основаны на фундаментальных защитных механизмах, рассчитанных на цифровую информацию. Если нам удастся соорудить эффективные механизмы цифровой безопасности, способные заменить замки, печати и распознавание лиц, мы сможем интегрировать их в широкий круг систем и процессов, которые будут защищать нас в киберпространстве. В идеале эти инструменты должны имитировать уровень безопасности, доступный нам в материальном мире. А если повезет, киберзащиты время от времени будут становиться еще надежнее.
В этом фактически и состоит ключевая роль криптографии. Она предоставляет пакет (или, если хотите, набор) механизмов безопасности, которые можно развернуть в киберпространстве. Каждый из этих криптографических инструментов по отдельности довольно прост и позволяет выполнять такие важные задачи, как сокрытие цифровой информации от чужих глаз, обнаружение изменений, внесенных в электронный документ, или идентификация компьютера. Однако хорошо продуманное сочетание этих механизмов позволяет создавать чрезвычайно сложные системы безопасности, необходимые, к примеру, для поддержки безопасных финансовых транзакций, защиты электронных сетей распределения электроэнергии или проведения выборов в Интернете.
Сама по себе криптография не делает и не может сделать киберпространство безопасным, у этого процесса слишком много разных аспектов, чтобы ограничиваться только ее механизмами. Но, хотя безопасность дома нельзя свести к замкам на дверях, сложно себе представить дом вообще без замков. Точно так же одной лишь криптографии недостаточно для защиты банковских сетей, но без нее глобальная финансовая система точно бы не выжила[47 - Криптография лежит в основе любого рода финансовых транзакций, включая те, которые мы проводим с банкоматами, дебетовыми и кредитными картами, а также с глобальной сетью SWIFT (Society for Worldwide Interbank Financial Telecommunications – Общество всемирных межбанковских финансовых каналов связи). Ежегодная конференция Financial Cryptography and Data Security, проводимая с 1997 года, посвящена теории и практике использования криптографии для защиты финансовых транзакций и созданию новых видов цифровых денег: Международная ассоциация по финансовой криптографии, https://ifca.ai (по состоянию на 10 июня 2019 года).].
2. Ключи и алгоритмы
Криптография предоставляет механизмы, необходимые для безопасной работы в киберпространстве. Прежде чем исследовать их возможности, нужно разобраться в том, как они устроены. Весь фундамент, на который опирается криптография, состоит из двух главных компонентов: ключей и алгоритмов.
Важнейшая роль ключей
Давайте еще раз проанализируем ваш типичный день в материальном мире и подумаем о назначении некоторых механизмов безопасности, которые в нем фигурируют.
Конверт нужен для того, чтобы только энергетической компании были известны подробности отправленного вам счета. Замок на двери нужен, чтобы только вы могли войти в свой дом. Поведение человека за прилавком аптеки характерно только для настоящего фармацевта. Детали приглушенного разговора с фармацевтом были слышны только вам двоим. Физические свойства денег имеют только настоящие купюры и монеты.
Только, только… суть любого механизма безопасности в том, чтобы те или иные вещи могли происходить только в определенных обстоятельствах. Механизм безопасности можно использовать, чтобы отмежевать себя от других или выделить один из множества элементов. Он дает нам особую возможность. Ключ и замок дают возможность открыть дверь и войти в свой дом. Разговор шепотом дает возможность исключить из него тех, кто находится за пределами слышимости. Защитные элементы купюры позволяют использовать ее в качестве законного платежного средства.
В материальном мире возможности безопасности обеспечиваются разными средствами. Самое очевидное – что-то, чем вы располагаете: ключ, бейдж, билет, рекомендательное письмо[48 - Следует признать, что рекомендательные письма в наши дни являются редкостью. Но мы все еще активно используем письменные рекомендации при собеседовании. Наша безопасность в материальном мире во многом основана на мнении других доверенных источников. Например, друг может представить нам человека, с которым мы раньше не были знакомы; в каком-то смысле это тоже устное «рекомендательное письмо».]. Или то, где вы находитесь – достаточно близко, чтобы расслышать личный разговор, или внутри концертного зала, где проходит мероприятие, на которое вы купили билет. Или что-то, что вам известно – голос друга или то, что для входа в пещеру с сокровищами нужно произнести: «Сим-сим, откройся»[49 - Фраза «Сезам откройся» взята из сказки об «Али-Бабе и сорока разбойниках», входящей в Книгу тысячи и одной ночи – собрание народных сказок, которое, возможно, уходит корнями в восьмой век.]. Или даже то, кем вы являетесь, как в случае со сканированием отпечатков пальцев или радужки глаза. И, конечно же, особая возможность может обеспечиваться сочетанием подходов. У вашего фармацевта могло быть что-то особенное (бейдж), он мог стоять в особенном месте (за прилавком аптеки), быть кем-то особенным (тем, кого вы раньше видели) или знать что-то особенное (фармакология и порядок назначения лекарств).
Этот последний способ предоставления особых защитных возможностей – что-то, что вам известно – легче всего адаптировать к киберпространству. В криптографии эта особая информация зовется ключом. Термин выбран не случайно: криптографический ключ играет примерно ту же роль, что и дверной. Только тот, кто его знает, может выполнить определенное действие – по аналогии с тем, как открыть дверь в конкретном доме может только обладатель подходящего ключа. В большинстве случаев ключ представляет собой секретный фрагмент информации, знание которого используется в киберпространстве для отличения одного человека от другого. Заметьте, я применил выражение «в большинстве случаев». Пока что предположим, что ключи являются секретной информацией, хотя это не всегда так.
Должен признаться, что выше я выразился не совсем точно. В большинстве случаев взаимодействуют в киберпространстве компьютеры, а не люди; больше того, иногда люди вовсе не принимают активного участия в работе этих компьютеров. Ранее я говорил, что «знание» ключа позволяет отличить одного «человека» от другого; но было бы правильней сказать, что только сущность (человек или компьютер) с доступом к ключу может выполнять определенные действия в киберпространстве.
Самое важное свойство ключа, которое необходимо понимать, состоит в том, что особая возможность входить в дом принадлежит не лично вам, а любому, у кого есть дубликат ключа от вашей двери. То же самое относится и к криптографии. Доступа к подходящему криптографическому ключу достаточно для того, чтобы платить за сотовую связь со счета, делать покупки с помощью банковской карты, загружать фильмы, открывать двери автомобиля и т. д.
Биты и байты
Мы пользуемся криптографией ежедневно и в большинстве случаев с применением ключей. Зачастую это происходит неосознанно, но давайте все же поговорим о том, как выглядят криптографические ключи.
Для начала вспомним, как компьютеры представляют информацию. Когда компьютер получает данные, он переводит их в числа, точно так же, как наш мозг превращает увиденное или услышанное в символы языка. Вся компьютерная информация, которую мы храним, передаем и обрабатываем, таким образом, является числовой. Когда мы набираем текст на клавиатуре, компьютер переводит его в цифровые коды и только потом делает с ним то, на что ему дана команда. Когда мы хотим получить информацию назад, компьютер преобразует эти числа в понятный нам текст. Аналогичный процесс происходит, когда мы загружаем на сервер изображения: они состоят из крошечных пикселей, каждый из которых компьютер превращает в число, обозначающее конкретный цвет.
Дальше – сложнее. Компьютер работает не в привычной нам десятичной системе счисления, а в двоичной, состоящей только из нолей и единиц. Звучит страшнее, чем на самом деле: это всего лишь еще один способ записи чисел, у каждого десятичного числа есть двоичное представление и наоборот. Например, десятичное число 17 записывается как 10001 («один ноль ноль ноль один», а не «десять тысяч один») в двоичной системе, а двоичное число 1101 – как 13 в десятичной. Каждую цифру двоичного кода называют битом, и эти биты формируют неделимые единицы числовой информации. Четыре бита составляют ниббл (от англ. nibble – покусывать), а два ниббла – байт (от англ. byte – кусать; и не говорите больше, что у компьютерщиков нет чувства юмора!).
Как правило, информация, которую мы хотим обработать на компьютере, состоит не только из чисел. Допустим, вы набрали на клавиатуре символы «K9!». Прежде чем сделать что-то с этими данными, компьютер должен представить их в двоичном виде. Клавиатурные символы преобразуются в биты по системе, известной как ASCII (American Standard Code for Information Interchange), которая описывает правила сопоставления кнопок клавиатуры и битов. В нашем примере символу «K» по ASCII соответствует байт 01001011, символу «9» – 00111001[50 - Заметьте, что в ASCII символ «9» является пятьдесят седьмым по счету, что может вызвать путаницу, так как он представлен в виде двоичного эквивалента числа 57, а не десятичного значения 9.], а для «!» это будет 00100001. Таким образом компьютер, получивший код ASCII 01001011 00111001 00100001, знает, что для представления пользователю его следует перевести обратно в строку «K9!».
Полезно вспомнить и о размере данных. Поскольку они состоят из двоичных чисел, измерять их проще всего в количестве бит или байтах. Например, число 1011001100001111 имеет длину 16 бит или 2 байта. Для больших данных используются более грандиозные термины, такие как килобайты (1000 байт), мегабайты (1000 килобайт), гигабайты (1000 мегабайт) и терабайты (1000 гигабайт).
Криптографические ключи – это лишь особые элементы данных, поэтому компьютер их тоже должен представлять в виде двоичных чисел. А поскольку размер ключа – одна из важных мер безопасности, упоминания о длине ключей[51 - Длину ключа иногда называют размером. Я буду считать эти термины синонимами.] в криптографических алгоритмах нередки. В современной криптографии ключ, как правило, имеет длину 128 бит.
Где мой ключ?
Если постоянно пользоваться криптографическими ключами, возникает вопрос: где они находятся?
Рассмотрим конкретный пример. Каждый раз, когда вы звоните кому-то по сотовому телефону, вы используете криптографию. Безопасность этого процесса опирается на способность сотового оператора отличить вас от остальных 5 миллиардов абонентов на планете[52 - Количество абонентов мобильной связи в мире насчитывает более 5 миллиардов: «The Mobile Economy 2019», Ассоциация GSM, 2019 год, https://www.gsma.com/mobileeconomy.]. Для этого оператор выдает вам секретный криптографический ключ – число, «известное» только ему и вам, при помощи которого вы сообщаете оператору о попытке сделать звонок. А теперь я объясню, почему это почти соответствует действительности.
Что это за особое секретное число, которое используется для звонка? Это явно не ваш телефонный номер – он не секретный. Криптографический ключ мобильного телефона вам наверняка неизвестен. И тому есть две веские причины, ни одна из которых не сводится к тому, что вам этот ключ знать нельзя.
Первая и, наверное, главная причина в том, что криптографические ключи представляют собой большие числа. Если вас попросят запомнить число от 0 до 10, вы легко с этим справитесь. Скорее всего, вы способны запомнить числа до 10 000 или даже до миллиона, так как числа такой длины часто используют в качестве PIN-кодов (хотя об этом чуть позже). Но в криптографических масштабах 1 миллион – это не большое число. Ключи не просто очень большие, их размер едва ли не за гранью нашего понимания.
В порядке упражнения попытайтесь представить себе количество звезд во вселенной, умноженное на 40 000[53 - Этот пример основан на предположении о том, что в нашей вселенной существует около 1022 звезд. Подсчет звезд – это не точная наука, так как мы можем только догадываться об их количестве по нашим наблюдениям с помощью существующих телескопов. По последним оценкам этот показатель приближается к 10
, и многие специалисты подозревают, что он тоже может быть заниженным. Например, см. статью Элизабет Хауэлл, «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 - Термин персональный идентификационный номер (англ. personal identification number или PIN) обычно используют для обозначения коротких паролей, состоящих из цифр. Он уходит своими корнями в конец 1960-х, когда появились первые банкоматы. В нашем контексте PIN-коды и пароли представляют собой одно и то же – строку секретных символов.]? Можно ли их считать криптографическими ключами?
Не совсем, хотя иногда они таковыми оказываются. В каком-то смысле. Запутались? Неудивительно, различие между этими понятиями и правда тонкое.
Криптографические ключи действительно чем-то похожи на пароли и PIN-коды, но знак равенства между ними поставить нельзя. Пароли и PIN-коды, несомненно, являются секретными данными, необходимыми для обеспечения безопасности в киберпространстве. Но считать ли их криптографическими ключами, зависит от способа применения.
Пароли и PIN-коды в основном применяются для идентификации. Например, когда вы входите в систему, компьютер запрашивает пароль и проверяет его корректность. Если проверка прошла успешно, компьютер выводит на экран приветствие. С точки зрения криптографии в этом нет ничего особенного, так как в основе этого процесса нет шифрования[55 - На самом деле в этом процессе нередко участвует криптография, поскольку компьютеры в большинстве своем хранят не копии ваших паролей, а значения, вычисленные на их основе с помощью криптографической функции особого типа.]: вы всего лишь предоставляете пароль, чтобы компьютер мог его проверить.