阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

时间:2021-09-30 00:09:57

对之前的传输系统进行加密,使之成为加密的网络传输系统

客户端编程模型

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

通过以上模型对传统的TCP传输模型进行优化

首先完成初始化工作,它是要在创建socket之前完成

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

主要是以上四个函数的实现,那么这四个函数怎样去操作呢,百度这四个函数的用法

头文件

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面去创建SSL,由模型可知,是在connect之后去创建

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面去改造tcp的收和发数据,用ssl来替代

修改上传文件部分如下

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面是下载文件部分

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

那我们在close(fd)之前把SSL释放

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

编译的时候要去指明引用ssl库

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面进入服务器程序的优化

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

//在创建socket之前来进行初始化SSL库

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

//公钥和私钥的初始化

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面要去创建一个新的SSL,放到accept之后来做

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面就要对网络通信中的read和write进行修改了

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

这是上传的修改

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面是下载的修改

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

在close(fd)之前做一些SSL的关闭工作

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面编译server.c程序

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面在PC机上测试,测试之前还需要进行数字证书和私钥的文件创建

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面首先创建私钥

创建私钥命令openssl,要创建的私钥文件privkey.pem(自己取的名字),genrsa为参数,-out表示要输出,2048表示位数。

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

接下来根据这个私钥来创建公钥

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

下面对程序,进行相应测试

在server目录下创建一个文件touch down

添加一些信息进去;

启动server

再在client目录下创建一个touch pass 用于上传的,同时也加入一些信息。

在PC机上成功之后,把他们移植到开发板上面去,主要是把client移植到开发板上面去

阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化

这样一编译就产生了能在arm开发板上运行的client了

把编译好的client复制到开发板目录里面去,跟之前一样进行测试