




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第十七章密碼模組安全密碼模組是資訊安全的基礎元件,資訊安全所用到的軟硬體機制都需要以密碼模組來實現。資訊安全機制需要設計相關的密碼演算法,而密碼模組是密碼演算法的實現與其產品化。本章針對密碼模組安全與FIPS140-2驗證程序加以探討,也介紹密碼模組之介面,使讀者暸解密碼模組之實際運用,對資訊安全有更進一步了解。簡介密碼模組產品應用密碼模組介面密碼模組檢測程序FIPS140-2規範簡介硬體密碼模組安全設計217.1
簡介密碼模組(CryptographicModule)主要用於產生、儲存、使用與保護密碼金鑰以及重要參數(CriticalSecurityParameter;CSP),密碼模組是資訊安全不可缺少之元件。凡是加解密、簽章、金鑰管理、雜湊函數等運算,皆需要密碼模組協助完成。密碼模組可以是軟體式或硬體式設備,皆可以稱為密碼模組,硬體式稱為硬體密碼模組(HardwareSecureModule;HSM)或『保密器』。若是採用軟體式密碼模組,因為其重要資訊仍必須在不安全的電腦環境中運算,仍然容易遭到竊取。反之,硬體密碼模組有其獨自的安全環境,因此安全性較軟體密碼模組高。317.1
簡介密碼模組在設計與開發時也應遵守安全規範。密碼模組的開發,現在普遍遵循美國國家標準與技術局(NationalInstituteofStandardsandTechnology,簡稱NIST)的FIPS140安全規範。FIPS是聯邦資訊處理標準(FederalInformationProcessingStandards)的簡稱,第140號文件定義密碼模組相關的安全規範。2008通過的版本是FIPS140-3,而目前執行的版本為FIPS140-2。FIPS140依照其程序與規範以檢測密碼模組的安全性,將密碼模組安全等級分為四級,第一級到第四級(圖17-1),級數越高安全性越高。圖17-1資訊安全的威脅417.1
簡介密碼模組除了儲存重要的資訊外,密碼演算法也在密碼模組中執行。電腦系統欲使用密碼模組中儲存的機密訊時,需透過高階介面作存取,業界的標準介面有RSA公司定義的PKCS#11CryptographicTokenInterface,SUNMicrosystems公司定義的JCA(JavaCryptographicArchitecture)與JCE(JavaCryptographicExtension)或Microsoft公司定義的CryptoAPI等介面。517.2密碼模組產品應用
密碼模組的應用範圍非常廣泛,加解密、數位簽章、或驗證等都需要密碼模組,在應用上密碼模組可以與其他產品結合,以使產品多樣化,如Router、VPN、HSM、或軟體密碼程式庫等。通過FIPS140-2密碼模組檢驗的產品,會公告於FIPS的網站,其網址為/groups/STM/cmvp。至2007年3月,全球共計有738項密碼模組產品通過FIPS140-2之驗證,下表為部份以國家別之產品(表17-1):表17-1部分以國家別之FIPS140-2產品項目617.2密碼模組產品應用在FIPS140-2(FIPS140第二版)安全規範,將密碼模組分為四個逐級增強的安全等級,以全面涵蓋應用系統與環境的範圍。每一安全等級提供比前一級更高的安全強度。以下簡列四個安全等級的應用範圍。(1)安全等級一,具備基本的防護,是最低的安全強度,應用的環境範圍包含如:個人、商店等。(2)安全等級二,具備一般的防護,此等級包括安全等級一的需求,更具有實體安全機制。本等級的密碼模組符合資訊技術安全評估共通準則(CommonCriteria,CC)EAL2標準,適用的環境範圍如:郵購、商業文件傳遞等。
(3)安全等級三,具備進階的防護,本等級能夠偵測出試圖破解實體安全的動作,且密碼模組必須擁有將秘密參數歸零的功能,適用的環境範圍如:電子商務、金融服務等。(4)安全等級四,具備嚴格的安全防護,適用的環境範圍如:銀行、政府等。717.2密碼模組產品應用由於FIPS140安全規範與檢測的實施,普遍提昇了資訊產品應用安全的概念,也制定一些安全措施以及研發相關的防護機制。在安全度需求較高的系統,並考量禁止使用一些不安全的機制。如下表17-2,列舉一些被禁止的應用範例。
表17-2FIPS104規範禁止的應用範例817.3密碼模組介面在密碼模組架構上,應用程式執行其安全相關的功能,如執行文件簽章等機制,應用程式呼叫高階介面,其下一層為介面程式庫,是實際上存取軟體或硬體密碼模組之介面程式,最下層為密碼模組,可以是軟體或硬體密碼模組。高階介面有業界標準,如:CryptoAPI或PKCS#11等。硬體密碼模組透過實體介面與工作站或個人電腦介接,工作站或個人電腦可以透過網路(Ethernet)、USB或PCI使用硬體密碼模組。(圖17-2,圖17-3)。917.3密碼模組介面圖17-2軟體密碼模組架構圖17-3硬體密碼模組架構1017.3密碼模組介面由業者所發展且廣為通用的高階介面有CryptoAPI、PKCS#11、JCA與JCE等。也有一些專用的高階介面,如:IBM公司的CCA、nCipher公司的nCoreAPI、中華電信的HiSecureAPI、全景的SphinxPKI或資通電腦ARESuPKI等。
1117.3.1CrypAPI高階介面Microsoft公司定義一套密碼模組高階介面稱為CryptographicApplicationProgramInterface簡稱CryptoAPI或CAPI。CryptoAPI高階介面提供應用程式一個簡單而多功能的密碼介面;對於應用程式而言,它像是一個黑盒子(BlackBox)一般,應用程式設計人員不需要了解下層程式之運作,僅需呼叫使用CryptoAPI,即可產出所需要的結果。應用程式層的下一層是程式庫與作業系統層,最底層為密碼服務提供模組層(CryptographicServiceProvider;CSP),各廠商可以依據規範介面,提供密碼模組掛載在Windows作業系統,以便提供給應用程式層的各種應用程式使用(圖17-4)。1217.3.1CrypAPI高階介面圖17-4密碼模組架構與CryptoAPI1317.3.2PKCS#11高階介面PKCS#11是由RSA公司所發展出來的高階介面規範,稱為CryptographicTokenInterfaceStandard,簡稱Cryptoki,已成為業界標準。另外,PKCS(Public-KeyCryptographyStandards;簡稱PKCS)是RSA公司為密碼相容性與共通性所制定的一序列規範,採用Object-based的方法,可以解決不同裝置所衍生的問題,提供裝置與密碼功能間一個標準的介面。參考圖17-6Cryptoki(PKCS#11)的架構。最上層為應用程式,呼叫其它安全層,實現安全控管,再呼叫Cryptoki介面,該介面有抽象的密碼模組稱為插槽(Slot),Cryptoki可以有很多個插槽。插槽之下為實體的密碼模組稱為符記(Token),符記可以是軟體或硬體,是由密碼服務廠商所提供的各種密碼模組(圖17-6)。1417.3.2PKCS#11高階介面圖17-6Cryptoki(PKCS#11)架構1517.3.2PKCS#11高階介面Cryptoki是以物件導向的方法,它可以定義許多物件,如:資料(Data)、金鑰(Key)或憑證(Certificate)等物件,其組織如圖17-7。圖17-7的物件之下分為資料、金鑰與憑證物件,金鑰物件以下又分為公開金鑰(PublicKey)、私密金鑰(PrivateKey)與秘密金鑰(SecretKey)。公開金鑰與私密金鑰在物件中可以標示成金鑰對,秘密金鑰用於對稱式密碼模組的運算。圖17-7資料、金鑰與憑證物件組織1617.3.2PKCS#11高階介面使用Cryptoki介面時,操作者可分為兩種角色:使用者(User)與安全官(SecurityOfficer)。使用者角色的操作權限為使用密碼模組金鑰;安全官主要的工作是制定密碼模組的策略,如密碼模組金鑰的產製、刪除或需要幾位使用者才可以啟動金鑰等程序。1717.3.3Java安全高階介面Java程式語言,是一種可以撰寫跨平台應用軟體的物件導向程式語言,由SunMicrosystems公司所開發,它繼承了C++語言物件導向技術的核心。經過Java編譯器編譯以後的程式,可以放到各種平台去執行,在各種平台上建立Java虛擬機器(JavaVirtualMachine;JVM),Java程式就在JVM上執行(圖17-8)。圖17-8Java程式執行架構圖1817.3.3Java安全高階介面Java程式語言在密碼模組介面,實現JavaCryptographicArchitecture(簡稱JCA)與JavaCryptographicExtension(簡稱JCE)。JCA為Java語言在安全模組之介面與架構,包含基本的密碼模組功能,其它密碼模組業者可以使用JDK(JavaDevelopmentKit)介接在JCA中。JCE為JCA內由業者所發展的延伸性功能,集合成為一個物件(圖17-9)。圖17-9Java安全介面架構1917.4密碼模組檢測程序密碼模組產品的安全性檢測是依據FIPS140之規範,主要用於生產、儲存、使用與保護密碼金鑰與重要參數(CriticalSecurityParameters;CSP),是密碼模組產品的最低安全需求規範。密碼模組產品的檢測只依據相應的測試需求(DerivedTestRequirements;DTR)做密碼模組的符合性測試,不做密碼模組的安全性評估,如弱點評估或安全分析等。密碼模組之檢測作業,係由國家標委託的檢測實驗室進行檢測密碼模組的相關業務,並將檢測結果報告送交美國國家標準與技術局(NIST)審驗合格後,頒發FIPS合格證書(如圖17-10),並將合格的產品名單公告於FIPS的網站。圖17-10FIPS140密碼模組檢驗合格證書2017.4密碼模組檢測程序密碼模組產品的檢測依據(圖17-11),遵守FIPS140製定規範需求,依據相應的測試提出相對應測試主張,由測試主張制定測試者需求與廠商需求。密碼模組產品廠商依據廠商需求,開發製作其密碼模組,檢測實驗室依據測試者需求,測試送來檢驗的密碼模組產品,相關的疑義問題可以參考製作指導文件。圖17-11FIPS140檢測依據2117.4密碼模組檢測程序在美國,政府單位使用於處理敏感但非機密(SensitivebutUnclassified)的資料時,已通過相關法令強制應採購通過FIPS140-2驗證的密碼模組產品。在加拿大,政府單位建議購買使用通過FIPS140-2驗證的密碼模組產品,並將這些產品公佈於網站。目前正式接受FIPS140-2驗證的國家除了美、加以外還有英國,但許多國家也陸續認可此一標準;私人機構雖然沒有強制使用,但是許多私人機構也以此作為安全功能的基準。2217.4密碼模組檢測程序FIPS140密碼模組檢測實地實物檢測的項目(如表17-3),主要包含:文件審查、原始碼分析、與實物測試。文件審查,包含安全政策(SecurityPolicy)、有限狀態機模式(FiniteStateMachineModel)、金鑰管理文件(KeyManagementDocument)等。原始碼分析,包含原始碼與模組有限狀態機模式之相關程式碼。實物檢測,包含物理安全性測試、電磁干擾/電磁相容測試(EMI/EMC)、操作測試與演算法測試等工作。表17-3FIPS密碼模組檢測項目2317.4密碼模組檢測程序遵照FIPS140之規範,密碼模組產品的驗證流程,我們依照圖17-12的流程簡要說明如下:
1. 廠商選擇合格的檢測實驗室送驗密碼模組產品。
1a.檢測實驗室依據測試結果,產出FIPS符合性測試與撰寫報告。
2. 測試報告送交NIST審核。
3.NIST審驗文件。
4. 審驗期間與NIST間之詢問、指引與協調。
5. NIST網站公告。
5a.交付費用與發放證書。2417.4密碼模組檢測程序圖17-12FIPS140驗證流程2517.5FIPS140-2簡介
依據FIPS140所定義的密碼模組的目的:防止未受保護的訊息被未經授權的發佈。防止未被授權之程序進入密碼模組內部。防止擅自更改密碼模組的可執檔。防止未經授權之洩露、修改和替換密鑰(SecretKey)或私密金鑰(Privatekey)。防止未經授權之修改和替換公開金鑰(Publickey)。正確操作之驗證。正確操作者之驗證。檢測密碼模組,首先需要定義密碼模組的邊界,它可以是整個產品也可以是產品其中的一部分,FIPS140的規範只適用於此範圍內,對於密碼模組定義範圍以外的部分不做檢測;此外,邏輯範圍和實體範圍,也必須描述於安全政策中。2617.5.1FIPS140-2檢測領域FIPS140-2之檢測包含以下11個領域:密碼模組規格(CryptographicModule)密碼模組進出埠與存取介面(ModulePortsandInterfaces)角色、服務、與身分鑑別(Roles,Services,andAuthentication)有限狀態機模組(FiniteStateMachineModel)實體安全(PhysicalSecurity)操作環境(OperationalEnvironment)金鑰管理(CryptographicKeyManagement)電磁檢驗(EMI/EMC)自我檢測功能(Self-Tests)設計發展擔保(DesignAssurance)降低其他攻擊方式之設計(MitigationofOtherAttacks)2717.5.2FIPS140-2安全等級規範簡介FIPS140-2為FIPS140規範之第二版本,發表於2002年,FIPS是美國聯邦資訊處理標準(FederalInformationProcessingStandard)的縮寫,FIPS140是NIST所發表針對密碼模組的安全需求。FIPS140-2已經被國際標準組織(InternationalStandardOrganization;ISO)採用,編號為ISO/IEC19790。以FIPS140-2為依據,密碼模組安全需求規範係用以保護具敏感性但非機密性的(SensitivebutUnclassified)資訊為目標。在FIPS140-2的規範中,將密碼模組產品的安全等級分為四級,以下簡要介紹各安全等級之需求。2817.5.2FIPS140-2安全等級規範簡介安全等級一(SecurityLevel1)提供最低的基本安全需求。至少使用一種FIPS所核准的演算法(擴及所有的安全等級)。密碼模組並不一定要求有實體安全機制。允許軟體密碼功能在一般的個人電腦上執行。當執行實體管理時,存放於密碼模組之未加密的私密金鑰/秘密金鑰與未受保護的安全參數都應該要被清除,而此清除動作可由操作員進行程序化執行或是由密碼模組自動執行。安全等級二(SecurityLevel2)藉由增加破壞存跡塗層(Tamper-evidentCoating)、密封(Seal)、抗拆鎖Pick-resistantLock)等,提供實體安全保護。提供低成本的方法達到實體安全,並避免涉及強固的不透光塗層或較昂貴的破壞偵測(TamperDetection)與歸零電路(ZeroizationCircuit)等裝置。提供角色基驗證(Role-basedAuthentication),一個模組必須驗證操作者被授予的角色並執行相對應的服務。在共通準則CCEAL2或相當等級的可信賴作業系統下,允許軟體密碼模組在多使用者分時系統(Multi-userTimesharingSystem)下執行。2917.5.2FIPS140-2安全等級規範簡介安全等級三(SecurityLevel3)要求強化的實體安全,該實體安全設施要能防制入侵者直接取存密碼模組之內的重要安全參數,若密碼模組實體被拆開,則重要安全參數必須要被歸零。提供身分基驗證(Identity-basedAuthentication),一個模組必須驗證操作者的身分,並且要驗證該操作者被授予的角色並執行相對應的服務。重要安全參數的資料埠在實體上必須和其它的資料埠分開,甚者安全參數必須以密文的形式或分持機密的方式進行登錄與輸出。當使用共通準則CCEAL3或相當等級的可信賴作業系統且安全參數是在一個可信賴路徑(TrustedPath)進出時,則允許軟體密碼模組在多使用者分時系統下執行。安全等級四(SecurityLevel4)提供最高的安全等級。密碼模組的四周有提供密封(Seal)保護,且可偵測到從任何方向進入裝置的非法侵入,偵測到試圖侵入密碼模組裝置的動作或某人試圖切斷裝置外圍時,重要的安全參數必須要被歸零。提供密碼模組對超出正常電壓或溫度範圍之運作環境時所造成的安全破壞之防制;亦即,要能保證密碼模組在異常環境下還可以繼續正常運作而不受到影響。當使用共通準則CCEAL4或相當等級的可信賴作業系統且安全參數是在一個可信賴路徑進出時,則允許軟體密碼模組在多使用者分時系統下執行。3017.6硬體密碼模組安全設計
硬體密碼模組有其功能限制,但硬體密碼模組較容易驗證也較安全,專用的電路其速度也較軟體快。雖然硬體密碼模組不保證絕對安全,任何硬體模組可以被再重造,使用它的主要原因是它可增加攻擊的成本,同時有較好的密碼運算效率。密碼模組的開發實作,在選擇設計與實作的標準上,可選用NIST、ISO或其它標準組織所公佈的演算法。其理由為,這些演算法已經被相關領域的專家研究過,具有可靠之安全性,可降低開發成本,且不同製造商的產品可以互通。成本也是密碼模組產品設計考量的因素之一;整體上說,決定採用軟體或硬體模組,以及安全性、成本、複雜度、效率、與符合標準等,都必須考量。3117.6.1硬體密碼模組型式在硬體密碼模組之設計上,依其硬體之型式不同有不同之安全規範(表17-4)。硬體密碼模組分為(1)部分晶片(Sub-chip)、(2)單一晶片(Single-chipmodule)、(3)多晶片內嵌式模組(Multiple-chipEmbeddedModule)、(4)多晶片獨立模組(Multiple-chipStand-aloneModule)。表17-4硬體密碼模組型式3217.6.1硬體密碼模組型式圖17-13為多晶片獨立模組的電路模組,其中需要考量下列機制:(1)實體保護機制:金屬外殼、環氧樹脂塗料、不同種類的感應器;(2)亂數產生器:用來產生密碼參數(例如Keys、Paddingvalues),反制Sidechannel攻擊;(3)密碼運算器:加速對稱式與非對稱式的密碼運算;(4)非揮發性記憶體:Non-VolatileRAM(NVRAM)可維持內容值,連接至電源或電池,儲存敏感性資料(例如:MasterKey);(5)輸入/輸出電路:為邏輯安全電路,控制金鑰與資料,兩者必須分開處理。3317.6.1硬體密碼模組型式圖17-13多晶片獨立模組之電路模組3417.6.2硬體密碼模組的安全分類硬體密碼模組在設計上,需要考量的安全機制,包含四個方面:(1)實體安全,保護資訊免於實體攻擊,設置障礙以偵測非授權的實體存取;(2)邏輯安全,避免經由操作系統或其它軟體非授權存取資料的機制;(3)環境安全,保護系統本身安全;與(4)操作安全,系統不因操作錯誤而在成重大損失。3517.6.2硬體密碼模組的安全分類實體安全(PhysicalSecurity)實體安全(PhysicalSecurity)機制之目標,是為保護裝置免於被攻擊─非法竊取或修改裝置內的資料。實體安全包含以下各項功能:竄改證據(TamperEvidence):當竄改發生時,會留下證據。使用化學或機械的機制。對抗竄改(TamperResistance)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 焊接工艺在金属构件运输中的应用考核试卷
- 煤炭资源的开发与利用考核试卷
- 煤炭行业的技术创新与升级考核试卷
- 劳务派遣人员培训合同标准文本
- 临时小工劳务合同标准文本
- 做遮阳帘合同标准文本
- 儿童游乐合作合同标准文本
- 分切机出售转让合同标准文本
- 农村耕地抵押合同标准文本
- 修建办公楼合同标准文本
- 减肥计划表格
- 丙烷说明指导书
- 物业管理工作流程图
- 《烛之武退秦师》教案市公开课获奖课件省名师优质课赛课一等奖课件
- 新教材人教版高中化学必修一第一章第一节物质的分类及转化
- 国际接待业概论 课件 项目三 酒店业基础知识
- DB11∕T 1794-2020 医疗机构临床用血技术规范
- 广东省五年一贯制语文考试题目
- 院前急救与护理PPT演示课件
- 喷涂件检验通用规范
- YY 0001-1990体外冲击波碎石机通用技术条件
评论
0/150
提交评论