精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一篇文章讓您了解HTTPS

網絡 網絡管理
既然有單向驗證,那么也有雙向驗證,即不僅僅客戶端需要校驗服務端,服務端也需要驗證客戶端。這種情況下,客戶端需要將自己的證書發給服務端做驗證,這種情況只需要將證書的KeyManager作為在init()的第一個參數來SSLContext就行了。

前段時間在做HTTPS相關的需求碰到了一些問題,今天有空整理一下HTTPS的相關知識,希望對您能有所幫助。

圖片圖片

什么是HTTPS

HTTPS,即HTTP Security,是建立在SSL / TSL協議之上,其中,TSL是SSL協議的升級版,TLS 1.0通常被標示為SSL 3.1,TLS 1.1為SSL 3.2,TLS 1.2為SSL 3.3,可以理解為同一套協議。他的作用主要以下三點:

防止竊聽。 所有信息都是加密傳播,第三方無法竊聽。

防止篡改。具有校驗機制,一旦被篡改,通信雙方會立刻發現。

防止冒充。配備身份證書,防止身份被冒充。本文將從android使用者的角度,盡量解釋清楚什么是HTTPS。

TLS驗證流程

TLS驗證流程

交互流程如下:

  1. 客戶端發出請求給服務端,請求的內容包括:
  1. 支持的協議版本,比如TLS 1.0版。
  2. 一個客戶端生成的隨機數,稍后用于生成"對話密鑰"。
  3. 支持的加密方法,比如RSA公鑰加密。
  4. 支持的壓縮方法。
  1. 服務器回應客戶端,包含以下內容:
  2. 確認使用的加密通信協議版本,比如TLS 1.0版本。如果瀏覽器與服務器支持的版本不一致,服務器關閉加密通信。
  3. 一個服務器生成的隨機數,稍后用于生成"對話密鑰"。
  4. 確認使用的加密方法,比如RSA公鑰加密。
  5. 服務器證書。
  6. 客戶端收到服務器回應以后,首先驗證服務器證書。如果證書不是可信機構頒布、或者證書中的域名與實際域名不一致、或者證書已經過期,就會向訪問者顯示一個警告,由其選擇是否還要繼續通信。
    如果證書沒有問題,客戶端就會從證書中取出服務器的公鑰。然后,向服務器發送下面三項信息。
  7. 一個隨機數。該隨機數用服務器公鑰加密,防止被竊聽。
  8. 編碼改變通知,表示隨后的信息都將用雙方商定的加密方法和密鑰發送。
  9. 客戶端握手結束通知,表示客戶端的握手階段已經結束。這一項同時也是前面發送的所有內容的hash值,用來供服務器校驗。
  10. 服務器收到客戶端的第三個隨機數pre-master key之后,計算生成本次會話所用的"會話密鑰"。然后,向客戶端最后發送下面信息。
  11. 編碼改變通知,表示隨后的信息都將用雙方商定的加密方法和密鑰發送。
  12. 服務器握手結束通知,表示服務器的握手階段已經結束。這一項同時也是前面發送的所有內容的hash值,用來供客戶端校驗。

至于為什么一定要用三個隨機數,來生成"會話密鑰",dog250解釋得很好:

"不管是客戶端還是服務器,都需要隨機數,這樣生成的密鑰才不會每次都一樣。由于SSL協議中證書是靜態的,因此十分有必要引入一種隨機因素來保證協商出來的密鑰的隨機性。

對于RSA密鑰交換算法來說,pre-master-key本身就是一個隨機數,再加上hello消息中的隨機,三個隨機數通過一個密鑰導出器最終導出一個對稱密鑰。

pre master的存在在于SSL協議不信任每個主機都能產生完全隨機的隨機數,如果隨機數不隨機,那么pre master secret就有可能被猜出來,那么僅適用pre master secret作為密鑰就不合適了,因此必須引入新的隨機因素,那么客戶端和服務器加上pre master secret三個隨機數一同生成的密鑰就不容易被猜出了,一個偽隨機可能完全不隨機,可是是三個偽隨機就十分接近隨機了,每增加一個自由度,隨機性增加的可不是一。"

