Https的前世今生

1、年前會議

馬上要過年了,公司業務上的需求也少了很多,這不,王小二他們召開了一場技術會議,盤點年前能干點啥。

只見C哥寫了一份清單,其中一項是全站升級https。

C哥說:https是一種趨勢,但目前我們接口還是http的。appstore也一直要求使用https,從安全性以及appstore審核的角度來看,我們年前得全站升級https。有誰自告奮勇嗎?

小二想了一下:我來做吧C哥,正好了解下https。

C哥:好,小二,那你接下來研究下https,然后有時間再給我們分享下。

小二:好的C哥,保證完成!

2、深藏不露張三胖

聽說小二要做https,運維張三胖走到小二身旁。

張三胖:小二,聽說你要做https?

小二:是啊,三胖哥,我們得全站升級https。你之前了解過嗎?

張三胖:哈哈,我還真了解過,升級https是個不錯的注意。

小二:三胖哥,那太好了,你有時間給我講講?我就不用花時間去查資料了。

張三胖:好,我現在正有時間,給你講講,也正好復習下。

小二:多謝三胖哥,今中午請你吃飯啊。

3、對稱加密不足夠

三胖:小二,假設你用http協議給你女朋友發一封私密消息。這樣有沒有泄密的風險呢?

小二:當然有了,http協議是明文傳輸,傳輸數據過程中的任何第三方都可以截獲并篡改該明文。

三胖微微一笑:是的,我們畫幅圖表示下,你就知道信息被篡改多尷尬了,哈哈。

小二:啊?確實是,那這樣太尷尬了。我女朋友不打死我...

三胖:其實用https就可以規避。

三胖:小二,你了解對稱加密與非對稱加密嗎?

小二:了解一些。對稱加密就是加密與解密的秘鑰是相同的。而非對稱加密就是公鑰加密的內容,必須用私鑰才能解密,私鑰加密的內容,必須用公鑰才能解密。

三胖:小二了解的還挺多嘛,其實https就是利用了對稱加密與非對稱加密的特性。但你要注意,對稱加密的速度是非對稱加密速度的100倍左右。

小二:三胖哥我明白了,那你用剛才的例子給我講講https的原理吧。

三胖:好,就用剛才的例子。對稱加密速度很快,所以你跟你女朋友的數據傳輸最好用對稱加密。

小二:可以啊,那我跟我女朋友就先約定好一個秘鑰唄?

三胖:是的,我們再畫張圖表示你們的數據傳輸過程。

小二:是啊,胖哥,這樣別人就沒法截獲我的信息了。

三胖:對。并且因為對稱加解密的速度很快,對你們數據傳輸速度的影響微乎其微。但是,你怎么跟你女朋友溝通協商秘鑰呢?

小二:這還不簡單,我直接網上告訴他就可以啊。

三胖:哈哈,不可以。你明文通過網絡傳輸的秘鑰被人截取了怎么辦?

小二:啊?確實是,別人截取秘鑰后又可以篡改我的信息了。

三胖:這時候就需要用到我們的非對稱加密來協商你們對稱加密的秘鑰了。

4、非對稱加密解憂愁

三胖:小美生成自己的公鑰和私鑰,通信之前,她告訴你她的公鑰就可以了,這個公鑰因為是公開的,所以可以隨意在網絡中傳輸了。

小二:這樣啊,我明白了C哥。我得到小美的公鑰后,然后用小美的公鑰,對對稱加密的密碼進行非對稱加密后發給小美。小美再通過他的私鑰解密后,就獲取了我生成的對稱加密的密碼了。是不是?

三胖:對,就是這樣的。但是還有一個頭疼的問題,你怎么確保你得到的就是小美的公鑰呢?假設中間人給你截獲篡改了呢?

小二:嗯...這確實是個問題。中間人把他的公鑰發給我,這樣我就使用中間人的公鑰加密我們對稱加密的密碼了,然后中間人再用他的私鑰解密出我們對稱加密的密碼。這時候中間人已經截取了小美的公鑰,然后再把我們對稱加密的密碼通過小美的公鑰加密后發給小美...太可怕了,我們對稱加密的秘鑰就這樣被竊取了。

