我可以使用 GPG 智能卡解密文件吗?

我可以使用 GPG 智能卡解密文件吗?

我正在尝试弄清楚我可以用 Librem Key 做什么,不能做什么,就使用钥匙槽而言。我生成了一个包含签名、加密和身份验证子密钥的 RSA 4096 位密钥,将其备份到 CD,然后使用keytocard.

然后,我删除了 Librem 密钥,删除了生成的密钥的公钥和私钥,然后重新插入 Librem 密钥。现在,我可以使用存储在卡上的公钥来加密文件:

[test@localhost ~]$ gpg -r [email protected] --encrypt test_unencr
gpg: key [snipped-hex-string-1]: public key "[email protected] <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: checking the trustdb
gpg: no ultimately trusted keys found
gpg: [snipped-hex-string-2]: There is no assurance this key belongs to the named user

sub  rsa4096/[snipped-hex-string-2] 2020-10-28 [email protected] <[email protected]>
 Primary key fingerprint: [snipped-hex-string-3]
      Subkey fingerprint: [snipped-hex-string-4]

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Use this key anyway? (y/N) y

[test@localhost ~]$ ls | grep test_unencr
test_unencr
test_unencr.gpg

但如果我尝试解密该文件,则会收到错误消息:

[test@localhost ~]$ gpg --decrypt -r [email protected] test_unencr.gpg
gpg: encrypted with rsa4096 key, ID [snipped-hex-string-1], created 2020-10-28
      "[email protected] <[email protected]>"
gpg: public key decryption failed: No secret key
gpg: decryption failed: No secret key

我认为这些智能卡的部分目的是它们允许您随身携带私钥并使用它,同时防止恶意软件读取您的私钥。有没有办法使用 GPG 智能卡来解密文件,或者这是不可能的?

答案1

注意:这过于简化,但这是基础知识,请不要跳过我,我们正在尝试解释子密钥和主密钥对的基础知识。这并不意味着是确定的。

是的,这是可能的,但是当卡安装时,必须正确设置,通常您将在永不过期的主 gpg 密钥对上创建,然后使用该对再次生成子密钥,通常一个用于签名,一个用于加密,然后备份主密钥并将其从您的笔记本电脑中删除,然后将子密钥传输到卡上,然后可以使用该卡来加密和解密消息和文件,但如果您的笔记本电脑或卡丢失或被盗,您并没有丢失主密钥,并且可以允许子密钥使您的备份主密钥对过期并生成新的。

编辑:要执行您在消息中所说的操作,您需要删除主密钥对,然后导入子密钥。如果您简单地使子项删除主项,它也会删除主子项,因此生成主项备份,然后生成子项备份,删除主项然后导入子项。

编辑:正确的步骤过程是

  • 生成主密钥对
  • 备份主密钥
  • 生成子项
  • 备份秘密子项
  • 删除主密钥
  • 导入子项
  • 将钥匙转移到卡或笔记本电脑等。

相关内容