HTTPS相關名詞

HTTPS涉及到的概念比較多,什么X509,.pem,.crt等等,理解了HTTPS的交互流程之后,先來理一理這些概念。

  • X509 - 這是一種證書標準,主要定義了證書中應該包含哪些內容.其詳情可以參考RFC5280,SSL使用的就是這種證書標準。
  • PEM - Privacy Enhanced Mail,打開看文本格式,以"-----BEGIN..."開頭, "-----END..."結尾,內容是BASE64編碼.查看PEM格式證書的信息:
openssl x509 -in certificate.pem -text -noout

Apache和*NIX服務器偏向于使用這種編碼格式.

  • DER - Distinguished Encoding Rules,打開看是二進制格式,不可讀.查看DER格式證書的信息:
openssl x509 -in certificate.der -inform der -text -noout

Java和Windows服務器偏向于使用這種編碼格式.

上面是證書標準和兩種常用的編碼格式。下面我們來認識一下都有哪些文件擴展名。

  • CRT - CRT應該是certificate的三個字母,其實還是證書的意思,常見于*NIX系統,有可能是PEM編碼,也有可能是DER編碼,大多數應該是PEM編碼,相信你已經知道怎么辨別.
  • CER - 還是certificate,還是證書,常見于Windows系統,同樣的,可能是PEM編碼,也可能是DER編碼,大多數應該是DER編碼.
  • KEY - 通常用來存放一個公鑰或者私鑰,并非X.509證書,編碼同樣的,可能是PEM,也可能是DER.查看KEY的辦法:
openssl rsa -in mykey.key -text -noout

如果是DER格式的話,同理應該這樣了:openssl rsa -in mykey.key -text -noout -inform der

  • CSR - Certificate Signing Request,即證書簽名請求,這個并不是證書,而是向權威證書頒發機構獲得簽名證書的申請,其核心內容是一個公鑰(當然還附帶了一些別的信息),在生成這個申請的時候,同時也會生成一個私鑰,私鑰要自己保管好.做過iOS APP的朋友都應該知道是怎么向蘋果申請開發者證書的吧.查看的辦法:(如果是DER格式的話照舊加上-inform der,這里不寫了)
openssl req -noout -text -in my.csr
  • PFX/P12 - predecessor of PKCS#12,對*nix服務器來說,一般CRT和KEY是分開存放在不同文件中的,但Windows的IIS則將它們存在一個PFX文件中,(因此這個文件包含了證書及私鑰)這樣會不會不安全?應該不會,PFX通常會有一個"提取密碼",你想把里面的東西讀取出來的話,它就要求你提供提取密碼,PFX使用的時DER編碼,如何把PFX轉換為PEM編碼?
openssl pkcs12 -in for-iis.pfx -out for-iis.pem -nodes

這個時候會提示你輸入提取代碼. for-iis.pem就是可讀的文本.生成pfx的命令類似這樣:openssl pkcs12 -export -in certificate.crt -inkey privateKey.key -out certificate.pfx -certfile CACert.crt

其中CACert.crt是CA(權威證書頒發機構)的根證書,有的話也通過-certfile參數一起帶進去.這么看來,PFX其實是個證書密鑰庫.

  • JKS - 即Java Key Storage,這是Java的專利,跟OpenSSL關系不大,利用Java的一個叫"keytool"的工具,可以將PFX轉為JKS,當然了,keytool也能直接生成JKS,不過在此就不多表了.
  • BKS - 來自BouncyCastleProvider,它使用的也是TripleDES來保護密鑰庫中的Key,它能夠防止證書庫被不小心修改(Keystore的keyentry改掉1個bit都會產生錯誤),BKS能夠跟JKS互操作。通過以下命令可以將crt轉換成bks,也就是說,其實bks就是上文說的證書文件,jks也是。
keytool -importcert -trustcacerts -keystore e:\key.bks -file e:\server.crt -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

bks的生成參考:SSL通信中使用的bks格式證書的生成

Java上的HTTPS

java上使用HTTPS很簡單,一個典型的HTTPS方式如下:

