【网络安全技术】——密码技术基础与身份认证技术(学习笔记)

身份认证技术 混合云身份管理需求分析如下: 单点登录认证。本地云能够向其他异构云认证自身,登录一次之后就可以访问其所有资源,与异构云的安全机制无关 。 跨云认证。能够频繁进行跨云服务的申请访问,在访问过程中能够协调混合云环境下高效认证机制,真正实现各云服务的融合与共享,提高访问的工作效率。 第三方保护。私有云能够利用数字证书向其它私有云认证自身的身份,数字身份由可信的第三方保护。 相互操作安全。本地云在不改变其安全策略的前提下参与云联盟,与其他云进行信息交换等操作,并确保安全性及隐私保护。 混合云身份认 阅读详情
AI摘要

本文围绕密码技术和身份认证技术展开。介绍了密钥管理分配、消息认证码、数字签名、信息隐藏技术等密码技术,还阐述了身份认证技术,包括多种认证方式和协议。最后通过GnuPG进行密码技术实验,涵盖生成密钥对、对称加密、公钥加密和数字签名等操作。

📖 前言:加密技术是目前网络安全的基础。数据加密技术是指对在网络中所发送的明文消息用加密密钥加密成密文进行传送,接收方用解密密钥进行解密再现明文消息,从而保证传输过程中密文信息即使被泄漏,在无密钥的情况下仍是安全保密的。目前,数据加密技术已被普遍应用于计算机网络信息的安全管理中。计算机系统和计算机网络系统是一个虚拟的数字世界。在这个虚拟数字世界中,包括用户身份的一切信息都是用0和1组成的特定数据来表示,计算机只能识别用户的数字身份,所以,对用户的授权也是针对用户数字身份进行的。


🕒 1. 密钥管理和分配

密钥的种类:

  • 主密钥:对密钥加密密钥进行加密,通常保存在网络中心或者中心节点中,受到严格的物理保护。
  • 密钥加密密钥:用来在传输会话密钥时加密会话密钥,也称为次主密钥或二级密钥。
  • 会话密钥:用于通信双方交换数据,可以由密钥管理中心分配,也可以通信双方协商获取。通信结束后,该密钥即被销毁。

🕘 1.1 基于对称加密的密钥分配

对于通信双方Alice和Bob,有以下密钥分配方法:

  • 直接交换:通信双方面对面或通过安全通道交换密钥,简单但安全性低。
  • 第三方分发:可信的第三方(如KDC)生成并分发密钥,提高了安全性但引入了信任问题。
  • 已有密钥加密:使用已有密钥加密新密钥传输,依赖于已存在的安全密钥。
  • 公钥加密:通信双方各自生成公钥和私钥,通过公钥加密和私钥解密来验证身份,建立安全通道。

基于对称加密的密钥分配通常使用密钥分配中心KDC实现,由它判断哪些主机之间允许相互通信。

当两个主机需要建立连接时,KDC为这条连接提供一个一次性会话密钥。

会话密钥分配过程:

  1. 用户A向KDC发送用自己的注册密钥Ka加密的报文Ka (A,B)
  2. KDC随机地产生一个临时密钥k,供用户A和B在本次通信中使用,然后向A发送应答报文。报文中包括KDC分配的临时密钥k和KDC请A转给B的报文Kb(A,Rn)。此报文再用A自己的注册密钥Ka进行加密。
  3. 用户B收到A转来的报文Kb(A,k)时,一方面知道A要与自己通信,另一方面知道本次通信中使用的密钥是Rn。

在这里插入图片描述
KDC每次分配给用户的对称密钥是随机的,保密性较高。且KDC分配给每个注册用户的密钥(如Ka、Kb等)都可以定期更新,以增加系统的安全性。

🕘 1.2 基于公钥加密的密钥分配

公钥证书

  • 用户通过安全渠道把他的公钥提供给CA并获取证书
  • 通信时只需要将证书发给对方即可,不需要CA参与
  • CA负责检验公钥的合法性
  • 证书证明用户合法地持有公钥
  • CA的数字签名使得攻击者无法伪造和篡改证书
    在这里插入图片描述

公钥算法可以直接对消息加密,但是如果明文消息很长,加解密速度就十分缓慢。所以公钥算法更多用来分配对称加密的密钥。

公钥分配对称加密的密钥

  • 保护对称加密密钥的传递,从而保证对称密钥的安全性
  • 使用对称密钥对发送的明文消息进行加密
  • 密钥的安全性保证传输数据的安全性
  • 充分利用了对称加密速度快的特点

分配过程:
在这里插入图片描述

  1. A用B的公加密一个报文发给B内容包括一个随机数N1和A的标识
  2. B收到报文后,使用A的公钥加密应答报文给A,内容包括收到的随机数N1和新产生的随机数N2
  3. A用B的公钥加密N2,并发送给B来证实自己身份
  4. A生成会话密钥K,用自己的私钥加密,保证K的确由自己产生,再用B的公钥加密,保证只有B才能解密
  5. B收到密文,首先用自己的私钥解密,然后再用A的公钥解密得到K,继而通过K与A实现安全通信。

🕒 2. 消息认证码

消息认证用于保证信息的完整性和不可否认性,可以检测信息是否被第三方篡改或伪造。

在这里插入图片描述

消息认证码MAC (Message Authentication Code) 指利用密钥产生的一小块数据,并附加到传输的消息上。

假设通信双方A和B共享一个对称密钥K,当A要发送消息给B时,A利用某个数学函数F生成消息认证码,将消息连同认证码一并传送给B。B对收到的消息使用K做相同的运算,生成MAC,将两者比较,若收到的消息认证码与计算得到的认证码相同,则

  • B能够确认消息没有被篡改
  • B确保消息来自发送方A,因为没有其他人知道K

若消息中包含序列号,B可以确认报文的顺序正确性。

可以使用对称加密算法公钥加密算法、散列函数来实现MAC的计算。

🕘 2.1 基于对称加密的消息认证码

在这里插入图片描述

  • 发送方计算消息M的摘要H(M)
  • 将摘要加密后附加到消息尾部
  • 消息M和认证码E(H(M))一起发给接收方
  • 接收方解码认证码,同时使用相同方法计算摘要H(M’)
  • 比较H(M)和H(M),不同说明完整性被破坏

🕘 2.2 基于公钥加密的消息认证码

与基于对称加密的相似,发送方使用私钥加密摘要,接收方用发送方的公钥进行解密。

在这里插入图片描述

🕘 2.3 基于散列函数的消息认证码

在这里插入图片描述
S值双方秘密共享,不随数据传输。

使用散列函数实现认证的变形方法是HMAC,即散列消息认证码。

HMAC特点:

  • 把散列函数当成一个模块
  • 充分利用现有散列函数库代码
  • 方便替换使用更安全的模块或散列函数

