- 快捷搜索
- 全站搜索
TPM(可信平臺模塊)是嵌入在所有 PC 內部的微型半導體設備,有時甚至會用于 CPU 內部。它們是用于存放加密密鑰的保險庫,在很多方面類似于支付卡上的芯片。TPM 用于 PC 和筆記本電腦內部已有很長一段時間了,但在銀行ATM網絡中并沒有被很好的部署,主要是由于實施新安全性架構的慣性阻力。這一點很令人驚訝,因為 ATM 網絡比大多數行業更需要安全加密的架構。
事實上,TPM 不僅僅是安全的密鑰庫。它們是 PC 網絡上所有安全性的信任根源,在 ATM 網絡上也應如此。
本白皮書探討了銀行在設計其 ATM 安全架構時必須考慮的事項,以及銀行業應如何利用 TPM 以加密方式鎖定硬件、軟件和網絡。
簡介
所有人都同意,必須在不影響 ATM 可用性的前提下,最大限度地保證其安全性。然而,對于如何實現這一目標,人們似乎尚未達成共識。當然,供應商之間的競爭也帶來了某種混亂,各種安全產品都在爭奪客戶的注意力。而且,還有大量錯誤信息迷惑客戶,并最終導致實施效果不佳,進而使客戶更容易受到攻擊。
本白皮書匯集系統安全的重要基礎知識,從如何保護各個計算系統的基準開始,到隨后對 ATM 網絡(需要最高級保護)獨特用例的討論。ATM 網絡不僅要負責大量現金的安全,還是銀行主機系統的潛在入口點,而該系統可以在全世界范圍內轉移巨額資金。對于銀行來說,ATM 受攻擊的代價可比保險柜內現金丟失的代價大的多。
首先,讓我們看一些關于安全性的常見誤解。對系統安全性的最大誤解可能是對分層安全概念的誤解。在保護復雜系統時,確實不存在什么單一的好方法,而是需要多種互相協調的防護措施。然而,該概念經常被誤解為安全措施越模糊復雜,系統就越安全。 事實并非如此。基本的加密技術可以公開討論,并且很簡單,也很容易理解,必須由其構成所有安全架構的核心。此類技術不僅實現了可量化的安全性,而且使用起來也很方便,實施時不會給用戶帶來困難。
讓我們用一個簡單的例子來闡明這一點。我們都習慣于需要用戶名和密碼登錄的 PC 系統。以密碼為基礎的安全系統原來總受到黑客的攻擊,因此各組織便創建了越來越復雜的密碼規則,這些規則對合法用戶來說非常不友好——定期更改密碼,不能使用最后的 x 個密碼,復雜的密碼組合且很難記憶等。后來,微軟 推出“Windows Hello”打破了這一切。
Windows Hello 將 TPM 安全加密的硬件設備識別與生物特征面部識別相結合。事實上,這與 ATM 行業所熟知的安全概念——芯片密碼技術非常相似。在 Windows Hello 中,TPM 相當于芯片,類似于支付卡上芯片的加密處理器,而生物識別信息則代替了密碼。這種系統不僅比任何使用“用戶名和密碼”的系統更加安全,而且對用戶極其友好。用戶僅僅看著自己的 Surface 平板電腦就可以登錄了,瞬間完成,比輸入密碼中的一個字母都要快。系統是否能既更安全又更易用?當然可以。我們需要擺脫“沒有痛苦就沒有收獲”的想法。真正的安全不需要折磨用戶。
您應該已注意到,我們在前一段介紹了 TPM 的概念。本白皮書圍繞作為計算中“可信核心根源”的 TPM 展開。TPM 是由安全架構組成的安全半導體芯片,其安全架構由 100 多家公司組成的可信計算組織(TCG)設計而成,其中包括英特爾、微軟、惠普和 IBM 等大型公司。該組織從 1999 年便開始著手這項工作,旨在為計算設備創建安全核心,以便所有計算安全都能建立在該安全核心之上。好消息是,TPM 已成為所有新 PC 設備中的標準配置,且多年來一直如此。壞消息是,很多機構根本不知道自己的計算設備中有這個安全法寶,也沒有好好地利用它。本白皮書旨在嘗試改變這種狀況,尤其是在我們的 ATM 行業。畢竟,我們比大多行業都更需要計算安全。
“可信核心根源”是什么意思?為什么 TPM 對計算安全至關重要?要理解這一點,就必須意識到所有計算安全性都依賴于對加密的巧妙運用。加密是一種計算方法,可以將數據從“明文”形式轉換為看起來隨機的形式,然后再轉換回來。
當數據或信息采用明文形式時,可將其用于預期目的。如果數據已加密,則在其被解密前都不可使用。加密和解密最關鍵的一點是需要一個安全的“密鑰”來對數據進行加密或解密。沒有密鑰,加密的數據就沒了用處。實際上,從這個意義上來說,“密鑰”一詞與保險柜鑰匙沒有什么不同。如果保險柜鑰匙丟失了,就無法取出柜內的黃金。就計算而言,數據就代表著黃金,由加密過程所保護。
現在,我們必須要了解,密鑰本身必須采用明文形式才能用來解密消息。這意味著您需要一種安全的密鑰存儲方法。是的,您可以使用另一個密鑰對該密鑰進行加密。這樣可以確保原始密鑰的安全性,但這樣一來,第二個密鑰的存放位置就成了問題。確實,您可以使用一條密鑰鏈(而且通常確實存在這樣的密鑰鏈)。但是初始密鑰必須以明文形式存儲在安全的位置。采用明文形式的主密鑰可以存儲在計算機中的哪個位置呢?答案絕不是硬盤(或 SSD)。根本不可能把明文密鑰安全地存儲在驅動器上——能夠物理訪問驅動器的黑客肯定能找到明文密鑰。如果黑客能夠物理攻擊,光靠軟件根本無法保護密鑰。
TPM出場。可信計算組織(TCG) 將 TPM 設計為保護秘密的硬件保險庫,并將其嵌入主板內部。在某些設計中,TPM 可位于 CPU 芯片本身內部。其設計目的就是為了安全地存儲密鑰。它不僅是密鑰庫,還有很多其它功能。我們將在下一節中進行介紹。現在,考慮到一個計算系統可能有一條密鑰鏈,但是密鑰鏈開始處的密鑰必須采用明文形式且必須非常安全地存儲起來,這樣其才能用于受信目的。TPM 就是這個密鑰庫。
我向您保證,TPM 不僅僅是一個極為出色的密鑰庫。考慮一下安全的密鑰庫在工作第一天所遇到的第一個問題。如果有人對 TPM 說:“拜托,能把那個明文密鑰給我嗎?”您怎么知道是誰在索要密鑰?能安全地存儲密鑰當然很好,但是您要把密鑰交給誰呢?索要密鑰的代碼是否合法,還是只是某種惡意軟件在作怪?如果黑客用惡意軟件修改了 PC 上的軟件,然后禮貌地說:“拜托,TPM,我可以使用密鑰嗎?”問題就在這,那就是僅成為一個超級安全的密鑰庫是不夠的。需要對索要使用這些密鑰的軟件進行認證。現在使出 TPM 的第二招——可信度量根源的核心(CRTM)。
CRTM 在通電開始后便與信任鏈一起工作。硬件與 TPM 協同工作,共同“度量”PC 的啟動程序,即從初始啟動到 BIOS/UEFI,再一直到啟動操作系統。它可以“度量”PC 上的任何軟件是否在啟動過程中被修改或篡改。此過程稱為安全啟動,目前已成為使用 UEFI 固件啟動 PC的新 PC 內核的標準功能。
為了幫助安全啟動,TPM 設計引入了一個稱為“PCR”(平臺配置寄存器)的概念。TPM 以一種稱為“擴展 PCR”的方式計算 PCR 值,其方式有點類似于創建區塊鏈,最終將賦予 PCR 一個 PC 啟動順序的唯一指紋(即一組哈希值)。如果 PCR 未曾被修改過,PC 中的啟動軟件也就未曾被修改過——這是由密碼學來保證的。惡意軟件沒有一點可能修改被度量啟動軟件的甚至一個字節而不影響 PCR 值。

