惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 软件心理学工程师

后量子密码学(post-quantum cryptography):为什么重要以及如何使用 SpringBoot集成resilience4j进行熔断和一个响应式编程的问题 凤凰项目&DevOps实践指南 OAuth2和OpenID API横向越权问题的分析和解决 初识RAG 基于AWS的密钥管理系统 加密算法的使用场景 Linux透明大页(Transparent Huge Pages)对ES性能对影响 《java8 in action》读书笔记 ES索引的一些长度限制 初识redis Elasticsearch慢查询故障诊断 Elasticsearch搜索调优 elasticsearch基础知识杂记 elasticsearch.yml 常用参数说明 linux log rotate elasticsearch local debug环境搭建 CAP碎碎念 彻底删除kafka topic步骤
密钥管理碎碎念
软件心理学工程师 · 2026-03-04 · via 博客园 - 软件心理学工程师

密码学基础概念
哈希函数:强单向函数,提供数据弱完整性保证,作为构件其他密码学原语的组件,将任意长度的输入值压缩为固定长度的输出值,易于计算。


消息认证码(MAC, Message Authentiation Code)旨在提供数据源身份认证。

为什么需要Mac?
如果只用对称加密,Alice和Bob共享一个对称密钥K,Alice加密一条消息,只有Bob能解密,是不是肯定没有其他人以任何方式可以篡改消息?
答案并不总是肯定的。比如在AES-ECB模式下,消息发送给Bob的过程中,拦截密文的攻击者无法确定明文,因为他不知道密钥K,但攻击者可以将密文分组按铃重顺序重新排列,或者删除一个或多个密文分组,Bob可能依旧可以对密文顺利解密,并在解密之后没注意到变化。因此,加密通常不提供数据源身份认证。
MAC是一个密码学校验和,它与消息一起发送,以提供数据源身份认证的保证。接收到消息和MAC后,接收方将接收到的消息和密钥输入MAC算法并重新计算MAC,然后检查重新计算的MAC是否与发送方发送的MAC匹配,如果匹配则认为数据源身份认证正确;如果接收方计算的MAC与发送方发送的MAC不匹配,则接收方无法确定是更改了消息还是伪造了消息的来源。


数字签名是通过第三方独立检查的方式将实体绑定到某些数据上,绑定到数据的实体可以是以下类型:

  • 数据的创建者
  • 数据的拥有者
  • 数据的“批准”使用者

签名方(Signer)即创建数字签名的实体(不管其与数据的精确关系),验证方(Verifier)即任何接收数字签名数据并尝试检查数字签名是否“正确”的实体。

Nonce(numbers used only once):随机生成的数字,仅被使用一次。
Alice发送了一个消息给Bob并带上了一个nonce,然后Alice收到了一个消息也带了这个nonce。Alice并不能通过这个nonce确定消息就是Bob发过来的,因为可能别人截获了消息看到了nonce,但通过这个nonce可以让Alice确认接收到的这条消息肯定是在Alice发给Bob的消息之后产生的,因为nonce的生成是随机的而且Alice刚用了一次,不太可能那么巧别人也生成了一个相同的nonce。

公钥证书:将公钥绑定到与此公钥的用途有关的数据的数据
公钥证书包含四个基本信息:
1.所有者的名称。公钥所有者的名称,可以是一个人,一个设备,一个组织,一个角色等。
2.公钥值。公钥本身,通常附带公钥的密码算法标识符。
3.有效期。标识公钥的有效日期和时间,以及过期日期和时间。
4.签名。公钥证书的创建者对构成公钥证书的所有数据进行的数字签名。

公钥证书的解释:
1. 公钥证书不能用于加密消息或验证数字签名:公钥证书只是一个声明,声明中包含的公钥属于指定的所有者,并且具有证书中指定的属性。可以从证书中提取出公钥,然后将其用于指定用途。

2.公钥证书不是身份的证明。任何需要使用公钥证书中包含的公钥的人都可以使用公钥证书,因此提供公钥证书并不能证明身份。

公钥证书的创建者
公钥证书的创建者称为证书颁发机构(CA)。证书颁发机构通常扮演三个重要角色:
证书的创建者
证书的销毁者
证书信任的起点(Trust Anchor):CA作为任何一方的信任锚点,依赖于公钥证书中包含的信息的正确性。为履行这一角色,CA必须积极维持其作为受信任机构的形象。 
信任CA:依赖方需要能够(直接或间接)信任CA在创建证书时正确地执行了其工作。

