当前位置: 首页 > news >正文

防御保护-----第十二章:VPN概述

文章目录

  • 第二部分,数据安全
  • 第十二章:VPN概述
    • VPN概述
    • VPN分类
    • VPN关键技术
      • 隧道技术
      • 身份认证技术
      • 加解密技术
      • 数据认证技术
    • 数据的安全传输
      • 密码学
        • 发展史
      • 对称加密算法 --- 传统密码算法
        • 密钥解释
          • 流加密
          • 分组加密 --- 块加密算法
            • 填充算法
            • PKCS7算法
            • 分组模式
      • 公钥密码体系
      • 非对称加密 --- 公钥加密
        • DH交换算法 --- 密钥交换算法
      • 混合密码体系
    • 身份认证和数据认证技术
      • HASH散列
        • 简介
        • 用途
          • MAC和HMAC
      • 数字签名
        • 数字签名的方法
          • 直接对消息签名
          • 对消息的散列值签名
      • 数字证书
        • 证书认证场景
          • PKI体系 ---- 公钥基础设施

第二部分,数据安全

​ 数据传输的安全性 ---- VPN

第十二章:VPN概述

在这里插入图片描述

​ TCP/IP ----- 仅保证数据互通,不保证数据的安全性。

​ VPN诞生的需求:1、物理网线不适用;2、公网安全无法保证。

VPN概述

​ VPN ------ 虚拟私有网络;依靠ISP/NSP在公共网络基础设施上构建的专用安全数据通信的网络。(ISP:Internet服务提供商,I—Internet;NSP:网络服务提供商,N—Natwork)

​ IETF ----- 基于IP的VPN ---- 理解:使用IP机制仿真出一个私有的广域网。依靠隧道技术。---- 在公共数据网络上模拟出一条点到点的专线技术。

  • 专线VPN ---- 客户租用数字数据网(DDN),ATM(PVC),帧中继(FR)等等,组建一个二层的VPN网络。运营商帮助客户来维护骨干网络,客户只负责管理自身的站点。
  • 基于客户端设备的加密VPN ---- VPN的所有功能全部都由客户端设备实现,VPN成员之间通过非信任的公网实现互联。

VPN分类

  • 根据建设单位来分类
    • 直接租用运营商 ----- MPLS VPN技术
    • 企业自己搭建 ----- GRE、L2TP、IPSec、SSL
  • 组网方式分类
    • 客户到站点 ---- 出差员工(客户端)跨越公网访问企业总部内网。
      • 特点:客户端IP地址不固定访问是单向的,即只有客户端主动访问站点
      • Access VPN(接入VPN)
    • 站点到站点 ---- 分支和总部分别通过各自的设备连接到Internet。基于Internet网络来构建一个虚拟隧道,该虚拟隧道一直存在(只要有数据传输就会存在)。
      • 组网,是相对稳定的。
      • 特点:两端网络均通过固定的网关设备进行连接。访问是双向的
企业内部虚拟专用网总部到分部企业外部虚拟专用网合作商/外包公司到总部

​ 核心点:在于接入后的权限控制

在这里插入图片描述

VPN关键技术

在这里插入图片描述

隧道技术

​ 依靠VPN技术封装的位置所决定。VPN的核心是隧道技术,而隧道技术的核心是封装技术

在这里插入图片描述
在这里插入图片描述

工作在不同层次的VPN,其实是为了保护所在层次及以上的数据。---- 不存在加密的情况下,并不代表此时的数据是安全的。

​ 隧道技术的优点

  • 互联互通 ---- 隧道技术,可以实现不同网络协议或不同网络环境之间的互联互通。比如IPv6通过IPv4隧道实现数据传输。
  • 安全性 ---- 隧道技术可以和加密、身份认证技术结合 ---- IPSec、SSL/TLS。
  • **灵活性 ** ---- 隧道可以灵活根据网络资源和网络使用需求进行VPN建立和维护。

身份认证技术

