HTTP和HTTPS

HTTP的缺點(diǎn)

要不足表現(xiàn)在如下幾個(gè)方面:

  • 通信使用明文(不加密)笛洛,內(nèi)容可能會被竊聽

  • 不驗(yàn)證通信方的身份垦巴,因此可能遭遇偽裝

  • 無法證明報(bào)文的完整性岳锁,所以有可能已被篡

通信使用明文可能被竊聽

http本身不具有加密功能凌蔬,無法做到對通信整體(使用http協(xié)議通信的請求和響應(yīng)內(nèi)容)進(jìn)行加密琳要,即:http報(bào)文使用明文(未經(jīng)加密的報(bào)文)方式傳送

TCP/IP協(xié)議族的通信機(jī)制:通信內(nèi)容在所有通信線路上都可能被窺視

應(yīng)對措施:對通信進(jìn)行加密處理防止被竊聽

加密對象:

①.通信的加密

http協(xié)議沒有加密機(jī)制闲礼,可以通過SSL(Secure Socket Layer:安全套接層)或TLS(Transport Layer Security:安全層傳輸協(xié)議)組合使用牍汹,

加密http的通信內(nèi)容,這就是常說的https(超文本傳輸安全協(xié)議)

②.內(nèi)容的加密

http協(xié)議沒有加密機(jī)制柬泽,對傳輸?shù)膬?nèi)容本身進(jìn)行加密慎菲,即報(bào)文實(shí)體主體部分;客戶端對請求報(bào)文加密處理后傳輸锨并,但前提是客戶端和服務(wù)器都具有加密和解密機(jī)制露该,

主要應(yīng)用于WEB服務(wù)中(但仍然有被篡改的風(fēng)險(xiǎn))

不驗(yàn)證通信方身份,可能遭遇偽裝

http協(xié)議中請求和響應(yīng)不會對通信方進(jìn)行確認(rèn)第煮,即存在“服務(wù)器是否是發(fā)送請求中URI真正指定的主機(jī)解幼。返回的響應(yīng)是否真的返回到實(shí)際提出請求的客戶端”等類似問題

任何人都可以發(fā)起請求,服務(wù)器只要接收到請求包警,不管對方是誰都會返回一個(gè)響應(yīng)(僅限于發(fā)送端IP和端口號沒有被WEB服務(wù)器設(shè)定限制訪問的前提下)

http協(xié)議的隱患有以下幾點(diǎn):

①.無法確定請求發(fā)送至目標(biāo)的web服務(wù)器是否是按真實(shí)意圖返回響應(yīng)的服務(wù)器撵摆;有可能是已偽裝的服務(wù)器

②.無法確定響應(yīng)返回到的客戶端是否是按真實(shí)意圖接受響應(yīng)的那個(gè)客戶端;有可能是已偽裝的客戶端

③.無法確定正在通信的對方是否具備訪問權(quán)限害晦;因?yàn)槟承﹚eb服務(wù)器保存有重要信息特铝,只發(fā)給特定用戶通信的權(quán)限

④.無法判斷請求來自何方

⑤.即使時(shí)無意義的請求也會接收,無法阻止海量請求下的D0S攻擊(Denial of Service:拒絕服務(wù)攻擊)

無法證明報(bào)文完整性壹瘟,可能已遭篡改

完整性:指信息的準(zhǔn)確度鲫剿,若無法證明其完整性,意味著無法判斷信息是否正確

http協(xié)議無法證明通信的報(bào)文完整性稻轨,因此灵莲,請求或者響應(yīng)在傳輸過程中,如果遭到篡改殴俱,是無法知道的政冻;類似這種請求或響應(yīng)傳輸中被攻擊者攔截篡改的攻擊稱為中間人攻擊(Man-in-the-Middle attack,MITM)

防止篡改:常用的方法有MD5和SHA-1等散列值校驗(yàn)的方法,以及來確認(rèn)文件的數(shù)字簽名方法

