Защита систем. Чему «Звездные войны» учат инженера ПО — страница 30 из 68

Данные в состоянии покоя

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

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

Ни одна из этих схем не защищает от кого-то, кто имеет логический доступ к системе, а вопрос защиты от злоумышленника, обладающего физическим доступом, быстро усложняется. Например, если в вашем Airbnb есть гостевой компьютер, то у гостя есть доступ к операционной системе, и полное шифрование диска не защитит ни его, ни других пользователей, у которых есть возможность запускать код на компьютере. Многие устройства хранят секреты таким образом, что к ним можно легко получить доступ в этом сценарии. Для эффективной защиты необходимо, чтобы операционная система поддерживала шифрование диска с безопасным хранением ключей. (Если быть точным, может быть и какой-то другой компонент, который управляет шифрованием диска, кроме самого жесткого диска.)

Существуют модели безопасности зашифрованных баз данных, защищающие от злоумышленников, которые могут выполнять запросы, и тех, кто может делать моментальные снимки зашифрованных данных. Существуют также модели безопасности баз данных, в которых данные должны быть закрытыми, но запросы к ним разрешены. Это полезно, например, при работе с данными переписи населения. Дифференциальная конфиденциальность – это подход, который измеряет данные, возвращаемые запросами, и ограничивает их разумным образом. Дифференциальная конфиденциальность переходит из академических исследований в стадию развертывания в таких компаниях, как Apple и Uber.

Данные в движении

Данные, передаваемые между системами, безопасны настолько, насколько безопасны линии передачи или радиоволны, которые их переносят. Шифрование защищает вас от злоумышленников, которые могут скомпрометировать эти соединения, но не от тех, кто может скомпрометировать криптосистему.

Инженеры, как правило, имеют несколько мысленных моделей того, как данные попадают из одной системы в другую, и ни одна из них не помечена как «данные в движении». Таким образом, если быть точным, эти мысленные модели часто представляют собой такие вещи, как RPC, вызов API или HTTP. Другой мысленной моделью является сетевой трафик, когда мы знаем, что данные передаются от одной системы или облачного провайдера к другому. Для многих из них мы теперь рефлекторно добавляем TLS к этим потокам и считаем, что это хорошо. И с TLS намного лучше, чем без TLS. Однако TLS опирается на систему удостоверяющих центров. Вы познакомились с удостоверяющими центрами (certificate authorities, CA) в главе 1.

Давайте вернемся к этим удостоверяющим центрам. Именно они выдают удостоверения личности, а в цифровом мире их выдают очень многие компании и несколько правительств. У моего макбука есть около 130 инстанций, которым он будет доверять, в том числе, как показывает просмотр списка, FNMT-RCM. Кто они? Я думаю, что они являются частью испанского правительства. Почему мой Mac доверяет им? Это сложный компромисс ради удобства использования. Без этих корней доверия может ли мой компьютер принять решение? Большинство из нас, в том числе и я, в целом доверяют людям, которые делают наши компьютеры, и мы принимаем риск того, что эти 130 центров обладают большой властью.

Предположим, что ситхи управляют центром сертификации, и мой Mac доверяет ему. Угроза заключается в том, что SithCA выпустит сертификат для threatsbook.com и установит его на свою поддельную версию моего сайта. Но мой сайт обычно получает сертификат от LetsEncrypt.

Умные ребята из Google создали систему, позволяющую наблюдать, как они используют эту силу. Это называется прозрачностью сертификатов, и многие программы, такие как веб-браузеры, сообщают о сертификатах, которые они видят, системе прозрачности сертификатов (Certificate Transparency, CT), и CT указывает на аномалии. Это служит сдерживающим фактором для злоупотребления властью.

Слова «многие программы» из абзаца выше – серьезная заявка. Если ваше специализированное программное обеспечение доверяет 130 сертификатам, участвует ли оно также в CT? Вы можете настроить свой компьютер или конкретную программу так, чтобы доверять меньшему набору центров сертификации, участвовать в CT или и то и другое. Вы также можете «прикрепить» свою систему к определенному центру сертификации. Это оказывается рискованным с точки зрения эксплуатации: если вы допустили ошибку в описании прикрепления или вам нужно переключить центр сертификации, вы можете отказать в обслуживании своим собственным системам.

Пределы шифрования

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

Если у меня есть база данных оценок по математике (A – F), каждая из которых хранится в виде зашифрованного блока рядом с именем ученика, я вижу, что существует только пять значений зашифрованного текста. Я могу догадаться, что Альберт Эйнштейн получил высшую оценку, и, вероятно, также увидеть, какой шифротекст означает букву С, с помощью некоторой элементарной статистики. В этом случае смена оценок тривиальна, поэтому целостность и привязка также важны. Я могу зашифровать зашифрованный текст = ek(IV, имя, класс). Использование одноразовых номеров, значений времени и векторов инициализации является отличным началом, как и использование правильного режима для шифрования.

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

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

Стеганография – это искусство тайного письма, и существуют криптографические методы для сокрытия существования либо связи в сетевом трафике, либо контента, скрытого в других файлах.

Случаи раскрытия информации в «Звездных войнах»

Я часто говорю, что «Звездные войны» – это история раскрытия информации и ее последствий. Для пущего эффекта позвольте мне указать, как часто это используется в качестве важного поворота сюжета. Компьютеризированное раскрытие информации в «Звездных войнах» включает в себя следующее:

– «Новая надежда»:

• Планы «Звезды смерти» украдены на магнитной ленте.

• Поэтажные планы и места размещения пленников раскрыты, когда R2-D2 подключается к «Звезде смерти».

– «Империя наносит ответный удар»:

• R2-D2 пищит, а C-3PO говорит: «Откуда ты знаешь, что гиперпривод отключен? Тебе сказал городской компьютер? R2-D2, тебя разве не учили не верить незнакомым компьютерам?»

– «Возвращение джедая»:

• Ботан обнаруживает расположение новой «Звезды смерти», и кажется, что это раскрытие информации, но это… ловушка!

Есть и другая информация, которая держится в секрете: Лея скрывает местоположение базы повстанцев, а Оби-Ван утаивает истинную природу Дарта Вейдера, но они не компьютеризированы. R2, воспроизводящий голограмму, каждый раз нуждается в авторизации самого R2. В эпизоде «Империя наносит ответный удар» Люк чувствует, что Хана Соло пытают, но это сделано намеренно.

Заключение

Информация может быть раскрыта как одному человеку, так и целой галактике; она может быть небольшой или объемной. В контексте Галактической Империи знаменитые слова Дарта Вейдера: «Нет, я твой отец!» – это маленький объем информации, раскрытой только одному человеку, но с огромными последствиями.

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

Механизмы раскрытия информации относительно просты, но угадывание – и проверка этих догадок – может быть поразительно эффективным. Датчики обладают удивительной и растущей мощностью как в умных устройствах, так и в телефонах. В облаке существуют угрозы раскрытия информации, которые варьируются от невероятно очевидных до очень незаметных или неожиданных. Они могут проявляться или рассматриваться как проблемы безопасности или конфиденциальности.

Иногда средства защиты могут обеспечиваться операционной системой, а иногда они должны быть частью кода или операционных процессов. Эти операционные процессы, особенно в случае с журналами, проходят проще всего, если они поддержи