Безопасное хранение конфиденциальных данных на стороне клиента

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

использование SSL для всех бирж

зашифровать данные в нескольких файлах cookie, которые хранятся локально, используя шифр в качестве пароля для подтверждения, который необходимо вводить каждый раз. заставляя шифр быть сильным, скажем, 15+ смешанных символов, и это подтверждается проверкой его хэша на сервере.

Я знаю, что основным слабым местом является информация о файлах cookie, которая хранится в двухстороннем шифровании, что говорит о том, что это достаточно безопасный способ хранения информации....

Вопрос Как его можно улучшить, используя этот базовый метод.

Пожалуйста Я знаю, что будет много ответов НЕ ДЕЛАЙТЕ ЭТОГО! (если бы я не спрашивал, я был бы одним из них), поэтому, пожалуйста, будьте конкретны , вы проповедуете хору об этом, так что будьте конструктивны в негативах.

Изменить. Если у вас есть конкретная точка зрения, которую, по вашему мнению, я могу использовать в рассуждениях с моим менеджером, пожалуйста, поделитесь ею. (Я уже упоминал, что мы, возможно, будем нести юридическую ответственность, если информация CC будет украдена из файла cookie, и он сказал, что юрист это проверит)

Спасибо.


person webLacky3rdClass    schedule 01.08.2012    source источник
comment
Плохая идея.... Не делай этого..... ;)   -  person webLacky3rdClass    schedule 01.08.2012
comment
Почему ты делаешь это далеко? Вы пытаетесь избежать хранения информации о кредитной карте на веб-сервере, чтобы избежать этой ответственности?   -  person Marcus Adams    schedule 01.08.2012
comment
Это его идея, но я думаю, что мы будем нести ответственность за это, просто ища способ убедить его и подготовиться, если он не будет убежден.   -  person webLacky3rdClass    schedule 01.08.2012


Ответы (3)


использование SSL для всех бирж

Это должно быть сделано независимо от того, какое решение вы используете, если задействована информация о кредитных картах / платежах. Как вы, наверное, знаете.

зашифровать данные в нескольких файлах cookie, которые хранятся локально, используя шифр в качестве пароля для подтверждения, который необходимо вводить каждый раз. заставляя шифр быть сильным, скажем, 15+ смешанных символов, и это подтверждается проверкой его хэша на сервере.

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

Даже если нам не разрешено говорить, не делайте этого! - почему бы вам не попросить нас о хороших способах отговорить вашего менеджера от принятия этого решения? ;-)

Что заставляет вас не хотеть хранить эту серверную часть? Amazon не хранит информацию о моей кредитной карте в файле cookie. Основная идея заключается в том, чтобы хранить всю информацию о пользователе на сервере и получать к ней доступ после успешной аутентификации пользователя (т. е. входа в систему).

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

Сохранение фактических номеров кредитных карт в файлах cookie (зашифрованных или нет) может стать потенциальным пиар-кошмаром, когда какой-нибудь технически подкованный клиент поймет, что вы делаете.

Тема для дополнительного чтения: Какую информацию можно хранить в файлах cookie?

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

Из статьи, на которую ссылается Скотт Хансельман:

Хранение кредитных карт

Если вам абсолютно необходимо хранить данные кредитной карты, они должны храниться в зашифрованном виде.

Существуют различные стандарты соответствия (в частности, CSIP и PCI), которым должны следовать поставщики и которые описывают конкретные правила защиты сетей и хранения данных. Эти правила довольно сложны и требуют очень дорогой сертификации. Тем не менее, эти стандарты настолько строгие и дорогостоящие, что малым предприятиям почти невозможно их соблюдать. Хотя мелких поставщиков вряд ли заставят соблюдать требования, несоблюдение по существу освобождает компанию-эмитента кредитных карт от какой-либо ответственности в случае мошенничества или нарушения безопасности. Другими словами, вы несете полную ответственность за ущерб в полном объеме (на самом деле вы все равно несете ответственность — я лишь повторяю грубые концепции этих сертификатов).

(мой акцент)

person Anders Arpi    schedule 01.08.2012
comment
это было то, что я искал, но он отредактировал вопрос, чтобы прояснить его. - person webLacky3rdClass; 01.08.2012
comment
немного амазонки, чтобы дать идею покупки в один клик, но спасибо. - person webLacky3rdClass; 01.08.2012
comment
Действительно, и я хочу сказать, что покупка в один клик никоим образом не зависит от хранения информации о клиенте в файлах cookie (или сеансе). - person Anders Arpi; 01.08.2012
comment
Он программист-любитель, поэтому у него достаточно знаний, чтобы быть опасным. Я думаю, что последний фрагмент привлечет его внимание, я говорил ему об этом раньше, но сообщение от кого-то, кто больше разбирается в обработке карт, может помочь моему делу, спасибо. - person webLacky3rdClass; 01.08.2012
comment
Спасибо за очки, спасибо за ссылку, я думаю, он убежден. - person webLacky3rdClass; 02.08.2012

Обратите внимание, что файлы cookie передаются при каждом запросе. Если вы храните в них информацию о кредитной карте, это не только менее безопасно, но вы фактически не получаете никакой реальной выгоды во времени. Помимо того, что это проще реализовать, нет причин делать это таким образом. Поскольку вы тот, кто его реализует, он все равно не должен заботиться о простоте реализации...

Редактировать: вы также можете указать, что если что-то пойдет не так, его за это уволят. Угрожать его работе — отличный способ заставить его увидеть это по-вашему.

person Matt    schedule 01.08.2012
comment
Нравится едит, но он совладелец, никуда не денется. - person webLacky3rdClass; 01.08.2012

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

Вы можете расшифровать информацию о кредитной карте на сервере, даже если она хранится на клиенте. Таким образом, зашифрованная информация о кредитной карте не может быть изменена на клиенте (без знания секретного ключа).

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

person Marcus Adams    schedule 01.08.2012
comment
Что меня беспокоит, так это то, что кто-то получает вредоносное ПО и копирует файлы cookie для моей личной информации, а затем у них есть информация о карте, они могут этого не знать, но если бы они знали, они могли бы потратить время на ее взлом. Есть ли способ узнать, произошло ли это, чтобы пользователь мог быть предупрежден? (это может быть вопрос сам по себе не уверен) - person webLacky3rdClass; 01.08.2012
comment
@ Вон, с достаточно надежным ключом и алгоритмом шифрования они не собираются его взломать в ближайшее время. - person Marcus Adams; 01.08.2012
comment
шифрование с помощью пароля не является хорошей идеей, потому что, когда пользователь меняет свой пароль, он блокируется от своих собственных данных, поскольку старые данные не могут быть расшифрованы с помощью нового пароля, и они могут больше не знать старый пароль. - person Lawrence Weru; 25.03.2017