複製鏈接
請複製以下鏈接發送給好友

openssl

鎖定
計算機網絡上,OpenSSL是一個開放源代碼軟件包,應用程序可以使用這個包來進行安全通信,避免竊聽,同時確認另一端連接者的身份。這個包廣泛被應用在互聯網的網頁服務器上。
軟件名稱
開放式安全套接層協議
軟件平台
網絡傳輸層
最近更新時間
2017年10月2日
軟件授權
開源
外文名
Open Secure Sockets Layer
簡    稱
OpenSSL

openssl背景技術

SSL是Secure Sockets Layer(安全套接層協議)的縮寫,可以在Internet上提供秘密性傳輸。Netscape公司在推出第一個Web瀏覽器的同時,提出了SSL協議標準。其目標是保證兩個應用間通信的保密性和可靠性,可在服務器端和用户端同時實現支持。已經成為Internet上保密通訊的工業標準。
SSL能使用户/服務器應用之間的通信不被攻擊者竊聽,並且始終對服務器進行認證,還可選擇對用户進行認證。SSL協議要求建立在可靠的傳輸層協議(TCP)之上。SSL協議的優勢在於它是與應用層協議獨立無關的,高層的應用層協議(例如:HTTPFTPTELNET等)能透明地建立於SSL協議之上。SSL協議在應用層協議通信之前就已經完成加密算法、通信密鑰的協商及服務器認證工作。在此之後應用層協議所傳送的數據都會被加密,從而保證通信的私密性。

openssl特點

openssl安全信道特性

數據保密性
信息加密就是把明碼的輸入文件用加密算法轉換成加密的文件以實現數據的保密。加密的過程需要用到密鑰來加密數據然後再解密。沒有了密鑰,就無法解開加密的數據。數據加密之後,只有密鑰要用一個安全的方法傳送。加密過的數據可以公開地傳送。
加密也能保證數據的一致性。例如:消息驗證碼(MAC),能夠校驗用户提供的加密信息,接收者可以用MAC來校驗加密數據,保證數據在傳輸過程中沒有被篡改過。
安全驗證
加密的另外一個用途是用來作為個人的標識,用户的密鑰可以作為他的安全驗證的標識。SSL是利用公開密鑰加密技術RSA)來作為用户端與服務器端在傳送機密資料時的加密通訊協定。
OpenSSL包含一個命令行工具用來完成OpenSSL庫中的所有功能,更好的是,它可能已經安裝到你的系統中了。
OpenSSL是一個強大的安全套接字層密碼庫,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不應該只將其作為一個庫來使用,它還是一個多用途的、跨平台的密碼工具。

openssl開源特點

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功能

openssl基本功能

OpenSSL整個軟件包大概可以分成三個主要的功能部分:SSL協議庫、應用程序以及密碼算法庫。OpenSSL的目錄結構自然也是圍繞這三個功能部分進行規劃的。
作為一個基於密碼學的安全開發包,OpenSSL提供的功能相當強大和全面,囊括了主要的密碼算法、常用的密鑰和證書封裝管理功能以及SSL協議,並提供了豐富的應用程序供測試或其它目的使用。

openssl輔助功能

BIO機制是OpenSSL提供的一種高層IO接口,該接口封裝了幾乎所有類型的IO接口,如內存訪問、文件訪問以及Socket等。這使得代碼的重用性大幅度提高,OpenSSL提供API的複雜性也降低了很多。
OpenSSL對於隨機數的生成和管理也提供了一整套的解決方法和支持API函數。隨機數的好壞是決定一個密鑰是否安全的重要前提。
OpenSSL還提供了其它的一些輔助功能,如從口令生成密鑰的API,證書籤發和管理中的配置文件機制等等。如果你有足夠的耐心,將會在深入使用OpenSSL的過程慢慢發現很多這樣的小功能,讓你不斷有新的驚喜。

openssl算法

openssl密鑰證書管理

