未经认证的公钥分发所存在的漏洞
在公钥密码学中,若不加认证地公开分发密钥,攻击者便可实施中间人攻击:攻击者可伪造公钥声明,诱使用户使用攻击者的公钥加密消息,从而截获并读取私密通信。
Udacity · YouTube · 3:35
本片段解释了未经认证的公钥分发所存在的漏洞:攻击者可伪造密钥以截获消息;随后引入公钥证书作为解决方案,并详述其结构(包含用户信息、公钥及证书颁发机构信息),以及利用哈希函数和证书颁发机构的私钥与公钥进行证书创建与验证的密码学过程。 本视频讲解公钥证书在公钥基础设施(PKI)中的生命周期。它详细说明证书颁发机构(CA)如何通过整合用户的身份信息与公钥、对数据进行哈希运算,并使用CA自身的私钥加密该哈希值,从而生成已签名的证书。随后,视频演示接收方如何通过独立地对提取出的数据进行哈希运算,并将结果与使用CA公钥解密签名后恢复的哈希值进行比对,来验证证书。若两者一致,则确认该证书真实有效;这一验证过程依赖于一个基本假设:CA是可信的第三方。视频还提到了VeriSign和Microsoft等现实世界中的CA实例。
在学习检查器中查看要点和时刻,或切换阅读标签查看完整笔记。
依据视频画面与讲解整理,并非逐字语音转写。
视频首先解释了公钥加密的基本前提:公钥应当被自由分发。然而,这种便利性引入了一个关键漏洞:攻击者可以轻易伪造一条公开声明,用其自己的公钥替换合法用户的公钥。例如,攻击者可以冒充鲍勃,并将自己的伪造公钥发送给爱丽丝。当爱丽丝使用这个伪造的公钥加密消息时,攻击者便能截获并读取该消息,从而破坏通信的安全性。
为解决公钥伪造问题,引入了公钥证书的概念。屏幕上出现一幅详细示意图,展示了证书的结构及其生命周期。证书将用户的身份(如鲍勃的身份信息和公钥)绑定至一个受信任的第三方——证书颁发机构(CA)。随后,整个数据块使用CA的私钥进行密码学签名。
示意图左侧分解了证书的创建过程:首先,一个哈希函数(标记为“H”)对未签名的证书数据生成固定长度的哈希码;接着,一个加密函数(标记为“E”)使用CA的私钥对该哈希码进行加密;该加密后的哈希码即构成数字签名,并被附加到原始数据上,形成最终的已签名证书。
示意图右侧展示了验证流程:当接收方收到已签名的证书时,他们使用CA的公钥及一个解密函数(标记为“D”)对签名进行解密,从而恢复出原始哈希码;同时,他们对收到的证书数据应用相同的哈希函数(“H”),生成一个新的哈希码;通过比对恢复出的哈希码与新生成的哈希码,接收方可验证证书的真实性,并确认其未被篡改。
该过程始于用户Bob联系证书颁发机构(CA)。他向CA提供身份认证材料(例如驾驶证),并提交自己的公钥。
CA 随后构建一个未签名的证书,其中包含 Bob 的身份标识、他的公钥以及其他元数据(例如有效期)。这一整块数据将通过一个记为 H 的哈希函数,以生成一个唯一的哈希码。
为生成数字签名,CA使用其自身的私钥对这一哈希码进行加密。该签名随后被附加到证书上,从而形成一份完整的已签名公钥证书。
Bob现在可将这份已签名的证书分享给任何人,例如另一位用户Alice。
收到证书后,Alice 将明文信息与数字签名分离开来。她取出明文数据(如 Bob 的身份标识、公钥等),并用相同的哈希函数 H 对其进行运算,从而计算出一个新的哈希值。
与此同时,Alice 使用证书颁发机构(CA)广为人知的公钥对数字签名进行解密。该解密过程恢复出 CA 当初生成的原始哈希值。
接着,Alice 将自己刚刚计算出的哈希值与从签名中恢复出的哈希值进行比对。若这两个哈希值完全一致,则证明该证书确实由 CA 的私钥签署,且其中的数据未被篡改。由此可验证 Bob 的公钥是可信的。
整个机制依赖于一个关键假设:证书颁发机构(CA)是一个受信任的第三方。若缺乏这种信任,验证过程便毫无意义。
在现实世界中,CA 是一些声誉卓著的机构,例如 VeriSign、微软、谷歌或苹果。它们的公钥已预先安装在常见的软件(如网页浏览器)中,使得系统能够自动验证这些受信任机构所签发的证书。
在公钥密码学中,若不加认证地公开分发密钥,攻击者便可实施中间人攻击:攻击者可伪造公钥声明,诱使用户使用攻击者的公钥加密消息,从而截获并读取私密通信。
公钥证书是一种数字文档,它安全地将一个公钥与其持有者的身份绑定在一起。其中包含用户的身份信息、其公钥,以及签发该证书的证书颁发机构(CA)的信息。整个数据块使用CA的私钥签名,以确保其真实性。
证书颁发机构(CA)首先对未签名的证书数据应用密码学哈希函数,生成一个哈希码;然后使用CA的私钥对该哈希码进行加密;所得的加密后哈希码即为数字签名,并附加在证书上。
为验证证书,接收方使用CA的公钥解密数字签名,从而恢复出原始哈希码;随后,他们独立地对收到的证书数据进行哈希运算;若恢复出的哈希码与新计算出的哈希码一致,则该证书被确认为真实且未被篡改。
由受信任的证书颁发机构(CA)签发的一种数字文档,用于将用户的身份与其公钥进行绑定。它通常包含用户的姓名、公钥、签发者信息以及有效期。
CA 收集用户的信息及其公钥,使用密码学哈希函数对这些数据进行哈希运算,然后用 CA 自己的私钥对所得哈希值进行加密,从而生成数字签名。该签名被附加到证书上。
接收方提取证书中的明文数据并对其进行哈希运算;同时,使用 CA 的公钥对数字签名进行解密,以获取原始哈希值。若两个哈希值一致,则该证书真实有效且未被篡改。
哈希函数用于生成证书数据的固定长度摘要。对这一摘要而非整个消息进行签名,效率更高,并能确保数据完整性;数据一旦发生任何改动,就会产生不同的哈希值,从而导致验证失败。
公钥基础设施的安全性完全依赖于一个假设:证书颁发机构(CA)是一个受信任的实体。如果某CA遭到入侵或本身具有恶意,它就可能签发伪造的证书,从而破坏信任链。
知名的CA包括VeriSign、微软、谷歌和苹果。它们的根公钥被预先内置在操作系统和网络浏览器中,从而实现对安全网站所用SSL/TLS证书的自动验证。
按知识点查看条件、步骤和证据。补充解释与视频直接内容分别标明。
讲解者多次提到公钥组件以及鲍勃的公钥。
图中将一个字段标注为“鲍勃的公钥”。
public key
一种旨在公开分发、供他人用于加密或验证的密码学密钥组件。
可公开分发的密码学密钥
讲解者指出,整个数据块使用证书颁发机构的私钥进行签名。
图中包含文字:“用CA的私钥加密哈希值以生成签名”。
private key
由某实体持有的秘密密码学密钥,此处由证书颁发机构用于生成数字签名。
秘密密码学密钥
讲解者提到了证书颁发机构(CA)及其相关信息。
图中包含一个标有“CA信息”的方框,以及提及CA的私钥与公钥的文字。
CA
证书颁发机构,即负责签发并签署公钥证书的可信实体。
可信的第三方机构
图中显示一个标有“H”的方框,其说明文字为“生成未签名证书的哈希码”。
H
一种哈希函数,用于从未签名证书的数据生成固定长度的哈希码。
密码学哈希算法
图中显示一个标有“E”的方框,其说明文字为“使用证书颁发机构(CA)的私钥加密哈希码以形成签名”。
E
一种加密函数,用于使用证书颁发机构(CA)的私钥加密哈希码,从而生成数字签名。
非对称加密算法
图中显示一个标有“D”的方框,其说明文字为“使用证书颁发机构(CA)的公钥解密签名以恢复哈希码”。
D
一种解密函数,用于使用证书颁发机构(CA)的公钥解密签名,从而恢复原始哈希码。
非对称解密算法
图中出现了文字“CA”,代表证书颁发机构。
讲话者多次提到“该CA”和“证书颁发机构”。
CA
证书颁发机构,即负责签发数字证书的可信第三方。
密码学中的组织实体。
中央方框中显示了文字“Bob的身份信息”和“Bob的公钥”。
讲话者以“Bob”为例,说明申请证书的用户。
Bob
一个通用用户或实体,其公钥正被认证。
密码学协议中的用户身份。
讲话者说:“现在Bob可以将此公钥证书发送给任何人,例如Alice。”
Alice
一个通用接收方或验证者,负责接收并验证Bob的公钥证书。
密码学协议中的用户身份。
流程图中存在标有“H”的方框,且有箭头从数据块指向这些方框。
说话人说:“然后对其进行哈希运算”以及“她将对这些数据进行哈希运算”。
H
哈希函数,它从输入数据生成固定长度的哈希码。
密码学原语。
一个标有“E”的圆圈,其左侧有一个来自哈希码模块和私钥图标的箭头指向它。
说话人说:“用他的私钥对哈希码进行签名”,这对应于图中所示的加密步骤。
E
加密操作,在此处用于通过私钥加密哈希码来生成数字签名。
密码学操作。
一个标有“D”的圆圈,其左侧有一个来自签名模块和公钥图标的箭头指向它。
说话人说:“使用证书颁发机构的公钥解密该签名”。
D
解密操作,在此处用于通过公钥解密签名以验证数字签名。
密码学操作。
讲解员指出,任何人都可以伪造一次公开声明,冒充鲍勃并向爱丽丝发送一个虚假的公钥,从而使攻击者能够截获并读取消息。
在标准公钥加密中,公钥是自由分发的。然而,若缺乏认证机制,攻击者便可伪造一次公开声明,用其自身的公钥替换合法用户的公钥。这使得攻击者能够截获并解密原本发给合法用户的消息。
公钥在未经过身份验证的情况下分发。
攻击者可以截获并篡改通信内容。
讲述者指出,证书由鲍勃的公钥、鲍勃的身份信息(用户ID、姓名、地址)、证书颁发机构的信息组成,并使用CA的私钥进行签名。
图中显示一个中心区块,包含“鲍勃的身份信息”、“鲍勃的公钥”和“CA信息”,该区块经处理后生成“已签名证书”。
公钥证书是一种数字文档,用于将某个公钥与其持有者的身份绑定。它通常包含用户的ID信息、其公钥以及签发该证书的证书颁发机构的信息。整个数据块使用CA的私钥进行密码学签名,以确保其真实性和完整性。
由受信任的证书颁发机构(CA)签发。
包含用户身份信息和公钥。
图的左侧展示了该过程:先使用哈希函数H对未签名证书生成哈希值,再使用加密函数E配合CA的私钥对该哈希值进行加密,从而生成签名,最终得到已签名证书。
为创建已签名证书,证书颁发机构首先使用哈希函数对未签名证书的数据生成哈希值;然后,使用其自身的私钥对该哈希值进行加密。该加密后的哈希值即为数字签名,并被附加到证书数据上。
需要未签名证书的数据。
需要一个密码学哈希函数。
需要证书颁发机构(CA)的私钥。
图右侧展示了验证过程:使用 CA 的公钥通过 D 解密签名以恢复哈希码,使用 H 对接收到的证书数据生成新的哈希码,并比较这两个哈希码。
为验证证书,接收方使用 CA 的公钥解密数字签名,以恢复原始哈希码;同时,接收方使用相同的哈希函数 H 对接收到的证书数据生成一个新的哈希码;若恢复的哈希码与新生成的哈希码一致,则该证书被确认为真实且未被篡改。
需要已签名的证书。
需要 CA 的公钥。
需要在创建过程中所使用的相同密码学哈希函数。
顶部标题为“公钥证书”。中央方框中显示“Bob的身份信息”、“Bob的公钥”以及“CA的信息”。
讲解者说明,证书颁发机构(CA)将鲍勃的身份证号、公钥及其他信息整合起来,生成该证书。
公钥证书是一种数字文档,用于将一个公钥与其持有者的身份绑定。它包含用户的身份证信息、其公钥,以及证书颁发机构(CA)提供的其他信息(例如有效期)。
由受信任的证书颁发机构(CA)签发。
包含用户身份、公钥及CA的元数据。
流程图左侧显示数据进入“H”(哈希),然后哈希值与私钥图标一同进入“E”(加密),从而生成签名,并将该签名附加到证书上。
讲解者详细说明该过程:“先进行哈希运算;接着CA会用自己的私钥对这个哈希值进行签名,由此生成证书……”
为生成带签名的证书,CA首先收集用户的信息及其公钥;随后对该数据应用哈希函数,生成哈希值;最后,CA使用自身的私钥对这一哈希值进行加密,生成数字签名,并将该签名附加到证书上。
需采用安全的哈希函数。
签名过程需使用CA的私钥。
流程图右侧显示证书被拆分:主数据送入“H”(哈希),签名则送入“D”(解密)并与公钥图标一同处理;“H”与“D”的输出结果被加以比对。
主讲人解释道:“提取明文信息……对这些数据进行哈希运算……使用证书颁发机构的公钥解密签名……然后比较这两个哈希值。”
为验证证书,接收方首先提取明文信息并对其做哈希运算;同时,接收方使用证书颁发机构(CA)的公钥解密数字签名,以恢复原始哈希码。若新计算出的哈希值与解密得到的哈希值一致,则该证书有效,且其中的公钥已获认证。
验证过程需要证书颁发机构的公钥。
验证过程需使用证书创建时所采用的相同哈希函数。
主讲人指出:“若二者匹配,说明该公钥确实由证书颁发机构正确签名;换言之,鲍勃的这个公钥已通过证书颁发机构的验证。”
图中展示了两个哈希值的比对过程,并配有文字说明:“接收方可通过比较哈希码的值来验证签名。”
当且仅当从提取的明文数据生成的哈希码与使用证书颁发机构公钥解密数字签名所恢复的哈希码相同时,该公钥证书才被视为有效。
接收方持有签发该证书的证书颁发机构的正确公钥。
生成哈希码与恢复哈希码时,均使用相同的密码学哈希函数。
适用于任意证书及任意接收方。
主讲人明确指出:“当然,其底层假设是证书颁发机构(CA)为所有相关方所信任。”
整个公钥证书系统的安全性与有效性,依赖于一个基本假设:证书颁发机构(CA)是一个受信任的第三方。
该假设在PKI的所有参与者中普遍成立。
该图直观地展示了如何从无签名数据出发,经哈希与加密得到已签名证书;以及如何从已签名证书出发,经解密与哈希得到验证结果。
哈希函数 H 被应用于无签名的证书数据,以生成固定长度的哈希码。
密码学哈希函数的定义。
生成的哈希码通过函数 E,使用证书颁发机构(CA)的私钥进行加密,从而形成数字签名。
使用非对称加密定义数字签名。
数字签名被附加到原始证书数据上,以生成最终的已签名证书。
数字证书的标准结构。
接收方通过函数 D,使用 CA 的公钥对数字签名进行解密,以恢复原始哈希码。
非对称加密的性质:公钥可解密由私钥加密的内容。
接收方对收到的证书数据应用相同的哈希函数 H,以生成一个新的哈希码。
密码学哈希函数的定义。
若恢复的哈希码与新生成的哈希码一致,则该证书被验证为真实且未被篡改。
密码学哈希函数的抗碰撞性。
图示推导展示了哈希运算与非对称加密如何结合,用于创建和验证安全的公钥证书,从而防止伪造。
整块白板流程图从左到右直观地呈现了各步骤。
主讲人逐步讲解证书的创建与验证过程。
Bob联系CA,并向其提供自己的身份信息及公钥。
主讲人描述的初始设置阶段,以及流程图最左侧输入所隐含的内容。
CA将Bob的身份信息、公钥及其他信息(例如有效期)组合起来,形成未签名的证书。
该步骤由主讲人陈述,并在流程图中体现为中央的紫色方框。
证书颁发机构(CA)对未签名的证书数据应用哈希函数(H),以生成一个哈希码。
由中央方框指向左侧“H”方框的箭头表示,并口述为“然后对其进行哈希运算”。
证书颁发机构(CA)使用其自身的私钥对哈希值进行加密(E),从而生成数字签名。
由标有“E”的圆圈接收哈希值和私钥图标作为输入来表示,并口述为“用他的私钥对哈希值签名”。
数字签名被附加到证书上,形成最终的已签名证书。
由从“E”出发、汇入主证书方框的箭头表示,并标注为“已签名证书”。
Bob 将已签名证书发送给 Alice。
讲解员口述:“现在 Bob 可以将这个公钥证书发送给任何人,例如 Alice。”
Alice 从证书中提取明文数据,并应用相同的哈希函数(H)得到一个新的哈希值。
由图中右上方路径表示:该路径从已签名证书出发,将主数据分离出来并送入一个“H”方框。
Alice 使用 CA 的公钥对数字签名进行解密(D),以恢复原始哈希值。
由右下方路径表示:该路径将签名部分连同公钥图标一起送入一个“D”圆圈。
Alice 比较这两个哈希值;若二者一致,则该证书有效。
通过最右侧两个输出框的对比显示,并配以解说:‘比较这两个哈希值。如果它们匹配……’
该工作流程展示了公钥证书如何通过密码学哈希与数字签名,将用户的身份安全地绑定到其公钥上,从而使任何持有证书颁发机构(CA)公钥的参与方都能验证其真实性。
讲解者列举了实例:‘在实际应用中,CA 是诸如 VeriSign、微软、谷歌或苹果这样的知名公司。’
识别实际中充当证书颁发机构(CA)的实体示例。
受信任的 CA 这一理论概念。
提供日常互联网安全中实际使用的 CA 示例。
讲解者点名了多家作为 CA 运营的主流科技公司。
音频轨道中的直接陈述。
这些公司的公钥已预装在网页浏览器和操作系统中。
讲解者口述:‘它们的公钥已经存储在例如你的网页浏览器中。’
例如 VeriSign、微软、谷歌和苹果。它们的公钥通常已在网页浏览器等软件中预先配置,以便自动验证其签发的证书。
用户可查看其操作系统或浏览器设置中受信任根证书颁发机构(CA)列表,以验证该说法。
在70秒时,屏幕上出现一幅详细展示公钥证书创建与验证过程的复杂示意图。
从74秒到120秒,一只手持触控笔的手指向图中各个部分,追踪数据流向,并突出显示哈希函数、加密和解密等具体步骤。
公钥证书流程图
手持触控笔的手
该图于70秒时突然出现。
触控笔在图上移动,依次指向不同的方框和箭头,分步解释整个流程。
图的整体结构一旦呈现,便保持静止不变。
这一视觉事件将授课内容从对问题的口头讲解,过渡到对解决方案的结构化、可视化拆解,引导观众理解证书管理所涉及的密码学过程。
一张白底手绘流程图,标题为“公钥证书”。
标题文字:“公钥证书”
中央方框标注“未签名证书”,内含“鲍勃的身份信息”、“鲍勃的公钥”、“CA 信息”
左侧流程方框标注“H”(哈希)和“E”(加密),并配有私钥图标
右侧流程方框标注“H”(哈希)和“D”(解密),并配有公钥图标
表示数据流向的箭头
解释各步骤的文字注释
主讲人的笔在图上移动,随讲解依次指向不同组件。
焦点从流程图左侧(生成过程)移至右侧(验证过程)。
流程图的静态布局在整个片段中保持不变。
该图示作为公钥证书生命周期的完整导图,清晰地将创建过程(左侧)与验证过程(右侧)分隔开来,并突出了哈希运算与非对称加密的作用。
讲解者明确指出:虽然广播公钥十分便捷,但它存在一个严重缺陷——任何人都可以伪造该公告。
用户可能想当然地认为:既然某个密钥被标为‘公钥’,那么自己收到的任何公钥天然可信,且必定属于其所声称的所有者。
公钥必须经过认证。若缺乏由可信权威机构签发的数字证书等机制,攻击者便可轻易替换为自己的公钥,从而引发中间人攻击——此时他们能够截获并读取本应安全的消息。
说话者说‘对哈希值签名’,而图中显示的是一个‘E’(加密)符号。
学习者可能混淆‘用私钥加密哈希值’(生成签名)与‘用公钥加密消息’(实现机密性)这两种操作。
在数字签名中,目标是身份认证与完整性校验,而非保密性。用发送方的*私钥*加密哈希值,可确保仅有持有对应*公钥*的一方能够验证该签名,从而证明发送方的身份。这与以保密性为目标的标准加密过程相反——后者使用接收方的*公钥*。
讲解员将公钥证书介绍为解决公钥伪造问题的方案。
公钥证书这一概念被专门用于解决未经认证的公钥分发(即伪造)所导致的安全漏洞。
图示左侧展示证书创建过程,右侧展示验证过程,二者通过已签名的证书关联起来。
理解证书如何创建(先哈希再用私钥签名)是理解其如何验证(用公钥解密并比对哈希值)的前提。
箭头从‘H’(哈希)的输出直接指向‘E’(加密)的输入。
说话者说:‘先对它做哈希运算,然后证书颁发机构将用自己的私钥对该哈希值签名。’
证书创建方法先对证书数据应用哈希函数,再对其结果进行签名。
‘已签名证书’模块是整个右侧验证流程的输入。
说话者从证书的创建过渡到爱丽丝接收并验证该证书。
证书必须先被创建并签名,之后才能由接收方进行验证。
说话者将哈希值匹配与证书颁发机构的验证联系起来,并立即指出该证书颁发机构必须是可信方。
匹配的哈希值能够证明有效性这一命题,完全依赖于一个前提假设:证书颁发机构(CA)是一个受信任的实体。
讲解员讨论公钥伪造问题,并将证书作为解决方案加以介绍。
图示明确标出了签名与验证过程中涉及的 H、E 和 D 函数步骤。
创建过程的叙述。
流程图的左侧。
验证过程的叙述。
流程图的右侧。
“H”框指向“E”框。
“对其进行哈希……对哈希值签名”。
VeriSign、Microsoft 等机构的列举。
已覆盖 · 音频讲解未经认证的公钥分发所存在的漏洞以及公钥伪造问题。
已覆盖 · 通过图示与音频讲解,详细说明公钥证书的结构、创建过程及验证过程。
已覆盖 · 介绍公钥证书的定义,以及证书颁发机构(CA)创建该证书的逐步流程,包括哈希运算与签名过程。
已覆盖 · 介绍接收方(Alice)验证证书的流程,包括提取数据、进行哈希运算、解密签名,以及比对哈希值。
已覆盖 · 介绍关于CA的基本信任假设,并列举现实世界中的CA实例及其公钥分发方式。