成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

https原理與實(shí)踐

HTTPS 原理與實(shí)踐迅猛發(fā)展的互聯(lián)網(wǎng)為我們提供了豐富的信息資源,在帶來便利的同時(shí)也影響著人們工作和生活方式。大多數(shù)的互聯(lián)網(wǎng)應(yīng)用都是基于http (超文本傳輸協(xié)議),我司原先開發(fā)的互聯(lián)網(wǎng)應(yīng)用也基本上是

HTTPS 原理與實(shí)踐

迅猛發(fā)展的互聯(lián)網(wǎng)為我們提供了豐富的信息資源,在帶來便利的同時(shí)也影響著人們工作和生活方式。大多數(shù)的互聯(lián)網(wǎng)應(yīng)用都是基于http (超文本傳輸協(xié)議),我司原先開發(fā)的互聯(lián)網(wǎng)應(yīng)用也基本上是基于http 的。但是隨著商務(wù)百事通,口岸服務(wù)集成平臺(tái)等項(xiàng)目的開展,在涉及資金交易,企業(yè)機(jī)密的網(wǎng)絡(luò)傳輸中,安全性變得尤為重要?;诿魑膫鬏?shù)膆ttp 協(xié)議已無法滿足這類項(xiàng)目的需要,因此我們?cè)谶@些項(xiàng)目中也逐步采用了安全的http 協(xié)議,即https.

著名的TCP/IP五層模型分為:應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,物理層。http 位與最頂層的應(yīng)用層,它直接放置與TCP(傳輸層) 協(xié)議之上。而https 則在http 和tcp 中間加上一層加密層(SSL)。從發(fā)送端看,SSL 負(fù)責(zé)把http 的內(nèi)容加密后送到下層的TCP ,從接收方看,這一層負(fù)責(zé)將TCP 送來的數(shù)據(jù)解密還原成http 的內(nèi)容。(如圖一)

圖一

既然SSL 層如此重要,那么我們來看看SSL 層是如何完成加解密通訊的。SSL 層加解密通訊主要原理是:

1. 通過握手過程協(xié)商客戶端和服務(wù)器端的加密算法和對(duì)稱密鑰。

2. 通過協(xié)商達(dá)成的加密算法和對(duì)稱密鑰進(jìn)行內(nèi)容的加密傳輸。

因?yàn)榧用軅鬏敱容^好理解,這里著重介紹一下SSL 的握手過程:

3. 客戶端將它所支持的算法列表和一個(gè)用作產(chǎn)生密鑰的隨機(jī)數(shù)發(fā)送給服務(wù)器;

4. 服務(wù)器從算法列表中選擇一種加密算法,并將它和一份包含服務(wù)器公用密鑰的證書發(fā)送給客戶端;該證書還包含了用于認(rèn)證目的的服務(wù)器標(biāo)識(shí);服務(wù)器同時(shí)還提供了一個(gè)用作產(chǎn)生密鑰的隨機(jī)數(shù);

5. 客戶端對(duì)服務(wù)器的證書進(jìn)行驗(yàn)證,并抽取服務(wù)器的公用密鑰;然后,再產(chǎn)生一個(gè)稱作pre_master_secret的隨機(jī)密碼串(用于內(nèi)容加密的對(duì)稱密鑰),并使用服務(wù)器的公用密鑰對(duì)其進(jìn)行加密(參考非對(duì)稱加/解密) ,并將加密后的信息發(fā)送給服務(wù)器;

6. 客戶端與服務(wù)器端根據(jù)pre_master_secret以及客戶端與服務(wù)器的隨機(jī)數(shù)值獨(dú)立計(jì)算出加密和MAC 密鑰(參考DH 密鑰交換算法) 。

7. 客戶端將所有握手消息的MAC 值發(fā)送給服務(wù)器;

,

8. 服務(wù)器將所有握手消息的MAC 值發(fā)送給客戶端。

了解完https 的原理,那么接下來我們動(dòng)手做個(gè)例子吧:

第一步:為服務(wù)器生成證書

使用keytool 為Tomcat 生成證書,假定目標(biāo)機(jī)器的域名是“zhenggm ”,keystore 文件存放在“C:tomcat.keystore”,口令為“testssl ”,使用如下命令生成:

C:>keytool -genkeypair -v -alias tomcat -keyalg RSA -keystore c:tomcat.keystore -dname

"CN=zhenggm,OU=eport,O=zjeport,L=hz,ST=zj,C=cn" -storepass testssl -keypass testssl -validity 36000

其中的參數(shù)可以具體查keytool 命令。

第二步:配置Tomcat 服務(wù)器

打開Tomcat 根目錄下的/conf/server.xml,找到如下配置段,修改如下:

,

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreFile="C:/tomcat.keystore" keystorePass="testssl"/>

其中,clientAuth 指定是否需要驗(yàn)證客戶端證書,如果該設(shè)置為“false”,則為單向SSL 驗(yàn)證,SSL 配置可到此結(jié)束。如果clientAuth 設(shè)置為“true”,表示強(qiáng)制雙向SSL 驗(yàn)證,必須驗(yàn)證客戶端證書。如果clientAuth 設(shè)置為“want”,則表示可以驗(yàn)證客戶端證書,但如果客戶端沒有有效證書,也不強(qiáng)制驗(yàn)證。

至此單向SSL 驗(yàn)證服務(wù)器搭建完成。打開瀏覽器進(jìn)行訪問:

瀏覽器對(duì)服務(wù)器發(fā)送的安全證書進(jìn)行驗(yàn)證時(shí),發(fā)現(xiàn)這個(gè)證書不是國(guó)際公認(rèn)的第三方機(jī)構(gòu)所簽發(fā)的,所以瀏覽器報(bào)證書問題。我們只要點(diǎn)[繼續(xù)瀏覽此網(wǎng)站],即可進(jìn)入以下頁面。

,

現(xiàn)在互聯(lián)網(wǎng)涉及安全傳輸大多數(shù)是采用這種單向的SSL 驗(yàn)證,因?yàn)殡p向驗(yàn)證需要客戶端也有證書,對(duì)于面向不特定的互聯(lián)網(wǎng)用戶,實(shí)際操作起來還是有些困難的。

雙向SSL 驗(yàn)證其實(shí)也不復(fù)雜,在原理上就是客戶端向服務(wù)器發(fā)送pre_master_secret的時(shí)候,順便將自己的證書也發(fā)過去,服務(wù)器端驗(yàn)證這個(gè)證書的合法性。

在配置上增加以下步驟:

第三步:為客戶端生成證書

第四步:將客戶端證書導(dǎo)入服務(wù)器端證書庫

第五步:將客戶端證書導(dǎo)入客戶端(IE 等)

第六步:將tomcat 的配置改為 clientAuth="true"

因?yàn)槠P(guān)系,這里不進(jìn)行詳細(xì)介紹。

另外,值得注意的是,采用https 之后,服務(wù)器壓力大概是采用http 協(xié)議的5倍, 所以在安全性要求不高的傳輸中,盡量不要采用https 協(xié)議,以免造成性能壓力。

標(biāo)簽: