Приложение к безопасности взаимодействия с HSM

Я чувствую, что что-то упустил. Я знаю, что HSM может обеспечить вам 100% пуленепробиваемую защиту ваших ключей, зашифрованных данных и т. Д. Но что мешает злоумышленнику украсть ваши конфиденциальные данные сразу после того, как вы получили доступ к HSM и скопировали свои секреты в память пользователей? Или, например, просто использовать тот же API для доступа к модулю? Как работает аутентификация приложения? Если он основан на чем-то простом, таком как пароль, почему злоумышленник не может просто украсть пароль из памяти, войти в HSM и получить то, что он хочет? Кроме того, если ядро ​​скомпрометировано, я предполагаю, что оно может прослушивать или изменять любое взаимодействие между процессом и HSM, верно?

2 ответа

Решение

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

Как работает аутентификация приложения?

Различные HSM предлагают различные варианты аутентификации, например, физические токены (такие как смарт-карты), физический ввод пин-кода, логические токены (в ключах памяти), пользовательские решения, определенные пользователем, и т. Д. И т. Д.

Но что мешает злоумышленнику украсть ваши конфиденциальные данные сразу после того, как вы получили доступ к HSM и скопировали свои секреты в память пользователя?

В идеале, при реализации решения с HSM, чувствительные ключи никогда не открываются вне HSM - вы заставляете HSM использовать ключ (например, делать подпись / шифрование) вместо того, чтобы HSM давал вам ключ.

войти в HSM и получить то, что он хочет?

HSM позволяют защищать ключи таким образом, что невозможно экспортировать их из HSM (даже если у вас есть все учетные данные пользователей / администраторов).

Кроме того, если ядро ​​скомпрометировано, я предполагаю, что оно может прослушивать или изменять любое взаимодействие между процессом и HSM, верно?

Да; может существовать криптографически защищенный канал между приложением и HSM, но, в конечном счете, машину с взломанным ядром следует рассматривать как машину, контролируемую злоумышленником - все, что машина может сделать законно, злоумышленник может использовать незаконно.

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

Самый большой кошмар современной криптографии - это ключевой компромисс, и HSM - правильное решение против него. ИМП часто используются в крупных организациях и финансовых секторах. Другая причина, по которой люди решили использовать HSM, связана с требованиями аудита или соответствия (например, PCI-DSS).

HSM предлагает многофакторную аутентификацию по загрузке ключей с использованием токенов (например, смарт-карт) или парольных фраз. Даже если вы получили доступ к серверу, подключенному к нему, вы все равно не сможете получить доступ к ключам, если не все факторы были получены.

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

Другие вопросы по тегам