在这里插入图片描述

  • 在密钥 K K K 左边填充0,得到 b b b位的 K + K^+ K+
  • 构造 i p a d = 00110110 ipad = 00110110 ipad=00110110 重复 b / 8 b/8 b/8次,使其和 K + K+ K+等长
  • 将 K + K^+ K+ 与 i p a d ipad ipad 进行按位异或,产生分组 S i S_i Si​
  • 将填充内容 P P P、长度块 L L L附加在消息之后,变为分组长度 b b b 的整数倍
  • 将填充后的消息 M M M 附加在 S i S_i Si​之后
  • 将 ( S i + M ) (S_i+M) (Si​+M)、初始值 I V IV IV 一起输入到选定的Hash函数中,产生Hash值 H ( S i + M ) H(Si+M) H(Si+M)
  • 构造 o p a d = 01011100 opad = 01011100 opad=01011100 重复 b / 8 b/8 b/8次
  • 将 K + K+ K+ 与 o p a d opad opad 进行按位异或,产生分组 S o S_o So​
  • 将前面得到的Hash值 填充至 b b b位,附加在 S o S_o So​ 后面
  • 将 ( S o + H ) (S_o+H) (So​+H)、初始值 I V IV IV 一起输入到选定的Hash函数中,产生的Hash值 即 消息认证码HMAC

练习题:
现在Hash函数是将所有分组进行按位异或,且分组长度b=8,填充内容P为10…00,消息长度区域共2位。
若密钥K=110,请给出消息001的HMAC。
解答: K + = 00000110 K^+ =00000110 K+=00000110
i p a d = 00110110 o p a d = 01011100 ipad = 00110110 \qquad opad = 01011100 ipad=00110110opad=01011100
S i = K + ⊕ i p a d = 00110000 S_i = K^+\oplus ipad = 00110000 Si​=K+⊕ipad=00110000
Y = 001   100   11 Y = 001 \ 100 \ 11 Y=001 100 11(明文分组)
H 1 = H ( S i ∣ ∣ Y ) = S i ⊕ Y = 00000011 H_1=H(S_i \mid\mid Y) = S_i \oplus Y = 00000011 H1​=H(Si​∣∣Y)=Si​⊕Y=00000011
S 0 = K + ⊕ o p a d = 01011010 S_0 = K^+\oplus opad = 01011010 S0​=K+⊕opad=01011010
H 2 = H ( S 0 ∣ ∣ H 1 ) = S 0 ⊕ H 1 = 01011001 H_2=H(S_0 \mid\mid H_1) = S_0 \oplus H_1 = 01011001 H2​=H(S0​∣∣H1​)=S0​⊕H1​=01011001

使用加密算法来实现MAC比加密整个消息的方法更具有优势,因为它们的计算量很低。

不同的是用于认证的加密算法不需要可逆,而算法可逆对于解密是必需的。

🕒 3. 数字签名

数字签名:用来保证信息传输过程中信息的完整性和确认信息发送者的身份,主要使用公钥加密。

数字签名满足要求

  • 发送方事后不能否认发送的报文签名
  • 接收方能够核实发送方发送的报文签名
  • 接收方不能伪造发送方的报文签名
  • 接收方不能对发送方的报文进行部分篡改

🕘 3.1 基本过程

(1)采用散列算法H对明文P运算,生成固定长度的散列码H§
(2)发送方A用自己的私钥对摘要H( P)加密,生成数字签名;将数字签名做为明文P的附件,与P一起发送给接收方
(3)接收方首先采用相同散列算法得到H(P’),然后再用A的公钥解密签名得到H( P),比较H( P)和H(P’),不同则表示被篡改。

在这里插入图片描述

🕘 3.2 实现数字签名的方法

按执行方法划分

  • 直接数字签名
  • 仲裁数字签名

🕤 3.2.1 直接数字签名

  • 直接数字签名:数字签名的执行过程只有通信双方参与,并假定双方有共享密钥或接收方知道发送方的公钥。
  • 缺点是安全性取决于发送方密钥的安全性

🕤 3.2.2 仲裁数字签名

  • 发送方A对发往接收方的消息签名后,将消息和签名首先发给仲裁者
  • 仲裁者对消息和签名认证后,附加一个表示已通过认证的消息,一同发给接收方。认证消息是由仲裁方的私钥加密的原始消息和原始签名。
  • 缺点是整个过程中,仲裁方必须得到通信双方的高度信任

在这里插入图片描述

🕒 4. 信息隐藏技术

信息隐藏的目的是使敌手不知道哪里有秘密,它隐藏了信息的存在形式。

信息隐藏的通用模型:
在这里插入图片描述

🕘 4.1 分类

在这里插入图片描述

  • 隐蔽信道:既不是专门设计的也不打算用于信息传输的信道
  • 匿名:对通信参与者的身份甚至存在性的隐藏的操作和相应的方法
  • 版权标识:在载体中隐藏精心设计过的秘密消息,强调对主动攻击的识别能力和抵抗性
  • 隐写术:强调对被动攻击的抵抗性,无论嵌入的秘密消息是什么,都保证其不被察觉。

🕘 4.2 信息隐藏系统的特征

🕤 4.2.1 鲁棒性(健壮性)

鲁棒性指不因宿主文件的某种改动而导致隐藏信息丢失的能力。
所谓的改动包括传输过程中的信道噪音、滤波操作、重采样、有损编码压缩等。

🕤 4.2.2 不可检测性

不可检测性指隐蔽宿主与原始宿主具有一致的特性

🕤 4.2.3 透明性

利用人类视觉系统或听觉系统的特性,经过一系列隐藏处理,使目标数据没有明显的降质现象,而隐藏的数据却无法人为地看见或听见。

🕤 4.2.4 安全性

隐藏的信息内容应是安全的,最好经过某种加密后再隐藏,同时隐藏的具体位置也应是安全的,至少不会因格式变换而遭到破坏。

🕤 4.2.5 自恢复性

如果只从留下的片段数据,就能恢复隐藏信息,而且恢复过程中不需要宿主信息,这就是自恢复性。
这要求隐藏的数据必须具有某种自相似特性。

🕤 4.2.6 可纠错性

为了保证隐藏信息的完整性,使其在经过各种操作和变换后仍能很好的恢复,通常采取纠错编码方法。

🕘 4.3 数字水印

数字水印是信息隐藏中的重要技术之一。
定义:不被感知的在数字产品中嵌入信息的处理行为。

数字水印是依据信息隐藏的思想,将重要的、可认证的信息嵌入图像、视频、音频及文本文件等数字多媒体的内容中,成为难于感知的部分,但表面上并不影响产品的可视性或可读性。

根据需要,可以从加了水印的产品中检测预先嵌入的信息对产品的完整性及版权进行认证和证明。

应用:防止对产品的篡改和盗版。可以作为多媒体播放器的有条件进入的控制信号,阻止那些没有得到合法授权的团体或个人对产品的滥用和复制,从而达到对多媒体产品的跟踪保护。

练习题:
1、使用密码技术可以保证信息的【】,同时还可以保证信息的完整性和准确性,防止信息被篡改、伪造和假冒。
A.控制安全性
B.机密性
C.抗攻击性
D.网络服务正确性
2、消息认证是验证消息的【】,即验证数据在传送和存储过程中是否被篡改、重放或延迟等。
A.不可否认性
B.可用性
C.完整性
D.机密性
3、加密安全机制提供了数据的【】。
A.完整性和安全性
B.保密性和完整性
C.保密性和可控性
D.可靠性和安全性
4、( )密码体制,不但具有保密功能,并且具有鉴别的功能。
A.对称
B.非对称
C.私钥
D.混合加密体制
5、可以保证信息的机密性,完整性、准确性,防止信息被篡改、伪造和假冒的技术是()
A.密码技术
B.数据灾难与数据恢复技术
C.操作系统维护技术
D.数据库应用技术

答案:A、D、B、B、C

🕒 4. 身份认证技术

🕘 4.1 身份认证概述

