5-3 OpenSSL 命令語法
5-3-1 命令格式 OpenSSL 主要操作命令是 openssl,其語法如下:
其中 command 包含有對稱加密演算法、訊息摘要、公開鑰匙、、等等可執行的密碼系統命令;command_opts 與 command_args 是針對前項命令所需的選項與參數。執行 openssl 命令有兩種方式,一則直接執行如下:
另一種方法是,執行 openssl 使其進入交談式運作模式,再輸入密碼系統命令,操作如下:
5-3-2 通行碼輸入 執行密碼命令時,總是離不開通行碼(Password)輸入。譬如,執行簽署文件命令時,則需要輸入通行碼,方可取得私有鑰匙執行該命令;或是由私有鑰匙文件中取得公開鑰匙,也需要輸入通行碼。但該通行碼也可能運用於密碼系統的加密或解密鑰匙。由命令行輸入通行碼的途徑有:
5-3-3 訊息格式 密碼系統的輸入/輸出訊息需要一套標準編碼格式,才可以在不同資訊系統之間流通,OpenSSL 採用 OSI 的 ASN.1(Abstract Syntax Notation One)標準。ASN.1 是一種結構化的數字描述語言,包含了資料描述語言(ISO 8824)與資料編碼規則(ISO 8825)兩部份。密碼套件輸入/輸出訊息大多是二進位資料檔案,或是經加密處理過的資料訊息,如果沒利用共通標準的包裝與編碼格式,可能很難流通於不同系統之間。譬如 X.509 數位憑證、數位簽章碼、訊息確認碼、、等皆是如此。 ASN.1 提供了多種資料編碼方法,包括有 BER、DER、PER 與 XER 等。這些編碼方法制定了將數字轉換成應用系統可以處理、儲存與傳輸的二進位格式,目前最普遍使用的是 BER(Basic Encode Rules)編碼規範。資料經過 ASN.1 BER 編碼後,僅將原來資料型態轉換為 BER 編碼格式,如此並無法直接流通於不同系統之間。 有了標準編碼方法(ASN.1 BER)外,吾人還需要一套標準化的訊息包裝方法,才能將電子資料(如 X.509 憑證)流通於不同系統之間。標準封裝方式除了需考慮訊息格式的共通性外,也須考慮到電子文件本身的隱密性。為了達成上述目的,吾人將流通電子文件包裝成數位信封格式,它除了具備標準封裝格式外,也具有訊息確認(MIC 功能)與隱密性(Encrypt 功能),目前較流行的封裝規範有 PKCS #7、PGP(本書第 12 章介紹) 與 PEM 格式。 『增強隱密郵件』(Privacy Enhanced Mail, PEM,RFC 1421 ~ 1424)包含安全性郵件機制與信封封裝格式。PEM 利用資料編碼轉換與數位郵件封裝兩大步驟,來建立安全性郵件。其中,資料編碼轉換利用下列四個步驟來達成:
吾人可將 PEM 的編碼過程表示如下: Transmit_form = Base64 (Encrypt (DER (Loacl_form))) 接收端收到訊息後,也反向將傳輸格式轉換回原來本地格式,如下: Local_form = de_DER (Decipher (de_Base64(Transmit_form))) 其中,de_ 表示該編碼器的反向轉換。 將訊息編碼轉換,接著需將它封裝為數位信封,大致上都採用 S/MIME 封裝技巧。本書引用 RFC 1421 範例,如下:
|
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|