安全分发私密电子文件的方法与流程

文档序号:32006332发布日期:2022-11-02 13:22阅读:121来源:国知局
安全分发私密电子文件的方法与流程

1.本发明涉及信息安全技术领域,特别是一种安全分发私密电子文件的方法。


背景技术:

2.随着近年来数字化转型不断的深入、互联网的普及,无纸化办公理念的大力推行,电子文件已逐渐代替了传统的纸质文件。虽然当前市场中有较多电子文件发放产品在广泛应用,但多数产品忽视了敏感数据的高安全性需求,如何解决电子文件发放的数据安全成为当下企业最为关注的焦点。
3.目前市场中几款主流的发放电子文件系统在敏感数据安全保护方面存在明显的薄弱环节,表现为:(1)多数系统没有使用增强的身份认证及数据加解密手段,接收端用户仅输入姓名、工号或通过邮箱就能查询私密电子文件的明文信息,容易出现被非法窃取和数据泄密;(2)有些系统部署于阿里云服务器,数据安全性仅依托阿里云基础安全防护,云租户数据隔离、隐私数据加密保护措施较弱,容易出现云端系统运维人员人为泄密或因遭受网络攻击导致数据泄密;(3)有些系统虽部署于用人单位本地,但由于私密电子文件未加密,或者未使用与接收人强关联的一次一密技术,容易出现系统运维人员窥视,或在本地服务器系统遭受网络攻击后导致敏感数据泄密。


技术实现要素:

