| 考生应能: | 注释与指导 |
|---|---|
| 展示对 加密 工作原理的理解 | 包括 公钥、私钥、明文、密文、加密、对称密钥密码学 和 非对称密钥密码学 的使用。说明如何利用密钥将私人消息从公众发送给特定个人/组织;说明如何利用密钥向公众发送经过验证的消息;说明如何使用对称和非对称密码学对数据进行加密和解密。量子密码学 的目的、优点和缺点 |
| 了解 安全套接字层 (SSL) / 传输层安全 (TLS) | SSL/TLS 的用途;在客户端-服务器通信中 SSL/TLS 的应用;适合使用 SSL/TLS 的场景 |
| 展示对 数字认证 的理解 | 数字证书 的获取方式;如何利用 数字证书 生成 数字签名 |
安全
A-Level 计算机科学 · 知识点 17
13:16
加密如何工作
看看你浏览器地址栏中的锁图标。你输入了银行名称,不知何故你的笔记本电脑现在确信它真的在与银行通信——而且……
英语旁白 · 英中内嵌字幕
17.1
加密、加密协议与数字证书
教学大纲
来源:Cambridge International 教学大纲
加密(encryption)用一个依赖于密钥(key)的数学运算,把可读的明文(plaintext)变成不可读的密文(ciphertext)。只有有正确密钥的人才能逆转它——解密(decryption)——以取回明文。一个没有密钥就截获密文的攻击者只看到无意义的数据,因为尝试每一个可能的密钥会花太长的时间。一个较新的方法,量子密码学(quantum cryptography),用量子物理以一种揭示任何窃听者的方式共享一个密钥。


对称加密
对称加密(symmetric encryption,对称密钥密码学)对加密和解密都用同一个密钥,所以发送方和接收方必须都持有这个秘密密钥。它快,适合大批数据(整个磁盘、一个视频流)。它的问题是密钥分发(key distribution):你一开始怎么安全地共享密钥?非对称加密解决这个。
"描述对称密钥加密是什么意思"(两分)。 用同一个密钥加密明文和解密密文,所以密钥必须在发送方和接收方之间共享,并对其他所有人保密。两个缺点。 发送消息之前密钥必须先交换,若它在传输中被截获,截获者就能读所有消息;每一对通信者都需要单独的密钥;而且它不能证明消息是谁发的,因为两端持有同一个密钥。"给出使用密钥密码学的两个理由":使数据对截获它的任何人不可读(机密性);使接收方能确信数据来自声称的发送方且未被篡改(真实性和完整性(integrity))。两种方法是对称和非对称密钥密码学。

非对称加密(公钥)
非对称加密(asymmetric encryption,非对称密钥密码学)给每个用户一对相关的密钥:一个他们公布的公钥(public key),和一个他们保密的私钥(private key)。用公钥加密的数据只能用匹配的私钥解密,反之亦然。

要给 Alice 发一个秘密消息:取她公布的公钥、用它加密,并发送。只有 Alice——持有匹配的私钥——能解密。不需要事先的密钥交换。权衡是它比对称慢得多,所以它不用于大数据。
"说明私钥是什么意思。" 只有其拥有者知道(决不传输)的密钥,用于解密用配对公钥加密的数据,以及创建数字签名。 "描述非对称加密的过程"(四分):(1) 接收方生成一对密钥,一个公钥和一个私钥,在数学上相关;(2) 公钥提供给任何想发送给他们的人;(3) 发送方用接收方的公钥加密明文;(4) 密文只能用接收方的私钥解密,而私钥从不离开接收方,所以截获消息的人都读不了。
例题。 Fred 想给 Sheila 发一份机密文件。解释如何使用非对称加密。
Sheila 有一对密钥;她把她的公钥发给 Fred(或者他从她的证书获取)。Fred 用 Sheila 的公钥加密文件并发送密文。只有 Sheila 的私钥能解密它,而只有 Sheila 持有私钥,所以其他任何人,包括加密之后的 Fred,都读不了这份文件。密钥按接收方的方式使用:她的公钥上锁,她的私钥开锁。持有一对密钥"用于接收安全传输"的组织正是这样做的:公布公钥,保留私钥,解密收到的东西。
对称与非对称加密的两个区别。 对称加密两个方向用一个密钥;非对称加密用两个相关的密钥,一个加密另一个解密。对称加密中密钥必须由双方保密并安全交换;非对称加密中公钥可以公开,只有私钥保密。对称加密快得多,适合大量数据;非对称较慢,所以用于密钥和签名而不是批量数据。
一个私钥必须保密,所以它有时被保存在一个小的硬件安全密钥(hardware security key)上。你插入它或轻触它来证明你是谁,而这个秘密密钥从不离开设备。

