一种防止数字签名钓鱼攻击的方法技术

技术编号:27660976 阅读:43 留言:0更新日期:2021-03-12 14:30
本发明专利技术防止数字签名钓鱼攻击的方法,以hash+purpose的方式组织待签名数据;在签名前,将purpose展现给签名者,让签名者确认本次签名的用途;对hash+purpose进行签名,把签名和签名用途绑定,避免签名被用在其它用途。使用本发明专利技术的防止数字签名钓鱼攻击的方法,即使攻击者Q成功替换hash,但由于有purpose的存在,Q只有两个选择:要么改变purpose:这会被B发现,明明是做低风险登录却被改成高风险的行为;要么purpose不变:由于B的最终签名里面带有purpose信息,如果Q把带登录信息的签名附在合同后面,将会被迅速发现,明显是一个被改变了用途的签名,不具备合法性。

【技术实现步骤摘要】
一种防止数字签名钓鱼攻击的方法
本专利技术涉及可靠安全的数字签名实现方法,避免签名者遭受钓鱼攻击。具体而言,本专利技术涉及一种防止数字签名钓鱼攻击的方法。
技术介绍
二维码:二维码(2-dimensionalbarcode)是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。二维条码有一维条码没有的“定位点”和“容错机制”。容错机制在即使没有辨识到全部的条码、或是说条码有污损时,也可以正确地还原条码上的资讯。数字证书:数字证书是证明用户身份的网上标识,在网络中识别通讯各方的身份,即在虚拟社会中解决“我是谁”的问题。通俗的讲,数字证书就好像是网上用户的身份证,能够保证您在网络上进行的交易是安全的和可信的。数字证书主要有如下作用:1、身份认证:数字证书中包括的主要内容有:证书拥有者的单位信息、证书拥有者的公钥、公钥的有效期、颁发数字证书的CA、CA的数字签名等。2、加密传输信息:通过数字证书在网上传输数据,这些数据要进行加密,然后以密码的形式在Internet上传输。发送方用接收方的公钥对文件进行加密,接收方用只有自己才有的私钥进行解密,得到文件明文。3、数字签名抗否认:在现实生活中用公章、签名等来实现的抗否认,在网上可以借助数字证书的数字签名来实现。数字签名是各类提供个性化高价值应用服务确认用户身份和防抵赖的重要手段,在网上银行、电子合同等应用中被广泛使用.但是数字签名本质上,是对待签名数据的hash进行签名。例如,当需要对一本《红楼梦》签名的时候,是先对《红楼梦》全文做一个hash,获得类似“ec7865a0bd1f6845715d408f37e10d09c8ff930fe5c660f971731838c5599299”这样的hash结果H,再用签名者的私钥对H进行签名,获得最终的数字签名S。Hash值对人对计算机来说,都是一串“无规律”的字符串,不论是人还是计算机,都无法直接判读出Hash值和原文之间的关系。这是hash算法的优点,但是这给中间人攻击留下了机会。例如,当B要对《红楼梦》进行数字签名的时候,Q替换了《红楼梦》的hash值H1,改成了《水浒传》的hash值H2,B以为自己是对H1签名,但是由于hash值的无规律性,B对hash值已经被替换为H2毫无察觉,最终被钓鱼,被Q获取了对《水浒传》的签名。这里的《水浒传》可以替换成转账、合同、登录等。考虑到数字证书的一个高频率签名的应用场景--登录,这会是钓鱼攻击者的重点攻击对象。
技术实现思路
针对现有技术中存在的问题,本专利技术要解决的技术问题是:根据上文中所提到的数字签名方式存在的不足,提出一种更可靠的数字签名方式。为了实现上述专利技术目的,本专利技术采用的技术方案为:一种防止数字签名钓鱼攻击的方法,其特征在于:以hash+purpose的方式组织待签名数据;在签名前,将purpose展现给签名者,让签名者确认本次签名的用途;对hash+purpose进行签名,把签名和签名用途绑定,避免签名被用在其它用途。具体步骤为:■A模块表示待签名数据的生成者;■B表示签名者;■C模块表示B持有的签名模块,签名模块是一段程序,完成实际的数字签名操作;■Q表示中间人或攻击者;步骤一、A模块根据待签名数据生成Hash值H;步骤二、A模块以hash+purpose的数据编码格式组织签名数据块;所述数据编码格式中还包括time、identity、signature;其中:所述hash:待签名数据的hash值(H),可以以任意编码格式组成,例如hexstring,base64编码等等;所述purpose:签名用途,由签名模块展示给B,用于给B验证签名用途;所述time:待签名数据生成的时间,用于给B做进一步验证签名用途;所述identity:待签名数据的生成者,用于给B做进一步验证签名用途;所述signature:A模块对以上所有或部分数据的数字签名,用于保证上述数据的完整可靠。步骤三、签名数据块能够转换为二维码等图像编码,供手机等终端通过扫描方式获取。步骤四、C模块解析签名数据块后,获取hash,purpose,time,identity,signature等项;(1)如果是无风险或者低风险purpose,C模块可以直接进入下一步骤;(2)将purpose以文字或者图标的方式,直观地展现给B;(3)B验证签名用途是否符合本次签名的目的,如果符合,则确认签名。步骤五、C模块有两种签名方式:(1)对整个签名数据块进行签名;(2)对至少包括hash+purpose的数据进行签名;步骤六、B将签名后的结果提交给A模块;步骤七、A模块验证B的签名。有益效果:随着网上银行等在线应用、电子营业执照等电子证照的推广和普及,数字签名的应用越来越普遍。拿出手机、扫码、输入口令、完成签名这样的操作也将在越来越多的应用中出现。在采用数字证书作为身份认证手段的应用中,使用数字签名进行系统登录这样的场景也越来越广泛。但是数字签名的使用实际上存在巨大的风险。数字签名本质上是一种不可否认的确认,可以大致类比现实生活中的公章或签名。每一次数字签名,就是一次盖章。那么问题在于,在现实生活中,盖章的时候是不大可能发生有人在盖章人眼皮底下用借条换掉合同的事情,但是在网络上,电子化的环境中,这种偷梁换柱李代桃僵的情况却是非常普遍,以至于有了一个专门的名称,叫做“钓鱼”。电子签名的不可否认性,使得这种攻击的后果尤其严重。如果电子签名的使用场景仅仅只有签署合同这样的高风险场景,签名者基于原先的生活经验,可能会非常谨慎,对“钓鱼”的行为会安排一些防护手段。但是在使用电子签名登录系统这种场景下,虽然从技术本质上来讲,其签名流程和签合同几乎没有差异,但是却很少有用户甚至信息安全从业人员会意识到其中的风险。总结一下,目前电子签名的风险主要来自两个方面:1.高风险低风险场景混杂,极易在低风险场景下引发高风险后果;2.电子签名的使用频率大幅度上升,为诱发高风险后果打开了方便之门那么如何解决以上两个问题,显然降低电子签名的使用频率不可行,这本质上是开技术的倒车。因此,本专利技术的思路在于基于签名场景,一方面给签名者充分展现风险等级,另一方面将签名用途与签名结果直接绑定。例如,在用户要进行登录签名这种低风险操作的时候,在签名界面用绿色展示,让用户知道这个场景是低风险的,同时,将“登录”包含在签名结果中。而当用户需要在网上签名来确认交易的时候,在签名界面用红色展示,让用户知道这个场景是高风险的,同时把交易名称(例如“转账”)包含在签名结果里面。通过这样的方式,让钓鱼者无法通过伪造登录本文档来自技高网
...

