PCI DSS即為《支付卡行業數據安全標準》。保護與支付相關的數據固然重要,但是人們對涉及面更廣的敏感個人信息(例如醫療記錄、犯罪背景、就業信息等)的類似擔憂使數據保護問題變得愈加突出,由此催生了大量有關隱私保護的法律以及法律規定的數據泄露情況披露義務。
合規當然是強制性的。如果不采取適當措施,你的公司至少會聲譽受損,企業落入競爭劣勢。更有甚者,如果你的公司發生數據泄露情況,你不僅會被科以罰款,還會有指責你玩忽職守的批評鋪天蓋地而來。這些罰款可能由支付卡品牌方本身和/或你公司的收單方(代表你處理交易并負責擔保你會為支付卡品牌嚴格遵守PCI DSS的機構)征收。你還將面臨交易費用上漲的情況,甚至還有可能被人拉去對簿公堂。
避免所有這些麻煩的過程會讓你認識到,為什么說遵守PCI DSS符合你公司的最大利益。而它還有另外一個好處:你還可以借助用于實現PCI DSS合規的那些技術和規程來保護自己企業的各種數據。
賬號數據很容易進入各種業務系統找到自己的用途,其中從交易處理到客戶關系管理以及增值系統(例如忠誠度和客戶支持),應有盡有。這里的挑戰在于,所有這些環境都要被置于保護之下才能符合PCI DSS的規定。因此,《通用數據安全標準》的廣度和深度遠遠超過其他隱私和數據安全要求。事實上,安全專家傾向于認為,這一標準既符合行業最佳實踐規范,也是這些行業規范的最佳體現。盡管這一標準的一些方面對于你的公司來說是全新內容,但它們涉及的卻可能是真正的風險領域。
這一標準期望能夠得到世界各地所有公司的一致使用,其中從單人公司到大型跨國公司,全部包括在內。但是在具體實踐中,評價時還必須考慮法律、法規和業務方面的要求。
PCI DSS由公開發布的12項要求組成,每項要求下還包含若干子要求。12項PCI DSS合規要求分為六類,如下表所示:
PCI DSS合規要求一覽表
類別 |
要求 |
構建和維護安全網絡 |
要求1:安裝和維護防火墻配置來保護持卡人數據。 要求2:不使用供應商提供的系統口令和其他安全參數的默認值。 |
保護持卡人數據 |
要求3:保護存儲的持卡人數據。 要求4:持卡人數據需經加密才可在開放的公共網絡上傳輸。 |
執行漏洞管理計劃 |
要求5:保護所有系統免受惡意軟件侵害并定期更新殺毒軟件或程序。 要求6:開發和維護安全系統和應用程序。 |
執行強訪問控制措施 |
要求7:依照因需可知原則限制對持卡人數據的訪問。 要求8:識別和驗證對系統組件的訪問。 要求9:限制對持卡人數據的物理訪問。 |
定期監控和測試網絡 |
要求10:跟蹤和監控對網絡資源和持卡人數據的所有訪問。 要求11:定期測試安全系統和流程。 |
保持信息安全策略 |
要求12:保持一項所有人員都必須遵守的信息安全策略。 |
為了達到PCI DSS合規,你需要投入大量時間和資金來構建安全基礎設施和支持性流程才能滿足PCI DSS的安全要求。PCI DSS主要涉及對持卡人數據的保護。至于你的公司處理的與支付無關的所有其他數據,其中肯定有一部分會從類似級別的保護中受益。
除了滿足PCI DSS的要求以外,你還可以借助這些安全原則來構建支持本公司關鍵資產的其他解決方案。以下任何一項工作都會給你的公司帶來好處:
l? 給公司內部所有網絡通信流加密,確保只有需要查看數據的人才能看到數據。
l? 采用加密和/或令牌化技術,確保只有得到授權可以解密數據的人才能訪問數據,以此保護整個公司的所有靜止數據。
l? 通過給數據記錄中被選定的字段加密,在捕捉點(數據進入公司的入口點)保護所有敏感數據。
l? 在把數據發送到你使用的任何云服務供應商之前,以在本地加密數據和管理密鑰的方式把數據的安全完全保持在你的控制之下。
l? 采用分層級的安全保護方法,使你的基礎設施不存在一個易受攻擊的脆弱點,增加攻擊者未經授權訪問你的數據的難度——不管他們在公司內部還是外面。
如果你對本公司內部的所有數據以及對數據的訪問都采用安全意識極高的保護方法,則達到PCI DSS的具體要求會變得水到渠成。
PCI DSS的核心是滿足你保護自己存儲的任何持卡人數據的需要。該標準列舉了多種適用于保護持卡人數據的方法,例如加密、令牌化、截斷、屏蔽、散列化等。采用這些保護方法中的一種或多種,可令偷盜數據的行為歸于徒勞。
保護存儲數據不可“一刀切”。你應該把PCI DSS要求3視作你應該達到的最低安全級別,以盡可能增加潛在攻擊者陰謀得逞的難度。
了解數據存儲規則
你需要知道存儲數據的所有位置。要求3還提供了關于哪些數據可以存儲——以及哪些數據不可存儲——的指導。這項要求的最佳建議之一是:“不需要,就別存。”
讓存儲的數據不可讀
PCI DSS標準要求你無論把主賬號(PAN)保存到哪兒,都必須不可讀,其中包括便攜式存儲介質、備份設備,甚至審計日志(這一點常被人忽視)。PCI安全標準委員會有意采用“不可讀”這個詞,是為了避免強制規定使用任何特定技術,這反過來又證明了未來的要求。即便如此,要求3.4還是提出了幾個選項:
l? 基于強密碼的單向散列,其中必須對整個主賬號(PAN)進行散列化處理;
l? 截斷,用于保存PAN的一段(不超過前六位和后四位數字);
l? 令牌化,用于保存PAN的替代品或代理,而不是PAN本身;
l? 得到密鑰管理流程和安全規程支持的強密碼。
安全管理密鑰
無論您打算用哪種方法讓存儲的數據變得不可讀,你都要保護相關的密碼密鑰。如果配套的是弱密鑰管理流程,加密即便再強也會沒用。PCI DSS標準提供了怎樣管理密鑰的詳細指南——該指南建議的方式與要求銀行和其他金融機構保護其密碼密鑰的方式極為相似。其他要求還規定,你應該把在各種密鑰的整個生命周期中采用的具體管理方式形成正式文件。
你在管理密鑰方面的成功取決于你擁有優秀的密碼密鑰保管人,也就是你確信不會串通他人攻擊你的系統的人。這些人必須正式認定他們了解并接受托付給他們的密鑰保管人職責。
此外,你還必須確保,有關保護存儲的持卡人數據的安全策略和操作規程正式成文、被落到實處并且為公司內所有相關方知曉。
不要低估強密鑰管理的重要性,也不要試圖走捷徑。合格的安全評估員會發現你的錯誤,而攻擊者自然也有可能發現它們。
部分屏蔽PAN
PCI DSS標準就主賬號(PAN)的顯示問題提出了非常具體的建議:只向那些出于業務原因必須查看PAN的人員顯示PAN的完整數字(通常為16位)。至于所有其他情況,你必須通過屏蔽確保顯示出來的PAN不超過前六位和后四位數字。
敏感數據在開放網絡(包括互聯網、公共網絡或其他不可信無線網和蜂窩網)傳輸時會非常脆弱。PCI安全標準委員會對傳輸中的數據采取了非常強硬的態度,要求必須使用可信密鑰/證書、安全傳輸協議和強加密。該委員會還給你指定了一項必須審查安全協議的長期任務,以確保它們符合安全通信的行業最佳實踐。
阻止竊聽者
許多潛在的攻擊者都是試圖利用已知安全漏洞的竊聽者。PCI DSS標準針對與其他系統建立連接的情況提出了具體要求和指南:
l? 只有當你被出示可信密鑰/證書時才繼續往下建立連接。你需要驗證這些密鑰和/或證書并確保它們沒有過期。
l? 把你的系統配置成只使用安全協議,不接受使用較弱協議或加密密鑰長度不足的系統發出的連接請求。
l? 對通過傳輸持卡人數據或連接持卡人數據環境的無線網絡進行的身份驗證和傳輸實施強PCI DSS加密。
保護最終用戶的消息傳遞
大部分PCI DSS都側重于保護主賬號(PAN)。要求4針對通過開放網絡傳輸PAN制定了一些具體規則。因此,在傳輸持卡人數據時,你的公司往常使用的技術(例如最終用戶消息傳遞技術)可能需要調整、更換或停用。要求4的主要規定如下:
l? 不得通過電子郵件、即時消息傳遞和聊天應用等商業技術在未受保護的情況下發送PAN。
l? 在使用任何最終用戶技術之前,必須確保通過強密碼使PAN變得不可讀。
l? 第三方請求得到PAN時,必須由該第三方提供保護PAN的工具或方法,否則就必須由你在傳輸前使號碼不可讀。
你必須為在網絡通信的過程中加密持卡人數據規定適當的安全策略和操作規程。此外,你還必須確保這些文件是最新的,隨時可供你公司中所有相關人員使用并被他們認真遵守。
PCI DSS標準有相當大一部分涉及訪問控制機制;訪問控制機制必須足夠強勁和全面,才能提供持卡人數據所需要的保護。
PSS DSS標準要求7明確規定你必須限制對數據的訪問。你必須確保只有得到授權的人員才能訪問關鍵數據,而且你必須制定適當的制度和規程,據此根據業務需要和工作職責限制訪問。該要求還規定,訪問權不再被需要時,應立即取消。
你應該盡量把需要訪問數據的人數保持在絕對最低限度,并根據定義明確的角色和職責確定和記錄訪問需要。
管理訪問策略
PCI DSS標準要求你周密考慮應該允許本公司哪些人員擁有系統組件訪問權,以及這些訪問權會對持卡人數據環境的安全有什么影響。如果你的公司設有多個辦公地點或數據中心,或者你把一些數據交給基于云的服務供應商托管,則此項任務會更為復雜。
你必須精細管理訪問控制策略,仔細定義本公司中的各種用戶角色(用戶、管理員等)并指定他們可以訪問系統和數據的哪些部分。
在實踐中,你需要制定有效而符合實際的訪問控制策略來實施充分的控制,這要求你拿出足夠的時間設計最佳機制,最終滿足自己的需要。
分配“最小權限”訪問權
PCI DSS標準是強制性的,要求你必須根據記錄在案并得到批準的請求對所有用戶賬戶只授予“最小權限”訪問權。這里的邏輯是,你只可向每個人授予足以讓他們訪問行使其工作職能所需要訪問的那些部分系統或數據的訪問權限。例如,管理員可以為其他用戶定義查看持卡人數據的訪問策略,但管理員本人不能直接讀數據。
你可能需要根據所處環境的具體情況針對多種系統類型為網絡、主機和應用層面的使用和管理安排不同級別的訪問權。這項任務相當復雜,例如,當你需要為多種類型用戶授予對數據庫的不同訪問權時。
最好的辦法是默認禁用對數據的訪問,需要時再啟用任何訪問。這種辦法可以更加輕松地防止有可能導致數據泄露(最壞情況)的訪問權授予錯誤。
撤銷數據訪問權
當用戶發生角色變更時,需把這個變化記錄在案并適當修改該用戶的權限。同樣,當用戶從你的公司離職時,也需要把這個變化記錄下來,然后根據本公司的策略和規程禁用或刪除他的用戶賬戶。
一個預先建立、始終如一的流程有助于確保實現強權限管理。
強安全性對于保護你的系統和數據免遭未經授權訪問至關重要。PCI DSS標準要求8中包含了許多需要你在針對員工和第三方的訪問控制和口令策略中著重滿足的元素。
確保個人問責
確保需要訪問你的系統的每個用戶(內部的或外部的)都有一個唯一標識符,這一點非常非常重要,只有這樣才能保證日后不會出現到底是誰執行了哪項特定任務的爭議。(有關處理不可否認性等問題的詳細信息,請參閱PCI DSS標準要求8.1。)嚴格執行每個用戶的唯一標識符可以從根本上阻止基于組的身份使用或共享身份(參見PCI DSS標準要求8.1.5和8.5)。
每當出現有新用戶添加進來、現有憑證發生改動或者有用戶因不再需要訪問權而被刪除或禁用賬戶的情況時,你還需要確保完全可問責。可問責包括當即撤銷停職用戶的訪問權(詳情請見PCI DSS標準要求7.1.4和8.1.2)。
讓訪問管理更靈活
擁有合規的用戶訪問策略固然很好,但是這項策略只能幫助你遵守PCI DSS標準。你必須有一個規定了各種任務的訪問管理系統來支撐你的用戶訪問策略,這些任務如下:
l? 限制第三方(例如需要遠程訪問服務或支持你的系統的供應商)的數據訪問。只在第三方需要的時候才授予訪問權,同時還要監控他們對你的系統的使用。切勿提供不受限制的24/7全天候訪問。
l? 鎖閉在規定時間內多次嘗試登錄失敗的用戶(提升自動口令攻擊的難度)。
l? 把系統設置成任何用戶在規定時限內無活動后將無法使用系統,該用戶必須重新登錄后才可繼續使用系統(把冒名頂替的風險降至最低)。
l? 對嘗試非控制臺管理或遠程訪問持卡人數據環境系統組件的人員執行多因子身份驗證法(通常通過令牌或智能卡)。這種增強的安全方法可提高攻擊者成功的門檻。
加強身份驗證
PCI DSS標準要求有一個針對所有類型訪問的強身份驗證系統。該標準還對執行和管理這一身份驗證系統做出了詳細描述。例如,對于口令,PCI DSS標準要求8.2指導你進行以下操作:
l? 對于所有系統組件上的數據傳輸和存儲,通過強密碼使所有身份驗證憑證(例如口令或口令短語)不可讀,以此降低最易遭受內部人員攻擊的數據的價值。
l? 為口令設置嚴格條件。作為一項基本要求,所有口令都必須至少每90天更換一次。必須強制要求,任何給定口令都至少由7個字母、數字字符組成。必須禁止重復使用以前的口令。
l? 為每個新用戶提供一個初始口令,同時要求新用戶第一次訪問你的系統時更改初始令。
l? 禁止組共享口令。
身份驗證策略制定后應提供給所有用戶,以幫助他們了解并遵守這些要求。
如果你沒有掌握有關數據何時被怎樣訪問、更新或刪除的準確詳細信息,你將很難識別自己系統所遭受的攻擊。除此之外,你還將缺乏足夠的信息來調查到底發生了什么事,尤其在數據泄露之后。
幸運的是,PCI DSS標準要求10提出必須保持、監控和留存全面審計日志。
維護審計蹤跡
PCI DSS標準強制規定,必須把某些活動——尤其是讀、寫或修改數據(參見PCI DSS標準要求10.2)——記錄到所有系統組件的自動審計蹤跡中。這些組件包括面向外部的技術和安全系統,例如防火墻、入侵檢測和入侵防御系統以及身份驗證服務器。
此外,該標準還描述了應該記錄哪些具體細節,以便于你了解所有數據被誰、什么、在何地、何時以什么方式訪問的情況。例如,任何根或管理員用戶訪問都應被記錄下來,尤其是當特權用戶在嘗試訪問數據之前升級自己權限的時候。
PCI DSS標準要求10.4還要求對所有持卡人數據環境系統組件進行配置,使它們可以接收準確的時間同步數據。如果你目前還不具備此項功能,則可能需要升級系統。
必須記錄下來的一類重要信息是任何失敗的訪問嘗試——這是暴力破解或持續猜測口令的一個明顯特征,特別是當訪問日志有很多條目的時候。你還必須記錄添加和刪除動作,例如提升訪問權限、降低身份驗證限制、臨時禁用日志、軟件替換(這可能是存在惡意軟件的跡象),等等。
防止未經授權篡改日志
審計日志創建后,你必須確保日志處于保護之下無法被人篡改。你必須使用集中式PCI DSS日志記錄解決方案(參見PCI DSS標準要求10.5.3);這個解決方案對訪問有嚴格限制并具有足夠大的容量,可將持卡人數據環境內所有系統組件的日志數據至少保留90天,全年余下時間的數據若被需要,亦可供恢復。
定期進行安全檢查
除了確保生成被要求的詳細信息、把它們集中存儲并施以保護免遭未經授權訪問或篡改外,你還必須至少每天對日志和安全事件進行一次檢查,并且無論白天還是晚上,聽到警報后必須立即進行查看(參見PCI DSS標準要求10.6和12.10.3)。這項要求可幫助你識別異常和可疑活動。
下面介紹幾種使保存的信息——特別是主賬號(PAN)——變得不可讀的最流行方法。
屏蔽
屏蔽是指在將數據呈現給某人時保持數據的保密性。任何在餐廳或商店用支付卡付賬后查看打印收據的人都熟悉這個過程;PAN的某些位數字顯示為X,而不是實際數字(見下圖)。根據PCI DSS標準要求3.3的規定,PAN顯示應限制為執行工作職能所需要的最少數字位數,并且不應超過前六位和后四位數字。
用于顯示的被屏蔽PAN:
截斷
截斷通過確保只保存完整PAN的一個部分來使存儲的數據不可讀。與屏蔽一樣,截斷最多只能保存PAN的前六位和后四位數字。
截斷后的PAN:
單向散列
散列函數是一個定義明確、可證明安全的密碼進程,可將任意數據塊(在本例指PAN)轉換成一個不同的唯一數據串。換句話說,每個PAN都會產生不同的結果。單向散列進程是不可逆的(故此得名單向);它通常用于確保數據不曾被人篡改,因為原始數據塊的任何更改都會導致得出不同的散列值。
下圖顯示了散列函數在PCI DSS標準背景下的使用情況。這項技術提供保密性(從PAN的散列版不可能重建PAN),但是與截斷一樣,它同時也使存儲的數據不可能用于后續交易。
PAN的單向散列:
你不可在持卡人數據環境里同時保留同一張支付卡的截斷版和散列版,除非你執行了額外的控制確保這兩個版本無法被人拿去關聯到一起重建PAN。
令牌化
令牌化是指用替代數據替換原始PAN的過程——所形成的令牌看起來像是一個合法PAN,但是對于攻擊者來說毫無價值。令牌化的執行在多數情況下是可逆的;令牌可以根據請求轉換回原始PAN。當后續交易需要訪問存儲的PAN時,可以使用令牌化。
創建令牌的方法有多種,以下是常用的兩種方法:
l? 直接從原始PAN值計算令牌:這種方法可在一個所謂確定性進程中為每個給定的PAN生成相同的令牌。
l? 隨機生成令牌:這種方法每次都會產生不同的令牌,對以前的PAN進行窮盡查找,以重復使用以前簽發的令牌的情況除外。
在某些情況下,令牌化進程的確定性程度非常重要。一切都由令牌的使用方式決定。有時,執行令牌化的過程不僅需要保留PAN的格式,還需要保留PAN的某些數字(見下圖)。
PAN的令牌化(保留后四位數字)
加密
從某些方面說,加密的目的與令牌化類似,即用對于攻擊者沒有價值的數據取代PAN數據。加密用標準化密碼算法和密鑰從原始數據派生出經過加密的PAN。算法是廣為人知的,因這個進程的安全性取決于密碼密鑰的強度和處理方式,這就是硬件安全模塊被廣泛涉及的原因。
加密過程通常會更改數據的格式。數據被加密時,數據大小往往會變大。出于同樣的原因,令牌化卻嘗試保留原始PAN數據的格式——旨在把接觸數據的現有系統的變化降至最低限度——機構通常采用格式保留加密(FPE;見下圖)。
PAN的加密(使用FPE并保留后四位數字)。