這是密碼學中一個非常重要的概念。所謂的“安全哈希函數”是一種類似于加密的函數,可將數據塊轉換為固定長度的字符串,并將其作為原始數據的指紋。如果數據變化,指紋也會相應變化。因此,這是一種萬全可靠的檢測方法,即使對大型軟件的一小部分做以輕微修改也能檢測出來。TPM 使用一種稱為“HMAC”的哈希值變體。HMAC 是一種“密鑰哈希”,這意味著只有擁有正確安全密鑰的人才能生成或驗證 HMAC 哈希。這是一種“加密哈希”。
我們之所以對此部分進行深入研究,是有原因的——這是 TPM 技術確保 ATM 中核心軟件能夠 100% 安全的方法。如果 ATM 啟動程序受 TPM 保護,那么在無法突破現代密碼技術防護的情況下,即便是軟件的一小部分也修改不了。這也是我們隨后在本白皮書中介紹的概念,以確保 ATM 其余部分的整體安全。
在運行 Windows 10 的 ATM 上,目前采用了兩種重要的微軟 技術:Bitlocker 和 Device Guard(現在稱為
Windows Defender 應用程序控制——WDAC)。Bitlocker 是微軟的驅動器加密技術。這種技術能對整個硬盤或 SSD 進行加密,最重要的是能將其驅動器加密密鑰保存“在 TPM 中”。實際上,這比僅將密鑰保存在 TPM 中要稍微復雜一些。我們隨后將對此進行一些介紹。
請記住,僅能安全地存儲密鑰是不夠的,在給出密鑰之前,必須要弄清楚是“誰”在索要密鑰。TPM 還有一個稱為“封存密鑰”的新招數。 ATM 的驅動器首先在一個安全環境中被加密,Windows 生成一個新的密鑰,系統隨后將使用一個單獨的“密鑰-加密-密鑰”對密鑰進行加密,其名稱為“KEK”。使用 PCR 值和 TPM 私鑰對 KEK 本身進行進一步加密的過程稱為“封存”。ATM 啟動時,只有在 PCR 測得的所有核心軟件指紋都得到驗證時,KEK 密鑰才可用——這意味著 BIOS 和 Windows 代碼沒有遭到篡改,如前所述。使用 KEK ,Windows 可對其驅動器加密密鑰進行解密,從而解密整個驅動器。一旦檢索到 KEK,Windows 就會立即關閉 KEK 后的大門。系統通過“擴展”PCR 11 來執行上述操作——也就是說 PCR 11 在 KEK 解封后會被修改,這樣其他人隨后就無法對 KEK 進行檢索。在執行下一個啟動程序前,TPM 將一直確保 KEK 的安全,并且只有在 PCR 確認沒有任何核心軟件遭到篡改之后,才可以再次使用 KEK。然后,一旦 Bitlocker 可使用 KEK來 解密驅動器,系統將再次鎖門。
如您所見,我們已逐步加強了核心軟件,然后使用 PCR 檢查每個軟件,以確保沒有發生篡改,直到完成啟動過程并加載 Windows。現在,我們需要啟動 ATM 應用軟件,并在使用前驗證我們運行的所有可執行文件未曾被篡改。換句話說,我們進一步對相同的概念進行了擴展,即在使用每個軟件組件之前檢查它的加密指紋。啟動鏈的這一最后部分由 Windows WDAC(或具有類似功能的第三 方軟件)執行。我們通常將此稱為“白名單”,其作用是對每個可執行文件的哈希值(即計算出的指紋)進行檢查,然后才允許其運行。
通過 Windows WDAC(或其它白名單軟件)將 ATM 軟件列入白名單的最佳方法是使用所謂的“證書規則”。這就要求在 ATM 上部署的軟件已由該軟件的開發者預先簽名。例如,Windows 10 可執行文件均已由 微軟 使用其私鑰簽名。這意味著任何人只要使用 微軟的代碼簽名公鑰進行驗證,就可以驗證 Windows 可執行文件在傳送過程中是否遭到修改或篡改,以及是否與 微軟簽名時的狀態完全一致。為了使 WDAC 確認這一點,僅需創建一條說明微軟簽名的可執行文件可以安全使用的“證書規則”即可。
同樣,KAL 的軟件都會由 KAL 的代碼簽名私鑰簽署。通過在每臺 ATM 上安裝 KAL 的代碼簽名證書,我們的客戶可以驗證 KAL 軟件是否曾遭到篡改。
但是,其它可能無法通過這種方式進行預簽名的軟件又怎么辦呢?有三種選項可供銀行選擇:
哈希規則是銀行添加到 WDAC 白名單策略中的規則,對那些未簽署執行文件的供應商的每個文件,由銀行來計算哈希值。換句話說,銀行代為這些供應商簽署其代碼。顯然,這沒有在源頭簽署代碼好,因為無法檢測在供應商和銀行之間的傳送過程中是否發生過任何篡改(盡管可能有其它機制來確保安全傳輸)。
使用這種方法的第二個缺點是銀行需要為每個可執行文件創建一條“哈希規則”。這遠不如在 ATM 上安裝供應商的公共證書那么簡便,一個證書就可以涵蓋供應商的所有執行文件,以及該供應商未來的所有更新。
現在ATM 已啟動運行,所有軟件已通過加密驗證。任何經過篡改或修改的可執行文件都不會被允許運行。即便是現代 ATM 上千兆字節軟件可執行文件的一小部分,也不會逃過檢測和攔截被黑客攻擊。
然而,我們還沒實現目標。ATM 以這種方式被保護后,可以免除其軟件棧被未經授權修改的擔心。但這并不是故事的結尾。在 ATM 上注入惡意軟件并不是攻擊 ATM 的唯一途徑。現在,我們將研究 TPM 如何幫助防御其它類型的攻擊。
TPM 不僅能確保 ATM 啟動過程的安全,它也是確保其它所有事項安全的可信核心根源。 可信計算組織(Trusted Computing Group ) 成員 Will Arthur、David Challener 和 Kenneth Goldman 編寫了一本好書——《TPM 2.0 實用指南》,這本書寫得極好,是匯集各種觀點的寶庫,也啟發了我寫這份白皮書。單擊此處,可免費下載此書。
快速總結此書的最佳方法是重點研究書中所列出的 53 個用例。經作者許可后,我將相關用例復制到下方:
1. 存儲啟動參數
2. VPN 密鑰訪問
3. 主密鑰優化
4. 身份密鑰配置
5. 允許資源管理器安全地管理 TPM 密鑰
6. 攻擊者在同一句柄更換密鑰
7. UEFI
8. 在兩次認證之間檢測重新啟動
9. 大文件哈希處理
10. 可信啟動——1
11. 可信啟動——2
12. 多種同步 TPM 摘要算法
13. 存儲登錄密碼
14. 可信核心根簽名驗證
15. 多個主密鑰
16. 自定義主密鑰
17. 驗證 TPM 引用密鑰
18. 創建證書鏈
19. 確保密鑰授權需要數字簽名
20. 確保密鑰授權需要生物識別信息
21. 非易失性數據的保證
22. 非易失性擴展索引當量引用
23. 存儲機秘
24. 存儲證書
25. 存儲通用密碼
26. 存儲根公鑰
27. 存儲 HMAC 密鑰
28. 撤消對密鑰的通路
29. 多用戶密鑰吊銷
30. CA 密鑰使用的安全審核日志
31. 其它 PCR
32. 具有不同屬性的 PCR
33. 虛擬化
34. 一次性寫入非易失性索引
35. 標準證書
36. 一次性寫入永久可讀 NV指數
37. 保護策略機密
38. 復制一組密鑰
39. 將硬盤加密密鑰密封到平臺狀態
40. VPN 密鑰
41. 將密碼從當前的操作系統安全地傳送到不存在操作系統的環境
42. 引用
43. 檢測兩次交易之間的重啟
44. 沒有用于虛擬機的增量屬性 PCR
45. 沒有用于審核的增量屬性 PCR
46. 為各種用戶創建不同的 SrK
47. 一組服務器作為一個整體運行
48. 我連接的是什么 TPM?
49. NV 索引、計數器或位域索引的狀態是什么?
50. NV 指數作為 PCR 使用
51. 審核作為證書授權中心使用的 TPM
52. 使用 TPM 保護應用審核日志
53. 確保 PCR 在命令順序中保持不變
請粗略看一下以上用例。首先要理解的是,TPM 不僅僅是保證啟動過程的安全。如前所述,TPM 是可信核心根,使我們對 ATM 做的每一步操作都能一步一步得到保護。當然,以上每個用例不一定都適用于我們的行業。但是請記住,這些用例都是以密碼學安全方式確保項目安全。
這樣吧,讓我們來舉例說明——第 40 個例子“VPN 密鑰”。通常,在 ATM 和服務器之間通過在兩個系統上安裝數字證書(即簽名的公共密鑰)來搭建 VPN。但是,如果有黑客非法入侵證書會發生什么?事實上,存儲在 TPM 保護的 Windows 環境中的證書,如果采用本白皮書所述的鎖定方式,是無法被更改的。但是,我們還可以再前進一步。我們可以通過使用TPM的PCR值對 VPN 密鑰進行封存。也就是說,在即將連接 VPN 時,只有在 PCR 處于正確狀態的情況下,才能提供搭建VPN 所需的密鑰。如果有任何差異,VPN 連接將遭到拒絕。現在考慮下該概念可適用于 VPN 通道的兩端。不僅 ATM 端的 PCR 必須處于正確狀態,數據中心的 ATM 服務器端的PCR也被要求處于正確狀態。如果這樣做的話,我們在連接之前就能通過密碼學驗證來確認 ATM 和 ATM 服務器都處于安全狀態。我們可以確認 ATM 和 ATM 服務器到目前為止運行的所有可執行文件都是原始文件,沒有遭遇過篡改,而且只有在兩個系統都滿足這種情況時,我們才允許兩者連接。
我并不打算在這份白皮書中對電子書中的所有觀點進行討論。事實上,還有一些特別適用于 ATM 的其它用例需要討論、設計和實施。我希望 ATM 行業可以通過一個或多個委員會來推動。稍后會詳細介紹。
之前簡單介紹了網絡安全。這是一個對 ATM 尤為重要的用例,因此現在讓我們更詳細地探討一下。很顯然,我們不僅希望 ATM 安全,我們還要求所有后臺服務器系統都能安全且不受侵害。 請參看下圖:

