日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HTTP、HTTPS、SSL总结

發布時間:2024/4/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP、HTTPS、SSL总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協議: 它是一個安全通信通道,它基于HTTP開發,用于在客戶計算機和服務器之間交換信息,它使用安全套接字層(SSL)進行信息交換,簡單來說它是HTTP的安全版。它是由Netscape開發并內置于其瀏覽器中,用于對數據進行壓縮和解壓操作,并返回網絡上傳送回的結果。HTTPS實際上應用了Netscape的安全全套接字層(SSL)作為HTTP應用層的子層。(HTTPS使用端口443,而不是象HTTP那樣使用端口80來和TCP/IP進行通信。)SSL使用40 位關鍵字作為RC4流加密算法,這對于商業信息的加密是合適的。 HTTPS和SSL支持使用X.509數字認證,如果需要的話用戶可以確認發送者是誰。總的來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議要比http協議安全。 ? 在URL前加https://前綴表明是用SSL加密的,你的電腦與服務器之間收發的信息傳輸將更加安全。 Web服務器啟用SSL需要獲得一個服務器證書并將該證書與要使用SSL的服務器綁定。 HTTPS 的作用 它的主要作用可以分為兩種:一種是建立一個 信息安全 通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。 a . 一般意義上的 https ,就是服務器有一個證書。主要目的是保證服務器就是他聲稱的服務器,這個跟第一點一樣; 服務端 和客戶端之間的所有 通訊 ,都是加密的。 b. 具體講,是客戶端產生一個對稱的 密鑰 ,通過服務器的證書來交換密鑰,即一般意義上的握手過程。 c. 接下來所有的信息往來就都是加密的。第三方即使截獲,也沒有任何意義,因為他沒有密鑰,當然篡改也就沒有什么意義了。 d .少許對客戶端有要求的情況下,會要求客戶端也必須有一個證書。 這里客戶端證書,其實就類似表示個人信息的時候,除了用戶名 / 密碼,還有一個 CA 認證過的身份。因為個人證書一般來說是別人無法模擬的,所有這樣能夠更深的確認自己的身份。目前少數個人銀行的專業版是這種做法,具體證書可能是拿 U 盤(即 U 盾)作為一個備份的載體。 HTTPS解決的問題: 1 . 信任主機的問題. 采用https 的server 必須從CA 申請一個用于證明服務器用途類型的證書. 改證書只有用于對應的server 的時候,客戶度才信任此主機. 所以目前所有的銀行系統網站,關鍵部分應用都是https 的. 客戶通過信任該證書,從而信任了該主機. 其實這樣做效率很低,但是銀行更側重安全. 這一點對我們沒有任何意義,我們的server ,采用的證書不管自己issue 還是從公眾的地方issue, 客戶端都是自己人,所以我們也就肯定信任該server. 2 . 通訊過程中的數據的泄密和被竄改 1) 一般意義上的https, 就是 server 有一個證書. a) 主要目的是保證server 就是他聲稱的server. 這個跟第一點一樣. b) 服務端和客戶端之間的所有通訊,都是加密的. i. 具體講,是客戶端產生一個對稱的密鑰,通過server 的證書來交換密鑰. 一般意義上的握手過程. ii. 所有的信息往來就都是加密的. 第三方即使截獲,也沒有任何意義.因為他沒有密鑰. 當然竄改也就沒有什么意義了. 2). 少許對客戶端有要求的情況下,會要求客戶端也必須有一個證書. a) 這里客戶端證書,其實就類似表示個人信息的時候,除了用戶名/密碼, 還有一個CA 認證過的身份. 應為個人證書一般來說別人無法模擬的,所有這樣能夠更深的確認自己的身份. b) 目前少數個人銀行的專業版是這種做法,具體證書可能是拿U盤作為一個備份的載體. 3.HTTPS 一定是繁瑣的. a) 本來簡單的http協議,一個get一個response. 由于https 要還密鑰和確認加密算法的需要.單握手就需要6/7 個往返. i. 任何應用中,過多的round trip 肯定影響性能. b) 接下來才是具體的http協議,每一次響應或者請求, 都要求客戶端和服務端對會話的內容做加密/解密. i. 盡管對稱加密/解密效率比較高,可是仍然要消耗過多的CPU,為此有專門的SSL 芯片. 如果CPU 信能比較低的話,肯定會降低性能,從而不能serve 更多的請求. ii. 加密后數據量的影響. 所以,才會出現那么多的安全認證提示。 //java訪問HTTPS鏈接 try {logger.debug("開始訪問HTTPS >>>>>>>> ");//創建URL對象URL myURL = new URL("https://www.oschina.net/news/83188/2017-april-yuanchuanghui");//創建HttpsURLConnection對象,并設置其SSLSocketFactory對象HttpsURLConnection httpsConn = (HttpsURLConnection) myURL.openConnection();/** 服務器端禁止抓取,返回HTTP 403命令,禁止惡意訪問此網站,不能從此網站中抓取內容;我們可以通過設置User-Agent來欺騙服務器* http://blog.sina.com.cn/s/blog_65be362c01011ptj.html* 不需要登錄的情況下:* httpsConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");*///取得該連接的輸入流,以讀取響應內容InputStreamReader isReader = new InputStreamReader(httpsConn.getInputStream());//讀取服務器的響應內容,并顯示int respInt = isReader.read();while(respInt != -1){logger.debug("返回信息:" + respInt + "");} } catch (MalformedURLException e) {logger.error("URL格式錯誤",e); } catch (IOException e) {e.printStackTrace(); } SSL 簡介 1 )簡介 SSL (Secure Socket Layer) 為 Netscape 所研發,用以保障在 Internet 上數據傳輸之安全,利用數據加密 (Encryption) 技術,可確保數據在網絡上之傳輸過程中不會被截取及竊聽。它已被廣泛地用于 Web 瀏覽器與服務器之間的身份認證和加密數據傳輸。 SSL 協議位于 TCP/IP 協議與各種應用層協議之間,為數據通訊提供安全支持。 2 ) SSL 提供的服務 a. 認證用戶和服務器,確保數據發送到正確的 客戶機 和服務器 b. 加密數據以防止數據中途被竊取 c. 維護數據的完整性,確保數據在傳輸過程中不被改變。 3) SSL 協議的握手過程 SSL 協議既用到了公鑰加密技術又用到了對稱加密技術,對稱加密技術雖然比公鑰加密技術的速度快,可是公鑰加密技術提供了更好的身份認證技術。 SSL 的握手協議非常有效的讓客戶和服務器之間完成相互之間的身份認證,其主要過程如下: ① 客戶端的瀏覽器向服務器傳送客戶端 SSL 協議的版本號,加密算法的種類,產生的隨機數,以及其他服務器和客戶端之間通訊所需要的各種信息。 ② 服務器向客戶端傳送 SSL 協議的版本號,加密算法的種類,隨機數以及其他相關信息,同時服務器還將向客戶端傳送自己的證書。 ③ 客戶利用服務器傳過來的信息驗證服務器的合法性,服務器的合法性包括:證書是否過期,發行服務器證書的 CA 是否可靠,發行者證書的公鑰能否正確解開服務器證書的 “ 發行者的數字簽名 ” ,服務器證書上的域名是否和服務器的實際域名相匹配。如果合法性驗證沒有通過,通訊將斷開;如果合法性驗證通過,將繼續進行第四步。 ④ 用戶端隨機產生一個用于后面通訊的 “ 對稱密碼 ” ,然后用服務器的公鑰(服務器的公鑰從步驟 ② 中的服務器的證書中獲得)對其加密,然后傳給服務器。 ⑤ 服務器用私鑰解密 “ 對稱密碼 ”( 此處的公鑰和私鑰是相互關聯的,公鑰加密的數據只能用私鑰解密,私鑰只在服務器端保留。詳細請參看:? ?http://zh.wikipedia.org/wiki/RSA%E7%AE%97%E6%B3%95 ) ,然后用其作為服務器和客戶端的 “ 通話密碼 ” 加解密通訊。同時在 SSL 通訊過程中還要完成數據通訊的完整性,防止數據通訊中的任何變化。 ⑥ 客戶端向服務器端發出信息,指明后面的數據通訊將使用的步驟 ⑤ 中的主密碼為對稱密鑰,同時通知服務器客戶端的握手過程結束。 ⑦ 服務器向客戶端發出信息,指明后面的數據通訊將使用的步驟 ⑤ 中的主密碼為對稱密鑰,同時通知客戶端服務器端的握手過程結束。 ⑧ SSL 的握手部分結束, SSL 安全通道的數據通訊開始,客戶和服務器開始使用相同的對稱密鑰進行數據通訊,同時進行通訊完整性的檢驗。
HTTPS協議與web服務器交互時的交互過程: 客戶端請求SSL連接,并將自己支持的加密規則發給網站。服務器端將自己的身份信息以證書形式發回給客戶端。證書里面包含了網站地址,加密公鑰,以及證書的頒發機構。 獲得證書后,客戶要做以下工作: 1)驗證證書合法性 2)如果證書受信任,客戶端會生成一串隨機數的密碼,并用證書提供的公鑰進行加密。 3)將加密好的隨機數發給服務器。 獲得到客戶端發的加密了的隨機數之后,服務器用自己的私鑰進行解密,得到這個隨機數,把這個隨機數作為對稱加密的密鑰。 之后服務器與客戶之間就可以用隨機數對各自的信息進行加密,解密。 注意的是:證書是一個公鑰,這個公鑰是進行加密用的。而私鑰是進行解密用的。公鑰任何都知道,私鑰只有自己知道。這是非對稱加密。而對稱加密就是鑰匙只有一把,我們都知道。之所以用到對稱加密,是因為對稱加密的速度更快。而非對稱加密的可靠性更高。

總結

以上是生活随笔為你收集整理的HTTP、HTTPS、SSL总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。