GPG简介

简介

The GNU Privacy Guard

GnuPG 是 RFC4880 定义的 OpenPGP 标准(也称为 PGP)的完整且免费的实现。GnuPG 允许您加密和签署您的数据和通信;它具有多功能的密钥管理系统,以及用于各种公钥目录的访问模块。GnuPG,也称为 GPG,是一种命令行工具,具有易于与其他应用程序集成的功能。提供了丰富的前端应用程序和库。GnuPG 还提供对 S/MIME 和安全外壳 (ssh) 的支持。
自 1997 年推出以来,GnuPG 是自由软件(这意味着它尊重您的自由)。它可以根据 GNU 通用公共许可证的条款自由使用、修改和分发。

GnuPG 是一个没有任何图形用户界面的命令行工具。它是一个通用的加密引擎,可以直接从命令行提示符、shell 脚本或其他程序使用。因此,GnuPG经常被用作其他应用程序的实际加密后端。

即使在命令行上使用,它也能提供所需的所有功能 - 这包括交互式菜单系统。此工具的命令集将始终是任何前端提供的命令的超集。

GPG(GNU Privacy Guard)是一种用于数据加密和签名的自由软件工具,遵循OpenPGP标准。它是由GNU项目开发的,主要用于保护电子邮件和文件的安全。

功能

  • 数据加密:GPG可以对文件和电子邮件进行加密,确保只有授权的接收者能够读取内容。它使用对称和非对称加密算法,常用的算法包括AES、RSA等。

    • 对称加密:使用单一密钥对数据进行加密和解密,适合对称密钥分发的场景。
    • 非对称加密:使用一对公钥和私钥进行加密和解密。公钥用于加密数据,私钥用于解密数据。
  • 数字签名:GPG允许用户对文件和电子邮件进行数字签名,确保数据未被篡改,并验证发送者的身份。签名可以防止内容在传输过程中被修改。

    • 签名数据:数字签名确保数据来源的真实性和数据的完整性。签名可以应用于文件、电子邮件等各种数据。
    • 验证签名:接收者可以使用发送者的公钥来验证数据的签名,确认数据未被篡改。
  • 密钥管理:GPG提供全面的密钥管理功能,包括生成、分发、撤销和存储密钥。用户可以生成公钥和私钥对,其中公钥用于加密和验证签名,私钥用于解密和创建签名。

    • 生成密钥对:用户可以生成自己的公钥和私钥对。
    • 导入和导出密钥:支持从文件或剪贴板导入和导出公钥和私钥。
    • 密钥服务器:GPG允许将公钥上传到密钥服务器,方便其他人获取。
  • 跨平台支持

    • GPG与多种操作系统兼容,包括Linux、Windows和macOS。
    • 支持与其他OpenPGP兼容的软件进行互操作。
  • 命令行工具:GPG主要通过命令行界面使用,但也有许多图形化界面和插件可供选择,使其更易于使用。


用途

  • 电子邮件加密:保护电子邮件内容的隐私,防止被未授权人员读取。
  • 软件签名:验证软件包和源代码的真实性,确保软件没有被恶意篡改。
  • 文件保护:对重要文件进行加密,防止敏感信息泄露。

例子:

  • Git:Git 是一个流行的分布式版本控制系统,它可以使用 GPG 签名来验证提交者的身份。使用 GPG 签名可以确保代码提交的完整性和作者的身份。
# 配置 Git 使用 GPG 签名
git config --global user.signingkey <your-key-id>
git config --global commit.gpgsign true

# 签署提交
git commit -S -m "Your commit message"
  • Docker:GPG 在 Docker 中的应用包括签名镜像和验证签名镜像。通过对镜像进行签名,开发者可以保证镜像在发布后未被篡改,用户在拉取镜像时可以验证其来源和完整性。
# 签名镜像
export DOCKER_CONTENT_TRUST=1
docker push your-repo/your-image:tag
# 拉取并验证镜像
export DOCKER_CONTENT_TRUST=1
docker pull your-repo/your-image:tag

Ubuntu使用例子

sudo apt-get install gnupg

# 生成密钥对,按照提示输入你的信息,如姓名、电子邮件和密码。
gpg --gen-key
# 以获得一个全功能的密钥生成对话框。
gpg --full-generate-key

# 列出公钥pub
gpg --list-keys
# 列出私钥sub
gpg --list-secret-keys

# 使用接收者的公钥加密文件
gpg --encrypt --recipient recipient@example.com file.txt

# 使用私钥解密文件
gpg --decrypt file.txt.gpg

# 对文件进行数字签名
gpg --sign file.txt

# 验证签名
gpg --verify file.txt.gpg

Ubuntu中主要路径和文件

不做密钥配置安装以后,默认会有公钥环文件,密钥指纹缓存文件

  • 公钥环文件:

路径:~/.gnupg/pubring.kbx
说明:存储用户的公钥。

  • 私钥环文件:

路径:~/.gnupg/private-keys-v1.d/
说明:存储用户的私钥。每个私钥都是一个单独的文件,文件名是以其KeyID命名的。

  • 配置文件:

路径:~/.gnupg/gpg.conf
说明:GPG的配置文件,可以在此文件中设置GPG的默认行为。

  • 密钥指纹缓存文件:

路径:~/.gnupg/trustdb.gpg
说明:存储用户信任的密钥的信任度信息。

  • 随机数种子文件:

路径:~/.gnupg/random_seed
说明:用于生成加密操作所需的随机数。


参考:

GPG官网

Ubuntu使用GPG

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值