關於密碼學模組資安要求,美國聯邦資訊處理標準(FIPS)已是業界公認標準,舉例來說,像是國際組織SWIFT與國內金管會皆要求銀行業,須使用通過FIPS 140-2 Level 3以上認證的硬體安全模組(HSM)來儲存重要金鑰。
基本上,只要採用密碼學模組的軟體、硬體或韌體都適用此標準規範,而目前常見的作業系統也都有FIPS模式能啟用,甚至部分作業系統是預設啟用。值得注意的是,今年是FIPS 140-2轉換成FIPS 140-3的關鍵時期。
事實上,FIPS 140-2從最初2001年發布,至今已有20年之久,而且,自2022年4月1日開始,美國國家標準暨技術研究院(NIST)建立的CMVP密碼模組驗證計畫,不再接受密碼學模組送交新的FIPS 140-2驗證(最後驗證有效期限至2026年9月),在此同時,於2019年發布的FIPS 140-3,將取而代之。
面對FIPS標準的轉變,提供物聯網設備資安檢測服務的安華聯網科技,在今年臺灣資安大會介紹這方面的進展。該公司軟體工程師暨資安研究員楊力學(Aspen Yang)談及FIPS 140-3諸多面向的議題,當中除了這項標準的近況,以及轉換需注意的要點,特別的是,他呼籲開發人員都要增進這方面的認知,使用密碼學演算法時才能更為妥善。
FIPS 140-3雖維持11大項資安要求,但內容變化不小
關於FIPS 140-3的發展現況,已有多個主流作業系統平臺宣布預備支援或已支援,楊力學表示,近期首批通過FIPS 140-3檢測的密碼學模組,即將出爐。
從NIST公布的CMVP密碼模組驗證計畫的列表來看,至2022年9月19日為止,已有56家廠牌共137項產品送驗FIPS 140-3(IUT List),已完成實驗室驗證邁向審核的有67項產品(MIP List),當中有13項產品,率先進入協調(Coordination)階段,這意味著,這13項有機會成為首批通過認證的產品。
FIPS 140-3標準有哪些特性?與舊版的差異?楊力學表示,基本上,FIPS 140-3是基於兩個ISO國際標準進行修改而成,分別是密碼學模組安全要求的ISO/IEC 19790:2012,以及密碼學模組測試要求的ISO/IEC 24759:2017。
在FIPS 140-3標準中,同樣畫分為4個安全等級,並具有11大項資安要求,但與前一版相比,其要求有許多變化。
以FIPS 140-3實作指南而言,主要修改自ISO/IEC19790:2012,新版11大項資安要求,分別是:(1)密碼學模組規格,(2)密碼學模組介面,(3)角色、服務與身份認證,(4)軟韌體資安,(5)作業環境,(6)物理性資安防護,(7)非侵入式資安,(8)敏感安全參數管理,(9)自我測試,(10)生命週期確保,以及(11)緩解其他攻擊方式。
與舊版的項目相比,主要有哪些差異?楊力學指出,FIPS 140-2的第4項與第10項,也就是有限狀態模型與設計面確保,FIPS 140-3被整併為第10項,歸類在生命週期確保的範圍之中;FIPS 140-3的第四項則為軟韌體資安:FIPS 140-2第7項的密碼學金鑰管理,FIPS 140-3變成第8項的敏感安全參數管理;而FIPS 140-2第8項的電磁干擾/電磁相容性,FIPS 140-3變成第7項的非侵入式資安。此外,FIPS 140-2的附件與相關附錄內容,FIPS 140-3也都整併於附件之中。
FIPS 140使用的一些重要術語,也出現變化。舉例來說,亂數產生器之前稱為Random NumberGenerators(RNG),現在為了要與後量子密碼學區分,亂數產生器改為Random Bit Generators(RBG)。同時,他提及,新版不只密碼學演算法要驗證,就連熵(Entropy)也要驗證。
開發人員需增進密碼學演算法認知,才能避免誤用
除了FIPS 140-3的概況介紹,特別的是,楊力學在這場演說中更是強調一件事,開發人員必須要對FIPS 140-3有更多瞭解。
他認為,大多資安公司看待FIPS 140-3的角度,是從檢測與合規的角度出發,若以SSDLC需求的角度看待時,其實也跟開發人員有關,他們也需要多瞭解FIPS 140-3,因為,若不注意當中的區分,與密碼學有關的程式,很有可能無法正常在FIPS模式下執行。
例如,在今年2月,美國NIST發布的軟體開發安全框架中,在「組織要準備的工作」第5.2項工作項目中,其要求就是「研發工作相關端點,需基於風險的考量,進行安全與強固」,而其中的一個概念實施範例,就是建議使用FIPS合規的加密,以保護所有處於儲存與傳輸狀態的敏感資料。
換個角度,若從實際威脅現況來看,他也特別強調一點,就是密碼學問題(加密機制失效)所造成的網站應用程式弱點與風險,在OWASP Top 10排行榜當中,近年已經從第三名升至第二名。
上述這些狀況反映出,開發人員對於密碼學模組資安要求,同樣需要有更多的充分認識。
因此,在FIPS 140-2轉換FIPS 140-3之際,楊力學也對開發人員提出一些建議。
由於普遍開發人員也是密碼學模組的使用者,他提出五個注意事項。首先,當開發工程師使用密碼學演算法時,必須瞭解這些密碼學演算法,認識有哪些分類及目的,他建議可以先閱讀一些密碼學的書。
第二,關於密碼學的規格、介面,以及密碼學模組提供的使用者手冊,由於都會改版,他建議必須要仔細閱讀,這樣才能避免誤用密碼學的輸入參數。
第三,密碼學模組在FIPS模式的狀態沒有提供的密碼學演算法,開發人員也需要留意。
第四,需要認知到現階段已實作FIPS 140-3的密碼學模組的大廠,都算是早期產品,因此早期採用者也會面臨一些挑戰。最後,他建議可以多參與FIPS 140-3的相關討論。
另外,他也呼籲一般的開發人員,也就是密碼學模組的使用者,在安全軟體開發生命週期之中,應將伺服器的作業系統設定為「啟用FIPS模式」,後端與系統程式將設定值改成FIPS合規狀態,或是使用符合FIPS 140-2、140-3認證的程式庫,進行密碼學操作,又或直接調用FIPS認證密碼學模組提供的密碼學介面。
如此一來,可增進資料三態的安全性,也能縮小開發與維運環境的差異,使開發人員更能滿足維運人員需求。
對於模組開發者的挑戰,建立離散數學與密碼學知識,並要留意需求解讀
除了一般普遍的開發人員,國內也有廠商正在開發密碼學模組,因此,對於這些密碼學模組開發者而言,他也提供轉換FIPS 140-3心得。
例如,FIPS 140-3在編排上,比前一版更有條理,對開發團隊會比較清楚 ;要有能力開發「密碼學服務提供者」(Cryptographic Service Provider)這樣的程序,需準備離散數學與密碼學的知識,以實作核可的密碼學演算法;在FIPS 140-3標準中,實作指南與ISO/IEC 19790所提到的每個「shall(應作之事)」,都是一個軟體開發流程需求表(Backlog)之中的需求,若要解讀需求表,需要對密碼學與資訊安全有深入理解,否則自己與同儕之間,若有不同見解時,將有一定的溝通成本;目前Level 3與Level 4的部分內容還有些模糊;密碼學模組開發者在設計「安全支援提供者」(Security Support Provider)的程式庫時,也要注意,像是其中的已知解答測試(KAT)自我測試模組,其實並沒有那麼容易開發。至於緩解旁路攻擊需要分析電力使用方面,由於目前SP 800-140F尚未完成,因此對於軟體密碼學模組的要求尚不清楚。
安華聯網科技軟體工程師暨資安研究員楊力學(Aspen Yang)在近期臺灣資安大會的演說上,不僅提到FIPS 140-3的現況與轉換挑戰,同時他並以SSDLC的角度切入,建議開發人員需要多對FIPS 140-3有所瞭解。(攝影/iThome)
FIPS 140標準從1994年第一版發展以來,2001年發布第二版FIPS 140-2,2019年發布至第三版FIPS 140-3,如今可預期的是,未來所有密碼學模組等開發商,販售的硬體或軟體密碼模組都要支援FIPS 140-3認可的演算法。安全等級與上一版同樣畫分4個等級,分別是Level 1、Level 2、Level 3與Level 4,Level 4最嚴格。基本上,較高安全等級的需求,亦涵蓋較低等級的所有安全要求。(圖片來源:安華聯網)
熱門新聞
2024-11-25
2024-11-15
2024-11-15
2024-11-25
2024-11-28
2024-11-14