十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問題一站解決
創(chuàng)新互聯(lián)是一家集網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、網(wǎng)站頁(yè)面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站建設(shè)公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁(yè)面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠(chéng)信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場(chǎng)環(huán)境中,互促共生。
SSL,Security Socket Layer,是一個(gè)安全傳輸協(xié)議,在Internet網(wǎng)上進(jìn)行數(shù)據(jù)保護(hù)和身份確認(rèn)。OpenSSL是一個(gè)開放源代碼的實(shí)現(xiàn)了SSL及相關(guān)加密技術(shù)的軟件包,由加拿大的Eric Yang等發(fā)起編寫的。OpenSSL的官方網(wǎng)站為http://www.openssl.org/,源代碼可以從ftp://ftp.openssl.org/source/上下載,也可以從OpenSSL的鏡像網(wǎng)站下載。
SSL是Secure Socket Layer(安全套接層協(xié)議)的縮寫,可以在Internet上提供秘密性傳輸。Netscape公司在推出第一個(gè)Web瀏覽器的同時(shí),提出了SSL協(xié)議標(biāo)準(zhǔn),目前已有3.0版本。SSL采用公開密鑰技術(shù)。其目標(biāo)是保證兩個(gè)應(yīng)用間通信的保密性和可靠性,可在服務(wù)器端和用戶端同時(shí)實(shí)現(xiàn)支持。
利用公開密鑰技術(shù)的SSL協(xié)議已成為Internet上保密通訊的工業(yè)標(biāo)準(zhǔn)。安全套接層協(xié)議能使C/S應(yīng)用之間的通信不被***者竊聽,并且始終對(duì)服務(wù)器進(jìn)行認(rèn)證,還可選擇對(duì)用戶進(jìn)行認(rèn)證。SSL協(xié)議要求建立在可靠的傳輸層協(xié)議(TCP)之上。SSL協(xié)議的優(yōu)勢(shì)在于它是與應(yīng)用層協(xié)議獨(dú)立無(wú)關(guān)的,高層的應(yīng)用層協(xié)議(例如:HTTP,F(xiàn)TP,TELNET等)能透明地建立于SSL協(xié)議之上。
SSL協(xié)議在應(yīng)用層協(xié)議通信之前就已經(jīng)完成加密算法、通信密鑰的協(xié)商及服務(wù)器認(rèn)證工作。在此之后應(yīng)用層協(xié)議所傳送的數(shù)據(jù)都會(huì)被加密,從而保證通信的私密性。通過以上敘述,SSL協(xié)議提供的安全信道有以下三個(gè)特性:
1.數(shù)據(jù)的保密性
信息加密就是把明碼的輸入文件用加密算法轉(zhuǎn)換成加密的文件以實(shí)現(xiàn)數(shù)據(jù)的保密。加密的過程需要用到密匙來(lái)加密數(shù)據(jù)然后再解密。沒有了密鑰,就無(wú)法解開加密的數(shù)據(jù)。數(shù)據(jù)加密之后,只有密匙要用一個(gè)安全的方法傳送。加密過的數(shù)據(jù)可以公開地傳送。
2.數(shù)據(jù)的一致性
加密也能保證數(shù)據(jù)的一致性。例如:消息驗(yàn)證碼(MAC),能夠校驗(yàn)用戶提供的加密信息,接收者可以用MAC來(lái)校驗(yàn)加密數(shù)據(jù),保證數(shù)據(jù)在傳輸過程中沒有被篡改過。
3.安全驗(yàn)證
加密的另外一個(gè)用途是用來(lái)作為個(gè)人的標(biāo)識(shí),用戶的密匙可以作為他的安全驗(yàn)證的標(biāo)識(shí)。SSL是利用公開密鑰的加密技術(shù)(RSA)來(lái)作為用戶端與服務(wù)器端在傳送機(jī)密資料時(shí)的加密通訊協(xié)定。
openssl - OpenSSL簡(jiǎn)介
眾多的密碼算法、公鑰基礎(chǔ)設(shè)施標(biāo)準(zhǔn)以及SSL協(xié)議,或許這些有趣的功能會(huì)產(chǎn)生實(shí)現(xiàn)所有這些算法和標(biāo)準(zhǔn)的想法。這是一個(gè)令人望而生畏的過程。這個(gè)工作不再是簡(jiǎn)單的讀懂幾本密碼學(xué)專著和協(xié)議文檔那么簡(jiǎn)單,而是要理解所有這些算法、標(biāo)準(zhǔn)和協(xié)議文檔的每一個(gè)細(xì)節(jié),并用很熟悉的C語(yǔ)言字符一個(gè)一個(gè)去實(shí)現(xiàn)這些定義和過程。
Eric A. Young和Tim J. Hudson這兩個(gè)加拿大人自1995年開始編寫后來(lái)具有巨大影響的OpenSSL軟件包,這是一個(gè)沒有太多限制的開放源代碼的軟件包。1998年,OpenSSL項(xiàng)目組接管了OpenSSL的開發(fā)工作,并推出了OpenSSL的0.9.1版,目前為止,OpenSSL的算法已經(jīng)非常完善,對(duì)SSL2.0、SSL3.0以及TLS1.0都支持。
OpenSSL采用C語(yǔ)言作為開發(fā)語(yǔ)言,這使得OpenSSL具有優(yōu)秀的跨平臺(tái)性能,這對(duì)于廣大技術(shù)人員來(lái)說(shuō)是一件非常美妙的事情,可以在不同的平臺(tái)使用同樣熟悉的東西。OpenSSL支持Linux、Windows、BSD、Mac、VMS等平臺(tái),這使得OpenSSL具有廣泛的適用性。
OpenSSL整個(gè)軟件包大概可以分成三個(gè)主要的功能部分:密碼算法庫(kù),SSL協(xié)議庫(kù),應(yīng)用程序。
OpenSSL的目錄結(jié)構(gòu)自然也是圍繞這三個(gè)功能部分進(jìn)行規(guī)劃的。
1.對(duì)稱加密算法
OpenSSL一共提供了8種對(duì)稱加密算法,其中7種是分組加密算法,僅有的一種流加密算法是RC4。這7種分組加密算法分別是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持電子密碼本模式(ECB)、加密分組鏈接模式(CBC)、加密反饋模式(CFB)和輸出反饋模式(OFB)四種常用的分組密碼加密模式。其中,AES使用的加密反饋模式(CFB)和輸出反饋模式(OFB)分組長(zhǎng)度是128位,其它算法使用的則是64位。事實(shí)上,DES算法里面不僅僅是常用的DES算法,還支持三個(gè)密鑰和兩個(gè)密鑰3DES算法。
2.非對(duì)稱加密算法
OpenSSL一共實(shí)現(xiàn)了4種非對(duì)稱加密算法,包括DH算法、RSA算法、DSA算法和橢圓曲線算法(EC)。
DH算法一般用戶密鑰交換。
RSA算法既可以用于密鑰交換,也可以用于數(shù)字簽名。
DSA算法則一般只用于數(shù)字簽名。
3.信息摘要算法
OpenSSL實(shí)現(xiàn)了5種信息摘要算法,分別是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事實(shí)上包括了SHA和SHA1兩種信息摘要算法,此外,OpenSSL還實(shí)現(xiàn)了DSS標(biāo)準(zhǔn)中規(guī)定的兩種信息摘要算法DSS和DSS1。
4.密鑰和證書管理
密鑰和證書管理是PKI的一個(gè)重要組成部分,OpenSSL為之提供了豐富的功能,支持多種標(biāo)準(zhǔn)。
首先,OpenSSL實(shí)現(xiàn)了ASN.1的證書和密鑰相關(guān)標(biāo)準(zhǔn),提供了對(duì)證書、公鑰、私鑰、證書請(qǐng)求以及CRL等數(shù)據(jù)對(duì)象的DER、PEM和BASE64的編解碼功能。OpenSSL提供了產(chǎn)生各種公開密鑰對(duì)和對(duì)稱密鑰的方法、函數(shù)和應(yīng)用程序,同時(shí)提供了對(duì)公鑰和私鑰的DER編解碼功能。并實(shí)現(xiàn)了私鑰的PKCS#12和PKCS#8的編解碼功能。OpenSSL在標(biāo)準(zhǔn)中提供了對(duì)私鑰的加密保護(hù)功能,使得密鑰可以安全地進(jìn)行存儲(chǔ)和分發(fā)。
在此基礎(chǔ)上,OpenSSL實(shí)現(xiàn)了對(duì)證書的X.509標(biāo)準(zhǔn)編解碼、PKCS#12格式的編解碼以及PKCS#7的編解碼功能。并提供了一種文本數(shù)據(jù)庫(kù),支持證書的管理功能,包括證書密鑰產(chǎn)生、請(qǐng)求產(chǎn)生、證書簽發(fā)、吊銷和驗(yàn)證等功能。
OpenSSL提供的CA應(yīng)用程序就是一個(gè)小型的證書管理中心(CA),實(shí)現(xiàn)了證書簽發(fā)的整個(gè)流程和證書管理的大部分機(jī)制。
5.SSL和TLS協(xié)議
OpenSSL實(shí)現(xiàn)了SSL協(xié)議的SSLv2和SSLv3,支持了其中絕大部分算法協(xié)議。OpenSSL也實(shí)現(xiàn)了TLSv1.0,TLS是SSLv3的標(biāo)準(zhǔn)化版,雖然區(qū)別不大,但畢竟有很多細(xì)節(jié)不盡相同。
雖然已經(jīng)有眾多的軟件實(shí)現(xiàn)了OpenSSL的功能,但是OpenSSL里面實(shí)現(xiàn)的SSL協(xié)議能夠?qū)SL協(xié)議有一個(gè)更加清楚的認(rèn)識(shí),因?yàn)橹辽俅嬖趦牲c(diǎn):一是OpenSSL實(shí)現(xiàn)的SSL協(xié)議是開放源代碼的,可以追究SSL協(xié)議實(shí)現(xiàn)的每一個(gè)細(xì)節(jié);二是OpenSSL實(shí)現(xiàn)的SSL協(xié)議是純粹的SSL協(xié)議,沒有跟其它協(xié)議(如HTTP)協(xié)議結(jié)合在一起,澄清了SSL協(xié)議的本來(lái)面目。
6.應(yīng)用程序
OpenSSL的應(yīng)用程序已經(jīng)成為了OpenSSL重要的一個(gè)組成部分,其重要性恐怕是OpenSSL的開發(fā)者開始沒有想到的?,F(xiàn)在OpenSSL的應(yīng)用中,很多都是基于OpenSSL的應(yīng)用程序而不是其API的,如OpenCA,就是完全使用OpenSSL的應(yīng)用程序?qū)崿F(xiàn)的。OpenSSL的應(yīng)用程序是基于OpenSSL的密碼算法庫(kù)和SSL協(xié)議庫(kù)寫成的,所以也是一些非常好的OpenSSL的API使用范例。
OpenSSL的應(yīng)用程序提供了相對(duì)全面的功能,在相當(dāng)多的人看來(lái),OpenSSL已經(jīng)為自己做好了一切,不需要再做更多的開發(fā)工作了,所以,他們也把這些應(yīng)用程序成為OpenSSL的指令。OpenSSL的應(yīng)用程序主要包括密鑰生成、證書管理、格式轉(zhuǎn)換、數(shù)據(jù)加密和簽名、SSL測(cè)試以及其它輔助配置功能。