TLS其實(shí)是SSL,可能更正式的說法已經(jīng)不用SSL了。TLS是一套基于非對稱加密算法的安全傳輸協(xié)議,更嚴(yán)格來說,TLS先是通過非對稱加密方式交換對稱加密秘鑰,然后采用對稱加密算法進(jìn)行安全傳輸。
創(chuàng)新互聯(lián)專注于延吉企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。延吉網(wǎng)站建設(shè)公司,為延吉等地區(qū)提供建站服務(wù)。全流程按需定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
非對稱加密是這樣的一把鎖,有兩把鑰匙,任意一把鑰匙可以把鎖鎖上,只有另一把鑰匙才能將鎖打開。這兩把鑰匙是成對的,可以互相解密。其中一把是公開的公鑰,另一把是服務(wù)器持有的私鑰。
任何人都可以用公鑰加密一段消息發(fā)送給服務(wù)器,做到安全發(fā)送。另一方面,服務(wù)器可以用私鑰加密一段消息,將消息明文和密文發(fā)送給接收者,以此證明自己的真實(shí)身份,這叫做簽名。當(dāng)然,現(xiàn)實(shí)中,是對消息的摘要進(jìn)行簽名加密,因?yàn)檎容^小。
TLS的第一步,就是讓發(fā)送者持有服務(wù)器的公鑰。通常獲得服務(wù)器公鑰的方式,都是向服務(wù)器進(jìn)行詢問,然后由服務(wù)器明文發(fā)送過來的。為了保證這一步的安全性,確保明文發(fā)送過來的公鑰沒有被串改,我們又發(fā)明了證書。
證書由服務(wù)器名稱信息和服務(wù)器公鑰組成,然后加上證書簽發(fā)機(jī)構(gòu)CA和簽發(fā)機(jī)構(gòu)對前面信息的簽名。改用證書機(jī)制后,服務(wù)器以明文發(fā)送自己的證書信息,使用者用CA的公鑰驗(yàn)證證書簽名,核對相關(guān)的服務(wù)器信息,然后就可以信任服務(wù)器的公鑰了。
至于CA公鑰的傳遞方式,一般是內(nèi)置的或者通過實(shí)體進(jìn)行傳遞。
一般服務(wù)器是不限制使用者訪問的,所以服務(wù)器配置了證書和私鑰,讓發(fā)送者能夠安全的從第一步開始建立加密通信機(jī)制。即使使用者不驗(yàn)證服務(wù)器證書,TLS仍舊是以加密方式進(jìn)行,雖然安全度不是最高,但是屏蔽掉無聊的阿貓阿狗訪問已經(jīng)足夠了。
更進(jìn)一步,服務(wù)器可以配置雙向認(rèn)證,配置CA證書并要求認(rèn)證使用者的證書。那么使用者在訪問前就要配置由CA簽發(fā)的個(gè)人證書和私鑰,在第一步開始時(shí)把自己的證書和隨機(jī)簽名發(fā)過去讓服務(wù)器進(jìn)行認(rèn)證。
使用雙向認(rèn)證的時(shí)候,通信的安全性已經(jīng)足夠高了:消息是加密的,并且不太容易在某個(gè)環(huán)節(jié)被串改,而使用者必須經(jīng)過服務(wù)器用自己的CA簽發(fā)授權(quán)證書后才能訪問服務(wù)。
TLS的運(yùn)用其實(shí)應(yīng)該非常廣,只要不是內(nèi)網(wǎng)服務(wù),而是向不安全的互聯(lián)網(wǎng)公開的服務(wù),并且在通信上沒有使用任何加密手段,也沒有特別有效的客戶鑒權(quán),都應(yīng)該使用TLS。
比如有時(shí)候因?yàn)槟撤N原因,不得不向互聯(lián)網(wǎng)暴露mysql,redis或者其他開源軟件的服務(wù)端口,這種大作死的行為,軟件自帶的脆弱的客戶鑒權(quán)機(jī)制就跟雜草一樣一踩就倒,已經(jīng)是業(yè)界人盡皆知的情形。
如果能為這些開放的服務(wù)端口加上TLS雙向認(rèn)證通信,基本能把侵害排除99%了吧。那如何給這些服務(wù)增加TLS安全通信呢?
首先, 把公開的服務(wù)改成內(nèi)網(wǎng)服務(wù) 。
第二, 在服務(wù)器和客戶端之間配置TLS tunnel ,通過tunnel轉(zhuǎn)發(fā)客戶端和服務(wù)器之間流量。有很多TLS tunnel客戶端可以使用,這種方式也不會(huì)對原系統(tǒng)造成任何改動(dòng),所謂各司其職。
服務(wù)器監(jiān)聽??蛻暨B接到服務(wù)器后,死循環(huán)里READ并處理 那個(gè)連接,不要斷開,同時(shí)可以發(fā)送信息. 服務(wù)器里 做處理信息. 這東西如果你從SOCKET開始做很復(fù)雜。你不但要了解套接字網(wǎng)絡(luò)連接方法,還要了解套接字阻塞機(jī)制,還有讀寫阻塞機(jī)制.還要處理讀寫超時(shí)處理,防DDOS攻擊處理,還要了解異步處理SELECT或POLL。而且這種底層的程序用C#做很不值得,。.如果你想從底層做,并且做的很好.就用C寫,并且要求效率。 如果不要求高效率那就直接用IIS做成WEB服務(wù),配合數(shù)據(jù)庫做,然后用客戶端調(diào)用WEB服務(wù)..
SSL安全套接層(Secure Socket Layer) 為Netspace所研發(fā),用以保證在Internet上數(shù)據(jù)傳輸?shù)耐暾院捅C苄?,目前版本?.0,最新版本為TLS1.2安全傳輸層協(xié)議(Transport Layer Security)。TLS和SSL兩者差別極小可以將其理解為SSL的更新版本。
SSL介于應(yīng)用層和網(wǎng)絡(luò)層之間,位于傳輸層 。應(yīng)用的數(shù)據(jù)經(jīng)過傳輸層中的SSL進(jìn)行加密,并增加自己的SSL頭,在將加密后的數(shù)據(jù)傳向網(wǎng)絡(luò)層。
通過openssl可以自行簽發(fā)證書,有了證書和私鑰后就可以進(jìn)行SSL安全通信了。
調(diào)用SSL提供的接口流程如下圖所示:
從上述通訊過程可以看出,在ssl通訊建立起來之后,不考慮ssl版本上的一些漏洞,通信過程是很安全的,可以有效的防止中間人攻擊和運(yùn)營商劫持等問題,通訊數(shù)據(jù)的保密性和完整性得到了有效保證。所以針對SSL的相關(guān)攻擊必須建立在其會(huì)話的初始化階段,例如進(jìn)行中間人攻擊必須在會(huì)話建立過程中實(shí)現(xiàn),即在通訊過程中攻擊者偽造一個(gè)證書,對客戶端聲稱該證書就是服務(wù)器證書來騙過客戶端,使其信任該證書,并使用該證書來進(jìn)行通訊,這樣用戶通訊的信息就會(huì)被第三監(jiān)聽,通訊保密性和完整性就被破壞。這種攻擊方式也有一定的局限,當(dāng)使用偽造的證書來建立通訊時(shí),一般攻擊者不會(huì)獲得經(jīng)過官方機(jī)構(gòu)認(rèn)證的證書,客戶端的瀏覽器就會(huì)發(fā)過警告,提醒通信不安全,可以參考訪問12306時(shí)的瀏覽器的提示(因?yàn)?2306使用的是其自建的ca頒發(fā)的證書,沒有經(jīng)過官方機(jī)構(gòu)的認(rèn)證,所以瀏覽器就默認(rèn)會(huì)認(rèn)為其證書不安全,并提出告警)。
盡管通過瀏覽器去檢驗(yàn)證書的合法性會(huì)提高攻擊的成本,但在某些特殊情況下,還是會(huì)繞過瀏覽器的校驗(yàn)。例如:當(dāng)我們使用fiddler和Charles這一類的抓包工具時(shí),可以手動(dòng)將他們的證書添加成為可信證書,所以當(dāng)我們利用這些工具在本地對相關(guān)的系統(tǒng)進(jìn)行邏輯分析時(shí),并不會(huì)收到瀏覽器的告警。而且瀏覽器的校驗(yàn)僅僅針對的是web端的應(yīng)用,對于移動(dòng)端和其他非web端的應(yīng)用只能通過其他方式來進(jìn)行防護(hù),一種比較通用的實(shí)現(xiàn)方式是使用SSL Pinning即證書綁定。
握手協(xié)議是客戶端和服務(wù)器用于與SSL連接通信的第一個(gè)子協(xié)議。握手協(xié)議包括客戶端和服務(wù)器之間的一系列消息。SSL中最復(fù)雜的協(xié)議是握手協(xié)議。該協(xié)議允許服務(wù)器和客戶端相互進(jìn)行身份驗(yàn)證,協(xié)商加密和MAC算法,以及保密SSL密鑰以保護(hù)SSL記錄中發(fā)送的數(shù)據(jù)。在應(yīng)用程序的數(shù)據(jù)傳輸之前使用握手協(xié)議。
在客戶端和服務(wù)器握手成功之后使用記錄協(xié)議,即客戶端和服務(wù)器相互認(rèn)證并確定安全信息交換使用的算法,并輸入SSL記錄協(xié)議,該協(xié)議為SSL提供兩種服務(wù)連接:
客戶機(jī)和服務(wù)器發(fā)現(xiàn)錯(cuò)誤時(shí),向?qū)Ψ桨l(fā)送一個(gè)警報(bào)消息。如果是致命錯(cuò)誤,則算法立即關(guān)閉SSL連接,雙方還會(huì)先刪除相關(guān)的會(huì)話號(hào),秘密和密鑰。每個(gè)警報(bào)消息共2個(gè)字節(jié),第1個(gè)字節(jié)表示錯(cuò)誤類型,如果是警報(bào),則值為1,如果是致命錯(cuò)誤,則值為2;第2個(gè)字節(jié)制定實(shí)際錯(cuò)誤類型。
當(dāng)前文章:客戶端與服務(wù)器端安全通信 客戶端和服務(wù)器端通信
文章位置:http://jinyejixie.com/article20/ddcooco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)頁設(shè)計(jì)公司、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、商城網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)