從一道面試題http與https的區(qū)別講起

一、面試者經(jīng)?;卮鸬膸追N

1、https是安全的,http是不安全的。

2、https = http + ssl。

3、http傳輸?shù)膱笪氖敲魑?,https傳輸?shù)膱笪氖敲芪摹?/h2>

二、我一般會繼續(xù)問以下問題

1、報文是在什么時候加密的?加密就安全了?

2、加密解密是使用了什么算法?對稱加密算法還是非對稱加密算法?

三、https是如何一步步地做到安全的

1、如果是對報文加密,聽過加密算法的同學(xué),就舉手說了,這個我會??!

加密.png

2、在互聯(lián)網(wǎng)環(huán)境下,如果服務(wù)端對所有的客戶端通訊都使用相同的對稱加密算法,也就沒有安全可言!

解決辦法是:每個客戶端采用不同的對稱加密算法~~ 服務(wù)端和客戶端需要協(xié)商,應(yīng)該使用哪種對稱加密算法。協(xié)商過程是沒有加密的,還是會被中間人攔截!
有人會說了,對這個協(xié)商過程進行對稱加密就好了。仔細想下,能行得通嗎?

3、如何對協(xié)商過程進行加密?

使用非對稱加密算法
私鑰加密后的密文,只要是公鑰,都可以解密。
公鑰加密后的密文,只有私鑰,才可以解密。

** 私鑰只有一個人有,而公鑰可以發(fā)給所有的人。**

https使用非對稱加密算法進行對稱加密算法的協(xié)商過程。

4、協(xié)商的問題是解決了,但是要達到服務(wù)器針對每個客戶端使用不同的對稱加密算法,同時,我們也不能讓第三者知道這個對稱加密算法是什么,怎么辦?

使用隨機數(shù)生成對稱加密算法,讓服務(wù)端和客戶端的每次交互都是新的加密算法。

5、客戶端怎么得到非對稱加密的公鑰?

a、服務(wù)端將公鑰發(fā)送給每一個客戶端。----這個過程本身就不安全
b、服務(wù)端將公鑰放到一個遠程服務(wù)器,客戶端請求得到。----增加了一次請求
c、使用第三方機構(gòu)(數(shù)字證書簽發(fā)機構(gòu)CA)的公鑰。
我們不能直接將服務(wù)器的公鑰傳遞給客戶端,
而是第三方機構(gòu)使用它的私鑰對我們的公鑰進行加密后,
再傳給客戶端。
客戶端再使用第三方機構(gòu)的公鑰進行解密。

6、數(shù)字證書

使用數(shù)字證書簽發(fā)機構(gòu)頒發(fā)的證書來保證非對稱加密過程本身的安全。
CA頒發(fā)數(shù)字證書給服務(wù)端。
a、簽署合同,確認(rèn)支付方式
b、準(zhǔn)備CSR,并選擇確認(rèn)方式
c、在線提交申請
d、確認(rèn)申請頒發(fā)證書
服務(wù)端拿到證書后,我們就可以將證書配置到自己的服務(wù)器上了。

7、數(shù)字簽名

分辨同一個機構(gòu)下的不同證書!
類似于畢業(yè)證書的證書編號,只要拿著這個證書編號上相關(guān)機構(gòu)查詢,從而判斷畢業(yè)證書的真?zhèn)巍?br> 證書存放在客戶端,第三方機構(gòu)的驗證功能也放在客戶端的本地,避免去遠端進行校驗。
最后的問題就是客戶端怎么驗證證書的真?zhèn)文兀?br> 客戶端根據(jù)證書的內(nèi)容md5求值,得到的證書編號,與證書中的證書編號相同,則驗證通過。

總結(jié):數(shù)字簽名就是證書編號。

數(shù)字簽名.png

8、SSL/TLS協(xié)議

為了讓客戶端與服務(wù)端安全地協(xié)商出一個對稱加密算法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容