public-key cryptography and pki
一、 实验目的。
通过对openssl的熟练应用来完成一系列关于证书的操作,包括公/私钥对的申请、分离公钥、加密、解密、数字签名、测速、计算hash值、安全通信等,加深对于公钥加密、私钥解密的过程和公钥设施、ca等概念的理解。
二、 实验结果。
a.配置文件。
在/home/slahser目录下创建一个文件夹certs,专门存放这次实验的内容,将文件复制到/home/slahser/certs(默认目录),用sudo gedit命令打开并将其中的变量dir修改为默认目录/home/slahser/certs(需要改动两处),保存退出。文件配置完毕。根据配置的内容,在默认目录下创建和serial两个文件。
通过助教所给命令,顺利得到和两个文件,如下图:
给颁发证书。
运用指令:openssl req -new -x509 -keyout -out -config
使用助教所给命令得到。
使用助教所给命令得到。
使用助教所给命令,ca使用csr文件生成证书,并且写入crt文件。
对**使用pki
首先修改本地hosts文件使**指向本地ip 127.0.0.1
使用的命令是sudo gedit /etc/hosts,修改后的hosts文件如下。
将私钥和证书合成然后用s_server令启动服务器server,这时候在火狐中打开这时候网页会显示证书不被信任:
原因:颁发机构的证书不被信任。
将手动导入火狐的信任证书列表后,刷新页面,网页能正常打开。
此时终端的server显示accept即成功。
用pki与建立安全的tcp连接。
运用助教给的和然后用自己生成的两个key去替换,效果图一样,在此合并为两张结果图:可以清楚的看到,得到了:”hello world!
client这一端得到了:”i hear you.“
rsa算法和aes算法的性能比较。
用rsa算法加密后生成message_解密后生成message_
生成一个密钥:openssl genrsa -out 1024
用openssl将中的公钥提取出来:openssl rsa -in -pubout -out test_
用公钥加密文件。在默认目录(/home/ustc/certs)中创建一个文本文件然后利用此前生成的公钥test_加密文件:openssl rsautl -encrypt -in -inkey test_ -pubin -out message_
用私钥解密文件:openssl rsautl -decrypt -in message_ -inkey -out message_
用aes算法加密后生成message_aes_解密后生成message_aes_
加密文件 :openssl enc -aes-128-ecb -in -out message_aes_
解密文件:openssl enc -aes-128-ecb -in message_aes_ -out message_aes_ –d
测rsa算法速度(5次)
rsautl -encrypt -in -inkey test_ -pubin -out message_ 2> rsa_enc_后面四次把1替换成)
分析:rsa平均加密时间为:0.012s,平均解密时间为0.014s
测aes算法速度(5次)
time openssl aes-128-cbc -d -salt -in message_aes_ -out message_aes_ 2>aes_enc_后四次把1替换成)
分析:aes平均加密时间比rsa长的多,平均解密时间也比rsa长的多。但是这只是表面现象,因为aes在加密解密过程中均需要输入自己自定义的密码,实际上aes的加密解密速度还是比rsa要快,因为aes是对称加密的,而rsa为不对称加密。
使用speed rsa和speed aes命令来比较。
speed rsa:
speed aes:
分析:可见aes算法比rsa算法要快上很多。rsa算法签名速度远快于校验速度,并且位数越大,这种领先速度越明显,签名速度相对于校验速度越快。
制作数字签名。
数字签名的原理:
发送方将要发送的信息的摘要用私钥加密,形成数字签名,接收方收到信息后,对加密的摘要用发送方的公钥解密,自己对收到的信息进行摘要,比较两者是否一致,从而达到验证是否为发送方发来的信息。
生成公钥/私钥对 genrsa -out 1024
分离出公钥 rsa -in -out -outform pem -pubout
计算hash并且sign hash(用sha256算法为文件签名,输出到文件签名的private key必须为sha256算法产生的,保存在文件中):dgst -sha256 -sign out
用sha256算法验证的数字签名验证的private key为sha256算法产生的文件 -sha256 -prverify
实验结果截图:
校验成功(下图的上半部分可见”verified ok“):
观察结果:1、修改一下然后再次验证,就会得到上图的下半部分(显示为”verification failure“)
2、两次计算的hash值会发现两次不一样。
3、这个实验证明了数字签名具有防抵赖防篡改的作用,只要通过验证就能确定文件唯一的是对方的(防抵赖),在传播过程中没有受到篡改(防篡改),因为原文件只要稍微的修改一下,在对数字签名进行校验的过程中就不能通过。
信息安全导论实验八
实验名称基于windows2003的vpn连接实验。一 实验目的。通过实验加深理解vpn的原理与实现,掌握在windows2003中建立vpn网络连接的步骤与方法。二 实验原理。路由功能属于开放式的连接,若加了路由,则该网段的所有用户都能实现访问。vpn则是用户在拥有合法身份的前提下,通过虚拟拨号连...
信息安全导论实验一
实验编号 四川师范大学信息安全导论实验报告 2016 年 3 月 30 日。级班实验名称 信息安全导论实验。姓名学号指导老师 谭良实验成绩。实验 1 古典密码算法。一 实验目的及要求。二 实验内容。caesar密码。单表置换密码。仿射密码。维吉尼亚密码。三 实验主要流程 基本操作或核心 算法片段 该...
信息安全导论作业
19 网络爬虫是如何工作的?答 在互联网中,网页之间的链接关系是无规律的,它们的关系非常复杂。如果一个爬虫从一个起点开始爬行,那么它将会遇到无数的分支,由此生成无数条的爬行路径,如果任期爬行,就有可能永远也爬不到头,因此要对它加以控制,制定其爬行的规则。世界上没有一种爬虫能够抓取到互联网所有的网页,...