Я пишу систему, в которой, как обычно, клиент просит удобства «запомнить данные вашей кредитной карты».Обзор безопасности: кредитная карта клиента #, хранящаяся на сервере, но с одноразовым шифрованием, хранящимся в клиенте cookie
Я сказал им, что это, по всей вероятности, не-идет. Тем не менее, у меня была хорошая идея (tm) только сейчас, и, видя, что Good Ideas in Encryption (tm) на самом деле являются плохими идеями (tm), я подумал, что рассмотрю здесь и посмотрю, какие дыры можно пробить через это.
По существу, я думаю об информации кредитной карты плюс некоторую подпись сообщения, используя одноразовый блок, созданный для каждого клиента. Эта панель хранится в качестве переменной cookie в браузере клиента. В следующий раз, когда пользователь попытается разместить покупку, блок отправляется на сервер, и если сервер может правильно декодировать свои зашифрованные данные, он показывает информацию о кредитной карте как уже заполненную. (Информация cc фактически не передается обратно). Сервер никогда не будет хранить блок в чем-либо больше, чем в памяти или файле страницы. Фактически, я намерен отправить блокнот дважды: один раз по прибытии на страницу CC (где сервер проверяет, следует ли запрашивать информацию CC) и один раз на отправке CC для получения фактической информации.
Пользователю также будет поручено, чтобы их информация была «частично сохранена» в кеше файлов cookie, что означает, что они будут ожидать, что если их файлы cookie будут сброшены, их информация CC будет потеряна.
Сообщите мне, где вы думаете, что эта схема ужасно терпит неудачу.
Можете ли вы объяснить, как, поскольку я действительно не вижу сценария. Сервер попробует и расшифрует полный пакет, который также будет содержать подпись всего сообщения. Это все или ничего. – 2009-04-02 06:08:52
Если вы храните что-нибудь чувствительное в cookie, злоумышленник может получить его через XSS. Вы храните что-то чувствительное в cookie. – Kalium