Защита отдельных полей БД - PullRequest
1 голос
/ 10 января 2011

Мое приложение должно хранить банковские реквизиты и номера кредитных карт в базе данных. Мы поддерживаем несколько вариантов БД и стараемся по возможности избегать каких-либо специфических функций БД, которые могут быть нелегко перенести на другую.

Поэтому я ищу простой, но достаточно безопасный способ шифрования определенных полей, таких как номер карты и номер банковского счета. Приложение нуждается в них для отправки запросов во внешние платежные системы, но случайный выбор * соответствующих таблиц БД должен возвращать «мусор», чтобы кто-то не мог убежать с несколькими тысячами номеров кредитных карт.

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

У кого-нибудь есть предложения относительно простого, но безопасного способа сделать это?

Я нашел следующий вопрос / ответ , который выглядел полезным и всеобъемлющим, но я пытался выяснить, нужны ли мне все эти поля.

Я также нашел эту статью , которая, казалось, подразумевала, что IV должен генерироваться случайным образом каждый раз, когда запись вставляется / обновляется и сохраняется вместе с зашифрованным значением. Если безопаснее, то это кажется более простым, чем подход, предложенный в вопросе SO, но у меня возникают проблемы с согласованием этого с API Java.

Любые предложения приветствуются. (Я использую Java 6)

Ответы [ 2 ]

1 голос
/ 10 января 2011

Java поставляется с некоторыми библиотеками для шифрования / дешифрования, вы можете исследовать их, начиная с http://download.oracle.com/javase/6/docs/technotes/guides/security/index.html,, в частности, посмотрите информацию о JCE (теперь расширение JCA).

Этот вопрос SO такжеочень похож и содержит много полезных советов: https://stackoverflow.com/questions/4319496/how-to-encrypt-and-decrypt-data-in-java

1 голос
/ 10 января 2011

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

...