gpg加密命令 linux_用 PGP 保护代码完整性(四):将主密钥移到离线存储中 | Linux 中国...
https://www.linux.com/blog/learn/pgp/2018/3/protecting-code-integrity-pgp-part-4-moving-your-master-key-offline-storage 作者 | Konstantin Ryabitsev译者 | qhwdw ?共计翻译:175.5 篇 贡献时间:421 天
如果开发者的 PGP 密钥被偷了,危害非常大。了解一下如何更安全。
在本系列教程中,我们为使用 PGP 提供了一个实用指南。你可以从下面的链接中查看前面的文章:
◈ 第一部分:基本概念和工具[1]◈ 第二部分:生成你的主密钥[2]◈ 第三部分:生成 PGP 子密钥[3]
这是本系列教程的第四部分,我们继续本教程,我们将谈一谈如何及为什么要将主密钥从你的家目录移到离线存储中。现在开始我们的教程。
清单
◈ 准备一个加密的可移除的存储(必要)◈ 备份你的 GnuPG 目录(必要)◈ 从你的家目录中删除主密钥(推荐)◈ 从你的家目录中删除吊销证书(推荐)
考虑事项
为什么要从你的家目录中删除你的主 [C] 密钥 ?这样做的主要原因是防止你的主密钥失窃或意外泄露。对于心怀不轨的人来说,私钥对他们具有很大的诱惑力 —— 我们知道有几个恶意软件成功地实现了扫描用户的家目录并将发现的私钥内容上传。
对于开发者来说,私钥失窃是非常危险的事情 —— 在自由软件的世界中,这无疑是身份证明失窃。从你的家目录中删除私钥将帮你防范这类事件的发生。
备份你的 GnuPG 目录
!!!绝对不要跳过这一步!!!
备份你的 PGP 密钥将让你在需要的时候很容易地恢复它们,这很重要!(这与我们做的使用 paperkey 的灾难级备份是不一样的)。
准备可移除的加密存储
我们从取得一个(最好是两个)小型的 USB “拇指“ 驱动器(可加密 U 盘)开始,我们将用它来做备份。你首先需要去加密它们:
加密密码可以使用与主密钥相同的密码。
备份你的 GnuPG 目录
加密过程结束之后,重新插入 USB 驱动器并确保它能够正常挂载。你可以通过运行 mount
命令去找到设备挂载点的完全路径。(在 Linux 下,外置介质一般挂载在 /media/disk
下,Mac 一般在它的 /Volumes
下)
你知道了挂载点的全路径后,将你的整个 GnuPG 的目录复制进去:
$ cp -rp ~/.gnupg [/media/disk/name]/gnupg-backup
(注意:如果出现任何套接字不支持的错误,没有关系,直接忽略它们。)
现在,用如下的命令去测试一下,确保它们能够正常地工作:
$ gpg --homedir=[/media/disk/name]/gnupg-backup --list-key [fpr]
如果没有出现任何错误,说明一切正常。弹出这个 USB 驱动器并给它粘上一个明确的标签,以便于你下次需要它时能够很快找到它。接着,将它放到一个安全的 —— 但不要太远 —— 的地方,因为从现在起,你需要偶尔使用它来做一些像编辑身份信息、添加或吊销子证书、或签署其它人的密钥这样的事情。
删除主密钥
我们家目录中的文件并没有像我们所想像的那样受到保护。它们可能会通过许多不同的方式被泄露或失窃:
◈ 通过快速复制来配置一个新工作站时的偶尔事故◈ 通过系统管理员的疏忽或恶意操作◈ 通过安全性欠佳的备份◈ 通过桌面应用中的恶意软件(浏览器、pdf 查看器等等)◈ 通过跨境胁迫
使用一个很好的密码来保护你的密钥是降低上述风险的一个很好方法,但是密码能够通过键盘记录器、背后窥视、或其它方式被发现。基于以上原因,我们建议去配置一个从你的家目录上可移除的主密钥,将它保存在一个离线存储中。
删除你的主密钥
请查看前面的节,确保你有完整的你的 GnuPG 目录的一个备份。如果你没有一个可用的备份,下面所做的操作将会使你的主密钥失效!!!
首先,识别你的主密钥的 keygrip:
$ gpg --with-keygrip --list-key [fpr]
它的输出应该像下面这样:
pub rsa4096 2017-12-06 [C] [expires: 2019-12-06]
111122223333444455556666AAAABBBBCCCCDDDD
Keygrip = AAAA999988887777666655554444333322221111
uid [ultimate] Alice Engineer <alice@example.org>
uid [ultimate] Alice Engineer <allie@example.net>
sub rsa2048 2017-12-06 [E]
Keygrip = BBBB999988887777666655554444333322221111
sub rsa2048 2017-12-06 [S]
Keygrip = CCCC999988887777666655554444333322221111
找到 pub
行下方的 Keygrip
条目(就在主密钥指纹的下方)。它与你的家目录下 .gnupg
目录下的一个文件是一致的:
$ cd ~/.gnupg/private-keys-v1.d
$ ls
AAAA999988887777666655554444333322221111.key
BBBB999988887777666655554444333322221111.key
CCCC999988887777666655554444333322221111.key
现在你做的全部操作就是简单地删除与主密钥 keygrip 一致的 .key
文件:
$ cd ~/.gnupg/private-keys-v1.d
$ rm AAAA999988887777666655554444333322221111.key
现在,如果运行 --list-secret-keys
命令将出现问题,它将显示主密钥丢失(#
表示不可用):
$ gpg --list-secret-keys
sec# rsa4096 2017-12-06 [C] [expires: 2019-12-06]
111122223333444455556666AAAABBBBCCCCDDDD
uid [ultimate] Alice Engineer <alice@example.org>
uid [ultimate] Alice Engineer <allie@example.net>
ssb rsa2048 2017-12-06 [E]
ssb rsa2048 2017-12-06 [S]
删除吊销证书
你应该去删除的另一个文件是吊销证书(删除之前,确保你的备份中有它),它是使用你的主密钥自动创建的。吊销证书允许一些人去永久标记你的证书为吊销状态,这意味着它无论在任何用途中将不再被使用或信任。一般是使用它来吊销由于某些原因不再受控的一个密钥 —— 比如,你丢失了密钥密码。
与使用主密钥一样,如果一个吊销证书泄露到恶意者手中,他们能够使用它去破坏你的开发者数字身份,因此,最好是从你的家目录中删除它。
cd ~/.gnupg/openpgp-revocs.d
rm [fpr].rev
在下一篇文章中,你将学习如何保护你的子密钥。敬请期待。
从来自 Linux 基金会和 edX 的免费课程 “Linux 入门”[4] 中学习更多 Linux 知识。
via: https://www.linux.com/blog/learn/pgp/2018/3/protecting-code-integrity-pgp-part-4-moving-your-master-key-offline-storage
作者:Konstantin Ryabitsev[6] 译者:qhwdw 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
gpg加密命令 linux_用 PGP 保护代码完整性(四):将主密钥移到离线存储中 | Linux 中国...相关推荐
- gpg加密命令 linux_用 PGP 保护代码完整性(五):将子密钥移到一个硬件设备中 | Linux 中国...
在这个系列教程中,将为你提供使用 PGP 和保护你的私钥的最佳体验.-- Konstantin Ryabitsev致谢译自 | linux.com 作者 | Konstantin Ryabitsev译 ...
- gpg加密命令 linux_使用 GPG 加密和解密文件
目标:使用 GPG 加密文件 发行版:适用于任何发行版 要求:安装了 GPG 的 Linux 或者拥有 root 权限来安装它. 难度:简单 约定: # - 需要使用 root 权限来执行指定命令,可 ...
- gpg加密命令 linux_加密方案 GNUPG amp; Yubikey
随着时间流逝,我生活中出现的设备越来越多,密码也越来越多,因为记忆成本很多密码强度都不够高,不安全,所以迫切需要一款密码学加密工具来真正解放主动记忆密码,能够将密码存储在一个文件中并且保证这个文件绝对 ...
- git推送密码_保护代码完整性(六):在 Git 上使用 PGP
我们继续我们的 PGP 实践系列,来看看签名标签的标签和提交,这可以帮你确保你的仓库没有被篡改. 在本系列教程中,我们提供了一个使用 PGP 的实用指南,包括基本概念和工具.生成和保护你的密钥.如果你 ...
- 扫描代码重大漏洞 java_超过 75% 的开源软件安全漏洞存在于间接依赖中 | Linux 中国...
本文字数:2323,阅读时长大约:3分钟导读:JavaScript.Ruby 和 Java 是间接依赖中存在缺陷最多的生态系统.https://linux.cn/article-12360-1.htm ...
- gpg加密命令 linux_Ubuntu下加密命令GPG和KEY
一.GPG(GNU privacy guard) 在Ubuntu Linux 下,用GPG命令就可以实现文件的加密和解密,而且GPG基本上每个发行版都会预装. 假如你要加密的文件名为 secret.t ...
- linux加密压缩文件gpg,linux文件--GPG 加密解密
引用 # gpg --gen-key gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc. This program ...
- 基于JAVA实现GPG加密解密(Windows+java两种方式)
最近业务上遇到一个很棘手的问题,客户要求在调用他们的时候要对报文进行加密解密,然后方式就是用pgp的方式进行加密解密,相信有很多小伙伴和我一样刚开始看到这个pgp(或者gpg)加密都是一脸懵,啥玩意儿 ...
- 加密与解密的基本概念--GPG加密工具的使用
加密与解密 信息传递中的风险:电脑黑客,流量失控,开发人员,高管习惯,商业间谍,合作伙伴,离职人员,出差人员等等方面. 什么是加密与解密 加密:发送方发送信息之前进行加密发送密文 解密:接收方接收密文 ...
最新文章
- 华为云客户端_华为云新一代S6云服务器缘何深受中小企业青睐?
- 把文档放到PNG图片中
- 高通平台device tree生成platform device的过程(MSM8909)
- leetcode 95. Unique Binary Search Trees II | 96. Unique Binary Search Trees
- 必读:Java Java
- asp.net 与 java 2017_[ASP.net教程]C#与JAVA学习感悟
- 从SQL SERVER 2000到SQL SERVER 2005 视图中存在 ORDER BY 语句的完全解决方案
- 鸿蒙系统华为mate10,从3899跌至1040,2K分辨率+4000mAh,可升级鸿蒙系统
- 私钥、公钥、数字签名、数字证书、HTTPS
- github 中redisPhpAdmin redis 可视化界面
- sqlserver201无效的许可证书_sql提示无效数字
- java程序开发的简历_Java程序开发工作简历
- [Azure - VNet] Azure网络带宽的性能测试
- “互联网+工业”下的大数据应用场景分析
- Dubbo笔记 ⑤ : 服务发布流程 - Protocol#export
- DNSPod十问王安:中小企业的数字化是伪命题吗?
- 示波器仪器设备自动化校准计量检测软件系统NSAT-3010
- android bmp合成mpeg4,FFmpeg 图片合成视频
- 关于python的漫画_不能错过的Python漫画
- 世界顶尖青年发明家:13华人上榜[其中5人毕业于中科大]
热门文章
- TensorSpace:超酷炫3D神经网络可视化框架
- 从2017年顶会论文看Attention Model - PaperWeekly 第50期
- 巴什博弈例题:NYOJ23;HDU:2149,1847,2897,2188
- 输入法注入源码_将注入进行到底:利用Mono注入C#游戏脚本
- abstract类_走进C# abstract,了解抽象类与接口的异同
- InfluxData【付诸实践 01】SpringBoot 集成时序数据库 InfluxDB 应用分享(InfluxDB实例+Feign接口调用InfluxDB API)源码分享
- 树莓4派开机动画_树莓派4+无屏幕安装系统+ssh远程+远程桌面
- android 8 ril,Android系统启动——8 附录2:相关守护进程简介
- 【Redis系列】深入浅出Redis主从复制之读写分离【一篇搞懂Redis复制】
- Elasticsearch系列「零」架构解析与最佳实践