надежно сохранять данные - PullRequest
       19

надежно сохранять данные

0 голосов
/ 12 сентября 2011

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

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 12 сентября 2011

Для защиты данных вам необходимо зашифровать их.Используйте AES-256 в режиме CBC или CTR с отступом PKCS7. не храните ключ шифрования в вашем приложении.Вы можете сохранить IV / nonce, так как он не нуждается в защите.

Чтобы гарантировать, что данные не изменились, используйте HMAC с SHA-256.Вы должны использовать другой ключ для HMAC, чем вы использовали для AES.

0 голосов
/ 12 сентября 2011

Я бы предложил использовать Jasypt . Вы можете реализовать Externalizable и зашифровать поток объекта

BasicPasswordEncryptor encryptor = new BasicPasswordEncryptor();
String cipher = encryptor.encryptPassword(<<stream to encrypt as string>>);
...
if (encryptor.checkPassword(inputPassword, encryptedPassword)) {
  // correct!
} else {
  // bad login!
}
...