`
notfatboy
  • 浏览: 237187 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转)https/SSL 原理

阅读更多
此前我一直对https/ssl如何保护数据不被监听有点疑问,因为服务器的证书是公开的,只能实行上行方向的数据加密,下行数据的加密我一直认为是浏览器会自动生成一个客户端的密钥对并将公钥发给服务器。今天仔细研究了https/ssl,发现其实并不像我想的那样,这里面既有非对称加密,又因为性能原因使用了对称加密。其原理大概是这样的:

客户端浏览器连接到https/ssl服务器,并发送ssl版本号等信息到服务器,协商此次连接使用的版本和参数
服务器根据客户端发来的协商数据和自身支持的特性返回客户端协商参数,并且将服务器的证书发送给客户端,服务器的证书里包括用于非对称加密的服务器的公钥
客户端收到服务器的证书,可以用于鉴别服务器身份,防止假冒的服务器。但最重要的用处是将一段由客户端浏览器随机生成的数据pre-master secret用服务器证书里的公钥进行加密,发给服务器。注意,因为这段加密的数据只由用服务器的私钥才能解密,所以pre-master secret不会被人监听到。
服务器收到加密后的pre-master secret数据后,用自己的私钥解密得到原始的pre-master secret,并使用一定算法得到对称加密的密钥master secret。
客户端也根据同样的算法得到master secret。
至此,客户端和服务器之间的上/下行数据传送使用对称加/解密,初始密钥为master secret。常用的对称加密算法有RC4,AES等。
经过这些步骤就可以保证https/ssl上下行数据不被监听并且加/解密速度也可以接受。
当我们设计自己的加密通信协议时完全可以照搬https/ssl这种方式,有时还可以简化掉证书的传递步骤。
另外https/ssl还支持客户端身份验证,这时就需要将客户端证书上传到服务器,但这个证书并不用来加密下行数据。
分享到:
评论

相关推荐

    HTTPS/SSL证书自签源码

    这是一款二次元风格向的SSL证书自签工具源码,可随时随地签发SSL证书 运行环境: 你的 PHP 必须 >=5.6,且安装了 OpenSSL 扩展 所有文件都已本地化,大部分PHP默认开启OpenSSL 安装: 下载源码导入网站目录访问...

    HTTPS(SSL)工作原理

    ### HTTPS(SSL)工作原理详解 #### 一、引言 HTTPS(超文本传输安全协议)作为现代互联网安全通信的基础,对于保护用户隐私和数据安全至关重要。本文将深入探讨HTTPS的工作原理及其背后的SSL/TLS机制。 #### 二...

    SSL原理及应用

    SSL(Secure Sockets Layer,安全套接层)和它的继承者TLS(Transport Layer Security,传输层安全)是网络通信中广泛使用的一种安全协议,旨在确保数据的保密性和完整性。这两种协议工作在TCP/IP协议栈的传输层,为...

    SSL工作原理详解

    SSL的工作原理涉及到多个关键概念和技术。 首先,SSL的核心在于加密,它使用了公钥加密算法,如RSA,这是一种非对称加密技术。在公钥密码系统中,每个用户有一对密钥:公钥和私钥。公钥是可以公开的,用于加密数据...

    https原理与配置 centos

    HTTPS原理与配置CentOS HTTPS(Secure Hypertext Transfer Protocol)是一种安全的通信协议,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。HTTPS使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP...

    netty实现SSL/TSL双向加密认证示例

    通过对这些代码的分析和学习,可以更好地理解 Netty 中的 SSL/TLS 双向认证工作原理。 总结,Netty 提供了强大而灵活的工具来实现 SSL/TLS 安全通信,包括双向认证。通过正确配置 `SslContext`、处理通道处理器和...

    java_https_ssl

    HTTPS简介 HTTPS是一种基于HTTP协议的安全增强版本,它在HTTP的基础上加入了SSL(Secure Socket Layer)或TLS(Transport...在实际应用中,合理配置和管理证书,以及了解SSL/TLS的工作原理,对于维护网络安全至关重要。

    HTTPS原理介绍.pptx

    HTTPS 原理是基于数字证书和 TLS/SSL 协议的安全通信协议,用于提供安全的通信环境。HTTPS 的工作原理可以分为单向认证和双向认证两种,HTTPS 使用 TCP 端口为 443,对用户及网站进行身份确认,对交互信息进行加密和...

    Java中的SSL及HTTPS协议实例源码

    Java中的SSL(Secure Socket Layer)和HTTPS(Hypertext Transfer Protocol Secure)协议是网络通信安全的重要组成部分,尤其在处理敏感信息如用户登录凭证、支付数据等时,它们提供了必要的加密和身份验证机制。...

    SSL中间人攻击原理与防范

    ### SSL中间人攻击原理与防范 #### 一、SSL协议分析 ##### 1.1 协议概述 SSL(Secure Socket Layer),即安全套接层协议,是由Netscape公司开发的安全通信协议,用于保障互联网上的数据传输安全。SSL协议通过提供...

    ssl/tls安全协议

    通过阅读"openssl.pdf"、"SSL.ppt"、"TLS(SSL)协议.ppt"和"OpenSSL编写SSL,TLS程序.txt"等文档,可以深入理解SSL/TLS协议的工作原理,掌握OpenSSL的使用方法,并了解如何在自己的应用程序中实现安全的通信机制。...

    SSLTLS 服务器瞬时 Diffie-Hellman 公共密钥过弱【原理扫描】 .txt

    【解决漏洞-亲测好用】SSLTLS 服务器瞬时 Diffie-Hellman 公共密钥过弱

    CA加密网络安全HTTPSSSL安全传输协议SSL和TLS及WTLS的原理.docx

    CA 加密网络安全 HTTP/SSL 安全传输协议 SSL 和 TLS 及 WTLS 的原理 一、SSL/TLS 概述 SSL(Secure Socket Layer)是 Netscape 公司设计的主要用于 WEB 的安全传输协议。TLS(Transport Layer Security)是 IETF ...

    腾讯云短信接口SSL

    在IT行业中,安全性和可靠性是服务提供者与用户都非常关注的要点,特别是在处理敏感信息如短信...通过学习和理解SSL的工作原理以及如何在实际开发中应用,开发者可以更好地应对类似问题,确保服务的稳定性和安全性。

    ssl dos 用于测试https网站

    SSL DOS(Denial of Service)攻击是针对使用SSL/TLS协议的HTTPS网站的一种攻击方式,主要目的是通过消耗服务器资源,导致服务不可用。本压缩包包含一个名为`ssl_dos.c`的源代码文件,这可能是一个用于模拟或研究SSL...

    利用HTTPS协议加密web传输

    1. TLS/SSL 协议的工作原理是什么? 2. 如何使用 Let's Encrypt颁发免费的 SSL 证书? 3. 如何在生产环境中使用 SSL 证书? 4. 如何使用 SSL 证书来保护 API 传输? 5. 如何使用 SSL 证书来保护数据库连接?

    使用TLS / SSL保护Spike Engine Websocket

    首先,了解TLS/SSL的基本工作原理至关重要。它们使用公钥和私钥加密技术,即非对称加密,来保证数据的保密性。服务器会提供一个数字证书,其中包含公钥,客户端则使用这个公钥加密数据并发送。服务器用其私钥解密,...

    详解:TLS SSL技术.docx

    【传输层安全性(TLS)与安全套接字层(SSL)技术详解】 传输层安全性(TLS)和安全套接字层(SSL)是网络安全领域中用于保护数据传输的...了解和掌握TLS / SSL的工作原理及配置方法对于网络安全专业人士至关重要。

Global site tag (gtag.js) - Google Analytics