郝博雅

导航

2017-2018-1 20155205 实验五 通讯协议设计

2017-2018-1 20155205 实验五 通讯协议设计

基础知识

  • OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

  • OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。

  • 对称加密算法 OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。

  • 非对称加密算法 OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用户密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。

  • 信息摘要算法 OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事实上包括了SHA和SHA1两种信息摘要算法,此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。

  • 密钥和证书管理 密钥和证书管理是PKI的一个重要组成部分,OpenSSL为之提供了丰富的功能,支持多种标准。

实验内容

『任务一』

  • 下载openssl后通过下列方式安装。
$ ./config
$ make
$ make test
$ make install
  • 输入gcc -o test test_openssl.c -I/usr/local/ssl/include -L/usr/local/ssl/lib -lcrypto -ldl -lpthread编译生成可执行文件test,后执行echo $?得到结果0。
#include <stdio.h>
#include <openssl/evp.h>

int main(){
    OpenSSL_add_all_algorithms();
    return 0;
}

后因为ubantu发生无法解决的故障,我在mac iterm中完成了接下来的实验。

  • MAC OS自带了OpenSSL,直接在命令行里输入openssl

  • 运行openssl后

    • 第一步:输入genrsa -out rsa_private_key.pem 2048 // 生成私钥

    • 第二步:输入pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt // 把RSA私钥转换成PKCS8格式,提示输入密码,密码为空;

    • 第三步:输入 rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem // 生成公钥

『任务二』

  • 对实验二中的“wc服务器”通过混合密码系统进行防护:

参考资料

posted on 2017-12-17 19:16  郝博雅  阅读(194)  评论(1编辑  收藏  举报