是VPN技术的前提。即需要对任何接入网络的用户进行身份核实,否则该VPN隧道是不安全的隧道,可能会为恶意用户提供便利。

  • L2TP ---- L2TP是二层隧道,其PPP协议就是乘客协议,所以,L2TP可以依赖于PPP提供的认证机制,即PAP和CHAP认证。
  • IPSec、SSL VPN ---- 支持身份认证。

加解密技术

​ 将能够读懂的报文,变成无法读懂的报文。加密对象:数据报文,协议报文

目的:保证信息就算是被攻击者窃听或截取,攻击者也无法知道其中的内容,以此来抵抗网络中的被动攻击行为

加密技术核心点:双向函数

  • GRE/L2TP 本身不提供加密技术;可以借助IPSec来实现加密。
  • IPSec和SSL都支持加解密。

数据认证技术

​ 数据认证 — 保证数据的完整性,即数据是否损坏,是否被篡改。

验货 ---- 对于伪造的、被篡改的数据进行丢弃。

采用“摘要”技术;即采用HASH函数来实现。利用HASH函数的特点:1、固定输入固定输出;2、不可逆性;3、雪崩效应。

通过HASH函数将一段任意长度的数据进行函数变化,映射为一段较短的报文。在收发两端对报文进行验证,只有摘要值一致的报文才会被认可

  • GRE可以提供简单的数据认证 — 校验和或关键字认证。校验和—>数据是否完整;关键字—>用来标识具体隧道流量的。
  • L2TP本身没有数据认证机制,依靠IPSec实现。
  • IPSec、SSL都支持数据验证技术。

在这里插入图片描述

数据的安全传输

密码学

近现代加密算法古典加密学

​ 什么是密码学?----- 一门提供信息安全和信息保护的学科,包括对信息的加密、验证、签名等技术。

​ 密码学,本质上属于一门应用数学。现代密码学 — 需要运用计算机技术来实现算法和密码系统的工作。

散列算法、对称/非对称加密、数字签名......
数字证书PKI、TLS通信协议----密码学应用
发展史

​ 倒序排列。

​ 凯撒密码 ---- 在顺序字母表上,增加一个偏移量,并且将小写转换为大写。

    凯撒密码(Caesar Cipher),又称凯撒加密、凯撒变换,是一种古老且广为人知的加密技术。凯撒密码的核心思想是将明文中的每个字母在字母表中按照固定的位数进行移动,从而生成密文。例如,若偏移量为3,则字母A会被替换为D,B替换为E,以此类推,直到字母Z被替换为C(因为字母表是循环的,Z之后会回到A的前一个字母)。解密过程是加密的逆操作,即将密文中的每个字母向相反方向移动相同的位数。
凯撒密码的数学表示为了更精确地描述凯撒密码,可以使用数学公式来表示其加密和解密过程。设明文字母为P,密文字母为C,偏移量为K(密钥),字母表的长度为N(对于英文字母表,N=26)。凯撒密码的加密公式可以表示为:C = ( P + K ) mod N解密公式则是加密公式的逆操作:P = ( C − K ) mod N其中,\mod是取模运算,用于确保结果始终在字母表范围内。例如,若P=25(代表字母Z),K=3,则加密后的密文为:C = ( 25 + 3) mod 26 = 28 mod 26=2即字母C。

​ 斯巴达棒

    斯巴达棒(Spartan Staff)在密码学中并非指一个具体的实物工具,而是一个与加密技术相关的术语。在密码学的实际应用中,斯巴达棒通常指的是一种基于“移位法”(Transposition)的加密方式,特别是一种简单的字母移位加密,类似于凯撒密码,但更侧重于字母顺序的重排而非简单的字母替换。
