雙向認證案例
❶ 誰能提供Android https雙向認證的demo,緊急,謝謝!
表示我了頭大
❷ apache https 雙向認證要怎麼實現
HTTPS雙向認證具體過程:
① 瀏覽器發送一個連接請求給安全伺服器。
② 伺服器將自己的證書,以及同證書相關的信息發送給客戶瀏覽器。
③ 客戶瀏覽器檢查伺服器送過來的證書是否是由自己信賴的CA中心(如沃通CA)所簽發的。如果是,就繼續執行協議;如果不是,客戶瀏覽器就給客戶一個警告消息:警告客戶這個證書不是可以信賴的,詢問客戶是否需要繼續。
④ 接著客戶瀏覽器比較證書里的消息,例如域名和公鑰,與伺服器剛剛發送的相關消息是否一致,如果是一致的,客戶瀏覽器認可這個伺服器的合法身份。
⑤ 伺服器要求客戶發送客戶自己的證書。收到後,伺服器驗證客戶的證書,如果沒有通過驗證,拒絕連接;如果通過驗證,伺服器獲得用戶的公鑰。
⑥ 客戶瀏覽器告訴伺服器自己所能夠支持的通訊對稱密碼方案。
⑦ 伺服器從客戶發送過來的密碼方案中,選擇一種加密程度最高的密碼方案,用客戶的公鑰加過密後通知瀏覽器。
⑧ 瀏覽器針對這個密碼方案,選擇一個通話密鑰,接著用伺服器的公鑰加過密後發送給伺服器。
⑨ 伺服器接收到瀏覽器送過來的消息,用自己的私鑰解密,獲得通話密鑰。
⑩ 伺服器、瀏覽器接下來的通訊都是用對稱密碼方案,對稱密鑰是加過密的。
雙向認證則是需要服務端與客戶端提供身份認證,只能是服務端允許的客戶能去訪問,安全性相對於要高一些。
具體實現HTTPS雙向認證,建議咨詢專業的https證書簽發機構沃通CA。
❸ 請教一個 C#https雙向認證的例子
https雙向認證與具體的語言無關吧?
https其實是http+ssl,這種情下可以起到一個單向認證的回做用,瀏覽器答獲得伺服器返回的簽名,然後將其簽名送到CA,CA可認證瀏覽器所讀到的是正經網站還是假冒的網站。當然伺服器證書過期或不能與根證書(瀏覽安全區證書)形成證書鏈時,就會出現危險標識,提示你是否繼續訪問。這種就是典型的https的作用。
如果雙向認證,則需要瀏覽器也上傳簽名(伺服器可要求客戶端必須使用簽名),同樣伺服器也執行了相同的認證流程,這就是典型的雙向認證。
一般情況下,如果客戶端的證書是由服務端建立CA頒發的情況下,可以直接從證書中讀取信息,而這個信息包括公司對的不可列新的信息,此時情況下,瀏覽器不需要也沒有必須再設計類型的登陸按鈕之類(如果證書頒發給操作員的話,但如果證書頒給對方機構,存在多個操作員使用同一證書情況下,設計登陸界面以區別不同的操作員)。
這個與http,ssl和tls相關,與具體的實現語言無關。
❹ java 建立雙向認證 https連接
絕對好用的。直用的這個,GOOD LUCK FOR YOU
public static String httpRequest(String requestUrl, String requestMethod, String outputStr) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
try {
// 創建SSLContext對象,並使用我們指定的信任管理器初始化
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 從上述SSLContext對象中得到SSLSocketFactory對象
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL url = new URL(requestUrl);
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 設置請求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);
if ("GET".equalsIgnoreCase(requestMethod))
httpUrlConn.connect();
// 當有數據需要提交時
if (null != outputStr) {
OutputStream outputStream = httpUrlConn.getOutputStream();
// 注意編碼格式,防止中文亂碼
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// 將返回的輸入流轉換成字元串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 釋放資源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
System.out.println("返回的數據:"+buffer.toString());
// jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
log.error("Weixin server connection timed out.");
} catch (Exception e) {
log.error("https request error:{}", e);
}
return buffer.toString();
}
❺ 如何實現伺服器和用戶端的雙向認證
天威誠信的TA(Trust Access)可以實現伺服器和用戶端的雙向認證,原理如下
在網站伺服器端內,通過部署伺服器證容書,使用戶在登錄網站的時候可以通過明顯的瀏覽器地址欄右側的顯示框看到網站域名被驗證通過的信息,並且可以通過點擊驗證網站的真實信息;同時利用伺服器證書的密碼機制將網站伺服器與訪問者瀏覽器之間傳輸的信息進行全程加密。
在訪問者用戶端,將捆綁了用戶信息的數字證書存儲於高度安全的天威盾中,在用戶訪問應用伺服器時,服務端要求用戶端出示身份證書,並驗證用戶真實身份,確認是經過授權的用戶後才允許訪問網站敏感信息。
追求高強度信息安全的用戶,如提供信息檢索、網路購物、電子支付、網路社區、網路游戲、網路視頻等的網路服務提供商,均可以通過使用TA(Trust Access)在伺服器端部署伺服器證書,在用戶端使用個人證書來完成受訪網站及訪問者之間的雙向認證,保證訪問鏈接行為是經過雙方授權的,最大程度的保護傳輸數據的安全和用戶隱私信息的安全,有效避免假冒網站及虛假用戶的冒充及騙取行為。
❻ 什麼是雙向認證
首先說下單項認證:就是比如你有個密碼 用戶名 然後和伺服器上的用內戶信息進行比對 一致的容話你們就可以建立連接.
雙向認證就是:你有個密碼 用戶名 你先發給伺服器進行比對,如果一致伺服器再把它的密碼用戶名發到你機器上與你機器上保留的用戶信息進行比對 如果還一致則建立鏈接!
大多數網路是雙向認證的 為了更安全
❼ 雙向認證有什麼用優勢何在
你說的是伺服器和客戶端的認證碼?單一的伺服器證書只能保證伺服器網站的真實性,單內一的用戶名密碼口令僅容能用於初步識別訪客身份。而真正安全可靠的網路環境要求網站、用戶及信息傳輸必須同時安全可信。天威誠信的雙向認證解決方案TA(Trust Access)通過伺服器證書及高認證強度的用戶端證書的結合,實現服務端與用戶端的雙向互信及數據的機密傳輸,使信息更安全,更可靠。
❽ TA是怎樣實現雙向認證的
TA(Trust Access)是天威誠信開發完成了符合現階段網路應用環境特點的雙向訪問控制解決方案 ,通過回在網答站伺服器端部署伺服器證書,使用戶在登錄網站的時候可以通過明顯的瀏覽器地址欄右側的顯示框看到網站域名被驗證通過的信息,並且可以通過點擊驗證網站的真實信息;同時利用伺服器證書的密碼機制將網站伺服器與訪問者瀏覽器之間傳輸的信息進行全程加密。
在訪問者用戶端,TA(Trust Access)將捆綁了用戶信息的數字證書存儲於高度安全的天威盾中,在用戶訪問應用伺服器時,服務端要求用戶端出示身份證書,並驗證用戶真實身份,確認是經過授權的用戶後才允許訪問網站敏感信息。
❾ ssl雙向認證和單向認證的區別
1、安全性不同:
單向認證只要求站點部署了ssl證書就行,任何用戶都可以去訪問(IP被限制除外等),只是服務端提供了身份認證。而雙向認證則是需要是服務端需要客戶端提供身份認證,只能是服務端允許的客戶能去訪問,安全性相對於要高一些。
2、用途不同:
一般Web應用都是採用單向認證的,原因很簡單,用戶數目廣泛,且無需做在通訊層做用戶身份驗證,一般都在應用邏輯層來保證用戶的合法登入。但如果是企業應用對接,情況就不一樣,可能會要求對客戶端(相對而言)做身份驗證。這時就需要做雙向認證。
3、要求不同:
雙向認證SSL 協議的具體通訊過程,這種情況要求伺服器和客戶端雙方都有證書。 單向認證SSL 協議不需要客戶端擁有CA證書,以及在協商對稱密碼方案,對稱通話密鑰時,伺服器發送給客戶端的是沒有加過密的(這並不影響SSL過程的安全性)密碼方案。
(9)雙向認證案例擴展閱讀:
ssl雙向認證客戶端要收發的握手信號:
發送一個ClientHello消息,說明它支持的密碼演算法列表、壓縮方法及最高協議版本,也發送稍後將被使用的隨機數。
然後收到一個ServerHello消息,包含伺服器選擇的連接參數,源自客戶端初期所提供的ClientHello。
當雙方知道了連接參數,客戶端與伺服器交換證書(依靠被選擇的公鑰系統)。這些證書通常基於X.509,不過已有草案支持以OpenPGP為基礎的證書。
伺服器請求客戶端公鑰。客戶端有證書即雙向身份認證,沒證書時隨機生成公鑰。客戶端與伺服器通過公鑰保密協商共同的主私鑰(雙方隨機協商),這通過精心謹慎設計的偽隨機數功能實現。結果可能使用Diffie-Hellman交換,或簡化的公鑰加密,雙方各自用私鑰解密。
所有其他關鍵數據的加密均使用這個「主密鑰」。數據傳輸中記錄層(Record layer)用於封裝更高層的HTTP等協議。記錄層數據可以被隨意壓縮、加密,與消息驗證碼壓縮在一起。每個記錄層包都有一個Content-Type段用以記錄更上層用的協議。