什么是GPG签名


11

在查看诸如THISTHISTHIS之类的问题时,我要求公众了解以下问题:

  1. GPG签名有哪些用途?

  2. 签名增加或提供给用户什么附加的安全级别?

  3. 与Launchpad中带有PPA的GPG签名相关的一些常见问题是什么,为什么会产生这些问题?

Answers:


9

什么是GPG?

GPG或GNU Privacy Guard是一套加密软件。它可以用于加密或签名数据和通信以确保其真实性。

这种加密技术基于密钥对。公钥托管在密钥服务器(例如keyserver.ubuntu.com)上,而私钥则保密。使用公钥,可以验证私钥所做的签名。同样,知道某人的公共密钥将使您可以加密仅由相应秘密密钥的所有者读取的消息。

进一步阅读:日常使用的GnuPG(迷你操作方法...)

这跟我有什么关系

在这种情况下,您要从中下载软件包的apt存储库应该由一个秘密密钥签名,以便您可以验证要安装的软件包来自他们所说的位置。

签名的存储库中的实际文件是Release文件。该文件包含存储库中其他文件的校验和。例如,这是官方Ubuntu 12.10存储库的文件及其相应的GPG签名。安装软件包时,请apt验证签名。

进一步阅读:有关安全apt的所有信息

常见问题

您的计算机已经知道官方Ubuntu档案的公钥,但是如果您想添加PPA或第三方存储库,则必须导入其密钥。如果尝试更新没有密钥的存储库,则会看到类似以下的警告:

W: GPG error: http://ppa.launchpad.net oneiric Release: The following signatures
couldn't be verified because the public key is not available: NO_PUBKEY B725097B3ACC3965

从该存储库安装软件包时,您还将收到警告:

WARNING: The following packages cannot be authenticated!
  dropbox
Install these packages without verification [y/N]?

虽然这些警告可通过运行沉默apt--allow-unauthenticated标志,但它是最好的键添加到您的系统,使您可以增加安全性的优势。

添加PPA时,应使用该add-apt-repository工具,因为它将自动为您添加密钥。如果需要手动添加密钥,请使用以下命令:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID_HERE

如果您不想在不使用终端的情况下执行此操作,请查阅此答案

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.