Я прочитал довольно много похожих вопросов здесь, на SO, но никто не был в той же ситуации, что и я.Хранение данных SSN/CC
Раньше пользователь вводил тонну информации, включая SSN, супруг SSN и данные СС. Когда пользователь завершил процесс, информация была нажата на PDF-файлы, зашифрована (которая затем была зашифрована), а затем FTPed обратно на наш сервер. Мы сохранили все в БД, кроме SSN и CC, которые были стерты, когда сессия умерла.
Теперь нам необходимо сохранить эту информацию в базе данных, а также в некоторых случаях, когда после того, как пользователь A будет выполнен, пользователю B необходимо войти и подписать на бланках. После выполнения пользователем B файлы создаются и удаляются SSN/CC. Это означает, что данные должны жить в нашей БД с нескольких минут до месяца. Существует дата истечения срока действия, когда я уничтожаю данные из БД и начинаю их. Примечание. Я не использую данные CC, чтобы фактически взимать плату, поэтому я не могу передать ее третьей стороне, такой как Authorize.net или Paypal.
С учетом этого мне нужно знать, как лучше всего зашифровать этот материал и защитить его. Я разорван между выполнением AES в моем коде, используя GUID пользователя в качестве ключа или только столбца SQL Server 2005, который шифрует и ограничивает функцию расшифровки для пользователя сети.
Мне нравится AES, потому что он позволяет нескольким людям, имеющим доступ к БД, использовать пароль пользователя Интернета, чтобы захватить все данные СС. Они имели бы доступ к исходному коду и могли бы реплицировать метод дешифрования, но по крайней мере это немного сложнее, чем просто выполнение некоторых запросов.
К сожалению, у меня нет времени проталкивать способ не хранить данные СС, но у меня есть некоторые идеи для следующей версии. На этой неделе я должен сделать выбор и реализовать шифрование.
Использование GUID в качестве симметричного ключа для AES было чем-то, о чем я думал, прежде чем публиковать вопрос. Теперь я вижу, почему это не сработает. – AndyMcKenna