• 2017-2018-1 20155307 信息安全系统设计基础》实验五 通信协议设计


    2017-2018-1 20155307 信息安全系统设计基础》实验五 通信协议设计

    实验要求:

    任务一:Linux下OpenSSL的安装与使用
    1、基于Socket实现TCP通信,一人实现服务器,一人实现客户端
    2、研究OpenSSL算法,测试对称算法中的AES,非对称算法中的RSA,Hash算法中的MD5
    3、选用合适的算法,基于混合密码系统实现对TCP通信进行机密性、完整性保护。
    4、学有余力者,对系统进行安全性分析和改进。
    任务二:在Ubuntu中实现对实验二中的“wc服务器”通过混合密码系统进行防护

    任务一:

    • 1.参考老师提供的链接,进行下载并且安装Linux下OpenSSL,在终端输入,以完成安装。
    ./config
    make
    make test
    make install
    

    然后进行编译并运行:

    gcc -o test_openssl test_openssl.c -L/usr/local/ssl/lib -lcrypto -ldl -lpthread echo $?
    “-L”之后指定的是链接库的路径,由于要导入OpenSSL所以使用-lcrypto参数
    成功之后的截图如下:

    • 2.基于Socket实现TCP通信
      TCP服务器端依次调用socket()、bind()、listen()之后,就会监听指定的socket地址了,bind()函数把一个地址族中的特定地址赋给socket。例如对应AF_INET、AF_INET6就是把一个ipv4或ipv6地址和端口号组合赋给socket。

    测试md5:

    echo "plain.txt" | openssl dgst -md5
    

    测试结果如下:

    任务二:

    在Ubuntu中实现对实验二中的“wc服务器”通过混合密码系统进行防护
    基于OpenSSL的程序都要遵循以下几个步骤:

    (1)、OpenSSL初始化:在使用OpenSSL之前,必须进行相应的协议初始化工作,可以通过下面的函数实现:int SSL_library_int(void);
    (2)选择会话协议:在利用OpenSSL开始SSL会话之前,需要为客户端和服务器制定本次会话采用的协议,目前能够使用的协议包括TLSv1.0、SSLv2、SSLv3、SSLv2/v3。需要注意的是,客户端和服务器必须使用相互兼容的协议,否则SSL会话将无法正常进行。
    (3)创建会话环境。在OpenSSL中创建的SSL会话环境称为CTX,使用不同的协议会话,其环境也不一样的。申请SSL会话环境的OpenSSL函数是:SSL_CTX SSL_CTX_new(SSL_METHOD method);
    当SSL会话环境申请成功后,还要根据实际的需要设置CTX的属性,通常的设置是指定SSL握手阶段证书的验证方式和加载自己的证书。
    (4)建立SSL套接字SSL套接字是建立在普通的TCP套接字基础之上,在建立SSL套接字时可以使用下面的一些函数:

    SSL *SSl_new(SSL_CTX *ctx);//申请一个SSL套接字
    int SSL_set_fd(SSL *ssl,int fd);)//绑定读写套接字
    int SSL_set_rfd(SSL *ssl,int fd);//绑定只读套接字
    int SSL_set_wfd(SSL *ssl,int fd);//绑定只写套接字
    

    (5)完成SSL握手在成功创建SSL套接字后,客户端应使用函数SSL_connect( )替代传统的函数connect( )来完成握手过程:

     int SSL_connect(SSL *ssl);
    

    (6)进行数据传输
    当SSL握手完成之后,就可以进行安全的数据传输了,在数据传输阶段,需要使用SSL_read( )和SSL_write( )来替代传统的read( )和write( )函数,来完成对套接字的读写操作:

    运行截图如下:

  • 相关阅读:
    个人永久性免费-Excel催化剂功能第31波-数量金额分组凑数功能,财务表哥表姐最爱
    个人永久性免费-Excel催化剂功能第30波-工作表快捷操作(批量创建、命名、排序、工作表目录)
    个人永久性免费-Excel催化剂功能第29波-追加中国特色的中文相关自定义函数
    发现用System.Net.Mail发邮件(代码附后),附件稍微大一点就会造成程序假死. 有没有什么简单的解决办法呢? 多谢!!
    上传文件 获取文件名 --360浏览器
    js中的json对象和字符串之间的转化
    chosen.jquery.js
    select 后台获取text 并根据text 设置value选中项
    iframe中有ajax,设置iframe自适应高度
    charme浏览器 jquery1.9.1min.js 报脚本错误 无jquery.min.map 文件
  • 原文地址:https://www.cnblogs.com/zhuanyedajiesanshinian/p/8053802.html
Copyright © 2020-2023  润新知