身份认证也称为“身份验证”或“身份鉴别”,是指在计算机及计算机网络系统中确认操作者身份的过程。

身份认证的概念身份认证是系统审查用户身份的过程。
身份认证通过标识和鉴别用户的身份,提供一种判别和确认用户身份的机制。
计算机网络中的身份认证是通过将一个证据 (凭证)与实体身份绑定来实现的。

身份认证的方式:

  • 用户所知道的(What you know)。如要求输入用户的口令、密钥或记忆的某些动作等。
  • 用户所拥有的(What you have)。如U盾、智能卡等物理识别设备。
  • 用户本身的特征(What you are)。如用户的人脸、指纹、声音、视网膜等生理特征以及击键等行为特征。
    • 生理特征认证:如指纹识别、虹膜识别、人脸识别、声纹识别
    • 生物行为认证:如击键认证(利用一个人敲击键盘的行为特征进行身份认证)、步态匹配、心跳密码
  • 多因子信息

一般情况下,可以通过多个凭证(也有称多因子)来共同鉴别用户身份的真伪。

我们在银行ATM机上取款需要插入银行卡,同时需要输入银行卡密码,就是采用了双因子认证。

认证的因子越多,鉴别真伪的可靠性就越大。

在高安全等级需求的应用中,最好形成多因子认证机制。

身份认证的作用:身份认证与鉴别是信息安全中的第一道防线,对信息系统的安全有着重要意义。可以确保用户身份的真实、合法和唯一性。

在这里插入图片描述

访问控制和审计系统都依赖于身份认证系统提供的“认证信息鉴别和审计

在网络安全领域,将认证(Authentication)、授权(Authorization)、审计(Accounting)统称为AAA或3A。

  • 授权:当用户或实体的身份被确定为合法后赋予该用户的系统访问或资源使用权限。根据用户身份的不同,给不同的用户授予不同的权限,限制通过认证的用户的行为。
  • 审计:审计也称为记账 (Accounting) 或审核,出于安全考虑,所有用户的行为都要留下记录,以便进行核查。所采集的数据应该包括登录和注销的用户名、主机名及时间
  • 安全性评估:安全性评估 (security assessment) 是审计操作的进一步扩展。在安全性评估中专业人员对网络中容易受到入侵者攻击的部分进行内部检查,对网络存在的薄弱环节进行阶段性评估
    审计信息一般存放在日志文件中是对系统安全性进行评估的基础。

目前所使用的网络入侵检测、网络入侵防御、网络安全动态感知等系统,其工作依据主要来源于各系统和设备产生的日志信息。

四种方式总结:只有本身的特征是独一无二且不可伪造的,而其他几种方式都会存在安全风险。
基于智能卡的认证是一种双因素认证,也称为增强型认证

🕘 4.2 基于密码的身份认证技术

密码认证:也称为“口令认证”,它是计算机系统和网络系统中应用最早也最为广泛的一种身份认证方式。

密码=秘密

一次性口令认证是一种比传统口令认证技术更加安全的身份认证技术,是在登录过程中加入不确定因素,使每次登录时计算的密码都不相同,是一种相对简单的身份认证机制,可以简单快速地加载到需要认证的系统

🕤 4.2.1 一次性口令原理

  • 种子:认证服务器为用户分配的一个非密文的字符串,一用户对应一种子,种子在认证系统中具有唯一性。
  • 序号:指Hash函数的迭代次数,是系统通知用户将生成的本次口令在一次性序列中的顺序号。
  • 通行短语:它是只有用户知道的值,这个值是保密的。

通行短语和种子是不变的,序号是动态变化的;种子和序号是可以公开的,但通行短语是保密的。

动态口令认证的实现方式
1.时间同步方式
时间同步 (Time Synchronization) 是利用用户的登录时间作为随机数,连同用户的通行短语一起生成一个口令
2.挑战/应答方式
当客户端发出登录请求时,认证系统生成一个挑战信息发送给客户端。客户端使用某种Hash函数生成一个口令发送给认证系统,认证系统用同样的方法生成一个口令,通过比较验证身份。

在这里插入图片描述
挑战应答机制的实现过程
①客户向认证服务器发出请求,要求进行身份认证,结束;
②认证服务器从用户数据库中查询用户是否是合法的用户,结束
③认证服务器内部产生一个随机数,作为"提问”发送给客户,结束
④客户端将自己的密钥(通行短语)和随机数合并,使用单向Hash函数(如MD5算法)运算得到一个结果作为认证证据传给服务器(应答),结束;
③认证服务器使用该随机数与存储在服务器数据库中的该客户密钥(通行短语)进行相同的单向Hash运算,进行验证,结束。

3.事件同步方式
通过特定事件次序及相同的种子值作为输入,通过特定算法运算出相同的口令

事件动态口令是让用户的密码按照使用的次数不断动态地发生变化。

S/Key协议的实现过程
S/Key安全协议是经典的基于挑战/应答思想的一次性口令协议
S/Key采用了Hash算法将口令转化为密文进行传输,提高了认证的安全性
使用一次性密码 (即“一次一密”) 技术可以防止重放攻击的发生,这相当于用户随身携带一个密码本。

在这里插入图片描述

S/Key协议中缺少双向身份认证,很容易受到中间人攻击
S/Key也存在明文传输问题,认证信息很容易被篡改,无法抵抗小数攻击、改进型小数攻击以及多种攻击方式的组合攻击。

🕘 4.3 PKI技术概述

PKI的核心是要解决网络环境中的信任问题,确定网络环境中行为主体(包括个人和组织)身份的唯一性、真实性和合法性,保护行为主体合法的安全利益

公钥基础设施的要求
(1)安全策略,以规定加密系统在何种规则下运行;
(2) 产生、存储、管理密钥的产品;
(3) 如何产生、分发、使用密钥和证书的一整套过程。

PKI的安全功能:
(1) 保密性。保证信息的私有性
(2) 完整性。保证信息没有被篡改。
(3) 真实性。证明一个人或一个应用的身份(4)不可否认性。保证信息不能被否认。

PKI的组成:
在这里插入图片描述
在这里插入图片描述

证书策略:用于管理证书的使用
CPS:一些由商业证书发放机构 (CCA)或者可信任的第三方管理的PKI系统需要认证操作管理规范 (CPS)

PKI安全策略
(1)CA的创建和运作方式。
(2)证书的申请、发行、接收和废除方式。
(3)密钥的产生、申请、存储和使用方式。

认证机构CA
其作用包括:发放证书、规定证书的有效期和通过发布证书废除列表 (CRL)确保必要时可以废除证书

CA必须是各行业、各部门及公众共同信任的、认可的权威的、不参与交易的第三方网上身份认证机构。CA制定了一些规则,这些规则可以使申请和使用证书的用户确信该CA是可以依赖的。描述CA在各方面受约束的情况及运作方式的规则都被定义在CPS文件中。

如果一个CA没有CPS,人们会降低对该CA颁发的数字证书的信任程度。

注册机构RA提供用户和CA之间的一个接口,它获取并认证用户的身份,向CA提出证书请求。RA主要完成收集用户信息和确认用户身份的功能。

注册机构RA并不给用户签发证书,而只是对用户进行资格审查RA可以设置在直接面对客户的业务部门,如银行的营业部、机构认证部门等。

当然,对于一个规模较小的PKI应用系统来说,可把注册管理的职能由认证中心CA来完成。