三胖:其實抓包工具charles之所以能抓https的包,就是利用的你說的這個原理,一會我們再細說。那現在問題就變成了,你怎么確保你得到的公鑰就是小美的。

小二:哎,真讓人頭疼...

三胖:你知道我們平時都有公證處吧?這個公證處是一個可信的結構,經他公證的東西,都是具有可信力度的。

小二:知道啊,前幾天還看新聞說一個老太把他在帝都的一套房產通過公證處公證給了一個沒有血緣關系的小伙。

三胖:那你想想,如果小美的公鑰經過公證后,是不是就能證明這個公鑰是小美的呢?

小二:當然能夠證明。只是網絡中存在這樣的公證處嗎?

三胖:還真存在這樣的公證處,我們把網絡中的公證處稱為CA吧。不得不佩服前輩們,他們把一些可信的CA的證書都預先存在我們的電腦里了,證書包括CA的信息和CA的公鑰。只要你電腦安裝了系統,就安裝了這些證書。來,你看看我電腦里默認安裝的證書。

小二:哦哦,明白了,意思就說這些默認的CA證書是絕對可信的。

三胖:對,就是這個意思。所以,只要CA同時給小美頒發一個證書證明是小美就可以了。CA給小美頒發的證書中,含有小美的個人信息以及小美的公鑰。同時,CA也會給小美頒發一個私鑰。

你先把小美想象成百度,我們先來看CA給百度頒發的證書。

小二:也就是說,只要保證CA給小美頒發的證書能夠安全傳輸到我這里來就可以了。

三胖:對,現在的問題就轉換成了。小美的證書如何能夠安全的傳輸到你這里?其實,CA給小美頒發的證書中,包含【小美的信息+公鑰】、以及數字簽名。 數字簽名的內容是:使用CA私鑰加密過的【小美的信息+公鑰】的hash值。

小二:哦哦,我好像明白了。CA的證書包含CA的公鑰以及CA的一些信息,并且CA的證書默認存儲在我的電腦里了,那我就可以使用CA的公鑰進行解密操作,從而驗證小美的證書是否是正確的了。

三胖:對的。我們可以使用你電腦里CA的公鑰解密小美證書里的數字簽名,從而得到簽名的hash值。然后,你再用同樣的hash算法對【小美的信息+公鑰】進行hash計算。如果小美證書里簽名的hash值與你自己計算出來的hash值一致,就說明這個證書確實是小美的,否則就不是小美的證書。

小二:三胖哥,我算是明白了。https還真是麻煩,但也確實保護了我們的隱私。

三胖:對,有失必有得嘛!

小二:嗯嗯。我現在通過小美的證書安全的獲取了小美的公鑰。那我這兒隨機生成一個對稱加密的秘鑰,這個對稱加密的秘鑰再通過小美的公鑰加密后,就能安全的傳輸給小美了。

三胖:是,小美再用他的私鑰解密,就獲取了你們約定的對稱加密的密碼了。以后,你們就可以使用對稱加密來傳輸數據,暗送秋波了,哈哈~

小二:三胖哥真是太厲害了,從此再也不用擔心跟我女朋友聊天被惡搞了。

三胖:哈哈。你把你自己想成瀏覽器,把小美想成服務器。這就是整個https的傳輸流程。

小二:明白了,我畫一下https在瀏覽器與服務器之間的運行流程,三胖哥你看下對不對。

三胖:不錯不錯,小二很厲害嘛,基本就是這個流程。

小二:沒有沒有,還得多謝三胖哥的指教啊,哈哈。

5、Charles抓取https包的原理

三胖:小二,我們知道charles抓包工具能夠抓取https的包,你知道這是什么原理嗎?

小二:這我還真不知道,按理說https是絕對安全的協議,內容不會被charles抓取啊。

三胖:你記不記得,使用charles抓https包的時候,需要在你手機上安裝charles證書并且信任該證書

小二:對對,是有這一步操作。

三胖:就是這一步操作,可以使Charles抓取你的https包。我給你畫個流程圖你就明白了。

小二:原來是這樣,這不就是我剛才說的問題嘛。那么就說明https不是安全的協議了?

三胖:不是的。因為你安裝并信任charles證書,是你自己主動的操作,也可以說是你自己主動泄密的結果。如果你不信任該charles證書,那么數據就不會被傳輸,連接會被直接中斷。所以https還是安全的協議。

小二:我明白了,確實是這樣,多謝三胖哥。

Happy Done

https的原理明白了,接下來的事情自然就水到渠成了。

小二列出了接下來要做的事情: 1、向CA(公證處)申請自己網站的證書; 2、修改代碼里靜態資源的http鏈接為https鏈接; 3、修改ajax里面的http鏈接為https鏈接; 4、將證書部署在nginx上; 5、自測完成。

按照這個列表,小二一步步的順利完成了。

最終,https上線完成,愜意的享受午后的陽光吧,happy done~


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539494.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539494.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539494.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

combobox控件 如何把三角形放大_初中數學|全等三角形全部知識點總結

今天,琦老師為大家整理了[初中數學重要考點,全等三角形的全部知識點],希望幫助大家中考數學快速提分( #小學數學#初中數學#數學)除了圖片內容,大米君也為大家分享[如何靈活運用這些知識點的方法]大家記得跟著做起來哦~提高復習效果…

Spring中引入其他配置文件

原文:http://www.cnblogs.com/LiuChunfu/p/5605473.html ------------------------------------------------------------------------------ 一、引入其他 模塊XML   在Spring的配置文件,有時候為了分模塊的更加清晰的進行相關實體類的配置。 比如…

oracle不要重復記錄,Oracle中去重復記錄 不用distinct

用distinct關鍵字只能過濾查詢字段中所有記錄相同的(記錄集相同),而如果要指定一個字段卻沒有效果,另外distinct關鍵字會排序,效率很低 。select distinct name from t1 能消除重復記錄,但只能取一個字段,現在要同時取…

miui游戲驅動程序偏好設置_米粉必看:小米官方教你如何關閉 MIUI 廣告 - 小米,MIUI...

IT之家 11 月 9 日消息 小米的 MIUI 在用戶心中的口碑一直是比較好的,但該系統也并非完美,被吐槽的較多的一個點就是系統內的廣告比較多。今天,小米官方微博 小米服務那些事 分享了幾個能夠減少 MIUI 廣告的方法,米粉不妨了解一下…

Spring Cloud Zuul網關 Filter、熔斷、重試、高可用的使用方式。

時間過的很快,寫springcloud(十):服務網關zuul初級篇還在半年前,現在已經是2018年了,我們繼續探討Zuul更高級的使用方式。 上篇文章主要介紹了Zuul網關使用模式,以及自動轉發機制,但其實Zuul還有更多的應用…

oracle 9 插入日期,oracle date日期類型 精析

一、date1.date、sysdate格式說明展示date類型,展示格式既可以為:YYYY/MM/DD,也可以為YYYY/MM/DD HH24:MI:SS;其存儲格式只有一種:YYYY/MM/DD HH24:MI:SS展示格式一:當你只存年月日時,date實際存…

為什么使用NativeJdbcExtractor

原文:http://blog.csdn.net/hehexiaoyou/article/details/21019171---------------------------------------------------------------------------有時候必要會對數據庫clob、 blob數據型進行操作,再加上spring 環境不得不要啟用NativeJdbcExtractor 來…

CentOS 7.1下KVM的安裝與配置

由于沒有物理機可用,在自己的VMware Workation中CentOS 7搭建完成。 首先查看VMware Workation是否支持虛擬化,把紅框內打鉤即可。 虛擬化開啟并安裝CentOS系統,建議CentOS安裝64bit。我的環境用的是CentOS 7。進入系統,首先查看服…

軟件生成問候圖片_這些社交軟件你玩過幾個?

提到聊天軟件,我們的手機肯定安裝有微信QQ,不過微信QQ都是主打熟人社交,而下面幾個軟件都是陌生人社交。這些社交軟件,總有一款你安裝過。注意,非按排名介紹。第一款:陌陌陌陌是一款基于地理位置的開放式移動視頻社交應…

通過Sqoop實現Mysql / Oracle 與HDFS / Hbase互導數據

下文將重點說明通過Sqoop實現Mysql與HDFS互導數據,Mysql與Hbase,Oracle與Hbase的互導最后給出命令。一、Mysql與HDFS互導數據環境: 宿主機器操作系統為Win7,Mysql安裝在宿主機上,宿主機地址為192.168.66.963臺虛擬機操作系統為Ubu…

Android5.0新控件

谷歌在推出Android5.0的同時推出了一些新控件,Android5.0中最常用的新控件有下面5種。 1. CardView(卡片視圖) CardView顧名思義是卡片視圖,它繼承FrameLayout。它是一個帶圓角的背景和陰影FrameLayout。CardView被包裝為一種布局…

python中要使用導入全部的是什么符號-在python格式字符串中使用標點符號

這是因為您可以使用格式迷你語言來訪問對象的屬性.例如,我經常在自己的自定義類工作中使用它.假設我為每臺需要處理的計算機定義了一個類. class Computer(object): def __init__(self,IP): self.IP IP 而現在我想對整個計算機做一些事情 list_comps [Computer(name,"19…

oracle 讀懂10046視頻,10046、10053、實操記錄

10046是一個Oracle的內部事件(event),通過設置這個事件可以得到Oracle內部執行系統解析、調用、等待、綁定變量等詳細的trace信息,即幫助我們解析一條/多條SQL、PL/SQL語句的運行狀態,這些狀態包括:Parse/Fetch/Execute三個階段中…

linux重定向文件被修改后,Linux服務器修改.htaccess文件實現301重定向

出于 SEO、PR 值傳遞、網址轉換的目的,在網站初建和網站遷移時我們都需要使用 301 重定向,通常包括域名對域名,目錄對目錄和一個獨立網址對另一個獨立網址的重定向。在虛擬主機上作 301 重定向,最常用的方法有2種:第一…

Druid使用起步—在javaWeb項目中配置監控

原文章:http://my.oschina.net/u/568779/blog/152813 ---------------------------------------------------- druid wiki 當我們在javaWEB項目中使用到druid來作為我們的連接池的時候,一定不會忘了添加監控功能。下面我們就來看一下,在一個…

[譯] 想幫助用戶做決定?你的APP可以這樣設計!

原文地址:Design your app for decision-making原文作者:Jeni譯文出自:掘金翻譯計劃本文永久鏈接:github.com/xitu/gold-m…譯者:PTHFLY校對者:ryouaki想幫助用戶做決定?你的APP可以這樣設計&am…

ip地址管理系統_門禁監控管理系統項目總結

門禁監控管理系統項目總結1、門禁管理設備(IFACE802) 16臺 ,都有獨立的網線到控制的房間。IP地址從 192.168.1.101--192.168.1.116。(地下一層 新家的最后一間是在附近的一個房間接的網線。一層的大門 有1臺控制器和IFACE802 部署了2根網線)2、門禁控制的IP地址 192.168.1.1173…

linux mount命令銜接,Linux mount命令詳解:掛載Linux系統外的文件

Linux mount命令詳解:掛載Linux系統外的文件《Linux掛載》一節講到,所有的硬件設備必須掛載之后才能使用,只不過,有些硬件設備(比如硬盤分區)在每次系統啟動時會自動掛載,而有些(比如 U 盤、光盤)則需要手動進行掛載。…

targetFilterLifecycle的作用

targetFilterLifecycle的作用&#xff0c;有需要的朋友可以參考下。 在web.xml中進行配置&#xff0c;對所有的URL請求進行過濾&#xff0c;就像"擊鼓傳花"一樣&#xff0c;鏈式處理。 配置分為兩種A和B。 A:普通配置 在web.xml中增加如下內容&#xff1a;<fi…

平板電腦可以插u盤嗎_有手機還需要平板電腦嗎 酷比魔方iplay30平板電腦評測

原標題&#xff1a;有手機還需要平板電腦嗎 酷比魔方iplay30平板電腦評測一、前言&#xff1a;前段時間我們一幫60歲左右的退休老頭、老太太到農家樂去玩&#xff0c;玩累了就開始喝茶&#xff0c;一坐下來&#xff0c;人人都把手機掏出來&#xff0c;看著他們看手機的姿勢&…