基于MT7621 的个人私有云系统应用

2022-06-29 06:08黄一平孙健华梁梓辰
电子设计工程 2022年12期
关键词:一键密钥客户端

黄一平,孙健华,梁梓辰

(1.广西师范大学电子工程学院,广西桂林 541000;2.广西师范大学计算机科学与工程学院,广西桂林 541000)

由于大量数据存储在租用的公有云,存在数据泄露风险且耗电量较高,该文使用MT7621 为核心,ESP07 模块为从设备搭建个人私有云。MT7621 搭载OpenWRT 系统[1-6],并搭建FTP(File Transfer Protocol)服务器[7],使用Frp 技术进行内网穿透[8-12]。该文使用了ESP07模块设计了一键唤醒操作,在一段时间未使用MT7621 时,就让MT7621 进入休眠状态,使用时,用户可以点击一键唤醒,重新唤醒MT7621,既节约能源,又可以很好地保证安全性。该文通过QT设计实现了桌面端的FTP 客户端,并集成了128 位的AES(Advanced Encryption Standard)加密[13-17],可对Word文档、文本文件、图片、视频等通过文件流加密的方式进行加密传输,从而保护文件安全。

1 系统总体框架设计

该文依据MT7621 与ESP07 进行设计。MT7621作为核心设备使用时通电,不使用时则进入关闭状态,以保护数据无法被外部网络访问,ESP07 不断电,通过手机或者电脑指令,进行一键唤醒操作。MT7621 搭载了Uboot 内核、OpenWRT 系统、Nginx 认证界面、FTP 服务器,以保证数据的收发,利用手机APP 或者电脑客户端发送指令。ESP07 包含Airkiss技 术、MQTT(Message Queuing Telemetry Transport)一键唤醒、断线重连功能,同样是由APP 与电脑端发送指令进行控制,其整体设计如图1 所示。

图1 私有云整体设计

该文采用了多种技术,其主要模块的技术情况如表1 所示。

表1 主要模块技术情况

2 私有云系统设计与实现

2.1 OpenWRT系统设计

OpenWRT 系统是Linux 系统的衍生版,是路由器的重要系统,具有强大的网络功能与丰富的板块,可以自定义软件与库。该文设计的私有云系统可以作为路由器使用,也可以当终端设备使用,将路由器模式与终端模式结合起来,适应于多个场景。

该文依据所需要的功能,对OpenWRT 系统进行裁剪,包括支持2路USART、支持256 MB内存和32 MB的NAND FLASH,以保持其更高的性能,并移植驱动文件,如MT7612 驱动等,移植对应的软件,如vsftpd等,并编写MakeFile 文件,使其编译到固件当中,然后通过TFTP(Trivial File Transfer Protocol)的方式下载固件到MT7621 设备中。

2.2 服务器搭建

FTP 基于TCP 协议的文件传输协议,采用客户端/服务器模式,通过FTP 服务器进行文件的上传与下载。FTP 协议可以很好地控制用户数量,更好地分配宽带,可以很方便地上传与下载文件。该文就是依据FTP 进行数据传输,在Nginx 认证通过后,即可开启FTP 服务。

由于FTP 服务器可以通过众多软件访问,不利于软件与硬盘的安全。为了实现安全访问,该文设计了Nginx 认证,通过FCGI 接口返回信息,在重新登陆时都要连接Nginx 页面,而FTP 的用户名与密码都放在代码中打包,对于用户来说,FTP 的用户名和密码是不可见的,从而更好地保护硬盘信息。Nginx 是一个轻量级的Web 服务器,占用内存少,并发能力强,可以流畅运行在OpenWRT 系统。FCGI 是一个更高速的公共网关接口,有更高的性能。由于CGI解释器的反复加载,其性能越来越差,FCGI 将其保持在内存中,可以很大程度保持其性能。在有多人访问私有云设备时,其登录不会卡顿或者是服务器崩溃。

在OpenWRT 更新软件包,并且在内核中选中Nginx、FCGI,配置文件重新打包,系统启动后可以使用shell命令启动Nginx 与FCGI。

2.3 内网穿透技术实现

