SSL原理

SSL原理nbsp nbsp nbsp 1 首先介绍 SSL 通讯的示意图 有相关网络安全背景知识的人看了该图即可了解 SSL 的基本原理 nbsp nbsp nbsp 2 对 SSL 通讯示意图进行文字上的讲解和描述 这里会涉及到一些加密和安全的术语 因此对于了解加密的人读到此即可 nbsp nbsp nbsp 3 对一些涉及到的术语进行简要地说明和解释 对于需要了解一些加密术语的读者可以作为简要参考 nbsp nbsp nbsp 本文的目的是简明概要地讲解 SSL 原理 对于需要进一步了解

    1 首先介绍SSL通讯的示意图,有相关网络安全背景知识的人看了该图即可了解SSL的基本原理。

    2 对SSL通讯示意图进行文字上的讲解和描述,这里会涉及到一些加密和安全的术语,因此对于了解加密的人读到此即可。

    3 对一些涉及到的术语进行简要地说明和解释,对于需要了解一些加密术语的读者可以作为简要参考。

    本文的目的是简明概要地讲解SSL原理,对于需要进一步了解SSL原理的读者可以进一步读取相关著作和论文。

    1 SSL通讯示意图

    SSL通讯示意图如图1所示:

SSL原理

    2 SSL通讯说明

    在该部分,将对图1所示的示意图进行说明。为了说明的方便,在本文中称客户端为B,服务器端为S。

    STEP 1: B——〉S(发起对话,协商传送加密算法)

    你好,S!我想和你进行安全对话,我的对称加密算法有DES,RC5,我的密钥交换算法有RSA和DH,摘要算法有MD5和SHA。

    STEP2: S——〉B(发送服务器数字证书)

    你好,B!那我们就使用DES-RSA-SHA这对组合进行通讯,为了证明我确实是S,现在发送我的数字证书给你,你可以验证我的身份。

    STEP 3: B——〉S(传送本次对话的密钥)

    (检查S的数字证书是否正确,通过CA机构颁发的证书验证了S证书的真实有效性后。生成了利用S的公钥加密的本次对话的密钥发送给S)

    S, 我已经确认了你的身份,现在将我们本次通讯中使用的对称加密算法的密钥发送给你。

    STEP4: S——〉B(获取密钥)

    (S用自己的私钥解密获取本次通讯的密钥)。

    B, 我已经获取了密钥。我们可以开始通信了。

    STEP5: S<——>B(进行通讯)

    说明:一般情况下,当B是保密信息的传递者时,B不需要数字证书验证自己身份的真实性,如电子银行的应用,客户需要将自己的账号和密码发送给银行,因此银 行的服务器需要安装数字证书来表明自己身份的有效性。在某些B2B应用,服务器端也需要对客户端的身份进行验证,这时客户端也需要安装数字证书以保证通讯 时服务器可以辨别出客户端的身份,验证过程类似于服务器身份的验证过程。

    此外需要说明的是,在一些电子商务的应用中,可能还会使用到电子签名,或者为了信息交换的更加安全,会增加电子签名和消息校验码(MAC)。

 3 相关知识介绍

 随着电子商务的不断发展,SSL协议得到了越来越广泛的使用。SSL协议是介于HTTP协议与TCP之间的一个可选层,可以将其表示如下

SSL原理

    下面我们通过一个例子来讲解一下如何通过SSL协议来访问安全网页,假如我们在网上购买游戏卡,在游戏网页上我们点击了付款,将进入如下界面:

SSL原理

    这时我们注意到在浏览器的地址栏的开头是HTTPS而不是HTTP,在浏览器的右下角有一把锁,说明已经建立起SSL加密通道。在如上过程中HTTP层首 先将请求转换成HTTP请求,然后SSL层通过TCP和IP层实现了浏览器和服务器的握手(HANDSHAKE),服务器层获得密钥,最后TCP层与服务 器之间建立了加密通道,实现了双方安全交换信息的目的。

    为了便于了解SSL,下面在简要介绍一下信息加密相关知识。使用密钥类型加密信息的加密算法可以分为以下几类:HASH 编码、对称加密和非对称加密三类。

    HASH 编码是使用HASH算法从任意长度的消息中计算HASH值的一个过程,HASH值可以说是消息的指纹,因为对于任何不同的消息,几乎总有不同的HASH 值。因此在SSL通讯过程中,可以对消息的HASH值进行加密,确保传递的消息在传输过程中没有被修改。

    非对称加密或称之为公钥加密使用数学上相关的两个数值来对信息进行编码(加密),其中一个数字称为公钥,另一个称为私钥。公钥加密的信息可以用私钥解密, 私钥加密的信息可以用公钥解密。由于公钥可以大面积发放,因此公钥加密在SSL加密通信中应用于对密钥的加密或者进行数字签名。

    对称加密和非对称加密相比的区别在于对称加密中,加密信息和解密信息使用同样的密钥,因此该密钥无法公开。但是其具有加密、解密快速的特点。

    在SSL通讯中,首先采用非对称加密交换信息,使得服务器获得浏览器端提供的对称加密的密钥,然后利用该密钥进行通讯过程中信息的加密和解密。为了保证消息在传递过程中没有被篡改,可以加密HASH编码来确保信息的完整性。

    服务器数字证书主要颁发给Web站点或其他需要安全鉴别的服务器,证明服务器的身份信息,同样客户端数字证书用于证明客户端的身份。在广东省电子商务认证中心网站上,可以看到对该机构颁发的各种数字证书详细的功能描述。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201801.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午8:35
下一篇 2026年3月20日 上午8:35


相关推荐

  • ScheduledThreadPoolExecutor 中ScheduleAtFixedRate 和 ScheduleWithFixedDelay方法讲解

    java 中ScheduledExecutorService接口是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说,任务是并发执行,互不影响。

    2022年2月26日
    54
  • 交换链接登记

    交换链接登记

    2021年8月5日
    76
  • 图片Base64解码

    图片Base64解码一 使用在线解码工具验证图片是否转码成功 http www jsons cn img2base64 二 打开网址 1 将图片的 Base64 转码格式的字符串拷贝到输入框 首先验证下字符串前几位是否是 9j 6gBqS 开头 以 结尾 如若不是 则转码失败 检查图片读取是否存在偏移计算问题 2 在字符串的头添加 data image jpg base64 然后点击 追加 img 标签 此时就会出现解码后的图片

    2026年3月17日
    2
  • C/C++ 最常见50道面试题

    C/C++ 最常见50道面试题C/C++经典面试题面试题1:变量的声明和定义有什么区别为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。面试题2:写出bool、int、……

    2022年6月25日
    38
  • html发布页,发布页入口.html

    html发布页,发布页入口.html发布页入口$axure.utils.getTransparentGifPath=function(){return’resources/images/transparent.gif’;};$axure.utils.getOtherPath=function(){return’resources/Other.html’;};$axure.utils.getReloadPat…

    2022年5月26日
    121
  • 基于iodine的DNS隧道研究

    基于iodine的DNS隧道研究时隔 3 年再次拿起 iodine 做研究 有了新的理解 iodine 的 DNS 隧道非常不一样 刚刚开始建立隧道的时候用的是迭代型 DNS 隧道 用的操作码是 0 表示正常 DNS 请求 后续进行 C amp C 数据通信的时候用的是直连型 DNS 隧道 用的操作码是 3 表示未分配的 DNS 通信 而且都是应答 交易 ID 还都是一样的 利用大量异常操作码通信的 DNS 报文 应该被及时的注意 而不是直接忽略 步骤一 在 A 记录里面添加 C

    2026年3月16日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号