混合方法(几乎每个真实系统都用)
用非对称加密来交换一个新鲜的会话密钥(session key),然后对数据用那个对称密钥:
- 客户端制作一个随机会话密钥。
- 它用服务器的公钥加密会话密钥。
- 服务器用它的私钥解密它。
- 两端现在共享会话密钥,并对其余部分用快速的对称加密。
这就是 HTTPS 和 SSH 工作的方式。
考试版的密钥交换问题。 "在发送消息之前要交换一个对称密钥。解释如何安全地交换该密钥。"发送方用接收方的公钥加密对称密钥并发送;接收方用自己的私钥解密;双方现在都持有这个从未在传输中暴露的对称密钥,并用它处理消息。非对称加密解决分发问题;对称加密再做快速的工作。

散列(相关,不是加密)
一个密码散列(cryptographic hash)函数取任何输入并给出一个固定大小的摘要(digest),使得同样的输入总是给出同样的摘要、找到两个有同样摘要的输入是不可行的,而输入中一个微小的改变会完全改变摘要。散列是单向的——你不能取回输入。它被用于存储密码检查、完整性(integrity)检查和数字签名。

量子密码学
量子密码学(quantum cryptography)用光的物理来分发密钥:密钥的各位作为光子发送,其量子态编码取值。"描述它的目的":以能检测到任何截获企图的方式安全地传输加密密钥,因为测量光子会改变它的状态;窃听者(eavesdropper)因此会留下证据,被破坏的密钥被丢弃并发送新的。优点:截获总能被检测;密钥不能在不被改变的情况下复制;它对未来计算能力的进步是安全的(数学密钥终究能被破解,量子密钥不被扰动就无法读取)。缺点:需要专门的、昂贵的设备;只在专用光纤(或视距)上有限的距离内工作,不能跨越现有互联网;它只分发密钥,消息仍由普通加密保护;而且它是一项新技术,供应商少、经验少。
哈希与雪崩效应
一个哈希是单向的:容易计算,实际上不可能逆转。输入中的一个微小改变翻转输出的一大部分、不可预测的部分——使哈希对密码有用的雪崩效应。
凯撒密码
移位每个字母以加密消息。一个简单的密码展示了密钥的概念——以及为什么小密钥容易被破解。
| English | 中文 | 拼音 |
|---|---|---|
| encryption/enˈkrɪpʃn/ | 加密 | jiā mì |
| plaintext/ˈpleɪntekst/ | 明文 | míng wén |
| ciphertext/ˈsaɪfətekst/ | 密文 | mì wén |
| decryption/dɪˈkrɪpʃn/ | 解密 | jiě mì |
| quantum cryptography/ˈkwɒntəm krɪpˈtɒɡrəfi/ | 量子密码学 | liàng zǐ mì mǎ xué |
| eavesdropper/ˈiːvzdrɒpə/ | 窃听者 | qiè tīng zhě |
| symmetric encryption/sɪˈmetrɪk enˈkrɪpʃn/ | 对称加密 | duì chèn jiā mì |
| key distribution/kiː ˌdɪstrɪˈbjuːʃn/ | 密钥分发 | mì yào fēn fā |
| asymmetric encryption/ˌeɪsɪˈmetrɪk enˈkrɪpʃn/ | 非对称加密 | fēi duì chèn jiā mì |
| integrity/ɪnˈteɡrɪti/ | 完整性 | wán zhěng xìng |
| public key/ˈpʌblɪk kiː/ | 公钥 | gōng yào |
| private key/ˈpraɪvət kiː/ | 私钥 | sī yào |
| hardware security key/ˈhɑːdweə sɪˈkjʊərɪti kiː/ | 硬件安全密钥 | yìng jiàn ān quán mì yào |
| session key/ˈseʃn kiː/ | 会话密钥 | huì huà mì yào |
| cryptographic hash/ˌkrɪptəˈɡræfɪk hæʃ/ | 密码散列 | mì mǎ sàn liè |
| digest/ˈdaɪdʒest/ | 摘要 | zhāi yào |
17.1
SSL / TLS
TLS(传输层安全,Transport Layer Security,安全套接层(Secure Socket Layer,SSL)的后继者)是一个为通过一个网络发送的数据提供加密和身份验证的协议。它加密传输中的数据、用一个证书认证服务器,并提供完整性(检测篡改)。
一次 TLS 握手的概要:
- 客户端连接并提议密码选项。
- 服务器挑一个并发送它的数字证书(带它的公钥)——颁发和验证这些证书是数字认证。
- 客户端检查该证书。
- 两端用非对称密码学交换一个新鲜的会话密钥(session key)。
- 所有后续流量用会话密钥用快速的对称加密。
结果是一个为更高层协议(HTTP、SMTP)加密、认证、完整性检查的隧道。它在任何发送敏感信息的地方都适用:HTTPS 网络浏览、网上银行和支付、安全电子邮件,以及 VPN。
"描述 SSL/TLS 的目的"和"说出两个功能"。 目的是在客户端和服务器之间通过网络提供安全通信。它的功能:加密发送的数据,使其被截获也无法读取;通过数字证书认证(authenticate)服务器(也可以认证客户端),使客户端知道它在与真正的站点通话;检查数据的完整性,使传输中的改动被发现。两个适合使用的例子:网上银行和网上购物(银行卡支付);还有登录、私人电子邮件、文件传输、VoIP 和即时通讯:任何私密数据跨越互联网的交易。
组成 TLS 的两个协议。 握手(handshake)协议建立会话:商定加密算法(密码套件),用证书认证服务器,交换会话密钥。记录协议再传送数据:用会话密钥加密每条消息,加上完整性校验,交给传输层。

