双向认证案例
❶ 谁能提供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段用以记录更上层用的协议。