证书发布系统:负责证书的发放目前一般要求证书发布系统可以Web方式与Internet用户交互,用于处理在线证书业务,方便用户对证书进行申请、下载、查询、注销,恢复等操作。

PKI应用

  • 在Web服务器
  • 浏览器之间的通信
  • 电子邮件
  • 电子数据交换
  • VPN
  • IPSec VPN
  • 安全电子邮件协议(SPMIME)

一个简单的PKI系统组成:

  • CA、RA和相应的PKI存储库
  • CA用于签发并管理证书;
  • RA可作为CA的一部分,也可以独立,其功能包括个人身份审核、CRL管理、密钥产生和密钥对备份等;
  • PKI存储库包括LDAP目录服务器和普通数据库,用于对用户申请信息、证书、密钥、CRL和日志等信息进行存储和管理并提供一定的查询功能

🕘 4.4 CA机构

如何管理密钥

  • 公钥需要在一定范围内公开
  • 共同信任的认证机构(CA)

认证机构 (CA)是整个网上电子交易等安全活动的关键环节主要负责产生、分配并管理所有参与网上安全活动的实体所需的数字证书

CA是一个具有权威性、可信赖性和公正的第三方信任机构,专门解决公开密钥机制中公钥的合法性问题。

CA的主要职能
(1)制订并发布本地CA策略。但本地CA策略只能是对上级CA策略的补充,而不能违背。
(2) 对下属各成员进行身份认证和鉴别
(3)发布本CA的证书,或代替上级CA发布证书
(4)产生和管理下属成员证书。
(5)证实RA的证书申请,向RA返回证书制作的确认信息,或返回已制作好的证书。
(6)接收和认证对它所签发的证书的撤销申请。
(7)产生和发布它所签发的证书和CRL。
(8)保存证书信息、CRL信息、审计信息和它所制订的策略。

在这里插入图片描述

安全服务器:是面向证书用户的提供安全策略管理的服务器,该服务器主要用于提供证书申请、浏览、证书撤销列表 (CRL)以及证书下载等安全服务。

在这里插入图片描述

CA服务器:是整个认证机构的核心,负责证书的签发。CA首先产生自身的私钥和公钥 (密钥长度至少为1024位),然后生成数字证书,并且将数字证书传输给安全服务器。CA还负责为操作员、安全服务器以及注册机构服务器生成数字证书。

在这里插入图片描述

LDAP服务器:提供目录浏览服务,负责将注册机构服务器传输过来的用户信息以及数字证书加入服务器上。这样其他用户通过访问LDAP服务器就能够得到数字证书

数据库服务器:是认证机构中的关键组成部分用于认证机构中数据 (如密钥和用户信息等)、日志等统计信息的存储和管理。

CA之间的信任关系
认证机构 (CA)用于创建和发布证书,但一个CA一般仅为一个称为安全域的有限群体发放证书。每个CA只覆盖一定的作用范围不同的用户群体往往拥有各自不同的CA。

在X.509规范中对于信任的定义是:
如果实体A认为实体B会严格地按照A对它的期望那样行动,我们就说A信任B
信任关系是PKI系统中的重要组成部分,用来研究用户与CA的信任关系以及CA间的相互信任关系。

在这里插入图片描述

这些关系被结合起来形成信任桥,使得来自不同信任域的用户通过桥CA相互作用其中,桥CA不是一个树型结构的CA,也不像分布式信任模型中的CA,它不直接向用户颁发证书。

根CA是一个信任锚,而桥CA只是一个单独的CA而非信任锚。
桥CA与不同的信任域之间建立对等的信任关系,允许用户保留他们自己的原始信任锚。
在这里插入图片描述

Web信任模型:构建在Web浏览器的基础上,浏览器厂商在浏览器中内置了多个根CA,每个根CA相互间是平行的,浏览器用户同时信任多个根CA并把这些根CA作为自己的信任锚。

Edge的信任锚:
在这里插入图片描述

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

🕘 4.5 证书及管理

证书的概念
数字证书也称为数字标识。它提供了一种在Internet等公共网络中进行身份验证的方式是用来标识和证明网络通信双方身份的数字信息文件。
在这里插入图片描述

数字证书的格式

  • X.509:为数字证书及其CRL格式提供了一个标准
  • WTLS (Wireless Transport Layer Security,无线安全传输层):是无线应用协议中提供数据安全传输的一种服务。
  • PGP (Pretty Good Privacy,优良保密协议):是一系列采用公钥加密体制、用于消息加密与验证的应用程序。

在这里插入图片描述

证书序列号指定由CA分配给证书的唯一数字型标识符。

证书申请和发放

  • 在线申请:通过浏览器、电子邮件等在线方式来申请证书,用于申请普通用户证书。
  • 离线方式:通过需要到认证结构证书受理点办理证书申请,用于比较重要的场合

证书撤销利用周期性发布机制,主要有证书撤销列表( Certificate Revocation Lists ,CRL)
利用在线查询机制,如在线证书状态协议(Online Certificate Status Protocol,OCSP)

证书撤销列表

  • 为应用程序和其他系统提供了一种检验证书有效性的方式
  • 任何一个证书撤销以后,认证机构CA会通过发布CRL的方式来通知各个相关方。
  • 在PKI系统中,CRL是自动完成的,而且对用户是透明的。
  • CRL中并不存放撤销证书的全部内容,只存放证书的序列号,以便提高检索速率。

在线证书状态协议 (OCSP)

  • 是IETF工作组颁布的用于检查数字证书在当前时刻是否有效的标准协议。
  • 该协议提供给用户一条便捷的证书状态查询通道,使PKI体系能够更有效、更安全地应用于各个领域。
  • OCSP可以作为周期性CRL的一种替代机制或者补充机制,它对于获得一个证书撤销状态的及时信息是必要的。
  • 与CRL相比,OCSP对获得证书撤销信息的及时性要强,所以OCSP一般用于网上银行、网上证券、电子政务中的某些关键部门。

证书更新
1.与证书相关的密钥可能达到它有效的生命终点
2.证书即将到期
3.证书中的一些属性发生了改变,而且必须进行改变。

数字证书类型
(1) 机构证书。
(2) 机构员工证书
(3) 个人证书。
(4) 代码签名证书
(5) SSL服务器证书。

🕘 4.6 PMI技术概述

授权管理基础设施:是国家信息安全基础设施的一个重要组成部分,目标是向用户和应用程序提供授权管理服务,提供用户身份到应用授权的映射功能,提供与实际应用处理模式相对应的、与具体应用系统开发和管理无关的授权和访问控制机制,简化具体应用系统的开发和维护。

PMI的概念:PMI是在PKI发展过程中为了将用户权限的管理与其公钥的管理分离,由IETF提出的一种标准。

PKI证明用户是谁,而PMI证明这个用户有什么权限、能干什么

在这里插入图片描述

属性权威AA,为不同的用户和机构进行属性证书(AC)创建、存储、签发和撤销,负责管理AC的整个生命周期。

属性证书库用于存储属性证书,一般情况下采用LDAP目录服务器。

属性证书 (AC)是PMI的权威机构 (即属性权威AA)签发的将实体与其享有的权限属性捆绑在一起的数据结构,权威机构的数字签名保证了绑定的有效性和合法性。

在这里插入图片描述
PMI系统框架:

  • 权威源(SOA)
  • 属性权威(AA)
  • AA代理点

在这里插入图片描述