圖中展示的是一家典型的有著復雜 ATM 服務的大型銀行連接方案。ATM 與一臺終端處理器相連,以協調處理來自多個后端服務器的服務。HSM(硬件安全模塊)提供加密服務,并幫助進行密碼分區。當交易被受理需要授權時,如果是“本行客戶”的交易交易請求就會被發送到銀行核心系統;如果是“非本行客戶”的交易,交易請求就會被發送 到銀行卡網絡 。
現在想象一個安全的烏托邦,在這里,每臺 ATM 和服務器都有一個 TPM(近來所有的硬件都是如此),所有系統從啟動時就已經通過 PCR 測量驗證,所有 TLS 連接和 VPN 在搭建時都使用由 TPM 開封的證書,從而從密碼學角度保證沒有遭遇過篡改。這的確是一個烏托邦。遺憾的是,直到 2020 年 8 月,仍沒有多少銀行能達到這一級別的安全性。
這里潛在的實施挑戰是可擴展性和群集化。如果連接綁定到單個 TPM 上,該如何創建服務器群集呢?請查看上述第 47 個用例“一組服務器作為一個整體運行”。可信計算組織( TCG ) 已經想到了這一點。
到目前為止,本白皮書主要聚焦于 ATM 的 PC 核心安全,以及如何保證軟件在啟動后和運行過程中不會遭遇惡意軟件的攻擊。現在,讓我們來看看 ATM 內的各個硬件配件:讀卡器、密碼鍵盤,當然還有出鈔模塊。PC 核心與各個配件之間連接的安全情況如何?大多數 ATM 采用的是很可能會受到物理攻擊的USB 連接方式。如果這些連接有未加密數據,則即使沒有惡意軟件,ATM 也很容易受到攻擊。讓我們再用一張圖來討論這個問題:

如您所見,我將 USB 連接畫成了一朵云,以表明存在攻擊風險。TPM 可確保 PC 內核的安全,但是如果 USB 連接線沒有受到保護,就有受攻擊的風險。人們常認為,是ATM 硬件供應商的責任保護這些連接。然而,情況并沒有那么簡單,因為這還取決于硬件配件和系統其它部分之間的互通性要求。例如,如果發送給 CDM(出鈔模塊)的消息采用端到端加密方式,那么“另一端”應該在哪里?例如,如果另一端在終端處理器處終止,則需要討論和商定很多互通性要求。
同樣很明顯的是,很多 ATM 上甚至連出鈔模塊的安全性都還沒有得到很好的保障。相關內容,請參閱媒體報道中的各種“黑盒攻擊”。如果黑客截獲了 出鈔模塊的連接,并使用自己的 PC 核心控制出鈔,就出現了所謂的 ATM 黑盒攻擊。對于大多數現代 ATM,PC 核心到 出鈔模塊之間都采用了加密連接,但 KAL 懷疑安全設計還有很多不足之處,因為還有一些 ATM 并沒有 TPM。讓我們更清楚直接一些:沒有 TPM = 沒有安全性。用由魔法保護的密鑰進行加密連接的各種模糊方法并不安全。朦朦朧朧,只能靠運氣。如果您的硬件供應商不能公布有關如何保護加密密鑰的信息,那么非常清楚,那是因為密鑰沒能得到正確的保護。
好消息是,ATM 行業的 XFS 委員會正在討論如何保護下一代 ATM 設備。可能您已聽說過即將發布的 XFS 4.0,該版本名為 XFS4IoT。物聯網(IOT)部分展示了該規范為現代物聯網世界做好準備的意向。XFS4IoT 有以下幾個主要目標:
下圖對該概念進行了展示:

