亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

HTTPS是什么意思 HTTPS加密保證安全過程詳解

簡(jiǎn)書   發(fā)布時(shí)間:2016-06-01 11:15:33   作者:程序員Delton   我要評(píng)論
HTTPS并不是一個(gè)單一的東西,它知識(shí)我們常見的HTTP 協(xié)議和某個(gè)加密協(xié)議的一個(gè)混合,這個(gè)加密協(xié)議通常會(huì)是TLS。那么HTTPS為什么安全呢?其實(shí)我們需要先考慮HTTP為什么不安全

每當(dāng)我們討論到信息安全的時(shí)候,我們最長(zhǎng)接觸到的信息加密傳輸?shù)姆绞侥^于HTTPS了,當(dāng)我們?yōu)g覽器地址欄閃現(xiàn)出綠色時(shí),就代表著這個(gè)網(wǎng)站支持HTTPS的加密信息傳輸方式,并且你與它的連接確實(shí)被加密了。但是HTTPS并不是一個(gè)單一的東西,它知識(shí)我們常見的HTTP協(xié)議和某個(gè)加密協(xié)議的一個(gè)混合,這個(gè)加密協(xié)議通常會(huì)是TLS。那么HTTPS為什么安全呢?其實(shí)我們需要先考慮HTTP為什么不安全。

假設(shè)你坐在一個(gè)教室里,你現(xiàn)在非常想把某個(gè)信息傳遞給教室里的另一個(gè)人,一般來說,會(huì)選擇,傳紙條。傳紙條這個(gè)比喻其實(shí)非常正確,這就是互聯(lián)網(wǎng)的一個(gè)基礎(chǔ)協(xié)議TCP/IP協(xié)議基本的工作模式。而通常,HTTP協(xié)議的數(shù)據(jù)是使用TCP/IP協(xié)議進(jìn)行發(fā)送的。HTTP指的是你在紙條上寫明你要傳送的目的地是哪個(gè)同學(xué)的坐位,然后再是要傳遞的內(nèi)容。途徑的同學(xué)拿到紙條后根據(jù)紙條上顯示的地址依次傳過去就好了。這樣要面臨的第一個(gè)問題就是:途徑的同學(xué)可以完全知道你寫了什么。

這就是HTTP面臨的第一個(gè)問題,這個(gè)問題通常被叫做“竊聽”或者“嗅探”,指的是和你在同一個(gè)網(wǎng)絡(luò)下或者是途徑的路由上的攻擊者可以偷窺到你傳輸?shù)膬?nèi)容。這是HTTPS要解決的第一個(gè)問題。這種問題通常是通過“加密”來解決的。從非常原始的角度來考慮,其實(shí)就是雙方約定一個(gè)暗號(hào)。用什么字母去替代什么字母之類的。不過考慮到互聯(lián)網(wǎng)每天有無(wú)數(shù)信息需要加密,這種原始的加密方法似乎不太適合。不過實(shí)際上方法也差不多,一般是采用一種叫做AES的算法來解決的。這種算法需要一個(gè)密鑰key來加密整個(gè)信息,加密和解密所需要使用的key是一樣的,所以這種加密一般也被稱為“對(duì)稱加密”。AES在數(shù)學(xué)上保證了,只要你使用的key足夠足夠足夠足夠的長(zhǎng),破解是幾乎不可能的。

我們先假設(shè)這種破解確實(shí)是不可能的,而且目前也確實(shí)沒有對(duì)AES本身能發(fā)動(dòng)起有效的攻擊的案例出現(xiàn)。

我們?cè)倩氐竭@個(gè)教室,你接著要傳小紙條,你把地址寫上后,把要傳輸?shù)膬?nèi)容用AES蹭蹭蹭加密了起來。剛準(zhǔn)備傳,問題來了。AES不是有一個(gè)key嗎?key怎么給目的地???如果我把密鑰直接寫在紙條上,那么中間的人不依然可以解密嗎?在現(xiàn)實(shí)中你可以通過一些其它方法來把密鑰安全傳輸給目的地而不被其他人看見,但是在互聯(lián)網(wǎng)上,要想這么做難度就很大了,畢竟傳輸終究要經(jīng)過這些路由,所以要做加密,還得找一個(gè)更復(fù)雜的數(shù)學(xué)方法。

