Transcript 密碼模組介面
第十七章 密碼模組安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師 (下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量 不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配 旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此 之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相 關著作物移作他用。 1 第十七章 密碼模組安全 密碼模組是資訊安全的基礎元件,資訊安全所用到的軟 硬體機制都需要以密碼模組來實現。資訊安全機制需要 設計相關的密碼演算法,而密碼模組是密碼演算法的實 現與其產品化。本章針對密碼模組安全與FIPS 140-2 驗證 程序加以探討,也介紹密碼模組之介面,使讀者暸解密 碼模組之實際運用,對資訊安全有更進一步了解。 簡介 密碼模組產品應用 密碼模組介面 密碼模組檢測程序 FIPS 140-2 規範簡介 硬體密碼模組安全設計 2 17.1 簡介 密碼模組 ( Cryptographic Module ) 主要用於產生、儲存、 使用與保護密碼金鑰以及重要參數 (Critical Security Parameter; CSP),密碼模組是資訊安全不可缺少之元 件。凡是加解密、簽章、金鑰管理、雜湊函數等運算,皆 需要密碼模組協助完成。 密碼模組可以是軟體式或硬體式設備,皆可以稱為密碼模 組,硬體式稱為硬體密碼模組 ( Hardware Secure Module ; HSM )或『保密器』。 若是採用軟體式密碼模組,因為其重要資訊仍必須在不安 全的電腦環境中運算,仍然容易遭到竊取。反之,硬體密 碼模組有其獨自的安全環境,因此安全性較軟體密碼模組 高。 3 17.1 簡介 密碼模組在設計與開發時也應遵守安全 規範。密碼模組的開發,現在普遍遵循 美國國家標準與技術局(National Institute of Standards and Technology, 簡稱NIST) 的FIPS 140安全規範。 FIPS是聯邦資訊處理標準(Federal Information Processing Standards)的 簡稱,第140號文件定義密碼模組相關 的安全規範。2008 通過的版本是 FIPS 140-3,而目前執行的版本為 FIPS 1402。 FIPS 140 依照其程序與規範以檢測密碼 模組的安全性,將密碼模組安全等級分 為 四 級,第一級到第四級 (圖 17-1), 級數越高安全性越高。 安全等級 第四級 Security Level 4 安全等級 第三級 Security Level 3 安全等級 第二級 Security Level 2 安全等級 第一級 Security Level 1 圖17- 1 資訊安全的威脅 4 17.1 簡介 密碼模組除了儲存重要的資訊外,密碼演算法也在密碼模 組中執行。 電腦系統欲使用密碼模組中儲存的機密訊時,需透過高階 介面作存取,業界的標準介面有RSA 公司定義的 PKCS#11 Cryptographic Token Interface, SUN Microsystems 公司定義的JCA ( Java Cryptographic Architecture ) 與 JCE( Java Cryptographic Extension )或 Microsoft 公司定義的 CryptoAPI 等介面。 5 17.2 密碼模組產品應用 密碼模組的應用範圍非常廣泛,加解密、數位簽章、或驗證等都需要 密碼模組,在應用上密碼模組可以與其他產品結合,以使產品多樣化, 如Router、VPN、HSM、或軟體密碼程式庫等。 通過FIPS 140-2 密碼模組檢驗的產品,會公告於 FIPS 的網站,其網 址為http://csrc.nist.gov/groups/STM/cmvp。 至 2007 年 3 月,全球 共計有738 項密碼模組產品通過 FIPS 140-2 之驗證,下表為部份以 國家別之產品 (表 17-1): 表17-1 部分以國家別之FIPS 140-2產品項目 6 17.2 密碼模組產品應用 在 FIPS 140-2 ( FIPS 140 第二版 ) 安全規範,將密碼模組分為四個 逐級增強的安全等級,以全面涵蓋應用系統與環境的範圍。每一安全 等級提供比前一級更高的安全強度。 以下簡列四個安全等級的應用範圍。 (1) 安全等級一,具備基本的防護,是最低的安全強度,應用的環境範圍 包含如:個人、商店等。 (2) 安全等級二,具備一般的防護,此等級包括安全等級一的需求,更具 有實體安全機制。本等級的密碼模組符合資訊技術安全評估共通準則 (Common Criteria,CC ) EAL2標準,適用的環境範圍如:郵購、商業文 件傳遞等。 (3) 安全等級三,具備進階的防護,本等級能夠偵測出試圖破解實體安全 的動作,且密碼模組必須擁有將秘密參數歸零的功能,適用的環境範圍 如:電子商務、金融服務等。 (4) 安全等級四,具備嚴格的安全防護,適用的環境範圍如:銀行、政府 等。 7 17.2 密碼模組產品應用 由於 FIPS 140 安全規範與檢測的實施,普遍提昇了資訊 產品應用安全的概念,也制定一些安全措施以及研發相關 的防護機制。 在安全度需求較高的系統,並考量禁止使用一些不安全的 機制。如下表 17-2,列舉一些被禁止的應用範例。 表17-2 FIPS 104 規範禁止的應用範例 8 17.3 密碼模組介面 在密碼模組架構上,應用程式執行其安全相關的功能,如 執行文件簽章等機制,應用程式呼叫高階介面,其下一層 為介面程式庫,是實際上存取軟體或硬體密碼模組之介面 程式,最下層為密碼模組,可以是軟體或硬體密碼模組。 高階介面有業界標準,如:CryptoAPI或 PKCS#11等。 硬體密碼模組透過實體介面與工作站或個人電腦介接,工 作站或個人電腦可以透過網路 ( Ethernet )、USB 或 PCI 使用硬體密碼模組。 (圖17-2,圖 17-3)。 9 17.3 密碼模組介面 應用程式 高階介面 (CryptoAPI PKCS#11… 界面程式庫 軟體密碼模組 工作站/個人電腦 圖17-2 軟體密碼模組架構 應用程式 高階介面 (CryptoAPI PKCS#11… 界面程式庫 硬體密碼組HSM 工作站/個人電腦 圖17-3 硬體密碼模組架構 10 17.3 密碼模組介面 由業者所發展且廣為通用的高階介面有 CryptoAPI、 PKCS#11、JCA與 JCE 等。 也有一些專用的高階介面,如:IBM 公司的CCA 、 nCipher 公司的nCore API、中華電信的HiSecure API、 全景的 Sphinx PKI 或資通電腦 ARES uPKI等。 11 17.3.1 CrypAPI 高階介面 Microsoft 公司定義一套密碼模組高階介面稱為 Cryptographic Application Program Interface 簡稱 CryptoAPI 或 CAPI。 CryptoAPI 高階介面提供應用程式一個簡單而多功能的密 碼介面;對於應用程式而言,它像是一個黑盒子 (Black Box) 一般,應用程式設計人員不需要了解下層程式之運 作,僅需呼叫使用 CryptoAPI ,即可產出所需要的結果。 應用程式層的下一層是程式庫與作業系統層,最底層為密 碼服務提供模組層 ( Cryptographic Service Provider ; CSP ),各廠商可以依據規範介面,提供密碼模組掛載在 Windows 作業系統,以便提供給應用程式層的各種應用 程式使用 (圖 17-4)。 12 17.3.1 CrypAPI 高階介面 應用程式 A 應用程式 B 應用程式 C 應用程式層 CryptoAPI CryptoAPI 程式庫與作業系統 系統層 密碼服務 提供模組 (CSP)#1 密碼服務 提供模組 (CSP)#2 密碼服務 提供模組 (CSP)#3 服務提供模組層 圖17-4 密碼模組架構與CryptoAPI 13 17.3.2 PKCS #11 高階介面 PKCS#11是由 RSA 公司所發展出來的高階介面規範,稱 為 Cryptographic Token Interface Standard ,簡稱 Cryptoki,已成為業界標準。 另外,PKCS (Public-Key Cryptography Standards;簡稱 PKCS ) 是 RSA 公司為密碼相容性與共通性所制定的一序 列規範,採用 Object-based 的方法,可以解決不同裝置 所衍生的問題,提供裝置與密碼功能間一個標準的介面。 參考圖 17-6 Cryptoki (PKCS #11) 的架構。最上層為應 用程式,呼叫其它安全層,實現安全控管,再呼叫 Cryptoki 介面,該介面有抽象的密碼模組稱為插槽 ( Slot ), Cryptoki 可以有很多個插槽。插槽之下為實體的密碼模組 稱為符記 ( Token ),符記可以是軟體或硬體,是由密碼服 務廠商所提供的各種密碼模組 (圖 17-6)。 14 17.3.2 PKCS #11 高階介面 應用程式 其他安全層 Cryptoki 插槽 (Slot) 符記 (Token) 圖17-6 Cryptoki (PKCS#11)架構 15 17.3.2 PKCS #11 高階介面 Cryptoki 是以物件導向的方法,它可以定義許多物件,如:資料 ( Data )、金鑰 ( Key ) 或憑證 ( Certificate )等物件,其組織如圖17-7。 圖17-7的物件之下分為資料、金鑰與憑證物件,金鑰物件以下又分為 公開金鑰 (Public Key)、私密金鑰 (Private Key) 與秘密金鑰 (Secret Key)。公開金鑰與私密金鑰在物件中可以標示成金鑰對,秘密金鑰用 於對稱式密碼模組的運算。 圖17-7 資料、金鑰與憑證物件組織 16 17.3.2 PKCS #11 高階介面 使用 Cryptoki 介面時,操作者可分為兩種角色:使用者 ( User ) 與安全官 ( Security Officer )。 使用者角色的操作權限為使用密碼模組金鑰;安全官主要 的工作是制定密碼模組的策略,如密碼模組金鑰的產製、 刪除或需要幾位使用者才可以啟動金鑰等程序。 17 17.3.3 Java 安全高階介面 Java 程式語言,是一種可以撰寫跨平台應用軟體的物件導向程式語 言,由Sun Microsystems公司所開發,它繼承了 C++ 語言物件導向 技術的核心。 經過Java 編譯器編譯以後的程式,可以放到各種平台去執行,在各 種平台上建立 Java 虛擬機器 ( Java Virtual Machine ; JVM ),Java 程式就在 JVM 上執行(圖 17-8)。 Java 程式 應用程式 Java 程式 Java 虛擬機器 (JVM) 作業系統 圖17-8 Java 程式執行架構圖 18 17.3.3 Java 安全高階介面 Java 程式語言在密碼模組介面,實現 Java Cryptographic Architecture (簡稱 JCA) 與Java Cryptographic Extension (簡稱 JCE)。 JCA 為 Java 語言在安全模組之介面與架構,包含基本的密碼模組功 能,其它密碼模組業者可以使用 JDK ( Java Development Kit )介接 在 JCA 中。JCE 為 JCA 內由業者所發展的延伸性功能,集合成為一 個物件 (圖 17-9)。 Java 安全介面 JCA Key Signature,Message Digest,… JCE 密碼服務提供模組 圖17-9 Java 安全介面架構 19 17.4 密碼模組檢測程序 密碼模組產品的安全性檢測是依據 FIPS 140 之規範,主要用於生產、 儲存、使用與保護密碼金鑰與重要參數 ( Critical Security Parameters; CSP ),是密碼模組產品的最低安全需求規範。 密碼模組產品的檢測只依據相應的測試需求 (Derived Test Requirements;DTR )做密碼模組的符合性測試,不做密碼模組的安 全性評估,如弱點評估或安全分析等。 密碼模組之檢測作業,係由國家標委託的檢測實驗室進行檢測密碼模 組的相關業務,並將檢測結果報告送交美國國家標準與技術局(NIST) 審驗合格後,頒發 FIPS 合格證書 (如圖 17-10),並將合格的產品名 單公告於 FIPS 的網站。 圖17-10 FIPS 140密碼模組檢驗合格證書 20 17.4 密碼模組檢測程序 密碼模組產品的檢測依據 (圖17-11),遵守FIPS 140 製 定規範需求,依據相應的測試提出相對應測試主張,由 測試主張制定測試者需求與廠商需求。 密碼模組產品廠商依據廠商需求,開發製作其密碼模組, 檢測實驗室依據測試者需求,測試送來檢驗的密碼模組 產品,相關的疑義問題可以參考製作指導文件。 FIPS 140 規範需求 相應的測試主張 相應的測試需求 ( D 測試者需求 廠商需求 製作指導文件 圖17-11 FIPS 140 檢測依據 21 17.4 密碼模組檢測程序 在美國,政府單位使用於處理敏感但非機密 ( Sensitive but Unclassified ) 的資料時,已通過相關法令強制應採購 通過FIPS 140-2 驗證的密碼模組產品。 在加拿大,政府單位建議購買使用通過FIPS 140-2 驗證 的密碼模組產品,並將這些產品公佈於網站。 目前正式接受FIPS 140-2 驗證的國家除了美、加以外還 有英國,但許多國家也陸續認可此一標準;私人機構雖然 沒有強制使用,但是許多私人機構也以此作為安全功能的 基準。 22 17.4 密碼模組檢測程序 FIPS 140密碼模組檢測實地實物檢測的項目 (如表 17-3),主要包含: 文件審查、原始碼分析、與實物測試。 文件審查,包含安全政策 ( Security Policy )、有限狀態機模式 ( Finite State Machine Model )、金鑰管理文件 ( Key Management Document ) 等。 原始碼分析,包含原始碼與模組有限狀態機模式之相關程式碼。 實物檢測,包含物理安全性測試、電磁干擾/電磁相容測試 ( EMI/EMC )、操作測試與演算法測試等工作。 表17-3 FIPS 密碼模組檢測項目 23 17.4 密碼模組檢測程序 遵照FIPS 140 之規範,密碼模組產品的驗證流程,我們 依照圖 17-12 的流程簡要說明如下: 1. 廠商選擇合格的檢測實驗室送驗密碼模組產品。 1a. 檢測實驗室依據測試結果,產出FIPS 符合性測試與撰 寫報告。 2. 測試報告送交NIST 審核。 3. NIST 審驗文件。 4. 審驗期間與 NIST 間之詢問、指引與協調。 5. NIST網站公告。 5a. 交付費用與發放證書。 24 17.4 密碼模組檢測程序 1 FIPS 140 合格 測試實驗室 選擇實驗室送驗 密碼模組 密碼模組製商 1a FIPS 符合性測試 撰寫報告 模組測試 報告 5a 4 交付費用與 發放證書 詢問 指引 與協調 2 測試報告送交 NIST 審核 國家標準技術研究院 ( NIST ) 審驗文件 5 FIPS 140 驗証合格 列表 3 NIST 網站公告 圖17-12 FIPS 140 驗證流程 25 17.5 FIPS 140-2 簡介 依據FIPS 140 所定義的密碼模組的目的: 防止未受保護的訊息被未經授權的發佈。 防止未被授權之程序進入密碼模組內部。 防止擅自更改密碼模組的可執檔。 防止未經授權之洩露、修改和替換密鑰 ( Secret Key ) 或私密金鑰 ( Private key )。 防止未經授權之修改和替換公開金鑰 ( Public key )。 正確操作之驗證。 正確操作者之驗證。 檢測密碼模組,首先需要定義密碼模組的邊界,它可以是整個產 品也可以是產品其中的一部分,FIPS 140的規範只適用於此範圍 內,對於密碼模組定義範圍以外的部分不做檢測;此外,邏輯範 圍和實體範圍,也必須描述於安全政策中。 26 17.5.1 FIPS 140-2 檢測領域 FIPS 140-2 之檢測包含以下11個領域: 1. 密碼模組規格 ( Cryptographic Module ) 2. 密碼模組進出埠與存取介面 ( Module Ports and Interfaces ) 3. 角色、服務、與身分鑑別 ( Roles, Services, and Authentication ) 4. 有限狀態機模組 (Finite State Machine Model ) 5. 實體安全 (Physical Security) 6. 操作環境 (Operational Environment ) 7. 金鑰管理 (Cryptographic Key Management ) 8. 電磁檢驗 (EMI/EMC ) 9. 自我檢測功能 (Self-Tests ) 10.設計發展擔保 (Design Assurance ) 11.降低其他攻擊方式之設計 (Mitigation of Other Attacks ) 27 17.5.2 FIPS 140-2 安全等級規範簡介 FIPS 140-2 為 FIPS 140 規範之第二版本,發表於2002 年,FIPS是美國聯邦資訊處理標準(Federal Information Processing Standard)的縮寫,FIPS 140 是NIST所發表 針對密碼模組的安全需求。 FIPS 140-2已經被國際標準組織(International Standard Organization;ISO)採用,編號為ISO/IEC 19790。以 FIPS 140-2 為依據,密碼模組安全需求規範係用以保護 具敏感性但非機密性的 ( Sensitive but Unclassified ) 資訊 為目標。 在FIPS 140-2 的規範中,將密碼模組產品的安全等級分 為四級,以下簡要介紹各安全等級之需求。 28 17.5.2 FIPS 140-2 安全等級規範簡介 安全等級一 (Security Level 1) 提供最低的基本安全需求。 至少使用一種FIPS所核准的演算法 (擴及所有的安全等級)。 密碼模組並不一定要求有實體安全機制。 允許軟體密碼功能在一般的個人電腦上執行。 當執行實體管理時,存放於密碼模組之未加密的私密金鑰/秘密金鑰與 未受保護的安全參數都應該要被清除,而此清除動作可由操作員進行 程序化執行或是由密碼模組自動執行。 安全等級二 (Security Level 2) 藉由增加破壞存跡塗層 (Tamper-evident Coating)、密封 (Seal)、抗 拆鎖Pick-resistant Lock)等,提供實體安全保護。 提供低成本的方法達到實體安全,並避免涉及強固的不透光塗層或較 昂貴的破壞偵測 (Tamper Detection) 與歸零電路 (Zeroization Circuit) 等裝置。 提供角色基驗證 (Role-based Authentication),一個模組必須驗證操 作者被授予的角色並執行相對應的服務。 在共通準則CC EAL2或相當等級的可信賴作業系統下,允許軟體密碼 模組在多使用者分時系統 (Multi-user Timesharing System)下執行。 29 17.5.2 FIPS 140-2 安全等級規範簡介 安全等級三 (Security Level 3) 要求強化的實體安全,該實體安全設施要能防制入侵者直接取存密碼模組之 內的重要安全參數,若密碼模組實體被拆開,則重要安全參數必須要被歸零。 提供身分基驗證 (Identity-based Authentication),一個模組必須驗證操作者 的身分,並且要驗證該操作者被授予的角色並執行相對應的服務。 重要安全參數的資料埠在實體上必須和其它的資料埠分開,甚者安全參數必 須以密文的形式或分持機密的方式進行登錄與輸出。 當使用共通準則CC EAL3或相當等級的可信賴作業系統且安全參數是在一個 可信賴路徑 (Trusted Path) 進出時,則允許軟體密碼模組在多使用者分時系 統下執行。 安全等級四 (Security Level 4) 提供最高的安全等級。 密碼模組的四周有提供密封 (Seal) 保護,且可偵測到從任何方向進入裝置的 非法侵入,偵測到試圖侵入密碼模組裝置的動作或某人試圖切斷裝置外圍時, 重要的安全參數必須要被歸零。 提供密碼模組對超出正常電壓或溫度範圍之運作環境時所造成的安全破壞之 防制;亦即,要能保證密碼模組在異常環境下還可以繼續正常運作而不受到 影響。 當使用共通準則CC EAL4或相當等級的可信賴作業系統且安全參數是在一個 可信賴路徑進出時,則允許軟體密碼模組在多使用者分時系統下執行。 30 17.6 硬體密碼模組安全設計 硬體密碼模組有其功能限制,但硬體密碼模組較容易驗證 也較安全,專用的電路其速度也較軟體快。 雖然硬體密碼模組不保證絕對安全,任何硬體模組可以被 再重造,使用它的主要原因是它可增加攻擊的成本,同時 有較好的密碼運算效率。 密碼模組的開發實作,在選擇設計與實作的標準上,可選 用NIST、ISO 或其它標準組織所公佈的演算法。其理由為, 這些演算法已經被相關領域的專家研究過,具有可靠之安 全性,可降低開發成本,且不同製造商的產品可以互通。 成本也是密碼模組產品設計考量的因素之一;整體上說, 決定採用軟體或硬體模組,以及安全性、成本、複雜度、 效率、與符合標準等,都必須考量。 31 17.6.1 硬體密碼模組型式 在硬體密碼模組之設計上,依其硬體之型式不同有不同之 安全規範 (表 17-4)。硬體密碼模組分為 (1)部分晶片 ( Sub-chip )、(2)單一晶片 ( Single-chip module )、(3)多 晶片內嵌式模組 ( Multiple-chip Embedded Module )、(4) 多晶片獨立模組 ( Multiple-chip Stand-alone Module )。 表17-4 硬體密碼模組型式 32 17.6.1 硬體密碼模組型式 圖 17-13為多晶片獨立模組的電路模組,其中需要考量下 列機制: (1)實體保護機制:金屬外殼、環氧樹脂塗料、不同種類的感應器; (2)亂數產生器:用來產生密碼參數 (例如 Keys、Padding values), 反制 Side channel 攻擊; (3)密碼運算器:加速對稱式與非對稱式的密碼運算; (4)非揮發性記憶體:Non-Volatile RAM (NVRAM)可維持內容值, 連接至電源或電池,儲存敏感性資料 (例如: Master Key); (5)輸入/輸出電路:為邏輯安全電路,控制金鑰與資料,兩者必須 分開處理。 33 17.6.1 硬體密碼模組型式 實體安全邊界 防竄改 偵測反應電路 通訊介面 亂數產生器 密碼模組 控制器 記憶體 非揮發記憶體 (NVRAM) 圖17-13 多晶片獨立模組之電路模組 34 17.6.2 硬體密碼模組的安全分類 硬體密碼模組在設計上,需要考量的安全機制,包含四個 方面: (1) 實體安全,保護資訊免於實體攻擊,設置障礙以偵測非授權的 實體存取; (2) 邏輯安全,避免經由操作系統或其它軟體非授權存取資料的機 制; (3) 環境安全,保護系統本身安全;與 (4) 操作安全,系統不因操作錯誤而在成重大損失。 35 17.6.2 硬體密碼模組的安全分類 實體安全 (Physical Security ) 實體安全 (Physical Security)機制之目標,是為保護裝置 免於被攻擊─非法竊取或修改裝置內的資料。實體安全包 含以下各項功能: 竄改證據 (Tamper Evidence):當竄改發生時,會留下證 據。使用化學或機械的機制。 對抗竄改 (Tamper Resistance):化學的保護材料、保護 罩。 竄改偵測 (Tamper Detection):具備特定的感應電路 (如 感應器)。 竄改回應 (Tamper Response):偵測到竄改後,破壞所有 的敏感資訊,使用清除或覆寫破壞記憶體資料。 36 17.6.2 硬體密碼模組的安全分類 邏輯安全 ( Logical Security ) 邏輯安全 ( Logical Security )機制,主要分為三部份: (1) 存取控制,假設在一個可信賴的環境中; (2) 密碼演算法,是數學函數,但私密金鑰必須保密,可提供機密 性、完整性、身份驗證等功能; (3) 密碼運算的通訊協定,使用多個演算法,藉由呼叫 API 達成, 伺服器與硬體密碼模組通訊的唯一界面是API 。 環境安全 (Environmental Security) 環境安全 (Environmental Security) 的目標是透過建立障礙 (例如:存取政策、 控管措施) 以限制攻擊者起動攻擊的機會。硬體密碼模組若在不友善的環境中 操作,它們通常都需要具有高度的實體安全防護。 除此之外,硬體密碼模組要容許管理人員 (例如: 安全官)操作錯誤的發生,因 此要強制實施雙控制政策以避免單一安全官破壞系統。換言之,至少要有兩 個安全官 ( 例如:從不同的銀行分行) 同意,才能改變硬體密碼模組的設定。 例如: 要安裝/變更金鑰,至少要有兩個安全官同意,如此的安全控管措施, 除非共謀攻擊,否則單一安全官無法攻擊成功。 此外,行政及程序的控管措施也必須是安全政策的一部分。 37 17.6.2 硬體密碼模組的安全分類 操作安全 (Operational Security) 硬體密碼模組只能透過API函數進行操作,操作安全 (Operation Security) 即是在操作上透過各種可能措施以保 護使用者。有些API函數之操作可藉由鍵盤互動,例如: 某些裝置允許使用者執行有次數限制的API指令 (例如: ATM輸入 PIN ),即是一種操作安全設計。 提款機的操作存在一些風險,例如:使用者無法辨認其機 器的真假,是Payment Terminal、ATM、或是 Card Reader。在操作上,使用者必須知道他用鍵盤做了什麼, 使用者必須單獨地操作提款機,以及使用者至少必須知道 可能遭受到的風險,如:攻擊者可透過鍵盤取得他的PIN、 使用者必須要保護自己PIN等的措施。 38