Как надежно зашифровать информацию о кредитной карте в базе данных

Я уже прочитал Сохранение информации о кредитной карте в базе данных MySQL?и Хранение информации о кредитной карте.

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

Вопрос не об этом.У меня следующий вопрос:

Каков безопасный способ шифрования кредитных карт пользователей? Самое простое и легкое, что приходит на ум, — это использование закрытого ключа и шифрование с его помощью CC. Это не кажется очень безопасным, потому что ключ должен храниться на сервере, и если злоумышленник сможет получить мою базу данных, он, вероятно, сможет получить и ключ.

Что я хотел бы сделать, так это зашифровать каждый CC, используя пароль этого пользователя, как часть процесса шифрования. Если кто-то получит базу данных, он не сможет ничего расшифровать, потому что пароли хранятся в виде хэшей с солью. Это отлично подходит для транзакционных покупок: пользователь нажимает «Купить», вводит свой пароль в качестве подтверждения, я расшифровываю его CC и взимаю плату. Их пароль находится в памяти только на время запроса и никогда не записывается на диск.

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

Учитывая этот сценарий, существует ли безопасный способ хранения пользовательских копий?

6
задан Community 23 May 2017 в 10:32
поделиться