斯巴达棒加密的工作原理加密过程选择密钥:在斯巴达棒加密中,密钥通常是一个数字或一组数字,用于决定字母或字符的移位方式。文本分割:将明文(未加密的文本)分割成固定长度的块或行,这些块或行的长度可以根据密钥或加密者的选择来确定。移位操作:根据密钥指定的移位规则,对明文块或行中的字母或字符进行重排。这种重排可能涉及列交换、行交换、对角线交换等多种方式,具体取决于密钥的复杂性和加密者的设计。生成密文:将移位后的字母或字符重新组合成密文。密文的外观可能与明文截然不同,从而隐藏了原始信息。解密过程密钥恢复:解密者需要知道与加密过程相同的密钥,以便恢复明文。反向移位:使用密钥指定的移位规则,对密文中的字母或字符进行反向重排,以恢复原始的顺序。重组明文:将反向移位后的字母或字符重新组合成明文。

​ 古典加密算法 — 算法保密原则。---- 受限制的算法。

​ 在近现代加密算法中 ---- 逻辑:算法公开,密钥保密。— 加入**密钥一个任意数值算法的安全性都是基于密钥的安全性,而非是基于算法本身的安全性**。

​ 分类:1、对称加密算法;2、非对称加密算法。

对称加密算法 — 传统密码算法

​ 秘密密钥算法、单钥算法、加密算法

在这里插入图片描述

明文+密钥 进行加密算法运算 = 密文

对称密钥 — 发送者和接收者共同拥有的同一个密钥。该密钥,即用于加密,又用于解密

​ 加密过程中,安全性是取决于是否有未经授权的人获取到密钥信息。

问题:如何安全的传输密钥信息,即合理的交换密钥?
1、有没有第三方获取
2、对于发送方而言,接收方是否是我想要对接的人
3、对于接收方而言,发送方是否是我想要对接的人
密钥解释

​ 密钥的核心点 — 双向函数 — 逻辑运算(异或算法)

输入a 根据函数 得到b
输入b 根据函数 得到a

​ 异或算法:不进位的加法,且是针对于二进制运算的。

异或运算规则:相同为0,不同为1

​ 对称算法加密分类:1、流加密;2、分组加密。

流加密

​ 顺序加密技术 ----> 逻辑:就是异或算法。

特点:基于明文流进行加密,然后使用与明文流相同长度的一串密钥流,通过异或算法得到密文

明文流:11001110
密钥流:10001110密文流:01000000
密钥流:10001110明文流:11001110

​ 密钥的传输:

  • 带外传输 — 不方便(通过U盘拷贝等方式)
  • 带内传输 — 不安全(网络传输)
    • 密钥协商协议
    • 密钥分发中心KDC

RC4加密算法 — 典型的流加密算法。无线网络。

    RC4加密算法是一种对称加密算法,由美国计算机科学家罗纳德·李维斯特(Ronald Rivest)于1987年设计。它属于流密码加密算法,具有算法简单、运行速度快的特点,广泛应用于网络通信、安全协议、无线通信等领域。以下是对RC4加密算法的详细描述:
一、算法原理RC4加密算法的原理基于伪随机数流和异或运算。算法的核心是生成一个伪随机数流(密钥流),然后将明文与密钥流逐字节进行异或运算,得到密文。解密时,再将密文与相同的密钥流进行异或运算,即可还原出明文。
二、算法步骤RC4加密算法主要分为两个阶段:密钥调度算法(Key Scheduling Algorithm,KSA)和伪随机数生成算法(Pseudo-Random Generation Algorithm,PRGA)。密钥调度算法(KSA)初始化S盒:S盒是一个长度为256的数组,初始值为0到255的排列。填充K表:将密钥以循环方式排列在K表中,如果密钥长度小于256字节,则循环填充,直到填满K表。置换S盒:使用K表对S盒进行置换,增加S盒的随机性。具体做法是,通过一系列复杂的置换和交换操作,打乱S盒中元素的顺序。伪随机数生成算法(PRGA)初始化指针:设置两个指针i和j,初始值都为0。生成密钥流:通过迭代生成伪随机数流。在每次迭代中,更新指针i和j的值,交换S盒中对应位置的元素,然后计算伪随机数k。伪随机数k的计算公式为:k = S[( S[i] + S[j]) mod 256]。加密/解密:将生成的伪随机数k与明文(或密文)字节进行异或运算,得到密文(或明文)。
三、算法特点算法简单,运行速度快:RC4算法的实现相对简单,仅需要使用异或运算和交换操作,因此运行速度快,适用于资源有限的设备和环境。密钥长度可变:RC4算法支持变长密钥,密钥长度可以在1到256字节之间,灵活性高。无填充需求:RC4算法不需要对明文进行填充操作,可以直接对数据进行加密。长度无限制:RC4算法对加密/解密数据的长度没有限制,适合加密数据流。
四、应用场景RC4加密算法曾经被广泛应用于网络通信、安全协议、无线通信等领域。例如,在SSL/TLS协议中,RC4算法曾经被用作一种加密算法;在WEP(Wired Equivalent Privacy)和WPA(Wi-Fi Protected Access)等无线网络安全协议中,RC4算法也被用于保护Wi-Fi网络的安全。然而,由于RC4算法存在安全漏洞,容易被暴力破解,因此现在已经不再被推荐使用。在实际应用中,建议使用更加安全的加密算法,如AES算法。
五、安全性问题尽管RC4算法在诞生初期被认为是一种相对安全的加密算法,但随着密码分析技术的发展,RC4算法的安全性逐渐被揭示出来。主要存在的问题包括:密钥调度算法存在弱点:通过选择特定的密钥,攻击者可以利用RC4算法的弱点,对密钥流进行分析,从而推断出密钥的部分或全部内容。密钥重用风险:在RC4算法中,如果多次使用相同的密钥加密不同的明文,可能会导致密钥流的重用,增加密码分析的风险。字节偏差问题:RC4算法的密钥流在某些条件下会出现字节偏差,即某些字节的概率分布不均匀。这种字节偏差可以被攻击者利用,通过对密文的统计分析来推断出明文的部分或全部内容。
六、总结RC4加密算法是一种简单而高效的对称密钥流密码算法,具有算法简单、运行速度快、密钥长度可变等特点。然而,由于存在安全漏洞,RC4算法已经不再被推荐使用。在实际应用中,应选择更加安全的加密算法来保护数据的安全性。
分组加密 — 块加密算法

用于网络加密

逻辑:先将明文切分成一个个固定大小的块,在对每个块进行加密。----- 固定长度 == 分组长度。

安全性 --- 分组长度越长越好。
实用性 --- 分组长度越短越好。
具体流程:
1、明文字节数组,切分成固定块,每个块16字节。
2、对每一个块进行加密,块加密的算法中需要使用到密钥信息,并且该过程可逆。
3、将每一个加密后的密文数据块,拼接起来,得到密文字节数组。

使用相同的密钥key,将每一个固定长度的块转换为另一个块

​ 分组加密算法中需要考虑到的问题:

1、如何分组?分组长度是多少,从哪里分?当明文长度不足块长度时,要不要进行填充?----- 填充算法

2、分组之后的各个数据块,需要用那种形式组合?来实现整体的加解密过程。----- 分组模式

3、如何对分组进行加密?----- 分组加密算法

填充算法

​ 事先对明文进行填充,然后进行分组。—>为了让分组后的每一个块,满足分组长度。

只有ECB、CBC、PCBC三种分组模式需要填充。

PKCS7算法

​ 假定,分组加密的块长度为B,明文字节数组长度为S,计算p;p就是明文需要填充的字节数。

p = B - S % B   (S % B 是取余计算)B = 16字节
S = 108字节
p = 16 - 108 % 16 = 4
S = 108 + p = 112B = 16字节
p = 4,就代表要在明文尾部填充4个4
分组模式

​ 在分组之后,每个分组在加密之前需要解决的问题:如何将分组后的各个块组织起来,协同实现明文整体的加解密。

分组模式详解

ECB:电子密码本对每个块使用相同的key进行独立的块加密;导致--->明文数据的统计学特征被保留在密文中。
CBC:密码块链接  ---常见同样对每个块使用同一个key进行加密,但是加密前,需要先将明文块和前一个密文块进行异或运算,然后在加密。---- 对于首个明文块,因为不存在前一个密文,所以需要一个额外的字节数组来充当前一个密文。--->初始向量异或运算对称性特点:(a xor b)xor b = aECB和CBC的异同:对每一个块,使用相同的密钥进行加解密,不同的是,CBC对明文做了异或处理。PCBC:填充密码块链接在CBC的基础上,对异或计算的参数进行了改变。前明文块+前一个密文进行异或,将异或结果在与当前明文块进行异或,再做加密。CFB:密文反馈模式与CBC类似;先对前一个密文块做块加密,然后再和明文块做异或。OFB:输出反馈模式在CFB的基础上,对块加密的参数进行了改变;前一个块加密得到的异或参数,来与本次的明文进行异或。CTR:计数器模式  ---常见   ---- 因为可以并行处理,适合多核CPU。
GCM:计数器模式  ---常见   ---- 在CTR基础上,增加了认证操作;认证加密模式。----TLS协议中。

分组模式时对块加密的协同组织算法,而块加密的集体算法法则,是每个堆成密钥算法的核心

在这里插入图片描述

  • DES ---- 数据加密标准 ---- 分组加密方式
    • 将明文按64bit分组,生成64bit的密文,但是密钥长度为56bit(每7bit数据会加1bit错误检查bit)。
    • DES算法已经不安全,因为可以被暴力破解。
  • 3DES ---- 使用了三次DES算法 ---- 56+56+56=168bit密钥。
    • 密钥1 密钥2 密钥3
    • 明文进入后,使用密钥1加密,使用密钥2解密,使用密钥3加密
  • AES ---- 高级加密标准
    • 分组长度128bit,密钥长度最短为128bit,可以为192bit或256bit。
    • 目前是安全性最高的,使用最广泛的加密算法
  • 国密 ---- 国家密码局认证的国产密钥算法
    • SM1/2/3/4,密钥长度均为128bit。
    • SM1为对称加密,其强度和AES相当。该算法不公开,需要对接加密芯片。
    • SM2非对称加密,已公开的。
    • SM3—HASH,类比于MD5,算法公开,生成256bit摘要信息。
    • SM4—无线局域网标准中的分组数据算法,对称加密。

​ 国家标准|GB/T-32907-2016

相比于分组加密,流加密具有速度快,消耗少的优点,在网络通信特定场景中比较有优势;然后流加密的发展落后于分组加密的,在安全性、可扩展性上面,是不如分组加密的。同时某些分组加密算法可以兼具流加密的部分特点。----- 因此对称加密的主流算法还是分组加密

存在的问题:1、密钥传递存在风险2、密钥管理乱

公钥密码体系

在对称加密算法中,通信双方需要在事前完成如下事情:
1、协商加解密算法
2、协商第二个密钥时,使用的第一个密钥信息
3、通信过程中,使用那个第二个密钥信息

​ 问题:协商通信过程中,所使用的密钥;该密钥也是信息,如何保证该密钥的安全传输。

  • 事先共享密钥

  • 密钥分配中心KDC

    • 在这里插入图片描述
  • DH密钥交换算法

  • 非对称加密算法

非对称加密 — 公钥加密

一个公钥,一个私钥。这两个密钥,在数学逻辑上是相关的

  • 公钥 ---- 是在通信双方之间公开传递的。
  • 私钥 ---- 在通信的某一方上保密。

只有使用公钥,才能解密公钥加密的数据。使用私钥加密的数据,也必须使用公钥解密

在这里插入图片描述

​ 在非对称加密体系中,如果想要完成数据通信,则至少需要4个密钥信息

非对称加密算法,一定不是可逆运算,而是求余运算(取模运算)就是不可逆的

对称加密使用异或运算,非对称加密使用取模运算

​ 缺陷:1、资源消耗比较大;2、每次使用相同密钥,会增加密钥泄露的风险。

实际中,非对称密钥,通常是为了解决对称密钥中共享密钥问题的方法

在这里插入图片描述

特点:以目前的数学理论与实际计算算力而言,无法根据公钥计算出私钥信息

  • RSA ---- 应用较早,且最为普及的公钥密码系统。
    • 但是,性能消耗非常高。业界普遍认为,RSA密钥要保证足够的安全,需要最少2048bit密钥信息。
  • ECC ---- 基于椭圆曲线离散对数问题,是新一代的公钥密钥体系。
    • 认为是RSA的代替者,256bit的密码长度,反而破解难度增大。

对于非对称密钥而言,公钥信息是由私钥信息推导计算得出的,故私钥一旦暴露,则公钥立即暴露,因此私钥信息绝对不能充当公钥使用

在真正的数据传输时,采取的都是对称加密算法进行加密,保证数据传输效率,而使用非对称密钥来传递对称密钥,实现安全传输。算法优势互补。----- 混合密码系统。

DH交换算法 — 密钥交换算法

​ 在DH交换算法中,进行加密通信的双方需要交换一些数据信息,这些数据信息就算是被窃听也不会影响到后续的密钥信息。----- 虽然DH算法被称为密钥交换算法,但是,双方并没有真正的交换密钥信息,而是通过计算生成了一个相同的共享的密钥

原理:通过共享的参数,私有的参数以及算法来协商出一个对称密钥,然后使用对称密钥加密后续的通信过程。 ----- 这里提到的公钥、私钥,不是公钥加密体系中的。

单向函数:

A = g^a mod p

只要知道g、a、p,就能够计算出A;但使用A、g、p不能计算出a。

在这里插入图片描述

​ 上图,是DH算法的完整过程,其中,为了保证各自的私有参数不会被破解,所以p的选择必须是一个非常大的质数,而 g 是根据 p 计算得到的一个生成元。

生成元:满足g^1……g^(p-1) mod p的结果会出现[1,p-1]

DH算法不是为了加密而存在,而是为了传递密钥而诞生的

混合密码体系

​ 将对称加密算法和非对称加密算法结合使用的场景。

混合密码系统 — 会先用快速的对称密钥来对消息进行加密,然后这样的信息就被转换为密文,从而保证消息的机密性,然后我们只需要保证对称密钥本身的机密性即可

使用公钥密码体系来对对称密钥进行加密

在这里插入图片描述

  • 伪随机数生成器 ------ 生成一个对称密钥信息
    • 并用这个对称会话密钥来加密明文数据。
  • 通过收到接收方的公钥,来对对称密钥进行加密,形成加密后的会话密钥。
  • 将“加密明文数据”和“加密后的会话密钥”进行组合,形成混合密码体系中的密文。

​ 接收方如何处理数据:

  • 首先,将收到的密文信息,分离为“加密明文数据“和“加密后的会话密钥”;
  • 然后,用本地的私钥,对“加密后的会话密钥“进行解密,从而获取到对称会话密钥
  • 使用对称会话密钥,来解密“加密明文数据”,从而获取明文消息。

混合密钥体系,被称为数字信封

身份认证和数据认证技术

​ 在计算机中,当需要对比两个消息是否一致时,不需要直接对比消息本身的内容,只需要对比“指纹”。

HASH散列

简介

​ 散列函数 ---- 散列算法,哈希算法。将一种任意长度的输入数据,输出为相对较小的数据的方法特点:目标数据长度不固定,转换后的数据长度固定,转换过程不可逆

散列函数不是加密算法,加密是可逆的,而散列函数是不可逆的

用途

1、网络传输中的校验和

2、确保传递信息的真实性和完整性;TLS协议。

  • 结合相关密钥,对消息做认证码(MAC)验证。

  • MAC ---- 消息认证码,是类似于散列的一个内容。带密钥的哈希函数

  • HASH:将明文直接通过HASH算法进行计算
    MAC:将明文在进行HASH计算前,添加了密钥信息
    
  • HMAC ---- 基于哈希的消息认证码。

3、电子签名

  • 网络中身份验证的机制。---->数字签名算法

4、保存敏感资料

5、Hash Table

​ 散列算法一般被分为密码学哈希非密码学哈希

密码学哈希 ---- 指的是用于保证密码学安全性的散列算法。---- 指标:抗碰撞性。

抗碰撞性:哈希函数在处理输入数据时,确保两个不同的输入数据产生相同输出的概率极低。在理想情况下,不同的输入数据应该生成完全不同的输出哈希值。

非密码学哈希 ---- 循环冗余校验

在这里插入图片描述

目前国际上主流的密码学哈希是SHA-2和SHA-3,国内主推的是国密标准SM3

MAC和HMAC

​ 哈希 ----- 可以用于消息认证,但是不够安全。

消息认证码 ---- 是对消息进行认证,确认其完整性和真实性的技术。通过使用发送者和接收者之间共享的密钥,从而识别出是否存在伪装和篡改行为

​ 逻辑:MAC算法+密钥+明文是一个类似HASH的数值

散列值(哈希)只能保证消息的完整性,即生成该摘要B的明文A是完整无误的。而MAC算法能够在保证消息完整性的基础上,进一步保证消息未被篡改,即判断出发出的是明文A,而不是明文C

​ HMAC ---- 结合各种散列算法来实现。

数字签名

​ 在借钱场景中,A出示的电子借条,对于B而言,存在两个问题:

  • 该借条是否是A发送,或者是否被网络其他人员伪造 ----- 可以由MAC解决,因为有密钥;
  • 致命问题,MAC无法防止“否认”问题,即A否认自己做过该事情。
    • 对于通信双方而言,都可以计算出正确的MAC值,因此,对于任何一个第三方而言,无法证明这条消息是否是由A发送的。

消息认证码的局限性 ---- 1、无法对第三方证明;2、无法防止否认问题

在这里插入图片描述

  • 生成消息签名的行为 ---- 由发出者来完成的。也被称为“对消息签名”;
    • 根据消息的内容,计算数字签名的数值
    • 行为意义:我认可该消息的内容。
  • 验证消息签名的行为 ---- 由接收者完成,也可以由第三方机构完成。
    • 行为意义:就是在检查该消息的签名是否属于Alice,如果成功,则认为该信息获得了Alice的认可。

在数字签名中,生成签名和验证签名的两个行为,是需要使用各自专用的密钥来完成的,即验证签名的密钥无法生成签名

数字签名的玩法 === 公钥密码体系

私钥公钥
公钥密码接收者解密使用发送者加密使用
数字签名签名者生成签名使用验证者验证密钥使用
谁持有密码?个人持有任何人

数字签名,是根据每一次发送的消息的内容,通过私钥信息计算得出的一个加密字符串,即每一次的数据发送,数字签名信息均不同

数字签名的方法
直接对消息签名

在这里插入图片描述

对消息的散列值签名

对完整信息生成数字签名非常耗时,且散列值在一定程度上可以代表该完整性信息。那么可以先将完整信息生成散列值,然后对信息的散列值生成数字签名

在这里插入图片描述

数字签名的目的不是对数据信息进行加密,而仅仅是为了对数据的发送者进行验证

数字签名所要实现的并不是防止修改,而是识别修改。即签名或消息可以被修改,但是在接收方验证时会失败。

对称密码与公钥密码的对比,以及消息认证码与数字签名的对比:

对称密码公钥密码
发送者用共享密钥加密用公钥加密
接收者用共享密钥解密用私钥解密
密钥配送问题存在不存在,但公钥需要另外认证
机密性
消息认证码数字签名
发送者用共享密钥计算MAC值用私钥生成签名
接收者用共享密钥计算MAC值用公钥验证签名
密钥配送问题存在不存在,但公钥需要另外认证
完整性
认证⭕(仅限通信对象双方)⭕(可适用于任何第三方)
防止否认×

数字证书

​ 中间人攻击 ---- 核心点:如何验证公钥的真实性。即验证公钥本身的真实性。

证书 ---- 将公钥当作是一条消息,由一个可信任的第三方机构对其签名后得到的公钥

公钥证书(PKC)---- 由认证机构(CA)施加数字签名

证书认证场景

在这里插入图片描述

关键问题 ---- 谁来充当CA认证中心,谁来规定CA机构的工作流程。----- PKI体系

PKI体系 ---- 公钥基础设施

​ 围绕数字证书的申请、颁发、使用整个生命周期展开的。会使用到对称密钥加密、公钥加密、数字信封和数字签名

IETF ---- X.509标准
ITU-T

在这里插入图片描述

认证机构的操作流程:

  • 1、生成密钥对
    • 两种方式生成:一种是由PKI用户自行生成;一种是由认证机构来生成。
  • 2、注册公钥,并对本人信息进行验证
    • RA服务来完成
  • 3、生成并颁发证书
    • 在RA完成认证的前提下,使用CA自身的私钥,对用户的公钥进行数字签名,并将数字签名和公钥信息一起,生成证书
  • 4、作废证书
    • 当用户的私钥丢失,认证机构需要将原本的证书作废。
    • 如果要作废证书,认证机构需要制作一张证书作废清单 ----> CRL ---- 也需要有CA的数字签名。
    • 每一次数据通信前,PKI用户需要从认证机构获取最新的CRL,来查询自己要用于验证签名的公钥证书是否作废。

对于用来验证数字签名的认证机构的公钥,如何判断其合法

在这里插入图片描述

根CA的特点 ---- 自己给自己颁发证书→自签名

http://www.xdnf.cn/news/420373.html

相关文章:

  • Java SE(12)——异常(Exception)
  • web 自动化之 PO 设计模式详解
  • Win11 + Visual Studio 2022 + FLTK 1.4.3 + Gmsh 4.13.1 源码编译指南
  • visual studio生成动态库DLL
  • IntelliJ IDEA给Controller、Service、Mapper不同文件设置不同的文件头注释模板、Velocity模板引擎
  • spring中的@SpringBootApplication注解详解
  • 5.13本日总结
  • Web 架构之负载均衡会话保持
  • 基于C#+SQL Server开发(WinForm)租房管理系统
  • 【C++】MSYS2:构建 C++ 开发环境
  • (vue)el-steps从别的页面跳转进来怎么实现和点击同样效果
  • day011-12-老男孩教育-用户管理与软件管理体系-习题
  • 18.Excel数据透视表:第1部分创建数据透视表
  • 2025java面试题整理
  • WebRTC技术EasyRTC嵌入式音视频通信SDK打造远程实时视频通话监控巡检解决方案
  • LabVIEW与PLC通讯程序S7.Net.dll
  • 国联股份卫多多与七腾机器人签署战略合作协议
  • 动态域名服务ddns怎么设置?如何使用路由器动态域名解析让外网访问内网?
  • 5.11作业
  • 5月12日作业
  • 文件同步2
  • 人事管理系统总结
  • 你对于JVM底层的理解
  • IBM BAW(原BPM升级版)使用教程第十四讲
  • 利用Backtrader实现回测策略的可视化与图表绘制
  • SpringBoot 3.X 开发自己的 Spring Boot Starter 和 SpringBoot 2.x 的区别
  • 1.6 关于static和final的修饰符
  • Spring Boot中HTTP连接池的配置与优化实践
  • Spring Spring Boot 常用注解整理
  • 服务器租用与托管注意事项有哪些