日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

https的基本原理,看完你的程序员女朋友再也不和你提分手了

發(fā)布時(shí)間:2025/7/14 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 https的基本原理,看完你的程序员女朋友再也不和你提分手了 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【http風(fēng)險(xiǎn)】

首先,我們來講一下平時(shí)上網(wǎng)的時(shí)候,存在的風(fēng)險(xiǎn)。

初步接觸過網(wǎng)絡(luò)的同學(xué)都知道,網(wǎng)絡(luò)上是很不安全的,尤其是各種公共場合的免費(fèi)WIFI,以及手機(jī)上各種免費(fèi)上網(wǎng)的萬能鑰匙。這些不安全因素會(huì)導(dǎo)致什么問題呢:

  • 泄密,各類的個(gè)人信息,保存的小電影,淘寶的賬號(hào)密碼
  • 篡改,收到的信息被別人修改,或者植入木馬
  • 偽裝,訪問到假的網(wǎng)站,比如訪問淘寶訪問到釣魚網(wǎng)站,訪問中日友好影院訪問到澳門獨(dú)家線上賭場。
  • ? ?

    當(dāng)然了,還有一些特殊的情況,比如說你在夜深人靜的夜,訪問某91網(wǎng)站,實(shí)際上你那做程序員的女朋友在另外一個(gè)房間,正在陪著你看,甚至你順手回了前女友一個(gè)消息,就算你及時(shí)刪除,卻還是沒躲過那雙程序員的眼睛。

    ? ?

    ? ?

    很多同學(xué)已經(jīng)比較了解http以及tcp/ip了,對于什么三次握手四次揮手也是熟的不能再熟了。http屬于應(yīng)用層協(xié)議,位于五層網(wǎng)絡(luò)參考模型的最上層,小劉的數(shù)據(jù)包通過應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,鏈路層封裝之后,再經(jīng)過物理層傳輸?shù)教m蘭的主機(jī),在這幾層中,數(shù)據(jù)都沒有經(jīng)過封裝,所以,你的數(shù)據(jù)特別容易被中間的女朋友倩倩獲取。

    ? ?

    我們今天就來說一說,如何避免你的程序員女朋友盜取你的信息,趁機(jī)和你提分手。

    ? ?

    【對稱加密】

    信息如果想要不被盜取,就要經(jīng)過加密,現(xiàn)在的加密算法大致可分為兩類,一類是對稱加密,一類是非對稱加密

    我們先來說說對稱加密。

    ? ?

    對稱加密的基本含義,就是算法的加密和解密全都是使用同一個(gè)密鑰

    在一定條件下,對稱加密可以解決一部分網(wǎng)絡(luò)安全問題。因?yàn)槟愫吞m蘭互相發(fā)送的消息,只有你和蘭蘭知道加密解密密鑰,倩倩是不知道的,所以沒有辦法對你們之間的消息包進(jìn)行解密,你們可以相互暢所欲言。

    ? ?

    但是這樣是有前提條件的,就是倩倩不知道你們的密鑰

    如果你和蘭蘭在約定密鑰的時(shí)候數(shù)據(jù)包就已經(jīng)被倩倩獲取了,那你們的行為無異于脫褲子放屁,沒有任何意義。

    所以,對稱加密算法存在的最嚴(yán)重的一個(gè)問題就是,密鑰協(xié)商

    ? ?

    【非對稱加密】

    非對稱加密算法需要兩個(gè)密鑰,一個(gè)叫公鑰,一個(gè)叫私鑰

    公鑰加密的內(nèi)容需要用私鑰解密私鑰加密的內(nèi)容需要用公鑰解密,兩個(gè)密鑰成對出現(xiàn),缺一不可

    私鑰由服務(wù)器(蘭蘭)自己保存,公鑰發(fā)送給客戶端(小劉)。

    ? ?

    小劉拿到公鑰就可以把自己的消息加密并發(fā)給蘭蘭了,這個(gè)時(shí)候就算倩倩截獲了,也無法獲取消息包的具體內(nèi)容,保證了小劉發(fā)給蘭蘭的消息的安全性。

    非對稱加密和對稱加密一樣,都存在密鑰傳輸?shù)膯栴},但是至少有一點(diǎn)可以保證,就是客戶端發(fā)往服務(wù)器端的消息不會(huì)被泄露

    非對稱加密還有一個(gè)問題,就是加密解密時(shí)的效率比較低,嚴(yán)重影響小劉和蘭蘭談情說愛。

    ? ?

    所以我們又有一種辦法,就是第一次通信的時(shí)候使用非對稱加密,由客戶端(小劉)產(chǎn)生一個(gè)對稱加密的密鑰,用公鑰加密后發(fā)給服務(wù)器端(蘭蘭),服務(wù)器端用私鑰解密之后,就可以使用對稱加密發(fā)送消息了。

    ? ?

    這個(gè)辦法看起來天衣無縫,既解決了密鑰協(xié)商的問題,又解決了非對稱加密效率低的問題。

    但是真的就能無所顧及了嗎?并不能,我們看看倩倩的如下騷操作:


    倩倩偽造了蘭蘭,也就是說,黑客利用一臺(tái)主機(jī),偽造了真實(shí)的服務(wù)器,使用自己的公鑰和私鑰去和客戶端(小劉)進(jìn)行消息交互,這樣不光可以獲取消息的內(nèi)容,還可以偽造消息,從而達(dá)到某些不可告人的目的。

    ? ?

    比如獲取你的銀行卡密碼,直接轉(zhuǎn)走你的所有資金,讓你人財(cái)兩空,再比如獲取你的私人信息,讓你身敗名裂。這些都是非常嚴(yán)重的后果。

    ? ?

    【數(shù)字證書】

    那小劉和蘭蘭就真的沒有更加安全的消息交互的辦法了嗎?

    答案當(dāng)然是,有!

    ? ?

    現(xiàn)實(shí)生活中,我們也會(huì)有身份信息的證明,比如你說你是學(xué)生,怎么證明?我有學(xué)生證;你說你是警察,怎么證明?我有警官證。

    ? ?

    網(wǎng)上也有這種證書,但是網(wǎng)上的證書不是實(shí)體的,所以叫數(shù)字證書

    ? ?

    客戶端第一次與服務(wù)器進(jìn)行通信的時(shí)候,服務(wù)器需要拿出自己的證書,表明自己的身份以及公鑰,類似:

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    ? ?

    那么這個(gè)數(shù)字證書是怎么產(chǎn)生的呢?總不能自己隨便寫一個(gè)吧。

    我們思考一下,我們上面說的學(xué)生證,警官證為什么能夠被大家所認(rèn)同呢,是因?yàn)閷W(xué)生證是教育部頒發(fā)的,警官證是公安部頒發(fā)的,上面有唯一的防偽編碼,我們上相關(guān)部門的網(wǎng)站就可以查詢到了,所以我們認(rèn)同這些證書是因?yàn)槲覀冋J(rèn)同教育部和公安部。

    數(shù)字證書也是一樣,有唯一的防偽編碼,以及頒發(fā)的權(quán)威機(jī)構(gòu)

    ? ?

    【CA機(jī)構(gòu)】

    CA機(jī)構(gòu)就像之前說的教育部一樣,是權(quán)威的證書頒發(fā)機(jī)構(gòu)負(fù)責(zé)頒發(fā)證書以及驗(yàn)證證書的合法性

    如果服務(wù)器需要做一個(gè)有身份的服務(wù)器,就需要向CA機(jī)構(gòu)提交申請 <價(jià)格昂貴> ,需要提供包括域名,公司名稱,公鑰等一系列信息,CA機(jī)構(gòu)審批后就可以給服務(wù)器頒發(fā)證書了。

    ? ?

    客戶端拿到證書以后,需要做兩件事:

    1. 驗(yàn)證證書編號(hào)是否可以在CA機(jī)構(gòu)查到

    2.核對證書上的基本信息 <比如域名> 是否與當(dāng)前一致,才可以使用公鑰和服務(wù)器協(xié)商對稱密鑰進(jìn)行消息發(fā)送。

    ? ?

    證書頒發(fā)之后,如何保證在傳輸?shù)倪^程中不被篡改呢? 萬一倩倩獲取到證書之后,把公鑰改成了自己的,豈不是白費(fèi)功夫?

    ? ?

    【數(shù)字簽名】

    依舊拿警官證舉例子,家里有警察的朋友們應(yīng)該都知道,警官證上面的內(nèi)容是不允許涂改的,如果需要修改,必須銷毀或者存檔舊的警官證,頒發(fā)新的警官證并蓋章才有效。

    ? ?

    這個(gè)蓋章的操作,在網(wǎng)絡(luò)證書上面叫做數(shù)字簽名

    服務(wù)器向CA提出證書申請,CA在頒發(fā)證書的時(shí)候,會(huì)連同數(shù)字證書以及根據(jù)證書內(nèi)容產(chǎn)生的摘要一并發(fā)給服務(wù)器,<摘要相當(dāng)于MD5,一段絕對不會(huì)重復(fù)的無規(guī)律碼>

    這個(gè)摘要是通過CA的私鑰進(jìn)行加密的,無法進(jìn)行篡改

    ? ?

    過程如下:

    ? ?

    哪些CA機(jī)構(gòu)對于客戶端來說是權(quán)威或者說是認(rèn)可的呢?我們打開IE瀏覽器能看到客戶端內(nèi)置的CA機(jī)構(gòu)的信息,包含了CA的公鑰、簽名算法、有效期等等。

    ? ?

    在這之后,服務(wù)器在與客戶端通信的時(shí)候,就可以將數(shù)字證書以及數(shù)字簽名出示給客戶端了。

    客戶端拿到數(shù)字證書與簽名,會(huì)進(jìn)行如下過程:

  • 找到操作系統(tǒng)或者瀏覽器信任的CA機(jī)構(gòu),使用其公鑰對數(shù)字簽名進(jìn)行解密計(jì)算數(shù)字證書的摘要

    如果摘要與服務(wù)器發(fā)過來的一致,則表明證書沒有被篡改。

  • 從證書里獲取服務(wù)器公鑰,加密對稱密鑰
  • 將對稱密鑰發(fā)送到服務(wù)器。
  • ? ?

    注意一點(diǎn):

    如果是偽造的數(shù)字簽名,則在客戶端無法做解密

    因?yàn)?span style="color:#002060;">CA的私鑰是自己負(fù)責(zé)保管的,別人無法獲取得到,所以無法對證書做私鑰加密,自然別人也無法使用公鑰進(jìn)行解密。

    ? ?

    【HTTPS】

    好像一直沒有提到https。

    其實(shí)https很簡單,就是在http的基礎(chǔ)上添加了一個(gè)叫做SSL的協(xié)議,SSL(Secure Sockets Layer)叫做"安全套接層",后來標(biāo)準(zhǔn)化之后叫做TLS

    所以,HTTPS協(xié)議就是通過以上的手段,達(dá)到網(wǎng)頁防偽造,防篡改的成果。

    ? ?

    ?

    ?

    這樣,小劉就可以名正言順得和蘭蘭一起"月上柳梢頭,人約黃昏后",而不被倩倩發(fā)覺了。

    ? ?

    ?

    ? ?

    {寫在最后,本文參考了大量網(wǎng)上對于https的理解,大家讀完之后還有不懂的歡迎一起討論}

    ? ?

    ? ?

    ? ?

    ? ?

    ? ?

    ? ?

    ??

    轉(zhuǎn)載于:https://www.cnblogs.com/liuxia912/p/10980764.html

    《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的https的基本原理,看完你的程序员女朋友再也不和你提分手了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。