"解释客户端–服务器通信发起时如何使用 SSL/TLS"(六分)。 (1) 客户端(浏览器)向服务器发送安全连接请求,说明它支持哪些加密方法。(2) 服务器回送它的数字证书,其中包含它的公钥。(3) 客户端检查证书有效(由受信任的证书颁发机构颁发、未过期、对应正确的域名)。(4) 客户端生成一个会话密钥,用服务器的公钥加密后发送。(5) 服务器用它的私钥解密会话密钥。(6) 双方现在都持有会话密钥,此后所有数据都用它以对称加密发送。按这个顺序给出步骤;分数在于证书、公钥、会话密钥和转到对称加密。
TLS 握手
逐步走过一个挂锁出现之前发生什么。慢的公钥密码学只用来商定一个共享密钥;实际的页面然后在快速的对称加密下传输。
| English | 中文 | 拼音 |
|---|---|---|
| TLS/ˌtiː el ˈes/ | 传输层安全 | chuán shū céng ān quán |
| handshake/ˈhændʃeɪk/ | 握手 | wò shǒu |
17.1
数字证书
一个数字证书(digital certificate)把一个身份(一个域、一个组织)绑定到一个公钥,并由一个受信任的证书颁发机构(Certificate Authority,CA)签名。它包含主体(它标识谁)、主体的公钥、颁发者(CA)、一个有效期,以及 CA 对所有这些的签名。

