2011-12-15 46 views
2

我們有一個擁有大量用戶的網站,由於PCI合規性問題,我們必須存儲他們的名字加密(我們使用河豚)。 現在,我們需要在管理控制檯中通過他們的名稱擁有通配符搜索功能,我們無法以「查詢內」方式解密。如何通過加密文本執行通配符搜索?

有什麼通用的解決方案可以解決這個問題?

回答

0

您使用諸如Lucene的索引系統,對每個文檔進行索引(解密),並搜索該索引。

+0

這是違背PCI要求通配符搜索功能,因爲我們有所有他們Lucene的解密。 – inteloid 2011-12-15 07:51:41

+0

使用相同的密鑰對lucene數據庫進行加密,只在需要時解密? – 2011-12-15 12:49:54

1

我可以想到兩種可能的方法。

第一部作品的名字本身並不是祕密,但與它們相關的數據是。您可以設置單獨的搜索索引:

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 

對於每個搜索,您散列名稱並查找該散列。再次檢索並解密相應的記錄。除非您準備爲所有主要搜索可能性設置多個類似索引,否則您不能執行部分名稱搜索,例如「檢索所有Smiths」。

0

請仔細閱讀PCI DSS 2.0版中標題爲「PCI DSS應用程序信息」的PCI-DSS部分。

您應該從閱讀中發現「PCI DSS要求3.3和3.4僅適用於PAN」。這可能是您的解決方法,無需加密PAN以外的其他數據 - 這意味着名稱可以以純文本形式存儲。

這並不一定是最好的做法,但是是值得考慮,如果你絕對必須有能夠通過文字