http(hypertext transfer protocol:超文字傳輸協議)是一種用於分布式、協作式和超**資訊系統的應用層協議。 簡單來說就是一種發布和接收 html 頁面的方法,被用於在 web 瀏覽器和**伺服器之間傳遞資訊。
http 預設工作在 tcp 協議 80 埠,使用者訪問** http:// 打頭的都是標準 http 服務。
http 協議以明文方式傳送內容,不提供任何方式的資料加密,如果攻擊者擷取了web瀏覽器和**伺服器之間的傳輸報文,就可以直接讀懂其中的資訊,因此,http協議不適合傳輸一些敏感資訊,比如:信用卡號、密碼等支付資訊。
https(hypertext transfer protocol secure:超文字傳輸安全協議)是一種透過計算機網路進行安全通訊的傳輸協議。https 經由 http 進行通訊,但利用 ssl/tls 來加密資料報。https 開發的主要目的,是提供對**伺服器的身份認證,保護交換資料的隱私與完整性。
https 預設工作在 tcp 協議443埠,它的工作流程一般如以下方式:
截至 2018 年 6 月,alexa 排名前 100 萬的**中有 34.6% 使用 https 作為預設值,網際網路 141387 個最受歡迎**的 43.1% 具有安全實施的 https,以及 45% 的頁面載入(透過firefox紀錄)使用https。2017 年3 月,中國註冊網域名稱總數的 0.11%使用 https。在tcp/ip協議中,tcp協議通過三次握手建立乙個可靠的連線根據 mozilla 統計,自 2017 年 1 月以來,超過一半的**流量被加密。
簡化:
我們都知道 https 能夠加密資訊,以免敏感資訊被第三方獲取,所以很多銀行**或電子郵箱等等安全級別較高的服務都會採用 https 協議。
1、客戶端發起 https 請求
這個沒什麼好說的,就是使用者在瀏覽器裡輸入乙個 https **,然後連線到 server 的 443 埠。
2、服務端的配置
採用 https 協議的伺服器必須要有一套數字證書,可以自己製作,也可以向組織申請,區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl 就是個不錯的選擇,有 1 年的免費服務)。
這套證書其實就是一對公鑰和私鑰,如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和乙個鎖頭,只是全世界只有你乙個人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個鎖把重要的東西鎖起來,然後發給你,因為只有你乙個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。
3、傳送證書
這個證書其實就是公鑰,只是包含了很多資訊,如證書的頒發機構,過期時間等等。
4、客戶端解析證書
這部分工作是有客戶端的tls來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等等,如果發現異常,則會彈出乙個警告框,提示證書存在問題。
如果證書沒有問題,那麼就生成乙個隨機值,然後用證書對該隨機值進行加密,就好像上面說的,把隨機值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內容。
5、傳送加密資訊
這部分傳送的是用證書加密後的隨機值,目的就是讓服務端得到這個隨機值,以後客戶端和服務端的通訊就可以通過這個隨機值來進行加密解密了。
6、服務段解密資訊
服務端用私鑰解密後,得到了客戶端傳過來的隨機值(私鑰),然後把內容通過該值進行對稱加密,所謂對稱加密就是,將資訊和私鑰通過某種演算法混合在一起,這樣除非知道私鑰,不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰,所以只要加密演算法夠彪悍,私鑰夠複雜,資料就夠安全。
這個地方 我認為 不應該寫是私鑰7、傳輸加密後的資訊這部分資訊是服務段用私鑰加密後的資訊,可以在客戶端被還原。應該寫是秘鑰
私鑰一般是 非對稱加密使用的特有名詞 與 公鑰對應
https 實際的業務資料傳輸 是使用的 對稱秘鑰傳輸的.
8、客戶端解密資訊
客戶端用之前生成的私鑰解密服務段傳過來的資訊,於是獲取了解密後的內容,整個過程第三方即使監聽到了資料,也束手無策。
http 與 https 的區別
https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層 ssl 進行資訊交換,簡單來說它是http的安全版。它是由netscape開發並內置於其瀏覽器中,...
HTTPS與HTTP的區別
最近學習網路相關的知識,看到https和http,兩個有區別,於是在網上找了相關的資料,放在自己的部落格,作為學習筆記吧。ssl介紹 ssl secure socket layer 為netscape所研發,用以保障在internet上資料傳輸之安全,利用 資料加密 encryption 技術,可確...
http與https的區別
在url前加https 字首表明是用ssl加密的。你的電腦與伺服器之間收發的資訊傳輸將更加安全。web伺服器啟用ssl需要獲得乙個伺服器證書並將該證書與要使用ssl的伺服器繫結。http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443 https協議是由ssl htt...