一种基于国密算法的SFTP多端文件安全传输的方法及系统与流程

文档序号:29630971发布日期:2022-04-13 15:54阅读:850来源:国知局
一种基于国密算法的SFTP多端文件安全传输的方法及系统与流程
一种基于国密算法的sftp多端文件安全传输的方法及系统
技术领域
1.本发明涉及信息技术领域,更具体地说,它涉及一种基于国密算法的sftp多端文件安全传输的方法及系统。


背景技术:

2.随着科学技术的不断发展,企业往数字化方向转型已经是一个全球趋势。通过信息技术来处理、交互数据的场景需求越来越多,使得数据传输安全成为一个需要面对的重要问题。缺乏数据传输安全保障将会给生产、经营、个人资产、个人隐私等方面带来严重损害。
3.ftp和sftp是最常用的两种文件传输方式。ftp(file transfer protocol,文件传输协议)基于tcp/ip协议,不提供安全通道来在主机之间传输文件,密码和数据以纯文本、明文方式传输,传输效率较高,但安全性不足。sftp是ssh协议的一部分,要求客户端用户必须由服务器进行身份验证,并且数据传输必须通过安全通道(ssh)进行,在发送前会加密数据,已二进制的形式传递,安全性较高。
4.然而,在整个数据输出过程中,文件处理的应用往往不是部署在sftp服务器上,文件内容生成上传到sftp、从sftp下载将文件传输到处理的应用上,这个过程仍然存在信息被截获、内容被篡改的风险,互联网场景下的文件数据交互需要一种能够防止文件传输过程中发生数据泄漏、保障文件传输的可靠性和准确性的安全传输方法。


技术实现要素:

