小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

HTTPS是如何工作的

 明亮的小屋 2017-05-29

HTTPS 是如何工作的?

by songzhw's blog

這篇文章來自于我在團隊的內(nèi)部分享。很多人可能不能很好的理解HTTPS,不能理解為什么HTTPS的代碼要那樣寫。因此我寫了這片博客,希望能讓更多人了解HTTPS。

密碼(Cipher)

Java 1.2內(nèi)置了一個叫做"JCE"(Java Crytography Extension)的系統(tǒng)。它主要負責(zé)Java內(nèi)部的密鑰和證書的管理。

眾所周知,我們要給一段信息加密或者解密,就必須要有密鑰。這就好比開門或者鎖門,你得有一把鑰匙。

這個密鑰可以用Java帶的KeyGenerator 或者 KeyPairGenerator生成。前者用于生成對稱密鑰,后者用于生成分對稱密鑰。

  • 對稱加密(symmetric cryptography) _ 使用相同的key加密和解密

  • 非對稱加密(asymmetric cryptography) — 使用不同的keys加密和解密。keys通常分為公鑰和私鑰。

公鑰也許分布廣泛,但是私鑰只有它的服務(wù)器知道。

在一個安全的非對稱加密方案中,當使用公鑰加密一段信息后,只有配對的私鑰可以解密這一段信息。因此,即使黑客拿到了公鑰加密信息,他也不能解密這一段信息。因為他沒有配對的私鑰。所以說,使用非對稱加密傳輸?shù)男畔⑹前踩摹?/p>

證書(Certificate)

生活中,假設(shè)你要買鉆石然后進入了一家鉆石店。你怎么能夠知道鉆石是真的。對于多數(shù)人來說,他們沒有鉆石相關(guān)的知識,是很難分辨鉆石的真假的。但是,如果這家店有美國政府發(fā)布的的鉆石營業(yè)執(zhí)照,你就能確定這家店賣的是真的鉆石。

證書在計算機世界好比上面說的營業(yè)執(zhí)照,它可能有另一些密鑰——另一個證書(假設(shè)是“B”)。這個密鑰正是我需要的,而“B”則是證明這個證書是可信賴的憑證。

你可能會問:我怎么知道“B”是可信的。這是一個好問題。

Android在手機里內(nèi)置了將近150份CA(certificate agent 代理證明機構(gòu))根證書。他們就好像美國的首席法官(like the chief justice in u.s),在整個世界都是被認可的。

“B”內(nèi)置了內(nèi)另一個證書(C),因此我們會檢查“C”是否是可信的。。。查詢整條證書鏈,如果在這條證書鏈的末端或者根證書,正是我們在手機中內(nèi)置的150份預(yù)設(shè)的證書之一,我們就確信原證書是合法的。

P.S. : 證書有很多格式。

  • “x.509” :x.509 證書通常用于包含公鑰。

  • “PKCS12”

:PKCS12證書同時包含私鑰和公鑰。因此,PKCS12證書需要密碼開啟。

Https

最后,講講“https”部分。之所以前面介紹“密碼”和“證書”兩部分,是因為HTTPs包含它們。

HTTPs(HTTP over SSL)被設(shè)計用于在互聯(lián)網(wǎng)中安全通信。

1. 何如安全通信?

怎么才能建立安全的通信呢?首先想到的是加密。我給需要傳輸?shù)臄?shù)據(jù)加密,然后將數(shù)據(jù)和“加密用的密鑰”傳給服務(wù)器,服務(wù)器就能使用這個k密鑰解密傳輸?shù)臄?shù)據(jù)了。 ?

讓我們想象這樣一個場景:黑客攔截了這次通信,這意味著加密用的密鑰和加密的數(shù)據(jù)都被盜取了。如果黑客有密鑰,解密這段加密的數(shù)據(jù)就不是什么難事了。好了,你的數(shù)據(jù)泄露了。

2. 非對稱加密(Asymmetric Cryptography)如何呢?

上一個方法一點也不安全,我們考慮下一個,非對稱加密有怎么樣呢?

這是一個很棒的想法。你使用服務(wù)器提供的公鑰加密信息。因為服務(wù)器是唯一知道這個與公鑰配對的私鑰的,這意味著只有服務(wù)器能夠解密這段加密的信息。這樣,即使是黑客攔截了這段消息,它沒有配對的私鑰,也無法解密這段信息。因此,數(shù)據(jù)是安全的。

不足之處就是,非對稱加密較對稱加密來說,需要花費更長的時間來完成加解密的工作。出于用戶體驗的考慮,給一大串數(shù)據(jù)執(zhí)行非對稱加解密,并不是一個理想的方案。

3. 最終的方案

先前兩個方案都失敗了。有沒有綜合兩個方案優(yōu)勢的方案呢?下面這個方案就是你需要的。

HTTPS :

上圖很清楚的展示了HTTPS的執(zhí)行加解密的過程

  1. [server] 生成配對的公鑰和私鑰,我們稱它為“Key”和“KeyPri”

  2. [server] 服務(wù)器將“KeyPub”傳給客戶端

  3. [Client] 生成對稱秘鑰("key2"),然后用key2加密信息

  4. [Client] 使用“KeyPub”加密“key2”。因為只有服務(wù)器知道“keyPri”,所以“key2”是安全的

  5. [Client]傳遞加密后的數(shù)據(jù)和加密的key給服務(wù)器

  6. [Server] 用“KeyPri”解密這個key,拿到“key2”

  7. [Server]用“key2”解密加密后的數(shù)據(jù)。數(shù)據(jù)安全的到達來了服務(wù)器(Now the data arrieve(?arrive) in Server safely)。

結(jié)論

因為對稱加密比非對稱加密快,因此HTTPS使用對稱加密給數(shù)據(jù)加密,使用非對稱加密加密對稱加密生成的密鑰,從而確保數(shù)據(jù)傳輸?shù)陌踩浴J褂眠@種方法,加密就變的即快速又安全了。

總之,理解HTTPS的工作原理是非常重要。這樣在現(xiàn)實工作生活中就可以使用這種思想保證你的數(shù)據(jù)安全。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多