XFS4 ATM 可像圖左側的傳統 ATM 那樣進行設計,即將配件連接到 PC 核心上的軟件應用,也可以像圖右側那樣向云開放安全服務。在第二種情況下,ATM 內可能根本沒有 PC 核心,并且每個配件可能完全相互獨立,但在物理距離上很近并采用協同工作的方式,由云應用進行指揮協調。
最需要注意的是標有“HSE”的綠色框。HSE 代表“硬件安全元件”,當然,應由硬件廠商決定實施 XFS 規范的最佳方式。很明顯,HSE 必須是 TPM 或子集包含 TPM 功能。HSE 應至少能執行以下幾個操作:
KAL 已經與 TCG 委員會討論過這個問題,他們表示很樂意幫助 ATM 行業出謀劃策。實際上,TCG 已在“迷你 TPM”概念上取得了一些進展。一個是 TCG 的 DICE 設計,另一個是 TCG 的 MARS 設計。DICE 和 MARS 是否已準備好在 ATM 行業中使用?我們需要找出答案。
這里有一個很有趣的想法,那就是能不能將標準 TPM 作為每個配件內部的 HSE 使用。從成本的角度來看,答案可能是肯定的——OEM 量產的情況下 TPM 的成本不到 1 美元。DICE 的成本甚至更低。對于我們這個保護巨額用戶資金的行業而言,TPM 或其它類型的 HSE 的成本不太可能成為阻礙。
我們在上一節討論了配件保護問題,但在安全方面,我們需要強調一個獨特的配件,那就是 EPP(加密密碼鍵盤)。事實上,加密鍵盤是 ATM 內部一個獨立的信任根。它非常安全,遵守 PCI PED 的監管要求,而且每個 加密鍵盤 都是由行業在全球范圍內單獨管理和跟蹤。它有由自己固件測得的 CRTM 測量值,如果檢測到篡改,會自動銷毀。確實非常安全。
然而,加密鍵盤 對行業來說是有利有弊。加密鍵盤 可為 ATM 提供一定程度的安全性(我們稍后將討論其局限性),銀行一直依靠它來保護 ATM 交易。加密鍵盤可安全地存儲銀行的主密鑰,并使用一串密鑰來確保密碼塊的安全性,以及 ATM 與主機之間的通信消息已加密并進行了 MAC 處理,進而實現良好的安全性。然而,這還不夠安全。
加密鍵盤 在 ATM 啟動時不可用,并且在 Windows 和 XFS SPs(ATM 的硬件驅動程序)啟動之前一直不可用。也就是說,加密鍵盤對 ATM 內部軟件的合法性毫無發言權。如果受惡意軟件感染的 ATM 應用程序希望接收一個密碼或 MAC 一條消息到 ATM 主機,加密鍵盤 就會執行相應命令。加密鍵盤 的保護范圍太小,無法幫助保護整個 ATM。在大量沒有 TPM 保護的軟件中這是一個普遍的安全問題。
讀者可能會認為,如果不能更改受 TPM 保護的 ATM 內的任何軟件,就很難進行有效的軟件更新。請記住,應用軟件受證書規則的保護。軟件由應用程序開發者(可能是銀行本身或受銀行信任的供應商)簽名。只需使用軟件開發組織的安全私鑰對要更新的軟件進行簽名,ATM 就能接受更新。就是這么簡單。
如果要對 PCR 監測的核心軟件進行更改,需要額外執行一個步驟。核心軟件可以完全被遠程更新,無需技術人員上門服務,但需要在安裝過程中創建一個臨時密鑰,以對不變的 PCR 進行封存。一旦安裝完成,新密鑰將對整套 PCR 進行封存。就是這么簡單。
還記的我們前面關于 Windows Hello 的舉例吧——良好的安全性并不需要很難的方法來實現。事實上,與傳統方法相比,世界一流的安全技術——TPM 為銀行提供的安全保護,使用起來更簡便,加密安全性也更高。
盡管我們之前沒有具體說明,上述很多討論都是有關防止 ATM 受到物理和軟件的攻擊。常見的ATM 攻擊方式有偷換驅動器,修改軟件,然后恢復掩蓋對 ATM 的篡改。但如果硬盤已加密,并且啟動鏈受 TPM 保護,那么這種攻擊方法就無計可施。
另一種攻擊方式是設法“暴力破壞”TPM,然后快速連續嘗試各種密鑰。TPM 有內置的“反惡意攻擊”保護功能,可以阻止此種攻擊。
最后,某些其它類型的極端攻擊可能會直接干擾主板電子元件。據我們所知,這種攻擊需要專業的設備,因此成本很高,而且到目前為止還沒有發生過。其實,有一些低成本的方法就可以預防這種攻擊,例如使用樹脂保護主板上裸露的電子器件連接。
用 TPM 作為信任根基來保障 ATM 和 PC 的安全,是唯一已知和公開可信的全面保護計算機系統安全的方法。我們的行業應該自省,為什么基于 TPM 的安全方案在 ATM 網絡上沒有更普及。當然,很多廠商希望在市場上競爭,以使他們的產品能有一席之地。這是可以理解的事情。但非常重要的是,銀行不應被虛幻不實的方案所迷惑。以下是需要注意的事項:
非常清楚,根本不可能將私鑰安全地存儲在 ATM 的硬盤/SSD 上。原因是,無論密鑰鏈有多長,都會有一個初始明文密鑰。如果該密鑰“隱藏”在驅動器上,則總有可能被發現。有些解決方案聲稱在啟動時生成密鑰。但請記住,生成密鑰時需要使用明文代碼。它必須采用明文形式,因為我們尚未解密驅動器。如果它是明文形式的,就可以很容易地通過在解密驅動器之前是明文形式的可執行代碼被進行逆向工程,
換種方式思考一下。如果僅用軟件技術就能在 ATM 機上安全地保存密鑰,我們的行業就不必費盡心思地創造加密鍵盤了……
如果因沒有 TPM 而導致 ATM 不足以安全地存儲密鑰,那根本不可能通過將密鑰轉移到網絡來解決這個問題。原因如下:在這種神話方案里,ATM 啟動時,需要訪問網絡,才能獲得安全密鑰。由于沒有密鑰庫,它就沒有一個加密安全的方式在網絡上驗證自己的身份。也就是說,網絡服務器不知道“誰在索要密鑰”。例如,當 Bitlocker 在網絡上存儲密鑰時,它仍然需要 TPM 向網絡驗證自己的身份。沒有 TPM = 沒有安全性。
供應商聲稱有神奇的技術,可以在沒有密鑰的情況下進行加密,因此不需要存儲密鑰。好吧,那確實是太好了,好到不真實。既然不需要密鑰,為什么全世界一直都在努力改善密鑰管理技術?所有已知的加密技術(例如 3DES、AES 和 RSA)都需要使用私鑰。私鑰正因為必須得被安全地存儲,所以才叫這個名字。加密系統之所以安全,是因為密鑰是從大量可能性中選擇出來的。例如,3DES 至少有 2112個密鑰。如果以每秒 50 億次的速度企圖破解,將需要 30 年的時間才能試完所有密鑰。如果使用 AES,相同的速度企圖破解,那么需要1022年的時間。
真正的安全是建立在開放標準、開放算法以及機密的密鑰基礎之上。安全系統中唯一應保密的只有密鑰。如果密鑰遭到破壞,您應立即對其進行更換,這樣系統就又安全了。
在沒有 TPM 鎖定的情況下,訪問控制列表很容易被規避繞過。ACL 還有很多其它缺點,我們在此不作深入探討,但可以說僅依靠 ACL 來保護 ATM是不夠的。
我希望讀者已經理解為什么 TPM 對計算安全乃至 ATM 安全都至關重要。我還希望大家清楚,大多數銀行在利用可靠的加密方式確保網絡安全方面仍需進步。需要強調的是,任何此類安全系統的設計都必須將互通性考慮在內。多廠商和多種產品解決方案是現代 ATM 技術領域的標準組成部分,不可能由每家供應商單獨執行鎖定。那將導致 ATM 無法使用。
我希望本白皮書能開啟一個新的進程,使我們能夠利用 TPM 提供的密碼學基礎來制定互通的安全規范。可信計算組織( Trusted Computing Group ) 已表示樂意為我們提供幫助。現在,取決于我們行業的各個委員會(XFS4IoT、ATMIA 和 EAST),與銀行和廠商們一起來設計未來的發展方向了。
謹向以下人員對本項目所做貢獻表示感謝:
如需更多信息,請郵件我們:info@kal.com
掃碼即可手機
閱讀轉發此文
在銀行業信息化新階段,信息技術風險也自然成為金融機構操作風險的重要方面
在銀行業信息化新階段,信息技術風險也自然成為金融機構操作風險的重要方面