本文參考《PKI/CA 與數字證書技術大全》書籍,如有了解bug, 請大家指正。
ASN.1
目前北美、歐洲和日本等地使用的行動電話,都是基于TCAP消息協定的。TCAP消息協定中的消息是采用 ASN.1 描述的,使用了 BER 編碼規範,共同實作了行動電話的呼叫。
後來制定的有關地對空和地對地等通信協定都使用 ASN.1 描述的,并采用 PER 編碼規則。除此之外,ASN.1 和編碼規則還被聯邦快遞用于大量的傳輸資訊;還有很多大公司如 HP, IBM, SUN 等, 使用 ASN.1 描述其列印機列印業務管理的标準接口。有名的簡單網絡管理協定(SNMP) 就是用 ASN.1 對所有資料進行描述的。
ASN.1 是一種對分布計算機系統之間交換的資料消息進行抽象描述的規範化語言。
ASN.1 是一種國際标準,它為抽象資料結構的描述說明定義了一種記法。ASN.1 使用抽象描述法對各種程式設計語言定義的資料類型進行了重新定義,将所有資料分為兩類:
- 基礎類型 整型、布爾類型、字元類型和比特串類型等原子類型
- 結構類型 結構、連結清單和選擇類型
通過 ASN.1 抽象定義後的資料類型幾乎包括現實世界中存在的所有資料類型,具有相當的通用性。
ASN.1 編碼規則
ASN.1 編碼規則是把使用 ASN.1 語言說明的資料轉化為一種标準格式的系列規則,同時,保證轉換後的資料在任意作業系統中,隻要使用相同編碼規則的解碼器就可以解碼獲得原始資料。
ASN.1 的标準化編碼規則有如下幾種:
-
BER ( Basic Encoding Rules)
用于網際網路管理的簡單網絡管理協定(SNMP), 互傳電子郵件的消息處理服務(MHS),及用于控制計算機和電話傳遞資訊使用的 TSAPI 等。
-
DER (Distinguished Encoding Rules)
是 BER 的一種特殊形式,用于具有安全特性的應用系統,如涉及加密技術和要求編解碼資訊唯一性的系統,如電子商務等
-
PER (Packed Encoding Rules)
最近制定的系列編碼規則,使用有效的算法對資料編碼,獲得比DER更快更緊湊的資料,是以PER常常被應用于寬帶及CPU餓死狀态的應用系統,如空中交通管制和視聽通信等領域
-
CER (Canonical Encoding Rules)
是 BER 編碼的另一種特殊形式,是對大資料實作編碼,而在資料還未完全獲得之前就可進行編碼。但由于業界認定在安全傳輸中最好的編碼是 DER 編碼,是以CER未廣泛使用。
X.500 協定
X.500 是國際電信聯盟 (ITU-T) 定義的目錄标準,它主要充當商業産品的一種模型。設計 X.500 的目的是 OSI 協定族,但是 TCP/IP 卻成為了實際的網絡協定,是以,如今大多數目錄服務都以 X.500 為模型并設計用于在 TCP/IP 上運作。
X.500 是一個協定族,由一系列的概念和協定組成,包括:
- x.501 模型定義,定義目錄服務的基本模型和概念
- x.509 認證架構,定義如何處理目錄服務中的客戶和服務認證
- x.511 抽象服務定義,定義 x.500 提供的功能性服務
- x.518 分布式操作過程定義,定義如何跨平台處理目錄服務
- x.519 協定規範, 定義了 x.500 協定,包括 DAP(Directory Access Protocol), DSP(Directory System Protocol), DOP(Directory Operator Protocal), DISP (Directory Information Shadowing Protocol)。
- x.520 定義屬性類型要求
- x.521 定義對象類型
- x.525 定義如何在目錄伺服器之間複制内容
DER 編碼示例:X.501 Name 類型
如下圖:

X.501 Name 類型
PKI 中證書,數字信封等均使用 ASN.1 類進行定義的,即使用 DER 規則進行編碼的。