999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

兩種密碼中間件模塊標準SKF 和PKCS#11 的對比分析

2020-03-05 09:33:52陳琢陳強
現代計算機 2020年2期
關鍵詞:設備

陳琢,陳強

(成都衛士通信息產業股份有限公司,成都610041)

0 引言

隨著信息安全需求的發展,密碼技術已得到廣泛的使用,成為信息時代中不可獲缺的組成部分。同時,為了提高密碼運算的性能,提高密鑰等關鍵信息的安全性,例如USBKey、加密TF 卡、貼芯卡等專門的密碼設備應運而生,越來越多的系統使用這些密碼設備來分擔密碼運算操作。為了給應用開發人員便利地調用這些密碼設備,多個國際、國內的加密API 標準隨即出現。這類標準為應用隱藏了密碼設備的實現細節,為應用開發者提供統一的方式來使用不同的密碼設備,大大增強了應用的可擴展性[1]。其中,PKCS#11[2]和SKF[3]是使用較廣泛的兩種。

1 SKF和PKCS#11標準介紹

1.1 SKF簡介

國家密碼管理局于2010 年首次發布《智能IC 卡及智能密碼鑰匙密碼應用接口規范》,即SKF 接口標準。之后于2012 年11 月更新為GM/T0016-2012《智能密碼鑰匙密碼應用接口規范》發布。目前很多國內密碼設備廠商都為其產品提供了SKF 接口的開發包。隨著國密技術的發展,SKF 接口在加密模塊和軟件上的使用已越發廣泛。

在SKF 接口規范中,一個設備中存在一個設備認證密鑰和多個應用,應用之間相互獨立,并具有各自的管理員PIN、用戶PIN 和權限。應用邏輯結構如圖1所示。

圖1 SKF設備的應用邏輯結構圖

以數據加密調用過程為例,SKF 接口使用的一個典型流程如下:

(1)枚舉設備:SKF_EnumDev

(2)連接設備:SKF_ConnectDev

(3)枚舉應用:SKF_EnumApplication

(4)打開應用:SKF_OpenApplication

(5)驗證應用PIN 碼:SKF_VerifyPIN(6)枚舉容器:SKF_EnumContainer

(7)打開容器:SKF_OpenContainer

(8)設置會話密鑰:SKF_SetSymmKey

(9)加密初始化:SKF_EncryptInit

(10)加密多個數據包:SKF_EncryptUpdate

(11)加密多個數據包結束:SKF_EncryptFinal

(12)關閉容器:SKF_CloseContainer

(13)關閉應用:SKF_CloseApplication

(14)斷開設備連接:SKF_DisConnectDev

1.2 PKCS#11簡介

公鑰密碼標準PKCS(Public-Key Cryptography Standards)是RSA 實驗室與本行業、學術界以及政府的代表一起合作推出的一套規范,它包含一系列規范,其中PKCS#11 是加密設備接口標準。該標準詳細規定了密碼令牌接口Cryptoki(Cryptographic Token Interface)的編程接口,現在由OASIS(Organization for the Advancement of Structured Information Standards,結構化信息標準促進組織)技術委員會管理,最新的正式版本是2.40。

PKCS#11 定義了會話(session)、槽(slot)、令牌(token)、對象(object)的概念,用于抽象密碼設備的使用過程。其中會話抽象應用與設備的連接,槽抽象卡槽或讀卡器等安全設備,令牌抽象加密TF 卡等密碼設備,對象抽象在密碼操作中使用和產生各種數據結構[4]。

使用PKCS#11 標準的密碼設備中,邏輯結構如圖2 所示。

圖2 PKCS#11設備的邏輯結構圖

以數據加密調用過程為例,Cryptoki 使用的一個典型流程如下:

(1)初始化接口庫:C_Initialize

(2)獲取密碼設備的槽位:C_GetSlotList

(3)選擇使用的槽位,創建會話:C_OpenSession

(4)登錄設備:C_Login

(5)查找已有的密鑰或生成新密鑰:

①查找初始化:C_FindObjectsInit

②進行查找:C_FindObjects

③結束查找:C_FindObjectsFinal

④生成:C_GenerateKey 或C_GenerateKeyPair

(6)加密初始化:C_EncryptInit

(7)加密多個數據包:C_EncryptUpdate

(8)加密多個數據包結束:C_EncryptFinal

(9)退出登錄:C_Logout

(10)關閉會話:C_CloseSession

(11)退出庫調用狀態:C_Finalize

2 SKF和PKCS#11的對比分析

SKF 和PKCS#11 均是密碼設備對外提供的接口標準,為外部開發者調用密碼設備提供統一的、便利的途徑。本節對兩種接口的差異進行比較。

2.1 權限管理的不同

在SKF 標準中,權限分為設備權限、用戶權限和管理員權限。在特定操作中(包括創建應用、刪除應用和修改設備認證密鑰),需要設備權限。在SKF 設備中,每個應用都有自己的PIN 碼(包括用戶PIN 碼和管理員PIN 碼),因此,各應用可獨立地使用設備,獲取權限。

在PKCS#11 中,沒有設備權限,僅有用戶權限和管理員權限。設備上僅有一個用戶PIN 和一個管理員PIN。因此,當一個應用使用正確的PIN 碼登錄后,即通過了整個設備的權限認證。

2.2 設備初始化過程的不同

對于SKF 設備,應用在開始使用時需要在設備中創建好相應的應用。因此,在正確枚舉出設備后,應用可能涉及到的操作包括:設備認證、創建應用、打開應用、驗證PIN 碼(創建容器需要用戶權限)、創建容器。之后,可以此容器中進行密鑰操作和調用密碼算法。

相對地,對于PKCS#11 設備,應用在正確枚舉到設備后,需要的操作包括打開會話和登錄。之后即可進密鑰操作和調用密碼算法。

2.3 密鑰及數據的管理方式上的不同

SKF 接口通過應用和容器來組織密鑰。在同一個設備中,可存在多個應用,而每個應用各自擁有若干個容器。一個容器可存放一對加密公私鑰對和一對簽名公私鑰對,以及對應的加密證書和簽名證書。在這些公私鑰對和證書生成或導入后,設備將它們保存起來,直到通過接口函數將它們刪除。在設備使用過程中產生的會話密鑰,僅在會話期間有效。當會話關閉(如關閉容器)后,這些會話密鑰不會保存。因此,SKF 接口中,以非對稱密鑰和會話密鑰的操作為主,不支持對稱密鑰的存儲。其他數據可作為文件存儲于應用中,通過SKF 的文件操作相關接口來進行讀寫和控制。

相對地,PKCS#11 沒有應用和容器的概念。它通過定義多種對象來組織密碼設備上的數據,包括數據對象、證書對象和密鑰對象[5]。PKCS#11 為每類對象定義了豐富詳細的屬性參數,使開發者可根據需求定義每個對象的屬性,例如是否在設備中保存、對象的標識、是否可導出、是否可用于加解密、是否可用于打包其他密鑰,等等。在應用調用PKCS#11 過程中,通過會話(session)來管理臨時產生的對象。在一個session中產生的臨時對象(session object),僅在此會話中可以使用。當此session 關閉時,這些對象都將消失。而保存于設備上的對象,所有應用都有同樣的權限。

2.4 支持算法的不同

SKF 接口以支持國密算法為主,包括SM1、SM2、SM3、SM4,同時包括部分國際算法:RSA、SHA1 和SHA256。PKCS#11 支持多種國際算法,但可通過自定義機制進行擴展。

3 基于PKCS#11接口的SKF接口設計思路

當前,部分密碼設備提供PKCS#11 接口,不提供SKF 接口。在這種情況下,由于PKCS#11 接口更具普遍性,將PKCS#11 作為較低一層,可以實現SKF 接口,擴大密碼設備的適用范圍。

基于PKCS#11 實現SKF 接口,主要需要解決上節中分析的SKF 與PKCS#11 的差異處。PKCS#11 對象中豐富的屬性,可用于建立與SKF 類似的應用結構。

在調用SKF 接口時,為找到可用的設備,設備管理類的函數往往最先調用,主要包括枚舉設備、連接設備、斷開設備、獲取設備狀態等)。對應到PKCS#11 接口中,可在此階段進行庫的初始化,查找設備和獲取設備信息??赏ㄟ^C_Initialize、C_GetSlotList 等接口獲取。

由于SKF 和PKCS#11 中的權限管理不同,在這個階段中,除了進行初始化,可完成PKCS#11 設備的登錄。此后不使用PKCS#11 設備上的PIN。例如,在連接設備時,在已知密碼設備PKCS#11 的PIN 碼的情況下,調用PKCS#11 的登錄接口。

SKF 中設備認證密鑰、應用、容器及文件,由于在PKCS#11 無對應的概念,可通過在PKCS#11 設備中存儲為對象來實現。對應的層次及結構關系,通過PKCS#11 對象可定義的豐富的屬性來實現。例如,可通過定義特定的CKA_APPLICATION 或CKA_LABEL來標識出設備認證密鑰,如下:

類似地,應用、應用PIN、容器、文件、證書均使用PKCS#11 數據對象存儲,容器中的密鑰對應使用PKCS#11 密鑰對象存儲??墒褂靡韵聦傩詠斫㈥P系。

●應用和應用PIN:在創建應用時,使用PKCS#11接口創建數據對象存儲。可使用一個對象。使用CKA_APPLICATION 標識為SKF 相關對象。將接口中傳入的應用名稱(szAppName)存入CKA_LABEL。PIN和PIN 的剩余可用次數及權限控制作為對象值寫入。

●容器:創建容器時,使用PKCS#11 接口創建數據對象存儲。使用CKA_APPLICATION 標識為某應用的容器。CKA_LABEL 中存儲容器名稱。

●文件:創建文件時,使用PKCS#11 接口創建數據對象存儲。使用CKA_APPLICATION 標識為某應用的文件。CKA_LABEL 中存儲文件名稱。其他內容,包括文件大小,讀寫權限及文件內容存入CKA_VALUE 中。

●證書:在證書導入時,使用PKCS#11 接口創建數據對象存儲。使用CKA_APPLICATION 存儲應用名、容器名及證書標識。CKA_LABEL 中存儲證書類型(加密證書或簽名證書)。證書內容存入CKA_VALUE中。

●密鑰:在密鑰產生時,使用PKCS#11 接口創建密鑰對象存儲。使用CKA_ID 存儲應用名、容器名、密鑰類型(加密密鑰或簽名密鑰)。

4 結語

隨著密碼設備的廣泛使用,使用統一的、標準的密碼設備接口越來越關鍵。SKF 和PKCS#11 接口標準作為兩種主流接口,很好地解決了這個問題,增強了應用程序的可移植性。本文對比分析了兩種標準的差異性,并提出基于PKCS#11 實現SKF 的一種方案,為使用SKF 和PKCS#11 的開發人員提供參考。

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 99精品国产高清一区二区| 免费无码网站| …亚洲 欧洲 另类 春色| 国产一区二区网站| 久久无码av三级| 91精品综合| 欧美国产菊爆免费观看| 欧美啪啪视频免码| 中文无码精品A∨在线观看不卡| 激情综合婷婷丁香五月尤物| 国产成人1024精品| 真实国产乱子伦视频| 国产精品蜜芽在线观看| 国产99精品久久| 99热这里只有精品国产99| 久久频这里精品99香蕉久网址| 欧美亚洲国产日韩电影在线| 青青操国产| 久久永久视频| 国产精品第| 97视频精品全国免费观看| 青草视频久久| 婷婷五月在线| yjizz国产在线视频网| 久久免费看片| 啊嗯不日本网站| 欧美日韩在线第一页| 青青青亚洲精品国产| 亚洲欧美激情另类| 欧美一级片在线| 国产精品大白天新婚身材| 国产精品久久国产精麻豆99网站| 婷婷综合色| 亚洲天堂区| v天堂中文在线| 无码网站免费观看| 免费无码AV片在线观看中文| 久久黄色视频影| 色欲综合久久中文字幕网| 日韩欧美亚洲国产成人综合| 三上悠亚精品二区在线观看| 亚洲国产中文欧美在线人成大黄瓜| 欧美日韩国产综合视频在线观看| 国产精品久久久久久久久久久久| 国产杨幂丝袜av在线播放| 久久性妇女精品免费| 精品一区二区三区自慰喷水| 香蕉伊思人视频| 日韩精品中文字幕一区三区| 亚洲欧美一区二区三区图片| 青青青视频蜜桃一区二区| 精品国产美女福到在线直播| 欧美有码在线| 亚洲日韩欧美在线观看| 亚洲大学生视频在线播放| 精品国产自| 国产精品片在线观看手机版| 日韩欧美高清视频| 极品国产一区二区三区| 国产精品网曝门免费视频| 国产一区亚洲一区| 国产精品一区二区不卡的视频 | 亚洲v日韩v欧美在线观看| 国产精品视频导航| 国产精品无码一二三视频| 无码人中文字幕| 国产在线97| 国产成人亚洲精品色欲AV| 亚洲午夜久久久精品电影院| 99热这里都是国产精品| 91在线激情在线观看| 日本午夜三级| 日韩成人在线一区二区| av在线无码浏览| 精品国产免费第一区二区三区日韩| 国产拍在线| 成人在线天堂| 国产午夜一级淫片| 久久免费观看视频| 青草国产在线视频| 四虎AV麻豆| 国产精品区网红主播在线观看|