现实中的签名:代码签名与电子邮件
探索 S/MIME、PGP,以及软件如何在发布前完成签名
现实中的签名:代码签名与电子邮件 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
欢迎
数字签名保护软件分发和电子邮件通信。在本课中,我们将准确了解代码签名和电子邮件签名在实践中的工作方式。
macOS 代码签名
Apple Developer 证书包含 RSA/ECDSA 公钥。Xcode 为每个应用签名:signature = Sign(SHA256(app_bundle), dev_private_key)。macOS Gatekeeper 会在启动前进行验证。
Windows Authenticode
Windows Authenticode 为 PE 可执行文件签名。签名嵌入二进制文件中。Windows 会在执行前根据 Microsoft 的受信任根存储检查签名链。
APK 签名(Android)
Android 应用使用开发者的密钥库签名。APK v2/v3 签名覆盖整个文件。Google Play 要求使用 Play 应用签名——Google 保管上传密钥和签名密钥。
npm 软件包签名
npm 现在支持来源证明声明:每个软件包都包含一份由 GitHub Actions OIDC 签名的 SLSA 来源证明声明。它验证的是构建流水线,而不仅仅是发布者身份。
Git 签名提交
git config --global user.signingkey YOUR_KEY_ID
git commit -S -m 'signed commit'
Signed commits include a PGP/GPG signature of the commit hash. GitHub shows a 'Verified' badge.
S/MIME 电子邮件签名
S/MIME 使用 CA(Comodo、DigiCert 等)颁发的 X.509 证书为电子邮件签名。Outlook 和 Apple Mail 会自动验证签名。签名覆盖邮件头和正文。
用于电子邮件的 PGP/GPG
PGP 使用信任网络,而不是 CA。生成密钥对,将公钥上传到密钥服务器。收件人获取您的密钥并进行验证。它在开源社区中被广泛使用。
DKIM 电子邮件身份验证
DKIM 使用域的私钥为外发电子邮件的邮件头签名。公钥发布在 DNS 中(TXT 记录)。接收服务器会验证签名,以检测欺骗。
软件更新签名
操作系统更新软件包包含由供应商签名的清单。应用更新前:下载清单、验证签名、计算每个文件的哈希值,并与清单进行比较。任何不匹配都应拒绝。
Docker 镜像签名:Cosign
Sigstore/Cosign 使用存储在云 KMS 中的 ECDSA 密钥为容器镜像签名。签名存储在 OCI 注册表中。Kubernetes 准入控制器可以要求镜像经过签名。
快速检查
DKIM 会验证电子邮件的哪些内容?
回顾
代码签名和电子邮件签名处处依赖数字签名。接下来我们将学习 PKI 和证书颁发机构——支撑这一切的信任基础设施。
常见问题解答
「现实中的签名:代码签名与电子邮件」课时是免费的吗?
是的 — 「现实中的签名:代码签名与电子邮件」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「现实中的签名:代码签名与电子邮件」这节课中我会学到什么?
探索 S/MIME、PGP,以及软件如何在发布前完成签名 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「现实中的签名:代码签名与电子邮件」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 什么是数字签名
- RSA 签名:签名与验证
- DSA 与 ECDSA 签名方案
- 现实中的签名:代码签名与电子邮件