发明内容
有鉴于此,本申请提供一种信息传输方法、系统、电子设备及计算机可读介质,能够提升敏感数据的输入、存储以及传输安全。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的第一方面,提出一种信息传输方法,该方法包括:根据用户在电子设备端的操作由预定界面获取字符;根据第一公钥与电子设备信息生成握手信息;通过所述握手信息与网关通过握手方式进行互信确认,获取第二密钥;以及通过所述第二密钥与第一加密算法对所述字符进行加密处理,生成第一信息;其中,所述预定界面中禁止截屏操作,且界面上按键随机排列。
在本申请的一种示例性实施例中,还包括:根据随机盐值与所述字符生成该字符的储存值。
在本申请的一种示例性实施例中,根据第一公钥与电子设备信息生成握手信息包括:根据随机盐值与第一随机数生成第三密钥;以及根据第一公钥、第三密钥以及电子设备信息生成握手信息。
在本申请的一种示例性实施例中,根据第一公钥与第三密钥以及电子设备信息生成握手信息包括:通过第一公钥与第二加密算法对第三密钥进行加密处理,以生成初始化密文信息;以及根据初始化密文信息、电子设备信息以及第三密钥签名信息生成握手信息。
在本申请的一种示例性实施例中,通过所述握手信息与网关通过握手方式进行互信确认,获取第二密钥包括:获取网关的返回密文信息;以及通过第二密钥与第三解密算法对所述返回密文信息进行解密处理,以获取第二密钥。
根据本申请实施例的第二方面,提出一种信息传输方法,该方法包括:接收来自电子设备端的握手信息;通过第一私钥与所述握手信息与所述电子设备进行互信确认,生成第二密钥;接收第一信息并根据所述第二密钥解密所述第一信息,生成解密信息;以及将所述解密信息与预定符号表对应以生成输出信息。
在本申请的一种示例性实施例中,还包括:通过预定算法对所述第三密钥进行处理,以生成所述预定符号表。
在本申请的一种示例性实施例中,通过第一私钥与所述握手信息与所述电子设备进行互信确认,生成第二密钥包括:通过第一私钥与第二解密算法对所述握手信息进行解密处理,以获取第三密钥;以及通过第二密钥与第三加密算法对所述第三密钥进行加密处理,以生成返回密文信息。
在本申请的一种示例性实施例中,通过第一私钥与所述握手信息与所述电子设备进行互信确认,生成第二密钥还包括:根据握手信息获得第三密钥签名信息与电子设备信息;以及根据第三密钥签名信息与电子设备信息对所述电子设备进行校验。
根据本申请实施例的第三方面,提出一种信息传输系统,该系统包括:电子设备端,用于根据用户在预定界面的操作获取字符;根据第一公钥与电子设备信息生成握手信息;通过所述握手信息与网关通过握手方式进行互信确认,获取第二密钥;通过所述第二密钥与预定算法对所述字符进行加密处理,生成第一信息;其中,所述预定界面中禁止截屏操作,且界面上按键随机排列;网关端,用于接收来自电子设备端的握手信息;通过第一私钥与所述握手信息与所述电子设备进行互信确认,生成第二密钥;接收第一信息并根据所述第二密钥解密所述第一信息,生成解密信息;将所述解密信息与预定符号表对应以生成输出信息。
根据本申请实施例的第四方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的信息传输方法。
根据本申请实施例的第四方面,提出一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述任一项所述的信息传输方法。
根据本申请的信息传输方法、装置、电子设备及计算机可读介质,能够提升敏感数据的输入、存储以及传输安全。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图仅为本发明的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图对本发明示例实施方式进行详细说明。
图1是根据一示例性实施例示出的一种信息传输方法的流程图。根据图1示出的信息传输方法,可以提升敏感数据的输入、存储以及传输安全。下面,将参照图1,对本申请示例性实施例中的信息传输方法进行说明。
在步骤S110中,根据用户在电子设备端的操作由预定界面获取字符。其中,所述预定界面中禁止截屏操作,且界面上按键随机排列。例如,用户在电子设备端的操作可为用户为进行验证而输入登录密码、身份证号等敏感信息的操作。当用户在电子设备端进行前述操作时,可弹出禁止截屏的软键盘用于用户输入。在电子设备端中,软键盘的按键随机排列,且无按下效果和按下显示的界面功能。又例如,当用户输入字符时,其输入结果以“*”或其他字符表示,本发明对此不作特殊限定。此外,还可禁止对输入结果的复制、剪切以及粘贴等功能,以防止输入内容被盗取、篡改等。
根据示例实施例,可根据随机盐值与所述字符生成该字符的储存值。其中,该方式可通过对用户输入的字符加盐以对其加密。加盐是指在原始密码的字符串中的任意固定位置插入特定的字符串(即盐),以对其进行加密的方式。其中,还可使用国密SM3算法对字符值进行处理,以生成字符的储存值。SM3算法也称为哈希算法,通过该算法可得到消息认证码(HMAC值)。由于SM3算法计算所需的口令为一随机数,相同字符所对应的消息认证码每次均不一样,可防止消息劫持(hook)或内存检测带来的安全风险。应该理解,本发明对用户输入字符的处理方式并不作特殊限定,还可使用其他算法对字符值进行处理,以生成字符的储存值。
在步骤S120中,根据第一公钥与电子设备信息生成握手信息。其中,在密码学中,待加密的消息称为明文,已加密的消息称为密文。公钥与私钥为一个密钥对。密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。在密钥中,公钥用于对数据进行加密,私钥用于对数据进行解密。密钥可分为两种:对称密钥与非对称密钥。其区分规则可根据密码算法所使用的加密密钥和解密密钥是否相同、能否由加密过程推导出解密过程(或由解密过程推导出加密过程),以进行判断。本步骤中的第一公钥与其对应的第一私钥可根据实际情况将其设定为对称密钥或非对称密钥,本发明对此不作特殊限定。此外,第一公钥与第一私钥可例如由密码机生成。
根据示例实施例,步骤S120可包括根据随机盐值与第一随机数生成第三密钥;以及根据第一公钥、第三密钥以及电子设备信息生成握手信息。其中,握手信息的生成方法可包括:通过第一公钥与第二加密算法对第三密钥进行加密处理,以生成初始化密文信息;以及根据初始化密文信息、电子设备信息以及第三密钥签名信息生成握手信息。其中,第二加密算法可例如为国密算法SM2算法。国密算法为国家密码局认定的国产密码算法,其主要有SM1、SM2、SM3、SM4算法。前述算法的密钥长度和分组长度均为128位。SM2算法为非对称加密算法,第二加密算法还可为其他非对称加密算法或对称加密算法(当第一公钥与第一私钥为对称的情况),本发明的技术方案对第二加密算法并不作特殊限定。
根据示例实施例,握手信息的生成方法还可例如为:通过第一公钥与第二加密算法对第三密钥、电子设备信息以及第三密钥签名信息进行加密处理,以生成握手信息。当网关接收到此例中的握手信息时,可首先对其进行解密处理,以获取第三密钥、电子设备信息以及第三密钥签名信息,再根据上述信息进行确认、电子设备校验以及签名校验的步骤。
步骤S130,通过所述握手信息与网关通过握手方式进行互信确认,获取第二密钥。其中,在计算机领域,握手是指客户端及服务器确认彼此的身份的一类网络协议,其可用于信息传输开始之前的身份验证等。
根据示例实施例,可获取网关的返回密文信息;以及通过第二密钥与第三解密算法对所述返回密文信息进行解密处理,以获取第二密钥。例如,当网关收到步骤S120中的握手信息,成功完成身份确认时,可以向电子设备端发送返回密文信息,以便电子设备端完成身份确认。其中,返回密文信息可例如由网关随机产生一组数据,并使用握手信息中的数据信息(例如第三密钥)作为公钥以对其进行加密处理后获得的密文信息。又例如,网关可通过第一私钥对接收到的握手信息进行解密,以获取握手信息中的第一公钥、第三密钥以及电子设备信息。其中,网关还可通过电子设备信息对电子设备端进行校验。
步骤S140,通过所述第二密钥与第一加密算法对所述字符进行加密处理,生成第一信息。其中,所述字符可为输入字符的储存值,以安全传输用户的输入字符。第一加密算法可例如为国密SM4算法,其为无线局域网标准的分组数据算法。SM4算法为对称加密算法,第一加密算法还可例如为其他加密算法,本发明对此并不作特殊限定。
根据本申请的信息传输方法,通过在电子设备端禁止截屏、显示和复制等功能,并对第三密钥、第二密钥进行加密保证电子设备端与网关的安全互信确认与密钥传输,以及对用户输入字符的加密传输。本申请的信息传输方法能够提升敏感数据的输入、存储以及传输安全。
图2是根据一示例性实施例示出的一种信息传输方法的流程图。参照图2,信息传输方法可以包括:
步骤S210,接收来自电子设备端的握手信息。其中,握手信息可包含有第三密钥以及电子设备信息。握手信息的接收端可例如为网关,当其接收到握手信息后,可首先对握手信息中的电子设备信息进行设备校验,校验成功后再进行下述步骤,但本发明对此不作特殊限定,例如还可在握手信息中添加签名,以对电子设备进行签名校验。其中,若握手信息生成方式为:通过第一公钥与第二加密算法对第三密钥、电子设备信息以及第三密钥签名信息进行加密处理,以生成握手信息。则可首先对其进行解密处理,以获取第三密钥、电子设备信息以及第三密钥签名信息。
步骤S220,通过第一私钥与所述握手信息与所述电子设备进行互信确认,生成第二密钥。其中,第一私钥可由密码机生成并发送至网关,与第一私钥对应的第一公钥可另发送至电子设备端以进行相应的加密处理。例如,可通过第一私钥与第二解密算法对所述握手信息进行解密处理,以获取第三密钥;以及通过第二密钥与第三加密算法对所述第三密钥进行加密处理,以生成返回密文信息。其中,第二解密算法为与第二加密算法相匹配的算法,例如为国密SM2的解密算法。第三加密算法可例如为国密SM4算法,也可例如为其他对称加密算法。
根据示例实施例,还可根据握手信息获得第三密钥签名信息与电子设备信息;以及根据第三密钥签名信息与电子设备信息对所述电子设备进行校验。其中,可通过第三密钥签名信息进行签名校验,还可通过电子设备信息对电子设备进行校验。
步骤S230,接收第一信息并根据所述第二密钥解密所述第一信息,生成解密信息。其中,第一信息可由电子设备端生成,并根据第二密钥进行了加密处理。在本步骤中,可使用第二密钥与第一解密算法对第一信息进行解密处理。其中,第一加密算法可为与步骤S140中的第一加密算法相匹配的第一解密算法,例如为SM4算法。
步骤S240,将所述解密信息与预定符号表对应以生成输出信息。其中,可通过预定算法对所述第三密钥进行处理,以生成所述预定符号表。第三密钥可由电子设备端根据随机盐值与第一随机数生成,预定算法为第三密钥生成时使用的算法,参照步骤S110中的对输入字符的处理方式,预定算法可例如为SM3算法。根据示例实施例,可通过将解密信息(即步骤S110获取到的字符储存值)与预定符号表对应,以获取用户的输入字符。例如,当用户的输入字符为国密算法SM3后获取的消息认证码(HMAC值),可将消息认证码与预定符号表对应,以获取用户的输入字符。
图3是根据另一示例性实施例示出的一种信息传输方法的流程图。参照图3,信息传输方法可以包括:
步骤S302,由密码机生成第一密钥对,分别为第一公钥与第一私钥。其中,第一公钥分发给电子设备端,主要用于电子设备端与网关握手时SM4算法的密钥加密;第一私钥分发给网关使用,主要用于与电子设备端握手时SM4算法的密钥的解密。其中,可将第一私钥标识分发给网关使用。
步骤S304,电子设备端产生一个8位随机盐值。其中,随机盐值用于用户输入的字符进行混合,但本发明对随机盐值的具体位数并不作特殊限定。
步骤S306,将步骤S304中的随机盐值与键盘字符混合,并通过SM3算法生成键盘字符的对应值,以作为键盘点击时在内存中的储存值。本发明还可以使用其他预定算法生成键盘字符的对应值,并不以SM3算法为限。
步骤S308,电子设备端产生一个8位第一随机数,但本发明对第一随机数的具体位数并不作特殊限定,还可例如为16位等。
步骤S310,将随机盐值与第一随机数组合成第三密钥。其中,第三密钥可用于握手时的解密密钥。
步骤S312,使用第一公钥与SM2算法对第三密钥进行加密处理,并与电子设备信息和第三密钥签名信息等一起发给网关。
步骤S314,网关使用步骤S302产生的第一私钥与SM2算法对从步骤S312中获取的信息进行解密处理,以获得第三密钥信息。其中,还可根据电子设备信息与第三密钥签名信息进行设备校验、签名校验,并对上述信息进行存储。
步骤S316,网关用步骤S314中解密的数据同步骤S306的处理方式,以获得与电子设备端相同的键盘字符的SM3值的对应表。
步骤S318,网关随机产生第二密钥,用作返回密文信息传输时的密钥。第二密钥可例如符合SM4算法标准的16位密钥,但本发明对此并不作特殊限定,其具体形式根据其匹配的加密算法所确定。
步骤S320,通过第三密钥与SM4算法对第二密钥进行加密处理,并返回给电子设备端。本步骤的加密算法并不以SM4算法为限,还可使用其他对称加密算法。
步骤S322,电子设备端通过第三密钥与SM4算法对从步骤S320获得的数据进行解密处理,以获取第二密钥。至此完成握手流程。
步骤S324,电子设备端通过第二密钥与SM4算法对加密用户输入的“密码”进行加密并传输给网关。
步骤S326,网关通过第二密钥与SM4算法对从步骤S324获得的数据进行解密处理,以获得用户输入的“密码”的SM3值。
步骤S328,网关将用户输入的“密码”的SM3值与使用键盘初始化得到的符号表对应,即可得到明文。其中,“密码”的SM3值可为消息认证码(HMAC值),符号表可由步骤S316获取,即与电子设备端相同的键盘字符的SM3值的对应表。通过将“密码”的SM3值与符号表对应,可得到用户的输入字符,即敏感信息的明文。在本步骤中,由于消息认证码的计算口令为一随机数,即相同字符所对应的消息认证码每次均不同,可保证用户输入信息的安全输入、传输与获取。
根据本申请的信息传输方法,通过在电子设备端禁止截屏、显示和复制等功能,并对第三密钥、第二密钥进行加密保证电子设备端与网关的安全互信确认与密钥传输,以及对用户输入字符的加密传输。本申请的信息传输方法能够提升敏感数据的输入、存储以及传输安全。具体可参照图4,本申请的信息传输方法可为电子设备端上使用的安全输入控件,提供字母、数字、符号的输入功能;主要用于登录密码、交易密码等敏感信息的输入。在用户输入时禁止用户截屏,从而避免截屏风险;每次输入时键盘中按键都随机排布,且不提供按下效果和按下显示,并且输入字符都以“*”显示,从而避免偷窥风险;同时禁止复制、剪切和黏贴功能,从而避免输入内容被盗窃或篡改。在存储阶段,按键字符不使用系统控件,纯自定义描绘,且不提供获取字符方法;当有按键动作时,内存中不出现对应的字符,而是该字符对应的用预定算法(例如实施例中的SM3算法)计算获得消息认证码(例如HMAC值),而该计算所需口令为随机数,即相同字符所对应的消息认证码每次均不同,从而有效防止消息劫持或内存检测带来的风险。在传输阶段,每次通信均使用加密算法(例如祖冲之算法)产生一次性密钥,然后将密钥作为解密的密钥来解密通信数据,保证数据的安全性和随机性;同时,使用预定算法(例如SM3算法)计算通信数据的消息认证码,从而确保完整性。
图5是根据一示例性实施例示出的一种信息传输系统的框图。参照图5,信息传输系统可以包括:电子设备端510以及网关端520。
在信息传输系统中,电子设备端510用于根据用户在预定界面的操作获取字符;根据第一公钥与电子设备信息生成握手信息;通过所述握手信息与网关通过握手方式进行互信确认,获取第二密钥;通过所述第二密钥与预定算法对所述字符进行加密处理,生成第一信息;其中,所述预定界面中禁止截屏操作,且界面上按键随机排列。例如,用户在电子设备端的操作可为用户为进行验证而输入登录密码、身份证号等敏感信息的操作。当用户在电子设备端进行前述操作时,可弹出禁止截屏的软键盘用于用户输入。在电子设备端中,软键盘的按键随机排列,且无按下效果和按下显示的界面功能。又例如,当用户输入字符时,其输入结果以“*”或其他字符表示,本发明对此不作特殊限定。此外,还可禁止对输入结果的复制、剪切以及粘贴等功能,以防止输入内容被盗取、篡改等。
根据示例实施例,电子设备端510可根据随机盐值与所述字符生成该字符的储存值。其中,握手信息的生成方式可例如为:根据随机盐值与第一随机数生成第三密钥;以及根据第一公钥、第三密钥以及电子设备信息生成握手信息。
根据示例实施例,电子设备端510还可用于获取网关的返回密文信息;以及通过第二密钥与第三解密算法对所述返回密文信息进行解密处理,以获取第二密钥。
网关端520用于接收来自电子设备端的握手信息;通过第一私钥与所述握手信息与所述电子设备进行互信确认,生成第二密钥;接收第一信息并根据所述第二密钥解密所述第一信息,生成解密信息;将所述解密信息与预定符号表对应以生成输出信息。
根据示例实施例,网关端520还可根据握手信息获得第三密钥签名信息与电子设备信息;以及根据第三密钥签名信息与电子设备信息对所述电子设备进行校验。
根据本申请的信息传输系统,通过在电子设备端禁止截屏、显示和复制等功能,并对第三密钥、第二密钥进行加密保证电子设备端与网关的安全互信确认与密钥传输,以及对用户输入字符的加密传输。本申请的信息传输系统能够提升敏感数据的输入、存储以及传输安全。
图6是根据一示例性实施例示出的一种用于信息传输的电子设备的框图。
下面参照图6来描述根据本申请的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从储存部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。例如,中央处理单元601可以执行如图1、图2、图3中的一个或多个所示的步骤。
在RAM 603中,还存储有系统操作所需的各种程序和数据,例如握手信息、电子设备信息、字符储存值等。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括触摸屏、键盘等的输入部分606;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分607;包括闪存等的储存部分608;以及包括诸如无线网卡、高速网卡等的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如半导体存储器、磁盘等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入储存部分608。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本发明实施例的方法,例如图1、图2、图3中的一个或多个所示的步骤。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其他实施例。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
应当理解的是,本发明并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。