`

SSL/TLS单向双向认证原理

 
阅读更多
最近在搞一个项目,其中要用到安全传输,研究了下SSL/TLS单向双向认证。
1. SSL/TLS单向认证:客户端会认证服务器端身份,服务器端不对客户端进行认证
2. SSL/TLS双向认证:客户端和服务端都会互相认证,即双发之间要证书交换
一般的应用都是单向认证,如果场景中要求对客户源做认证可以实现双向认证,下边介绍双向认证过程

认证过程

SSL消息按如下顺序发送:
1. Client Hello
客户发送服务器信息,包括它所支持的密码组。密码组中有密码算法和钥匙大小;
2. Server Hello
服务器选择客户和服务器都支持的密码组到客户。
3. Certificate
服务器发送一个证书或一个证书链到客户端,一个证书链开始于服务器公共钥匙证书并结束于证明权威的根证书。这个消息是可选的,但服务器证书需要时,必须使用它。
4. Certificate request
当服务器需要鉴别客户时,它发送一个证书请求到客户端。在网络程序中,这个消息很少发送。
5. Server key exchange
服务器当发送来的公共钥匙对钥匙交换不是很充分时,发送一个服务器钥匙交换消息。
6. Server hello done
服务器告诉客户完成它的初始化流通消息。
7. Certificate
假如服务器需要一个客户证书时,客户端发送一个证书链。(只有在服务器需要客户证书时)
8. Client key exchange
客户产生用于对称算法的一个钥匙。对RSA客户用服务器公共钥匙加密这个钥匙信息并把它送到服务器。
9. Certificate verify
在网络程序中,这个消息很少发送,它主要是用来允许服务器结束对客户的鉴别处理。当用这个消息时,客户发送用密码函数的数字签名的信息到服务端,当服务端用公共钥匙解密这个消息时,服务器能够鉴别客户。
10. Change cipher spec
客户发送一个消息告诉服务器改变加密模式。
11. Finished
客户告诉服务器它已准备安全数据通信。
12. Change cipher spec
服务器发送一个消息到客户端并告诉客户修改加密模式。
13. Finished
服务器告诉客户端它已准备好安全数据通信。这是client-server握手协议最后一步。
14. Encrypted data
客户同服务器用对称加密算法和密码函数,并用客户发送到服务器的秘密钥匙加密通信。
分享到:
评论

相关推荐

    JAVA实现的SSL/TLS双向认证源代码

    通常,SSL/TLS连接采用单向认证,即服务器验证客户端的身份,而客户端不需要验证服务器。但在某些高安全性的场景下,双向认证是必要的,即双方都需要证明自己的身份。这增加了安全性,防止了中间人攻击。 在Java中...

    TLS单、双向认证资料

    1. **TLS单向认证**:在单向认证中,服务器向客户端证明自己的身份,而客户端无需向服务器证实。这通常通过服务器的数字证书实现,证书由可信任的证书颁发机构(CA)签名。 2. **TLS双向认证**:在此模式下,服务器和...

    SSL&TLS认证原理详解

    在实际应用中,SSL/TLS协议有两种认证模式:单向认证和双向认证。单向认证中,客户端验证服务器的身份,服务器不验证客户端;双向认证则要求双方均需验证对方身份,这通常在高度安全需求的场景下使用。认证过程涉及...

    利用tomcat服务器配置https双向认证、https单向认证-ssl、tls

    这两种认证机制都是基于SSL(Secure Sockets Layer)和TLS(Transport Layer Security)协议的,旨在确保数据传输的安全性。 **SSL/TLS协议概述** SSL和TLS是网络安全协议,用于在互联网上创建加密连接,保护数据免...

    VC http/https(包含单向认证、双向认证源码、SSL协议设置)

    VC http/https(包含单向认证、双向认证源码、SSL协议设置) 这个类是从我现在正在开发的代码中扣出来的,但是耦合性应该不高,可以加入到其他工程使用,带S的函数是针对多线程压力测试几乎没有捕获异常。代码以先...

    OpenSSL-s-client 和 s-server

    在本例中,`twoway_ssl.pcapng`和`twoway_tls1_2.pcapng`记录了双向认证的SSL和TLS 1.2协议的数据包,而`oneway_ssl.pcapng`和`oneway_tls1_2.pcapng`记录了单向认证的情况。通过Wireshark等网络分析工具,我们可以...

    Apache HTTPS 配置手册:服务器证书与双向认证详解

    内容概要:本文档详细介绍了 Apache HTTP 服务器的 HTTPS 配置过程,包括系统配置要求、安装流程、SSL 握手协议、单向和双向认证配置、自建根证书及其签署方法等。主要内容涵盖了从硬件和软件的要求,到具体的操作...

    详解Nginx SSL快速双向认证配置(脚本)

    **Nginx SSL双向认证配置详解** 在网络安全日益重要的今天,服务器与客户端之间的通信安全成为了一个不可忽视的问题。本文将详细介绍如何在Nginx服务器上配置SSL双向认证,以提高服务器的安全性,允许只有经过验证...

    activemq ssl双向认证连接

    SSL(Secure Socket Layer)是用于确保网络通信安全的一种标准协议,而双向认证(Mutual SSL/TLS Authentication)则进一步增强了这种安全性,它要求服务器验证客户端的身份,同时也要求客户端验证服务器的身份。...

    keytool+tomcat 单向/双向认证的配置

    当我们谈论单向和双向认证,这是SSL/TLS协议中的安全概念,用于确保网络通信的安全性。 **单向认证(Server Authentication)**: 在此模式下,客户端(如浏览器)验证服务器的身份。服务器需要一个由受信任的证书...

    SSL基础知识.pdf

    在SSL/TLS握手流程中,分为单向认证、双向认证和会话重用握手流程。单向认证过程中,客户端验证服务器的身份,双向认证则是服务器也验证客户端的身份。会话重用则通过安全地重用之前的会话参数,以减少握手过程的...

    android访问自签CA的Https SSL双向认证(j2SE也能使用)

    SSL/TLS认证分为单向认证和双向认证。单向认证是指客户端只验证服务器的身份,而双向认证则要求服务器和客户端都需要验证对方的身份。 在Android中,当我们遇到自签CA的情况,系统默认会拒绝连接,因为这些证书不在...

    IOS,Android SSL双向认证HTTPS方式请求及配置证书

    常规的`SSL`单向认证中,服务器会验证客户端的身份,但客户端并不验证服务器的身份。而在双向认证中,客户端不仅要验证服务器的身份,服务器也要验证客户端的身份,这样可以防止中间人攻击,增强了通信的安全性。 ...

    HTTPS单双向认证图解+自签泛域名证书生成及使用

    双向认证与单向认证类似,但在服务端收到客户端的加密方案后,还会要求客户端提供客户端证书进行身份验证。服务端验证客户端证书的有效性后,才会继续通信。 ### 自签泛域名证书生成及使用 自签泛域名证书是为了在...

    网络安全-Web安全.ppt

    SSL支持多种认证方式,如单向或双向认证,以及多种加密算法,如RSA、DSS、DH等。 在实际的SSL连接建立过程中,涉及一系列步骤,包括ClientHello、ServerHello、Certificate、ServerHelloDone、ClientKeyExchange、...

    SSL双向认证证书制作过程流程

    SSL双向认证证书制作过程主要涉及网络安全领域,尤其是用于保护网络通信的安全套接层(SSL)和传输层安全(TLS)协议。这些协议确保了数据在互联网上传输时的加密和完整性,防止中间人攻击和数据泄露。以下是SSL双向...

    Openssl Socket实现SSL双向认证连接 -易语言

    双向认证(Mutual Authentication)是SSL/TLS通信中的一种安全机制,它要求客户端和服务器都必须验证对方的身份。这与单向认证不同,单向认证中通常只需要服务器验证客户端的身份。在双向认证中,两个通信方都需要...

    ssl测试代码

    在本项目中,我们将深入探讨如何使用OpenSSL库进行SSL测试,包括单向认证、双向认证以及证书的生成。 1. **单向认证**:在单向认证中,服务器验证其身份给客户端,而客户端则无需证明自己。这种认证方式通常适用于...

    TLS1.3双方使用证书身份认证的密钥导出详细过程.docx

    TLS1.3 双方使用证书身份认证的密钥导出详细过程 本文将详细介绍 TLS1.3 双方使用证书身份认证的密钥导出过程,从 Early Secret 到 Handshake Secret 的计算过程,包括 HKDF-Extract 和 HKDF-Expand 函数的使用。 ...

    CentOS https双向认证.zip

    双向认证,也称为客户端证书认证,是一种加强网络安全的机制,它要求服务器验证客户端(通常是Web浏览器)的身份,同时客户端也要验证服务器的身份,从而提供了比单向认证更高的安全性。 以下是对这个主题的一些...

Global site tag (gtag.js) - Google Analytics