SSL協議的工作流程

2022-03-10 06:48:01 字數 4529 閱讀 8626

ssl協議的工作流程

伺服器認證階段:

1)客戶端向伺服器傳送乙個開始資訊「hello」以便開始乙個新的會話連線;

2)伺服器根據客戶的資訊確定是否需要生成新的主金鑰,如需要則伺服器在響應客戶的「hello」資訊時將包含生成主金鑰所需的資訊;

3)客戶根據收到的伺服器響應資訊,產生乙個主金鑰,並用伺服器的公開金鑰加密後傳給伺服器;

4)伺服器恢復該主金鑰,並返回給客戶乙個用主金鑰認證的資訊,以此讓客戶認證伺服器。

使用者認證階段

在此之前,伺服器已經通過了客戶認證,這一階段主要完成對客戶的認證。經認證的伺服器傳送乙個提問給客戶,客戶則返回(數字)簽名後的提問和其公開金鑰,從而向伺服器提供認證。

從ssl 協議所提供的服務及其工作流程可以看出,ssl協議執行的基礎是商家對消費者資訊保密的承諾,這就有利於商家而不利於消費者。在電子商務初級階段,由於運作電子商務的企業大多是信譽較高的大公司,因此這問題還沒有充分暴露出來。但隨著電子商務的發展,各中小型公司也參與進來,這樣在電子支付過程中的單一認證問題就越來越突出。雖然在ssl3.0中通過數字簽名和數字證書可實現瀏覽器和web伺服器雙方的身份驗證,但是ssl協議仍存在一些問題,比如,只能提供交易中客戶與伺服器間的雙方認證,在涉及多方的電子交易中,ssl協議並不能協調各方間的安全傳輸和信任關係。在這種情況下,visa和mastercard兩大信用卡公組織制定了set協議,為網上信用卡支付提供了全球性的標準。

握手過程

為了便於更好的認識和理解ssl 協議,這裡著重介紹ssl 協議的握手協議。ssl 協議既用到了公鑰加密技術又用到了對稱加密技術,對稱加密技術雖然比公鑰加密技術的速度快,可是公鑰加密技術提供了更好的身份認證技術。ssl 的握手協議非常有效的讓客戶和伺服器之間完成相互之間的身份認證,其主要過程如下:

①客戶端的瀏覽器向伺服器傳送客戶端ssl 協議的版本號,加密演算法的種類,產生的隨機數,以及其他伺服器和客戶端之間通訊所需要的各種資訊。

②伺服器向客戶端傳送ssl 協議的版本號,加密演算法的種類,隨機數以及其他相關資訊,同時伺服器還將向客戶端傳送自己的證書。

③客戶利用伺服器傳過來的資訊驗證伺服器的合法性,伺服器的合法性包括:證書是否過期,發行伺服器證書的ca 是否可靠,發行者證書的公鑰能否正確解開伺服器證書的「發行者的數字簽名」,伺服器證書上的網域名稱是否和伺服器的實際網域名稱相匹配。如果合法性驗證沒有通過,通訊將斷開;如果合法性驗證通過,將繼續進行第四步。

④使用者端隨機產生乙個用於後面通訊的「對稱密碼」,然後用伺服器的公鑰(伺服器的公鑰從步驟②中的伺服器的證書中獲得)對其加密,然後將加密後的「預主密碼」傳給伺服器。

⑤如果伺服器要求客戶的身份認證(在握手過程中為可選),使用者可以建立乙個隨機數然後對其進行資料簽名,將這個含有簽名的隨機數和客戶自己的證書以及加密過的「預主密碼」一起傳給伺服器。

⑥如果伺服器要求客戶的身份認證,伺服器必須檢驗客戶證書和簽名隨機數的合法性,具體的合法性驗證過程包括:客戶的證書使用日期是否有效,為客戶提供證書的ca 是否可靠,發行ca 的公鑰能否正確解開客戶證書的發行ca 的數字簽名,檢查客戶的證書是否在證書廢止列表(crl)中。檢驗如果沒有通過,通訊立刻中斷;如果驗證通過,伺服器將用自己的私鑰解開加密的「預主密碼」,然後執行一系列步驟來產生主通訊密碼(客戶端也將通過同樣的方法產生相同的主通訊密碼)。

⑦伺服器和客戶端用相同的主密碼即「通話密碼」,乙個對稱金鑰用於ssl 協議的安全資料通訊的加解密通訊。同時在ssl 通訊過程中還要完成資料通訊的完整性,防止資料通訊中的任何變化。

⑧客戶端向伺服器端發出資訊,指明後面的資料通訊將使用的步驟⑦中的主密碼為對稱金鑰,同時通知伺服器客戶端的握手過程結束。

⑨伺服器向客戶端發出資訊,指明後面的資料通訊將使用的步驟⑦中的主密碼為對稱金鑰,同時通知客戶端伺服器端的握手過程結束。

⑩ssl 的握手部分結束,ssl 安全通道的資料通訊開始,客戶和伺服器開始使用相同的對稱金鑰進行資料通訊,同時進行通訊完整性的檢驗。

名詞釋義

