前言
本篇介紹了構(gòu)造http請(qǐng)求的的五種方式,簡(jiǎn)單的使用postman構(gòu)造http請(qǐng)求,進(jìn)一步了解https, 學(xué)習(xí)https的加密過(guò)程,了解對(duì)稱密鑰與非對(duì)稱密鑰對(duì)于加密是如何進(jìn)行的,如有錯(cuò)誤,請(qǐng)?jiān)谠u(píng)論區(qū)指正,讓我們一起交流,共同進(jìn)步!
本文開(kāi)始
1. 構(gòu)造http請(qǐng)求的方式
1) 直接在瀏覽器中的地址欄中輸入一個(gè) url, 就會(huì)構(gòu)造一個(gè)get請(qǐng)求;
2)在html中一些特殊的標(biāo)簽,也會(huì)觸發(fā) get 請(qǐng)求;
例如:① link ② img中的src屬性 ③ a ④ script 等等
3)html中 form 表單可觸發(fā) get 和 post請(qǐng)求
【注】form 表單只支持 get 與 post
4)ajax 構(gòu)造http 請(qǐng)求 - 通過(guò) jquery 中的api構(gòu)造
【注】$ 是特殊的全局變量,可用 jQuery 代替 $;success是回調(diào)函數(shù),不是馬上執(zhí)行,需要執(zhí)行的時(shí)候馬上處理響應(yīng);(body是響應(yīng)的正文)
5)使用 postman 工具直接構(gòu)造http請(qǐng)求
下載完后,postman 使用流程:
① 首先創(chuàng)建 workspace
② 創(chuàng)建workspace 填寫(xiě)具體信息
③ 創(chuàng)建完畢workspace 點(diǎn)擊 + 號(hào)創(chuàng)建標(biāo)簽頁(yè)
④ 點(diǎn)擊save 可以修改名稱,例如修改名稱為 “請(qǐng)求test”
⑤ 點(diǎn)擊構(gòu)造目標(biāo)請(qǐng)求
⑥ 查看構(gòu)造完成的請(qǐng)求
⑦ postman 可以代碼生成請(qǐng)求
2. https - 在http上加密
2.1 為什么會(huì)有https?
https 是在http上加了一層密,為了減少例如運(yùn)行商劫持,黑客篡改這樣的事情發(fā)生,所以就有了https;
明文:在網(wǎng)絡(luò)上傳輸數(shù)據(jù),沒(méi)有加密的數(shù)據(jù);
密文:在網(wǎng)絡(luò)上傳輸數(shù)據(jù),經(jīng)過(guò)加密的數(shù)據(jù);
2.2 加密方式
① 對(duì)稱加密 :只有一個(gè)密鑰 key,且加密和解密使用同一個(gè)密鑰;
明文 + 密鑰 =》密文
密文 + 密鑰 =》明文
優(yōu)點(diǎn):計(jì)算速度快;
② 非對(duì)稱加密:有兩個(gè)密鑰,公鑰 public, 私鑰 private
明文 + 公鑰 =》密文 或 明文 + 私鑰 =》密文
密文 + 私鑰 =》 明文 或 密文 + 公鑰 =》明文
2.3 https加密 基本過(guò)程
1)使用對(duì)稱密鑰 key 加密數(shù)據(jù)
使用對(duì)稱密鑰,保證業(yè)務(wù)數(shù)據(jù)的安全;
思想:直接傳輸?shù)臄?shù)據(jù),是明文不安全,對(duì)數(shù)據(jù)加密變?yōu)槊芪?,密文需要?duì)應(yīng)的密鑰解密,每個(gè)客戶端的密鑰都是不同的,需要客戶端將自己生成的對(duì)稱密鑰 key 發(fā)送給服務(wù)器;
傳輸密鑰會(huì)發(fā)生的問(wèn)題:在網(wǎng)絡(luò)傳輸過(guò)程中密鑰key可能會(huì)別黑客進(jìn)行截獲,所以需要對(duì)對(duì)稱密鑰key進(jìn)行再次加密,引入了 非對(duì)稱密鑰 對(duì) 對(duì)稱密鑰 進(jìn)行加密;
2)引入 非對(duì)稱密鑰
目的:對(duì) 對(duì)稱密鑰 進(jìn)行加密傳給服務(wù)器;非對(duì)稱密鑰,安全傳輸對(duì)稱密鑰;
服務(wù)器生成一對(duì)非對(duì)稱密鑰:公鑰(pub), 私鑰(pri);
思想:客戶端首先請(qǐng)求服務(wù)器公鑰pub, 客戶端獲取公鑰pub, 會(huì)對(duì)自己生成的對(duì)稱密鑰key進(jìn)行加密,再傳輸給服務(wù)器;黑客可以獲取密文但是此時(shí)無(wú)服務(wù)器私鑰無(wú)法解密;服務(wù)器此時(shí)獲取對(duì)稱密鑰key, 之后客戶端與服務(wù)器之間使用密鑰key加密傳輸數(shù)據(jù);
會(huì)產(chǎn)生的問(wèn)題:黑客自己構(gòu)造出一對(duì)非對(duì)稱密鑰,與客戶端進(jìn)行交互獲取密鑰key, 再與服務(wù)器交互將密鑰傳輸給服務(wù)器,此時(shí)客戶端再與服務(wù)器交互黑客就看以獲取它們之間的數(shù)據(jù);由此引入中間人攻擊;
非對(duì)稱密鑰傳輸過(guò)程如圖:
三個(gè)密鑰,客戶端的對(duì)稱密鑰key, 服務(wù)器公鑰pub,私鑰pri;
3)中間人攻擊
中間人攻擊,黑客能拿到對(duì)稱密鑰
思想:黑客通過(guò)自己生成公鑰pub2, 私鑰pri2, 將自己的公鑰pub2傳給客戶端,客戶端使用pub2加密對(duì)稱密鑰key再傳輸;此時(shí)黑客就能通過(guò)自己的私鑰pri2解密得到對(duì)稱密鑰key;黑客將服務(wù)器傳來(lái)的公鑰pub記錄,得到密鑰后將對(duì)稱密鑰key重新加密傳輸給服務(wù)器,服務(wù)器就能通過(guò)服務(wù)器私鑰pri解密得到key; 所以之后的數(shù)據(jù)就會(huì)被黑客知道;
4)引入證書(shū)
引入證書(shū),客戶端能檢驗(yàn)該公鑰是否正確;
1.了解證書(shū)中基本包含的信息
服務(wù)器域名,證書(shū)的過(guò)期時(shí)間,證書(shū)頒發(fā)機(jī)構(gòu)名稱,服務(wù)器公鑰,加密后的簽名等;
【注】簽名:就是校驗(yàn)和,對(duì)證書(shū)中的所有屬性進(jìn)行計(jì)算的一個(gè)值
,會(huì)被機(jī)構(gòu)的私鑰進(jìn)行加密;
2.客戶端如何檢驗(yàn)證書(shū)中的簽名?(得到兩次簽名看是否一致)
① 首先得到證書(shū)中的簽名,客戶端使用操作系統(tǒng)中自帶的權(quán)威機(jī)構(gòu)的公鑰鑰解密得到校驗(yàn)和sum1
② 客戶端使用相同的算法重新計(jì)算一遍簽名,得到校驗(yàn)和sum2
③ 如果sum1 == sum2,說(shuō)明證書(shū)沒(méi)有被篡改過(guò),可以使用里面的公鑰;如果sum1 != sum2,說(shuō)明證書(shū)中的數(shù)據(jù)被修改過(guò),客戶端瀏覽器報(bào)錯(cuò);
【注】每個(gè)客戶端的操作系統(tǒng)上都有權(quán)威機(jī)構(gòu)的公鑰pub3,這里的pub3是用來(lái)解密證書(shū)的; (私鑰pri3只有權(quán)威機(jī)構(gòu)有)
服務(wù)器端在申請(qǐng)證書(shū)后,會(huì)把自己的公鑰pub2放入證書(shū),再使用權(quán)威機(jī)構(gòu)放發(fā)的私鑰pri3重新加密證書(shū),發(fā)給客戶端;
3.為什么黑客會(huì)篡改失敗呢?
黑客篡改過(guò)程: (黑客根據(jù)公鑰pub3解密證書(shū),但是無(wú)私鑰pri3無(wú)法加密證書(shū))
① 黑客可以獲取到證書(shū)的服務(wù)器公鑰pub, 替換自己的公鑰pub2;
② 黑客根據(jù)證書(shū)重新計(jì)算簽名;
③ 黑客沒(méi)有權(quán)威機(jī)構(gòu)的私鑰pri3無(wú)法對(duì)重新計(jì)算的簽名重新加密,所以篡改失?。?/p>
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-537462.html
總結(jié)
???各位讀友,本篇分享到內(nèi)容如果對(duì)你有幫助給個(gè)??贊鼓勵(lì)一下吧?。?br> 感謝每一位一起走到這的伙伴,我們可以一起交流進(jìn)步?。?!一起加油吧?。?!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-537462.html
到了這里,關(guān)于計(jì)算機(jī)網(wǎng)絡(luò) - http協(xié)議 與 https協(xié)議(2)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!