Как зашифровать данные с помощью закрытого ключа / пароля, который сам зашифрован? - PullRequest
1 голос
/ 12 октября 2019

Я хочу зашифровать некоторые данные (простой текст) с помощью Java таким образом, чтобы:

  • Я должен предоставить кодовый ключ / пароль один раз серверу. приложение будет запущено.
  • Приложение может затем зашифровать данные самостоятельно, используя ранее сохраненный ключ.
  • Злоумышленник, получивший доступ к серверу, не сможет получить сохраненныйключ.

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

Какие инструменты / методы я могу использовать для достижения этой цели?

1 Ответ

1 голос
/ 12 октября 2019

Злоумышленник, получивший доступ к серверу, не сможет получить сохраненный ключ

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

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

Я хочу, чтобы этот ключ был зашифрован сам (не хранится в виде простого текста)

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

Предложение:

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

Но, по крайней мере, если данные имеют утечку (по моему опыту, часто создаются резервные копии или старые копии), этиуслуги помогут сделать данные недоступными.

...