5.本发明要解决的技术问题是针对现有技术的上述不足,本发明的目的一是提供一种基于国密算法的sftp多端文件安全传输的方法,以防止文件传输过程中发生数据泄漏、保障文件传输的可靠性和准确性。
6.本发明的目的二是提供一种基于国密算法的sftp多端文件安全传输的系统,以防止文件传输过程中发生数据泄漏、保障文件传输的可靠性和准确性。
7.为了实现上述目的一,本发明提供一种基于国密算法的sftp多端文件安全传输的方法,包括:
8.在sftp服务端为各消费客户端构建对应的sftp文件目录,以避免归属消费客户端的数据文件被另外的消费客户端下载或篡改;
9.设定消费客户端连接使用的ssh私钥和公钥;
10.在消费客户端使用sm3算法对文件原内容y进行摘要,得到256位的文件摘要y'=h(y);
11.对文件摘要y'使用sm2的私钥d加签,得到加签结果c=e(y');
12.使用sm4 ecb模式对文件原内容y加密,得到加密文件k';
13.将加密文件k'、文件摘要y'和加签结果c组装http报文,并通过https发送给sftp服务端;
14.在sftp服务端接收消费客户端发送的数据,对数据进行验签;验签通过后,对数据进行解密,并进行摘要对比校验;校验通过后,将文件原内容进行再次加密得到密文文件k;
15.按照sftp服务端与消费客户端约定的文件存放目录和文件名称生成规则,将密文文件k保存到sftp文件目录中,以供消费客户端请求下载。
16.作为进一步地改进,所述sftp服务端执行sftp.sh脚本,利用ssh-keygen生成与各消费客户端对应的rsa公钥id_rsa_ui.pub和私钥id_rsa_ui,ui代表消费客户端;
17.进一步地,对文件原内容y进行摘要的流程为:
18.将文本分组为512*n+448,n为任意整数;若不足512位,则用多个“0”和末尾一个“1”补齐;
19.加上64位的文件长度信息构成512*(n+1)的分组,将这n+1组内容进行迭代压缩,得到最终的256位的杂凑值。
20.进一步地,选取合适的椭圆曲线参数生成sm2的私钥d和公钥p,g为椭圆曲线上的参考点,满足p=d*g。
21.进一步地,对文件原内容y加密的流程为:使用约定的偏移量a,采用sm4/ecb/pkcs5padding填充模式,得到加密结果k=f(y),对加密结果k进行base64转码,得到加密文件k'。
22.进一步地,验签流程为:使用sm2的公钥p对报文中的y'和c进行验签c'=v(y',c),函数v(y',c)是将y'做一次加签过程得到结果c',若c=c',则验签通过;否则验签失败,说明报文在传输过程中被篡改。
23.进一步地,解密和摘要对比校验的流程为:通过对文件使用sm4的密钥解密,得到文件原内容y,接着对文件原内容y做sm3摘要y'=h(y),将得到的摘要结果与消费客户端生产的摘要对比校验,若y'=y',则说明摘要校验通过,文件没有被篡改;否则文件被篡改。
24.进一步地,对文件原内容y使用对应消费客户端的sm4密钥b进行加密得到所述密文文件k=b(y)。
25.进一步地,还包括:
26.消费客户端使用颁发的ssh秘钥证书与sftp服务端建立ssh安全加密隧道,进入约定的sftp文件目录;
27.消费客户端向sftp服务端发送文件下载请求,sftp服务端收到下载请求后,基于sftp协议将文件传输给消费客户端;
28.消费客户端完成文件接收后,使用对应的sm4秘钥对文件进行解密,得到所需的文件原内容。
29.为了实现上述目的二,本发明提供一种基于国密算法的sftp多端文件安全传输的系统,包括sftp服务端、多个消费客户端,所述sftp服务端设有核心系统模块,各所述消费客户端均设有文件内容生成模块;
30.所述文件内容生成模块在消费客户端根据上述的方法对文件进行加密,并发送到所述sftp服务端;
31.所述核心系统模块在sftp服务端接收文件,根据上述的方法对接收到的文件进行解密,并保存到对应的sftp文件目录中,以供消费客户端请求下载。
32.有益效果
33.本发明与现有技术相比,具有的优点为:
34.(1)本发明利用基于ssh协议的sftp文件传输方式,采用rsa公私钥认证手段,各客户端使用各自的证书访问分配好的目录,文件在加密隧道中安全传输。
35.(2)本发明使用sm3摘要算法,替换传统的md5算法,碰撞稳固性、原根稳固性和第二原根稳固性更好,具有更高的安全性。
36.(3)本发明使用基于ecc的非对称加密算法sm2对sm3摘要结果进行加签,有效降低当报文被拦截后被破译和篡改的风险。相较于传统的非对称加密rsa算法,采用ecc 256位算法的sm2,安全强度高于rsa 2048位,运算速度却比rsa更快。
附图说明
37.图1为本发明的系统架构图;
38.图2为本发明中加密的流程图。
具体实施方式
39.下面结合附图中的具体实施例对本发明做进一步的说明。
40.参阅图1、2,一种基于国密算法的sftp多端文件安全传输的方法,包括:
41.在sftp服务端为各消费客户端构建对应的sftp文件目录,sftp服务端用于实现与文件消费客户端之间的文件传输,由于需要与多个文件消费客户端进行数据交互,构建对应的sftp文件目录可以避免归属消费客户端的数据文件被另外的消费客户端下载或篡改;
42.设定消费客户端连接使用的ssh私钥和公钥,具体为,sftp服务端执行sftp.sh脚本,利用ssh-keygen生成与各消费客户端对应的rsa公钥id_rsa_ui.pub和私钥id_rsa_ui,ui代表消费客户端;
43.在消费客户端使用sm3算法对文件原内容y进行摘要,得到256位的文件摘要y'=h(y);
44.选取合适的椭圆曲线参数生成sm2的私钥d和公钥p,g为椭圆曲线上的参考点,满足p=d*g,对文件摘要y'使用sm2的私钥d加签,得到加签结果c=e(y');
45.使用sm4 ecb模式对文件原内容y加密,得到加密文件k';
46.将加密文件k'、文件摘要y'和加签结果c组装http报文,并通过https发送给sftp服务端,能够有效的防止当报文被拦截后被破译和篡改的风险;
47.在sftp服务端接收消费客户端发送的数据,对数据进行验签;验签通过后,对数据进行解密,并进行摘要对比校验;校验通过后,将文件原内容(即没有被篡改的文件)进行再次加密得到密文文件k,具体为对文件原内容y使用对应消费客户端的sm4密钥b进行加密得到密文文件k=b(y);
48.按照sftp服务端与消费客户端约定的文件存放目录和文件名称生成规则,将密文文件k保存到sftp文件目录中,以供消费客户端请求下载。
49.对文件原内容y进行摘要的流程为:
50.将文本分组为512*n+448,n为任意整数;若不足512位,则用多个“0”和末尾一个“1”补齐;
51.加上64位的文件长度信息构成512*(n+1)的分组,将这n+1组内容进行迭代压缩,
得到最终的256位的杂凑值。
52.对文件原内容y加密的流程为:使用约定的偏移量a,采用sm4/ecb/pkcs5padding填充模式,得到加密结果k=f(y),对加密结果k进行base64转码,得到加密文件k'。
53.验签流程为:使用sm2的公钥p对报文中的y'和c进行验签c'=v(y',c),函数v(y',c)是将y'做一次加签过程得到结果c',若c=c',则验签通过;否则验签失败,说明报文在传输过程中被篡改。
54.解密和摘要对比校验的流程为:通过对文件使用sm4的密钥解密,得到文件原内容y,接着对文件原内容y做sm3摘要y'=h(y),将得到的摘要结果与消费客户端生产的摘要对比校验,若y'=y',则说明摘要校验通过,文件没有被篡改;否则文件被篡改。
55.本方法还包括:
56.消费客户端使用颁发的ssh秘钥证书与sftp服务端建立ssh安全加密隧道,进入约定的sftp文件目录;
57.消费客户端向sftp服务端发送文件下载请求,sftp服务端收到下载请求后,基于sftp协议将文件传输给消费客户端;
58.消费客户端完成文件接收后,使用对应的sm4秘钥对文件进行解密,得到所需的文件原内容。
59.一种基于国密算法的sftp多端文件安全传输的系统,包括sftp服务端、多个消费客户端,sftp服务端设有核心系统模块,各消费客户端均设有文件内容生成模块;
60.文件内容生成模块在消费客户端根据上述的方法对文件进行加密,并发送到sftp服务端;
61.核心系统模块在sftp服务端接收文件,根据上述的方法对接收到的文件进行解密,并保存到对应的sftp文件目录中,以供消费客户端请求下载。
62.以上仅是本发明的优选实施方式,应当指出对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些都不会影响本发明实施的效果和专利的实用性。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1