网络安全实验——pgp的使用

这篇具有很好参考价值的文章主要介绍了网络安全实验——pgp的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网络安全实验——pgp的使用

实验要求

① 以三到四人为一组,通过使用pgp软件完成密钥的生成,公钥的公布,利用pgp保护数据并传输,验证签名等工作。

② 这里我使用GnuPG

实验原理

PGP

PGP(英语:Pretty Good Privacy,直译:优良保密协议)是一套用于讯息加密、验证的应用程序。

PGP加密由一系列散列、数据压缩、对称密钥加密,以及公钥加密的算法组合而成。每个步骤均支持几种算法,用户可以选择一个使用。每个公钥均绑定一个用户名和/或者E-mail地址。该系统的最初版本通常称为可信网或X.509系统;X.509系统使用的是基于数字证书认证机构的分层方案,该方案后来被加入到PGP的实现中。当前的PGP加密版本通过一个自动密钥管理服务器来进行密钥的可靠存放。

GnuPG

GNU Privacy Guard(GnuPG 或 GPG)是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。GnuPG 是自由软件,遵循 IETF 订定的 OpenPGP 技术标准设计,并与 PGP 保持兼容。

GnuPG 使用用户自行生成的非对称密钥对来加密信息,由此产生的公钥可以同其他用户以各种方式交换,如密钥服务器。他们必须小心交换密钥,以防止得到伪造的密钥。GnuPG 还可以向信息添加一个数字签名,这样,收件人可以验证信息完整性和发件人。

GnuPG 支持的各种加密算法:

  • 对称加密:CAST5、Camellia、Triple DES、AES、Blowfish、Twofish、ChaCha20、IDEA (从 1.4.13 和 2.0.20 开始被添加)
  • 非对称加密:ElGamal、RSA、DSA、ECDSA、EdDSA
  • 密码散列函数:RIPEMD-160、MD5、SHA-1、SHA-2、Tiger
  • 数字签名:DSA、RSA、ECDSA、EdDSA

实验步骤

安装GnuPG

网络安全实验——pgp的使用

生成密钥

创建密钥
root@VM-4-4-centos ~# gpg --gen-key 
gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
选择密钥类型
Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1
选择密钥有效时长

这里我选择无限期

Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y
填写个人信息
GnuPG needs to construct a user ID to identify your key.

Real name: Yi Junquan
Email address: 2696974822@qq.com
Comment: software
You selected this USER-ID:
    "Yi Junquan (software) <2696974822@qq.com>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O


设置密码
You need a Passphrase to protect your secret key.

网络安全实验——pgp的使用

生成密钥
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
jsiasohfaosaojdoajdojajjajjjahhahsoasduoduaoudjldajldasjkdaskdiouoeiajksajWe need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 20424507 marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/20424507 2022-06-07
      Key fingerprint = FC27 85F2 925C 096B 10A2  0CA9 F843 5EE8 2042 4507
uid                  Yi Junquan (software) <2696974822@qq.com>
sub   2048R/AA8CDF2E 2022-06-07

上面的字符串"20424507",这是"用户ID"的Hash字符串,可以用来替代"用户ID"。

管理密钥

列出密钥

list-keys参数列出系统中已有的密钥

root@VM-4-4-centos ~#  gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   2048R/20424507 2022-06-07
uid                  Yi Junquan (software) <2696974822@qq.com>
sub   2048R/AA8CDF2E 2022-06-07

第一行显示公钥文件名(pubring.gpg),第二行显示公钥特征(2048位,Hash字符串和生成时间),第三行显示"用户ID",第四行显示私钥特征。

输出密钥

公钥文件(.gnupg/pubring.gpg)以二进制形式储存,armor参数可以将其转换为ASCII码显示。

gpg --armor --output public-key.txt --export 20424507

"用户ID"指定哪个用户的公钥,output参数指定输出文件名(public-key.txt)。

类似地,export-secret-keys参数可以转换私钥。

上传公钥

