資訊與網路安全技術 第 五章 密碼系統實習環境 - OpneSSL  上一頁      下一頁

 

5-3 OpenSSL 命令語法

內容:

5-3-1 命令格式

OpenSSL 主要操作命令是 openssl,其語法如下

> openssl command [ command_opts ] [ command_args ]

其中 command 包含有對稱加密演算法、訊息摘要、公開鑰匙、、等等可執行的密碼系統命令;command_opts command_args 是針對前項命令所需的選項與參數。執行 openssl 命令有兩種方式,一則直接執行如下:

H:\SecureLab\study>type data.txt

012345678901234567890123456789

 

H:\SecureLab\study>openssl sha1 data.txt

SHA1(data.txt)= 3b67544bfd2d6732fad2aabac32e692b1ae9de13

另一種方法是,執行 openssl 使其進入交談式運作模式,再輸入密碼系統命令,操作如下:

H:\SecureLab\study>openssl

OpenSSL> sha1 data.txt

SHA1(data.txt)= 3b67544bfd2d6732fad2aabac32e692b1ae9de13

OpenSSL>

5-3-2 通行碼輸入

執行密碼命令時,總是離不開通行碼(Password)輸入。譬如,執行簽署文件命令時,則需要輸入通行碼,方可取得私有鑰匙執行該命令;或是由私有鑰匙文件中取得公開鑰匙,也需要輸入通行碼。但該通行碼也可能運用於密碼系統的加密或解密鑰匙。由命令行輸入通行碼的途徑有:

  • 提示輸入(-passin stdin:執行命令後,系統會出現要求讀入通行碼的交談語句。

  • 直接輸入(-passin pass:123456:命令句中直接給予通行碼。

  • 環境變數輸入(-passin env:passwdvar:將通行碼儲存於某一環境變數內(passwdvar),執行命令時再由該環境變數取出。。

  • 檔案輸入(-passin file:filename:將通行碼儲存於某一檔案內(filename),執行命令時再由該檔案內取出。

5-3-3 訊息格式

密碼系統的輸入/輸出訊息需要一套標準編碼格式,才可以在不同資訊系統之間流通,OpenSSL 採用 OSI ASN.1Abstract Syntax Notation One)標準ASN.1 是一種結構化的數字描述語言,包含了資料描述語言(ISO 8824)與資料編碼規則(ISO 8825)兩部份。密碼套件輸入/輸出訊息大多是二進位資料檔案,或是經加密處理過的資料訊息,如果沒利用共通標準的包裝與編碼格式,可能很難流通於不同系統之間。譬如 X.509 數位憑證、數位簽章碼、訊息確認碼、、等皆是如此。

ASN.1 提供了多種資料編碼方法,包括有  BERDERPER   XER 。這些編碼方法制定了將數字轉換成應用系統可以處理、儲存與傳輸的二進位格式,目前最普遍使用的是 BERBasic Encode Rules)編碼規範。資料經過 ASN.1 BER 編碼後,僅將原來資料型態轉換為 BER 編碼格式,如此並無法直接流通於不同系統之間。

有了標準編碼方法(ASN.1 BER)外,吾人還需要一套標準化的訊息包裝方法,才能將電子資料(如 X.509 憑證)流通於不同系統之間。標準封裝方式除了需考慮訊息格式的共通性外,也須考慮到電子文件本身的隱密性。為了達成上述目的,吾人將流通電子文件包裝成數位信封格式,它除了具備標準封裝格式外,也具有訊息確認(MIC 功能)與隱密性(Encrypt 功能),目前較流行的封裝規範有 PKCS #7PGP(本書第 12 章介紹) PEM 格式。

『增強隱密郵件』(Privacy Enhanced Mail, PEMRFC 1421 ~ 1424包含安全性郵件機制與信封封裝格式。PEM 利用資料編碼轉換與數位郵件封裝兩大步驟,來建立安全性郵件。其中,資料編碼轉換利用下列四個步驟來達成:

  • 步驟 1:建立原始格式(local form)之訊息。

  • 步驟 2利用某種標準編碼方法(如 ASN.1 DER 編碼),將原始格式訊息轉換成共通文件格式。

  • 步驟 3利用對稱加密演算法(如 DES AES),對已完成編碼的共通文件加密。

  • 步驟 4利用 BASE64 編碼方法(本書 12-4-2 節介紹),對已加密文件重新編碼。

吾人可將  PEM 的編碼過程表示如下:

Transmit_form = Base64 (Encrypt (DER (Loacl_form)))

接收端收到訊息後,也反向將傳輸格式轉換回原來本地格式,如下:

Local_form = de_DER (Decipher (de_Base64(Transmit_form)))

 其中,de_ 表示該編碼器的反向轉換。

將訊息編碼轉換,接著需將它封裝為數位信封,大致上都採用 S/MIME 封裝技巧。本書引用 RFC 1421 範例,如下:

-----BEGIN PRIVACY-ENHANCED MESSAGE----- 
   Proc-Type: 4,ENCRYPTED 
   Content-Domain: RFC822 
   DEK-Info: DES-CBC,F8143EDE5960C597 
   Originator-ID-Symmetric: linn@zendia.enet.dec.com,, 
   Recipient-ID-Symmetric: linn@zendia.enet.dec.com,ptf-kmc,3 
   Key-Info: DES-ECB,RSA-MD2,9FD3AAD2F2691B9A, 
             B70665BB9BF7CBCDA60195DB94F727D3 
   Recipient-ID-Symmetric: pem-dev@tis.com,ptf-kmc,4 
   Key-Info: DES-ECB,RSA-MD2,161A3F75DC82EF26, 
             E2EF532C65CBCFF79F83A2658132DB47 
 
   LLrHB0eJzyhP+/fSStdW8okeEnv47jxe7SJ/iN72ohNcUk2jHEUSoH1nvNSIWL9M 
   8tEjmF/zxB+bATMtPjCUWbz8Lr9wloXIkjHUlBLpvXR0UrUzYbkNpk0agV2IzUpk 
   J6UiRRGcDSvzrsoK+oNvqu6z7Xs5Xfz5rDqUcMlK1Z6720dcBWGGsDLpTpSCnpot 
   dXd/H5LMDWnonNvPCwQUHt== 
   -----END PRIVACY-ENHANCED MESSAGE----- 

 

主講人:粘添壽博士

 

資訊與網路安全技術