在IPv4 时代,IPv6 还没有广泛地被使用,仅仅通过IP 地址去访问设备,目前无法实现,针对此问题,该文设计了Frp 内网穿透的方式访问私有云,实现随时随地访问私有云硬盘。内网穿透,即NAT 穿透,其可以将私有地址转换为合法的IP 地址,以完成重用地址,并且隐藏内部的网络结构。外部主机要与内网进行通信,需要由内网中的主机发起连接,使得NAT 设备产生映射条目。

在服务器端配置Frps,如购买的阿里云主机,在客户端配置Frpc,同时启动两者即可建立连接。在局域网开启Frp 服务器之后,进行层级上传,然后通过服务器进行中转,最后就可通过外网实现对Nginx与FTP 进行访问。

2.4 一键配网技术

私有云在STA 模式时,需要快速地接入网络,传统的AP 配网速度慢,操作繁琐。Airkiss 可以直接将当前手机的网络发送给私有云设备,实现配网操作。

具体配网过程如图2 所示。

图2 Airkiss配网过程

MT7621 设备此时为STA 模式,与手机在同一个网络环境下,手机连接WiFi 网络,MT7621 点击按键,进入一键配网模式,手机启动客户端,点击一键配网,此时MT7621 即可连接到手机的网络。

Airkiss 的基本配网技术如下:

1)MT7621 设备要处在混杂模式,此时无论MAC地址是否相同,处在混杂模式下的设备会把802.11格式的数据包全部接收过来。

2)MT7621 需要做到随时进行信道切换,802.11有多个信道,需要时刻切换信道来接收数据包。检测到有效数据包之后,要锁定在此信道下。

3)利用数据帧的长度来承载有效信息。Airkiss使用UDP 广播包作为载体,发送一些列的UDP 广播包,每个广播包都使用Length 进行编码,接收方接收到UDP 包后,使用Airkiss 解析出对应的信息,完成配网过程。

2.5 一键唤醒设计

MQTT 是一种基于发布与订阅的轻量级通信协议,其可以利用极少的代码和有限的带宽,提供可靠的服务。MQTT 的控制报文以及内嵌的应用数据可以提供良好的安全性。

为了保护移动硬盘的数据安全,使其更加节能,利用ESP07 模块设计了一键唤醒操作,基于MQTT 协议,当私有云硬盘一段时间(这个时间可以由用户自行设置)没有工作时,硬盘电路将会自动进入休眠状态,此时MT7621断电无法工作,当用户使用时,点击一键唤醒,MQTT 会发送信号使电路通电,唤醒MT7621 重新进行工作,此设计相当于设计了远程开关机,保护了数据安全,如果用户将MT7621 作为家庭路由器使用,这对于整个智能家居的安全都非常关键。

2.6 文件加密设计

AES 算法以其速度快、内存需求量低、灵活、易维护等特点广泛用于数字签名、文档加密中。AES根据其密钥不同,可以分为AES-128、AES-192 和AES-256。

一个密码很难保证安全,也不利于用户分享,所以该设计通过随机产生密码的方式生成密钥,然后加密文件。如图3 所示,将文件以文件流的形式打开,将文件流使用AES128 算法加密,由用户设立独立密码,根据用户设定的密码产生AES 密钥,可以保证AES 密钥能够根据用户的意愿产生,将加密后的文件以不同的后缀命名,然后上传到FTP 服务器中。这样AES 密钥与文件相分离,即使拿到了私有云硬盘,也需要破解AES 加密的文件,若侵入了电脑通过动态调试拿到密钥,也很难再侵入到私有云硬盘,可以提供双重保护,保护了文件的信息安全,并可由用户选择随机生成密码或者是固定密码,随机生成密码对于用户信息的存储极其繁琐,所以该设计将生成的随机码保存在电脑或手机上,通过文件名加密钥的方式进行存储,解密时可以通过用户名查找密钥进行解密。文件存储与密钥存储相分离,必须两个设备同时破解才能解密出源文件,通过该文设计的一键唤醒模式,整个设备大多时间都会处于休眠状态,可以很好地保证安全性。用户也可以选择不存储密钥,选择其他方式保存密钥,灵活的存储方式,可以进一步提高安全性。

