Работя върху Java RCP приложение. Потребителят трябва да се удостовери със своята SmartCard, за да получи достъп до приложението. Вътре в него той може да отваря/записва файлове, които трябва да се съхраняват криптирани.
В момента използвам базирано на парола AES криптиране с твърдо кодирана парола. Това очевидно не е сигурно, така че имам нужда от различен подход за криптиране/декриптиране на файлове.
Това, което поражда този проблем е, че има няколко изисквания, които трябва да бъдат изпълнени:
- няма гарантирана мрежова връзка (трябва да може да се използва в офлайн режим)
- множество потребители трябва да имат достъп до файловете (така че няма криптиране с публичен/личен ключ)
- не трябва да има един "главен" ключ, използван за всички файлове
Редактиране: Не е необходимо да имам много високо ниво на сигурност. Трябва да е малко по-трудно за атакуващия да получи ключа, отколкото просто да отвори разпространения JAR файл и да получи ключа в обикновен текст.
Всякакви съвети ще бъдат оценени.