要验证一个证书,客户端(它持有一个受信任的根 CA 列表):
- 检查过期日期。
- 检查主体名匹配 URL。
- 检查它由一个受信任的 CA 签名,用 CA 的公钥来验证签名。
- 沿证书链往上一直到一个受信任的根。
若任何一项失败,浏览器显示"你的连接不是私密的"警告。当它干净地验证时,客户端知道身份被一个受信任的 CA 审核过、公钥真的属于那个身份,而证书是当前的。
"描述数字证书是什么意思"(两分)。 由证书颁发机构颁发的电子文档,验证其拥有者(个人、组织或网站)的身份,并包含拥有者的公钥。 其中的项目:**序列号;拥有者的名称(主体),对网站则是其域名;拥有者的公钥**;颁发 CA 的名称;有效期(日期);所用的签名算法;以及 CA 对整个证书的数字签名。
"解释组织如何获取数字证书"(四分)。 (1) 组织生成自己的密钥对,一个公钥和一个私钥。(2) 它向证书颁发机构发送一个包含其公钥和身份信息的请求。(3) CA 核实身份(检查申请者确实是该组织或拥有该域名)。(4) CA 创建包含公钥和身份的证书,用 CA 自己的私钥签名,并返回。(5) 组织把证书安装在服务器上,以便发送给客户端。私钥从不离开组织。
"解释为什么验证数字签名需要数字证书。" 检查签名时接收方需要发送方的公钥,并且需要确信该密钥确实属于声称的发送方;证书把公钥和身份一起提供,而且因为证书由受信任的 CA 签名,接收方可以信任这种绑定。没有它,冒名者可以用别人的名字公布一个公钥并以其名义签名。同样的道理回答"从互联网下载的程序应附带什么以证明它是真的":一个数字签名,对照发布者的证书检查。
| English | 中文 | 拼音 |
|---|---|---|
| digital certificate/ˈdɪdʒɪtl səˈtɪfɪkət/ | 数字证书 | shù zì zhèng shū |
| Certificate Authority/səˈtɪfɪkət əˈθɒrɪti/ | 证书颁发机构 | zhèng shū bān fā jī gòu |
17.1
数字签名
一个数字签名(digital signature)证明谁签了一个消息以及它没有被改变。要签名:
- 计算消息的一个密码散列。
- 用发送方的私钥加密该散列——那就是签名。
- 发送消息和签名。
要验证:计算收到的消息的散列;用发送方的公钥解密签名以得到发送方的散列;比较。若它们匹配,消息被私钥的持有者签名(身份验证(authentication))且没有被改变(完整性)。一个签名不隐藏消息——要同时保密,就既加密又签名。