于是聰明的人們發(fā)明了一種更復(fù)雜的加密算法——非對(duì)稱加密。這種加密或許理解起來比較困難,這種加密指的是可以生成一對(duì)密鑰(k1,k2)。凡是k1加密的數(shù)據(jù),k1自身不能解密,而需要k2才能解密;凡是k2加密的數(shù)據(jù),k2不能解密,需要k1才能解密。這種算法事實(shí)上有很多,常用的是RSA,其基于的數(shù)學(xué)原理是兩個(gè)大素?cái)?shù)的乘積很容易算,而拿到這個(gè)乘積去算出是哪兩個(gè)素?cái)?shù)相乘就很復(fù)雜了。好在以目前的技術(shù),分解大數(shù)的素因數(shù)確實(shí)比較困難,尤其是當(dāng)這個(gè)大數(shù)足夠大的時(shí)候(通常使用2的10次方個(gè)二進(jìn)制位這么大),就算是超級(jí)計(jì)算機(jī)解密也需要非常長(zhǎng)的時(shí)間。

現(xiàn)在利用這種非對(duì)稱加密的方法,我們來設(shè)想一個(gè)場(chǎng)景。你繼續(xù)想要傳紙條,但是傳紙條之前你先準(zhǔn)備把接下來通訊的對(duì)稱加密密鑰給傳輸過去。于是你用RSA技術(shù)生成了一對(duì)k1、k2,你把k1用明文發(fā)送了出去,路經(jīng)有人或許會(huì)截取,但是沒有用,k1加密的數(shù)據(jù)需要用k2才能解密。而此時(shí),k2在你自己的手里。k1送達(dá)目的地后,目的地的人會(huì)去準(zhǔn)備一個(gè)接下來用于對(duì)稱加密傳輸?shù)拿荑€key,然后用收到的k1把key加密了,把加密好的數(shù)據(jù)傳回來。路上的人就算截取到了,也解密不出key。等到了你自己手上,你用手上的k2把用k1加密的key解出來,現(xiàn)在全教室就只有你和你的目的地?fù)碛衚ey,你們就可以用AES算法進(jìn)行對(duì)稱加密的傳輸啦!這時(shí)候你和目的地的通訊將無(wú)法再被任何人竊聽!

當(dāng)然,這時(shí)候你可能會(huì)問兩個(gè)問題。

既然非對(duì)稱加密可以那么安全,為什么我們不直接用它來加密信息,而是去加密對(duì)稱加密的密鑰呢?

這是因?yàn)榉菍?duì)稱加密的密碼對(duì)生成和加密的消耗時(shí)間比較長(zhǎng),為了節(jié)省雙方的計(jì)算時(shí)間,通常只用它來交換密鑰,而非直接用來傳輸數(shù)據(jù)。

使用非對(duì)稱加密是完全安全的嗎?

聽起來確實(shí)是挺安全的,但實(shí)際上,還有一種更惡劣的攻擊是這種方法無(wú)法防范的,這就是傳說中的“中間人攻擊”。我們繼續(xù)讓你坐在教室里傳小紙條?,F(xiàn)在你和目的地上途徑一個(gè)中間人,他有意想要知道你們的消息。由于這個(gè)描述比較復(fù)雜,我們將你稱為A,你的目的地稱為B,而中間人稱為M。當(dāng)你要和B完成第一次密鑰交換的時(shí)候,途徑了M。M知道你要進(jìn)行密鑰交換了,它把小紙條扣了下來,假裝自己是B,偽造了一個(gè)key,然后用你發(fā)來的k1加密了key發(fā)還給你,你以為你和B完成了密鑰交換,實(shí)際上你是和M完成了密鑰交換。同時(shí)M和B完成一次密鑰交換,讓B誤以為和你完成了密鑰交換。現(xiàn)在,由A->B完整的加密,變成了A(加密連接1)->M(明文)->B(加密連接2)的情況了。這時(shí)候M依然可以知道A和B傳輸中的全部信息。

對(duì)于這種事,我們似乎很難找到一個(gè)解決方法來解決這個(gè)問題,除非我們能從源頭保證,你密鑰交換的對(duì)象是安全的。這時(shí)候我們就要認(rèn)識(shí)互聯(lián)網(wǎng)HTTPS和你傳紙條的微妙區(qū)別了。你傳紙條時(shí),你和你的目的地的關(guān)系幾乎是對(duì)等的。而你訪問網(wǎng)站時(shí),你訪問的對(duì)象通常是一個(gè)比較大的服務(wù)供應(yīng)商,他們有充沛的資源,也許可以證明他們的合法性。

