日常处理敏感信息时,在存储、传输方面都有加解密的需求。使用非对称加密算法的方式来保证信息的安全是不错的选择,在kali中就提供了这样的工具——gpg来实现这种方式。

一、实验环境

kali linux gpg(kali系统自带) asdf.c(实验文件,随意一个都可)

二、操作过程:

A、 创建密钥对,用来发送加密数据和进行解密数据的密钥。执行gpg命令会在主目录下创建一个.gnupg子目录

执行gpg命令

        执行gpg命令

.gnupg子目录生成情况

        .gnupg子目录生成情况

我使用的是root用户,因此会在~目录下找到.gnupg(隐藏)文件。若是其他用户,此文件夹应在/home目录下对应的各用户的主目录下可找到。

B、 执行gpg –gen-key生成密钥

输入该密钥的使用者信息用来标志密钥

        输入该密钥的使用者信息用来标志密钥
        
(GnuPG needs to construct a user ID to identify your key)

gpg采集完用户信息后在弹出设置私钥的输入框,输入能记得住的私钥信息两次即可.此私钥信息最好越复杂越好,攻击者能破解的可能性就会越低,加密的信息就会越安全。
输入私钥信息

        输入私钥信息

C、在上一步操作完后,gpg会自动生成公钥信息

生成公钥标识

        生成公钥标识

D、公钥标识生成后,需将公钥信息保存到pub.key文件中,发送给对方。对方使用公钥来加密文件,只有有私钥(在上面输入框中输入的信息)的使用者才能解开公钥加密的文件的密文。

gpg -kv查看已保存的公共密钥

        gpg -kv查看已保存的公共密钥

E、执行gpg –-import pub.key可查看保存好的公钥信息,gpg可使用公钥标识信息来加密文件

保存的公钥信息

        保存的公钥信息

F、执行gpg -ea -r 1A6BF239B19C9405 asdf.c可加密asdf.c文件。 -e代表加密 -a代表ASCII格式,1A6BF239B19C9405密钥标识。此命令执行完后会在当前目录下生成asdf.c.asc加密后的文件。

gpg加密asdf.c文件

        gpg加密asdf.c文件

asdf.c.asc加密后的文件内容

        asdf.c.asc加密后的文件内容

G、执行gpg -o asdf -d asdf.c.asc命令并输入私钥信息,即可解密asdf.c.asc文件的内容,并将解密后的内容保存到asdf文件中

解密成功

        解密成功

加密后和解密后的文件信息对比

        加密后和解密后的文件信息对比

H、不输入私钥信息,解密失败的报错

输入错误的私钥信息后,会提示共有三次输入错误密钥信息的机会

        输入错误的私钥信息后,会提示共有三次输入错误密钥信息的机会

开始第二次输入私钥信息

        开始第二次输入私钥信息

三次私钥信息都输错后,便报错退出解密

        三次私钥信息都输错后,便报错退出解密

三、总结

gpg有保存密钥对的功能,只需一次解密成功后(即匹配到公钥和私钥对),gpg解密同一公钥加密后的内容无需再输入私钥信息。

实操平台:云尘-线上渗透测试平台