開源世界的第一信息安全系統—OpenSSL

[開源項目之一]

                  開源世界的第一信息安全系統—OpenSSL

在Open Source的世界,除了家喻戶曉的linux及Mysql,PHP等外,恐怕要數OPenSSL最有名氣了。近年,對OpenSSL進行研究和開發的人不在少數,就連很多公司也開始“吸”開源軟件的血了。我也是在一個公司做安全項目時第一次遇到了SSL,於視線不由得轉向了OpenSSL。以下是我對OpenSSL的一些看法和認識。
OpenSSL項目是一個合作安全項目,它的目標是開發一個健壯的、商業級的、完整的開放源代碼的工具包,用強大的加密算法來實現安全的Socket層(Secure Sockets Layer,SSL v2/v3)和傳輸層的安全性(Transport Layer Security,TLS v1)。它包含了完整的加密算法,數字簽名算法及證書算法等。可以很好地保證數據的完整,保密和正確性。
OpenSSL可以和於商業用途,但是使用者應該考慮自己所使用的算法有沒有受到本國專利的限制。例如:
RSA Data Security在美國和日本擁有RSA和RC5算法的專利。必須和RSA Data Security聯繫以得到許可條例。其主頁是:http://www.rsa.com/
   RC4是RSA Data Security的商標,使用這個標誌必須得到RSA Data Security的許可。
   IDEA算法在澳大利亞、法國、德國、意大利、日本、荷蘭、西班牙、瑞典、瑞士、英國和美國受專利保護。如果要使用這個算法必須得到許可,其主頁是:http://www.ascom.ch/
OpenSSL是一個庫,它目前的版本是0.96你可以從http://www.openssl.org 下載最近的安裝程序及源代碼。它爲類似安全 web 服務器這樣的應用提供加密功能。OpenSSL帶有較完整的文檔及參考手冊(在openssl(1) 手冊頁 裏有描述.給開發人員使用的文檔正在寫.有幾個手冊頁已經可以用了;libcrypto 和 libssl 庫的概述在 crypto(3) 和 ssl(3)的手冊頁裏描述.OpenSSL 手冊頁安裝在/usr/local/ssl/man)。如果你在Linux下進行安全開發的話,你可能很容易就能將它安裝成功。如果你在windows下用vc,c++builder進行開發,配置相對煩一些,參考資料也相對少一些。使用時請仔細閱讀它提供的應用文檔.INSTALL文件解釋瞭如何安裝這個庫的問題.
    OpenSSL 包含一個可以用於執行加密功能的命令行工具.並且包含了大量的示例程序,這些示例很好地爲初學者提供了幫助。在 OpenSSL 庫中,相似的 API 模仿傳統的套接字調用,使用 SSL 上下文對象代替文件描述符。例如,傳統的寫入套接字的調用具有以下特徵:
size_t write(int file_descriptor, void *buf, size_t len)
OpenSSL 更改每個參數的類型,但每個參數的語義不變:
int SSL_write(SSL *socket_info, char *buf, int len)

實際上,除 SSL 對象之外,其它所有的類型與初始調用都是兼容的。理想情況下,開發者能夠對程序進行較小的修改,只需添加一些代碼從文件描述符初始化 SSL 上下文就可以了。
當然,OpenSSL還是存在一些問題就,比如:開發者要寫許多附加代碼才能使 OpenSSL 在多線程環境下工作。實際上,爲將這個庫集成到代碼中去,大多數開發組織花費的精力都比他們預計的要多的多,而結果有可能是一片混亂。
幸運的是Stunnel出現了。它可以將加密功能無縫添加到網絡連接中,而不會將您原來的代碼段基址搞亂。Stunnel 是一個程序,可以使用 OpenSSL 庫對任意 TCP 會話進行加密。它可以作爲服務器運行在程序外部。當然,Stunnel要求已經安裝了 OpenSSL。如今,Stuunel已被移植到了 Windows操作系統以及大多數 UNIX 平臺。


參考資料
 OpenSSL官方網站:www.openssl.org
 可從 http://www.stunnel.org/ 獲取 Stunnel
 中國UNIX:www.chinaunix.net
 Openssl專業論壇:openssl.126.com

 

發佈了35 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章