验证证书上的签名:为了验证公钥证书上CA的数字签名,依赖方需要访问CA的验证密钥。如果依赖方不验证此签名,则不能保证公钥证书的内容是正确的。

检查字段:依赖方需要检查公钥证书中的所有字段。特别是,必须检查所有者的名称和公钥证书是否有效。


密钥管理
密钥管理即密码学密钥的安全管理,密码学密钥只是特殊的数据片段。因此,密钥管理涉及与信息安全相关的大多数不同流程。这些流程包括:
1.控制技术:可用于密钥管理的各个方面。例如,可能需要特殊的硬件设备来存储密码学密钥,并且需要特殊的密码协议来建立密钥。

2.过程控制:策略、实践和流程在密钥管理中起着至关重要的作用。例如,可能需要业务连续性流程来处理重要密码学密钥的潜在丢失问题。

3.环境控制: 密钥管理必须根据实际环境进行调整。例如,密码学密钥的物理位置在确定用于管理密钥的密钥管理技术方面起着重要作用。

4.人为因素:密钥管理通常设计人来做事。每个安全从业人员都知道,无论何时涉及人为因素,出现问题的可能性都很高。

密钥生命周期
密钥生成:密钥的产生

密钥建立:密钥到达使用它的终端

密钥存储:密钥的保管

密钥备份:多存储一份密钥,用于灾难恢复

密钥存档:密钥不再使用之后暂存起来但并不删除,通常是用密钥加密的数据要保存较长时间,这个密钥还要用于解密,所以存档。

密钥销毁:彻底删除不再使用的密钥

基本密钥管理要求
密钥的保密性:在密钥的整个生存期中,秘密密钥(即对称密钥和私钥)必须对所有各方保密,除非获得授权知道它们。
密钥目的的保证:在整个密钥生存周期中,依赖于密钥的各方必须确保密钥的用途。比如只能对小额交易进行签名的密钥不能用于大额交易。

密钥管理系统需要与实现它的组织的功能和优先级保持一致。例如,密钥管理系统可能依赖于:网络拓扑结构,密码机制,合规的限制,历史遗留问题。

密钥长度:密钥越长越安全,但计算成本越大。密钥长度往往取决于效率和安全之间的平衡。

给密钥设置生存期的目的:
1.降低密钥泄露的危害,防止穷举导致的泄露。
2.减少密钥管理的失败,强制每年更换密钥,确保那些在一年内离开组织的但由于某种原因保留了密钥的人员在下一年无法使用有效的密钥。
3.降低未来受攻击的风险,有助于降低攻击环境中的未来进展带来的风险。

4. 强制实施管理周期,例如密钥提供对按年付费的电子资源的访问,那么一年的密钥生存期允许可访问迷药的人直接打开订阅服务。

5.灵活性,有限的密钥生存期引入了一个额外变量,可以根据应用的需求进行调整,比如当设定的密钥生存期较短时,可以采用长度较短的密钥。

6.限制密钥暴露,至少在理论上,每当攻击者看到使用该密钥计算的密码值时,就会设法获取一些与密钥相关的信息。这是因为每次加密计算的结果都会向攻击者提供他们在看到密文之前没有的信息,称之为密钥暴露。如果加密算法很强大,攻击者通常很少使用这些信息,因此在很多应用中密钥暴露不是一个严重的问题。然而,较长的密钥生存期会使密钥暴露变成严重的问题。

在理想情况下,先选择密钥的生存期然后选择合适的密钥长度;在现实世界中,密钥长度可能已被指定(比如密钥管理系统基于128位AES密钥的使用),因此可以将密钥生存期设置为适当的时间长度。

密钥的生成
1.直接生成。随机算法,openssl等库函数。

2.密钥派生。派生密钥的密钥被称为基密钥。派生密钥的优点:效率高,节省成本,生存期长,形式多样。

3.从组元生成密钥。比如Shamir密钥共享协议,三个人每人提供1个128位的密钥,生成一个新密钥。

