最近在做一个和SSL相关的任务,看了一些和SSL有关的文章。之前也学习过一些和SSL有关的知识,但是总是很快就忘掉了。所以这次决定写一篇blog,作为一个备忘。
SSL,Secure Socket Layer, 是一种用来在客户端与服务器之间建立安全传输通道的技术。
功能, SSL主要有两方面的功能,验证通信双方身份,保护传输内容。
概念,CA,证书,签名,公钥,私钥,会话秘钥,非对称加密,对称加密,哈希。
CA是具有公信力的机构,SSL客户端依赖技术手段确认证书为CA签发,一旦信任证书,则信任证书内容,包括所访问的服务是由证书中声明的组织机构提供的。
证书,表明SSL通讯参与者身份的文件,内容包括,证书持有者的信息,他的公钥,签发CA的信息,证书有效期,证书签名等。
签名,是CA使用生命的哈希算法对证书摘要进行哈希后得到的数据,CA使用非对称加密算法和自己的私钥进行加密。
公钥/私钥,非对称加密技术中,加密和解密使用不同的秘钥,其中一个公开的秘钥称为公钥,非公开的秘钥称为私钥。
对称加密,非对称加密相对运算复杂,所以在SSL上传输的内容实际上是使用相对廉价的对称加密算法进行加密的。对称加密解密使用相同的秘钥。
会话秘钥,SSL通讯中使用的对称加密秘钥是通讯双发在握手阶段协商出来的,称为会话秘钥。
哈希,一类算法,不可逆的把一段输入转化为位数固定的输出,用来生成签名。
身份验证过程,https是传输在SSL上的http,下面以https的为例说明SSL的身份验证过程。在浏览器发送请求到web server后,webserver发送自己的证书给浏览器。浏览器获取证书后,根据其中的CA信息,在自己的信任证书库中获取该CA的公钥,并用该公钥解密证书中的签名部分。并用证书的hash值和签名做比对,如果一致,则证明证书的真实性和完整性。如果证书的真实性得到了验证,那么浏览器就认为所访问的网站是真实的。
通讯过程,浏览器和服务器在握手阶段会协商在通讯过程中使用的对称加密密钥也就是会话密钥。服务器端用与证书中公钥对应的密钥加密会话密钥,并发送给客户端。客户端使用证书中的公钥解密获得会话密钥。在之后的通讯过程中,服务器端或者客户端需要发送内容到对端时,会先用会话密钥加密传输内容。对端收到内容后用会话密钥解密得到明文。
参考:
http://victor1980.blog.51cto.com/3664622/1659447
相关推荐
### SSL基本知识详解 #### 一、SSL与HTTPS概述 **SSL**(Secure Sockets Layer,安全套接层协议)是一种用于确保互联网通信安全性的协议。它通过在客户端与服务器之间建立加密连接来保护数据不被窃听或篡改。随着...
下面将详细介绍如何生成本地SSL证书以及相关知识点。 1. SSL证书概述: SSL证书包含一个公钥和一个私钥,其中公钥用于加密数据,私钥用于解密。当用户访问一个网站时,浏览器会验证服务器的SSL证书,确保其来自...
CSR是一个包含公钥和一些元数据的文件,用于提交给证书颁发机构以获取SSL证书。 知识点四:生成CSR和私钥 CSR可以通过openssl工具生成,命令格式为:openssl req -newkey rsa:2048 -keyout aaron.key -out aaron....
下面将详细解释相关知识点。 一、SSL证书与网络安全 SSL(Secure Socket Layer)证书是一种数字证书,主要用于加密互联网通信,确保数据在传输过程中的完整性与机密性。它通过创建一个安全的加密连接,防止中间人...
9. **禅道目录覆盖**:压缩包中的`apache`目录可能包含了一些与禅道相关的Apache配置或脚本。如果与现有版本没有冲突,可以直接覆盖到Apache安装目录,以确保与禅道10.4的兼容性。 10. **故障排查**:配置完成后,...
### 信安SSL配置知识点详解 #### 一、实施步骤和操作过程 1. **登录管理界面**: - **管理口**: 设备的Port1口,地址为192.168.1.99。 - **登录方式**: - 直接连接笔记本电脑至设备的Port1口并通过浏览器访问`...
为了更好地理解和应用这些知识,你需要熟悉C++编程,了解Socket编程的基本概念,以及OpenSSL库的详细API。VC工程中的sslServer和sslClient示例代码将提供直观的参考,帮助你理解如何在实际项目中实现SSL通信。 总结...
对于易语言初学者,理解并运用SSL_Socket模块需要一定的网络基础知识和SSL协议知识。可以通过阅读源码、查阅相关文档和实践编写小程序来加深理解。同时,学习易语言的其他网络模块和类库,有助于提升网络编程的综合...
下面我们将深入探讨Java中处理SSL连接的关键知识点。 1. **SSL工作原理**: SSL协议主要通过公钥和私钥进行加密通信。服务器持有私钥,客户端持有公钥。当客户端与服务器建立连接时,服务器会发送证书,其中包含其...
比如,<sys/socket.h> 和 <netinet/in.h> 是实现网络通信的基础,<openssl/ssl.h> 和 <openssl/err.h> 则是与SSL加密相关的库文件。 接下来,定义了一些宏和全局变量。例如,MAXBUF定义了缓冲区的最大大小,这些在...
在SSL/TLS的基本概念中,协议发展史、作用、在OSI七层模型中的位置,以及各版本之间的区别都是重要的知识点。在OSI模型中,TLS记录层位于第四层,即传输层,而握手层位于会话层。不同版本的SSL/TLS,比如SSLv2、SSLv...
1. 预备知识 在网络上信息在源-宿的传递过程中会经过其它的计算机。一般情况下,中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄露。由于 Internet ...
以下是一些关于Linux SSL网络编程的重要知识点: 1. **SSL/TLS协议栈**:SSL是早期的安全协议,现在通常指代的是TLS(Transport Layer Security)的早期版本。它们都是为网络通信提供加密处理的协议,通过握手过程...
### 超微H12SSL-C用户手册关键知识点解析 #### 一、产品概述与文档准确性声明 根据所提供的文件信息,“超微H12SSL-C用户手册”是一份关于超微H12SSL-C系列服务器主板(包括H12SSL-i/C/CT/NT型号)的操作指南。该...
第一部分:SSL基础知识 SSL是一种加密协议,用于在网络上传输敏感数据时提供隐私和数据完整性。它通过公钥和私钥的非对称加密技术,以及数字证书,确保数据在传输过程中不被窃取或篡改。 第二部分:Websphere中的...
在IT行业中,安全是至关重要的一个领域,尤其是在网络通信中,SSL(Secure Sockets Layer)和它的升级版TLS...通过深入学习和应用`ssl_logger`,你可以增强自己在网络安全领域的知识和技能,为你的IT事业添砖加瓦。
WebSocket是互联网协议,SSL/TLS是安全相关的,而Delphi是用于开发Windows应用程序的面向对象的编程语言,由Embarcadero Technologies维护。 在压缩包中的文件名"DelphiWebsockets-main-SSL-support.txt"和...
以下是一些关键知识点: 1. **SSLContext对象**:它是`ssl`模块的核心,用于配置SSL/TLS连接的参数。你可以通过`ssl.create_default_context()`创建一个默认的上下文,也可以自定义设置,如证书、密码、协议版本等...