URL url = new URL("https://google.com");  
HttpsURLConnection urlConnection = url.openConnection();  
InputStream in = urlConnection.getInputStream();

此時使用的是默認的SSLSocketFactory,與下段代碼使用的SSLContext是一致的

private synchronized SSLSocketFactory getDefaultSSLSocketFactory() {  
  try {
    SSLContext sslContext = SSLContext.getInstance("TLS");
    sslContext.init(null, null, null);
    return defaultSslSocketFactory = sslContext.getSocketFactory();
  } catch (GeneralSecurityException e) {
    throw new AssertionError(); // The system has no TLS. Just give up.
  }
}

這段代碼里面最重要的方法是sslContext.init(null, null, null);,這里有三個參數,分別是:

  • KeyManager[],自己的證書,用來校驗服務端是否可信,如果是單向校驗則傳空,表示不需要校驗服務端。
  • TrustManager[],認證服務端證書是否可信,如果傳空則使用android自己的證書庫,如果服務端證書的辦法機構在默認庫里面,則校驗通過。

有時候CA也是不可信的,為了獲得更高的安全新,需要我們自己指定新人的錨點,可以采用如下的代碼:

// 取到證書的輸入流
InputStream is = new FileInputStream("anchor.crt");  
CertificateFactory cf = CertificateFactory.getInstance("X.509");  
Certificate ca = cf.generateCertificate(is);


// 創建 Keystore 包含我們的證書
String keyStoreType = KeyStore.getDefaultType();  
KeyStore keyStore = KeyStore.getInstance(keyStoreType);  
keyStore.load(null);  
keyStore.setCertificateEntry("anchor", ca);


// 創建一個 TrustManager 僅把 Keystore 中的證書 作為信任的錨點
String algorithm = TrustManagerFactory.getDefaultAlgorithm();  
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(algorithm);  
trustManagerFactory.init(keyStore);  
TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();


// 用 TrustManager 初始化一個 SSLContext
SSLContext sslContext = SSLContext.getInstance("TLS");  
sslContext.init(null, trustManagers, null);  
return sslContext.getSocketFactory();

這種情況下,只有 anchor.crt 以及他簽發的證書才會被信任。

  • SecureRandom,也就是生成隨機數的策略,一般都是直接new SecureRandom()作為參數傳進去。

注意這里使用的是單向認證,也就是只需要客戶端驗證服務端的證書,客戶端本地部緩存證書,所以這里sslContext.init()方法的三個參數都是空的。

默認的 SSLSocketFactory 校驗服務器的證書時(也就是TrustManager[]傳空的時候),會信任設備內置的100多個根證書。

既然有單向驗證,那么也有雙向驗證,即不僅僅客戶端需要校驗服務端,服務端也需要驗證客戶端。這種情況下,客戶端需要將自己的證書發給服務端做驗證,這種情況只需要將證書的KeyManager作為在init()的第一個參數來SSLContext就行了。


責任編輯:武曉燕 來源: java知路
相關推薦

2020-10-09 08:15:11

JsBridge

2019-09-11 08:52:24

MVCMVPMVVM

2022-08-09 08:00:55

AWS安全API

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平臺

2023-05-08 08:21:15

JavaNIO編程

2021-03-05 18:04:15

JavaScript循環代碼

2021-03-09 14:04:01

JavaScriptCookie數據

2021-09-27 09:18:30

ListIterato接口方法

2021-01-26 23:46:32

JavaScript數據結構前端

2020-12-08 08:09:49

SVG圖標Web

2024-01-30 13:47:45

2023-07-30 15:18:54

JavaScript屬性

2021-02-26 20:01:57

SVG濾鏡元素

2023-09-06 14:57:46

JavaScript編程語言

2021-05-18 08:30:42

JavaScript 前端JavaScript時

2024-04-19 14:23:52

SwitchJavaScript開發

2021-06-24 09:05:08

JavaScript日期前端

2021-02-02 18:39:05

JavaScript

2021-01-29 18:41:16

JavaScript函數語法
點贊
收藏

51CTO技術棧公眾號