公钥服务器是网络上专门储存用户公钥的服务器。send-keys参数可以将公钥上传到服务器。

root@VM-4-4-centos ~# gpg  --keyserver hkp://keyserver.ubuntu.com:80 --send-keys 20424507
gpg: sending key 20424507 to hkp server keyserver.ubuntu.com

在服务器上搜索公钥是否上传成功:

root@VM-4-4-centos ~# gpg --keyserver hkp://keyserver.ubuntu.com:80 --search-keys 2696974822@qq.com
gpg: searching for "2696974822@qq.com" from hkp server keyserver.ubuntu.com
(1)	Yi Junquan (software) <2696974822@qq.com>
	  2048 bit RSA key 20424507, created: 2022-06-07
Keys 1-1 of 1 for "2696974822@qq.com".  Enter number(s), N)ext, or Q)uit > q

可见上传公钥成功

获取他人公钥

这里我获取的是x同学的公钥(我与他以及y同学合作完成该实验)。

root@VM-4-4-centos ~# gpg --keyserver hkp://keyserver.ubuntu.com:80 --search-keys Corona09@163.com
gpg: searching for "Corona09@163.com" from hkp server keyserver.ubuntu.com
(1)	Corona X <Corona09@163.com>
	  2048 bit RSA key C282680C, created: 2022-06-07
Keys 1-1 of 1 for "Corona09@163.com".  Enter number(s), N)ext, or Q)uit > 1
gpg: requesting key C282680C from hkp server keyserver.ubuntu.com
gpg: key C282680C: public key "Corona X <Corona09@163.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

加密和解密

加密

encrypt参数用于加密。gpg --recipient [用户ID] --output demo.en.txt --encrypt demo.txt

recipient参数指定接收者的公钥,output参数指定加密后的文件名,encrypt参数指定源文件。运行上面的命令后,demo.en.txt就是已加密的文件,可以把它发给对方。

root@VM-4-4-centos /tmp# gpg --recipient C282680C --output yjqencrypt.txt --encrypt yjqtest.txt 
gpg: 160789BF: There is no assurance this key belongs to the named user

pub  2048R/160789BF 2022-06-07 Corona X <Corona09@163.com>
 Primary key fingerprint: DC1B 2EBA D490 E664 F333  C433 77A6 5B9B C282 680C
      Subkey fingerprint: 6F25 A88F 9602 D8EE BE3E  5425 59E7 8A88 1607 89BF

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

源文件和加密后的文件内容如下:

root@VM-4-4-centos /tmp# cat yjqtest.txt 
美哉吾校,真理之花,青年之模楷,邦国之荣华,
校旗飘扬,与日俱长,为世界之光,为世界之光。
美哉吾校,鼓舞群伦,启发我睿智,激励我热忱,
英俊济跄,经营四方,为世界之光,为世界之光。
美哉吾校,性灵泉源,科学之奥府,艺术之林园,
实业扩张,进步无疆,为世界之光,为世界之光。
美哉吾校,灿烂文明,实学培国本,民族得中兴,
宇土茫茫,山高水长,为世界之光,为世界之光。
root@VM-4-4-centos /tmp# cat yjqencrypt.txt 
 
斃Ԍ6g¼򹯤IY󿾡u:㪒<!;mq>٭F]B򌹨0@·>ª8
               Ң#2­PBIgK%膗69ʷЛ
