HTTPS,你不知道的事兒

what is https?

HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer)瓶埋,是以安全為目標(biāo)的HTTP通道篮愉,簡(jiǎn)單講是HTTP的安全版。即HTTP下加入SSL層集侯,HTTPS的安全基礎(chǔ)是SSL被啼,因此加密的詳細(xì)內(nèi)容就需要SSL。

看到上面定義棠枉,我們大致也明白了HTTPS其實(shí)就是一個(gè)經(jīng)過加密后的HTTP浓体,具有更高的安全性。因此我們就需要了解一下經(jīng)過加密的HTTPS是如何工作的辈讶?

加密算法

筆者目前所了解到的算法歸為三類:

  • 對(duì)稱加密

  • 對(duì)稱密碼編碼技術(shù)

  • 編碼和解碼采用相同描述字符(加密命浴、解密采用相同密鑰)

  • 對(duì)稱加密使用簡(jiǎn)單

  • 密鑰較短

  • 加密、解密過程較快贱除、耗時(shí)短

  • 常見算法有:DES生闲、3DES、IDEA月幌、AES跪腹、RC4等等

  • 非對(duì)稱加密

  • 加密需要兩個(gè)密鑰:公鑰(publickey)、私鑰(privatekey)

  • 公鑰加密飞醉,私鑰才能解密

  • 保密性好

  • 加密冲茸、解密過程較慢、耗時(shí)多

  • 適合對(duì)少量數(shù)據(jù)加密

  • 常見算法有:RSA缅帘、ECC轴术、DSA等等

  • Hash算法加密

  • 單向加密

  • 通過Hash算法對(duì)數(shù)據(jù)加密生成唯一Hash值,此值無法計(jì)算出原來的數(shù)據(jù)

  • 頻繁應(yīng)用于數(shù)據(jù)完整性檢驗(yàn)

  • 常用算法有:SHA钦无、MD2逗栽、MD4、MD5等等

how to work

在弄清HTTPS如何工作前失暂,我需要了解兩個(gè)概念:

密鑰

  • 加密或解密都需要一個(gè)密鑰彼宠,正如開門或鎖門都需要一把鑰匙

  • Java中密鑰由KeyGenerator或KeyPairGenerator生成的

  • 對(duì)稱密鑰(KeyGenerator生成的)

  • 使用同一個(gè)密鑰加密或加密

  • 非對(duì)稱密鑰(KeyPairGenerator生成的)

  • 公鑰(pulickey)廣泛用做傳播,主要用做加密弟塞,私鑰(privatekey)用做解密(公鑰加密后的數(shù)據(jù)只有私鑰才能解密)

證書

  • 證書是一個(gè)許可證凭峡,用來證明這個(gè)證書的可信賴的
  • 證書中可能內(nèi)置密鑰
  • android系統(tǒng)內(nèi)置了很多證書,證書之間存在一定信任關(guān)系决记,信任是嵌套的摧冀,為了確保密鑰的更高安全性

了解上面兩個(gè)概念后,接下來我們來了解下HTTPS如何安全通信?前面在定義HTTPS時(shí)講到HTTPS是一種加密的HTTP索昂,為了更高的安全性建车,沒錯(cuò),密鑰和證書正是特定設(shè)計(jì)來實(shí)現(xiàn)HTTPS安全通信的椒惨。

說到安全通信缤至,我們可能先想到對(duì)稱加密算法,思路如下:

  • 將數(shù)據(jù)加密
  • 將加密后的數(shù)據(jù)和密鑰同時(shí)傳給服務(wù)器
  • 服務(wù)器利用傳來的密鑰解密數(shù)據(jù)

以上這種方案存在很大漏洞康谆,假如加密后的數(shù)據(jù)和密鑰被黑客給截獲领斥,黑客拿著密鑰直接把加密后的數(shù)據(jù)給解密了,這樣數(shù)據(jù)就泄漏出去了秉宿。

1132780-f58fe3a5c5a7c281.jpg