4.为解决现有技术中存在的问题,本发明的目的是提供一种安全分发私密电子文件的方法,本发明极大增强了私密电子文件发送和接收的安全性。
5.为实现上述目的,本发明采用的技术方案是:一种安全分发私密电子文件的方法,包括以下步骤:s100、发送端用户安全加载私密电子文件,所述私密电子文件包括各接收端用户的基本信息以及与所述基本信息对应的私密数据;s200、客户端加密私密电子文件并上传至服务器;s300、服务器接收、二次加密并存储私密电子文件;s400、服务器给接收端用户发送私密电子文件查阅消息;s500、接收端用户接收消息并解密查阅私密电子文件。
6.作为本发明的进一步改进,所述步骤s100具体包括以下步骤:s101、身份认证:首先在服务器端部署可信网站ssl服务器证书,发送端用户在pc端插入usbkey数字证书,通过https访问服务端管理系统,签名登录系统,服务器后台确认登录用户的合法身份,若身份合法则进入下一步操作;s102、数据解析:发送端用户加载本地私密电子文件,调用浏览器javascript代码解析出私密电子文件中的数据,在html界面呈现解析出的私密电子文件中的数据,发送端
用户确认无误后,进入下一步。
7.作为本发明的进一步改进,所述步骤s200具体包括以下步骤:s201、客户端浏览器提取私密电子文件中接收端用户基本信息的第一身份id,记为id1,并对id1使用sm3哈希算法计算哈希值,结果记为ha1,ha1=sm3(id1);s202、客户端浏览器提取私密电子文件中接收端用户基本信息的第二身份id,记为id2,并对id2使用sm3哈希算法计算哈希值,结果记为ha2,ha2=sm3(id2);s203、客户端浏览器产生随机数,记为id3,作为私密电子文件的查询密码发送给对应的接收端用户;s204、客户端浏览器拼接id1、id2、id3字符串,结果记为id4,id4=id1||id2||id3;s205、客户端浏览器使用sm3哈希算法对id4计算哈希值,结果记为ha3,ha3=sm3(id4);s206、客户端浏览器将ha3值作为对称密钥,对私密电子文件中的私密数据,记为plaintext,进行sm4对称加密,结果记为ciphertext,ciphertext=sm4_enc(plaintext,ha3);s207、客户端浏览器拼接id2、id3字符串,结果记为id5,id5=id2||id3;s208、客户端浏览器将每个接收端用户的私密电子文件中的基本信息和生成的ha1、ha2、ciphertext、id5发送到服务器端。
8.作为本发明的进一步改进,所述步骤s300具体包括以下步骤:s301、服务器接收每个接收端用户的私密电子文件的数据字段为:基本信息、ha1、ha2、ciphertext、id5;s302、服务器接收数据后,调用密码机中的对称密钥,记为hkey,对ciphertext、id5进行sm4对称加密,结果分别记为ciphertext2、id6;ciphertext2=sm4_enc(ciphertext,hkey);id6=sm4_enc(id5,hkey);s303、服务器为每个接收端的私密电子文件数据查询生成唯一值id7;s304、服务器拼接ciphertext2、id6、id7字符串,结果记为id8,id8=ciphertext2||id6||id7;s305、服务器调用第三方时间戳签名服务,将id8作为参数,对其进行时间戳签名,签名结果记为tsstring,tsstring=timestampsign(id8);s306、服务器存储每个接收端的私密电子文件的数据字段为:基本信息、ha1、ha2、ciphertext2、id6、id7、tsstring,存储完毕,客户端浏览器显示提交成功。
9.作为本发明的进一步改进,所述步骤s400具体包括以下步骤:s401、发送端用户在客户端浏览器给每个接收端用户发送私密电子文件查阅通知,并选择通知方式;s402、服务器端使用密码机中的对称密钥hkey对id6进行sm4对称解密,结果得到id5,id5=sm4_dec(id6,hkey),提取id5中的id2和id3;s403、服务器根据发送端用户选择的通知发送方式,调用相应的接口为id2的接收端用户发送文件查阅通知,所述文件查阅通知包括接收端用户的基本信息、作为私密电子文件查询密码的随机数id3以及利用唯一值id7生成的查询链接url地址。
10.作为本发明的进一步改进,所述步骤s500具体包括以下步骤:
s501、接收端用户点击通知消息中的查询链接url地址;s502、接收端用户在html页面输入id1和id2进行身份认证,认证通过后进入下一步;s503、服务器根据id7从数据库中提取对应的ha1、ha2,并对接收端用户输入的id1和id2分别使用sm3哈希算法计算哈希值,结果记为ha1’、ha2’,ha1’=sm3(id1),ha2’=sm3(id2),分别比较ha1’、ha2’与数据库中的ha1、ha2是否相等,若相等则进入下一步;s504、服务器根据id7从数据库中提取ciphertext2、id6、id7、tsstring,拼接ciphertext2、id6、id7字符串,结果记为id8,id8=ciphertext2||id6||id7;s505、服务器调用第三方时间戳验证服务,对id8、tsstring进行时间戳验证,验证结果记为verifyresult,verifyresult=timestampsignverify(id8,tsstring),若验证成功,verifyresult为true,说明ciphertext2、id6、id7、tsstring数据完整、有效,进入下一步;s506、服务器提取tsstring中的签名时间,记为sendtime,sendtime=gettimefromtimestampsign(tsstring),该时间为时间戳签名时第三方时间戳服务机构的时间,作为私密电子文件发放的第三方公证时间;s507、服务器根据id7从数据库中提取ciphertext2;s508、服务器调用密码机中的对称密钥hkey对ciphertext2进行sm4对称解密得到ciphertext,ciphertext=sm4_dec(ciphertext2,hkey);s509、接收端用户在html页面输入查询密码id3;s510、html页面拼接id1、id2、id3字符串,结果记为id4,id4=id1||id2||id3;s511、html页面使用sm3哈希算法对id4计算哈希值,结果记为ha3,ha3=sm3(id4);s512、html页面将ha3值作为对称密钥,对s508中的私密数据ciphertext进行sm4对称解密,即可得到私密数据的明文数据plaintext,即plaintext =sm4_dec(ciphertext,ha3);s513、html页面呈现接收端用户基本信息、私密数据的明文数据plaintext以及私密电子文件的发放时间sendtime。
11.作为本发明的进一步改进,所述私密文件为以excel文件形式呈现的工资条。
12.本发明的有益效果是:本发明充分结合接收端用户个人秘密片段信息与一次一密的动态密码组合实施加密和解密,确保只有接收端用户本人才能解密自己的私密文件。不同接收端用户、同一接收端用户不同时间接收的私密文件其加密密钥都不一样,极大增强了私密电子文件发送和接收的安全性。
附图说明
13.图1为本发明实施例的系统结构框图;图2为本发明实施例的方法流程图。
具体实施方式
14.下面结合附图对本发明的实施例进行详细说明。
实施例
15.本实施例具体以安全分发电子工资条为例进行说明,其综合使用基于pki的数字签名、时间戳、数据加密、动态密码、短信认证及人脸识别信息安全技术,为用人单位hr发放劳动者工资条提供了高安全、便捷的工资条发放系统,劳动者通过短信、邮件、微信公众号等便捷方式,经过短信和人脸识别身份认证后,输入组合的秘密信息和动态密码方能解密、查阅工资条。其中秘密信息为劳动者专属的隐私信息,只有劳动者本人才知晓,系统不保存,动态密码为一次一密,每人每次都不一样,极大增强了工资条敏感数据发送和接收的安全性。
16.如图1和图2所示,本实施例由pc客户端浏览器、usbkey、服务器管理系统、密码机四个组件构成,对电子工资条进行安全分发具体包括以下步骤:s100、发送端用户(即用人单位的hr)安全加载作为私密电子文件的工资条excel文件:s101、身份认证:首先在服务器端部署可信网站ssl服务器证书,hr在pc端插入所属用人单位的usbkey数字证书,通过https访问服务端管理系统,签名登录系统,服务器后台验签、验证书,确认登录用户的合法身份,若身份合法则可进入下一步操作;s102、数据解析:hr在发送工资条页面加载本地工资条excel文件,调用浏览器javascript代码按行解析出excel文件中的数据(excel中需包含:姓名、工号、邮箱地址、年份、月份、身份证号码、手机号码、薪资等),在html界面呈现解析出的每个接收端用户(即劳动者)的工资条数据,hr确认无误后,点击“提交”进入下一步。
17.s200、客户端加密excel数据并上传:客户端浏览器对每个劳动者的工资条数据进行以下处理,生成相应加密数据:s201、客户端浏览器提取工资条中的第一身份id,本实施例的第一身份id取接收端用户(即劳动者)的身份证号码(identitynumber)后6位,记为id1,并对identitynumber使用sm3哈希算法计算哈希值,结果记为ha1,ha1=sm3(identitynumber);s202、客户端浏览器提取工资条中的第二身份id,本实施例的第二身份id取接收端用户(即劳动者)的手机号码(phonenumber)后6位,记为id2,并对phonenumber使用sm3哈希算法计算哈希值,结果记为ha2,ha2=sm3(phonenumber);s203、客户端浏览器产生8位随机数(记为id3),后续作为工资条查询密码发送给该劳动者;s204、客户端浏览器拼接上述id1、id2、id3字符串,结果记为id4,id4=id1||id2||id3;s205、客户端浏览器使用sm3哈希算法对id4计算哈希值,结果记为ha3,ha3=sm3(id4);s206、客户端浏览器将ha3值作为对称密钥,对劳动者工资条中的薪资(记为payplaintext)进行sm4对称加密,结果记为payciphertext,payciphertext=sm4_enc(payplaintext,ha3);s207、客户端浏览器拼接上述phonenumber、id3字符串,结果记为id5,id5=phonenumber||id3;s208、客户端浏览器将每个劳动者工资条excel中的姓名、工号、邮箱地址、年份、
月份和上述步骤生成的ha1、ha2、payciphertext、id5发送到服务器端。
18.s300、服务器接收、二次加密、存储excel数据:s301、服务器接收每个劳动者工资条excel数据字段为:姓名、工号、邮箱地址、年份、月份、ha1、ha2、payciphertext、id5;s302、服务器接收数据后,调用密码机中的对称密钥(记为hkey)对payciphertext、id5进行sm4对称加密,结果分别记为payciphertext2、id6; payciphertext2=sm4_enc(payciphertext,hkey);id6=sm4_enc(id5,hkey);s303、服务器为每个劳动者工资条excel数据查询生成唯一值id7;s304、服务器拼接上述payciphertext2、id6、id7字符串,结果记为id8,id8= payciphertext2||id6||id7;s305、服务器调用第三方时间戳签名服务,将id8作为参数,对其进行时间戳签名,签名结果记为tsstring,tsstring=timestampsign(id8);s306、服务器存储每个劳动者工资条excel数据字段为:姓名、工号、邮箱地址、年份、月份、ha1、ha2、payciphertext2、id6、id7、tsstring,存储完毕,客户端浏览器显示提交成功。
19.s400、服务器发送工资条查阅消息:s401、hr在客户端浏览器发送工资条查阅通知页面,选择通知方式:短信/邮件/微信,点击“发送”。
20.s402、服务器端使用密码机中的对称密钥hkey对id6进行sm4对称解密,结果得到id5,id5=sm4_dec(id6,hkey),提取id5中的phonenumber和id3;s403、服务器根据hr选择的通知发送方式,调用相应的短信平台/电子邮件系统/微信公众号接口发送以下消息:【***公司】您的**年**月工资条查询密码为:{id3},请访问以下地址查阅:https://www.***.com/***/***uid={id7}。
21.s500、劳动者接收消息并查阅工资条:s501、劳动者点击通知消息中的链接地址https://www.***.com/***/***uid={id7};s502、劳动者访问工资条系统,在html页面先进行手机号验证(输入手机号、获取验证码)、实名认证(输入姓名、身份证号码调用身份源认证)和人脸识别认证,认证通过后进入下一步;s503、服务器根据id7从数据库中提取对应的ha1、ha2,并对输入的身份证号码(identitynumber)、手机号码(phonenumber)分别使用sm3哈希算法计算哈希值,结果记为ha1’、ha2’, ha1’=sm3(identitynumber),ha2’=sm3(phonenumber),分别比较ha1’、ha2’与数据库中的ha1、ha2是否相等,若相等则进入下一步;s504、服务器根据id7从数据库中提取ciphertext2、id6、id7、tsstring,拼接ciphertext2、id6、id7字符串,结果记为id8,id8=ciphertext2||id6||id7;s505、服务器调用第三方时间戳验证服务,对id8、tsstring进行时间戳验证,验证结果记为verifyresult,verifyresult=timestampsignverify(id8,tsstring),若验证成功(verifyresult为true),说明ciphertext2、id6、id7、tsstring数据完整、有效,可以进入
下一步;s506、服务器提取tsstring中的签名时间,记为sendtime,sendtime=gettimefromtimestampsign(tsstring),该时间为时间戳签名时第三方时间戳服务机构的时间,可作为工资条发放的第三方公证时间;s507、服务器根据id7从数据库中提取payciphertext2;s508、服务器调用密码机中的对称密钥(hkey)对payciphertext2进行sm4对称解密得到payciphertext,payciphertext=sm4_dec(payciphertext2,hkey);s509、劳动者在html页面录入“身份证号后6位(id1)、手机号后6位(id2)、工资条查询密码(id3)”,点击“查询工资条”;s510、html页面拼接上述id1、id2、id3字符串,结果记为id4,id4=id1||id2||id3;s511、html页面使用sm3哈希算法对id4计算哈希值,结果记为ha3,ha3=sm3(id4);s512、html页面将ha3值作为对称密钥,对s508中的薪资密文payciphertext进行sm4对称解密,即可得到薪资明文数据payplaintext,即payplaintext =sm4_dec(payciphertext,ha3);s513、html页面呈现劳动者个人工资条信息:姓名、工号、年份、月份、薪资明文数据payplaintext、工资条发放时间sendtime。
22.s514、劳动者阅读完毕,html页面可提供一个是否保存的按钮,若用户选择保存,该记录不删除,后续还可以通过短信/邮件中验证码继续查阅;若用户选择不保留,该记录可直接删除。
23.本实施例通过在服务器端部署可信网站服务器ssl证书确认服务器系统身份真实性;在客户端采用usbkey数字证书登录系统确认hr身份真实性;对于劳动者采用短信、实名信息和人脸识别验证确保电子工资条接收者的身份真实性。
24.本实施例在服务器端存储密文工资条数据时,采用第三方时间戳签名技术固化电子数据存储,在劳动者查阅工资条时,通过验证时间戳签名是否有效确保数据完整性;同时通过时间戳中的第三方时间戳服务机构的时间,确保电子工资条发放时间的公正性、不可篡改。
25.本实施例在数据机密性方面综合使用了多种增强措施,在数据采集、传输、存储、分发环节都使用了pki密码技术。
26.一是采用软件加密和硬件加密相结合的方式,实现了数据从采集到存储的两次加密。其中第一次加密采用了劳动者多个秘密信息以及随机生成的一次一密进行加密因子合成,在hr客户端本地进行加密,加密后的密文才通过网络传输到服务器端;第二次加密是在服务器端,基于第一次加密的密文数据再采用密码机硬件进行加密处理,可防止服务器数据库被拖库后,薪资机密信息的泄漏。相应地,在工资条分发环节需要两次解密,才能由劳动者查阅工资条明文信息。
27.二是服务器数据库中不存储劳动者秘密信息、一次一密的明文信息,仅存储劳动者秘密信息的hash值,hash值不可逆并用于身份信息的二次比对,以防止工资条误发,还可避免数据库被拖库或服务器管理员人为泄漏敏感信息。
28.三是网络传输环节还采用了https安全通道加密方式,进一步保证了客户端上传工资条密文数据的安全性。
29.以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1