`
wx1569488408
  • 浏览: 79132 次
文章分类
社区版块
存档分类
最新评论

SSL 与数字证书 - 第五章 - SSL的基本原理

 
阅读更多

目录
第一章    为什么网络是不安全的?
第二章    信息安全的基本概念 
    第一节 安全的定义  
    第二节 认证与授权  
第三章    加密与算法  
    第一节 散列(HASH)  
    第二节 对称加密(SYMMETRIC CRYPTOGRAPHY)  
    第三节    非对称加密(ASYMMETRIC CRYPTOGRAPHY)  
    第四节 数字签名(DIGITAL SIGNATURE)  
第四章    数字证书  
    第一节    数字证书的构成  
    第二节 如何验证数字证书?   
    第三节 数字证书的级联(CERTIFICATE CHAIN)   
第五章    SSL的基本原理   
结束语   

 

第五章    SSL的基本原理

现在回到我们最原始的问题,由于Internet的架构问题,信息在网络上传输是很容易被别人获取的,那如何建立一个安全的传输网络呢?前面我们讨论了很多保证信息安全的技术,而SSL就是建立在这些技术的基础上的一套协议,用来保证通信的安全。SSL全称是 Secure Sockets Layer,它是一种间于传输层(比如TCP/IP)和应用层(比如HTTP)的协议。具体的SSL协议很复杂,我这里只讲一个大概。

最简单的方法来保证通信安全是用非对称加密。我们前面讲过数字证书的认证,如果双方都认证了对方的数字证书,那么每次传输信息的时候都用对方的公钥加密,这样就只有对方能解密,从而保证了信息的安全。但是对于日常应用(比如网页浏览)有两个问题:
    1.    非对称加密速度缓慢,消耗资源
    如果客户端和服务器之间传输文件用非对称加密的话,速度一定慢的忍无可忍。
    2.    不可能要求每个用户都去申请数字证书
    申请数字证书是一个相当麻烦的过程,要求每个上网的用户都拥有证书是不可能的事情。
SSL通过“握手协议”和“传输协议”来解决上述问题。握手协议是基于非对称加密的,而传输协议是基于对称加密的。根据不同的应用,SSL对证书的要求也是不一样的,可以是单方认证(比如HTTP, FTP),也可以是双方认证(比如网上银行)。通常情况下,服务器端的证书是一定要具备的,客户端的证书不是必须的。下面两张图片显示了SSL握手的过程。

图9:SSL握手,单方服务器认证

图10:SSL握手,双方认证

握手协议可以看成是客户端和服务器协商的一个过程,结果就是一个对称密钥,然后就进入了传输协议的部分。也许,你在想,“现在还不简单吗?用这个对称密钥加密传输数据呗!”。否,没那么简单。先来看一下结果,等会儿再解释原因。在通信双方协商出一个对称密钥以后,他们用这个密钥来加密传输的数据。同时为每个消息生成时间戳,用此密钥为消息和相应的时间戳生成消息认证码(MAC)。也就是说,每次发送的内容包括

Encrypt(message) + MAC(message + timestamp)
这么做有几个好处:
    1.    防止消息的篡改
    所谓消息篡改就是有第三者插在通信双方之间,篡改往来的消息。由于消息是加密的,第三者不能获得消息的内容,但是他可以闭着眼睛瞎改。如果没有MAC的话,接受者就无法判断此消息是否被篡改过。
    2.    防止消息重放
    消息的重放是只第三者记录下通信双方的每一次发送的消息,虽然他不能获得消息的内容。但是它可以通过重新发送客户端或者服务端的信息来把自己装成是客户端或者服务端。如果在MAC里面加上了时间戳,消息接收方验证时间戳就可以阻止消息的重放攻击。
SSL的基本思想是用非对称加密来建立链接(握手阶段),用对称加密来传输数据(传输阶段)。这样既保证了密钥分发的安全,也保证了通信的效率。

通过上面对SSL的分析,我们可以看到,SSL并不能阻止别人获得你传输的数据,但是由于你传输的数据都是加密过的,别人拿到了毫无用处,一样可以保护信息的安全。还有一点需要强调一下,SSL并不依赖于TCP,它可以建立在任何可靠的传输层协议(比如TCP)之上。也就是说SSL是不能建立在UDP之上的。这是显然的,如果传输都不可靠,偶尔丢两个包或者包的顺序换一换的话,怎么保证安全呢?

转载于:https://my.oschina.net/zhlmmc/blog/42114

分享到:
评论

相关推荐

    本地数字签名证书SSL

    在生成测试版本的HTTPS SSL数字证书时,我们需要了解以下关键步骤和知识点: 1. **证书结构**:一个SSL证书通常包含发行者的身份、拥有者的身份信息(通常是网站域名)、公钥以及证书的有效期等信息。这些信息经过...

    Wiley - SSL and TLS esssentials- Securing the Web

    - **服务器认证**:服务器向客户端发送数字证书,证书包含服务器的公钥,客户端验证证书的有效性。 - **密钥交换**:双方协商出一个共享密钥,该过程通常基于Diffie-Hellman算法。 - **客户端认证**:在某些场景...

    ssl.ca-0.1.tar.gz

    在提到“ssl.ca-0.1.tar.gz”时,我们可能正在讨论一个与SSL/TLS相关的证书或者配置文件的归档。 首先,让我们分解一下这个文件名:“ssl”代表SSL,表明这是与SSL/TLS安全相关的;“ca”通常指的是Certificate ...

    可运营的SSL证书在线生成系统源码,附带图文搭建教程

    SSL(Secure Sockets Layer)证书是基于公钥基础设施(PKI)的一种数字证书,由受信任的证书颁发机构(CA)验证网站身份后签发。它包含网站所有者的身份信息,并通过公钥和私钥对进行加密,保障用户在浏览网站时的...

    dubbo开启TLS(ssl)源码

    启用TLS需要服务器和客户端之间有公钥和私钥的交换,这通常通过数字证书来实现。你可以使用OpenSSL工具生成证书,例如: ``` openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes ...

    Keytool与数字证书

    ### Keytool与数字证书 #### 一、Keytool简介及基本操作 **Keytool** 是 Java 开发工具包(JDK)中的一个实用程序,用于管理密钥库(key stores),其中包括私钥(private keys)及其对应的公钥证书(public key ...

    ssl证书批量生成工具

    在网络安全领域,SSL证书是保障网站数据传输安全的重要组件,它通过加密连接确保用户与服务器之间的通信不被第三方窃取或篡改。批量生成SSL证书在多站点管理、大型网络环境或者云服务提供商中尤为实用,可以极大地...

    公钥私钥加密解密数字证书数字签名详解.docx

    ### 公钥私钥加密解密、数字证书与数字签名详解 #### 一、基础知识概述 在探讨公钥私钥加密解密、数字证书以及数字签名之前,我们需要先理解几个核心概念。 **1. 密钥对:** - 在非对称加密技术中,存在两种密钥...

    实训5:配置数字证书服务.docx

    在 DC 上部署企业根 CA 是配置数字证书服务的第一步。具体操作步骤如下: 1. 打开“服务器管理器”,单击“添加角色和功能”,然后选择“Active Directory 证书服务”角色。 2. 在“AD CS 角色服务”界面中,勾选...

    Openssl与数字证书

    ### Openssl与数字证书 #### 一、加密算法概述 **加密算法**是信息安全领域中的关键技术之一,主要用于保护数据在传输过程中的安全性和完整性。按照密钥的不同,加密算法主要可以分为两大类:**对称加密**和**非...

    https安全认证的证书文件 ssl.zip

    5. **SSL证书的安装** 一旦获得SSL证书,需要将其安装在服务器上,步骤通常包括: - 下载证书文件,可能包含中间证书( Intermediate Certificate)以构建信任链。 - 在服务器配置中导入证书和私钥。 - 配置SSL...

    SSL协议详解.pdf

    - **认证**:通过数字证书验证服务器的身份,或同时验证服务器和客户端的身份。 - **加密**:使用对称加密算法确保数据传输过程中不被第三方窃听。 - **完整性保护**:通过消息认证码(MAC)确保数据在传输过程中不...

    行业分类-设备装置-更新SSL证书的计算机系统和方法.zip

    - 数据加密:SSL证书通过公钥和私钥技术,对在网络上传输的数据进行加密,防止被第三方窃取。 - 身份验证:证书中的数字签名确保了服务器的身份,防止中间人攻击或钓鱼网站。 2. SSL证书的类型: - 域名验证(DV...

    ssl的基本知识

    - **身份认证**:通过数字证书验证服务器身份,确保用户与正确的网站进行通信,防止中间人攻击。 - **数据完整性**:利用数字签名技术确保数据在传输过程中未被篡改。 #### 三、HTTPS加密机制 - **单项认证/双向...

    ssl证书配置

    SSL(Secure Sockets Layer)证书是一种用于加密互联网通信的数字证书,其主要作用是在客户端和服务器之间建立安全连接,确保数据传输的安全性和完整性。本文将详细介绍如何配置SSL证书,包括自签名证书和第三方机构...

    SSL工作原理详解

    这通常通过数字证书来实现,数字证书包含了公开密钥和身份信息,由第三方信任机构(CA)签发,可以确保其真实性和有效性。客户端会验证服务器证书的有效性,从而确认服务器的身份;对于需要双向认证的情况,服务器也...

    IOS RAS 数字证书Demo

    总之,iOS RAS数字证书Demo是一个展示如何在iOS环境中安全地使用远程访问服务的实例,涉及到了数字证书的导入、SSL/TLS协议的应用、加密解密操作以及安全性配置等多个核心知识点。理解和掌握这些内容对于提升iOS应用...

    websphere application server SSL证书导入

    SSL 证书是一种数字证书,用来验证网站的身份和加密数据传输。SSL 证书由证书颁发机构(Certificate Authority,简称 CA)颁发,包含网站的公钥和身份信息。SSL 证书分为两种类型:服务器证书和客户端证书。服务器...

    domino使用数字证书

    ### Domino使用数字证书知识点 #### 一、概述 数字证书是一种用于在线环境中验证实体身份的电子凭证,类似于现实生活中的身份证。在互联网上进行各种交易时,数字证书可以帮助确保参与方的真实性和安全性。数字...

Global site tag (gtag.js) - Google Analytics