SSL单双向认证

这篇具有很好参考价值的文章主要介绍了SSL单双向认证。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、TLS/SSL协议

  1. HTTPS协议是在HTTP+TLS/SSL协议组成的可进行加密传输、身份认证的网络协议,旨在保证数据传输过程中的保密性、完整性和安全性。
  2. HTTPS在HTTP和TCP之间,增加了TLS/SSL协议

ssl双向认证和单向认证,ssl,https,网络

  1. 正是通过TLS协议,才能保证HTTP通信是安全的。
  2. TLS主要通过信息加密、校验机制和身份证书来保证数据安全,其中信息加密是保证HTTP交互信息是被加密的,第三方无法知晓真实信息;校验机制是来校验信息在传输过程中是否被篡改;身份证书是用来确认这个网址的身份的。
  3. TLS会进行四次握手,是在TCP连接建立三次握手之后进行。因为HTTPS都是基于TCP传输协议实现的,得先建立完可靠的TCP连接才能继续TLS握手。

二、SSL单向认证

SSL协议用到了对称加密和非对称加密,在建立连接时,SSL首先对对称加密密钥使用非对称加密。连接建立好后,SSL对传输内容使用对称加密。单向认证是客户端不携带证书,服务端存在证书,在认证过程中,仅验证服务端的身份,当客户端访问服务器时,浏览器会去检查服务器的SSL证书,来验证网站服务器的合法性。一般web端应用都是采用单向认证的。

单向认证过程

  1. 客户端向服务端发送SSL协议的版本号、加密算法种类、随机数等信息,建立连接;

  2. 服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,以及服务端证书(证书中有公钥);

  3. 客户端用返回的信息,进行对服务端的校验,验证通过则继续通信,否则告警,验证内容:

    • 证书是否过期
    • 服务器证书签发的CA机构是否可靠
    • 公钥是否能解开证书中的数字签名
    • 服务器证书上的域名是否和服务器实际域名相匹配
  4. 客户端向服务器发送自己所能支持的对称加密方案,供服务器进行选择;

  5. 服务器选择加密程度高的加密方式;

  6. 服务器将选择好的加密方式以明文方式返回给客户端;

  7. 客户端收到加密方案后,使用该加密方案生成随机码,用作通信过程中对称加密的密钥,使用服务端返回的公钥进行加密,将加密后的随机码发送给服务器;

  8. 服务端收到客户端返回的加密信息后,使用自己的私钥解密,获取对称加密密钥,接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信的信息安全。

三、双向认证

双向认证是指在SSL握手的过程中,同时验证客户端和服务器的身份,所以双向认证SSL证书至少包括两个或两个以上的证书,一个是服务器证书,另一个或多个是客户端证书。

双向认证过程

  1. 客户端向服务器发送SSL协议的版本号、加密算法种类、随机数等信息,建立连接;
  2. 服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,以及服务端证书(证书中有公钥);
  3. 客户端使用服务端返回的信息验证服务器的合法性,验证内容跟单向认证一样;
  4. 客户端校验通过后,将自己的证书及公钥发送到服务器;
  5. 服务器验证客户端的证书,校验通过后,可获取到客户端的公钥;
  6. 客户端发送自己的可支持的对称加密方案给服务器供其选择;
  7. 服务器端在客户端发送的加密方案中先择加密程度高的方案,将加密方式通过客户端发送证书中的公钥加密后,返回给客户端;
  8. 客户端收到服务端返回的加密方案密文后,用私钥解密,获取加密方案的明文,产生随机码,作为对称加密密钥,使用服务端公钥加密后,发送给服务端;
  9. 服务端使用私钥解密得到对称加密的密钥,接下来的会话中,服务器和客户端将使用该密钥进行对称加密,保证通信安全。

四、SSL单向和双向认证区别

SSL单向认证只要求服务端部署了SSL证书,任何用户都可访问,仅服务器提供身份认证。SSL双向认证则是服务端和客户端均部署证书,进行身份认证,只能是服务端允许的客户去访问,安全性相对高。文章来源地址https://www.toymoban.com/news/detail-671287.html

