专利名称:利用非对称密钥算法实现外部认证的方法
技术领域:
本发明涉及信息安全领域的认证方法,尤其涉及一种利用非对称密钥算法实现外部认证 的方法。
技术背景在信息安全领域, 一个不可避免的问题就是需要验证主、被叫方身份是否合法。例如, 主叫方对被叫方的身份进行验证,如果验证的结果为被叫方的身份合法,则向其提供进一步 通讯资源使用权,否则不提供进一步的资源使用权。通常在安全认证应用领域中,所采用的安全认证方式主要有两种采用对称密钥算法实 现外部认证的方法和采用非对称密钥算法实现外部认证的方法。 (一)采用对称密钥算法实现外部认证的方法,其过程如下(a) 通讯双方即主、被叫方,事先约定所采用的加密算法,和一个共享密钥,该密钥用 于加密和解密;(b) 主叫方向被叫方提出取认证随机数据请求,被叫方根据该请求生成一组认证随机数 据,并发送给主叫方;(C)主叫方用约定的算法和密钥对认证随机数据做加密运算,把运算结果提供给被叫方; (d)被叫方用约定好的算法和密钥对认证随机数据进行运算,并将运算结果与主叫方的运算结果进行比较,如果比较一致,就确认了主叫方的身份,向主叫方提供进一步的通讯环境。从上述流程中可以看出,利用对称密钥算法做外部认证,通讯双方需要事先约定密钥, 而密钥是保密的,不对外界提供,拥有所约定密钥的,就可认为其身份合法。只有知道所约 定的密钥,才可能计算出正确的结果。对称密钥算法的特点是算法公开、计算量小、加密速度快、加密效率高,但是,通讯双 方需要事先约定同样的密钥,并由主叫方将该密钥传送给被叫方;因此,传送过程中,密钥 的安全性得不到保证。此外,每对用户每次使用对称密钥算法时,都需要使用其他人不知道 的惟一密钥,这会使得主、被叫双方所拥有的密钥数量成几何级数增长,密钥管理成为用户 的负担。单纯的对称密钥管理,存在密钥约定和保密方面的风险。因而,密钥协商是对称密 钥算法的劣势。(二)采用非对称密钥算法实现外部认证的方法。非对称密钥算法即公钥密码算法,是 使用两把完全不同但又是完全匹配的一对钥匙公钥和私钥。对于使用公钥加密的数据,只 能使用与该公钥匹配的私钥进行解密;对于使用私钥加密的数据,只能使用与该私钥匹配的 公钥进行解密。顾名思义,公钥是指可以提供给很多人的密钥,是公开的。相反,私钥是特定个人所独 有的,是保密的。具体通讯时,首先,通讯双方事先都申请有共同信任的第三方的数字证书,该第三方可 以是一个CA (数字证书颁发机构)服务机构,也可以是专用服务器;通常,数字证书颁发机 构(CA)对主叫方公钥进行数字签名,以便确认公钥是来自声称发送公钥的主体。主叫方向 被叫方发送主叫方公钥,由于公钥的公开并不会影响到通信的保密性,主叫方可以将其公钥 公布在公共数据库,由其他用户取用,或以普通电子邮件等方式发送给被叫方;被叫方得到 主叫方公钥后,利用非对称密钥算法以主叫方公钥作为加密密钥对明文进行加密,并将密文 发送给主叫方;主叫方收到密文后,使用自己持有的私钥对密文进行解密,还原出明文。利用非对称密钥实现外部认证的典型过程如图1所示(1) 主叫方将一个请求发送给CA,该请求中包括主叫方的名字,主叫方公钥和其他一 些信息;(2) CA使用CA的私钥对主叫方公钥进行数字签名;CA将该数字签名返回给主叫方;(3) 主叫方将主叫方公钥和数字签名发送给被叫方;(4) 被叫方获取CA的公钥,并用CA的公钥对数字签名进行验证。如果证明数字签名是 有效的,说明主叫方的身份合法。在上述流程中,被叫方首先证明主叫方的数字签名是合法的(因为第三方的数字签名是 大家认可的),继而证明主叫方是该公钥的合法持有者(主叫方私钥和公钥是成对的),并以 此说明主叫方的身份是合法的。因而,非对称密钥算法可实现强鉴别,并能以数字签名实现不可抵赖性,解决了密钥管 理的问题。然而在使用非对称密钥算法实现外部认证的时候,在验证了主叫方公钥的合法性之后, 被叫方并没有对主叫方私钥再做进一步的验证,这样就很难保证主叫方公钥和主叫方私钥是 一对匹配的公私钥对。也就是说,由于已经验证了主叫方公钥的合法性,若此时主叫方发生改变,替换后的主叫方仍能与被叫方进行通讯。但是,此时,与被叫方进行通讯的主叫方前后不一致,因此,这就破坏了通讯的完整性和流畅性。发明内容本发明的目的在于提供一种利用非对称密钥算法实现外部认证的方法,以增强通讯过程 中的安全性。为达到上述目的,本发明采用以下技术方案。 利用非对称密钥算法实现外部认证的方法,包括以下步骤-(1) 被叫方验证主叫方公钥;(2) 被叫方验证主叫方私钥;(3) 若主叫方公钥和主叫方私钥是一对匹配的公私钥对,则为主叫方和被叫方提供合法 的通讯环境。所述步骤(1)和(2)之间还包括 被叫方对主叫方公钥进行锁定保护。 所述步骤(1)具体为(11) 主叫方获取第三方对主叫方公钥的数字签名;(12) 主叫方向被叫方提供主叫方公钥和第三方对主叫方公钥的数字签名,由被叫方进 行合法性验证。所述步骤(11)包括(111) 主叫方向第三方发送请求,该请求中包含有主叫方公钥;(112) 第三方收到该请求后,对所述主叫方公钥迸行数字签名;(113) 第三方将该消息和数字签名返回给主叫方。所述步骤(112)中的第三方对主叫方公钥进行数字签名的过程具体为 第三方先对主叫方公钥做摘要运算,然后对摘要运算的结果做填充,用第三方的私钥对填充后的摘要运算结果做非对称密钥的私钥运算。所述步骤(12)中的主叫方向被叫方提供主叫方公钥和第三方对主叫方公钥的数字签名的过程具体为(121)主叫方向被叫方发送主叫方公钥;(122) 主叫方向被叫方发送第三方对主叫方公钥的数字签名;被叫方收到该数字签名后, 从第三方获取第三方的公钥;(123) 被叫方用第三方的公钥验证主叫方提供的数字签名。 所述步骤(123)具体为被叫方使用第三方的公钥对该数字签名做公钥运算;将公钥运算得到的结果,和数字签 名中的摘要运算的结果进行比较,若比较结果相同,则该数字签名合法;若比较结果不同, 则该数字签名不合法。所述被叫方使用第三方的公钥做公钥运算的结果,与数字签名中摘要运算的结果进行比 较的标准是公钥运算结果的格式,与填充后的结果的格式一致;并且,可分离出来的被填充数据和 数字签名中摘要运算的结果一致。 所述步骤(2)具体为(21) 主叫方向被叫方发送取认证随机数据请求,被叫方根据该请求生成认证随机数据, 并发送给主叫方;(22) 主叫方用主叫方私钥对认证随机数据做数字签名,并将数字签名发送给被叫方;(23) 被叫方用主叫方被验证后的公钥对该私钥运算后的结果进行验证;若验证通过, 则主叫方的身份合法;否则主叫方的身份不合法。所述主叫方用主叫方私钥对认证随机数据数字签名的过程具体为-主叫方先对认证随机数据摘要运算,再将摘要运算结果做填充,之后用主叫方私钥做非 对称密钥的私钥运算;所述被叫方用主叫方公钥对该数字签名进行验证的过程具体为被叫方使用主叫方公钥对该数字签名做公钥运算;将公钥运算得到的结果,和数字签名 中的摘要运算的结果进行比较,若比较结果相同,则可确认主叫方的身份; 所述认证随机数据为一组随机数或者当前时间。综上所述,本发明采用非对称密钥算法实现外部认证的方法,利用非对称密钥算法可方 便的做密钥协定这一优点,主叫方获取第三方私钥对主叫方公钥的数字签名,并将主叫方公 钥和该数字签名发送给被叫方;被叫方用第三方的公钥验证主叫方的数字签名的合法性;接着,由被叫方验证主叫方是否具有与主叫方公钥相匹配的私钥,即主叫方利用主叫方私钥对 被叫方提供的认证随机数据进行数字签名,而被叫方用主叫方公钥对数字签名进行验证。因 此,上述前后两个验证的过程,能够确保主叫方公钥和主叫方私钥是相互匹配的公私钥对, 实现了对通讯双方身份的有效认证,提高了外部认证的有效性,增强了通讯过程的安全性。另外,在确认了主叫方公钥的合法性后,由被叫方对主叫方公钥做锁定保护,这样,就 保证了主叫方公钥在通讯过程中不被替换,从而,在主、被叫双方做进一步的通讯的时候, 能够确保进行通讯的双方不发生改变,也就是说做进一步通讯的双方仍是在进行公钥合法性 验证之前想要进行通讯的双方。因此,这个步骤保证了通讯过程的完整性和流畅性。
图1是现有技术中利用非对称密钥算法实现外部认证的流程图; 图2是本发明利用非对称密钥算法实现外部认证的方法的基本原理图; 图3是本发明利用非对称密钥算法实现外部认证的方法的流程图; 图4是本发明利用非对称密钥算法实现外部认证的方法在具体实施过程中的流程图。
具体实施方式
为使本发明的目的,技术方案和优点更加清楚,下面结合附图和具体实施例对本发明作 进一步的详细说明。如图2所示,本发明的中心思想如下首先,被叫方验证主叫方公钥;若主叫方公钥合 法,则由被叫方验证主叫方私钥;若主叫方公钥和主叫方私钥是一对匹配的公私钥对,则为 主叫方和被叫方提供合法的通讯环境。如图3所示,本发明的实现流程如下第三方拥有一对相互匹配的公钥和私钥;主叫方 发送主叫方公钥给第三方;第三方用其私钥对所述主叫方公钥进行数字签名,并将该数字签 名发送给主叫方;主叫方发送主叫方公钥和数字签名给被叫方,被叫方获得第三方的公钥后, 对所述数字签名进行验证;验证通过后,主叫方发送取认证随机数据请求给被叫方,被叫方生成认证随机数据,并 发送给主叫方;主叫方利用主叫方私钥对认证随机数据进行数字签名,并将该数字签名发送 给被叫方;被叫方用主叫方公钥对数字签名进行验证。若验证通过,则主叫方的身份合法。上述认证流程中所提到的第三方是主、被叫双方共同信任的机构,可以是一个CA(数字 证书颁发机构)服务机构,也可以是专用服务器。上述的数字签名,是非对称密钥算法的一个功能。实现数字签名有很多方法,目前数字 签名采用较多的是非对称密钥技术,如基于RSA Data Security公司的PKCS (Public Key Cryptography Standards)、 DSA (Digital Signature Algorithm)、 X. 509、 PGP (Pretty Good Privacy)。 1994年美国标准与技术协会公布了数字签名标准(DSS)而使公钥加密技术广泛 应用,同时应用散列算法(HASH)即摘要算法,也是实现数字签名的一种方法。所述的数字签名的过程是,先对待签名数据(例如上面提到的主叫方公钥,认证随机 数据等)用摘要函数(HASH函数)做摘要运算,然后按照安全协议规定的格式进行填充,最 后利用非对称密钥算法(如RSA算法等)使用签名者的私钥(例如上面提到的第三方的私 钥,主叫方私钥等)对摘要运算的结果做私钥运算,得到的结果就是数字签名。采用本发明进行外部认证的流程中,数字签名的过程包括第三方对主叫方公钥的数字签名,以及主叫 方对被叫方提供的认证随机数据的数字签名。这两个过程在具体实施例中详细介绍。所述摘要运算为现有技术,是安全协议中用到的一种单向函数,采用单向散列算法,即 对输入的不定长度的数据作变换,输出固定长度的变换结果。常用的摘要算法有MD5、 SHAl、 SHA256等。下面结合实施例详细说明本发明。在本实施例中,作外部认证的通讯双方,即主叫方是外部通讯设备,被叫方是信息安全 设备。信息安全设备,是指具备非对称密钥运算能力的设备,用于信息安全的目的。外部通 讯设备是指要和信息安全设备进行通讯的设备。目前,使用非对称密钥算法的加密标准有RSA, DSA, Diffie—Hellman等,其中,RSA 算法是第一个能同时用于加密和数字签名的算法。RSA算法是被研究得最广泛的非对称密钥 算法,从提出到现在己近二十年,其经历了各种攻击的考验而逐渐为人们接受,并被普遍认 为是目前最优秀的公钥方案之一。下面结合图4,以RSA算法为例,描述本发明的具体实施 过程。步骤l:外部通讯设备发送请求给CA,该请求包含有外部通讯设备的名称,外部通讯设 备公钥和其他一些信息。收到该请求后,CA使用CA的私钥对所述外部通讯设备公钥进行数 字签名。CA将该数字签名返回给外部通讯设备。步骤2:为了证明自己的身份合法,以期和信息安全设备做有效通讯,外部通讯设备发起认证过程外部通讯设备向信息安全设备发送外部通讯设备公钥及第三方对外部通讯设备公钥的数字签名,由信息安全设备对该数字签名的合法性进行验证。信息安全设备对所述数字签名的合法性进行验证的过程包括如下步骤步骤21:外部通讯设备向信息安全设备发送CA对外部通讯设备公钥的数字签名;信息安全设备收到该数字签名后,从CA获取CA的公钥,并用CA的公钥验证外部通讯设备提供的数字签名;步骤22:验证通过后,信息安全设备对外部通讯设备公钥做锁定保护。 在步骤l中,CA对外部通讯设备公钥做数字签名的过程为CA先对被签名数据即外部通 讯设备公钥做摘要运算,然后把摘要运算的结果按照安全协议规定的方式做填充,用CA的私钥对填充后的摘要运算结果做非对称密钥的私钥运算,运算出来的结果就是数字签名。所述的安全协议,可以为PKCS协议,也可以是X.509协议等等;采用不同的安全协议,由于每种 安全协议对应的填充方式不同,因此可得到不同的填充结果。由于在上述CA对外部通讯设备公钥做数字签名的过程是利用了 CA的私钥,根据非对称 密钥算法的原理,只有使用与CA的私钥相匹配的CA的公钥才能对该数字签名进行验证。因 此,信息安全设备在对该数字签名的合法性进行验证的时候,就需使用CA的公钥。在步骤21中,信息安全设备用CA的公钥对上述数字签名的合法性进行验证的过程为 使用CA的公钥对该数字签名做公钥运算;将公钥运算得到的结果,和数字签名中的摘要运算 的结果进行比较,若比较结果相同,则该数字签名合法;若比较结果不同,则该数字签名不 合法。这个过程可以看作是CA对外部通讯设备公钥做数字签名的过程的逆运算。信息安全设备 用CA的公钥对该数字签名做公钥运算;若其运算结果的格式,与上述按照安全协议填充后的 结果的格式一致;并且,可分离出来的被填充数据和数字签名中摘要运算的结果一致的话, 就可证明外部通讯设备所提供的CA对外部通讯设备公钥的数字签名合法,并由信息安全设备 对外部通讯设备公钥做锁定保护,以进行进一步的通讯;若不一致,则该数字签名不合法,外部认证流程结束。步骤3:外部通讯设备向信息安全设备发送取认证随机数据请求,信息安全设备根据该 请求生成一组认证随机数据,并将所述认证随机数据发送给外部通讯设备。所述的认证随机数据既可以是一组随机数,也可以是其他数据,比如当前时间等,还可 使用信息安全设备的公钥作为认证随机数据。步骤4:外部通讯设备利用外部通讯设备私钥对该认证随机数据做数字签名,并将签名 后的认证随机数据发送给信息安全设备;信息安全设备利用经锁定保护的外部通讯设备公钥 验证该数字签名,若该数字签名验证合法,则外部通讯设备的身份合法;否则,外部通讯设 备的身份不合法。这里的外部通讯设备对认证随机数据做数字签名的过程为外部通讯设备先对认证随机 数据做摘要运算,再将摘要运算结果按照安全协议规定的方式做填充,之后用外部通讯设备 私钥做非对称密钥的私钥运算,私钥运算的结果就是数字签名。这里所述的安全协议,可以 为PKCS协议,也可以是X,509协议等等。这里的信息安全设备利用经锁定保护的外部通讯设备公钥,验证该数字签名的过程为 信息安全设备使用主叫方经锁定保护的公钥对该数字签名做公钥运算;将公钥运算得到的结 果,和数字签名中的摘要运算的结果进行比较,若比较结果相同,则外部通讯设备的身份合 法;否则外部通讯设备的身份不合法。其中的原理是,若信息安全设备用锁定保护的外部通 讯设备公钥对该数字签名验证正确,则说明外部通讯设备在对认证随机数据做数字签名过程 中所用到的私钥,和外部通讯设备提供的外部通讯设备公钥是成对的。由于前面已经验证了 外部通讯设备公钥的合法性,则与之成对的私钥也是合法的;而能够用外部通讯设备私钥进 行签名运算的只有该私钥的合法拥有者,即该外部通讯设备,以此可推断出外部通讯设备具 有合法的通讯权利。上述采用非对称密钥算法进行外部认证的流程中,采取公钥锁定保护措施,可保证在确 认外部通讯设备公钥的合法性之后,外部通讯设备公钥不被替换。公钥锁定保护措施,比如 在前面的验证通过的同时,就把该公钥保存到一个安全空间,该空间的更改操作受权限控制, 没有相应的访问权限无法对该空间进行写操作,只有验证第三方签名操作中才可对该空间进 行写操作。公钥锁定保护,即公知的一种对存储区信息进行保护的技术,基本是通过对存储 区进行访问权限控制来实现的,具体的实现方式在此不再具体说明。本发明的认证流程既可在离线方式下完成,又可在在线方式下完成。 由于本发明强调的是整体的认证流程,其中认证随机数据采用哪一种,不做限定。采用 哪一种摘要算法和非对称密钥算法,也不做限定。同样,信息安全设备和外部通讯设备也可 以是多种形态的,例如加密机、板子、ic卡等。非对称密钥算法(公钥密码算法),其特点就是可以方便地做密钥协定,包括数字签名的 提供。非对称密钥算法例如RSA和ECC密码算法都具有数据加密、密钥协定、数字签名这三 种功能。采用这样的非对称密钥算法,除了做数据加密外,还可在通讯双方现场约定密钥而 不为第三者知道,也可做数字签名以证明自己的身份,做到不可否认。非对称密钥算法的这 些特点在密钥管理和数字签名方面发挥了作用,排除了死角,提供了强鉴别手段。因此,本发明正是利用非对称密钥算法可方便的做密钥协定这一优点,信息安全设备首 先用第三方的数字签名验证外部通讯设备的数字签名的合法性;在验证通过后,由信息安全设备验证外部通讯设备是否具有与外部通讯设备公钥相匹配的外部通讯设备私钥,从而确认 外部通讯设备身份的合法性。与利用对称密钥算法实现外部认证的方法相比,这一步骤避免 了在通讯双方之间传递密钥,因此确保了通讯过程的安全性。另外,信息安全设备在验证了外部通讯设备的数字签名的合法性后,对外部通讯设备公 钥做锁定保护。因此,这就保证了外部通讯设备公钥不被替换,从而保证了通讯过程的完整 性和流畅性。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,本领域 技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本 发明所附的权利要求的保护范围。
权利要求
1. 利用非对称密钥算法实现外部认证的方法,其特征在于(1)被叫方验证主叫方公钥;(2)被叫方验证主叫方私钥;(3)若主叫方公钥和主叫方私钥是一对匹配的公私钥对,则为主叫方和被叫方提供合法的通讯环境。
2、 根据权利要求l所述的利用非对称密钥算法实现外部认证的方法,其特征在于,所述 歩骤(1)和(2)之间还包括-被叫方对主叫方公钥进行锁定保护。
3、 根据权利要求1所述的利用非对称密钥算法实现外部认证的方法,其特征在于,所述 步骤(1)具体为(11) 主叫方获取第三方对主叫方公钥的数字签名;(12) 主叫方向被叫方提供主叫方公钥和第三方对主叫方公钥的数字签名,由被叫方进 行合法性验证。
4、 根据权利要求3所述的利用非对称密钥算法实现外部认证的方法,其特征在于,所述 步骤(11)包括(111) 主叫方向第三方发送请求,该请求中包含有主叫方公钥;(112) 第三方收到该请求后,对所述主叫方公钥进行数字签名;(113) 第三方将该消息和数字签名返回给主叫方。
5、 根据权利要求4所述的利用非对称密钥算法实现外部认证的方法,其特征在于,所述 步骤(112)中的第三方对主叫方公钥进行数字签名的过程具体为第三方先对主叫方公钥做摘要运算,然后对摘要运算的结果做填充,用第三方的私钥对 填充后的摘要运算结果做非对称密钥的私钥运算。
6、 根据权利要求3所述的利用非对称密钥算法实现外部认证的方法,其特征在于,所述 步骤(12)中的主叫方向被叫方提供主叫方公钥和第三方对主叫方公钥的数字签名的过程具 体为(121) 主叫方向被叫方发送主叫方公钥;(122) 主叫方向被叫方发送第三方对主叫方公钥的数字签名;被叫方收到该数字签名后,从第三方获取第三方的公钥;(123)被叫方用第三方的公钥验证主叫方提供的数字签名。
7、 根据权利要求6所述的利用非对称密钥算法实现外部认证的方法,其特征在于,所述 步骤(123)具体为被叫方使用第三方的公钥对该数字签名做公钥运算;将公钥运算得到的结果,和数字签 名中的摘要运算的结果进行比较,若比较结果相同,则该数字签名合法;若比较结果不同, 则该数字签名不合法。
8、 根据权利要求7所述的利用非对称密钥算法实现外部认证的方法,其特征在于,所述 被叫方使用第三方的公钥做公钥运算的结果,与数字签名中摘要运算的结果进行比较的标准 是公钥运算结果的格式,与填充后的结果的格式一致;并且,可分离出来的被填充数据和 数字签名中摘要运算的结果一致。
9、 根据权利要求1所述的利用非对称密钥算法实现外部认证的方法,其特征在于,所述 步骤(2)具体为(21) 主叫方向被叫方发送取认证随机数据请求,被叫方根据该请求生成认证随机数据, 并发送给主叫方;(22) 主叫方用主叫方私钥对认证随机数据做数字签名,并将数字签名发送给被叫方;(23) 被叫方用主叫方被验证后的公钥对该私钥运算后的结果进行验证;若验证通过, 则主叫方的身份合法;否则主叫方的身份不合法。
10、 根据权利要求9所述的利用非对称密钥算法实现外部认证的方法,其特征在于,所 述主叫方用主叫方私钥对认证随机数据数字签名的过程具体为主叫方先对认证随机数据摘要运算,再将摘要运算结果做填充,之后用主叫方私钥做非 对称密钥的私钥运算;所述被叫方用主叫方公钥对该数字签名进行验证的过程具体为被叫方使用主叫方公钥对该数字签名做公钥运算;将公钥运算得到的结果,和数字签名 中的摘要运算的结果进行比较,若比较结果相同,则可确认主叫方的身份; 所述认证随机数据为一组随机数或者当前时间。
全文摘要
本发明公开了一种利用非对称密钥算法实现外部认证的方法,涉及信息安全领域中的认证方法,为增强通讯过程中的安全性而发明。包括(1)被叫方验证主叫方公钥;(2)被叫方验证主叫方私钥;(3)若主叫方公钥和主叫方私钥是一对匹配的公私钥对,则为主叫方和被叫方提供合法的通讯环境。本发明前后两个验证的过程,能够实现对通讯双方身份的准确确认,从而提高外部认证的有效性,增强通讯过程的安全性。
文档编号H04L9/08GK101277186SQ20071006500
公开日2008年10月1日 申请日期2007年3月30日 优先权日2007年3月30日
发明者刘海蛟, 胡俊义, 敏 董 申请人:北京握奇数据系统有限公司