SSL(Server Socket Layer)简介
在网络上信息在源-宿的传递过程中会经过其它的计算机。一般情况下,中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易的时候有可能被监视,从而导致个人隐私的泄露。由于Internet和Intranet体系结构的原因,总有某些人能够读取并替换用户发出的信息。随着网上支付的不断发展,人们对信息安全的要求越来越高。因此Netscape公司提出了SSL协议,旨在达到在开放网络(Internet)上安全保密地传输信息的目的,这种协议在WEB上获得了广泛的应用。 之后IETF(www.ietf.org)对SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS1.0与SSL3.0的差别非常微小。
SSL工作原理
SSL协议使用不对称加密技术实现会话双方之间信息的安全传递。可以实现信息传递的保密性、完整性,并且会话双方能鉴别对方身份。不同于常用的http协议,我们在与网站建立SSL安全连接时使用https协议,即采用https://ip:port/的方式来访问。
当我们与一个网站建立https连接时,我们的浏览器与Web Server之间要经过一个握手的过程来完成身份鉴定与密钥交换,从而建立安全连接。具体过程如下:
- 用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。
- 服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。
- 客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。
- 客户端浏览器为本次会话生成pre-master secret,并将其用服务器公钥加密后发送给服务器。
- 如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。
- 如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。
- 客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。
- 客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次SSL握手。
- 服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次SSL握手。
- 本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。
分享到:
相关推荐
在Java编程语言中,SSL(Secure Sockets Layer)和其后续版本TLS(Transport Layer Security)是用于实现安全网络通信的重要工具。SSLServerSocket是Java提供的一个类,它允许服务器端创建安全的、加密的连接,以...
以下是一段简单的SSLServer示例代码: ```java import javax.net.ssl.SSLServerSocket; import javax.net.ssl.SSLServerSocketFactory; public class SSLServer { public static void main(String[] args) throws...
本篇文章将详细讲解基于SSL(Secure Socket Layer)的Java Socket网络通信,帮助开发者理解如何在Java中实现安全的、加密的数据传输。 SSL是一种广泛使用的网络安全协议,它为网络通信提供了数据加密、服务器身份...
SSL(Secure Socket Layer)协议最初由Netscape开发,现在已经被TLS(Transport Layer Security)协议取代。TLS协议提供了身份认证、数据加密和完整性校验等功能,确保了在网络上传输的数据的安全性。 2. **建立...
SSL(Secure Sockets Layer)是一种安全协议,用于在互联网上提供加密通信和身份验证,而Socket是网络编程的基础,提供了进程间通过网络进行通信的接口。 首先,我们需要理解SSL的基本概念。SSL通过建立一个安全的...
6. **socket编程**:在C++中,实现SSL服务器服务通常会涉及socket编程,通过套接字接口与客户端进行通信。在HTTPS服务器中,需要使用SSL/TLS的API,例如OpenSSL提供的`SSL_CTX`上下文对象,`SSL_new`、`SSL_set_fd`...
在Android平台上实现安全的网络通信,常常涉及到SSL(Secure Socket Layer)和它的后继者TLS(Transport Layer Security)。本文将深入探讨如何使用Java在Android中建立SSLSocket进行安全通信。 首先,理解SSL/TLS...
首先,了解SSL(Secure Socket Layer)和其升级版TLS(Transport Layer Security)协议,它们是网络安全通信的核心,提供了数据传输的加密,确保了网络通信的安全性。在SQL Server中,启用SSL可以保护数据在客户端和...
WebLogic 配置 SSL 是指在 WebLogic Server 中配置 SSL(Server Socket Layer)协议,以确保在开放网络(Internet)上安全地传输信息。SSL 协议使用不对称加密技术实现会话双方之间信息的安全传递,可以实现信息传递...
1. **SSL加密**:SSL(Secure Socket Layer)是一种网络协议,用于在客户端和服务器之间建立安全的数据传输通道。在SQL Server中,启用SSL可以防止中间人攻击,确保数据在传输过程中被加密。 2. **JDBC驱动与SSL**...
SSLSocket socket = (SSLSocket) factory.createSocket(serverHost, serverPort); InputStream in = socket.getInputStream(); OutputStream out = socket.getOutputStream(); ``` 最后,`me证书`和`se证书`文件...
在WebLogic Server环境中,SSL(Secure Socket Layer)配置是确保通信安全的重要环节,它提供了数据加密、服务器身份验证以及消息完整性检查,防止数据在传输过程中被窃取或篡改。以下是关于WebLogic SSL安全服务器...
SSL(Secure Socket Layer)是网络安全协议,它的主要功能包括数据加密、服务器验证和客户端验证。在SSL双向认证中,服务器和客户端都需要拥有各自的数字证书,这些证书由可信任的证书颁发机构(CA)签署,以证明它们...
SSL(Secure Socket Layer)安全套接层是一种广泛用于网络通信中的安全协议,它为客户端和服务器之间的数据传输提供了加密和身份验证。Java平台提供了一套完整的API,即JSSE(Java Secure Socket Extension),来...
SSL(Secure Socket Layer)是用于加密网络通信的协议,确保数据在传输过程中不被窃取或篡改。端口443是互联网上默认用于HTTPS服务的端口,因为HTTPS是HTTP协议的安全版本,它通过SSL/TLS协议提供数据加密、服务器...
void SslServer::incomingConnection(qintptr socketDescriptor) { QSslServerSocket *socket = new QSslServerSocket(socketDescriptor, this); connect(socket, &QSslServerSocket::newClient, this, &SslServer...
SSLServer.java可能会使用Java的JSSE(Java Secure Socket Extension)框架来创建SSLServerSocket,这个类支持SSL/TLS协议,允许服务器与客户端之间建立安全连接。 SSLClient.java则是客户端的实现,它首先会尝试与...
SSL(Secure Sockets Layer)或其后续版本TLS(Transport Layer Security)用于加密通信,确保邮件内容在传输过程中不被窃取。 以下是C# SMTP邮件发送的关键步骤: 1. **连接SMTP服务器**:使用TcpClient类建立到...