【技术保护点】
1.一种防止数字签名钓鱼攻击的方法,其特征在于:/n以hash+purpose的方式组织待签名数据;/n在签名前,将purpose展现给签名者,让签名者确认本次签名的用途;/n对hash+purpose进行签名,把签名和签名用途绑定,避免签名被用在其它用途。/n

【技术特征摘要】
1.一种防止数字签名钓鱼攻击的方法,其特征在于:
以hash+purpose的方式组织待签名数据;
在签名前,将purpose展现给签名者,让签名者确认本次签名的用途;
对hash+purpose进行签名,把签名和签名用途绑定,避免签名被用在其它用途。


2.根据权利要求1所述的防止数字签名钓鱼攻击的方法,其特征在于,具体步骤为:
■A模块表示待签名数据的生成者;
■B表示签名者;
■C模块表示B持有的签名模块,签名模块是一段程序,完成实际的数字签名操作;
■Q表示中间人或攻击者;
步骤一、A模块根据待签名数据生成Hash值H;
步骤二、A模块以hash+purpose的数据编码格式组织签名数据块;
步骤三、C模块解析签名数据块后,获取hash,purpose,time,identity,signature等项,如果是无风险或者低风险purpose,C模块直接进入下一步骤;
步骤四、C模块有两种签名方式:
步骤4.1、对整个签名数据块进行签名;
步骤4.2、对至少包括hash+purpose的数据进行签名;
步骤五、B将签名后的结果提交给A模块;
步骤六、A模块验证B的签名。


3.根据权利要求2所述的防止数字签名钓鱼攻击的方法,其特征在于:步骤4.2中time,identity作为可选项也加入到签名内容里面去。


4.根据权利要...

【专利技术属性】
技术研发人员:庄昱垚
申请(专利权)人:江苏先安科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1