HTTP+加密+認(rèn)證+完整性保護(hù)=HTTPS

通常把添加了加密和身份認(rèn)證機(jī)制的http協(xié)議稱為https(HTTP Secure)粱挡;證書可證明服務(wù)器或者客戶端的身份赠幕, https相當(dāng)于身披SSL外殼的http 。
https并非應(yīng)用層的一種新協(xié)議询筏,而是在http通信接口部分用SSL(Secure Socket Layer:安全套接字層)和TLS(Transport Layer Security:安全層傳輸協(xié)議)協(xié)議代替
通常榕堰,http和TCP直接通信,當(dāng)使用SSL時(shí),先由http和SSL通信逆屡,再由SSL和TCP通信

image.png

SSL是獨(dú)立于http的協(xié)議圾旨,其他應(yīng)用層的如SMTP何Telnet等協(xié)議都可以配合SSL進(jìn)行使用

SSL協(xié)議

SSL協(xié)議位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通訊)提供安全支持魏蔗。SSL協(xié)議可分為兩層: SSL記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如TCP)之上砍的,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮莺治、加密等基本功能的支持廓鞠。 SSL握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前谣旁,通訊雙方進(jìn)行身份認(rèn)證床佳、協(xié)商加密算法)、交換加密密鑰等榄审。

image.png

第一步砌们,客戶端發(fā)起明文請求:將自己支持的一套加密規(guī)則、以及一個(gè)隨機(jī)數(shù)(Random_C)發(fā)送給服務(wù)器搁进。
第二步浪感,服務(wù)器初步響應(yīng):服務(wù)器根據(jù)自己支持的加密規(guī)則,從客戶端發(fā)來的請求中選出一組加密算法與HASH算法饼问,生成隨機(jī)數(shù)影兽,并將自己的身份信息以證書(CA)的形式發(fā)回給瀏覽器。CA證書里面包含了服務(wù)器地址莱革,加密公鑰赢笨,以及證書的頒發(fā)機(jī)構(gòu)等信息。這時(shí)服務(wù)器給客戶端的包括選擇使用的加密規(guī)則驮吱、CA證書、一個(gè)隨機(jī)數(shù)(Random_S)萧吠。
第三步左冬,客戶端接到服務(wù)器的初步響應(yīng)后做四件事情:
(1)證書校驗(yàn): 驗(yàn)證證書的合法性(頒發(fā)證書的機(jī)構(gòu)是否合法,證書中包含的網(wǎng)站地址是否與正在訪問的地址一致等)纸型。
(2)生成密碼:瀏覽器會生成一串隨機(jī)數(shù)的密碼(Pre_master)拇砰,并用CA證書里的公鑰加密(enc_pre_master),用于傳給服務(wù)器狰腌。
(3)計(jì)算協(xié)商密鑰:
此時(shí)客戶端已經(jīng)獲取全部的計(jì)算協(xié)商密鑰需要的信息:兩個(gè)明文隨機(jī)數(shù) Random_C 和 Random_S 與自己計(jì)算產(chǎn)生的 Pre-master除破,計(jì)算得到協(xié)商密鑰enc_key。
(4)生成握手信息:使用約定好的HASH計(jì)算握手消息琼腔,并使用協(xié)商密鑰enc_key及約定好的算法對消息進(jìn)行加密瑰枫。
第四步,客戶端將第三步產(chǎn)生的數(shù)據(jù)發(fā)給服務(wù)器:
這里要發(fā)送的數(shù)據(jù)有三條:
(1)用公鑰加密過的服務(wù)器隨機(jī)數(shù)密碼enc_pre_master
(2)客戶端發(fā)給服務(wù)器的通知,”以后我們都要用約定好的算法和協(xié)商密鑰進(jìn)行通信的哦”光坝。
(3)客戶端加密生成的握手信息尸诽。
第五步,服務(wù)器接收客戶端發(fā)來的數(shù)據(jù)要做以下四件事情:(1)私鑰解密:使用自己的私鑰從接收到的enc_pre_master中解密取出密碼Pre_master盯另。
(2)計(jì)算協(xié)商密鑰:此時(shí)服務(wù)器已經(jīng)獲取全部的計(jì)算協(xié)商密鑰需要的信息:兩個(gè)明文隨機(jī)數(shù) Random_C 和 Random_S 與Pre-master性含,計(jì)算得到協(xié)商密鑰enc_key。
(3)解密握手消息:使用協(xié)商密鑰enc_key解密客戶端發(fā)來的握手消息鸳惯,并驗(yàn)證HASH是否與客戶端發(fā)來的一致商蕴。
(4)生成握手消息使用協(xié)商密鑰enc_key及約定好的算法加密一段握手消息,發(fā)送給客戶端芝发。
第六步绪商,服務(wù)器將第五步產(chǎn)生的數(shù)據(jù)發(fā)給客戶端:
這里要發(fā)的數(shù)據(jù)有兩條:
(1)服務(wù)器發(fā)給客戶端的通知,”聽你的后德,以后我們就用約定好的算法和協(xié)商密鑰進(jìn)行通信哦“部宿。
(2)服務(wù)器加密生成的握手信息。
第七步瓢湃,客戶端拿到握手信息解密理张,握手結(jié)束。
客戶端解密并計(jì)算握手消息的HASH绵患,如果與服務(wù)端發(fā)來的HASH一致雾叭,此時(shí)握手過程結(jié)束
第八步,正常加密通信
握手成功之后落蝙,所有的通信數(shù)據(jù)將由之前協(xié)商密鑰enc_key及約定好的算法進(jìn)行加密解密织狐。

