商用密码产品(密码模块)-密码模块接口
一、定義
????????GM/T 0028中給出了接口的定義,接口是密碼模塊的邏輯入口或出口,為邏輯信息流提供進(jìn)出模塊的通道。
二、密碼模塊接口
????????GM/T 0028中定義了11個(gè)安全域,每個(gè)安全域都不是獨(dú)立存在的,就今天的密碼接口而言,與我們上一期文章中提到的密碼模塊邊界密不可分,密碼邊界內(nèi)的組成部分才會與密碼模塊接口有關(guān),不在密碼邊界內(nèi),自然不是密碼模塊的接口,所以密碼模塊邊界的劃分是至關(guān)重要的,密碼模塊邊界劃定錯了,會產(chǎn)生連鎖效應(yīng),就像SM4算法CBC模式運(yùn)算,第一個(gè)明文分組計(jì)算錯誤,加密過程會把這個(gè)錯誤的影響擴(kuò)散到后續(xù)的明文分組。
三、密碼模塊接口類型
????????從形態(tài)的角度來說,密碼模塊可以劃分為物理接口、邏輯接口兩個(gè)大類。物理接口是密碼邊界內(nèi)可見形態(tài)的接口,比如USB接口、RJ45接口、HDMI接口、VGA接口、電源接口、led燈、液晶顯示屏等。邏輯接口理解比較抽象,主要就是為了實(shí)現(xiàn)某些功能調(diào)用的功能函數(shù),比如data_enc()、data_dec等等。
(1)USB接口
????????USB接口通常作為優(yōu)盤、鍵盤、鼠標(biāo)、智能密碼鑰匙等設(shè)備的接入,優(yōu)盤中的數(shù)據(jù)可以導(dǎo)入密碼模塊,此時(shí)USB接口就是數(shù)據(jù)輸入接口;當(dāng)連接鼠標(biāo)、鍵盤等外設(shè)時(shí),使用者會通過鼠標(biāo)鍵盤輸入指令,操作密碼模塊,此時(shí)USB接口就是控制輸入接口等等。
(2)RJ45接口
????????RJ45接口包括通信網(wǎng)口、控制口、管理口;通信網(wǎng)口一般是密碼模塊中數(shù)據(jù)通信的網(wǎng)絡(luò)通道,也是密碼模塊功能相關(guān)數(shù)據(jù)的主要接口,所以網(wǎng)口是網(wǎng)絡(luò)類設(shè)備的主要數(shù)據(jù)輸入和輸出接口,控制口和管理口主要是控制輸入的接口。
(3)HDMI接口、VGA接口
? ? ? ? 一般情況HDMI和VGA是設(shè)備主要的信息輸出接口,一般是可視化界面的接口,通過這兩個(gè)接口可以直觀的觀察到密碼模塊的使用情況,所以這兩個(gè)接口也是主要的數(shù)據(jù)輸出、狀態(tài)輸出接口。
(4)電源接口
? ? ? ? 電源接口比較好理解,作為密碼模塊的供電接口。
(5)led接口
? ? ? ? led接口是密碼模塊中的狀態(tài)輸出接口,這個(gè)對應(yīng)還是比較明確的,一般服務(wù)器設(shè)備會有不同顏色的led燈,不同的顏色代表不同的含義,比如,綠燈亮起表明設(shè)備狀態(tài)運(yùn)行正常,紅燈亮起表明設(shè)備數(shù)據(jù)庫運(yùn)行錯誤,黃燈亮起表明存儲空間不足。
(6)邏輯接口
? ? ? ? 邏輯接口理解比較抽象,主要就是為了實(shí)現(xiàn)某些功能調(diào)用的功能函數(shù),比如data_enc()、data_dec,一般來說,密碼模塊可能會沒有硬件接口,很少有產(chǎn)品沒有邏輯接口,但是不排除存在。邏輯接口應(yīng)該和物理接口存在一定的映射關(guān)系,如果不同的邏輯接口復(fù)用同一個(gè)物理接口時(shí),邏輯接口應(yīng)該相互隔離。
四、密碼模塊接口舉例
????????不得不說,不同產(chǎn)品的密碼模塊接口千差萬別,差異性很大,所以我們只舉一個(gè)簡答的例子,我們今天以智能密碼鑰匙為例子。
(1)數(shù)據(jù)輸入接口
????????物理接口:USB接口
????????邏輯接口:ULONG DEVAPI SKF_ImportCertificate(HCONTAINER hContainer, BOOL bSignFlag,? BYTE* pbCert, ULONG ulCertLen)、ULONG DEVAPI SKF_ImportRSAKeyPair (HCONTAINER hContainer, ULONG ulSymAlgId, BYTE *pbWrappedKey, ULONG ulWrappedKeyLen,BYTE *pbEncryptedData, ULONG ulEncryptedDataLen)等等
(2)數(shù)據(jù)輸出接口
????????物理接口:USB接口
????????邏輯接口:ULONG DEVAPI SKF_ReadFile (HAPPLICATION hApplication, LPSTR szFileName, ULONG ulOffset, ULONG ulSize, BYTE * pbOutData, ULONG *pulOutLen)、ULONG DEVAPI SKF_ExportCertificate(HCONTAINER hContainer, BOOL bSignFlag,? BYTE* pbCert, ULONG *pulCertLen)等等。
(3)控制輸入接口
? ? ? ? 物理接口:USB接口????????
????????邏輯接口:ULONG DEVAPI SKF_DeleteFile (HAPPLICATION hApplication, LPSTR szFileName)、ULONG DEVAPI SKF_CreateContainer (HAPPLICATION hApplication, LPSTR szContainerName, HCONTAINER *phContainer)等等。
(4)控住輸出接口
????????不涉及
(5)狀態(tài)輸出接口
????????物理接口:USB接口
????????邏輯接口:智能密碼鑰匙通過錯誤代碼值對狀態(tài)進(jìn)行輸出,例如:
| 宏描述 | 預(yù)定義值 | 說明 |
| SAR_OK | 0x00000000 | 成功 |
| SAR_Fail | 0x0A000001 | 失敗 |
| SAR_UnknownErr | 0x0A000002 | 異常錯誤 |
| SAR_NotSupportYetErr | 0x0A000003 | 不支持的服務(wù) |
| SAR_FileErr | 0x0A000004 | 文件操作錯誤 |
| SAR_InvalidHandleErr | 0x0A000005 | 無效的句柄 |
| SAR_InvalidParamErr | 0x0A000006 | 無效的參數(shù) |
| SAR_ReadFileErr | 0x0A000007 | 讀文件錯誤 |
| SAR_WriteFileErr | 0x0A000008 | 寫文件錯誤 |
| SAR_NameLenErr | 0x0A000009 | 名稱長度錯誤 |
| SAR_KeyUsageErr | 0x0A00000A | 密鑰用途錯誤 |
| SAR_ModulusLenErr | 0x0A00000B | 模的長度錯誤 |
(6)電源接口
????????物理接口:USB接口
????????以上關(guān)于密碼模塊接口的描述,僅供參考,也可私信作者進(jìn)一步深入溝通,微信號:TYNNNL。
總結(jié)
以上是生活随笔為你收集整理的商用密码产品(密码模块)-密码模块接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 百度地图定位辅助教程
- 下一篇: 低代码指南100方案:48用好设备巡检管