Хранить защищенные данные в приложении Java

#security #jvm

#Безопасность #jvm

Вопрос:

Мы разрабатываем веб-приложение Java. Одной из возможностей приложения является взаимодействие с другими веб-сервисами (такими как Google Calendar), используя учетные данные, предоставленные пользователем.

Мы не уверены в способе защиты этих учетных данных. В настоящее время мы шифруем пароли и сохраняем выходные данные шифрования в базе данных.

Ключ шифрования хранится в хранилище ключей Java. Пароль хранилища ключей передается в JVM как системное свойство. Это слабое звено цепочки — пароль KS доступен в сценарии загрузки.

Существует ли лучшая практика, которая дает полное решение этой проблемы?

Комментарии:

1. Я не вижу в этом проблемы, пока вы знаете, что ваш веб-сервер защищен и находится за брандмауэром. Это, конечно, было бы проблемой для двухуровневого приложения.

2. Я пытаюсь найти лучшее решение, которое не будет предоставлять учетные данные кому-либо, у кого есть доступ к FS сервера.

Ответ №1:

Даже не пытайтесь сохранять учетные данные пользователя. Используйте OAuth для аутентификации приложения для каждого пользователя, как описано здесь.

Комментарии:

1. это специальное решение для служб Google. нам нужно взаимодействовать с другими службами, которые не предлагают эту опцию.