"解释数字证书在创建数字签名中的作用"(三分)。 发送方的证书由 CA 颁发,包含发送方的公钥和发送方的身份;发送方通过对消息散列并用自己的私钥加密该散列值(证书中密钥的配对密钥)来产生签名;接收方用证书中的公钥解密散列值,又因为证书把该密钥绑定到发送方,签名就证明了是谁签的。
"解释如何用数字签名验证消息"(四分)。 (1) 接收方用发送方的公钥(取自发送方的证书)解密签名,得到发送方计算的散列值。(2) 接收方用同样的散列算法对收到的消息散列。(3) 比较两个散列值。(4) 若匹配,消息来自私钥的持有者(真实)并且自签名以来未被篡改(完整性);若不同,消息被拒绝。银行家收到带签名的机密数据时正是这样做才信任它;数据本身可以另外用银行家的公钥加密以保机密。
综合起来
一个到 https://www.bank.com 的安全请求:服务器发送它的证书;客户端对照受信任的 CA 验证它;客户端用服务器的公钥来交换一个会话密钥;然后数据用那个密钥加密流动。加密阻止窃听者,证书证明服务器的身份,而完整性检查阻止一个中间人攻击(man-in-the-middle)篡改数据。
例题。 Alice 给 Bob 发送一份合同。她希望 Bob 能确信这份合同来自她本人且未被篡改,并且希望别人都读不到它。她要用哪些密钥?方向如何?这是两件不同的事,需要两对不同的密钥。用于签名(身份验证与完整性):Alice 对合同做哈希,并用她自己的私钥加密这个哈希值;Bob 用 Alice 的公钥解密它,再与自己对该消息算出的哈希值比对。只有 Alice 持有她的私钥,所以只有她能生成它。用于机密性:Alice 用 Bob 的公钥加密合同本身,这样只有 Bob 的私钥才能打开它。有一条规则能把这四者理清:用自己的私钥签名,用接收方的公钥加密。只有签名本身并不能隐藏消息内容。
| English | 中文 | 拼音 |
|---|---|---|
| digital signature/ˈdɪdʒɪtl ˈsɪɡnɪtʃə/ | 数字签名 | shù zì qiān míng |
| authentication/ɔːˌθentɪˈkeɪʃn/ | 身份验证 | shēn fèn yàn zhèng |
| authenticates/ɔːˈθentɪkeɪts/ | 认证 | rèn zhèng |
| man-in-the-middle/mæn ɪnðə ˈmɪdl/ | 中间人攻击 | zhōng jiān rén gōng jī |
17.1
考官认可的定义
定义题按固定措辞评分。准确学会这些,只给一个答案。
| 术语 | 定义 |
|---|---|
| 加密 | 用算法和密钥把明文转换成密文,使其被截获时无法理解 |
| 明文 / 密文 | 原始可读的数据 / 它的加密后不可读的形式 |
| 对称密钥密码学 | 用同一个秘密密钥加密和解密,所以双方必须安全地共享它 |
| 非对称密钥密码学 | 用一对相关的密钥:公钥加密,只有配对的私钥能解密 |
| 公钥 | 提供给任何人的密钥,用于加密发给其拥有者的消息和验证拥有者的签名 |
| 私钥 | 只有拥有者知道的密钥,用于解密用公钥加密的消息和签名 |
| SSL/TLS | 在客户端和服务器之间提供安全(加密、认证、完整性校验)通信的协议 |
| 数字证书 | 由证书颁发机构颁发的电子文档,验证拥有者身份并包含其公钥 |
| 数字签名 | 用发送方私钥加密的消息散列值,证明发送者是谁以及消息未被篡改 |
| 证书颁发机构 | 核实身份并颁发和签署数字证书的受信任组织 |
| 量子密码学 | 利用光子的量子态分发密钥,使任何截获都能被检测 |
17.1
考试技巧
- 对称:一个共享的秘密密钥,快,密钥交换是弱点。非对称:公钥加密、私钥解密,慢,没有交换问题。两个区别、两个缺点、两个理由:考试成对地问。
- 机密性用接收方的密钥(公钥上锁,私钥开锁);签名用发送方的密钥(私钥签,公钥验)。每次都说清是谁的密钥。
- TLS 的启动是六步:请求、带公钥的证书、检查、用公钥加密的会话密钥、用私钥解密、此后对称加密。
- 证书是身份加公钥,由 CA 签名;获取过程是密钥对、请求、核实、签名、安装。验证签名需要它,因为它证明公钥是谁的。
- 签名是用私钥加密的散列值;验证是解密、重新散列、比较。它证明的两件事是完整性和真实性。
- 量子密码学分发密钥并检测窃听;它的限制是成本、距离和新颖。
常见错误
- 说消息用发送方的公钥加密;是接收方的公钥加密、接收方的私钥解密。
- 把签名描述成"用私钥加密消息"而不是加密它的散列值。
- 声称证书包含私钥;它保存公钥和身份,由 CA 签名。
- 在 TLS 握手中写"服务器发送它的私钥";只有公钥在证书内传输。
- 把"SSL/TLS 使连接更快"当作功能;它的功能是加密、认证和完整性。
- 混淆散列与加密:散列不可逆且没有密钥;加密用密钥可逆。
- 用"为了加密它"回答"为什么签名需要证书";需要它是为了信任公钥。
该知识点的互动课程
逐步完成,配合即时检查练习。