加密解密那些事之SSL(https)中的對稱加密與非對稱加密
發(fā)布時間:2014-07-17 11:58:40 作者:佚名
我要評論

HTTPS在傳輸數據之前需要客戶端(瀏覽器)與服務端(網站)之間進行一次握手,在握手過程中將確立雙方加密傳輸數據的密碼信息。TLS/SSL協(xié)議不僅僅是一套加密傳輸的協(xié)議,更是一件經過藝術家精心設計的藝術品,TLS/SSL中使用了非對稱加密,對稱加密以及HASH算法。
今天剛好為站點的后臺弄了下https,就來分享我了解的吧。

密碼學最早可以追溯到古希臘羅馬時代,那時的加密方法很簡單:替換字母。
早期的密碼學:

古希臘人用一種叫 Scytale 的工具加密。更快的工具是 transposition cipher—:只是把羊皮紙卷在一根圓木上,寫下信息,羊皮紙展開后,這些信息就加密完成了。
雖然很容易被解密,但它確實是第一個在現實中應用加密的例子
Julius Caesar 用了另外一個類似的加密方法:把字母往右或往左移動幾位;此法稱為Caesar’s cipher. 比如“GEEK” 加密后就是“JHHN”.
Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC
因為只有信息接受者知道如何解密,對其他人來說,那就是一段無意義的信息了。還有像如下圖的加密方法:每個字母放在坐標系里

這樣 “G”就是 “23”, “GEEK”就是 “23 31 31 43”.
Enigma Machine
加密算法
加密算法有很多種,區(qū)別和衡量他們的方法就是看他們是否容易被破解的程度和加密的速度如下圖可見AES 是最快的強加密算法

當然有更快或比較慢的算法了,他們都有用處。如果你只是加密一段信息,也不是經常需要,那你可以用最強的加密算法,甚至也可以用不同的算法加密兩次。如果想要加密速度快點,那就用AES.
加密類型
之前說過的加密算法絕大部分都屬于以下兩種加密類型之一:
對稱加密:加密解密用的是同樣的“鑰匙”
非對稱加密:加密解密用的是不同的“鑰匙”
對稱加密
用郵局的例子來解釋下對稱加密
Alice 在盒子里放有信息,盒子上有掛鎖,她有鑰匙。通過郵局她把這個盒子寄給Bob。Bob收到盒子后,用相同的鑰匙打開盒子(鑰匙之前就得到了,可能是Alice面對面給他的)。然后Bob可以用同樣的方法回復。

對稱加密可以分為兩種:一種是一個一個加密信息,另一種是分塊加密信息,通常分為64位加密為一塊。塊Twofish, Serpent, AES (Rijndael), Blowfish, CAST5, RC4, TDES, and IDEA.
非對稱加密
Bob和Alice各有自己的盒子。Alice要跟Bob秘密通信,她先讓Bob把開著的盒子通過郵局發(fā)給她。Alice拿到盒子后放入信息鎖上,然后發(fā)給Bob。Bob就可以用他自己的鑰匙打開了?;貜偷脑捑陀猛瑯拥姆椒?。

