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

數字證書系統的設計與實現

2022-09-09 02:17:00楊磊白世坤
電子技術與軟件工程 2022年11期

楊磊 白世坤

(中國電子科技集團公司第三十研究所 四川省成都市 610041)

1 引言

在實際的保密通信過程當中,甲方如果向乙方發送加密數據,首先甲乙雙方需要有一個共同的加密密鑰,甲乙雙方的一方使用此密鑰加密數據然后傳輸,接收方收到加密數據后使用此密鑰對數據進行解密,解密出數據的明文后,甲乙雙方就可以進行保密通信,這種保密通信方式在密碼學當中叫做對稱密碼技術。

在對稱密碼技術當中,由于雙方通信過程中加密通信一直使用同一個加密密鑰,這種方式很容易被第三方進行攻擊演算出加密密鑰,從而導致網絡傳輸數據被竊取,為了解決這個問題,需要通信雙方在一段時間內更換加密密鑰。在更換密鑰的過程中,使用公鑰密碼技術進行密鑰管理可以保證:加密傳遞的數據只能被指定的接收者解密,單個實體的失效不能影響其它實體的安全,密鑰不能擴散,密鑰易于傳遞。

假如甲方使用公鑰密碼技術對對稱密鑰進行加密,首先必須知道乙方的公鑰數據;乙方在加密通信之前向甲方傳遞自己公鑰的過程中,容易受到第三方丙方的監視,丙方中途截取乙方的通信信道,用自己的公鑰替換乙方的公鑰,甲方在不知公鑰被替換的情況下,使用丙方的公鑰加密數據,此數據輕而易舉的被丙方截取。

為了解決上述問題,引入了公鑰基礎設施(PKI)的概念,公鑰基礎設施引入受信任的第三方(CA)作為甲方和乙方的共同信任中心,CA 使用自己的私鑰向甲方和乙方簽發數字證書。甲方在收到乙方的數字證書后,使用CA 中心的公鑰對證書進行簽名驗證,如果簽名驗證通過,則甲方認為證書沒有被篡改,乙方的公鑰是安全的。甲方和乙方的加密通信就可以在一個安全的環境下進行。

本文的目的就是構建一個輕量級的證書管理系統,用于科學研究、企業內網或者無法連接互聯網的企業機構,快速簽發數字證書,構建內部可信通信系統。

2 公鑰密碼技術

公鑰密碼體制是Diffie 和Hellman 在1976年提出的,公鑰密碼技術在密碼體制中加密和解密采用不同的但是又相關的密鑰技術。雖然目前的公鑰算法又很多,但是有一個共同的特點就是,每個通信方在進行保密通信時有兩個相關的密鑰,其中一個公開,另外一個保密存儲。由于公鑰算法比傳統的密碼算法具有更高的復雜度,因此公鑰密碼加密數據的效率比較低,只能對少量的關鍵數據進行加密。所以公鑰密碼技術在加密、數字簽名、身份認證等很多方面上有廣泛的應用。

公鑰密碼體制是建立在單向陷門函數(One-way Trapdoor Function)上的,其安全性基于復雜的數學難題。從基于大整數因子分解的數學難題提出RSA 公鑰密碼體制開始,歷經基于離散對數問題的ElGamal 公鑰密碼體制及其各種變體,到基于橢圓曲線點群的離線對數問題的橢圓曲線密碼體制,其中心思想都是高安全性。

公鑰密碼算法中的公鑰有一個明顯的有點就是可以公開,只要包含公鑰的證書是可以認證的,就可以認為公鑰是可信的,以此通過第三方的可信任認證機構,如證書中心,就可以進行安全通信。

基于以上理論依托,使用公鑰密碼技術簽發的數字證書具有不可偽造性和可認證性。

3 證書編碼規則

ASN.1 抽象語法標記(Abstract Syntax Notation One)是一種 ISO/ITU-T 標準,可以理解與一組語法規則和一組編碼規則,數據類型的概念是ASN.1 標準的基礎。X.509 證書的編碼和解碼規則遵循ASN.1 編碼和解碼規則,證書請求結構的每個字段都與數據類型相關聯。

ASN.1 類型系統中分為基本類型、字符串類型和構造類型。其中基本類型包含BIT STRING、BOOLEAN、INTEGER、NULL、OBJECT IDENTIFIER、OCTET STRING,字符串類型包含BMPString、IA5String、PrintableString、TeletexString、UTF8String,構造類型包括SEQUENCE、SEQUENCE OF、SET、SET OF、CHOICE。每種類型都有一個固定編碼標記與之對應,具體的涉及到的詳細編碼標記可以查看ASN.1 的有關標準。X.509 證書是使用基本類型、字符串類型和構造類型的組合而設計的。

