Безопасный криптопроцессор

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

Предназначение безопасного криптопроцессора — выступать в качестве «краеугольного камня» безопасности подсистемы, устраняя необходимость защищать остальную часть подсистемы физическими мерами безопасности.

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

Trusted Platform Module (TPM) — реализация безопасного криптопроцессора, которая вносит понятие доверенных вычислений для рядовых ПК путём внедрения защищенной среды. Предполагается, что этот метод усложнит незаконное копирование программного обеспечения, защищенного авторским правом, но текущие реализации, как правило, фокусируются на обеспечении устойчивой ко взломам загрузочной среды и надежных вычислениях на внешних накопителях.

Защищенные чипы для встраиваемых систем способны обеспечивать тот же уровень физической защиты ключей и других секретных данных как и смарт-карты или Trusted Platform Module, но при этом гораздо меньше, проще и дешевле. Они также часто упоминаются как устройства аутентификации и используются для проверки подлинности периферии, аксессуаров или расходных материалов. Как и Trusted Platform Module, эти интегральные схемы предназначены для встраивания в системы и они часто спаяны с платой.

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

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

Степень безопасности 
В то время как безопасные криптопроцессоры полезны, они не неуязвимы для нападения, в частности, для хорошо оснащенных и решительных противников (например, правительственное разведывательное управление), которые готовы тратить огромные ресурсы.

Одна из атак была проведена на IBM 4758. Команда из Университета Кембриджа предоставила отчет об удачном извлечении секретной информации из IBM 4758, использовав математику и взламывающую аппаратуру. В любом случае, такая атака на реальные системы невозможна, потому что атакующие должны иметь полный доступ к API устройства. Обычная (и рекомендуемая) практика — использовать систему контроля доступа, чтобы разделить права и никто не смог провести атаку.

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

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

В случае с приложениями полного шифрования диска, особенно когда они реализованы без доверенного загрузчика, криптопроцессор не может быть защищен от cold boot attack, если остаточная информация может быть прочитана из памяти после того, как операционная система восстановила ключи из TPM.

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

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

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

См. также 
 Компьютерная безопасность
 Security engineering
 Смарт-карта
 Hardware Security Modules
 Trusted Computing
 Trusted Platform Module
 FIPS 140-2

Примечания

Литература 

 Ross Anderson, Mike Bond, Jolyon Clulow and Sergei Skorobogatov, Cryptographic Processors — A Survey, April 2005  (PDF).  This is not a survey of cryptographic processors; it is a survey of relevant security issues.
 Robert M. Best, US Patent 4,278,837, July 14, 1981
 R. Elbaz, et al., Hardware Engines for Bus Encryption — A Survey, 2005 (PDF).
 David Lie, Execute Only Memory, .
 Extracting a 3DES key from an IBM 4758
 J. D. Tygar and Bennet Yee, A System for Using Physically Secure Coprocessors, Dyad

Криптография