這時(shí)候我們會(huì)引入一個(gè)第三方叫做CA。CA是一些非常權(quán)威的專門用于認(rèn)證一個(gè)網(wǎng)站合法性的組織。服務(wù)商可以向他們申請(qǐng)一個(gè)證書,使得他們建立安全連接時(shí)可以帶上CA的簽名。而CA的安全性由操作系統(tǒng)或?yàn)g覽器來認(rèn)證。你的Windows、Mac、Linux、Chrome、Safari等會(huì)在安裝時(shí)帶上一個(gè)他們認(rèn)為安全的CA證書列表。如果和你建立安全連接的人帶著這些人的簽名,那么認(rèn)為這個(gè)安全連接是安全的,沒有遭到中間人攻擊。

CA證書通常情況下是安全的。因?yàn)橐坏┠硞€(gè)CA頒發(fā)出的某個(gè)證書被用于了非法用途,瀏覽器和操作系統(tǒng)一般會(huì)通過更新將整個(gè)CA頒發(fā)過的全部證書全部視為不安全。這使得CA通常在頒發(fā)證書時(shí)是比較小心的。

所以通過對(duì)稱加密+非對(duì)稱加密+CA認(rèn)證這三個(gè)技術(shù)混合在一起,才使得HTTP的后面加上了一個(gè)S——Security。實(shí)際上HTTPS的協(xié)議比我這里描述的更復(fù)雜一些,我這里說的主要是基本的實(shí)現(xiàn)原理。因?yàn)槠渲腥魏我画h(huán)稍有閃失,就會(huì)使得整個(gè)加密都將變得不安全。這也是為什么HTTPS的加密協(xié)議從SSL1.0升級(jí)到SSL3.0再被TLS1.0現(xiàn)在被TLS1.2取代,其背后都是一環(huán)環(huán)細(xì)節(jié)上的修改,以防任何地方的閃失。

但即使如此,你的HTTPS盡可能的保證了你傳輸?shù)陌踩?,但這種安全也不是絕對(duì)的。比如CA證書出了問題被用于了中間人攻擊,在短期內(nèi),你的安全將會(huì)陷入直接的麻煩直到瀏覽器或操作系統(tǒng)重新更新了你的CA列表或者你手動(dòng)調(diào)整了這個(gè)列表。但大多情況下不必杞人憂天,它基本上是安全的。

當(dāng)然了,路由也可以選擇直接丟包,它看不到的,也不讓你看到。

相關(guān)文章

  • 跨站攻擊之實(shí)現(xiàn)Http會(huì)話劫持的手法

    Web應(yīng)用程序是通過2種方式來判斷和跟蹤不同用戶的:Cookie或者Session(也叫做會(huì)話型Cookie)。其中Cookie是存儲(chǔ)在本地計(jì)算機(jī)上的,過期時(shí)間很長(zhǎng),所以針對(duì)Cookie的攻擊手段
    2008-10-08
  • 黑客利用跨站實(shí)現(xiàn)HTTP會(huì)話劫持

    Web應(yīng)用程序是通過2種方式來判斷和跟蹤不同用戶的:Cookie或者Session(也叫做會(huì)話型Cookie)。其中Cookie是存儲(chǔ)在本地計(jì)算機(jī)上的,過期時(shí)間很長(zhǎng),所以針對(duì)Cookie的攻擊手
    2008-10-08
  • 關(guān)于網(wǎng)址的HTTP頭引發(fā)的我們關(guān)于安全問題的思考

    本文主要介紹了HTTP頭所引發(fā)的問題.我們來剖析一下.了解清楚
    2012-05-25
  • 基于Http Header的SQL注入的方法詳解

    通常HTTP消息包括客戶機(jī)向服務(wù)器的請(qǐng)求消息和服務(wù)器向客戶機(jī)的響應(yīng)消息。這兩種類型的消息由一個(gè)起始行,一個(gè)或者多個(gè)頭域,一個(gè)只是頭域結(jié)束的空行和可選的消息體組成。
    2012-06-27
  • 4個(gè)常用的HTTP安全頭部

    由于HTTP是一個(gè)可擴(kuò)展的協(xié)議,各瀏覽器廠商都率先推出了有效的頭部,來阻止漏洞利用或提高利用漏洞的難度。了解它們是什么,掌握如何應(yīng)用,可以提高系統(tǒng)的安全性
    2014-07-14
  • 加密解密那些事之SSL(https)中的對(duì)稱加密與非對(duì)稱加密

    HTTPS在傳輸數(shù)據(jù)之前需要客戶端(瀏覽器)與服務(wù)端(網(wǎng)站)之間進(jìn)行一次握手,在握手過程中將確立雙方加密傳輸數(shù)據(jù)的密碼信息。TLS/SSL協(xié)議不僅僅是一套加密傳輸?shù)膮f(xié)議,更
    2014-07-17

最新評(píng)論