ASN.1 定義了(BER) 的基本編碼規則、(CER) 規范編碼規則、(DER)可辨別編碼規則,其中DER 是為滿足 X.509規范的安全數據傳輸的要求而創建的。DER 的編碼規則遵循標記(TAG),長度(LENGTH)和值(VALUE)規則,即“TLV”編碼規則,如下圖1所示,其中TAG 字段就是ASN.1 定義的類型,LENGTH 字段表示VALUE 的長度,VALUE 字段表示實際被編碼的數據,其中VALUE 字段可以嵌套編碼如圖2所示。“TLV”編碼的規則可以查閱相關開放資料,此處不再詳細論述。

圖1:“TLV”編碼格式

圖2:“TLV”編碼嵌套格式

4 X.509數字證書

自 1998年成立以來,X.509 公鑰證書標準的三個版本不斷發展,數據結構的每個后續版本都保留了以前版本中存在的字段,并添加了更多內容。X.509 證書是一個被簽名的數據體,公鑰在數據體內部,簽名值在數據體尾部。X.509證書的格式如表1所示。

表1:證書結構圖

通過第三小節的分析,可知X.509 證書是一個已簽名的數據結構,用于將公鑰綁定到實體,X.509 證書的ASN.1 語法表示如下:

其中待簽名域的ASN.1 語法表示如下:

上述結構體中的每個字段都有ASN.1 的基本語法組成。

版本號:版本號為固定值,目前有V1,V2,V3。ASN.1語法表示為CertificateVersion :: = INTEGER {v1(0),v2(1),v3(2)}。

序列號:一個證書唯一有一個序列號,由證書頒發機構產生。ASN.1 語法表示為CertificateSerialNumber :: =INTEGER。

簽名算法識別符:標識本證書所用的簽名算法。ASN.1語法表示為

發行者名稱:證書頒發機構的名稱。ASN.1 語法表示為

有效期:有效期表示證書的開始使用期限和使用截止期限。ASN.1 語法表示為

主題名稱:證書持有者的名稱。ASN.1 語法表示為

主題公鑰信息:包含用戶的公鑰數據和使用此公鑰數據使用的算法。ASN.1 語法表示為

發行者唯一標識符:證書頒發者的唯一標識符,通過此標識符判定證書是否來自于合法的證書簽發機關。

主題唯一標識符:證書持有者的唯一標識符,通過此標識符可判定證書持有者是否合法。

擴展:擴展字段按需填寫,對證書擴展域的定義主要集中在四個方面:密鑰及其策略擴展、屬性擴展、證書路徑約束擴展、CRL 分布點擴展。

簽名:證書簽發機關使用自身的私鑰對待簽名域進行簽名。

5 證書系統的設計與實現

證書簽發系統的設計實現就是把證書ASN.1 語法結構表示通過代碼編碼的方式實現。在編碼過程中,設計了前端UI 界面,用于證書簽發操作員根據證書簽發要素輸入證書基本信息;設計了證書管理中間件,用于接收前端UI 界面寫入的證書信息并處理,并且把簽發好的證書信息存入數據庫中和推送到前端UI 界面用于操作員下載;設計了基礎層軟件接口,此部分功能是證書簽發的核心,負責把ASN.1定義的數據類型,通過編碼實現證書的DER 編碼格式。

在系統設計過程中,通過軟件編程,把前端UI 界面、證書管理中間件、基礎層軟件接口三部分內容組合為一個完整的軟件工程。三部分軟件通過接口互相調用,在保證軟件軟件接口和軟件框架不變的情況下,通過開發軟件源代碼,能根據實際需求對軟件功能進行動態擴展,以滿足不同場景下的使用。

5.1 應用層軟件接口設計-證書管理中間件

證書管理中間件的設計包含證書版本號選擇接口versionSelect()、序列號產生接口sriealNoGen()、簽名算法使用接口algorithmIdentifier()、發行者名稱傳入接口issuerSet()、有效期設置接口validityTime()、主題用戶傳入接口subjectSet()、擴展方案傳入接口extensionsSet()、公鑰數據傳入接口importPubKey()、非對稱密鑰產生接口genKeyParis()、待簽名區封裝接口certificateToBeSigned()、證書簽名接口signData()、證書封裝接口makeCA()。各個接口的層次關系如圖3所示。

圖3:證書簽發中間件接口層次關系

5.2 基礎層軟件接口設計

