一种安全键盘的加密方法、存储介质及终端设备与流程

摘要: 本技术涉及互联网终端加密,尤其涉及一种安全键盘的加密方法、存储介质及终端设备。背景技术:1、当前,在金融行业移动端h5页面、hybrid应用及web系统中,用户...
一种安全键盘的加密方法、存储介质及终端设备与流程

本技术涉及互联网终端加密,尤其涉及一种安全键盘的加密方法、存储介质及终端设备。

背景技术:

1、当前,在金融行业移动端h5页面、hybrid应用及web系统中,用户登录、支付、转账、身份认证等场景通常需要输入银行卡密码、支付密码、短信验证码等敏感信息。随着金融行业移动化程度不断提高,客户端敏感输入过程的安全性要求也越来越高。根据《移动金融客户端应用软件安全管理规范》等行业要求,金融客户端需要具备敏感输入即时保护、密码安全传输、防键盘监听、防内存明文泄露等安全能力。

2、目前,常见的敏感输入保护方案主要包括以下几种:

3、第一种方案为使用系统输入法进行密码输入,并通过“”或“●”等字符对输入内容进行隐藏显示。第二种方案为使用普通h5软键盘替代系统输入法,通过前端javascript实现键盘ui组件,并通过点击事件获取用户输入内容。第三种方案为采用随机键盘布局或随机数字排列方式提高密码输入安全性,例如每次输入时动态打乱数字键盘顺序。第四种方案为采用传统rsa、aes等加密算法,在客户端与服务端之间建立加密通信机制,对敏感数据进行加密传输。

4、然而,上述现有方案在敏感数据输入、存储及传输的各阶段仍存在以下安全隐患:

5、在输入阶段,现有方案大多仅在提交时对整体数据进行加密。在用户逐个字符输入的过程中,真实输入内容仍会长时间以明文形式存在于浏览器dom节点、javascript变量或客户端进程内存中,攻击者可通过内存分析、动态调试或hook注入等手段窃取尚未加密的原始输入数据。

6、在存储与传输阶段,即使部分方案采用随机键盘布局或整体加密传输,但单个字符在输入后、整体加密前的映射关系或缓存数据仍可能在内存中留存,且其加密过程多依赖单一的传统公钥密码体系,在量子计算算力突破的威胁下,长期存储的密文数据存在被批量破解的风险。此外,现有方案普遍缺少对数据传输过程中完整性校验与消息认证的双重防护机制,难以有效抵御中间人篡改或重放攻击。

7、在数据生命周期末端,现有方案大多未对输入完成后的敏感数据进行立即清除,导致相关缓存、变量及残余信息仍可能在客户端内存中保留较长时间,即便数据已发送完成,残余信息仍存在泄露风险。

8、综上所述,现有技术方案在敏感数据输入过程的即时保护、内存安全驻留、抗量子计算破解、完整性校验及残余信息清除等方面存在明显不足。

技术实现思路

1、有鉴于此,本技术实施例提供一种安全键盘的加密方法、存储介质及终端设备,旨在为敏感数据在输入、存储及传输阶段提供全过程安全保护。

2、为实现上述目的,根据本技术实施例的一个方面,提供了一种安全键盘的加密方法,该方法应用于客户端,包括:

3、与服务端进行三次握手,建立安全通信通道并协商会话密钥、获取所述服务端生成的动态字符映射表,所述动态字符映射表用于将用户输入的字符映射为对应的映射值;

4、通过安全软键盘接收用户输入的字符,并根据所述动态字符映射表将所述字符转换为映射值;

5、对转换后的映射值进行实时分段加密,并将加密后的分段密文存储于内存中;

6、在用户输入完成后,对所述分段密文进行解密并拼接得到整体映射值,使用所述会话密钥对所述整体映射值进行加密,并生成完整性校验信息;

7、通过所述安全通信通道将加密后的整体映射值及所述完整性校验信息发送至所述服务端;

8、在数据发送后,清除内存中存储的所述分段密文、所述整体映射值及所述会话密钥。

9、可选地,所述三次握手分别包括:

10、第一次握手:向所述服务端发送握手请求,接收由所述服务端在接收到所述握手请求后生成的sm2公钥和ml-kem抗量子加密公钥;

11、第二次握手:向所述服务端发送客户端信息及客户端随机数,并接收所述服务端返回的所述动态字符映射表及服务端随机数;

12、第三次握手:生成预主密钥,并根据所述ml-kem抗量子加密公钥对所述预主密钥进行密钥封装,得到对应的密文数据,将所述预主密钥及所述密文数据发送至所述服务端,由所述服务端根据所述预主密钥、所述客户端随机数及所述服务端随机数派生出所述会话密钥,并在派生成功后返回派生成功信息;响应于所述派生成功信息,所述客户端基于相同算法派生得到相同的所述会话密钥。

13、可选地,所述客户端基于相同算法派生得到相同的所述会话密钥,包括:

14、通过密钥派生函数对所述预主密钥、所述客户端随机数和所述服务端随机数进行混合计算,生成主密钥;

15、基于所述主密钥派生出sm4加密密钥、hmac密钥及cmac密钥,由所述sm4加密密钥、所述hmac密钥及所述cmac密钥构成所述会话密钥。

16、可选地,所述对转换后的映射值进行实时分段加密,包括:

17、使用sm4算法对每个字符对应的映射值进行独立加密;