AA代理点的职责:主要包括应用授权服务代理和应用授权审核代理等,负责对具体的用户应用资源进行授权审核,并将AC的操作请求提交到AA进行处理。

访问控制执行者:是指用户应用系统中具体对授权验证服务的调用模块。实际上访问控制执行者并不属于授权管理基础设施(PMI)的部分,但却是授权管理体系的重要组成部分。

访问控制执行者的主要职责是:将最终用户针对特定的操作授权所提交的授权信息 (AC)连同对应的身份验证信息 (公钥证书)一起提交到AA代理点,并根据AA返回的授权结果,进行具体的应用授权处理。

基于角色的授权管理模式
(1)授权管理的灵活性。
(2)授权操作与业务操作相分离
(3)多授权模型的灵活支持。

从应用角度来看,PMI和PKI的发展是相辅相成并互为条件的。可以将PMI和PKI绑定在一起也可以让PMI与PKI在物理上分开

🕘 4.7 Kerberos协议

Kerberos系统

  • 是MIT开发的基于TCP/IP网络设计的可信第三方认证协议
  • 是为基于TCP/IP的Internet和Intranet设计的安全认证协议
  • 在Client/Server模式下,以可信赖的第三方KDC (密钥分配中心)实现用户身份认证
  • 在认证过程中,Kerberos使用对称密钥加密算法

在Kerberos系统中设置了两个服务器:认证服务器和票据分配服务器

  • 认证服务器AS:为用户提供身份认证,将用户的密码保存在KDC的数据库中
  • 票据分配服务器TGS:向已经通过AS认证的用户发放用于获取资源服务器上提供的服务的票据

在这里插入图片描述

  • 密钥分配中心:使用一个可依赖的第三方KDC为需要认证的用户提供对称密钥;为每一个用户提供的对称密钥只有该用户和KDC知道;在KDC中还有一个主密钥KKDC,在KDC内部使用。
  • 服务器端:为用户端提供资源的服务器,当用户访问这些资源时需要进行身份认证
  • 用户端:需要提供身份认证的一方,有可能是用户账户,也有可能是设备的地址。

票据

  • 在身份认证服务器 (AS和TGS) 与资源服务器之间传递用户的身份信息
  • 将身份认证器对用户的信任信息转发给资源服务器
  • 票据在服务器之间传递时都是进行加密的

时间戳

  • 用户可以通过票据中的时间戳,指明票据发出的时期、时间以及它的生命周期等来得知票据的有效性
  • 不同设备之间的时钟需要进行精确同步,或提供必要的时钟偏差
  • 保证票据、密码等信息安全传输中所需要的密钥

在这里插入图片描述

(1)客户端在计算机上向AS发送一个包含客户端名称 (用户名)、资源服务器名称的认证信息。
(2) 随机生成一个加密密钥作为协议阶段客户端与TGS通信的新会话密钥。构造一个“票据许可票据”并用TGS的密钥加密,用KC加密新会话密钥与“票据”一起发送到客户端。客户端计算机利用用户输入的密码生成密钥。
(3) 客户端向TGS发送一个包含访问TGS时使用的“票据许可票据"需要访问的资源服务器名称、客户端名称及客户端密钥KC的信息
(4) TGS用自己的密钥验证“票据许可票据”,获得②中构造的会话密钥。
从数据库中获得资源服务器的密钥KS后,随机生成客户端与资源服务器之间通信时使用的会话密钥和服务许可票据”。

票据的作用是在身份认证服务器(AS和TGS)与资源服务器之间安全地传递用户的身份信息,同时也将身份认证器对用户的信任信息转发给资源服务器。

(5)和(6)客户端向资源服务器发送包含有认证者身份和“服务许可票据”(Tickettv)的信息,资源服务器通过解密获得客户端的信息,完成认证。

Kerberos协议总结

  • Kerberos是基于对称加密来实现认证的
  • 在Kerberos中会对每一个用户分配一个密钥对
  • 在Kerberos系统中只要求使用对称密码,而没有对具体算法和标准作限定。

Radius认证协议

  • 是一种应用于分布式环境的C/S架构的信息交互协议,常用于对安全性要求较高且允许远程用户访问的网络环境中。
  • 最初的设计目的是为拨号用户进行认证和计费,经过多次改进,形成了一项通用的认证计费协议
  • 认证机制灵活,可以采用PAP (口令认证协议)、CHAP(挑战-握手认证协议)或者UNIX登录认证等多种方式。

Radius在AAA架构中的应用

  • NAS作为RADIUS客户端,向远程接入用户提供接入并与RADIUS服务器交互的服务。
  • RADIUS服务器上存储着用户的身份信息、授权信息和访问记录,对用户进行认证、授权和审计 (记账)服务

Radius协议总结

  • RADIUS客户端和RADIUS服务器之间认证消息的交互是通过共享密钥的参与来完成的,共享密钥不能通过网络来传输,增强了信息交互的安全性。
  • 利用共享密钥对RADIUS报文中的密码进行了加密防止用户密码在不安全的网络上传递时被盗取

在这里插入图片描述

🕘 4.8 统一身份认证技术

基手SAML2.0的身份认证

  • 安全断言标记语言是身份认证领域出现较早的基于XML语言的信息架构
  • SAML提供了基于Web方式的单点登录解决方案

SAML规范的三种角色

  • 用户代理
  • 身份提供者(IDP)
  • 服务提供者(SP)

SP接收到访问请求后向IdP发送身份认证请求,IdP要求用户提供能够证明其身份的信息,并以此作为其合法性的断言。SP从IdP获取身份断言从而决定是否提供服务

SAML2.0规范
1.断言
分为认证、属性和授权3种类型,认证确认用户身份,属性包含用户信息,授权确认用户得到授权
2.协议
协议定义了SAML如何请求和接收断言,主要涉及请求(request)和响应 (respond) 两种信息类型
3.绑定
定义了如何将SAML请求和响应映射到标准的报文和协议上
简单对象访问协议 (SOAP)是SAML中一个重要的绑定
4.配置
已定义的特定应用实例的具体表现,它由断言、协议和绑定组合而成。

在这里插入图片描述

基于OAuth2.0的身份认证

  • OAuth (Open Authorization,开放授权)是一个开放标准的联合协议,旨在帮助用户将受保护的资源授权给第三方使用,且支持细粒度的权限控制。
  • 在OAuth协议的整个授权过程中使用“访问令牌”和数字签名方式,提高了协议的安全性。
  • 任何第三方都可以使用OAuth AS,任何服务提供者都可以组建自己的OAuth授权服务系统。

OAuth2.0定义4种不同角色

  • 资源拥有者RO:RO是指能够对受保护资源进行授权的实体。授权操作方式可以是“在线授权”或“离线授权”
  • 资源服务器RS:RS用于存放受保护资源,并处理对资源的访问请求。
  • 客户端Client:指非客户端的第三方应用,获得RO的授权许可后可以去访问由RO管理的在RS上的资源。
  • 授权服务器AS:AS用于对RO的身份进行验证和资源授权管理,并颁发访问令牌。

OAuth标准主要针对个人用户对资源的开放授权,目前多应用于SNS环境中

因其的开放性,公有云计算环境既可以直接使用SNS中的OAuth授权服务系统,在私有云环境也可以组建自己的授权服务系统

基于OpenID的身份认证

是一个以Internet框架为基础的数字身份认证规范
以URI来标识用户身份的唯一性

