2010-02-06 80 views
3

我從來沒有必須處理PCI合規性。我一直在閱讀他們的文件,並且說我需要保護信用卡號碼,有效期限和持卡人的姓名。沒有安全代碼存儲。SQL Server 2008 + PCI合規性?與PCI相關,以及對稱密鑰!

在他們的文檔中,它只是說保護。這是說我需要加密我的數據庫中的這3列嗎?我認爲只有數字是需要加密的數據。無論哪種方式,我都很好。

如果我需要加密所有三列,我是否共享一個證書並擁有3個對稱密鑰,或者我只需要其中的一個,並且在所有3列上都使用該對稱密鑰?我問的原因是在BoL文檔中對列進行加密時,密鑰是在他們正在加密的列之後專門命名的。

感謝您的幫助!

回答

10

如果您存儲PAN(卡號),那麼它絕對必須加密。

如果存儲持卡人姓名,有效日期,發行數量(以及它們可以連接到PAN),那麼他們應該加密,但(我的理解)是它不是絕對必要的。 PCI-DSS只規定至少必須對PAN進行加密。

的CV2/AVS/CSC電碼不能存儲授權後,最好你要證明它不是存儲在所有(如 - 只保存在內存中,同時進行授權)

關於證書/密鑰 - 您可以使用一個密鑰對所有卡相關數據進行加密。最佳做法是不要將密鑰用於多種用途,所以如果您有其他(與卡無關的)數據被加密,則使用單獨的密鑰。

最難的部分是你沒有真正提到的細節 - 那就是關鍵管理。爲了滿足PCI要求,密鑰必須存儲在數據庫的單獨物理盒中,並且您至少需要每年更換一次密鑰。SQL 2008支持這一具有Extensible Key Management (EKM)

所有這些要點與一個獨立的QSA(合格安全評估)誰,你會在某個時候需要,以滿足PCI合規性,無論涉及到最好的討論。您的QSA將能夠就此類問題爲您提供指導,並最終爲您提供他/她的建議,以符合合規要求。

值得一提的是,大多數人很快就意識到PCI合規可以承擔多少負擔,並且希望通過使用第三方支付網關來儘量減輕這種負擔。大多數支付網關將允許您執行授權/結算並將卡詳細信息存儲在他們(已經是PCI兼容)的服務器上。您只需要存儲一個TokenId,該TokenId引用這些付款詳細信息,如果您需要對該卡執行進一步的收費/退款。

祝你好運!

+0

GREAT回覆,謝謝! – Gromer 2010-02-10 15:38:53

2

從規範:https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml

要求3:保護存儲的持卡人數據

保護的方法,例如加密,截斷,掩模,和散列是持卡人數據保護的關鍵組件。如果入侵者繞開其他網絡安全控制並獲得對加密數據的訪問權限,而沒有適當的加密密鑰,則該數據不可讀取,並且該人員不可用。其他保護存儲數據的有效方法應視爲潛在的風險緩解機會。對於 示例,用於最小化風險的方法包括:除非絕對必要,否則不存儲持卡人數據,如果完整PAN不是 需要,並且不以未加密的電子郵件發送PAN,則截斷持卡人數據。

我認爲這有力地表明,你應該

  1. 不存儲,除非你有
  2. 如果你有,存儲部分,如果你能
  3. 如果您存儲任何東西,它加密。