2013-08-03 3 views
0

Мне было интересно, если это какая-то техника, так что сохраняйте конфиденциальные данные из веб-приложения. Я знаю, что вы должны никогда не хранить конфиденциальные данные в локальном хранилище или файлы cookie.Сохранять конфиденциальные данные в браузере? Возможное?

При входе на веб-сайт браузер обычно спрашивает, должно ли оно сохранить ваше имя пользователя и пароль. Где он хранится? Насколько это безопасно? И самый важный вопрос, можете ли вы получить к нему доступ с помощью встроенных функций javascript/browser?

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

Заранее благодарен

+0

Если это ориентированная на обслуживание, вы хотите использовать 'OAuth', если это просто для входа в систему, вы хотели бы использовать« OpenId Provider ». Сообщите мне, хотите ли вы узнать больше, но с точки зрения безопасности пользователь должен аутентифицироваться каждый раз. В противном случае «хакер» может взять сохраненный элемент и притвориться пользователем, известным как захват. Браузер, запоминающий имя пользователя и пароль, может быть доступен только с помощью браузера, а не с помощью JavaScript, он хранится в «зашифрованном» файле ... – abc123

+0

Я использую MVC 3 для всей логики на стороне сервера. И материал для входа и сеанса - это стандартный процесс проверки подлинности MVC с использованием поставщика членства. Мне «просто» нужен способ хранения личного ключа на клиенте безопасным способом, если это вообще возможно. –

+0

он не защищен для хранения на стороне пользователя, при аутентификации просто повторно отправить закрытый ключ. В противном случае кто-то может получить доступ к этому сохраненному элементу и захватить его. – abc123

ответ

1

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

  • вы можете полагаться на браузер происхождение политики и считать код JS как доверенный и хранить ключ в localstore - ключ не защищен от противника, имеющим доступ к профилю пользователя
  • вы можете позволить пользователь вводит разумно надежный пароль каждый раз, после чего необходимо получить доступ к частному лицу и хранить ключ с использованием шифрования на основе пароля, а затем зашифрованный закрытый ключ можно хранить в любом месте (localstore, cookie) - противник, способный получить доступ к паролю пользователя, может получить ключ
  • вы можете создать ключ шифрования секретного ключа, объединив пароль пользователя и некоторый секрет, посланный сервером после успешной аутентификации использования r -
Смежные вопросы