密鑰和證書管理是PKI的一個重要組成部分,OpenSSL為之提供了豐富的功能,支持多種標準。
首先,OpenSSL實現了ASN.1的證書和密鑰相關標準,提供了對證書、公鑰私鑰、證書請求以及CRL等數據對象的DER、PEM和BASE64的編解碼功能。OpenSSL提供了產生各種公開密鑰對和對稱密鑰的方法、函數和應用程序,同時提供了對公鑰和私鑰的DER編解碼功能。並實現了私鑰的PKCS#12和PKCS#8的編解碼功能。OpenSSL在標準中提供了對私鑰的加密保護功能,使得密鑰可以安全地進行存儲和分發。
在此基礎上,OpenSSL實現了對證書的X.509標準編解碼、PKCS#12格式的編解碼以及PKCS#7的編解碼功能。並提供了一種文本數據庫,支持證書的管理功能,包括證書密鑰產生、請求產生、證書籤發、吊銷和驗證等功能。
事實上,OpenSSL提供的CA應用程序就是一個小型的證書管理中心(CA),實現了證書籤發的整個流程和證書管理的大部分機制。
5.SSL和TLS協議
OpenSSL實現了SSL協議的SSLv2和SSLv3,支持了其中絕大部分算法協議。OpenSSL也實現了TLSv1.0,TLS是SSLv3的標準化版,雖然區別不大,但畢竟有很多細節不盡相同。
雖然已經有眾多的軟件實現了OpenSSL的功能,但是OpenSSL裏面實現的SSL協議能夠讓我們對SSL協議有一個更加清楚的認識,因為至少存在兩點:一是OpenSSL實現的SSL協議是開放源代碼的,我們可以追究SSL協議實現的每一個細節;二是OpenSSL實現的SSL協議是純粹的SSL協議,沒有跟其它協議(如HTTP)協議結合在一起,澄清了SSL協議的本來面目。

openssl對稱加密

OpenSSL一共提供了8種對稱加密算法,其中7種是分組加密算法,僅有的一種流加密算法是RC4。這7種分組加密算法分別是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持電子密碼本模式(ECB)、加密分組鏈接模式(CBC)、加密反饋模式(CFB)和輸出反饋模式(OFB)四種常用的分組密碼加密模式。其中,AES使用的加密反饋模式(CFB)和輸出反饋模式(OFB)分組長度是128位,其它算法使用的則是64位。事實上,DES算法裏面不僅僅是常用的DES算法,還支持三個密鑰和兩個密鑰3DES算法。

openssl非對稱加密

OpenSSL一共實現了4種非對稱加密算法,包括DH算法、RSA算法、DSA算法橢圓曲線算法(EC)。DH算法一般用於密鑰交換。RSA算法既可以用於密鑰交換,也可以用於數字簽名,當然,如果你能夠忍受其緩慢的速度,那麼也可以用於數據加密DSA算法則一般只用於數字簽名。
信息摘要
OpenSSL實現了5種信息摘要算法,分別是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事實上包括了SHA和SHA1兩種信息摘要算法。此外,OpenSSL還實現了DSS標準中規定的兩種信息摘要算法DSS和DSS1。

openssl漏洞

openssl發現

2014年4月8日,OpenSSL的大漏洞曝光。這個漏洞被曝光的黑客命名為“heartbleed”,意思是“心臟流血”——代表着最致命的內傷。利用該漏洞,黑客坐在自己家裏電腦前,就可以實時獲取到約30%https開頭網址的用户登錄賬號密碼,包括大批網銀、購物網站、電子郵件等。 [1]  [1]  [2] 
“心臟流血”首先被谷歌(微博)研究員尼爾·梅塔(Neel Mehta)發現,它可從特定服務器上隨機獲取64k的工作日誌,由於數據是隨機獲取的,所以攻擊者也不一定可以獲得想要的信息,因此整個過程如同釣魚,攻擊可能一次次持續進行,大量敏感數據可能泄露。由於一台服務器的密鑰也記錄在其工作日誌中,並且在大量數據中可被輕易辨別,因此將是首當其衝的獲取目標,獲取密鑰後,攻擊者可以掌握某網站或服務的實時流量情況,甚至可以破解被加密的以往流量日誌。
安全專家介紹説,OpenSSL此漏洞堪稱網絡核彈,網銀、網購、網上支付、郵箱等眾多網站受其影響。無論用户電腦多麼安全,只要網站使用了存在漏洞的OpenSSL版本,用户登錄該網站時就可能被黑客實時監控到登錄賬號和密碼。
根據相關媒體的報導,研究人員發現OpenSSL漏洞遍及全球互聯網公司,併為其起了個形象的名字“心臟出血”,中國超過3萬台主機受波及,國內網站和安全廠商技術人員為檢查、搶修徹夜未眠。截至昨天,有超30%的主機已經修復,但技術人士稱,消費者敏感信息是否泄露還有待日後觀察。