18、将每次加密生成的分段密文分别存储于不同的内存区域,使得内存中不存在完整的明文映射值。

19、可选地,所述完整性校验信息的生成过程为:

20、使用所述hmac密钥对所述加密后的整体映射值进行计算,生成hmac验证码;

21、使用所述cmac密钥对所述加密后的整体映射值进行计算,生成cmac验证码;

22、将所述hmac验证码和所述cmac验证码作为所述完整性校验信息。

23、可选地,所述对转换后的映射值进行实时分段加密,包括:

24、使用sm4算法对每个字符对应的映射值进行独立加密;

25、将每次加密生成的分段密文分别存储于不同的内存区域,使得内存中不存在完整的明文映射值。

26、根据本技术实施例的另一方面,提供了一种安全键盘的加密方法,该方法应用于服务端,包括:

27、与客户端进行三次握手,建立安全通信通道并协商会话密钥、生成动态字符映射表并发送至所述客户端,所述动态字符映射表用于将用户输入的字符映射为对应的映射值;

28、通过所述安全通信通道接收所述客户端发送的加密后的整体映射值及完整性校验信息,所述加密后的整体映射值由所述客户端基于所述动态字符映射表对用户输入字符进行映射、分段加密、拼接后,再使用所述会话密钥整体加密而得到;

29、根据所述完整性校验信息对所述加密后的整体映射值进行校验;

30、在校验通过后,使用所述会话密钥对所述加密后的整体映射值进行解密,得到整体映射值;

31、根据所述动态字符映射表将所述整体映射值还原为用户输入的真实字符,并执行与所述真实字符相对应的业务操作。

32、可选地,所述三次握手分别包括:

33、第一次握手:响应于所述客户端发送的握手请求,生成sm2密钥对和ml-kem抗量子加密密钥对,返回sm2公钥和ml-kem抗量子加密公钥,并保存二者的私钥;

34、第二次握手:接收所述客户端发送的客户端信息及客户端随机数,生成所述动态字符映射表,将所述动态字符映射表及服务端随机数返回至所述客户端;

35、第三次握手:接收所述客户端发送的预主密钥及密文数据,根据所述预主密钥、所述客户端随机数及所述服务端随机数派生出所述会话密钥,并在派生成功后返回派生成功信息至所述客户端。

36、可选地,所述生成动态字符映射表,包括:

37、将所述客户端随机数和所述服务端随机数组合作为随机种子,由所述服务端的安全随机数生成器基于所述随机种子生成真随机数;

38、将所述真随机数作为随机源输入至洗牌算法中,由所述洗牌算法将整数序列的顺序打乱,得到随机排列;

39、建立所述随机排列与95个可打印字符之间的一一对应关系,作为所述动态字符映射表。

40、根据本技术实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,其中,所述计算机程序被配置为运行时执行上述任一项所述的一种安全键盘的加密方法。

41、根据本技术实施例的又一方面,提供了一种终端设备,该终端设备包括处理器和存储器,其中,所述存储器中存储有计算机程序,所述处理器被配置为运行所述计算机程序以执行上述任一项所述的一种安全键盘的加密方法。

42、借由上述技术方案,本技术实施例提供的一种安全键盘的加密方法、存储介质及终端设备,通过客户端与服务端之间的三次握手建立安全通信通道并协商会话密钥、获取动态字符映射表,在用户输入过程中将真实字符实时映射为映射值并进行分段加密存储,输入完成后将分段密文解密拼接后整体加密并附加完整性校验信息发送至服务端,由服务端校验后还原为用户真实字符,从而对敏感数据在输入、存储及传输阶段实现全过程安全保护。

43、基于上述技术原理,本技术实施例可以获得如下技术效果:

44、(1)采用安全软键盘替代系统输入法,并在此基础上引入动态字符映射机制,使用户输入的真实字符在客户端运行过程中始终以映射值形式存在,而非以明文形式长期驻留于浏览器dom节点、javascript变量或客户端内存中,有效避免了系统输入法监听、第三方输入法记录以及恶意键盘监听程序窃取输入内容的风险,显著提升了客户端对恶意攻击的防护能力。

45、(2)通过实时分段加密机制,在用户每次输入字符时即时对映射值进行独立加密并分段存储,每段密文存储完成后销毁对应的映射值明文,相较于传统的仅在提交阶段整体加密的方案,从根本上消除了敏感数据在输入阶段的明文暴露窗口,确保了内存中不存在完整的明文敏感数据,大幅降低了敏感数据被从内存中直接读取或转储攻击的风险。

46、(3)采用动态字符映射机制使同一字符在不同会话中的映射值动态变化,攻击者无法通过截获单次会话的映射关系推导用户输入规律,且由于动态字符映射表由客户端随机数和服务端随机数组合作为随机种子生成,其随机性源自客户端与服务端双方的共同贡献,具有更高的不可预测性,有效抵御了重放攻击和数据恢复攻击。

47、(4)结合hmac验证码和cmac验证码,实现了对加密后的整体映射值进行双重完整性校验的目的,即,在任一验证码被攻破时另一验证码仍能提供有效防护,确保了敏感数据在传输过程中防篡改、防伪造的能力。

48、(5)在数据发送完成后,立即清除内存中存储的分段密文、整体映射值及会话密钥,避免了因缓存或残余信息在客户端内存中长时间留存而导致的信息泄露风险,在敏感数据生命周期末端构建了最后一道安全防线,实现了从输入到传输再到清除的完整安全闭环。