OpenSSL是什麼?

  OpenSSL是爲網絡通信提供安全及數據完整性的一種安全協議,囊括了主要的密碼算法、常用的密鑰和證書封裝管理功能以及SSL協議,並提供了豐富的應用程序供測試或其它目的使用。

  SSL是Secure Socket Layer(安全套接層協議)的縮寫,可以在Internet上提供祕密性傳輸。Netscape公司在推出第一個Web瀏覽器的同時,提出了SSL協議標準。其目標是保證兩個應用間通信的保密性和可靠性,可在服務器端和用戶端同時實現支持。已成爲Internet上保密通訊的工業標準。安全套接層協議能使用戶/服務器應用之間的通信不被攻擊者竊聽,並且始終對服務器進行認證,還可選擇對用戶進行認證。SSL協議要求建立在可靠的傳輸層協議(TCP)之上。SSL協議的優勢在於它是與應用層協議獨立無關的,高層的應用層協議(例如:HTTP,FTP,TELNET等)能透明地建立於SSL協議之上。SSL協議在應用層協議通信之前就已經完成加密算法、通信密鑰的協商及服務器認證工作。在此之後應用層協議所傳送的數據都會被加密,從而保證通信的私密性。通過以上敘述,SSL協議提供的安全信道有以下三個特性: 1、數據的保密性 信息加密就是把明碼的輸入文件用加密算法轉換成加密的文件以實現數據的保密。加密的過程需要用到密鑰來加密數據然後再解密。沒有了密鑰,就無法解開加密的數據。數據加密之後,只有密鑰要用一個安全的方法傳送。加密過的數據可以公開地傳送。 2、數據的完整性 加密也能保證數據的一致性。例如:消息驗證碼(MAC),能夠校驗用戶提供的加密信息,接收者可以用MAC來校驗加密數據,保證數據在傳輸過程中沒有被篡改過。 3、安全驗證 加密的另外一個用途是用來作爲個人的標識,用戶的密鑰可以作爲他的安全驗證的標識。SSL是利用公開密鑰的加密技術(RSA)來作爲用戶端與服務器端在傳送機密資料時的加密通訊協定。

  OpenSSL包含一個命令行工具用來完成OpenSSL庫中的所有功能,更好的是,它可能已經安裝到你的系統中了。

  OpenSSL是一個強大的安全套接字層密碼庫,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不應該只將其作爲一個庫來使用,它還是一個多用途的、跨平臺的密碼工具。

  特點:

  衆多的密碼算法、公鑰基礎設施標準以及SSL協議,或許這些有趣的功能會讓你產生實現所有這些算法和標準的想法。果真如此,在對你表示敬佩的同時,還是忍不住提醒你:這是一個令人望而生畏的過程。這個工作不再是簡單的讀懂幾本密碼學專著和協議文檔那麼簡單,而是要理解所有這些算法、標準和協議文檔的每一個細節,並用你可能很熟悉的C語言字符一個一個去實現這些定義和過程。我們不知道你將需要多少時間來完成這項有趣而可怕的工作,但肯定不是一年兩年的問題。

  首先,應該感謝Eric A. Young和Tim J. Hudson,他們自1995年開始編寫後來具有巨大影響的OpenSSL軟件包,更令我們高興的是,這是一個沒有太多限制的開放源代碼的軟件包,這使得我們可以利用這個軟件包做很多事情。Eric A. Young 和Tim J. Hudson是加拿大人,後來由於寫OpenSSL功成名就之後就到大公司裏賺大錢去了。1998年,OpenSSL項目組接管了OpenSSL的開發工作,並推出了OpenSSL的0.9.1版,到目前爲止,OpenSSL的算法已經非常完善,對SSL2.0、SSL3.0以及TLS1.0都支持。

  OpenSSL採用C語言作爲開發語言,這使得OpenSSL具有優秀的跨平臺性能,這對於廣大技術人員來說是一件非常美妙的事情,可以在不同的平臺使用同樣熟悉的東西。OpenSSL支持Linux、Windows、BSD、Mac、VMS等平臺,這使得OpenSSL具有廣泛的適用性。但習慣C語言總比使用C++重新寫一個跟OpenSSL相同功能的軟件包輕鬆不少。

  功能:

  基本功能

  OpenSSL整個軟件包大概可以分成三個主要的功能部分:密碼算法庫、SSL協議庫以及應用程序。OpenSSL的目錄結構自然也是圍繞這三個功能部分進行規劃的。

  作爲一個基於密碼學的安全開發包,OpenSSL提供的功能相當強大和全面,囊括了主要的密碼算法、常用的密鑰和證書封裝管理功能以及SSL協議,並提供了豐富的應用程序供測試或其它目的使用。

  輔助功能

  BIO機制是OpenSSL提供的一種高層IO接口,該接口封裝了幾乎所有類型的IO接口,如內存訪問、文件訪問以及Socket等。這使得代碼的重用性大幅度提高,OpenSSL提供API的複雜性也降低了很多。

  OpenSSL對於隨機數的生成和管理也提供了一整套的解決方法和支持API函數。隨機數的好壞是決定一個密鑰是否安全的重要前提。

  OpenSSL還提供了其它的一些輔助功能,如從口令生成密鑰的API,證書籤發和管理中的配置文件機制等等。如果你有足夠的耐心,將會在深入使用OpenSSL的過程慢慢發現很多這樣的小功能,讓你不斷有新的驚喜。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章