• Как безопасно хранить приватный RSA ключ, чтобы использовать его в Java-приложении?

    @codecity
    чтобы этот ключ могло прочитать из java keystore только подписанное приложение (сертификат предварительно загружен в keystore)

    Стандартного решения нет.

    Попробуйте такой вариант: при первом запуске приложение стучится на управляющий сервер и докладывает о необходимости инициализации. Оператор вводит PIN-код, который соответствует этому терминалу (при этом он убеждается, что терминал не украли, к примеру, с помощью видео).

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

    Кроме того, нужна будет небольшая аппаратная поддержка: при перемещении терминала должно происходить отключение или перезагрузка. Реазиловать можно с помощью гироскопа или обычного геркона+магнитика.
    Ответ написан
    1 комментарий