9999在线精品视频| 国产理论电影在线观看| 亚洲视频一区| 亚洲色图日韩av| 天堂在线精品视频| 色是在线视频| 国产精品乱码人人做人人爱| 成人黄动漫网站免费| 免费观看成人毛片| 在线电影一区二区| 亚洲美女av在线| 一本之道在线视频| av成人在线观看| 亚洲成av人影院| 亚洲人体一区| 男人的天堂av高清在线| 国产乱人伦精品一区二区在线观看| 7777免费精品视频| 一区二区三区影视| 国产伦一区二区三区| 精品国产免费视频| xxxx在线免费观看| 亚洲成人av观看| 激情懂色av一区av二区av| 三年中文高清在线观看第6集| 水中色av综合| 国产精品亚洲一区二区三区妖精| 国产大片精品免费永久看nba| 69av.com| 99re6这里只有精品| 亚洲欧美日韩精品| 中文字幕99页| www.91精品| 欧美性色欧美a在线播放| 免费看国产曰批40分钟| 亚洲羞羞网站| 国产精品国产三级国产有无不卡 | 久久综合伊人77777蜜臀| 国产精品无码一区二区三区免费| 日韩视频一二区| 欧美高清精品3d| www.色就是色| 国产不卡网站| 日韩欧美高清视频| 免费观看日韩毛片| 在线观看福利电影| 一本到不卡免费一区二区| 黄色一级视频片| 国产传媒在线观看| 性感美女极品91精品| 欧美国产视频一区| 牛牛精品在线视频| 亚洲自拍偷拍麻豆| 日韩a级在线观看| 菠萝蜜视频在线观看www入口| 亚洲天堂久久久久久久| 超碰成人在线免费观看| 男人在线资源站| 亚洲欧美视频在线观看视频| 国产麻豆电影在线观看| 成人video亚洲精品| 亚洲精品水蜜桃| 国产欧美123| 成人性生交大片免费看在线播放| 亚洲综合在线视频| 无码粉嫩虎白一线天在线观看 | 成人做爰69片免费| 国产66精品| 日韩高清a**址| 全黄一级裸体片| 全球成人免费直播| 北条麻妃99精品青青久久| 草视频在线观看| 亚洲精品激情| 国产精品第2页| 在线视频 91| 国产成人鲁色资源国产91色综| wwwxx欧美| 手机福利在线| 中文字幕精品—区二区四季| 国产91av视频在线观看| 欧美videossex| 欧美日韩中文字幕综合视频 | 日本道在线观看| 老司机精品视频网站| 国产在线精品一区免费香蕉| 不卡av中文字幕| 99久久久久久| 亚洲一区二区在线看| 丁香花在线高清完整版视频| 色综合天天性综合| 亚洲欧美日韩一二三区| 高清日韩中文字幕| 自拍偷拍亚洲区| 国产福利久久久| 日韩成人一区二区三区在线观看| 亚洲一区二区三| 婷婷丁香一区二区三区| 国产精品美女久久久久久2018| 免费极品av一视觉盛宴| 视频在线日韩| 亚洲国产精品成人av| 五月婷婷婷婷婷| 亚洲高清免费| 成人福利视频网| 午夜视频在线播放| 亚洲乱码一区二区三区在线观看| 欧美 日韩 国产一区| 高清在线一区二区| 亚洲少妇激情视频| 日本熟妇毛耸耸xxxxxx| 国产专区综合网| 蜜桃av噜噜一区二区三区| 天天色天天射天天综合网| 欧美在线一区二区三区| 久久久午夜精品福利内容| 99久久久久国产精品| 日本91av在线播放| 天堂在线视频免费观看| 亚洲免费伊人电影| wwww.国产| 一本色道久久综合亚洲精品酒店 | 中文字幕激情小说| 国产精品一区二区男女羞羞无遮挡| 久久五月天婷婷| 欧美一卡二卡| 欧美放荡的少妇| 国产123在线| 久久综合五月| 牛人盗摄一区二区三区视频| 国产高清视频色在线www| 欧美一级国产精品| 日本黄色激情视频| 青青草97国产精品免费观看无弹窗版| 精品一区二区日本| heyzo高清在线| 337p日本欧洲亚洲大胆精品| 国产一区二区三区在线视频观看| 麻豆91小视频| 亚洲精品一区二| 成人黄色免费网站| 亚洲午夜av电影| 国产午夜精品久久久久| 91啪亚洲精品| 播放灌醉水嫩大学生国内精品| 国产区精品视频在线观看豆花| 欧美福利小视频| 亚洲AV无码精品国产| 亚洲欧美日韩中文播放| 久国产精品视频| 91精品综合| 不卡视频一区二区| 成人影院在线播放| 日韩国产高清视频在线| 成年人免费高清视频| 久久影视一区二区| 国产第一页视频| 俺要去色综合狠狠| 国产区亚洲区欧美区| 免费黄色网址在线观看| 91精品国产全国免费观看| 我要看黄色一级片| 国产成人av电影在线| 成年人网站国产| 日本韩国欧美超级黄在线观看| 欧美专区日韩视频| www.91在线| 在线播放日韩导航| 久久综合成人网| 99re亚洲国产精品| 男人插女人下面免费视频| 亚洲草久电影| 国产一区免费| 51一区二区三区| 久久五月天色综合| 三级网站在线看| 欧美色图12p| 国产乱国产乱老熟300| 99re在线精品| 午夜激情av在线| 伊人影院久久| 色大师av一区二区三区| 少妇精品视频在线观看| 欧美精品电影在线| 国产精品久久久久久久龚玥菲| 欧美日本乱大交xxxxx| 久久久久久久久久一区二区三区| 99国产精品99久久久久久| 人人干人人干人人| 狠狠爱成人网| 亚洲欧美日韩另类精品一区二区三区 | 亚洲成人av中文| 精品一区二区三区蜜桃在线| 国产成人精品在线看| 成人在线看视频| 欧美va天堂| 日本一区高清不卡| 91国内精品| 国产色婷婷国产综合在线理论片a| 欧美性video| 在线精品高清中文字幕| 丰满人妻一区二区| 欧美亚洲国产一区在线观看网站| 丰满少妇高潮久久三区| 国产精品天干天干在线综合| 久久国产劲爆∧v内射| 麻豆国产精品一区二区三区| 亚洲中文字幕无码专区| 欧美久色视频| 一区二区av| 免费av一区二区三区四区| 97人摸人人澡人人人超一碰| 成人综合网站| 欧美孕妇性xx| gogo久久| 欧美精品情趣视频| 欧美性videos| 亚洲天堂免费视频| 欧美特黄一级视频| 91精品国产综合久久婷婷香蕉| 国产精品999视频| 都市激情亚洲| 亚洲aa中文字幕| 日本少妇毛茸茸| 热久久免费视频| 国产黄页在线观看| 日韩网站在线播放| 国产综合自拍| 欧美日韩在线免费观看视频| 精品精品99| 欧美日韩另类丝袜其他| 欧美成人基地| 国产亚洲精品久久飘花| 亚洲日本va| 97久久精品午夜一区二区| 国产成年精品| 亚洲qvod图片区电影| 国产一区二区三区四区五区3d| 国产mv久久久| 123成人网| 国产精品久久久久久久久久三级 | 九色精品美女在线| 久草中文在线| 久久久精品网站| 黄色av网站在线播放| 欧美成年人视频网站| 自拍亚洲图区| 欧美激情videos| 激情图片在线观看高清国产| 欧美精品videossex88| 波多野结依一区| 69久久夜色精品国产7777| 黄在线观看免费网站ktv| 91精品国产成人| 久久sese| 国产精品三级美女白浆呻吟| 国产精品.xx视频.xxtv| 国产乱肥老妇国产一区二| 伊人久久大香| 99视频在线播放| 久久悠悠精品综合网| 欧美精品亚洲精品| 日韩久久电影| 777久久精品一区二区三区无码| 欧美精品网站| 116极品美女午夜一级| 免费av网站大全久久| 亚洲第一成肉网| 不卡的av网站| 蜜桃av乱码一区二区三区| 亚洲欧洲国产日韩| 日韩精品一区二区在线播放| 91国模大尺度私拍在线视频| 伊人影院中文字幕| 91精品国产入口| 婷婷在线免费视频| 综合国产在线观看| 黄色羞羞视频在线观看| 国产成人精品久久二区二区91| 日韩成人在线电影| 极品校花啪啪激情久久| 激情五月色综合国产精品| 玖玖精品在线视频| 国产欧美亚洲一区| 在线观看免费的av| 成a人片国产精品| 国产精品久久久久久成人| 亚洲精品高清在线观看| 精品国产乱子伦| 日韩欧美中文字幕一区| 精品亚洲综合| 欧美精品www在线观看| 99久久伊人| 国产九区一区在线| 99久久夜色精品国产亚洲狼 | 青青草国产成人99久久| 亚洲国产精品第一页| 国产清纯白嫩初高生在线观看91 | 欧美在线制服丝袜| 人妻精品一区一区三区蜜桃91| 一区二区欧美久久| av资源一区| 91九色视频导航| 禁果av一区二区三区| 粉嫩av一区二区三区天美传媒 | 国产永久av在线| 欧美精品999| 中文字幕成人| 欧美一区二区三区精美影视| 欧美午夜不卡| 国产精品自在自线| 久久精品日产第一区二区三区高清版| 午夜免费激情视频| 欧美日韩成人在线| 黄网在线免费| 91av视频在线| 91亚洲精品视频在线观看| 永久久久久久| 青青草精品视频| 成人免费无遮挡无码黄漫视频| 午夜欧美在线一二页| av中文字幕免费| 久久精品国产精品亚洲| 精品福利在线| 色99中文字幕| 日韩电影免费在线看| 右手影院亚洲欧美| 天天操天天干天天综合网| 精品黑人一区二区三区国语馆| 日韩中文在线视频| 成人在线视频观看| 五月天亚洲综合小说网| 蘑菇福利视频一区播放| 国产精品一区二区入口九绯色| 午夜一区二区三区视频| 成人久久久精品国产乱码一区二区| 久久中国妇女中文字幕| 国产精品18| 超碰超碰超碰超碰超碰| 国产成人丝袜美腿| 欧美激情国产精品免费| 日韩欧美不卡在线观看视频| 亚洲妇熟xxxx妇色黄| 都市激情久久久久久久久久久| 综合国产在线| 男插女视频网站| 亚洲一区二区精品视频| 黑人操亚洲女人| 国内精品视频久久| 久久97精品| 虎白女粉嫩尤物福利视频| 欧美国产精品一区二区三区| 在线观看国产黄| 久久这里只有精品99| 亚洲精品在线a| 欧美精品自拍视频| www成人在线观看| 波多野结衣大片| 日韩中文有码在线视频| 精品入口麻豆88视频| 激情五月婷婷六月| 99视频国产精品| 少妇太紧太爽又黄又硬又爽| 亚洲欧美中文日韩在线| 国产精品伦一区二区| 男人j进女人j| av在线免费不卡| 九九热最新视频| 久久久精品国产| 加勒比久久高清| 好男人www社区| 亚洲欧美一区二区三区久本道91| 黄色av网站免费在线观看| 91wwwcom在线观看| 日韩一区二区三区免费播放| 激情成人在线观看| 午夜精品福利视频网站| 国产午夜视频在线观看| 91久久精品美女高潮| 亚洲久久一区二区| 成人免费视频入口| 欧美mv和日韩mv的网站| 波多野结衣亚洲| 日本黄网站色大片免费观看| 91年精品国产| 国产精品国产一区二区三区四区 | 久久久五月婷婷| 国产手机精品视频| 青青草国产精品一区二区| 婷婷亚洲图片| 熟女丰满老熟女熟妇| 欧美福利视频导航| 伊伊综合在线| 青青草视频在线视频| 国产亲近乱来精品视频| 国产91免费在线观看| 国产欧美韩国高清| 免费精品视频| 免费毛片在线播放免费| 上原亚衣av一区二区三区|