卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

https原理與實踐

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

HTTPS 原理與實踐

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

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

圖一

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

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

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

因為加密傳輸比較好理解,這里著重介紹一下SSL 的握手過程:

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

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

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

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

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

,

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

了解完https 的原理,那么接下來我們動手做個例子吧:

第一步:為服務器生成證書

使用keytool 為Tomcat 生成證書,假定目標機器的域名是“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 服務器

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

,

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

clientAuth="false" sslProtocol="TLS"

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

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

至此單向SSL 驗證服務器搭建完成。打開瀏覽器進行訪問:

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

,

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

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

在配置上增加以下步驟:

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

第四步:將客戶端證書導入服務器端證書庫

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

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

因為篇幅關系,這里不進行詳細介紹。

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

標簽: