信息安全复习---重逢时

信息安全

PS:当前目录暂时在CSDN无效,只能用于markdown文件中查看
信息安全

第一讲 引言

被动攻击和主动攻击的分类

Passive Threats – 被动攻击

被动攻击的特征是对传输进行窃听和监测

  • Release of message contents (信息泄露)
  • Traffic analysis (流量分析)
Active Threats – 主动攻击

主动攻击则旨在篡改或者伪造信息,也可以是改变系统的状态和操作,因此主动攻击主要威胁信息的完整性、可用性和真实性。

  • Masquerade (伪装)
  • Replay (重放)
  • Modification of message contents (篡改)
  • Denial of service (拒绝服务)

安全服务的分类(CIA)

保密性/机密性(Confidentiality):

确保信息只被授权人访问。保密性是指信息不被泄露给非授权者。保密性可使机密信息不被窃听,或窃听者不能了解信息的真实含义。

认证性(Assurance):

在连接的初始化阶段保证两个实体的真实性(每个实体都是所声明的实体),保证第三方不能伪装成两个合法实体之一来干扰连接,执行未授权的传输或接收,对等实体认证:用于逻辑连接中的对等实体,数据源认证:用于无连接的传输中

完整性(Integrity)

保护信息和信息处理方法的准确性和原始性。主要指信息在生成、传输、储存和使用过程中没有被篡改、丢失等。完整性包括数据完整性和系统完整性。数据完整性指数据没有被非授权操纵,非授权数据操纵可能发生在数据储存、处理和传输的过程中。类似于数据完整性,系统完整性表示系统没有被非授权操纵,或者以非授权方式访问

不可否认性
访问控制(防止资源的滥用)
可用性(永久性、不可删除)

​ 拒绝服务攻击
​ 病毒删除数据

安全机制

特定

加密 、数字签名 、访问控制、数据完整性、认证交换、路由控制、公证

通用

可信功能、安全标签、事件检测、安全审计跟踪、安全恢复


第二讲 数学基础 (未完善,重逢时大概率不会)

欧几里得算法:求模逆元

//其思路转换成代码如下 by重逢时的脑子
public static int gcd(int a, int b) {
    if (b == 0) {
        return a;
    } else {
        return gcd(b, a % b);
    }
}

费马定理

存在整数 a , p 且 gcd ( a,p ) = 1,即二者互为质数,则有 : a^(p-1) ≡ 1 (mod p)

欧拉定理

中国剩余定理 : 求解同余方程式

菜鸟快递想寄就寄


第三讲 对称加密和消息机密性

对称加密原理

原理:

  • 一对保密密钥相等或互相容易推算
  • 又称为单密钥密码机制

对称密码也称传统密码,它的特点是发送方和接收方共享一个密钥

对称密码分为两类:

  • 分组密码(BlockCiphers):分组密码也称为块密码,它是将信息分成一块(组),每次操作(如加密和解密)是针对一组而言。

  • 流密码(StreamCiphers)。流密码也称序列密码,它每次加密(或者解密)一位或者一个字节。
    在这里插入图片描述

  • 明文空间 M ,表示全体明文的集合。

  • 密文空间 C ,表示全体密文的集合。

  • 密钥空间 K ,表示全体密钥的集合,包括加密密钥和解密密钥。

  • 加密算法 E ,表示由明文到密文的变换。

  • 解密算法 D ,表示由密文到明文的变换。3

对称加密算法

Feistel结构

傻瓜式理解:

  • 每一轮的左半部分是上一轮的右半部分
  • 每一轮的右半部分是 (上一轮的右半部分进入一个F操作,且要输入这一轮的密钥Ki),然后产生的解再与上一轮的左半部分进行异或操作

Feistel结构

分组密码: DES, AES, IDEA, *SM4
DES
  • 密钥长度:56位

  • 分组长度:64位

  • 算法结构:采用 Feistel 结构,包括16轮加密过程。

  • 安全性:由于密钥长度较短,现代计算能力能够在合理时间内通过暴力破解法解密DES。因此,DES已被认为是不安全的。

  • DES算法的入口参数

    ​ Key 为8个字节共64位,是DES算法的工作密钥;

    ​ Data 也为8个字节64位,是要被加密或被解密的数据;

    ​ Mode 为DES的工作方式,有两种:加密或解密。

AES
  • 密钥长度:128位、192位或256位
  • 分组长度:128位、192位或256位
  • 算法结构:基于置换-置换网络(Substitution-Permutation Network, SPN),根据密钥长度不同,分别进行10、12或14轮加密。
  • 安全性:AES目前被认为是非常安全的,广泛应用于各种安全通信和数据保护中。
IDEA
  • 密钥长度:128位
  • 分组长度:64位
  • 算法结构:采用8.5轮的混合结构,包括模216+1的乘法和模216的加法。
  • 安全性:在很长时间内未被有效破解,但因块大小较小,逐渐被更现代的算法取代。
*SM4
  • 密钥长度:128位
  • 分组长度:128位
  • 算法结构:采用 Feistel 结构,包含32轮加密过程。
  • 安全性:SM4目前在中国被广泛应用于政府和商用加密领域,被认为具有较高的安全性。

SM4算法的主要步骤

1. 初始步骤
  • 输入:128位的明文块 PP 和128位的密钥 KK
  • 输出:128位的密文块 CC
2. 数据分组

将明文 PP 分成四个32位的子块: X0, X1, X2, X3

3. 轮密钥生成

SM4使用一个密钥扩展算法从128位的密钥 KK 生成32个32位的轮密钥 RK0, RK1, ..., RK31

4. 加密过程

加密过程共32轮,每轮操作如下:

  • 输入:当前状态 Xi 和轮密钥 RKi
  • 输出:更新后的状态 Xi+4

每一轮的操作包括以下步骤:

  1. 线性变换 (L)

    • T = Xi+1 ⊕ Xi+2 ⊕ Xi+3 ⊕ RKi
  2. 非线性变换 (τ):将32位的 T 通过S盒进行字节替换,S盒替换过程如下:

    • T' = S(T)
    • 其中,S盒是一种预先定义的非线性替换表,用于增加复杂性。
  3. 线性变换 (L’)

    • L'(T') = T' ⊕ (T' <<< 2) ⊕ (T' <<< 10) ⊕ (T' <<< 18) ⊕ (T' <<< 24)
  4. 状态更新

    • Xi+4 = Xi ⊕ L'(T')
5. 密文输出

经过32轮加密后,得到的状态为 X32, X33, X34, X35。将这四个32位子块组合成一个128位的密文块 CC

流密码:RC4

​ 用于SSL/TLS,IEEE 802.11 WEPWAP等协议中

分组密码的工作模式

ECB(电子密码本模式):

特点

  • 每个数据块独立加密。
  • 相同的明文块总是生成相同的密文块。

优点

  • 简单易实现。
  • 支持并行加密。

缺点

  • 相同的明文块会生成相同的密文块,容易被攻击者识别和分析。
  • 不适合加密长数据,因为模式的可预测性会暴露数据模式。
CBC(密码分组链接模式)

特点

  • 每个明文块在加密前与前一个密文块异或。
  • 第一个明文块在加密前与初始向量(IV)异或。

优点

  • 相同的明文块会生成不同的密文块(前提是IV不同)。
  • 隐藏了明文的模式。

缺点

  • 不支持并行加密。
  • 需要IV,IV必须是随机且唯一的。
CFB(密文反馈模式)

特点

  • 将前一个密文块加密的结果与下一个明文块异或,生成当前密文块。
  • 第一个密文块使用IV。

优点

  • 不需要填充。
  • 可以加密数据流,适合处理字节级数据。

缺点

  • 不支持并行加密。
  • 错误传播特性:一个密文块错误会影响后续多个块的解密。
CTR(计数器模式)

特点

  • 使用一个计数器生成一个伪随机序列,该序列与明文块异或生成密文块。
  • 计数器值每次加1。

优点

  • 支持并行加密。
  • 不需要填充。

缺点

  • 需要唯一且不重复的计数器值。

第四讲 公钥加密和消息认证

安全Hash函数

Hash函数应满足的性质
  • H能应用于任意长度的数据
  • H生成固定长度的输出
  • 对任意的x,H(x)易于计算
  • 对任意的h,计算x使得H(x)=h是计算上不可行的(单向性
  • 对任意的x,计算y ≠x使得H(y)=H(x)是计算上不可行的(弱抗碰撞性
  • 计算任意对(x,y)使得H(x)=H(y)是计算上不可行的(强抗碰撞性
消息认证码

消息认证码(MAC)是一种使用密钥的认证技术,它利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后。

基于Hash函数构造s

HMAC(Hash-based Message Authentication Code):
是一种基于哈希函数消息认证码算法。它通过将密钥与消息进行哈希运算,生成一个固定长度的认证码,用于验证消息的完整性和真实性。

HMAC的设计目标:
可以直接使用现有的Hash函数。
不针对于某一个Hash函数,可以根据需要更换Hash函数模块。
可保持Hash函数的原有性能,不能过分降低其性能。
对密钥的使用和处理应较简单。
如果已知嵌入的HASH函数的强度,则可以知道认证机制抵抗密码分析的强度。​

HMAC算法的不具体步骤:

  1. 选择一个合适的哈希函数(如MD5、SHA-1、SHA-256等)和一个密钥。
  2. 将密钥进行预处理,使其长度等于哈希函数的分组长度。
  3. 将密钥与消息进行异或运算,得到一个新的值。
  4. 对上一步得到的值进行哈希运算,得到一个中间结果。
  5. 将中间结果与密钥再次进行异或运算,得到最终的认证码。

详细步骤:

HMAC的结构
• H:嵌入的Hash函数(如MD5 、SHA-1 、RIPEMD-160)
• IV:作为Hash函数输入的初始值。
• M: HMAC的消息输入(包括使用的Hash函数中定义的填充位)。
• Yi: M 的第 i 哥 分组 。 0<= i <= (L-1)
• L: M中的分组数。
• b: 每一分组所含的位数。
• n: 使用的Hash函数所产生的散列值的位长。
• K: 密钥,建议密钥长度大于 n 。 若密钥长度大于6,则将密钥作为Hash函数的输入
以产生一个 n 位的密钥。
• K+: 为使K为6位长而在K左边填充。后所得的结果。
• ipad: 00110110(十六进制数36)重复b/8次的结果。
• opad: 01011100(十六进制数5C)重复b/8次的结果。

  1. 在密钥K后面填充0,得到b位的K+;(例如,若K是160位,b=512, 则在K中加入44个0字节0X00)。
  2. K+与ipad执行异或运算(位异或)产生b位的分组Si。
  3. 将M附于Si后。
  4. 将H作用于第(3)步所得的结果。
  5. K+与opad执行异或运算(位异或)产生b位的分组S0 o
  6. 将第(4)步中的散列值附于S0后。
  7. 将H作用于第(6)步所得出的结果,输出最终结果。

HMACκ =H[( K+ XOR opad ) || H[( K+ XOR(ipad) || M ] ]
**XOR : 异或

基于分组密码构造

数据认证算法(FIPS PUB 113)是使用最广泛的MAC算法之一,它也是一个ANSI标准(X9.17)。该算法建立在 DES 算法之上,利用了密文链接模式CBC对消息进行加密处理。该算法在实际中的应用很广泛,特别是在银行系统中。

简单步骤:
在这里插入图片描述

公钥加密原理:接收者公钥加密

使用两个密钥对于保密性、密钥分发和认证都产生了意义深远的影响
公钥加密方案由6个部分组成:1、明文 2、加密算法 3、公钥 4、私钥 5、密文 6、解密算法
可构成两种基本的模型:加密模型认证模型

公钥加密算法:
RSA及其参数设置:基于大整数分解问题

1.密钥的产生
(1)随机选择两个大素数力和小
(2)计算 n = p×q
(3)计算秘密的欧拉函数φ(n) = (p-l)(q-l)
(4)选择 e 使得 1 < e < φ(n),且 gcd(e,φ(n)) = 1
(5)解下列方程求出d: ed ≡ 1 mod φ(n), 且 0 ≤ d ≤ n
(6)公开公钥:PU={e,N}
(7)保存私钥:PR={d,p,q}
2.加密过程
加密时明文以分组为单位进行加密,每个分组m的二进制值均小于n,对明文分组m 做加密运算: c = m^e mod n, 且 0 ≤ m < n
3.解密过程: 密文解密 m = c^d mod n
4.签名过程: 计算签名 s = m^d mod n
5.签名验证过程: 签名验证: m = s^e mod n

ElGamal:基于离散对数问题(具体过程不要求)

在这里插入图片描述
该算法既能用于数据加密,也能用于数字签名,其安全性是依赖于计算有限域上离散对数这一难题。

优点:

  • 系统不需要保存秘密参数,所有的系统参数均可公开。
  • 同一个明文在不同的时间由相同加密者加密会产生不同的密文,但ElGamal方法的计算复杂度比RSA方法要大。
密钥交换:Diffie-Hellman

目的 : 使得两个用户能够安全地交换密钥,得到一个共享的会话密钥,算法本身不能用于加密和解密。

  • 双方协商并公开选择一个大素数p和一个原根g
  • 双方各自选择一个私密的秘钥,分别为ab
  • 双方分别计算公开值A和B,其中A = g^a mod pB = g^b mod p
  • 双方交换公开值A和B
  • 双方分别使用对方的公开值和自己的私密秘钥计算出一个共享的秘钥,其中共享秘钥为:
  • Ka = B^a mod p = (g^b mod p)^a mod p = (g^a mod p)^b mod p = Kb。
    Diffie-Hellman例题
数字签名:发送者私钥签名(非对称加密)

第五讲 密钥分配和用户认证

对称加密的密钥分配

  • A选择密钥并采用物理方式传递给B
  • 可信第三方选择密钥并采用物理方式传递给A和B
  • A或B可以采用旧密钥加密一个新密钥传递给对方
  • 如果A和B与可信第三方C共享了密钥,则可由C传递密钥给A和B

Kerberos(应用层安全协议)

Kerberos的工作流程如下(详细在课本P187):

  1. 用户向Kerberos服务器发送身份验证请求,提供口令。
  2. Kerberos服务器验证用户的口令,生成一个票据(Ticket)和一个认证符(Authenticator)。
  3. Kerberos服务器将票据和认证符发送给用户。 用户使用票据和认证符向目标服务器发送请求。
  4. 目标服务器接收到请求后,向Kerberos服务器验证票据和认证符的合法性。
  5. Kerberos服务器验证通过后,目标服务器向用户提供所请求的服务。
    Kerberos的认证过程
基于口令

Kerberos使用用户口令作为身份验证的凭证。用户在登录时,将其口令发送给Kerberos服务器,服务器使用该口令创建一个加密的票据(Ticket)来表示用户的身份。

单点登录

Kerberos实现了单点登录(Single Sign-On)的功能。用户只需在初始登录时提供口令,Kerberos会为其生成一个票据,用户可以使用该票据来访问网络中的其他资源,而无需再次输入口令。

防止重放攻击

为了防止重放攻击,Kerberos使用了时间戳和随机数。票据中包含了时间戳和随机数,这样即使攻击者截获了票据,也无法重放使用,因为时间戳和随机数是一次性的。

票据(Ticket)认证符(Authenticator)

Kerberos协议中使用了票据和认证符来实现身份验证。票据是由Kerberos服务器颁发给用户的,包含了用户的身份信息和授权信息。认证符是由用户生成的,用于证明用户的身份和请求的合法性。

非对称加密的密钥分配

公钥的分发:公钥证书 --> 由公钥加上公钥所有者的ID以及可信第三方对其的签名组成

基于公钥密码的对称密钥分发:

  • 最简单形式的Diffie-Hellman不能为两个通信实体提供认证
  • 使用公钥证书,用公钥加密会话密钥
X.509公钥证书

X.509公钥证书的工作流程:

证书请求:证书拥有者生成一对公私钥,并向证书颁发机构提交证书请求,包括拥有者的身份信息和公钥。

证书颁发:证书颁发机构对证书请求进行验证,确认拥有者的身份,并使用自己的私钥对证书内容进行签名,生成X.509公钥证书。

证书验证:其他用户在与证书拥有者进行通信时,可以使用证书颁发机构的公钥验证证书的真实性和完整性。

安全通信:通过验证证书,通信双方可以使用证书拥有者的公钥进行加密和数字签名,确保通信的机密性和完整性

特点???:

  • 定义一个目录服务
  • 目录分布于若干个服务器中,保存了用户证书
  • 每个证书包含用户的公钥,并由CA对其签名
  • 广泛应用于S/MIME, IP Security, SSL/TLS和SET等网络安全协议中
  • CA签名推荐用RSA
公钥基础设施PKI

PKI:是一种安全架构和体系结构,用于管理和分发公钥证书,实现公钥加密和数字签名的安全通信。PKI提供了一种可信任的框架,用于验证身份、保护通信和确保数据的机密性和完整性。

PKI系统由以下组件和功能组成:

  • 证书颁发机构(CA):CA是PKI系统的核心组件,负责颁发和管理数字证书。CA验证证书申请者的身份,并使用自己的私钥对证书进行签名,以确保证书的真实性和完整性。
  • 注册机构(RA):RA是CA的辅助机构,负责验证证书申请者的身份,并将验证结果传递给CA。RA可以减轻CA的工作负担,提高证书颁发的效率。
  • 证书存储库:证书存储库用于存储和管理颁发的证书。用户可以通过访问证书存储库来获取其他用户的证书,以验证其身份和进行安全通信。
  • 证书:数字证书是PKI系统中的核心组件,用于验证公钥的身份和确保通信的安全性。数字证书包含了公钥、证书拥有者的身份信息和证书颁发机构的签名。
  • 证书撤销列表(CRL):CRL是CA发布的一个列表,包含了已经被撤销的证书的信息。用户可以通过CRL来检查证书的有效性和真实性。
  • 安全协议:PKI系统使用安全协议,如SSL/TLS协议,来建立安全通信通道。安全协议使用证书和公钥加密技术,确保通信的机密性和完整性。
    PKI系统组成

身份认证

身份认证:用于鉴别用户身份。包括识别和验证,识别是指明确并区分访问者的身份;验证是指对访问者声称的身份进行确认。

What you know(用户所知道):

用户名/密码方式 : 用户名/密码是最简单的,也是最常用的身份认证方法,它是基于用户所知道what you know) 的验证手段。它的一般做法是每一个合法用户都拥有系统给的一个用户名/密码对,当用户要求访问提供服务的系统时,系统就要求用户输入用户名、密码,在收到密码后,将其与系统中存储的用户密码进行比较,以确认被认证对象是否为合法访问者。

What you have(你所拥有的):

IC卡认证方式 :C卡是一种内置了集成电路的卡片,卡片中存有与用户身份相关的数据,可以认为是不可复制的硬件。IC卡由合法用户随身携带,登录时必须将贯卡插入专用的读卡器中读取其中的信息,以验证用户的身份。IC卡认证是基于“用户所拥有what you have)的手段,通过IC卡硬件的不可复制性来保证用户身份不会被仿冒。

What you are(你所具备的特征):

生物特征认证方式:这种身份认证方式基于用户的生物特征,例如指纹、虹膜、声纹等。用户需要通过生物识别设备进行身份验证,系统将验证用户的生物特征是否与预先注册的特征匹配。

访问控制

自主访问控制

自主访问控制:是指对某个客体具有拥有权(或控制权)的主体能够将对该客体的一种访问权或多种访问权自主地授予其他主体,并在随后的任何时刻将这些权限回收。

强制访问控制:向下读,向上写

强制访问控制: 是指计算机系统根据使用系统的机构事先确定的安全策略,对用户的访问权限进行强制性的控制。
强制访问控制实例
向下读,向上写” :

  • 仅当主体的安全等级大于等于客体的安全等级时,主体可读访问客体。
  • 仅当主体的安全等级小于等于客体的安全等级时,主体可写访问客体。
基于角色的访问控制

基于角色的访问控制: 基本思想是在用户和访问权限之间引入角色的概念,将用户和角色联系起来,通过对角色的授权来控制用户对系统资源的访问。这种方法可根据用户的工作职责设置若干角色,不同的用户可以具有相同的角色,在系统中享有相同的权力,同一个用户又可以同时具有多个不同的角色,在系统中行使多个角色的权力。


第六讲 传输层安全

SSL体系结构

  • 基于Web应用的安全协议,是一种用于传输层安全的协议。传输层安全协议的目的是为了保护传输层的安全,并在传输层上提供实现保密、认证和完整性的方法。
  • SSL协议位于传输层上面,为了实现机密性和消息完整性服务,它从应用层取得的数
    据需要重定格式(分片、压缩(可选的)、应用MAC、加密等)后才能传给传输层进行发送。
  • SSL连接:连接提供了服务之间的传输。SSL连接是点对点的关系,每一个连接与一个会话相联系。
  • SSL会话:SSL会话是客户机和服务器之间的关联,会话通过握手协议(在SSL协议的高层)来创建。会话定义了加密安全参数的一个集合,该集合可以被多个连接所共享。 会话可以用来避免为每个连接进行昂贵的新安全参数的协商。
SSL记录协议:加密、MAC,运行流程?

加密:

  • 采用对称加密,其中,共享对称密钥由握手协议定义
  • 加密算法:AES, IDEA, RC2-40, DES-40, DES, 3DES, Fortezza; RC4-40, RC4-128
  • 消息在加密之前被压缩

MAC:

消息完整性:采用MAC,其中,共享密钥由握手协议定义
与HMAC相似,只是采用不同的填充方法:

hash(MAC_write_secret||pad_2|| 
	hash(MAC_write_secret||pad_1||seq_num|| 
	SSLCompressed.type|| 
	SSLCompressed.length||SSLCompressed.fragment))

运行流程:

发送方:

  1. 从上层接受传输的应用报文。
  2. 分片:将数据分片成可管理的块, 每个上层报文被分成16KB或更小的数据块。
  3. 进行数据压缩(可选):压缩是可选的,压缩的前提是不能丢失信息,并且增加的内容长度不能超过1024B, 默认的压缩算法为空。
  4. 增加MAC:加入信息认证码(MAC), 这一步需要用到共享的密钥。
  5. 加密:利用IDEA、DES、3DES或其他加密算法对压缩报文和MAC码进行数据加密。
  6. 增加SSL记录首部:增加由内容类型、主要版本、次要版本和压缩长度组成的首部。
  7. 将结果传输到下层。
    SSL发送方的操作步骤
    接收方:
  1. 从低层接受报文。
  1. 解密。
  2. 用事先商定的MAC码校验数据。
  3. 如果是压缩的数据,则解压缩。
  4. 重装配数据。
  5. 将信息传输到上层。
变更密码规格协议

SSL 改密文规约协议用来发送修改密文规约协议信息。任何时候客户都能请求修改密码参数,比如握手密钥交换。在修改密文规约的通告发出以后,客户方就发出一个握手密钥交换信息(如果可得到的话),鉴定认证信息,服务器则在处理了密钥交换信息之后发送一个修改密文规约信息。此后,新的双方约定的密钥就将一直使用到下次提出修改密钥规约请求为止。

特点???:

  • 应用SSL记录协议的3个SSL特定协议之一
  • 只包含一条消息
  • 使延迟状态改变为当前状态
  • 更新了在这一连接上应用的密码机制
    SSL变更密码消息
报警协议

SSL告警协议是用来将SSL有关的告警传送给对方实体的。和其他使用SSL的情况一样,告警报文按照当前状态说明被压缩和加密SSL告警协议的每个报文由两个字节组成第1个字节的值用来表明告警的级别第2个字节表示特定告警的代码。如果在通信过程中某一方发现任何异常,就需要给对方发送一条警示消息通告。
警示消息有两种
第一种是Fatal错误:如传递数据过程中,发现错误的MAC,双方就需要立即中断会话,同时消除自己缓冲区中相应的会话记录; unexpected message, bad record mac, decompression failure, handshake failure, illegal parameter
第二种是Warning消息:在这种情况下,通信双方通常都只是记录日志,而对通信过程不会造成任何影响
close notify, no certificate, bad certificate, unsupported certificate, certificate revoked, certificate expired, certificate unknown
SSL警告协议报文

握手协议

SSL握手过程
(1)客户发出一个带有客户HELLO信息的连接请求。包括如下信息:

  • 想要使用的SSL版本号。
  • 时间信息,以标准的UNIX 32位格式标识的当前时间和日期。
  • 会话标识(可选),如果没有指定的话,则服务器重用上一次的会话标识或返回一个错误信息。
  • 密文组(客户方所支持的各种加密算法选项清单,包括认证码、密钥交换方法、加密和MAC算法)。
  • 客户方所支持的压缩算法。
  • 随机数。

(2) 服务器评估客户方发来的HELLO信息中的各项参数,并且返回一个服务器方的HELLO信息,其中包含SSL会话的各项参数,具体内容如下:

  • 版本号。
  • 时间信息,以标准的UNIX 32位格式标识的当前时间和日期。
  • 会话标识(会话ID)
  • 密文组。
  • 压缩方法。
  • 随机数:防止重放攻击
    在服务器HELLO消息发送之后,服务器发出如下信息:
  • 服务器证书,如果服务器需要被鉴别的话。
  • 服务器密钥交换信息,如果得不到证书或证书仅仅用作签名的话。
  • 证书请求,如果客户要求被鉴别的话。

(3)客户发送下列信息:

  • 如果服务器发出了一个证书请求,那么客户方必须发送一个证书或非证书信息。
  • 如果服务器发送了一个服务器密钥交换信息,那么客户方就发送一个基于公钥算法的由HELLO信息决定的密钥交换信息。
  • 如果客户方已经发送了一个证书,那么客户方就需验证服务器方的证书并且发出一个证书验证信息指明结果。

(4)服务器发出一个结束信息,指出协商阶段完成。然后服务器发出一个修改密文规约信息。
(5)会话双方分别产生一个加密密钥,然后他们再根据这些密钥导出会话主密钥。握手协议改变状态至连接状态。所有从应用层来的数据传输作为特定信息传输给对方。

暂态Diffie-Hellman(Ephemeral Diffie-Hellman,DHE):

在暂态Diffie-Hellman密钥交换中,服务器和客户端使用临时生成的Diffie-Hellman参数来协商会话密钥。这种方法提供了前向安全性,即使服务器的私钥被泄露,之前的会话也不会受到影响。DHE算法提供了一种安全的密钥交换方式,可以抵抗被动攻击者的窃听和破解。

RSA密钥交换:由客户端选择会话密钥

在RSA密钥交换中,服务器使用其RSA公钥对会话密钥进行加密,并将其发送给客户端。客户端使用其私钥解密会话密钥,从而确保只有服务器能够解密和获得会话密钥。这种方法依赖于服务器的RSA私钥的安全性,如果私钥被泄露或破解,会话的安全性将受到威胁。

在SSL握手过程中,客户端通常会选择使用哪种密钥交换算法。客户端会发送一个支持的密钥交换算法列表给服务器,服务器从中选择一个算法进行密钥交换。客户端和服务器之间协商确定使用的密钥交换算法后,会生成一个共享的会话密钥,用于加密和解密后续的通信。
需要注意的是,为了确保通信的完整性和身份验证,SSL握手过程还包括证书验证和数字签名等步骤。这些步骤用于验证服务器的身份,并确保通信的安全性。
总结起来,SSL握手协议可以使用暂态Diffie-Hellman和RSA密钥交换来协商会话密钥。暂态Diffie-Hellman提供了前向安全性,而RSA密钥交换依赖于服务器的RSA私钥的安全性。客户端选择其中一种密钥交换算法,并与服务器进行协商,生成共享的会话密钥,用于后续的通信加密和解密。

防范Web安全威胁:如穷举密码分析攻击、已知明文字典攻击、重放攻击、中间人攻击、口令窃听、IP地址假冒、IP劫持,但无法防范SYN泛滥

HTTPS=HTTP+SSL

SSH协议

  • 30
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值