openssl成因

此次漏洞的成因是OpenSSL Heartbleed模塊存在一個BUG,當攻擊者構造一個特殊的數據包,滿足用户心跳包中無法提供足夠多的數據會導致memcpy把SSLv3記錄之後的數據直接輸出,該漏洞導致攻擊者可以遠程讀取存在漏洞版本的OpenSSL服務器內存中長達64K的數據。
“心臟流血”這個名字聽起來有點誇張,但這個漏洞的威力似乎當得起它的名字。不管是從可能感染的電腦數量還是從可能被泄露的數據規模,“心臟流血”的破壞力都超過在2014年早些時候狠狠羞辱了蘋果公司的“GoToFail ”漏洞。“心臟流血”漏洞可以幫助黑客獲得打開服務器的密鑰,監聽服務器數據和流量。更糟糕的是,這並不是一個新的漏洞, “心臟流血”其實已經存在兩年了,但具體何時被人發現其危險性尚不得而知。

openssl補救措施

在各個網站尚未解決安全漏洞的近兩天,用户儘量不登錄或者少登錄涉及資金、個人隱私的網站或系統,已經多次登錄的用户請儘快修改密碼、綁定手機、設置支付密碼,最好採用手機令牌類軟件如號令手機令牌等,確保通過實時變化的動態口令保障賬號安全。
代碼安全審計機構NCC Group將開始參與到 OpenSSL 的代碼審計當中。NCC 首席安全工程師的描述,OpenSSL 已經對代碼進行了重構,新的代碼已經足夠穩定並且很快會取代現有版本。而 NCC 在代碼審計中將會專注於 TLS stacks 方面的安全問題,包含 protocol flow、state transitions 和 memory management。除 NCC Group 之外,其它學術機構、商業分析公司、認證機構和個人都會參與 OpenSSL 各方面代碼審計。

openssl漏洞攔截

備受關注的OpenSSL“心臟出血”漏洞有了最新進展:不法分子可以通過漏洞獲取網站私鑰,並通過盜取的證書偽造假冒網站,或可躲避一些安全軟件及安全瀏覽器的攔截。

openssl漏洞風險

此前曝出的“心血漏洞”由於影響範圍之廣而引起了國內互聯網業界及用户的極大關注。黑客可能利用“心臟出血”漏洞,攻擊網民的個人電腦,盜取賬號密碼、登陸認證cookies、網銀密鑰等私密數據。

openssl漏洞影響

據專家介紹,由於Windows上用OpenSSL的軟件很多,且多數使用自己安裝目錄下的 SSLeay32.dll 和 Libeay32.dll,沒有統一的升級管理機制,該漏洞可能會長期存在。
專家解釋,由於網站證書被認為是網址安全可信的標誌,因此黑客會利用漏洞盜取網站私鑰從而冒名頂替合格的網站證書。此種情況下,安全系統或殺毒軟件很可能不能判斷網站的真實性。
參考資料
  • 1.    Viega J, Messier M, Chandra P. Network security with openSSL: cryptography for secure communications[M]. " O'Reilly Media, Inc.", 2002.
  • 2.    Yilek S, Rescorla E, Shacham H, et al. When private keys are public: results from the 2008 Debian OpenSSL vulnerability[C]//Proceedings of the 9th ACM SIGCOMM Conference on Internet Measurement. ACM, 2009: 15-27.