在OpenID认证过程,请求/应答信息通过https协议在公共网络中传输,OpenID认证服务器成为整个认证的中心。

  • identifier标识符:为http/https形式的URI或XRI,XRI是一套与URI兼容的抽象标识符体系
  • RP依赖方:是需要对访问者的身份进行验证的Web系统或受保护的在线资源,依赖OP的身份认证服务
  • OpenID提供者:即OpenID认证服务器,在为用户提供和管理标识符的同时,还为用户提供在线身份认证服务,是整个OpenID系统的核心。

采用OpenID的网络

  • 用户向OP申请一个标识符,并访问受OpenID保护的RP时,RP会将访问重定向到OP
  • OP通过标识符对访问者的身份进行验证,无误后将用户访问返回到RP

在这里插入图片描述

在合理的时间范围内,用户登录安全逻辑域中其他受该OP保护的RP时,OP发现该用户的登录信息已经在缓存区中并与之建立了关联,不会再要求用户提交认证信息,而是直接将结果告知RP,实现了SSO

🕒 5. 实验——密码技术

🕘 5.1 实验原理

加密体制分为对称加密和公钥加密。

对称加密也称为常规加密和单钥加密,通信双方必须在安全通信之前协商好密钥,然后才能用该密钥对数据进行加密和解密,整个通信安全完全依赖于密钥的安全。对称加密分为分组加密和流加密两种形式。

公钥加密使用的基本工具是数学函数,由于它是不对称加密,使用两个独立的密钥,因此很好地解决了密钥分配和数字签名的问题。两个密钥分别是公钥和私钥,公钥可以公开提供给其他人使用,而只有自己才知道私钥,使用其中一个密钥进行加密,使用另一个密钥进行解密。公钥加密的基本步骤如下。
①每个用户都生成一对密钥用来对消息加解密。
② 每个用户把两个密钥的一个放在可公开的机构或文件中,这个密钥就是公钥,另一个密钥自己保存。每个用户都可以收集其他人的公钥。
③如果用户B希望给用户 A发送加密消息,B可以使用A的公钥进行加密。
④当用户 A收到这条消息时,使用自己的私钥进行解密,因为只有A才知道自己的私钥,所以其他收到消息的人无法解密消息。

🕘 5.2 实验步骤

GnuPG(GNU Privacy Guard,GPG)是 Linux下基于 PGP 机制的开源加密及签名软件,是实现安全通信和数据存储的一系列工具集,可以实现数据加密、数字签名,其常用指令选项及含义如下表所示。

指令含义指令含义
–gen-key生成公钥和私钥对-e/–encrypt加密文档
–list-keys显示公钥列表-d/–decrypt解密文档
-K显示私钥列表-s/–sign签名某个文档
-c使用对称加密加密文档–verify签名验证
-a生成ASCII码形式的加密 文档–export导出密钥到某个文档
-u/–local-user指明使用哪个用户的私钥 签名-r/–recipient指明公钥加密的接收方

🕤 5.2.1 应用GnuPG生成密钥对

①在Kali的终端窗口输入 gpg --full-generate-key,生成密钥对。

在这里插入图片描述

选择第(2)项,接着GnuPG提示选择密钥长度,此处设置为2048比特。然后GnuPG提示指定密钥有效期,此处设置密钥永不过期,最后输入y确认,完成密钥参数设置。

在这里插入图片描述

为密钥对设置名称、邮箱地址和备注信息,GnuPG使用名称和邮箱作为每个密钥对的唯一标记。在设置完成时,GnuPG提示名称、邮箱或备注是否还需要修改,用户也可以输入q选择放弃生成密钥对。输入O,表示上述信息已经确认,GnuPG会弹出对话框,要求用户输入保护私钥的对话框。重复输入两次相同的口令,然后单击OK按钮,GnuPG开始生成密钥对过程。在这个过程中,需要用户不停地在键盘上键入随机字符,直到密钥对成功生成为止,密钥对最终生成成功。
在这里插入图片描述

③输入gpg -K和 gpg --list-keys 可以分别查看系统中已经生成的私钥列表和公钥列表
在这里插入图片描述

Q:为什么生成密钥对时需要输入口令?
A:因为GnuPG使用口令来保护你的私钥。私钥是用于签名和加密的,因此保护私钥的安全非常重要。

要导出公钥,可以使用以下命令:

gpg -a -o [新文件名] --export [名称]

在这里插入图片描述

要导出私钥,你可以使用以下命令:

gpg -a -o [新文件名] --export-secret-key [名称]

会提示需要密码
在这里插入图片描述
在这里插入图片描述

🕤 5.2.2 应用GnuPG实现对称加密

GnuPG使用-c参数实现对称加密,对称加密指加密和解密使用相同的密钥。用户输入的口令被 GnuPG 转换为加密密钥,GnuPG 随后采用内置的对称加密算法对文档进行加密。解密时,用户需要输入相同的口令,GnuPG将其转换为解密密钥,然后采用内置的解密算法对文档进行解密。

①创建一个文档或者使用已有文档。示例创建文档1234.c并随机输入一些内容
在这里插入图片描述

②输入gpg -c -a -o 1234.c.gpg 1234.c,对1234.c进行对称加密,生成文本形式的加密文档1234.c.gpg,-c参数指明使用对称加密,-a参数指明生成文本形式的文档。

在这里插入图片描述

输入两次相同的口令并单击OK按钮后,该口令会被GnuPG转换为加密密钥对文档进行加密。输入 more 1234.c.gpg查看加密文档1234.c.gpg,结果是没有任何意义的随机字符串。

③解密文档:输入gpg -d 1234.c.gpg对文档进行解密,
在这里插入图片描述

输入与加密过程相同的口令,单击OK按钮后,GnuPG会把解密后的明文信息输出至终端窗口。可以看出,GnuPG默认使用AES算法进行对称加密,并且使用256位密钥。如果想把解密后的明文存成文件,可以使用-o参数。

🕤 5.2.3 应用GnuPG实现公钥加密和数字签名

此处先创建两个用户 Alice 和 Bob12 用于后续模拟实验
在这里插入图片描述

①公钥加密:输入gpg -e -r Alice -a -o 1234.c.gpg 1234.c,使用 Alice 的公钥对1234.c进行公钥加密,生成文本形式的加密文档1234.c.gpg。-e参数指明公钥加密,-r参数指明使用谁的公钥进行加密。输入 more 1234.c.gpg 查看对称加密后的文档,内容是一堆完全无意义的随机字符串。

在这里插入图片描述

②私钥解密:输入gpg -d 1234.c.gpg 对文档进行解密,GnuPG会弹出对话框,提示输入生成密钥对时输入的口令,GnuPG把口令转化为解密密钥,解密存储在文件中的私钥,然后使用该私钥并应用该私钥对应的解密算法对文档进行解密。

在这里插入图片描述

③私钥签名:输入gpg -s -u Alice -a -o 1234.c.gpg 1234.c,使用 Alice 的私钥对1234.c进行签名,生成文本形式的签名文档1234.c.gpg,-s参数指明对文档签名,-u指明使用谁的私钥。GnuPG把口令转化为解密密钥,解密存储在文件中的私钥,然后使用该私钥,并应用该私钥对应的加密算法对文档进行签名。

在这里插入图片描述

④签名验证:输入 gpg --verify 1234.c.gpg,验证1234.c.gpg的签名,可以看出该文档由Alice签名,签名时间为2024年3月27日,签名算法是DSA。

