Использование службы HSM или хранилища ключей, например Azure Key Vault - PullRequest
0 голосов
/ 17 января 2020

Начну с того, что понимаю, что хочу сделать данные максимально безопасными.

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

Итак, я прочитал, что хранить ваш ключ на том же сервере, что и данные, ужасно. Итак, отдельные серверы, нет проблем. Потом я прочитал, что это ужасно - вставить ключ в код на сервере приложений (в стороне от данных). Люди говорят, что правильным способом хранения ключа шифрования является использование HSM или хранилища ключей, такого как Azure Key Vault. Хорошо, я согласен с этим, но если у моего кода есть доступ к HSM или Azure Key Vault (который он должен иметь для расшифровки или доступа к данным ВСЕ ... .

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

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

Что такое дополнительный вектор или слой, который предотвращает использование HSM или Keyvault?

Я не против заплатить и внедрить дополнительный слой. Мне искренне любопытно, поскольку я действительно не вижу никакой разницы.

Ответы [ 2 ]

0 голосов
/ 19 января 2020

, если я правильно понимаю ваш вопрос, это потому, что приложение никогда не видит фактические криптографические c ключи. HSM просто выставляет примитивные криптографические операции, но не сами ключи.

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

0 голосов
/ 18 января 2020

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

Использование программного / аппаратного обеспечения Android Keystore и возможные недостатки безопасности / удобства использования

https://www.itprotoday.com/iaaspaas/software-vs-hsm-protected-keys-azure-key-vault

...