?
? ? ?企事業(yè)單位都需要定期對(duì)信息系統(tǒng)和自動(dòng)化資產(chǎn)進(jìn)行系統(tǒng)安全等級(jí)檢測(cè),檢測(cè)完畢后,承檢公司會(huì)出具一份檢測(cè)報(bào)告,其中會(huì)列出檢查出來的一系列問題,其中對(duì)于設(shè)備遠(yuǎn)程管理方式歸為高風(fēng)險(xiǎn)問題。我相信很多單位也沒有全面改進(jìn)遠(yuǎn)程管理問題,這個(gè)跟系統(tǒng)建設(shè)時(shí)期客戶沒有要求,同時(shí)為提高部署效率,乙方也沒有此進(jìn)行提議造成的。
? ? ? 盡管如此,我認(rèn)為還是有必要重視明碼數(shù)據(jù)在傳輸過程中的危險(xiǎn)性,也建議技術(shù)人員至少把關(guān)鍵部位的管理技術(shù)進(jìn)行升級(jí),現(xiàn)行的技術(shù)最通用的基本是SSH、HTTPS,本文將從純技術(shù)方向一點(diǎn)點(diǎn)剖析HTTPS。(本文適合從事研發(fā)、系統(tǒng)運(yùn)維、信息安全人員閱讀)
?
? ? ?首先,我們將提出一個(gè)真實(shí)場(chǎng)景,以及目標(biāo)。本位將圍繞這個(gè)最終目標(biāo)為您一點(diǎn)點(diǎn)架構(gòu)出一個(gè)安全的傳輸方式HTTPS。
最終目標(biāo):A發(fā)送hello包給B,即使被中間人攔截也無法得到其內(nèi)容。
王健林名言:先建立一個(gè)能達(dá)到的小目標(biāo)
?
小目標(biāo)1:A與B通信,且只有AB有能力看到通信真正內(nèi)容。
實(shí)現(xiàn)手段:對(duì)稱加密內(nèi)容,只要密鑰不公開給第三者,且只有A和B知道如何加、解密。
但在Web服務(wù)環(huán)境下,通信可沒有那么簡(jiǎn)單,如下圖:
服務(wù)器對(duì)所有客戶段使用相同的對(duì)稱加密算法,無異于沒有加密了!有些人說那就對(duì)不同的客戶端使用不同加密方法,但是雙方協(xié)商過程沒有被加密,還是會(huì)被中間人截取,所以下一個(gè)目標(biāo)就是加密雙發(fā)協(xié)商過程。
?
小目標(biāo)2:加密雙發(fā)協(xié)商過程
實(shí)現(xiàn)手段:我們只要解決協(xié)商過程保護(hù)這一問題,就可以保證目標(biāo)完成。對(duì)協(xié)商過程使用非對(duì)稱加密。
非對(duì)稱加密特點(diǎn):私鑰加密,公鑰都可以解開;公鑰加密,只有私鑰可解。
1、? 私鑰只有一個(gè)人有,而公鑰發(fā)給所有人
2、? 非對(duì)稱加密只能保證AB向服務(wù)器方向是安全的,因?yàn)樗借€是服務(wù)器私有的,信息被攔截也無法解密
3、? 服務(wù)器向AB方向還是不安全,因?yàn)楣€公開
但服務(wù)器向客戶端發(fā)送公鑰過程是不安全的(為了后續(xù)非對(duì)稱加密,客戶端需要一開始就持有服務(wù)器公鑰),因?yàn)橹虚g人調(diào)包公鑰,客戶端無法分辨公鑰是中間人還是服務(wù)器發(fā)送的。
?
小目標(biāo)3:需要讓客戶端確定公鑰是由服務(wù)器傳遞,即身份認(rèn)證
實(shí)現(xiàn)手段:數(shù)字證書
數(shù)字證書:服務(wù)器將自己公鑰提供給第三方機(jī)構(gòu),第三發(fā)機(jī)構(gòu)用自己的私鑰加密后,頒發(fā)給服務(wù)器管理者。
如果中間人用自己的私鑰加密后傳給客戶端,客戶端是無法用本地存儲(chǔ)的第三方公鑰解密的。但是這樣就安全了嗎?
我們知道,第三方也會(huì)給諸如中間人發(fā)放證書,由于客戶端能解密同一家第三機(jī)構(gòu)辦法的所有證書。如果中間人截取你的證書調(diào)包,客戶端是無法分辨是服務(wù)器還是中間人的證書,都可以用第三方公鑰解密。
?
小目標(biāo)4:解決同一機(jī)構(gòu)頒發(fā)不同證書被篡改的問題
實(shí)現(xiàn)手段:數(shù)字簽名(證書編號(hào))
客戶端拿到證書后,根據(jù)證書上的方法自己生成一個(gè)證書編號(hào)
如果編號(hào)與證書上編號(hào)相同,那么證書是真實(shí)的
但是第三方機(jī)構(gòu)的公鑰怎么跑到了客戶端的機(jī)器中呢?
? ? ? 現(xiàn)實(shí)中,瀏覽器和操作系統(tǒng)都會(huì)維護(hù)一個(gè)權(quán)威的第三方機(jī)構(gòu)列表(包括它們的公鑰)。因?yàn)榭蛻舳私邮盏降淖C書中會(huì)寫有頒發(fā)機(jī)構(gòu),客戶端就根據(jù)這個(gè)頒發(fā)機(jī)構(gòu)的值在本地找相應(yīng)的公鑰。
第三方如何頒發(fā)數(shù)字證書給服務(wù)器端的?
拿到證書后,我們就可以將證書配置到自己的服務(wù)器上了。
?
?
本文摘自 :https://blog.51cto.com/u