2019-2020-1 20175302 201752314 20175316 实验五 通讯协议设计

2019-2020-1 20175302 201752314 20175316 实验五 通讯协议设计

任务一

任务详情

  • 在Ubuntu中完成 http://www.cnblogs.com/rocedu/p/5087623.html 中的作业

    关于OpenSSL

    背景技术

  • SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。
  • SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

    工作流程

    服务器认证阶段:

  • 客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
  • 服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
  • 客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
  • 服务器回复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。

    用户认证阶段:

  • 在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。

实验过程及步骤

Linux下OpenSSL的安装

  • 解压源码:unzip openssl-master.zip
  • 进入源代码目录:cd openssl-master
  • 编译安装:
    ./config
    make
    sudo make install
    使用make test进行测试

    Linux下OpenSSL的使用

  • 通过man openssl查看帮助文档

  • 编写测试代码test_openssl.c
      #include <stdio.h>
      #include <openssl/evp.h>
      int main(){
         OpenSSL_add_all_algorithms();
         return 0;
      }
  • 编译:gcc -o test_openssl test_openssl.c -L/usr/local/ssl/lib -lcrypto -ldl -lpthread,生成可执行文件test_openssl
  • 执行echo $?,结果打印0

猜你喜欢

转载自www.cnblogs.com/sms369/p/12003192.html