HTTPS使用SSL(Secure Socket Layer:安全套接字層)和TLS(Transport Layer Security:安全層傳輸協(xié)議)這兩種協(xié)議

使用SSL時(shí),處理速度會變慢

①.通信慢:通信時(shí)候大量消耗CPU及內(nèi)存資源筏勒,相比較HTTP而已移迫,網(wǎng)絡(luò)負(fù)載可能變慢2-100倍(通信量增加)

②.加密處理:在服務(wù)器和客戶端都要進(jìn)行加密和解密,更多的消耗了服務(wù)器和客戶端硬件資源管行,導(dǎo)致負(fù)載增強(qiáng)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厨埋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子捐顷,更是在濱河造成了極大的恐慌荡陷,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迅涮,死亡現(xiàn)場離奇詭異废赞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)叮姑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門唉地,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事渣蜗⊥雷穑” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵耕拷,是天一觀的道長讼昆。 經(jīng)常有香客問我,道長骚烧,這世上最難降的妖魔是什么浸赫? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮赃绊,結(jié)果婚禮上既峡,老公的妹妹穿的比我還像新娘。我一直安慰自己碧查,他們只是感情好运敢,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著忠售,像睡著了一般传惠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稻扬,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天卦方,我揣著相機(jī)與錄音,去河邊找鬼泰佳。 笑死盼砍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逝她。 我是一名探鬼主播浇坐,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼黔宛!你這毒婦竟也來了吗跋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤宁昭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后酗宋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體积仗,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年蜕猫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寂曹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖隆圆,靈堂內(nèi)的尸體忽然破棺而出漱挚,到底是詐尸還是另有隱情,我是刑警寧澤渺氧,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布旨涝,位于F島的核電站,受9級特大地震影響侣背,放射性物質(zhì)發(fā)生泄漏白华。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一贩耐、第九天 我趴在偏房一處隱蔽的房頂上張望弧腥。 院中可真熱鬧,春花似錦潮太、人聲如沸管搪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽更鲁。三九已至,卻和暖如春寻狂,著一層夾襖步出監(jiān)牢的瞬間岁经,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工蛇券, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缀壤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓纠亚,卻偏偏與公主長得像塘慕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蒂胞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容