聲明:版權歸原作者所有,如有侵權請聯(lián)系刪除。
本章主要對標準與認證做概要性介紹鹏倘,幫助開發(fā)人員了解:
- 開產品開發(fā)中,需要遵循的各種標準
- 在產品初步開發(fā)完成后顽爹,需要推向市場時纤泵,應該通過什么樣的信息安全認證
7.1 標準概論
標準其實就是一些規(guī)范文件。
標準可以來做什么镜粤?標準的最大特點是可以反復使用捏题,而且達到通過標準,能獲得一致性結果肉渴。
遵循標準對安全有什么價值公荧?不遵循安全標準,基本上等于不安全同规。舉個栗子循狰,在 STM32 加密庫中,看到 RSA PKCS 1.5 的函數名稱券勺,而不是直接的 RSA 運算绪钥。這是因為 RSA 算法的基本原理只是給我們展現(xiàn)了教科書級別的算法。在實際應用中关炼,如果直接使用程腹,非常容易受到攻擊。例如儒拂,假設我們所有人的公鑰指數都選為 3寸潦,雖然模數 n 不同,私鑰指數是不同的侣灶。但是如果沒有按照 RSA PKCS1.5 進行填充甸祭,那么根據中國余數定理,如果同一內容多方加密后褥影,攻擊,可以在不知道私鑰指數的情況下咏雌,將明文恢復凡怎。這是所謂的廣播攻擊。而如果遵循了 RSA PKCS 1.5 的隨機填充要求赊抖,這個攻擊就無法奏效统倒。這是我們需要 PKCS1.5 的原因。當然這些年隨著攻擊防護研究的深入氛雪,PKCS1.5 標準也正在更新?lián)Q代中房匆。
所以安全技術開發(fā)中有一個非常重要的原則:要遵循標準。很多公司都規(guī)定要使用公開的算法,要用公開的標準浴鸿。在做安全開發(fā)時井氢,一定要記住:不可隨隨便便搞發(fā)明創(chuàng)新岳链,否則極有可能給系統(tǒng)留下安全漏洞花竞。當然,在遵循算法標準的情況下掸哑,可以在實現(xiàn)算法的過程中加入更多的防護约急。
7.2 與安全有關的標準
當談論標準時,通常涉及兩類標準苗分。
大類標準厌蔽,例如 FIPS(美國聯(lián)邦信息處理標準),再如國密 SM(商用密碼)
-
一些具體的算法或者協(xié)議標準摔癣,該類內容很多奴饮,這里只談STM32 用戶開發(fā)中常用的。
- 加密:DES供填、AES拐云、RSA。DES已經認為不安全近她,應該被AES取代
- 單向散列函數:MD5叉瘩,SHA1,SHA2粘捎,SHA3薇缅。MD5已經被攻破,SHA1不推薦使用攒磨。
- 消息認證碼:含有 HAMC 以及以及 AES 算法的消息認證碼
- 數字簽名: RSA PKCS1.5泳桦、橢圓曲線 ECDSA
- 公鑰體系基礎架構:X.509,常用的數字證書就是 X.509 標準定義的
除了這些國際算法標準娩缰,中國也有相應的國家密碼標準灸撰,稱之為國密。如 SM1 為對稱密鑰拼坎,其加密強度與 AES 相當浮毯;SM2 為非對稱加密,基于橢圓曲線 ECC泰鸡;SM3 摘要消息债蓝;SM4 是一個對稱密鑰算法。
通訊安全標準也是有標準盛龄,如 TLS饰迹。
處理信息安全的時候會發(fā)現(xiàn)芳誓,基本上天天需要和這些已經標準化的算法與協(xié)議打交道。
7.3 認證概論
通用控制器目前信息安全強制認證并不常見啊鸭。但是如果所銷售的產品所在行業(yè)已經有國家強制性標準锹淌,比如要銷售給美國政府的事業(yè)單位,則認證是必不可少的步驟莉掂。還有一些客戶是基于風險所考慮的葛圃。不同的國家有不同的法律要求,如果因為安全的原因憎妙,例如用戶個人信息泄露库正,而導致制造商分銷商被起訴,則有可能面臨巨額賠償厘唾。而認證可以降低該風險褥符,甚至免除責任。最后一種則是客戶為了提高客戶滿意度抚垃,提高產品區(qū)分度喷楣,所通過的一些認證。
如果打算去做認證鹤树,那么在做產品計劃的時候铣焊,就需要認真考量時間和費用這兩點。很多產品認證罕伯,一方面需要的時間很長曲伊,半年甚至一年;另一方面追他,認證的費用也很高坟募,百萬級別的費用并不少見。
有時候產品認證的范圍邑狸,不僅僅是送測的產品懈糯。整個公司的研發(fā),生產環(huán)境以及公司的產品制造流程都可能在認證范圍之內单雾。
7.4 認證流程
認證實驗室和頒發(fā)證書的認證機構主體通常不是同一個赚哗。
為了通過認證,一般需要提交文檔硅堆、源代碼蜂奸、產品樣片。認證測試很多時候價格不菲硬萍,而且按次收費。為了通過認證围详,就要選用正確的芯片與軟件開發(fā)包朴乖。STM32 與 STM32 加密庫在這個時候就可以發(fā)揮作用祖屏。
認證實驗室或者受委托機構,會對你提交的文檔买羞、代碼進行審查袁勺,同時進行產品安全測試。如果認證標準需要評估管理體系生成流程畜普,則認證機構會組織對提交材料的單位進行現(xiàn)場審查期丰。
文檔審查、產品測試以及現(xiàn)場審查都符合標準吃挑,則由認證實驗室或者受委托機構提交一份評估報告钝荡。
認證主管機構認可評估報告,會頒發(fā)相應證書舶衬。證書一般都是有期限的埠通。
收到證書后,認證進入維護階段逛犹。若產品發(fā)生變化端辱,則可能需要提交產品更改申請。若產品到期虽画,則要考慮是否重新延展認證書年限舞蔽。同時,認證管理機構會定期對獲得證書的單位進行監(jiān)督審查码撰。
當然渗柿,有些認證可能只需要提交問卷或者提交自測試的結果就可以了。那樣的話會比較簡單灸拍,但前提是認證機構相信這個自測試結果做祝。
7.5 NIST FIPS 140
NIST FIPS 140 是美國國家強制的標準,該標準是美國 NIST 聯(lián)合加拿大制定的鸡岗,在英國等其他國家也得到承認混槐。當前版本是 FIPS-140 2。NIST 創(chuàng)建了 CMVP 來認證加密模塊是否達到了 FIPS140 的要求轩性。不符合該標準的產品無法進入美國政府的采購列表声登。產品一旦符合它的規(guī)定,并得到認證揣苏,就已達到了美國和加拿大公共機構的安全標準悯嗓,可以向美國和加拿大出口。這個認證分為兩部分卸察,CAVP 密碼算法驗證體系脯厨,以及 CMVP 密碼模塊驗證體系。CAVP 密碼算法驗證體系是 CMVP 的先決條件坑质。
FIPS-140 2 具有 4 個等級:
- 等級1. 通常用于軟件加密產品
- 等級2. 要求基于角色的認證合武,具備記錄物理篡改的能力(篡改取證)
- 等級3. 增加物理篡改預防的措施
- 等級4. 包含高級防篡改的功能临梗。針對產品運行在不受保護的物理環(huán)境中。任何方向的攻擊都可以大概率被檢測到稼跳,然后導致明文數據被擦除盟庞。
FIPS-140 認證過程時間長,成本高汤善。如果產品通過了 CMVP 認證什猖,獲得 FIPS-140 認證證書,可在產品中加入 FIPS-140 2 inside 等標志红淡。
7.6 STM32 的 CAVP 認證
STM32 加密庫為了減輕客戶 FIPS-140 產品認證工作不狮,提供通過 CAVP 認證的加密庫 XCUBE-CRYPTOLIB。
STM32 的 CAVP 認證包括以下內容:
- 對于 Hash 和 HMAC算法:
- SHA-1锉屈、SHA-224荤傲、SHA-256、SHA-384颈渊、SHA-512
- HMAC-SHA-1遂黍、HMAC-SHA2-224、HMAC-SHA2-256俊嗽、HMAC-SHA2-384雾家、HMAC-SHA2-512
- 對于對稱密鑰 AES 算法,STM32 AES-CBC绍豁、AES-CCM芯咧、AES-CFB128、AES-CMAC竹揍、AES-CTR敬飒、AES-ECB、AES-GCM芬位、AES-KW无拗、AES-OFB、AES-XTS
- 對于隨機數昧碉,STM32 DRBG
- 對于RSA公鑰算法英染,STM32 RSA PKCS 1.5 通過了認證,可以用來簽名和驗證簽名被饿。
- 對于橢圓曲線 ECC 公鑰算法四康,STM32 ECDSA 密鑰生成、密鑰驗證狭握、簽名生成闪金、簽名認證