此法最大的好處是你不必得到對方的“鑰匙”,以防別人在鑰匙發(fā)送過程中偷偷復制鑰匙,進而竊取信息。而且就算Bob的鑰匙被竊取復制了,Alice跟別人的通信也是安全的,因為Alice用的是別人的鑰匙。
非對稱算法在加密和解密時用的是不同的鑰匙。信息接受者有兩把鑰匙:一把“公匙”,一把“私匙”。公匙是給信息發(fā)送者用來加密的,私匙是自己用來解密的這樣最大的好處是:不必通過不安全的渠道發(fā)送私密的東西。公匙本來就是給別人用的,不用藏好。你的私匙在你產生私匙的電腦里保存著。
網站如何通過加密和用戶安全通信
SSL (Secure Sockets Layer) 是用來保障你的瀏覽器和網站服務器之間安全通信,免受網絡“中間人”竊取信息。SSL原理很簡單。當你的瀏覽器向服務器請求一個安全的網頁(通常是 https://)

服務器就把它的證書和公匙發(fā)回來

瀏覽器檢查證書是不是由可以信賴的機構頒發(fā)的,確認證書有效和此證書是此網站的。

使用公鑰加密了一個隨機對稱密鑰,包括加密的URL一起發(fā)送到服務器

服務器用自己的私匙解密了你發(fā)送的鑰匙。然后用這把對稱加密的鑰匙給你請求的URL鏈接解密。

服務器用你發(fā)的對稱鑰匙給你請求的網頁加密。你也有相同的鑰匙就可以解密發(fā)回來的網頁了

大概就這樣,翻譯不完整,原文可以看下:http://article.yeeyan.org/view/90729/174903

密碼學最早可以追溯到古希臘羅馬時代,那時的加密方法很簡單:替換字母。
早期的密碼學:

古希臘人用一種叫 Scytale 的工具加密。更快的工具是 transposition cipher—:只是把羊皮紙卷在一根圓木上,寫下信息,羊皮紙展開后,這些信息就加密完成了。
雖然很容易被解密,但它確實是第一個在現實中應用加密的例子
Julius Caesar 用了另外一個類似的加密方法:把字母往右或往左移動幾位;此法稱為Caesar’s cipher. 比如“GEEK” 加密后就是“JHHN”.
Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC
因為只有信息接受者知道如何解密,對其他人來說,那就是一段無意義的信息了。還有像如下圖的加密方法:每個字母放在坐標系里

這樣 “G”就是 “23”, “GEEK”就是 “23 31 31 43”.
Enigma Machine
加密算法
加密算法有很多種,區(qū)別和衡量他們的方法就是看他們是否容易被破解的程度和加密的速度如下圖可見AES 是最快的強加密算法

當然有更快或比較慢的算法了,他們都有用處。如果你只是加密一段信息,也不是經常需要,那你可以用最強的加密算法,甚至也可以用不同的算法加密兩次。如果想要加密速度快點,那就用AES.
加密類型
之前說過的加密算法絕大部分都屬于以下兩種加密類型之一:
對稱加密:加密解密用的是同樣的“鑰匙”
非對稱加密:加密解密用的是不同的“鑰匙”
對稱加密
用郵局的例子來解釋下對稱加密
Alice 在盒子里放有信息,盒子上有掛鎖,她有鑰匙。通過郵局她把這個盒子寄給Bob。Bob收到盒子后,用相同的鑰匙打開盒子(鑰匙之前就得到了,可能是Alice面對面給他的)。然后Bob可以用同樣的方法回復。

對稱加密可以分為兩種:一種是一個一個加密信息,另一種是分塊加密信息,通常分為64位加密為一塊。塊Twofish, Serpent, AES (Rijndael), Blowfish, CAST5, RC4, TDES, and IDEA.
非對稱加密
Bob和Alice各有自己的盒子。Alice要跟Bob秘密通信,她先讓Bob把開著的盒子通過郵局發(fā)給她。Alice拿到盒子后放入信息鎖上,然后發(fā)給Bob。Bob就可以用他自己的鑰匙打開了?;貜偷脑捑陀猛瑯拥姆椒?。

此法最大的好處是你不必得到對方的“鑰匙”,以防別人在鑰匙發(fā)送過程中偷偷復制鑰匙,進而竊取信息。而且就算Bob的鑰匙被竊取復制了,Alice跟別人的通信也是安全的,因為Alice用的是別人的鑰匙。
非對稱算法在加密和解密時用的是不同的鑰匙。信息接受者有兩把鑰匙:一把“公匙”,一把“私匙”。公匙是給信息發(fā)送者用來加密的,私匙是自己用來解密的這樣最大的好處是:不必通過不安全的渠道發(fā)送私密的東西。公匙本來就是給別人用的,不用藏好。你的私匙在你產生私匙的電腦里保存著。
網站如何通過加密和用戶安全通信
SSL (Secure Sockets Layer) 是用來保障你的瀏覽器和網站服務器之間安全通信,免受網絡“中間人”竊取信息。SSL原理很簡單。當你的瀏覽器向服務器請求一個安全的網頁(通常是 https://)

服務器就把它的證書和公匙發(fā)回來

瀏覽器檢查證書是不是由可以信賴的機構頒發(fā)的,確認證書有效和此證書是此網站的。

使用公鑰加密了一個隨機對稱密鑰,包括加密的URL一起發(fā)送到服務器

服務器用自己的私匙解密了你發(fā)送的鑰匙。然后用這把對稱加密的鑰匙給你請求的URL鏈接解密。

服務器用你發(fā)的對稱鑰匙給你請求的網頁加密。你也有相同的鑰匙就可以解密發(fā)回來的網頁了

大概就這樣,翻譯不完整,原文可以看下:http://article.yeeyan.org/view/90729/174903
相關文章
- Web應用程序是通過2種方式來判斷和跟蹤不同用戶的:Cookie或者Session(也叫做會話型Cookie)。其中Cookie是存儲在本地計算機上的,過期時間很長,所以針對Cookie的攻擊手段2008-10-08
- Web應用程序是通過2種方式來判斷和跟蹤不同用戶的:Cookie或者Session(也叫做會話型Cookie)。其中Cookie是存儲在本地計算機上的,過期時間很長,所以針對Cookie的攻擊手2008-10-08
- 本文主要介紹了HTTP頭所引發(fā)的問題.我們來剖析一下.了解清楚2012-05-25
- 通常HTTP消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個只是頭域結束的空行和可選的消息體組成。2012-06-27
- 由于HTTP是一個可擴展的協(xié)議,各瀏覽器廠商都率先推出了有效的頭部,來阻止漏洞利用或提高利用漏洞的難度。了解它們是什么,掌握如何應用,可以提高系統(tǒng)的安全性2014-07-14
- HTTPS并不是一個單一的東西,它知識我們常見的HTTP 協(xié)議和某個加密協(xié)議的一個混合,這個加密協(xié)議通常會是TLS。那么HTTPS為什么安全呢?其實我們需要先考慮HTTP為什么不安全2016-06-01