如何解析HTTPS與SSL原理,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設|成都網(wǎng)站維護公司|優(yōu)化|托管以及網(wǎng)絡推廣,積累了大量的網(wǎng)站設計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設計服務,案例作品覆蓋混凝土攪拌站等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身定制品質(zhì)網(wǎng)站。
HTTPS是指結(jié)合HTTP和SSL來實現(xiàn)網(wǎng)絡瀏覽器和服務器之間的安全通信。HTTPS被融合到當今網(wǎng)絡操作系統(tǒng)和網(wǎng)絡瀏覽器中,他依賴于網(wǎng)絡服務器是否支持HTTPS協(xié)議。本文重點是闡述HTTPS和SSL證書的原理,不涉及具體實現(xiàn)。在開始敘述原理之前,先明確幾個網(wǎng)絡安全方面的基礎概念。
一個對稱加密算法由五個部分組成:
明文:原始消息或數(shù)據(jù)
加密算法
密鑰
密文:使用密鑰通過加密算法對明文計算后的結(jié)果
解密算法:使用密文和相同密鑰通過解密算法產(chǎn)生原文
與對稱加密算法不同的是,非對稱加密算法使用的加密密鑰和解密密鑰是不同的。
公鑰密碼屬于對稱加密算法中的一種,公鑰密碼體系中有一個公鑰和一個密鑰,公鑰是公開給所有人使用的,密鑰只有自己知道,通常公鑰根據(jù)一個密鑰進行加密,根據(jù)另一個密鑰進行解密。
RSA公鑰密碼算法是公鑰密碼算法中的一種,RSA中的加密和解密都可以使用公鑰或者私鑰,但是用公鑰加密的密文只能使用私鑰解密,用私鑰加密的密文智能使用公鑰解密。
這里只敘述SSL證書的原理,至于如何申請證書,如何生成證書,如何部署證書可以Google得到。在介紹SSL證書前,需要先知道證書的指紋和指紋算法。
指紋是在證書信息(證書機構(gòu),公司名,證書有效期等)后面加上一段內(nèi)容,保證信息沒有被修改過。具體操作是將將原來的信息通過指紋算法算法(一個hash算法)計算得到指紋與原信息一起發(fā)出去。用戶收到這份數(shù)據(jù)后,首先將原信息用同樣的指紋算法計算結(jié)果,將得到的結(jié)果與指紋對比,如果一致,則說明信息沒有被修改過。當然這個過程是有危險的,黑客完全可以修改內(nèi)容并重新通過指紋算法生成指紋。這里需要使用加密算法來解決這個隱患。
假設一個公司B company向證書機構(gòu)xxx CA申請SSL證書,他會得到一張類似下面這張圖的證書
B company得到這張證書后,會在與用戶通信的過程中將證書發(fā)送給用戶,用戶首先會檢測辦法證書的機構(gòu),如果是大家都公認的證書機構(gòu),操作系統(tǒng)在出廠時會內(nèi)置這個機構(gòu)的機構(gòu)信息和公鑰,例如xxx CA,如果是一個不受信任的證書機構(gòu),應用程序(比如瀏覽器)會發(fā)出警告,如果是受信任的證書機構(gòu),應用程序會使用預置的xxx CA的公鑰去解密最后的指紋內(nèi)容和指紋算法,然后再把前面的證書內(nèi)容用指紋算法計算后與指紋內(nèi)容比對,由于指紋內(nèi)容是由證書機構(gòu)唯一的私鑰加密的,因此只要比對成功說明證書是沒有人被人修改過的。接下來用戶就可以放心使用該公司的公鑰了。
HTTPS的出現(xiàn)是為了解決網(wǎng)絡通信中數(shù)據(jù)傳輸不安全的問題,下面我們以登陸為例,先看一個網(wǎng)絡通信最簡單的過程,再一步步分析這個過程中不安全的因素以及解決辦法。
這個通信過程槽點太多,這樣一個網(wǎng)絡通信過程屬于小學生水準,首先最明顯一個錯誤是作為客戶端如何知道給予回應一定是目標服務器,黑客可以有一百種辦法來偽裝這個服務器,輕輕松松就拿到用戶的用戶名和密碼,所以圖中也只能無奈的使用“某個地址”來標識服務器。為了解決這個問題,首先需要讓瀏覽器確認對方的身份,于是有了下面的通信過程。
確認服務器身份就需要用到前面說過的RSA算法了,由于RSA算法有下面這幾個特性,所以是可以用來唯一確認服務器身份的:
私鑰的唯一性
私鑰的保密性(只有服務器知道這個私鑰)
只能用公鑰解密用私鑰加密過的密文(對稱加密算法的特點)
其中“()”里的內(nèi)容是服務器用私鑰加密后的內(nèi)容,一般服務器會將明文加密,瀏覽器在收到消息后首先會用公鑰解密密文,由前面特性3可以知道,公鑰和解密算法是可以解出明文的,如果解不出來說明對方不是目標服務器,瀏覽器解密后會與明文做比對,如果比對成功,由私鑰的唯一性和保密性就可以確認對方是目標服務器。然而確認服務器身份后,在向服務器發(fā)送數(shù)據(jù)的過程中,如果數(shù)據(jù)被黑客截獲,我們的用戶名和密碼也會落入黑客之手,于是下一步我們需要對發(fā)送的數(shù)據(jù)進行加密。
瀏覽器對用戶名和密碼用公鑰進行加密,由于
只能用私鑰解密用公鑰加密過的密文
于是密文只能由服務器用私鑰解密,黑客即使拿到密文,也是無法解密的。但是在服務器向客戶返回信息的過程中就出現(xiàn)問題了,由于公鑰是公有的,任何人都可以拿到這份數(shù)據(jù)并使用公鑰解密,所以這里還是存在不安全因素。于是客戶和瀏覽器的通信過程多了一個步驟。
為了使瀏覽器和服務器發(fā)出的信息都無法被別人解密,這里使用了一個對稱加密算法,而算法和密鑰的加密是在瀏覽器用公鑰來加密的,這樣可以保證只有服務器才能用私鑰來解密這個內(nèi)容,也就是保證對稱加密算法和密鑰只能被服務器拿到。當服務器拿到對稱加密算法和密鑰后,后面的通信都能使用這個對稱加密算法來完成,由于對稱加密算法和密鑰只有客戶和服務器知道,后面的通信加密過程都是無法被破解的。
到這里,基本就是HTTPS通信的整個過程了,似乎整個過程都很難被黑客破解,但是注意到前面的所有過程都默認了一個前提,那就是客戶手里已經(jīng)擁有公鑰。公鑰的獲取如果只是在客戶和服務器之間進行的話,是存在很大的安全隱患的,最直接的問題就是用戶怎么確定拿到的公鑰就是目標服務器的公鑰,類似“證明‘能證明你身份’的憑證是你的”這樣的命題,最好的解決辦法是引入一個大家都信任的第三方來“證明這個憑證”是服務器的,于是這里就使用了SSL證書。前面提到,通過發(fā)送SSL證書服務器可以將公鑰安全的交給用戶,而這里的第三方就是證書機構(gòu)。于是我們得到了一個完整的HTTPS通信過程。
到這里已經(jīng)基本講完了SSL證書與HTTPS的原理,當然實際通信過程中還有很多細節(jié)沒有說到,但是不妨礙理解原理。實際開發(fā)和生產(chǎn)過程中很多信息敏感的操作都可以參照這種思想來實現(xiàn),文中有不合理的和錯誤的地方歡迎指正。
看完上述內(nèi)容,你們掌握如何解析HTTPS與SSL原理的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站欄目:如何解析HTTPS與SSL原理
當前網(wǎng)址:http://vcdvsql.cn/article28/podhcp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、商城網(wǎng)站、建站公司、App設計、網(wǎng)頁設計公司、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)