研究HTTPS协议的时候,发现网站的CA认证,比如建行,比如支付宝,需要首先下载数字证书, 当然有些其他的双向认证,比如之前做过的港航和JP MORGAN进行交互的时候,证书是私下发送的,不需要去公网下载.这种方式比较安全. 建行有种类似的保证安全的方式,用U盾,去建行办理网银的时候会给你一个U盾,U盾有校验你下载的数字证书是否合法的功能.这种校验叫做强认证. 支付宝就不同了,支付宝没有U盾的东西,但是只要是https的网站,至少服务端都有自己的证书,保证客户端发送到服务端的数据是加密的.这种叫…
一.背景说明 1.1 面临问题 最近一份产品检测报告建议使用基于pki的认证方式,由于产品已实现https,商量之下认为其意思是使用双向认证以处理中间人形式攻击. <信息安全工程>中接触过双向认证,但有两个问题. 第一个是当时最终的课程设计客户端是浏览器,服务端是tomcat双向认证只需要对两者进行配置并不需要自己真的实现代码. 第二个是虽然课程也有接近双向认证的实现代码,但当时是Java+JCE环境现在要用C+++OpenSSL环境,总体意思确实还是差不多但具体函数和参数差别还是不少. 所以…
1.前言 最近工作涉及到https,需要修改nginx的openssl模块,引入keyless方案.关于keyless可以参考CloudFlare的官方博客: https://blog.cloudflare.com/keyless-ssl-the-nitty-gritty-technical-details/?utm_source=tuicool&utm_medium=referral. 在openssl的基础上修改私钥校验过程,因此需要对openssl的认证认证流程需要熟悉一下.SSL中涉及到…
去年用tomcat.jboss配置过HTTPS双向认证,那时候主要用的是JDK自带的keytool工具.这次是用httpd + openssl,区别比较大 在网上搜索了很多文章,发现全面介绍的不多,或者就是版本比较旧了.所以把我配置的过程完整地记录下来,以供参考 首先要说明一下,HTTPS涉及到的内容非常繁杂,包括各种术语.命令.算法,我现在也没有完全搞清楚.本文会尽量把我知道的解释一下,但是深入的内容,暂时不打算深究了 一.环境 httpd: 2.4.4 openssl:1.0.1 os:ub…
最近在学习WCF X.509证书验证,想实现使用证书实现服务端和客户端的双向认证,实现原理是利用了数字证书包含的一对非对称密钥来实现数字签名及加密.所谓非对称密钥是采用两个密钥将加密和解密能力分开:一个公钥和一个私钥,公钥可解密私钥加密的信息,私钥也可以解密公钥加密的信息,前者用于数字签名后者用于信息加密,但从一个密钥是不可能分析出另一个密钥.利用非对称密钥的特点,我们将私钥签名的证书安装在服务端,把公钥签名的证书放在客户端,就可以实现使用证书实现服务端和客户端的双向认证.具体步骤如下: [1]…
生成证书 # * Redistributions in binary form must reproduce the above copyright #   notice, this list of conditions and the following disclaimer in the #   documentation and/or other materials provided with the distribution. # * Neither the name of the ax…
基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证 摘自:https://blog.csdn.net/ty1121466568/article/details/81118468 2018年07月19日 16:51:57 曾来过 阅读数:1632   本文为参考网上其他博文搭建出服务器后的步骤记录,如有冒犯,请私信!!! 目录... 3 第 1 章 安装Mosquitto. 4 1.1 方法一:手动编译安装... 4 1.2方法二:在Ubuntu下使用apt-get安装…
0.环境 本文的相关源码位于 https://github.com/dreamingodd/CA-generation-demo 必须安装nginx,必须安装openssl,(用apt-get update, apt-get install来安装比较简单) 1.配置和脚本 先创建一个demo目录(位置自己选择,我选择建在nginx的目录下): mkdir /etc/nginx/ca-demo cd /etc/nginx/ca-demo 修改SSL配置openssl.cnf(也可能是openssl…
HTTPS 双向认证构建移动设备安全体系 对于一些高安全性要求的企业内项目,我们有时希望能够对客户端进行验证.这个时候我们可以使用Https的双向认证机制来实现这个功能. 单向认证:保证server是真的,通道是安全的(对称密钥):双向认证:保证client和server是真的,通道是安全的(对称密钥): 要实现这么一个完整的安全体系,需要一个CA或者openssl自建CA来管理签发客户端证书.作为项目要求的场景可能是这样的,一个前端网站专门用于签发证书,通过电子邮件发送下载客户端证书邮件到移动…
单向认证: .clinet<--server .clinet-->server .client从server处拿到server的证书,通过公司的CA去验证该证书,以确认server是真实的: .从server的证书中取出公钥,对client端产生的一个密钥加密(该密钥即对称密钥).将加密后的密钥发送到server端.server端用其私钥解密出数据,即得到了对称密钥: .以后的交易都是http+该对称密钥加密的方式来处理: 双向认证: 与单向认证的区别就是在1.2步骤中产生的是二分之一的对称密…