图3 随机码加密文件上传至服务器

3 实验结果

3.1 实验环境

私有云存储设备外接USB3.0的普通U盘,对设计的服务器进行速度测试,电脑为i5-6200U@2.4 GHz,普通SSD 硬盘,外接USB 千兆网卡。其速度为传输文件的平均速度,并非理论上的速度,也不是传输的峰值。其软件版本都为OpenWRT19.07 系统,测试软件与方法完全相同。

3.2 实验数据

MT7621 为千兆网卡,其传输速度比MT76x8 系列搭建的私有云系统有较大的提升,使用MT7621搭建私有云性价比更高一些,其速度对比如图4所示。

MT7621 比MT76x8 在传输速度上有了很大的提升。如图4(a)所示,AP 模式下,MT7621 的下载速度是MT76x8 传输速度的4.7 倍;如图4(b)所示,上传速度为2.6 倍;如图4(c)所示,STA 模式下,MT7621 的传输速度是MT76x8 传输速度的2.3 倍;如图4(d)所示,上传速度为3.1 倍。

如图4 所示,在模式的使用上,通过实际实验可知,使用AP 模式会很大提升传输的效率,建议在固定场景中使用AP 模式传输,移动场景使用STA 模式传输。上传时还是会受到不同介质的影响,该实验中使用的普通U 盘,读写速度已经达到了很理想的状态,达到了该文的设计目标。使用HDD 硬盘或者SSD 硬盘效果会更好,该文是一个很好的参考方案。

图4 MT7621与MT76x8速度对比

在外网进行访问时,使用Frp 方式,则局限于购买的云服务器的带宽和本身的传输速度,不同的云服务器的带宽,结果不同,可按需购买云服务器的带宽与流量。

当客户端连接私有云的时间到达设定的阈值,就会断开连接,此时MT7621 设备也会进入休眠状态,用户使用客户端再次点击连接时就可以通过ESP07 模块唤醒MT7621 设备,进行数据传输。在STA 模式下,直接使用微信小程序的Airkiss 进行配网,简单快捷,无需单独应用程序。

加密文件的后缀名为fenc,此后缀名可以在代码中进行设置,可以对加密与非加密文件进行分类,使用文件流加密,其加密前后的大小没有发生变化,既不会占用更多空间,也不会在加密过程中造成文件损耗。

3.3 安全性分析

根据文献[17]可知,AES 加密可以抵抗强力攻击、Square 攻击、差分密码攻击、代数攻击等。使用AES 加密文件,有着较高的安全性,将加密文件存储在私有云,将加密密钥存储在本地的电脑或者手机中,实现加密文件与加密密钥分别存储,保护文件的安全性。

4 结束语

该文以MT7621 搭载OpenWRT 系统并搭建FTP服务器实现文件的传输与存储,在外网访问时使用Frp 技术,并支持AP 模式和STA 模式,适合于多场景需要,通过ESP07 模块的MQTT 协议可以实现一键唤醒,私有云在不使用时,进入休眠状态,不仅节约能源,也可以很好地保证安全。在STA 模式当中,使用ESP07 模块,可以实现一键配网,方便用户的使用。该文设计在挂载普通USB 设备的前提下,其AP模式上传速度可以达到10 MB/s 左右,下载速度为18 MB/s 左右。进行内网穿透后,可以随时随地访问私有云存储设备。通过QT 设计客户端,方便使用,并且通过128 位的AES 进行加密,将密钥与文件分别存储,保证文件的安全性,通过多种测试分析方法,证明AES128 加密有着很高的安全性。该项目已经进入市场测试阶段,目前运行较为稳定,对于相关人员有很好的参考借鉴意义,有较高的实用价值。

猜你喜欢
一键密钥客户端
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
幻中邂逅之金色密钥
幻中邂逅之金色密钥
帝豪EV450 车一键起动开关故障
Android密钥库简析
一键定制 秋冬彩妆懒人包
一键下水
虚拟专用网络访问保护机制研究
极翼H380 HOUND多旋翼无人机