1. 程式人生 > >2018-2019-1 20165316 實驗五 通訊協議設計

2018-2019-1 20165316 實驗五 通訊協議設計

2018-2019-1 20165316 實驗五 通訊協議設計

OpenSSL簡介

OpenSSL是一個SSL協議的開源實現,採用C語言作為開發語言,具備了跨平臺的能力,支援Unix/Linux、Windows、Mac OS等多種平臺。

OpenSSL最早的版本在1995年釋出,1998年後開始由OpenSSL專案組維護和開發。當前最新的版本是1.1.0 alpha版本,完全實現了對SSLv1、SSLv2、SSLv3和TLS的支援。。目前,OpenSSL已經得到了廣泛的應用,許多型別的軟體中的安全部分都使用了OpenSSL的庫,如VOIP的OpenH323協議、Apache伺服器、Linux安全模組等等。

OpenSSL整個軟體包大概可以分成三個主要的功能部分:

  • 密碼演算法庫
  • SSL協議庫
  • 應用程式

OpenSSL原始碼的目錄結構也是圍繞這三個功能部分進行規劃的。

密碼演算法庫是一個強大完整的密碼演算法庫,它是OpenSSL的基礎部分,也是很值得一般密碼安全技術人員研究的部分,它實現了目前大部分主流的密碼演算法和標準。主要包括對稱演算法、非對稱演算法、雜湊演算法、數字簽名和認證、X509數字證書標準、PKCS12、PKCS7等標準。其他兩個功能部分SSL協議和應用程式都是基於這個庫開發的。

在密碼演算法庫的基礎上實現的,SSL協議部分完全實現和封裝了SSL協議的三個版本和TLS協議。使用協議庫,你完全可以建立一個SSL伺服器和SSL客戶端。

應用程式是基於密碼演算法庫和SSL協議庫實現的命令,熟悉OpenSSL可以從使用這些應用程式開始。應用程式覆蓋了密碼技術的應用,主要包括了各種演算法的加密程式和各種型別金鑰的產生程式(如RSA、Md5、Enc等等)、證書籤發和驗證程式(如Ca、X509、Crl等)、SSL連線測試程式(如S_client和S_server等)以及其它的標準應用程式(如Pkcs12和Smime等)。

Linux下OpenSSL的安裝與使用

  • 首先,我按照狄惟佳學姐的部落格,進行操作,發現最後一步找不到檔案 libssl.so.3 可能是新版本的 bug 導致 openssl 命令無法使用,同時無法使用網上那些找不到 libssl.so.1.1 的方法解決。
  • 於是我又按照婁老師的部落格進行安裝,安裝版本如下,安裝完成後執行 sudo apt-get install libssl-dev 命令,這樣又把庫檔案給補上了,最後實驗完成。

混合密碼系統防護

完成上述準備後,按照狄惟佳學姐的部落格做就可以。