https問答篇

技術mix呢發表於2018-01-07

https問答

SSL和TLS有什麼區別?

可以說,TLS是SSL的升級版本,SSL是網景公司設計的,為了最早期的網路安全而生,它的全名叫做“安全套接層”。後來,IETF在1999年把SSL標準化,名稱改名為TLS,“傳輸層安全協議”。所以說,這兩個東西就是同一個東西的不同階段。

具體可以參考TLS與SSL的區別

客戶端和服務端互動

首先從粗力度來看,客戶端先是通過“STL握手”過程,獲取服務端的證書,並驗證證書的合法性。在這個握手過程中,會產生三個隨機串。後續的資料互動使用這三個隨機串進行對稱加密傳輸的資料。

STL具體的握手協議可以參考這篇(HTTPS協議說明)[http://www.cnblogs.com/yjf512/p/5216045.html]

好了,這個是一個session的互動,如果session結束了,另外開啟一個session,客戶端和服務端還是要重新進行握手協議,獲取一遍服務端證書和隨機串的,如果想要重新使用上次的隨機串的話,需要服務端實現SSL session 重用(SSL session resumption)。

SSL的session重用有兩種機制,一種是session id的方式,一種是session ticket的方式。

session id的方式簡單來說,其實和session id通過cookie進行傳遞很像,這種方式的session id是在握手的第二個環節,服務端返回給客戶端一個session。客戶端儲存住這個session id, 下次session開啟的時候,客戶端在握手的第一個請求的時候,直接把session id傳遞給服務端,服務端直接返回連線建立成功。

session id的方式是需要服務端根據session id儲存session資訊。而session ticket方式則是使用把TLS互動過程中使用的資料加密成為“Session ticket”, 客戶端儲存這個session ticket, 在下次session開啟的時候直接傳遞這個ticket給服務端,從而來繞開完整的握手協議。

客戶端如何驗證證書的合法性

客戶端的證書是從服務端獲取的,客戶端要驗證證書的:

1 證書是否在有效期內

這個只需要檢視證書裡面的起始日期和結束日期,看當前的時間點是否在有效期內就行了。

2 證書是否被吊銷了

這個驗證有兩種方式:
a CRL: 定期從CA上獲取證書吊銷列表。
b OCSP: 直接發起請求去CA上對某個證書進行查詢。

3 證書是否是上級CA簽發的

一致追述到根證書,就是CA的證書,CA是自己頒發給自己,一般瀏覽器會保留下CA的證書,所以這個過程一般不需要去CA伺服器上進行驗證。

本文轉自軒脈刃部落格園部落格,原文連結:http://www.cnblogs.com/yjf512/p/5735948.html,如需轉載請自行聯絡原作者


相關文章