在这里插入图片描述

⑤公钥加密和私钥签名:输入gpg -e -r Alice -a -o 1234.c.gpg -s -u Bob12 1234.c,使用Alice的公钥加密,使用Bob12的私钥签名,对文档1234.c进行加密和签名,生成文本形式的加密签名文档1234.c.gpg。

在这里插入图片描述

⑥私钥解密和签名验证。输入gpg -d -v 1234.c.gpg的同时进行解密和签名验证,首先指明该文档使用Alice的公钥进行加密,并且由Bob12的私钥进行签名,然后GnuPG使用Alice的私钥进行解密,最后使用Bob12公钥验证签名,确认文档确实使用Bob12的私钥签名。

在这里插入图片描述

Q:为什么使用公钥时不需要输入口令,而使用私钥时需要输入口令?
A:私钥是用户身份的证明,自然需要口令。

Q:什么时候使用公钥?什么时候使用私钥?
A:使用公钥的情况:当你想要将信息加密并发送给某人,而只有这个人能够解密时,你需要使用他们的公钥进行加密。例如,你想要向某个人发送一个秘密消息,你可以使用他们的公钥对消息进行加密,然后他们使用私钥解密。此外,公钥也常用于数字签名的验证,接收者使用发送者的公钥来验证消息的真实性。
使用私钥的情况:当你想要加密信息,确保只有你自己或者你授权的人能够解密时,你需要使用私钥进行加密。例如,你想要保护你的私人文件,你可以使用私钥对文件进行加密,然后只有拥有相应私钥的人才能解密。此外,私钥也常用于数字签名的创建,发送者使用自己的私钥对消息进行签名,接收者再使用发送者的公钥来验证签名的真实性。
总的来说,公钥用于加密信息或验证数字签名,私钥用于解密信息或创建数字签名。


OK,以上就是本期知识点“密码技术基础与身份认证技术”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页

图解密码技术【读书笔记+知识总结】 在讲解密码的时候需要为参与者和计算机取一个名字,以此显得不那么枯燥无味![在这里插入图片描述](https://img-blog.csdnimg.cn/f66b8434591f4c92b46b902d712316a6.png)DES ( Data Encryption Standard ) 是 1977 年美国联邦信息处理标准( FIPS ) 中所采用的一种对称密码( F1PS 46-3 )D DES — 直以来被美国以及其他国家的政府和银行等广泛使用。三重 DES ( triple-DES ) 是。 阅读详情

相关推荐

等保测评中的密码技术与密钥管理

在信息安全领域,等保测评(信息安全等级保护测评)是一项重要的安全评估活动,旨在评估信息系统的安全性,并根据评估结果给予相应的安全等级。这一过程中,密码技术与密钥管理发挥着至关重要的作用。本文将详细探讨等保测评中的密码技术应用及密钥管理的重要性与实现方法。

A526847的博客 1234

密码技术学习一:密码

本文通过学习《图解密码技术》总结了一下基础密码方面的知识,重点对对称密码和公钥密码及非对称密码做了讲解,介绍了常见的密码算法及概念如DES、AES、混合密码系统等

qq_35515283的博客 1019

密码应用安全性评估实施要点之二密码技术应用要求与实现要点(2)

物理和环境安全、网络和通信安全要求与实现要点1 物理和环境安全的要求与实现要点1) 身份鉴别2) 电子门禁记录数据完整性3) 视频记录数据完整性4) 密码模块实现2 网络和通信安全的要求与实现要点① 身份鉴别② 内部网络安全接入③ 访问控制信息完整性④ 通信数据完整性⑤ 通信数据保密性⑥ 集中管理通道安全⑦ 密码模块实现 1 物理和环境安全的要求与实现要点 物理和环境安全密码应用总则如下: ①采用密码技术实施对重要场所、监控设备等的物理访问控制。 ②采用密码技术对物理访问控制记录、监控信息等物理和环境的敏感

Lapedius的博客 1万+

密码技术介绍

密码学领域

qq_61863348的博客 2637

网络安全必会的基础知识

一、前言 提到网络安全,一般人们将它看作是信息安全的一个分支,信息安全是更加广义的一个概念:防止对知识、事实、数据或能力非授权使用、误用、篡改或拒绝使用所采取的措施. 说白了,信息安全就是保护敏感重要的信息不被非法访问获取,以及用来进—步做非法的事情。网络安全具体表现在多台计算机实现自主互联的环境下的信息安全问题,主要表现为:自主计算机安全、互联的安全(实现互联的设备、通信链路、网络软件、网络协议)以及各种网络应用和服务的安全。 这里提到了一些典型的网络安全问题,可以来梳理一下: 1.IP安全:

qfliweimin的博客 3141

基于密码的认证:现代网络安全中的基本组成部分

作者:禅与计算机程序设计艺术 1.简介 1.1 定义、背景及目的 在互联网时代,人们越来越依赖于计算机和互联网设备进行各种事务性工作,特别是在金融、电子商务、银行等领域,越来越多的人开始重视信息安全。信息安全的第一道防线就是网络安全,网络安全的保障和维

AI天才研究院 2170

安全防御之密码技术,从零基础到精通,收藏这篇就够了!

密码学是信息安全的基础技术之一,是达到信息系统安全等级保护要求的核心技术支持,在身份验证、访问控制、文件加密、数据加密和安全传输中都得到广泛应用。其核心目标是保证信息的机密性、完整性和可用性。密码学包括加密和解密两个部分。一般过程是:发送方通过加密算法,将可读的文件(明文)变换成不可理解的乱码,即密文,然后传输给接收方;接收方接收密文之后,通过解密算法进行解密,获得明文。密码技术的实施过程,支持等级保护在机密性、完整性、认证性和非否认性等方面的要求。

Button12138的博客 1209

网络安全技术

它们提供了新的工具和方法来处理和保护敏感信息,同时也带来了一些新的挑战,如量子错误纠正和量子噪声的控制。目前,量子技术仍处于快速发展和探索阶段,但已经引起了广泛的关注,并在学术界和工业界进行了大量的研究和实验。资源消耗攻击:攻击者利用目标系统的软件或协议漏洞,发送特定的请求或恶意代码,以消耗目标系统的处理能力、内存或存储资源,导致系统崩溃或无法响应合法用户的请求。(8)其他应用安全技术。攻击使用分布式网络中的多个计算机、服务器或物联网设备,同时向目标系统发送大量的请求或攻击流量,以超过目标系统的处理能力。

A 3386

AD20丝印层导入图片logo保姆级教程(附黑白预览避坑技巧)

本文提供了一份详尽的AD20丝印层导入图片Logo的实战指南。核心在于将图片预处理为高质量的单色BMP位图,并独家分享了利用Windows画图工具进行“黑白预览”的关键技巧,以提前规避转换失真。教程涵盖了从脚本获取、图片处理、参数设置到生产规范的完整流程,帮助硬件工程师高效、准确地在PCB的Top Overlay层添加个性化标识。

weixin_29194255的博客 386

Vue3 + MQTT.js 实现 SCADA 实时数据通信:从不稳定到稳定的完整实践

