如何使用gpg命令加密和解密文件

时间:2020-03-05 15:26:53  来源:igfitidea点击:

互联网上没有绝对安全性或者通过网络。
由于我们的设备经常与互联网连接并且有一些沟通,我们需要保护我们交换的关键信息。
每当我们,家庭或者商业伙伴需要从地球仪的一侧通信敏感信息,加密将是一个欢迎保障。
虽然签名将消息源的标识绑定到此消息,但加密提供机密性。
它确保了数据完整性,消息认证和非拒绝。

加密和签名消息的原则

消息加密使整个消息对任何人都无法读取,而是相应的私钥的所有者。
签署消息时,它会为消息创建一个指纹,以确保内容尚未更改,但它对消息本身没有影响,并且不会加密消息。
指纹可以针对公钥验证。
这不会向任何人发出难以读取的消息,但可以验证该消息是否从发件人中源自发起,并且没有改变。
当然,这要求我们信任公钥。

私有和公共钥匙保证了安全性。
任何私钥都有一个公钥,任何公钥都有一个私钥,它始终是一个映射。
建立安全的通信意味着我们已经与我们信任的人或者组织交换了公钥。
所以每个方都有自己的私钥和其他用户的公钥。

在我们的场景中,有两个人想要沟通,他们将公钥放在Keyserver上:

这意味着My_name @ OniTor必须导入读取器的公钥,反之亦然。
所以要写入[email protected][email protected]将使用读者的公钥,反之亦然。

$gpg --keyserver pgp.mit.edu --search-keys [email protected]
gpg: searching for "[email protected]" from hkp server pgp.mit.edu
(1) reader <[email protected]>
4096 bit RSA key B6D7943C, created: 2016-04-01
$gpg --keyserver pgp.mit.edu --recv-keys B6D7943C

消息的发件人([email protected])可以使用私钥"签名"消息。
接收器([email protected])使用发件人的公钥来验证指示的用户实际发送签名。
这可以防止第三方"欺骗"某人的身份。
它还有助于确保消息完整传输,而不会损坏或者文件损坏。

gpg命令加密和解密文件

加密进程始终创建一个带有".gpg"或者".ca的延伸件"的文件。
因此,通过在终止加密命令时列出内容文件夹来查看。
它不会删除原始文件所以要小心。
解密时,如果使用"--output"参数,则该命令将重定向所指定的文件中的结果。
如果没有参数,它将使用相同的加密文件创建解密的文件,但没有.gpg扩展

使用对称密钥加密

此方法会要求我们输入一个密码,我们将为接收器提供给接收器,以便解密该文件

$gpg -c file_sym

解密对称加密

$gpg --output file-content file_sym.gpg
$gpg file_sym.gpg
$gpg -d file_sym.gpg
  • 第一个命令创建一个名为file-content的解密文件
  • 第二个命令用结果创建解密的文件file_sym。
  • gpg -d将结果打印在控制台上。

对称解密将要求用于加密文件的密码并将置于解密文件的结果

使用特定用户的公钥加密

具有公钥的加密意味着我们已经拥有与我们想要沟通的人的公钥。
因此,我们将首先通过在keyring上列出公钥来选择收件人,以便我们将使用他的uid的值来加密文件。
--armor参数用于ASCI装甲邮件,用邮件发送文件

$gpg --encrypt --armor --recipient [email protected] file_pub

加密和签署公钥

当我们想签署文件发送文件时,这意味着接收器和我们已生成已换货的公钥。
发件人必须了解他自己的密码,使他能够访问他将用于签署加密消息的私钥

$gpg --sign --encrypt --armor --recipient [email protected] file_pub_sign
You need a passphrase to unlock the secret key for
user: "reader <[email protected]>"

看到读者@ oniToro需要自己的密码来签署他将发送到[email protected]的加密文件

使用公钥加密倍数文件

要加密倍数文件,我们使用的两个参数:--encrypt-files或者- dulifile(强制性,后跟--encrypt)。
我们可以看到我们不使用--sign参数。
在我的测试期间,它似乎并不合作。

$gpg --encrypt-files --armor --recipient [email protected] course car
$gpg --multifile --encrypt --armor --recipient [email protected] course car

用私钥解密

使用收件人的公钥加密文件时,我们将通过通信方式发送给他。
要解除收到的文件,他将使用与自己用于加密文件的自己的公钥(他自己的密码)使用私钥(由他自己的密码引用)。
要将加密文件解密到数字内容,而且我们将与下面看到的命令相同

$gpg file_pub.asc
You need a passphrase to unlock the secret key for
user: "my_name (my-key-pair) <[email protected]>"
$gpg file_pub_sign.asc
You need a passphrase to unlock the secret key for
user: "my_name (my-key-pair) <[email protected]>"
$gpg --decrypt-files course.asc car.asc

最后命令解密多个文件

加密电子邮件

要加密并签署电子邮件,我们可以将消息写入文件,使用GPG加密并使用我们所看到的方法签名,我们可以通过正常方式发送。
接收器必须有公钥才能解密消息。

我们还可以安装eNigmail,该enigmail可用于使用我们拥有的收件人的公钥加密来自Thunderbird的电子邮件

# apt-get install enigmail

启动Thunderbird,它将启动Enigmail的安装向导:

  • 我们如何配置ENIGMAIL:扩展配置
  • 创建或者导入OpenGPG键:导入现有的公共和密钥
  • 导入OpenGPG键:选择位于/home/username/.gnupg/中的公共和私钥文件。选择贪婪和secring文件。
  • 键选择:选择将收到加密电子邮件的收件人:[email protected]

现在设置完成后,我们可以使用Thunderbird为收件人写一条新邮件。

我们将看到当我们选择相同的电子邮件时将自动激活加密。