既然對(duì)稱算法不行,那就來試試非對(duì)稱算法屯碴,思路如下:

  • 服務(wù)器將公鑰發(fā)給客戶端
  • 客戶端將數(shù)據(jù)采用公鑰加密然后發(fā)送給服務(wù)器
  • 服務(wù)器收到客戶端加密數(shù)據(jù)描睦,用私鑰解密數(shù)據(jù)

以上這個(gè)方案貌似不錯(cuò),看過前面加密算法說明的童鞋應(yīng)該清楚非對(duì)稱算法有缺陷导而,就是加密忱叭、解密過程較慢、耗時(shí)多今艺,影響用戶體驗(yàn)韵丑。

1132780-4e0c4064e76528b6.jpg

那有木有更好的方案呢?必須有啦~~HTTPS最終采用的安全通信方案虚缎,大家看清楚啦~

1132780-2d7d1306d1b86b65.jpg

思路如下:

  • 服務(wù)器生成一對(duì)非對(duì)稱加密密鑰:公鑰(publickey)撵彻、私鑰(privatekey)
  • 服務(wù)器將公鑰(publickey)發(fā)送給客戶端
  • 客戶端生成對(duì)稱加密密鑰(clientkey),利用clientkey給數(shù)據(jù)加密
  • 客戶端使用服務(wù)器傳來的公鑰(publickey)給clientkey進(jìn)行加密、此時(shí)clientkey是安全的实牡,因?yàn)橹挥蟹?wù)器才有私鑰(private)能解密它
  • 客戶端發(fā)送用clientkey加密過的數(shù)據(jù)和用公鑰(publickey)加密過的clientkey給服務(wù)器
  • 服務(wù)器使用私鑰(privatekey)解密用公鑰(publickey)加密過的clientkey陌僵,得到真的clientkey
  • 使用clientkey解密數(shù)據(jù),這樣數(shù)據(jù)就安全地從客戶端傳給服務(wù)器了创坞。

總結(jié)

由于對(duì)稱加密算法比非對(duì)稱加密算法效率高碗短、性能好,https決定采用對(duì)稱加密算法來加密解密數(shù)據(jù)题涨,使用非對(duì)稱加密算法加密解密對(duì)稱算法密鑰偎谁,以確保通信安全。

1132780-253900d649118aa0.jpg

關(guān)于作者

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纲堵,一起剝皮案震驚了整個(gè)濱河市巡雨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌席函,老刑警劉巖鸯隅,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蝌以,警方通過查閱死者的電腦和手機(jī)炕舵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跟畅,“玉大人咽筋,你說我怎么就攤上這事』布” “怎么了奸攻?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)虱痕。 經(jīng)常有香客問我睹耐,道長(zhǎng),這世上最難降的妖魔是什么部翘? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任硝训,我火速辦了婚禮,結(jié)果婚禮上新思,老公的妹妹穿的比我還像新娘窖梁。我一直安慰自己,他們只是感情好夹囚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布纵刘。 她就那樣靜靜地躺著,像睡著了一般荸哟。 火紅的嫁衣襯著肌膚如雪假哎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天鞍历,我揣著相機(jī)與錄音位谋,去河邊找鬼。 笑死堰燎,一個(gè)胖子當(dāng)著我的面吹牛掏父,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播秆剪,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赊淑,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了仅讽?” 一聲冷哼從身側(cè)響起陶缺,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎洁灵,沒想到半個(gè)月后饱岸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掺出,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年苫费,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汤锨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡百框,死狀恐怖闲礼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情铐维,我是刑警寧澤柬泽,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站嫁蛇,受9級(jí)特大地震影響锨并,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜睬棚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一第煮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闸拿,春花似錦空盼、人聲如沸书幕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽台汇。三九已至苛骨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間苟呐,已是汗流浹背痒芝。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留牵素,地道東北人严衬。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像笆呆,于是被迫代替她去往敵國(guó)和親请琳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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