Как выполнить поиск по шаблону зашифрованного текста? - PullRequest
2 голосов
/ 15 декабря 2011

У нас есть веб-сайт с множеством пользователей, и из-за проблем с соблюдением PCI мы должны хранить их имена в зашифрованном виде (мы используем blowfish). Теперь нам нужно иметь функцию поиска по шаблону через их имена в панели администратора, которую мы не можем расшифровать способом «in-query».

Какие существуют общие решения для решения этой проблемы?

Ответы [ 3 ]

1 голос
/ 15 декабря 2011

Я могу думать о двух возможных подходах.

Первый работает, когда сами имена не являются секретными, но данные, связанные с ними, есть.Вы можете настроить отдельный поисковый индекс:

Name                 Record Number
----                 -------------
John Q. Public       12345
Hector H. Suarez     54321
Katherine T. Carson  98712

Поиск по индексу, чтобы найти соответствующий номер записи.Получить и расшифровать эту конкретную запись.

Второй - для случаев, когда сами имена являются секретными.По сути, обрабатывайте имена как пароль: хэшируйте каждое имя с помощью криптографически безопасного хэша, например, SHA-256.Вы не сможете использовать соль в этом случае, потому что это для поиска.Вам также может понадобиться предварительно обработать поиски, так как «John Q. Public» и «John Q Public» (без полной остановки) будут хэшировать до очень разных значений.Этот индекс поиска выглядит следующим образом:

Hashed Name          Record Number
-----------          -------------
1A2BFF68C ... CAF4   12345
5820BAA5F ... 67FA   54321
2039F288A ... 9BC2   98712

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

0 голосов
/ 30 января 2012

Внимательно прочитайте раздел PCI-DSS под названием «Информация о применимости PCI DSS» в PCI DSS версии 2.0.

Из этого прочтения следует, что «требования PCI DSS 3.3 и 3.4 применяются только к PAN». Это может быть ваш обходной путь, если вам не нужно шифровать данные, отличные от PAN, то есть имена могут храниться в виде простого текста.

Это не обязательно лучшая практика, но стоит подумать, если вам абсолютно необходимо иметь возможность подстановочного поиска по тексту

0 голосов
/ 15 декабря 2011

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

...