ܤᡊ⬸dW¯8m²蘚eVL̷҃𾱽°G1򣊣6ךtx£½뿾{pi:ÿ¸ؘܴ¦.ݨ¡k2¿¥þ݀˞׎©¡« 
                                                ¹${r9%󅗓PΘ򊩖
                                                          PW¹ԨP݉ɮþ#뮲Ϻ¨
                                                                      &򻋸ۚ¹Ē1 
]nj룏ÿ"P*4Պz·                                                               GwթºǮG¸ܗ¨Dj犻ާ亨©򔠼Ѧ򆢨͊­ªz/-$J}'󿧢D´mоۖz0Ԫ2ÿ*%«ÿS{W󳂇حDΐ`w¬ɠ=?Ŕʗª𐕳
ĮTӇZ§:¹½Pʃ6¡§窖J܃­bi󿾴`񹋸©bO9"1ѯ+T¿{¹¹¢(7¸m­8Y"±                                                                                                                                                                  ¹֜ӓdnי¸87Swֶl¢l㐷^JȥL'¸Ї෤qŦʽeM­eҷ)V㳪ගѪ¸D(TI(⣓^
   ¶°
¹´`¢
    $«𚂿0G8S?|5« ѨہVv­⏎  
解密

由x同学解密后得到

网络安全实验——pgp的使用

同时我使用gpg --decrypt mod.en.txt 解密x同学发来的文件。

root@VM-4-4-centos /tmp# gpg --decrypt mod.en.txt 

You need a passphrase to unlock the secret key for
user: "Yi Junquan (software) <2696974822@qq.com>"
2048-bit RSA key, ID AA8CDF2E, created 2022-06-07 (main key ID 20424507)

gpg: encrypted with 2048-bit RSA key, ID AA8CDF2E, created 2022-06-07
      "Yi Junquan (software) <2696974822@qq.com>"
泉佬我榜, 西交希望; 软院代表, 世界之光.(ps 看个玩笑就好
__   __  _  ___    _____ ___  _     
\ \ / / | |/ _ \  |_   _/ _ \| |    
 \ V /  | | | | |   | || | | | |    
  | | |_| | |_| |   | || |_| | |___ 
  |_|\___/ \__\_\   |_| \__\_\_____|

签名

签名
root@VM-4-4-centos /tmp# vim yjqsigntest.txt
root@VM-4-4-centos /tmp# gpg --sign yjqsigntest.txt 

You need a passphrase to unlock the secret key for
user: "Yi Junquan (software) <2696974822@qq.com>"
2048-bit RSA key, ID 20424507, created 2022-06-07

验证签名

由x同学验证签名得到:

网络安全实验——pgp的使用

签名+加密

gpg --local-user [发信者ID] --recipient [接收者ID] --armor --sign --encrypt demo.txt

local-user参数指定用发信者的私钥签名,recipient参数指定用接收者的公钥加密,armor参数表示采用ASCII码形式显示,sign参数表示需要签名,encrypt参数表示指定源文件。

root@VM-4-4-centos /tmp#  gpg --local-user 20424507  --recipient  C282680C --armor --sign --encrypt yjqsignencrypt.txt

You need a passphrase to unlock the secret key for
user: "Yi Junquan (software) <2696974822@qq.com>"
2048-bit RSA key, ID 20424507, created 2022-06-07

gpg: 160789BF: There is no assurance this key belongs to the named user

pub  2048R/160789BF 2022-06-07 Corona X <Corona09@163.com>
 Primary key fingerprint: DC1B 2EBA D490 E664 F333  C433 77A6 5B9B C282 680C
      Subkey fingerprint: 6F25 A88F 9602 D8EE BE3E  5425 59E7 8A88 1607 89BF

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

网络安全实验——pgp的使用

实验结果

成功完成密钥的生成,公钥的公布,利用pgp保护数据并传输,验证签名等工作。文章来源地址https://www.toymoban.com/news/detail-457794.html

到了这里,关于网络安全实验——pgp的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络安全实验——SSL_CA的使用

    ① 创建一个自签名的根证书颁发机构。 ② 创建web服务器的私钥和公钥,输入证书信息,产生“证书签名请求(csr)”。 ③ 生成用户证书并进行签名。 ④ 将私钥、签名密钥与CA的公钥一起打包到一个文件中。 工具压缩包老师有发,也可以通过此链接下载:ssl-ca ssl概述 SSL协议

    2024年02月07日
    浏览(38)
  • 网络安全实验——web安全

    目录 实验目的 实验原理 实验内容 实验1 1. 地址栏中执行脚本 2. 对DOM技术的利用 实验2  1.jump1 2.jump2 3.get 4.xss 5.注册bss 6.盗取cookie 7.分析cookie  实验3 一.搭建IIS服务器 二.身份验证和权限设置 三.IP地址和域名限制 四.安全通信 五. 单点登录  实验总结 1. 了解什么是XSS 2. 掌握盗

    2024年02月13日
    浏览(46)
  • 网络安全—综合渗透实验

    综合实验 【实验描述】 随着互联网的普及和快速发展,互联网产品多样化、迭代快的特点为一些企业赢得了机会,同样也给企业带来了众多安全问题。如网络安全、系统安全、web安全、数据安全等。 本实验模拟企业复杂网络、复杂应用环境,通过数据包分析、漏洞挖掘、渗

    2024年02月15日
    浏览(51)
  • 实验五 网络安全加固

    目录 一、实验内容 二、实验环境 三、实验步骤

    2024年02月09日
    浏览(39)
  • 网络安全实验室|网络信息安全攻防学习平台(脚本关1-6)

    传送门: http://hackinglab.cn/ 点击此处开启抓包,send ti repeater 模块 脚本来源: https://blog.csdn.net/hzxtjx/article/details/125692349 使用requests库向网站发送HTTP请求,并使用re模块使用正则表达式从网站的HTML内容中提取信息。所选的代码块定义了一个正则表达式模式r’/n(.*?)=i’。此模式

    2024年02月08日
    浏览(77)
  • 网络安全渗透测试实验一

    理解网络扫描、网络侦察的作用;通过搭建网络渗透测试平台,了解并熟悉常用搜索引擎、扫描工具的应用,通过信息收集为下一步渗透工作打下基础。 系统环境:Kali Linux 2、Windows 网络环境:交换网络结构 实验工具: Metasploitable2(需自行下载虚拟机镜像);Nmap(Kali);

    2023年04月26日
    浏览(53)
  • 网络安全实验——安全通信软件safechat的设计

    仅供参考,请勿直接抄袭,抄袭者后果自负。 仓库地址: 后端地址:https://github.com/yijunquan-afk/safechat-server 前端地址: https://github.com/yijunquan-afk/safechat-client CosUpload.java中的COS设置,需要自己配 结合所学安全机制设计实现一个简单的安全通信软件,包含 机密性,消息认证 等基

    2024年01月23日
    浏览(56)
  • 信息安全实验——网络扫描技术

    目录 一、实验项目名称 二、实验目的 三、具体实验内容 四、实验步骤 (一)Nmap使用 1、首先进入自己的终端,查看自己的主机eth0接口的ip地址,如下图: 2、 然后进入桌面上的nmap程序,出现以下界面: 3、 输入目标ip地址,点击扫描,等待Nmap向主机发送ARP的ping数据包  

    2023年04月24日
    浏览(59)
  • 网络安全实验室2.基础关

    url:http://lab1.xseclab.com/base1_4a4d993ed7bd7d467b27af52d2aaa800/index.php 查看网页源代码的方式有4种,分别是:1、鼠标右击会看到”查看源代码“,这个网页的源代码就出现在你眼前了;2、可以使用快捷Ctrl+U来查看源码;3、在地址栏前面加上view-source,如view-source:https://www.baidu.com ;

    2023年04月17日
    浏览(53)
  • 防火墙USG5500安全实验-网络地址转换实验

    防火墙USG5500安全实验-网络地址转换实验 实验目的 通过本实验,你将了解NAT outbound 的工作原理及详细配置。 组网设备 USG防火墙一台,PC机两台。 实验拓扑图 实验步骤 - 1 配置PC1、PC3和PC2的IP地址分别为192.168.1.11/24、10.1.1.11/24、2.2.2.11/24。 2 设置防火墙GE0/0/0、GE0/0/3和GE0/0/1的

    2024年02月03日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包