密钥分级:包括对密钥进行排序,高级别密钥比低级别密钥更重要。上一级别的密钥用于加密下一级别的密钥。
分级部署密钥有两个明显的优势:
1.安全分发与存储:通过使用一个高级别的密钥加密低级别的密钥,系统中的大多数密钥都可以由高级别的密钥保护。这允许以加密的形式安全分发和存储密钥。
2.方便可扩展的密钥变更:低级别密钥出现泄露,轮转起来更容易。

通常分为三个级别:

主密钥(master key):需要认真管理的顶级密钥,用来加密“密钥加密密钥”。由于主密钥的密钥管理非常昂贵,因此它们的使用生存期相对较长(可能是几年)

密钥加密密钥(key Encrypting Key):它们以使用主密钥加密的形式分发和存储。它们只用于加密“数据密钥”。密钥加密密钥的生存期将比主密钥短,因为它们具有更大的暴露度,并且容易变更,通

数据密钥(Data key):"一线"的工作密钥,用于加密数据,具有高暴露度和短生存期。可能仅仅对应于单个会话的生存期,因此数据密钥通常被称为会话密钥(session key)

密钥长度也应该是:主密钥>=密钥加密密钥>=数据密钥

单交易唯一密钥(Unique Key Per Transaction, UKPT)
采用密钥派生技术,从Alice和Bob已经共享的信息中派生出新的密钥(这些共享的信息不需要成为长期的秘密。相反,它可以是一个短期的密钥、其他数据或两者的组合)
使用密钥派生从Alice和Bob之间已经共享的短期秘密生成新密钥有两个明显的优势:
1.Alice和Bob不需要存储长期密钥
2.Alice和Bob不需要仅仅为了建立密钥而进行任何专门通信

单交易唯一密钥采用密钥派生技术,在每次使用密钥之后通过密钥派生过程更新密钥,UKPT方案适用于终端安全能力有限的场景,一个很好的例子是零售销售终端Pos机,它通常位于不安全的公共环境,容易被盗,商家使用它来验证PIN和批准支付卡交易。

硬件安全模块(Hardware Security Module, HSM)
HSM是专用的密钥存储硬件,也称为防篡改设备,另外,许多HSM还可以执行批量加密操作,通常速度很高。
存储在HSM上的密钥受到硬件的物理保护。例如,如果有人试图通过HSM从设备中提取密钥,就会触发防篡改电路,密钥通常会从HSM内删除。

主密钥管理
主密钥大多数使用密钥分级的密钥管理系统将使用硬件安全模块(HSM)来存储主密钥,主密钥永远不会以不受保护的形式离开HSM。主密钥通常以组元形式生成、建立和备份。如果一个主密钥需要在两个不同的HSM之间共享,一种做法是在每个HSM上分别从组元生成相同的主密钥,另一种做法是在两个HSM之间运行密钥协商协议建立共享主密钥。

量子密钥的建立
量子密钥建立的动机:实现一种有效的方法,在双方之间安全地建立随机生成的长对称密钥,从而实现一次一密。
量子密钥建立在量子信道之上(通常是光纤网络),Alice和Bob必须有能够发送和接收被编码为量子态的信息设备,这种量子态被成为量子位。量子密钥建立背后的基本思想是:在量子信道中,如果不更改信道中的信息,攻击者就无法监听。
BB84协议:
1.Alice随机产生一串量子位,并将这些量子位以极化光子的形式发送给Bob。
2.Bob使用偏振探测器测量它们,每个光子返回0或1。Bob可以使用多种不同类型的偏振探测器来测量每个光子。
3.Bob通过传统的经过身份认证的通道联系Alice,Alice告诉Bob她使用的是哪种偏振探测器来编码每个量子位,Bob丢弃错误类型的偏振器的测量结果,仅保留正确类型的偏振器进行测量。
4.Alice和Bob通过传统的身份认证的信道检查他们认为刚刚达成一致的比特流。他们随机选择一些位置,然后检查这些位置上的位是否一致。如果没有发现任何差异,那么他们就丢弃用于进行检查的比特,并利用他们还没有检查过的比特形成一个密钥。
攻击者可以在量子信道上测量光子,并且可以监听经过身份认证的信道上的所有讨论。然而,如果攻击者选择在量子信道上测量光子,当攻击者使用了错误的探测器时,这个过程将改变光子的极化方向,从而导致Bob接收到不正确的输出位。因此,当Alice和Bob对达成一致意见的比特进行抽查时,他们将以很高的概率检测到这种活动。