本文介绍了SCADA组态引擎开发中MQTT协议的应用及优化实践。项目采用MQTT协议实现工业设备数据采集与可视化,但面临连接不稳定、数据格式多样化和数据绑定复杂三大问题。针对MQTT连接问题,分析发现超时设置过短(原8秒)、缺少客户端超时配置和心跳机制是主要原因。优化方案包括:协议转换(mqtt://→ws://)、双重超时保护(15秒手动+30秒客户端)、60秒心跳间隔等,显著提升了连接稳定性。通过完整代码实现展示了连接配置、认证处理和错误处理机制,为物联网数据传输提供了可靠解决方案。

weixin_36794508的博客 1398

广电技术能手网络安全学习笔记(一)

广电技术能手网络安全学习笔记

mkdircharlotte的博客 1378

不用变压器也能联网?手把手教你PHY芯片直连的3种实用方案

本文详细介绍了PHY芯片直连的3种实用方案,帮助开发者在物联网设备中实现更经济、更精简的网络连接设计。通过分析电压驱动型和电流驱动型PHY的核心原理,提供具体的电路配置和优化建议,确保信号质量的同时节省成本和空间。

smartcontract5的博客 332

信息安全导论 无线网络安全 密码技术及应用

指对信息保密性、完整性、可用性或合法使用的潜在危害,分为两类:::::无中心、自组织、多跳通信,但面临::: SFC。

一些知识和经验 887

华为OD机试真题 新系统 2026-07-22 Java&Go&C 实现【最小代价完成论文评审】

某校有 n 篇论文需要分配给教师评审。 每篇论文 i 可由 files[i] 对应的教师列表中任一教师评审。 每篇论文至少需要一名教师评审。 每位教师 t 不论被分配多少篇论文,其评审费用固定为 cost[t]。 请给出参与评审教师数量最少时的总费用。 如果存在多种方案满足教师数量最少,则选择总费用最小的方案。

MISAYAONE的博客 148

10、贝叶斯曲线拟合与预测分布详解

本文详细介绍了贝叶斯曲线拟合与预测分布的核心概念与计算方法。从最大似然估计出发,引入参数的先验分布,推导出后验分布与最大后验估计,并进一步展示如何通过积分获得完整的预测分布。文章解析了预测分布中均值与方差的构成,强调贝叶斯方法在量化不确定性方面的优势,涵盖金融、医疗、气象等实际应用场景。最后总结了操作步骤与未来研究方向,帮助读者系统掌握贝叶斯方法在回归问题中的应用。

android的专栏 104

网络安全技术及应用第3版 主编贾铁军等——教材习题 期末重点 复习题 知识提炼(第1章 网络安全基础)

参考教材:网络安全技术及应用 第3版 主编贾铁军等 写此文是为了便于集中式 有重点 突击复习,可以打印出来,便于识记背诵。 第1章 网络安全基础填空题简答题论述题 填空题 网络安全的目标 是在计算机网络的 信息传输、存储与处理 的整个过程中,提高(物理上、逻辑上)的防护、监控、反应恢复和 对抗 的能力。 利用网络安全模型可以构建(网络安全体系和结构),进行具体的网络安全方案的制定、规划、设计和实施等,也可以用于实际应用过程的 描述和研究。 简答题 1)计算机网络安全涉及到哪些科目? 计算机网络安全是一门涉

日熙的博客 4930

专为AI打造的浏览器:内存占用仅为Chrome的1/9、比Chrome快11倍(Docker部署教程,支持飞牛nas等服务器部署)

🚀 专为AI打造的无头浏览器来了! 用Zig从零构建,内存仅Chrome的1/9,速度快11倍,原生CDP协议支持Docker部署,适合爬虫、自动化测试和AI代理应用。✨

XiaoqiangClub的博客 731

网络安全技术学习之网络安全概述

注:本文内容全部参考自清华大学出版社的《网络攻防技术与实战》(郭帆编著) 文章目录1.1网络安全的定义1.2网络系统面临的安全威胁1.2.1恶意代码1.2.2远程入侵1.2.3拒绝服务攻击1.2.4身份假冒1.2.5信息窃取和篡改1.3网络安全研究的内容1.3.1网络安全体系1.3.2网络攻击技术1.3.3网络防御技术1.3.4密码技术应用1.3.5网络安全应用 1.1网络安全的定义 网络安全定义:在分布式网络环境中对信息载体和信息的处理,传输,存储,访问提供安全保护,以防数据和信息内容遭到破坏、更改、和泄

qq_40745045的博客 1271

全网唯一OpenCyphal/UAVCAN教程(8)libcanard介绍

当Cyphal里,这个结构体代表一条完整的Cyphal消息,之后我们会根据metadata里提供的元信息,其实就是消息ID,调用对应的反序列化函数,将payload还原成具体的Cyphal消息。用于构造一个新的发送队列,原则上一个can物理接口需要分配一个发送队列,如果它们的MTU大小一致,是可以共用一条的。这个库不包含IO层,是平台无关的,意义是没有实现具体的数据收发,仅提供将发送出去的Cyphal消息转成can帧,以及将收到的can帧转成Cyphal消息。返回值是这条消息拆解成的can帧的数目。....

二进制君 2404

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

车联网中密码技术的探究

目录 一、发展 二、面临的威胁 三、密码技术在车联网中的应用 四、国密算法比较 五、总结 一、发展 物联网的实践最早可追溯到1990年施乐公司的网络可乐贩售机——Networked Coke Machine。 1995年比尔盖茨在《未来之路》一书中也曾提及物联网, 1999年美国麻省理工学院(MIT)的Kevin Ash-ton教授首次提出物联网的概念,美国麻省理工学院建立了“自动识别中心(Auto-ID)”,提出“万物皆可通过网络互联”,阐明了物联网的基本含义。早期的物联网是依托射频识别

qq_27248929的博客 2145

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

网络安全技术及应用第3版 主编贾铁军等——教材习题 期末重点 复习题 知识提炼(第6章 身份认证与访问控制)

参考教材:网络安全技术及应用 第3版 主编贾铁军等 第6章 身份认证与访问控制填空题简答题论述题 填空题 身份认证是 计算机网络系统的用户在进入系统或访问不同 保护级别 的系统资源时,系统确认该用户的身份是否___、合法 和 唯一 的过程。 ——真实 访问控制包括三个要素,即 主体、客体 和___。 ——控制策略 访问控制的主要内容包括___、控制策略实现 和 审计 三个方面。 ——认证 访问控制模式有三种模式,即___、强制访问控制MAC 和 基于角色的访问控制RBAC。 ——自主访问控制DAC 计算机

日熙的博客 2184

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

筑牢电力网安防线:密码技术应用全景

密码技术在电力行业的应用是保障国家关键基础设施安全的核心环节。

SCIS588的博客 1265

五、信息安全之密码技术应用(由浅入深的笔记整理)

​​本篇文章讲解信息安全的密码技术应用 密码技术应用(网络安全的核心建立在密码学理论和技术基础之上) 密码技术有密码算法设计、密码分析、安全协议、身份认证、数字签名和密钥管理 密码技术的作用是实现机密性、完整性、可用性、可控性目标 应用重点 ①密码学在保密性方面的应用 ②对称密码体制和公钥密码体制 ③认证技术和公钥基础设施 密码学与密码体制 密码编码:研究如何构造一个符合安全要求的密码系统。 密码分析:试图破译加密算法和密钥。 发展阶段 古典密码学:~1949,数据安.

Doong0306的博客 2648
上一篇: 【网络安全技术】——Kali Linux环境部署
下一篇: 【软件工程导论】——Visio与StarUML的安装
HinsCoder
博客等级 码龄5年 1万+粉丝 220原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值