0Pricing
Cyber Security Academy · 课时

数字签名与证书

理解数字签名如何证明真实性,以及 X.509 证书如何将身份绑定到密钥。

数字签名与证书 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

什么是数字签名

数字签名可以证明文档或消息由特定的私钥持有者创建,且未被修改。与手写签名不同,数字签名在数学上与内容绑定,任何更改都会使签名失效。

签名如何工作

签名流程:

  1. 计算文档的哈希值:H = SHA256(document)
  2. 使用私钥加密哈希值:sig = RSA_encrypt(H, private_key)
  3. 将签名附加到文档

验证过程:使用公钥解密 sig,重新计算哈希值,然后进行比较。

ECDSA 和 EdDSA

现代签名算法:

  • ECDSA(使用 P-256)— 用于 TLS 证书和 Bitcoin
  • Ed25519(EdDSA)— 速度更快、更加简单,不存在每次签名随机数导致的漏洞,用于 SSH 和 Signal

对于新应用,优先选择 Ed25519。

什么是证书

数字证书(X.509)将公钥与身份绑定。它包含:主体名称、公钥、有效期、签发者以及 CA 的数字签名。访问 HTTPS 网站时,服务器会出示其证书以证明自己的身份。

证书颁发机构(CA)

证书颁发机构(CA)是受信任的实体,会在验证申请者身份后为证书签名。浏览器和 OS 的信任存储中包含根 CA 证书。信任链为:根 CA → 中间 CA → 终端实体证书。

Let's Encrypt 与免费证书

Let's Encrypt 是一个免费的自动化 CA。它签发有效期为 90 天的域名验证(DV)证书,并可通过 ACME 协议自动续期。自 2015 年以来,它显著提高了 HTTPS 的普及率。

certbot --nginx -d example.com -d www.example.com
# Auto-renewal via cron or systemd timer

证书类型

证书验证级别:

  • DV(域名验证) — 仅证明对域名的控制权
  • OV(组织验证) — 验证组织确实存在
  • EV(扩展验证) — 严格的身份验证(绿色栏,现已被浏览器弃用)

证书撤销

遭到泄露的证书必须被撤销:

  • CRL(证书撤销列表) — 可下载的已撤销序列号列表
  • OCSP(在线证书状态协议) — 实时检查单个证书
  • OCSP 装订 — 服务器在 TLS 握手中附加由 CA 签名的 OCSP 响应

证书透明度(CT)

证书透明度日志是每张已签发证书的公开、只能追加的记录。浏览器要求证书包含 CT 证明。这使得人们能够在数小时内发现错误签发的证书。搜索:crt.sh

curl "https://crt.sh/?q=example.com&output=json" | python3 -m json.tool

代码签名

软件发布者使用代码签名证书为可执行文件签名。OS 会在执行前验证签名。这可以防止被篡改的二进制文件在不知情的情况下运行。macOS Gatekeeper 和 Windows SmartScreen 会强制执行代码签名策略。

证书固定

证书固定会将预期的证书或公钥硬编码到应用程序中。即使恶意 CA 签发了欺诈性证书,启用了证书固定的应用也会拒绝它。证书固定常用于移动应用和高安全性服务。更新较为困难,请谨慎使用。

快速检查:证书

哪种机制可以让浏览器实时检查某个特定证书是否已被吊销?

课程回顾

数字签名使用私钥证明真实性和完整性。证书将公钥与身份绑定,并由证书颁发机构签名。Let's Encrypt 提供免费的 DV 证书。证书吊销状态通过 CRL 或 OCSP 查询。证书透明度日志可以检测错误签发的证书。Ed25519 是当前首选的现代签名算法。

常见问题解答

「数字签名与证书」课时是免费的吗?

是的 — 「数字签名与证书」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「数字签名与证书」这节课中我会学到什么?

理解数字签名如何证明真实性,以及 X.509 证书如何将身份绑定到密钥。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「数字签名与证书」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 对称加密:AES 与流密码
  2. 非对称加密:RSA 与椭圆曲线
  3. 哈希函数:SHA-256 及更进一步
  4. 数字签名与证书
← 返回 Cyber Security Academy