到了这里,关于SSL单双向认证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合自签名SSL证书,转变HTTPS安全访问(单向认证服务端)

    HTTP 具有相当优秀和方便的一面,然而 HTTP 并非只有好的一面,事物皆具两面性,它也是有不足之处的。例如: 通信使用明文(不加密),内容可能会被窃听。 不验证通信方的身份,因此有可能会遭遇伪装。 无法证明报文的完整性,所以有可能会遭篡改等。 因HTTP有存在通信

    2024年02月06日
    浏览(64)
  • 基于tomcat的https(ssl)双向认证

            某个供应商服务需要部署到海外,如果海外多个地区需要部署多个服务,最好能实现统一登录,这样可以减轻用户的使用负担(不用记录一堆密码)。由于安全问题(可能会泄露用户数据),海外服务不能直连公司sso服务端,因此需要其他的方案解决安全问题。最终

    2024年02月20日
    浏览(45)
  • HTTPS单向认证与双向认证

    Https就是HTTP+SSL/TSL的简称。 SSL(Secure Socket Layer 安全套接层)是TCP/IP协议中基于HTTP之下TCP之上的一个可选协议层。 起初HTTP在传输数据时使用的是明文,传输过程中并不安全。网景(Netscap)公司推出了SSL解决了这一安全隐患,因此越来越多的人也开始使用HTTPS。在SSL更新到3.0时,

    2024年02月11日
    浏览(41)
  • QtWebApp开发https服务器,完成客户端与服务器基于ssl的双向认证,纯代码操作

    引言:所谓http协议,本质上也是基于TCP/IP上服务器与客户端请求和应答的标准,web开发中常用的http server有apache和nginx。Qt程序作为http client可以使用QNetworkAccessManager很方便的进行http相关的操作。 Qt本身并没有http server相关的库 ,也许是因为很少有这种需求吧。但是实际开发中

    2024年02月14日
    浏览(55)
  • NGINX自建SSL实现-单向、双向加密,中文SSL证书,吊销列表实现

    对称加密算法 对称加密算法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 非对称加密算法 非对称加密算法(RSA)是内容加密的一类算法,它有两个秘钥:公钥与私钥。公钥是公开的钥匙,所有人都可以知道,私钥是保密的

    2024年02月03日
    浏览(42)
  • ssl单向证书和双向证书校验测试及搭建流程

    首先了解下HTTP和HTTPS的区别: HTTPS与HTTP有什么不同? HTTP是过去很长一段时间我们经常用到的一种传输协议。HTTP协议传输的数据都是未加密的,这就意味着用户填写的密码、账号、交易记录等机密信息都是明文,随时可能被泄露、窃取、篡改,从而被黑客加以利用,因此使用

    2024年02月13日
    浏览(33)
  • SSL单双向认证

    HTTPS协议是在HTTP+TLS/SSL协议组成的可进行加密传输、身份认证的网络协议,旨在保证数据传输过程中的保密性、完整性和安全性。 HTTPS在HTTP和TCP之间,增加了TLS/SSL协议 正是通过TLS协议,才能保证HTTP通信是安全的。 TLS主要通过信息加密、校验机制和身份证书来保证数据安全,

    2024年02月11日
    浏览(37)
  • emqx 配置ssl/tls 双向认证(亲自测试有效)

    bash脚本,生成自签名ca、服务端、客户端的key和证书 openssl.cnf配置文件 验证证书是否有效 将证书文件拷贝到emqxetccerts目录下(默认目录),并修改配置文件emqx.conf。SSL/TLS 双向连接的启用及验证 mqttx连接验证 出现连接成功,代表测试无问题  

    2024年03月11日
    浏览(41)
  • 基于SSL/TLS双向安全连接设备CA证书认证

    小伙伴儿们,如果觉得文章干货满满,欢迎加入公众号【编程识堂】,更多干货等你们来哦! 设备证书是由CA根证书签发给客户端设备使用的数字证书,用于客户端和服务端连接时,服务端对客户端进行安全认证。认证通过后服务端和客户端可基于证书内的加密密钥进行安全

    2024年01月20日
    浏览(47)
  • 某社交App cs签名算法解析(一) SSL双向认证

    Java.use(“java.security.KeyStore$PrivateKeyEntry”).getPrivateKey.implementation = function() { var result = this.getPrivateKey(); let filePath = “/sdcard/Download/client_keystore_” + “_” + getNowTime() + ‘.p12’; dump2sdcard(this.getPrivateKey(), this.getCertificate(), filePath); return result; } Java.use(“java.security.KeyStore$PrivateKeyEn

    2024年04月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包