如果要啟用ssl通道,那麼需要使用ssl證書來啟用https協議,ssl證書包含資訊:

證書版本號,不同版本的證書格式不同

serial number 序列號,同一身份驗證機構簽發的證書序列號唯一

algorithm identifier  簽名演算法,包括必要的引數issuer 身份驗證機構的標識資訊

period of validity  有效期

subject 證書持有人的標識資訊

subject』s public key 證書持有人的公鑰

signature 身份驗證機構對證書的簽名

證書的格式  認證中心所發放的證書均遵循x.509 v3 標準,其基本格式如下:

證書版本號(certificate format version)

含義:用來指定證書格式採用的x.509 版本號。

證書序列號(certificate serial number)

含義:用來指定證書的唯一序列號,以標識ca 發出的所有公鑰證書。

簽名(signature)演算法標識(algorithm identifier)

含義:用來指定 ca 簽發證書所用的簽名演算法。

簽發此證書的 ca 名稱(issuer )

含義:用來指定簽發證書的 ca 的x.500 唯一名稱(dn,distinguished name)。

證書有效期(validity period)起始日期(notbefore) 終止日期(notafter)

含義:用來指定證書起始日期和終止日期。

使用者名稱(subject)

含義:用來指定證書使用者的x.500 唯一名稱(dn,distinguished name)。

使用者公鑰資訊(subject public key information)演算法(algorithm) 演算法標識(algorithm identifier)使用者公鑰(subject public key)

含義:用來標識公鑰使用的演算法,幷包含公鑰本身。

證書擴充部分(擴充套件域)(extensions)

含義:用來指定額外資訊。

x.509 v3 證書的擴充部分(擴充套件域)及實現方法如下:

ca 的公鑰標識(authority key identifier)

公鑰標識(set 未使用)(key identifier)

簽發證書者證書的簽發者的甄別名(certificate issuer)

簽發證書者證書的序列號(certificate serial number)

x.509 v3 證書的擴充部分(擴充套件域)及實現ca 的公鑰標識(authority key identifier)

公鑰標識(set 未使用)(key identifier)

簽發證書者證書的簽發者的甄別名(certificat簽發證書者證書的序列號(certificate serial number)

含義:ca 簽名證書所用的金鑰對的唯一標識使用者的公鑰標識(subject key identifier)

證書中的公鑰用途(key usage)

含義:用來指定公鑰用途。

使用者的私鑰有效期(private key usage period)起始日期(note before) 終止日期(note after)

含義:用來指定使用者簽名私鑰的起始日期和終止日期。

ca 承認的證書政策列表(certificate policies)

含義:用來指定使用者證書所適用的政策,證書政策可由物件識別符號表示。

使用者的代用名(substitutional name)

含義:用來指定使用者的代用名。

ca 的代用名(issuer alt name)

含義:用來指定 ca 的代用名。

基本制約(basic constraints)

含義:用來表明證書使用者是終端使用者還是ca。 在set 系統中有一些私有擴充部分(擴充套件域)hashed root key 含義:只在根證書中使用,用於證書更新時進行回溯。

證書型別(certificate type)

含義:用來區別不同的實體。該項是必選的。

商戶資料(merchant data)

含義:包含支付閘道器需要的所有商戶資訊。

持卡人證書需求(card cert required)

含義:顯示支付閘道器是否支援與沒有證書的持卡人進行交易。

set 擴充套件(setextensions)

含義:列出支付閘道器支援的支付命令的 set 資訊擴充套件。

crl 資料定義版本(version)

含義:顯示 crl 的版本號。

crl 的簽發者(issuer)

含義:指明簽發 crl 的ca 的甄別名。

crl 發布時間(this update)預計下乙個 crl 更新時間(next update)撤銷證書資訊目錄(revoked certificates) crl 擴充套件(crl extension)ca 的公鑰標識(authority key identifier)crl 號(crl number)

ssl證書種類

cfca,globalsign,verisign ,geotrust ,thawte 。

企業型 https 證書(ovssl):信任等級強,須要驗證企業的身份,審核嚴格,安全性更高;

SSL證書的工作流程

cert.pem 根證書,包含公鑰。key.pem 私鑰。cacert.pem ca的crt檔案 使用者連線到你的web站點,該web站點受伺服器證書所保護。可由檢視 url的開頭是否為 https 來進行辯識,或瀏覽器會提供你相關的資訊 你的伺服器進行響應,並自動傳送你 的數字證書給使用者,用於鑑...

ARP協議工作流程

位址解析協議,即arp address resolution protocol 是根據ip位址獲取實體地址的乙個tcp ip協議。主機傳送資訊時將包含目標ip位址的arp請求廣播到網路上的所有主機,並接收返回訊息,以此確定目標的實體地址 收到返回訊息後將該ip位址和實體地址存入本機arp快取中並保留...

ssl 協議流程

最近在看公司的ssl協議實現,現將其流程總結如下 步驟解釋如下 1.client clienthello server。1 clienthello 訊息體 client.version 客戶端協議版本 clienthello.timestamp 客戶端時間戳 clienthello.random 客...