應用層軟件接口面向程序開發者在簽發證書時的直接調用,在應用層軟件接口的下層,不直接和開發者直接交互的軟件接口是基礎軟件層。基礎軟件層根據ASN.1 對X.509 證書對證書的格式定義,使用ASN.1定義的數據類型封裝X.509證書,因此基礎軟件層的主要功能是把ASN.1 定義的數據類型通過程序編碼實現,程序在編寫的過程中遵循“TLV”編碼格式。基礎軟件中針對ASN.1 基本類型的基礎軟解定義接口有TLV_BIT_STRING()、TLV_BOOLEAN()、TLV_INTEGER()、TLV_NULL()、TLV_ OBJECT IDENTIFIER()、TLV_ OCTET STRING(),字符串類型軟件接口有TLV_BMPString()、TLV_ IA5String()、TLV_ PrintableString()、TLV_ TeletexString()、TLV_ UTF8String(),構造類型軟件接口 為TLV_SEQUENCE()、TLV_SEQUENCE_OF()、TLV_SET()、TLV_SET_OF()和TLV_ CHOICE()。每個基本類型軟件接口對應ASN.1 定義的數據類型,這些基礎軟件接口就猶如大廈的一磚一瓦一樣,構成了X.509 證書的基礎。

5.3 證書簽發系統設計

圖3的證書簽發中間件接口對上向證書簽發應用層軟件提供面向對象的接口化調用,對下調用基礎軟件接口,讓上層應用軟件可以根據不同的證書簽發需求簽發不同的DER格式編碼的數字證書,此程序設計既支持用戶使用開源的密碼算法簽發X.509 數字證書,又支持用戶自己定義密碼算法簽發X.509 數字證書,軟件接口簡單易用,又靈活多變,可以滿足科研、企業內網或者互聯網企業自己構建內部可信的數字證書管理系統。軟件接口調用如圖4所示。

圖4:軟件接口調用關系

在證書簽發系統的設計中,需要首先建立一個CA 簽發中心,CA 簽發中心對不同的用戶簽發一個證書鏈,證書鏈包含CA 中心的根證書和用戶證書。在用戶使用證書進行身份認證或者加密時,用戶只需要使用自身存儲的CA 中心根證書來驗證對方的用戶證書就可以證明對方用戶的可信。具體流程如圖5所示。

圖5:證書簽發系統的設計

6 結束語

本文通過對ASN.1 標準的研究和分析,分解出X.509 數字證書的格式和編碼方式,結合公鑰密碼技術,設計出一套實用化的輕量級證書簽發系統。本軟件可操作性強,代碼結構簡單,通過對軟件的有限修改,可以設計出針對不同場景下的證書簽發系統,為科研機構或者企業用戶可信通信提供了極大的便利。

主站蜘蛛池模板: 亚洲 成人国产| 色婷婷电影网| 国产AV无码专区亚洲精品网站| 欧美精品亚洲日韩a| 国产又黄又硬又粗| 人妻丝袜无码视频| 亚洲午夜天堂| 国产一级在线观看www色| 韩国v欧美v亚洲v日本v| 国产欧美在线观看视频| 精品无码人妻一区二区| 午夜精品久久久久久久无码软件 | 毛片免费高清免费| 久久精品丝袜| 精品99在线观看| 欧美a在线| 老司机精品99在线播放| 欧美日韩国产高清一区二区三区| 日韩高清一区 | 亚洲精品欧美日本中文字幕| 人人妻人人澡人人爽欧美一区| jizz在线观看| 亚洲成AV人手机在线观看网站| 26uuu国产精品视频| 国内自拍久第一页| 女人18毛片一级毛片在线| 996免费视频国产在线播放| 国产精品永久久久久| 三级视频中文字幕| 亚洲成在线观看| 日本道中文字幕久久一区| 免费一级毛片完整版在线看| 福利一区在线| 激情乱人伦| 毛片在线播放a| 亚洲精品国偷自产在线91正片| 青青青国产视频| 天天躁夜夜躁狠狠躁躁88| 亚洲中文制服丝袜欧美精品| 亚洲国产天堂在线观看| 尤物精品国产福利网站| 日本爱爱精品一区二区| 在线无码九区| 亚洲综合天堂网| 全部毛片免费看| 国产av无码日韩av无码网站| 拍国产真实乱人偷精品| 精品国产成人a在线观看| 青青青草国产| 国产亚洲欧美在线中文bt天堂 | 国产青榴视频| 欧美激情综合一区二区| 国产欧美日韩视频一区二区三区| 国产精品视频公开费视频| 暴力调教一区二区三区| 日韩精品资源| 特级精品毛片免费观看| 亚洲网综合| 亚洲无码电影| 91 九色视频丝袜| 91视频免费观看网站| 欧美亚洲国产一区| 亚洲中文精品久久久久久不卡| 综合五月天网| 中文字幕中文字字幕码一二区| 狠狠亚洲婷婷综合色香| 亚洲成在线观看| 日韩小视频在线观看| 国产精品福利尤物youwu| 永久在线精品免费视频观看| JIZZ亚洲国产| 波多野结衣视频一区二区| 国产成人一级| 日韩在线播放欧美字幕| 亚洲欧美日韩中文字幕在线一区| 国产女人在线视频| 在线精品视频成人网| 18禁影院亚洲专区| 国产女人综合久久精品视| 在线观看亚洲人成网站| 亚洲中字无码AV电影在线观看| 精品亚洲欧美中文字幕在线看|