发明内容
针对以上提到的目前第三方认证方式的不足,本发明采用创新的第三方的身份认证系统和方法来解决以上提到的问题。本发明的第三方认证系统通过在三方上运行能够自动响应的程序构成一个系统来实现以下功能:用户终端经过一次第三方认证就可接入不同的服务方资源;在第三方的认证中止时用户终端对服务方的接入也中止;结合其它方式(可移动IC、约定算法、和闭合传递的可计算变化的信息等)来加强安全性;等等。其中,本发明的第三方的身份认证系统和方法具体有4种方案,分别为下文中的方案I、方案II、方案III和方案IV,这4种方案可以相互结合产生新的应用方案。
针对以上提到的目前互联网上SessionID和IP地址传递等方法的不足,本发明提出一种创新的互联网上两方之间建立新连接的方法,为下文中的方案V。
方案I
本发明的第三方认证系统通过三方软件的主动参与和自动完成能够实现以下功能:请求方经过一次第三方认证就可接入不同的服务方资源;在第三方的认证中止时请求方对服务方的接入也中止;结合其它第三方认证方式(可移动IC和密钥等)来加强安全性;在闭合传递的信息是经过计算变化的从而加强了安全性;等等。
本发明是这样实现的,一种通过第三方的身份认证系统和方法,其中,三个系统分别连接于同一网络,三个系统分别为服务方、请求方和第三方,其中,服务方对请求方的认证要通过第三方来完成,其中,当请求方向服务方请求接入认证时,所述三方能够完成以下步骤:一方获取认证信息并发起在以上三方之间的源于该认证信息的闭合传递,其中另外两方上运行的程序能够自动识别闭合传递的信息和路径并响应完成该闭合传递,其中,以上三方中的闭合传递的终点能够验证收到的信息是否起源于闭合传递的起点,只有当收到的信息起源于闭合传递的起点时认证才能通过。
其中,所述同一网络为互联网。
其中,只有当请求方通过了第三方的认证时,第三方才会参与完成该闭合传递。
其中,只有当服务方通过第三方的认证后,第三方才会参与完成该闭合传递。
其中,所述闭合传递的路径由三个系统中每两者之间的信息传递组成,具体为:闭合传递的起点和终点是同一方,首先一方向另一方发出信息,然后另一方向最后一方发出信息,然后最后一方向第一方返回信息,完成闭合传递;或者,闭合传递的起点和终点不是同一方,首先一方分别向其它两方分别发出信息,然后其它两方中的一方向另一方发出信息,从而完成闭合传递。
其中,在所述闭合传递中,在从一方至另一方传递时闭合传递的信息的内容是不变的。闭合传递的信息不能是数据包报头中的IP地址和端口号,因为例如:其中一方处于NAT后,则其应用程序对象的内网IP地址和端口号在NAT处理后会映射为外网IP地址和端口号。
其中,不同的服务方能够通过同一第三方对同一请求方进行认证。
其中,所述的三方之间的源于该认证信息的闭合传递是指所传递的信息是相同的或者所传递的信息是不同的并符合特定数学计算的对应规律。
其中,在所述闭合传递中,传递的信息就是认证信息本身,这时,闭合传递的终点验证收到的信息与发出的认证信息是否一致或者收到的两个信息是否一致,如果一致则证明收到的信息起源于闭合传递的起点。这时,闭合传递中每两者之间传递的信息都是相同的,都是认证信息。其中,认证信息可以是由任何符号组成的序列。例如:认证信息可以是由一随机函数生成的随机数。
或者,在所述闭合传递中,传递的信息中至少有一个信息不是认证信息,该信息是由一方或两方基于认证信息生成的,这时,闭合传递的终点能够验证收到的信息是否是基于认证信息生成的或者收到的两个信息是否是基于同一认证信息生成的,如果是基于认证信息生成的或者是基于同一认证信息生成的则证明收到的信息起源于闭合传递的起点。这时,闭合传递中每两者之间传递的信息不都是相同的。例如:当闭合传递的起点和终点不是同一方时,认证信息可以是随机生成的符合特定规律的一对数字,闭合起点方将这对数字中的两个分别发给其余两方,闭合终点方通过验证得到的两个数字是否符合特定规律来判断收到的两个信息是否是起源于同一认证信息的。又如:认证信息可以是一随机序列,一方收到该认证信息后以约定算法计算其单向散列值并将散列值发往闭合传递的终点。再如:认证信息可以是密钥、单向散列函数或其它函数,一方收到该认证信息后将约定值以该密钥、单向散列函数或其它函数进行计算后发给闭合终点,闭合终点通过对约定值验算来判断该方的信息是否起源于闭合传递的起点。
其中,在所述闭合传递中,三方中任意两者之间的信息传递路径不经过三方中的其余一方。
其中,在所述闭合传递中,由请求方发出的每个信息只用于一次认证,由请求方发出的每个信息无法由请求方先前发出的信息推知。
其中,所述闭合传递的过程是由所述三个系统上运行的程序通过计算机网络完成的,传递路径中不包括系统的用户,系统的用户不需要知道传递信息的内容,系统的用户不需要参与传递的过程。
其中,服务方为通过互联网向用户提供资源和服务的计算机系统,请求方为用户使用的连接于互联网的具有计算机功能的终端设备,第三方为能够通过互联网对请求方的用户进行身份认证的计算机系统,其中,只有请求方的用户通过了服务方的身份认证时服务方才向请求方提供资源和服务,服务方对用户的身份认证是通过第三方来完成的。
其中,请求方可以为PC终端、手机终端等,服务方和第三方可以是服务器或服务器群组。
其中,服务方和请求方也可以是使用第三方服务的用户终端。例如,本发明可用于即时通讯系统中两个用户终端通过即时通讯系统建立两个终端间点对点连接的握手过程,如:第三方是一个即时通讯服务方,服务方和请求方是该即时通讯服务的用户,其中,当服务方需要向请求方发送文件或者请求方需要与服务方建立对话连接时,服务方或请求方可以生成一个认证信息并分别直接和通过第三方发送给对方,收到认证信息的请求方或服务方验证收到的认证信息以判断对方的连接认证是否通过。
其中,在所述闭合传递中,当一方生成认证信息时或者当闭合传递终点一方收到第一个信息时还会生成时间标记,只有当闭合传递终点一方收到信息或者收到第二个信息的时间未超过规定有效期时,认证才会通过。例如:当服务方是闭合传递的起点和终点时,服务方在生成认证信息时会对当前系统时间进行标记,当信息经过闭合传递返回时服务方会对比返回时间和生成时间,只有当时间差小于规定值是认证才能通过。又如:当请求方是闭合传递的起点而服务方是闭合传递的终点时,服务方会对比收到第一个信息和第二个信息的时间差,只有当时间差小于规定值是认证才能通过。
其中,所述三个系统是相互独立的,三者分别独立运营,三者分别独立地连接于互联网,三者不属于同一独立实体,三者之间不具有归属关系,三者中任何一方对另一方的系统权限不拥有管理权或控制权。
其中,请求方用户在服务方系统中具有用户识别码(APID),请求方用户在第三方系统中也具有用户识别码(AUID),APID与AUID存在对应关系。其中,该对应关系由服务方系统或者第三方系统所掌握。其中,所述用户识别码是由任何符号组成的序列。
其中,所述服务方为多个,一个请求方用户可以在几个应用服务系统上分别拥有几个不同的APID,这些APID可以对应于该用户在同一个第三方系统上的同一个AUID。
其中,所述第三方系统为一个或多个,一个请求方用户可以分别在几个第三方系统上拥有AUID,这些AUID可以对应于该用户在同一个服务方系统上的同一个APID。
其中,三方中每两者之间通讯信路可以是加密的,如采用SSL方式建立的连接。
其中,所述同一网络的连接方式包括有线方式和无线方式。
其中,为防止恶意爆发登陆请求等问题,服务方可以在通过第三方对请求方用户进行身份认证前先以登陆密码对请求方用户进行一次认证。
其中,所述闭合传递的终点是服务方或第三方,其中,当第三方是闭合传递的终点的时候,第三方需要将认证的结果通知服务方。
其中,所述认证信息是由一方在发起闭合传递时即时生成的或者是预先生成即时获取的。
其中,所述闭合传递的信息不是数据报头中的IP地址和端口号。所述闭合传递的信息不依赖于IP地址和端口号,这就提供了更好安全性,同时更好地解决NAT穿透等问题。
其中,在所述闭合传递进行之前或进行的同时,请求方会直接向服务方或通过第三方向服务方发出连接请求,该连接请求可以是由所述闭合传递的信息完成或者是由单独的步骤和信息完成。
其中,在认证通过后服务方允许请求方接入的端口或连接就是所述闭合传递中请求方与服务方进行信息传递的端口或连接。例如:请求方为一NAT网关内的局域网用户,请求方通过NAT分配的端口P与服务方进行所述闭合传递中的信息传递,认证通过后服务方就会允许端口P接入指定的服务或资源。
其中,请求方与服务方之间的信息传递是通过互联网进行的。服务方与第三方之间的信息传递是通过互联网或不通过互联网进行的。请求方与第三方之间的信息传递是通过互联网或不通过互联网进行的。
其中,在该闭合传递中,请求方通过两个不同的程序分别与服务方和第三方进行信息传递,其中,请求方通过一个程序与第三方进行信息传递,在服务方对请求方的认证通过后请求方通过另一程序接入服务方。如以下实施例中描述的,请求方通过专门的认证程序与第三方进行信息传递,而请求方通过其它程序与服务方进行信息传递并建立接入,该认证程序可以与该其它程序通讯。
其中,所述闭合传递的过程是由所述三个系统上运行的程序完成的,其中,请求方上运行的一个认证程序在通过第三方的认证后能够自动参与完成该闭合传递,其中,只有在该认证程序运行并通过了第三方的认证时该闭合传递才能完成。其中,只有闭合传递正确完成时服务方认证才能通过,在服务方认证通过后服务方就会根据请求方权限响应请求方的接入请求。
其中,当第三方是所述闭合传递的终点时,第三方会在闭合传递完成后向服务方传递验证通知闭合传递的认证结果。
其中,请求方经过一次第三方认证就可接入不同的服务方资源。
其中,当该认证程序中止运行时请求方对服务方的指定的服务或资源的接入也会中止。
其中,请求方每次重新连接第三方时第三方都会对请求方进行认证,请求方只需通过第三方的一次身份认证就可以接入多个不同的服务方。
其中,请求方每次重新接入服务方时,服务方都会对请求方进行接入认证。
本发明的内容是关于第三方如何向服务方传递请求方的认证凭证,而第三方对请求方进行身份认证的方式则可结合采用任何可行的方式,例如:简单的用户名和密码的方式,对称密钥或非对称密钥认证的方式,动态密码的方式,单向函数计算的方式,采用生物特征进行认证的方式、可移动式IC芯片的方式、通过用户的其它通信终端进行认证的方式、SIM卡识别等等,具体的方法不限于以上列出的方式,而且也可以是几种方式的组合。
本发明采用起源于认证信息的闭合传递的方式来传递第三方对请求方的认证凭证给服务方,服务方通过比较收到的信息是否相匹配来判断认证是否通过。这个方案具体实现方式多样、对服务方的工作负荷小、程序简单且容易实现。而且,闭合传递的信息不依赖于IP地址和端口号,提供更好安全性的同时可以更好地解决NAT穿透等问题。
方案II
本发明由第三方提供安全认证,用户具有一个可移动式IC,一方面,通过由第三方完成的一次身份认证就可以便捷地访问各种不同的网络资源,另一方面,可移动式IC可以在不同终端上实现安全的身份认证。
本发明是这样实现的:该系统包括可移动式IC、终端、应用服务系统和认证服务系统,其中,终端、应用服务系统和认证服务系统分别连接于互联网,应用服务系统是通过互联网向终端用户提供服务的计算机系统,用户在终端上通过互联网使用应用服务系统提供的服务,应用服务系统通过认证服务系统对终端用户进行身份认证,其中,终端用户拥有可移动式IC,可移动式IC通过计算机外设标准接口连接于终端,认证服务系统通过可移动式IC对终端用户进行身份认证,认证服务系统在终端用户通过身份认证后可以将该终端用户的认证信息直接传递或经过终端传递给应用服务系统,其中,只有当可移动式IC与终端的连接标记有效时,认证服务系统才能向应用服务系统传递认证信息。其中,应用服务系统收到认证信息并确认有效后会允许用户终端接入指定的服务。
其中,每个认证信息只使用一次,并且无法由前一次的认证信息推知。例如:认证信息可以是认证服务系统生成的包含时间戳和用户名的信息及该信息的以私钥加密的数字签名,或者认证信息可以是认证服务系统生成的一个随机数并且认证服务系统将该随机数以直接和经过用户终端两种方式分别发送给应用服务系统,等等。
其中,当所述认证信息经过终端进行传递时,认证服务系统或应用服务系统能够通过终端上运行的应用程序向对方转发认证信息,终端程序能够识别该认证信息并完成对认证信息的转发,终端用户不需要知道认证信息的内容,终端用户不需要参与转发的过程。
其中,只有当可移动式IC与终端的连接标记有效时,认证服务系统才能向应用服务系统传递认证信息。所述的连接标记可以是连接认证后生成的有效期的标记、或是依赖特定程序对象的标记、或是当前连接是否有效的标记。例如:当可移动式IC通过认证服务系统认证后,认证服务系统就会生成一个时间有效期的标记,在此有效期内该终端的连接标记是有效的。又如:当可移动式IC通过认证服务系统认证后,终端上运行一程序对象,在该程序对象运行期间该终端的连接标记有效,在该程序中止时该终端的连接标记失效。再如:连接标记还可以设计成,当可移动式IC与终端相连接时,该终端的连接标记是有效的。
其中,所述的计算机外设标准接口为用于计算机与外部设备和可移动式存储设备相互连接通讯的有线或无线的标准接口,该标准接口是即插即用的,如:USB接口、蓝牙接口等等。即插即用是指:外设通过该接口与开机的计算机主机相连接后就可以马上相互通讯和使用,而不需重新启动计算机主机。
其中,终端、应用服务系统和认证服务系统是相互独立的。其中,所述的终端、应用服务系统和认证服务系统相互独立,是指三者分别独立运营,三者分别独立地连接于互联网,三者不属于同一独立实体,三者之间不具有归属关系。终端、应用服务系统和认证服务系统三者中任何一方对另一方的系统权限不拥有管理权或控制权。
其中,可移动式IC存储着数学算法或算法因子X,认证服务系统储存着对应的数学算法或算法因子Y,数学算法或算法因子X和数学算法或算法因子Y之间存在着对应关系,认证服务系统可以基于数学算法或算法因子X和数学算法或算法因子Y的对应关系对终端用户进行身份认证。根据具体实现的不同,数学算法或算法因子X和Y还可以和外部变量或参数结合起来进行计算以提高安全性,如:加入时间变量、加入认证服务器向终端发送的即时参数、加入计数器参数、加入随机变量、加入用户名和密码等等。
其中,数学算法或算法因子X和数学算法或算法因子Y是同一个对称加密的密钥、或一对非对称加密的密钥、或动态密码算法。
其中,所述可移动式IC可进行关于数学算法或算法因子X的数学运算,并将运算结果通过标准接口发送给终端。所述的数学运算可以为:加密、解密、数字摘要计算、单向函数计算、或动态密码计算等。所述的可移动式IC为具有计算和储存功能的集成电路,包括芯片和外围电路。
其中,终端用户在应用服务系统中具有用户识别码(APID),终端用户在认证服务系统中也具有用户识别码(AUID),APID与AUID存在对应关系,应用服务系统或者认证服务系统储存着APID与AUID的对应关系。所述的用户识别码可以是任何符号组成的序列。例如:APID和AUID可以是终端用户在应用服务系统和认证服务系统上的登录用户名或由系统随机生成的唯一字符串。又例如:AUID可以是“应用服务系统名称+APID”,应用服务系统可以直接基于APID得到AUID并把它发往相应的认证服务系统去请求身份认证。又例如:AUID可以是认证服务系统为终端用户生成的一个字符串,认证服务系统或者应用服务系统储存着该AUID与APID的对应关系列表,认证服务系统或者应用服务系统可以根据该列表和APID得到AUID。
其中,所述应用服务系统为多个,一个终端用户可以在几个应用服务系统上分别拥有几个不同的APID,这些APID可以对应于该用户的可移动式IC在同一个认证服务系统上的同一个AUID。
其中,所述认证服务系统为一个或多个,一个终端用户的可移动式IC可以分别在几个认证服务系统上拥有AUID,这些AUID可以对应于该用户在同一个应用服务系统上的同一个APID。
其中,所述终端为可连接于互联网的具有计算机功能的设备。
其中,所述应用服务系统为服务器或服务器群组,所述的认证服务系统为服务器或服务器群组。
其中,所述互联网的连接方式包括有线方式和无线方式。
其中,所述用户识别码是由任何符号组成的序列。
其中,所述的应用服务系统为在互联网上提供资源和服务的计算机系统。
其中,同一个可移动式IC可以在同一应用服务系统或认证服务系统上拥有多个APID或AUID。
其中,应用服务系统收到认证信息并确认有效后会允许用户终端接入指定的服务,当所述连接标记失效时用户终端对应用服务系统的指定的服务的接入也会中止。
其中,可移动IC通过在用户终端上运行的认证程序与认证服务系统完成信息传递和认证,认证服务系统在终端用户通过认证后会向应用服务系统发送认证信息,应用服务系统收到认证信息并确认有效后会允许用户终端上运行的非认证程序的另一程序对象接入指定的服务。其中,如果认证信息是通过用户终端转发的那么该认证信息是由用户终端以非认证程序的另一程序对象发送给应用服务系统的,如果应用服务系统收到认证信息并确认有效后该非认证程序的另一程序会被允许接入指定的服务。
在本发明中,为防止恶意爆发登陆请求和移动式IC丢失等问题,可以设置终端用户在认证服务系统、应用服务系统或移动式IC上登陆时需输入登陆密码。例如:在终端用户以登陆用户名和登陆密码通过了认证服务系统的简单认证后,再由认证服务系统通过移动式IC对其进行身份认证。又例如:在终端用户以登陆用户名和登陆密码通过了应用服务系统的简单认证后,应用服务系统再通过认证服务系统对终端进行身份认证。再例如:用户只有通过了移动式IC的登陆密码验证,才能以该移动式IC向认证服务系统进行身份认证。
本发明的内容是关于第三方的认证服务系统通过可移动式IC实现对终端用户的身份认证,而认证服务系统向应用服务系统传递终端用户的认证信息的具体方式则可以结合采用各种可能的方法,例如:
1)应用服务系统向认证服务系统发送特定信息,如果终端通过了认证服务系统的身份认证,那么认证服务系统就将特定信息经过终端向应用服务系统返回,应用服务系统根据终端返回的特定信息判断用户的认证是否通过;
2)应用服务系统向认证服务系统请求对某终端进行身份认证,如果终端通过了认证服务系统的身份认证,那么认证服务系统直接向应用服务系统特定信息,同时认证服务系统经过终端将特定信息向应用服务系统返回,应用服务系统根据对比两个特定信息判断用户的认证是否通过;
3)认证服务系统生成特定算法或参数,认证服务系统将特定算法或参数发往终端和应用服务系统,应用服务系统通过特定算法和参数的对应关系实现对终端的认证;
4)终端通过了认证服务系统的身份认证后,认证服务系统向终端发送包含有数字签名的特定信息,该特定信息还包含着信息生成时的时间信息,终端以此特定信息向应用服务系统请求认证;
5)终端通过了认证服务系统的身份认证后,当应用服务系统向认证服务系统发磅对终端进行身份认证的请求和一随机数,认证服务系统将对比终端的地址信息,将认证终端的地址信息或对比结果和收到随机数一起发回应用服务系统。
可能的实现方式不限于以上所列的几种,具体实现中可根据具体情况确定可行方案。
其中,认证信息可以是任何信息,认证信息可以是由认证服务系统或应用服务系统生成的,认证信息的作用是将认证服务系统对终端的身份认证以某种方式告知应用服务系统。
本发明采用可移动式IC和第三方认证的方式相结合,可以使用户以最低的一次的硬件成本和时间成本实现在众多网络资源上的安全便捷的身份认证,即:一方面,用户只需拥有一个可移动式IC就可以实现对不同网上资源的安全认证,另一方面,用户只需通过向一个固定的第三方认证就可以实现对不同网上资源的访问。
方案III
本发明是这样实现的,一种安全的网络认证系统和方法,其中,包括用户方、服务方和中介方,三方中至少有一方能够分别与其余两方通过有线或无线的方式相互连接通讯,用户方在通过服务方认证后能接入服务方的指定的服务或资源,服务方通过中介方对用户方进行服务方认证,当用户方通过中介方认证后用户方才能通过服务方认证,不同的服务方可以通过同一中介方对同一用户方进行服务方认证,其特征在于:在用户方通过中介方的中介方认证后用户方运行的认证程序将会保持与中介方的有效的认证连接或者保持有效的认证标识,当用户方请求接入服务方时要进行服务方认证,在服务方认证中,如果所述的认证连接或认证标识有效那么中介方就会将该用户方的验证凭证以经过或不经过用户方的方式发送给服务方,只有当服务方收到并验证该验证凭证正确后服务方认证才会通过,在服务方认证通过后服务方就会根据用户方权限响应用户方的接入请求,其中,只要认证程序中止运行那么该认证程序的认证连接或认证标识就会失效,其中,所述的验证凭证是一个以整体发送的信息或者是由两个分别发送的信息构成的,其中,用户方不需要将自己在服务方注册的可以直接在服务方完成接入认证的用户名和密码发送给或保存在中介方。其中,如果认证连接或认证标识无效,那么中介方就会中止认证过程,服务方对用户方的认证就会失败。其中,用户方每次重新与服务方建立连接时都需要进行服务方认证。
其中,当认证程序中止运行时用户方对服务方的指定的服务或资源的接入也会中止。认证程序在中止时,可以通知服务方中止接入,也可以中止用户方接入服务方的程序对象的运行。
其中,用户方被允许接入服务方的指定服务或资源的程序对象不是认证程序。用户方接入服务方的具体程序对象是非认证程序的其它程序对象,这些其它程序对象可以是用户启动的,也可以是认证程序在用户方启动的。
其中,用户方、服务方和中介方通过互联网相连接。其中,三方的信息传递通过互联网来进行。
其中,验证凭证中,或者包含关于生成时间的信息,或者包含由服务方或中介方生成的随机信息。例如:在每次服务方认证过程中,服务方会首先会生成一个随机序列并发送给中介方,中介方在向服务方发送的凭证中会加入该随机序列,服务方收到凭证后会核对该随机序列,只有当该随机序列正确的情况下该凭证才是正确的。又例如:凭证的内容包含有凭证的生成时间并进行数字签名。又例如:凭证的内容中包含着由中介方生成的随机数,该随机数与用户方AUID、凭证生成时间和服务方域名构成一个字符串,该字符串和该随机数两信息构成该凭证,该字符串和该随机数分别以经过和不经过用户方的路由发送给服务方,服务方收到两个信息后会对比字符串中的随机数与单独的随机数是否相同,只有两个随机数相同时该凭证才是正确的。
其中,中介方发出的用户方的验证凭证的内容无法由前一个该中介方发出的该用户方的验证凭证推知。例如:该验证凭证包含随机生成的信息,或者该验证信息是对包含时间的信息的数字签名,等等。
其中,每个验证凭证只能完成一次服务方认证。例如:服务方在用户方接入后又收到该用户方的验证凭证,则服务方不会接收该验证凭证,此外,这种情况下服务方其中中止用户方的当前接入以要求用户方再次进行服务方认证。
其中,认证连接或认证标识或验证凭证还有时间有效期,过期的认证连接或认证标识或验证凭证会失效。其中,认证标识的有效期可以由用户方在认证程序上设定,也可以由中介方设定。认证程序可以在认证标识要过期时提示用户进行中介方认证刷新认证标识,或者可以自动进行中介方认证以刷新认证标识。例如:中介方认证依赖于用户方密钥,只要用户方密钥连接或保存于用户方终端则认证程序可以自动进行中介方认证。
其中,所述的认证标识不能由先前的认证标识推导得出。其中,所述的认证标识也可以保存在与用户方终端相连接的可移动外设或可移动IC上。
其中,中介方与服务方拥有相对应的约定算法,服务方能够通过拥有的约定算法验证收到的验证凭证是否正确。其中,用户方通过中介方认证的凭证可以是由两部分信息组成的,服务方能够通过拥有的约定算法判断凭证中的两部分信息是否相匹配,如果相匹配则凭证是由中介方发出的或是正确的。
其中,所述约定算法可以是加密解密算法、或数字签名算法、或单向函数算法、或动态密码算法等等。例如:所述约定算法为基于RSA+SHA的数字签名算法,中介方拥有RSA私钥和特定SHA,服务方可以取得中介方私钥对应的RSA公钥和特定SHA,中介方生成包括用户方AUID、生成时间和服务方域名的字符串并进行数字签名,该字符串和其数字签名就构成了用户方通过中介方认证的凭证,中介方将该凭证以整体通过用户方发送给服务方,或者中介方将该凭证的字符串和数字签名两部分信息分别以通过和不通过用户方的路径发送给服务方,服务方收到该凭证后以RSA公钥+特定SHA验证该凭证中字符串与其数字签名是否匹配,如果匹配则确认凭证正确。
其中,所述的验证凭证不是用户方的网络地址,所述的验证凭证的验证不是通过对比用户方的网络地址实现的。所述凭证的验证不基于网络地址或IP地址,这样就适合于更多的应用场合(如一些NAT应用中),而且,这样可以实现对凭证的验证从而提高安全性。
其中,用户方与服务方之间的信息传递不经过中介方,或者服务方允许用户方接入而建立的连接不经过中介方。
其中,中介方具有一个秘钥,服务方对验证凭证的验证是通过该密钥进行的,该密钥为一对非对称加密密钥中的私钥或一个对称加密密钥。例如以下实施例中所述,中介方以私钥进行数字签名的方式产生验证凭证,服务方可以获得中介方私钥对应的公钥并以公钥对验证凭证进行验证。
其中,验证凭证或者是由一个信息构成,或者是由两个分别发送的信息组成。当凭证由两个信息构成时,这两个信息可以是相同的或是不同的。其中,两个信息可以由相同的路由或不同的路由进行发送。其中,服务方以得到的这两个信息构成的凭证来判断服务方认证是否通过。
其中,所述的认证连接或认证标识的有效是指该认证连接或认证标识存在并正确,所述的认证连接或认证标识的失效是指该认证连接或认证标识或者不存在,或者被删除,或者不正确。例如:在认证程序中止时该认证程序会通知中介方,则中介方会知道该认证程序的认证连接或认证标识失效了,则此后中介方就认为该认证连接或认证标识不正确。
其中,用户方的认证程序和保存认证标识的方式不是标准浏览器的Cookie方式。其中,认证程序可以不是标准浏览器,认证标识的保存方式也可以不是Cookie的方式。认证程序可以是标准浏览器加上专门的认证功能执行模块来构成,或者是专门的认证功能执行程序。
其中,认证程序也可以是标准浏览器,而认证标识的保存方式是以会话Cookie的方式进行保存。这时,由于标准浏览器功能的限制,用户需要通过从认证程序的界面中选择需要登陆的服务方来请求接入服务方。
其中,服务方确认凭证正确后服务方会允许来自用户方终端的一个连接或端口接入指定的服务或资源,该连接或端口是用户方向服务方转发凭证的那个端口或连接。
其中,所述的用户方请求接入服务方,具体是用户方直接向服务方发出接入请求或者用户方向中介方发出接入服务方的请求。其中,用户方可以直接在服务方界面上请求接入,用户方也可以在认证程序界面上请求对服务方的接入。
其中,所述认证连接是在用户方通过中介方认证后用户方运行的认证程序与中介方建立的会话连接。在这种应用中,为保证安全性该SessionID可以具有随机性和足够多的位数,如:SessionID为1024位的不重复的随机序列。
其中,认证标识为一个随机长字符串,或一个加密的字符串,或一个加密密钥,或一个动态密码算法,或一个单向函数等等。其中,认证标识可以是认证程序与中介方建立会话的SessionID。
其中,在服务方认证中,用户方的认证程序会向中介方发送关于认证标识的信息以使中介方对认证标识和用户方进行验证,当验证正确后中介方会将验证凭证以经过或不经过用户方的方式发送给服务方。
其中,所述的关于认证标识的信息或者是认证标识本身,或者与认证标识具有可验证的数学对应关系的信息。例如:认证标识是一对非对称密钥中的一个或者是一个对称密钥,中介方拥有该对非对称密钥中的另一个或者也拥有该对称密钥,认证程序以认证标识的密钥对特定信息进行加密或数字签名并将加密信息或数字签名发送给中介方(中介方也拥有该特定信息,例如,该特定信息为系统当前时间或中介方生成并向用户方发送的随机信息),该加密信息或数字签名就是关于认证标识的信息,中介方以拥有的密钥对该加密信息或数字签名进行验证,如果正确则验证通过。
其中,在用户方通过中介方认证后,用户方也可以在认证程序不中止驻留运行的情况下使认证连接或认证标识失效。
其中,该用户方拥有可移动外设,只有在该可移动外设与用户方终端通过有线或无线的方式相连接通讯在条件下,用户方才能通过中介方认证。其中,可移动外设连接于终端的具体方式为有线连接或无线连接,如:USB接口的数据线、蓝牙无线接口、红外连接等等。其中,用户方可移动外可以通过有线或无线接口与不同的终端相连接。其中,与用户方可移动外设相连接的终端就是用户方终端。例如:用户方拥有USB接口的IC,该IC中存储着私钥,通过在IC上以该私钥进行计算来完成中介方认证。
其中,在进行服务方认证之前,用户方已经通过了服务方的一次简单认证。这次认证可以通过登陆密码的方式进行,可以防止恶意爆发登陆请求等问题。
其中,服务方能够分别与其余两方通过有线或无线的方式相互连接通讯。
其中,用户方能够分别与其余两方通过有线或无线的方式相互连接通讯。
其中,在用户方对服务方的指定的服务或资源的接入中止后,用户方需要重新通过中介方进行服务方认证才能再接入。
其中,认证程序与两个不同地址或不同域名的外部对象都进行信息传递不会导致认证连接或认证标识失效,该信息传递或者是认证程序识别并接收来自服务方或中介方的信息,或者是认证程序向服务方或中介方发送信息。
其中,所述的三方对信息的传递也可以都通过用户方进行。
其中,用户方也可以同样的方式通过中介方对服务方进行认证,即:终端和服务方在以上连接认证过程中所执行的步骤进行对换,终端就可以对服务方完成认证。
其中,所述连接认证的过程应该是由所述三方系统上运行的程序通过计算机网络完成的。
其中,服务方可以是通过互联网向用户方提供资源和服务的服务器系统,如各种网站等。服务方也可以是在互联网上的其它用户的终端,在对所述用户方的认证通过后,所述用户方的终端就会被允许接入到该其它用户的终端的指定的服务或资源,例如:本发明可用于即时通讯系统中两个用户终端建立两个终端间点对点连接的握手过程。
其中,服务方的指定的资源或服务可以是文件资源、浏览器服务、多媒体资源或服务、音视频连接、即时通讯对话服务、搜索服务、网上帐户操作服务、网上交易服务等等。对于服务方,具体例如:网络游戏运营商、网上论坛、即时通讯工具服务商、资源下载站点、网上银行、网上商店、已接入即时通信系统(如MSN)的一个终端等等。
其中,中介方是在互联网上进行第三方认证的计算机系统。
其中,用户方终端、服务方和中介方是具有计算机功能的设备,如:PC机、手机、服务器、服务器群组等。
其中,用户方在服务方系统中具有用户识别码(APID),用户方在中介方系统中也具有用户识别码(AUID),APID与AUID存在对应关系。其中,该对应关系由服务方系统或者中介方系统所掌握。其中,所述用户识别码是由任何符号组成的序列。例如:APID和AUID可以是用户方在服务方和中介方的用户名或是服务方和中介方为用户方生成的序列号。又如:AUID可以是APID+服务方名称或地址。其中,服务方对应保存着用户方的APID与用户方权限。
其中,服务方与中介方之间、或中介方与终端之间、或服务方与用户方之间的通讯信路可以是加密的,如采用SSL方式建立的连接。
其中,中介方认证可以通过不同方式来进行,例如:用户名密码的方式、可移动IC的方式、通过用户方其它终端返馈认证号码的方式等等。
其中,本发明可以通过在即时通讯终端或浏览器的客户端软件上加载专门的模块来实现,这时,认证程序就是该即时通讯终端或浏览器的客户端软件。
本发明可以和本发明人已经申请的其它方案相结合从而构成新的方案,包括:可以结合基于认证信息的闭合传递的方案来完成服务方认证(“通过第三方的身份认证系统和方法”,专利申请号:200810056123.1),还可以结合用户方与中介方拥有对应约定算法的方式完成服务方认证(“基于约定算法的第三方认证系统和方法”,专利申请号:200810114706.5)。例如以下应用方案:服务方能够验证中介方的数字签名,用户方通过中介方认证后用户方就与中介方建立了会话,在服务方认证过程中,中介方生成的一个带有数字签名的信息并分别以经过和不经过用户方的方式发送给服务方,服务方收到的两个的信息就是用户通过认证的凭证,服务方对比两个信息并验证数字签名,只有两个信息相同而且数字签名正确时凭证才会是正确的。上例中,中介方发出的验证凭证就是所谓的闭合传递的信息。再例如以下应用方案:服务方能够验证中介方的数字签名,用户方通过中介方认证后中介方就会向用户方发送一个DES密钥作为认证标识,在服务方认证过程中,首先服务方向用户方和中介方分别发送同一个随机序列,用户方以该DES密钥加密随机序列并将加密信息发送给中介方,中介方解密得到随机序列并将之与从服务方收到的进行对比,如果两个随机序列相同则认证标识有效,如果认证标识有效则中介方就以用户方AUID和生成时间等构成一个序列并进行数字签名然后将该序列和数字签名一起发送服务方。上例中,在所谓闭合传递完成后中介方向服务方发出验证凭证,中介方发出的验证凭证不是所谓的闭合传递的信息。
本发明采用一种安全的网络认证系统和方法使服务方通过中介方对用户方进行认证,认证方法可靠、安全、便捷。
方案IV
本发明是这样实现的,一种基于约定算法的第三方认证系统和方法,其中,包括用户方、服务方和中介方,所述三方都连接于互联网,用户方在通过认证后能接入服务方的指定的服务或资源,服务方通过中介方对用户方进行认证,其特征在于:用户方拥有其它用户所不知道的约定算法X,中介方拥有与该用户方的约定算法X相对应的约定算法Y,约定算法X与相对应的约定算法Y是相同的或是不同的,用户方的约定算法X存储于用户方终端中或者存储于可与用户方终端相连接的用户方可移动外设中,其中,约定算法X和对应的约定算法Y能够完成以下两次相匹配的计算,当一个约定算法X或Y对信息A计算得到信息B时,该约定算法X或Y相对应的约定算法Y或X能够或者对该信息A计算也得到该信息B,或者对该信息B计算得到该信息A,或者对该信息A和该信息B进行计算从而验证该信息B是该约定算法X或Y计算该信息A产生的,所述以约定算法X进行的计算在用户方终端上或在用户方可移动外设上进行,所述以约定算法Y进行的计算在中介方进行,其中,当用户方向服务方请求接入时,中介方、服务方和用户方之一会生成信息A,中介方、服务方、用户方会对所述信息A或B的相关信息进行传递并完成所述的两次相匹配的计算,中介方或服务方会作为验证方——通过对得到的信息进行对比或计算来判断认证是否通过,在每次连接认证过程中,服务方与用户方之间会不经过中介方进行信息A或B的相关信息的传递,服务方与中介方之间也会不经过用户方进行信息A或B的相关信息的传递,所述信息A或B的相关信息能够和其它信息A或B的相关信息进行对比或计算来验证两信息的相关的信息A或B是否是相同的,在每次连接认证过程中,要么验证方会得到两个信息A的相关信息或者两个信息B的相关信息并验证这两个信息的相关的信息A或B是否是相同的,要么验证方会得到一个信息A和一个信息B并验证该信息B是否是由约定算法X或Y计算该信息A产生的,只有在所述的两次相匹配的计算都正确完成的情况下以上验证的结果才会是肯定的,而只有在验证结果是肯定时用户方的连接认证才会通过,用户方通过连接认证后服务方就会允许用户方接入指定的服务或资源。
其中,所述信息A的相关信息或者是信息A本身,或者是与信息A一起相对应地生成的信息(A1),或者是由信息A或A1以特定方式计算产生的信息(Am、An),或者是被用于计算产生信息A的信息,并且,所述信息B的相关信息或者是信息B本身,或者是由信息B以特定方式计算产生的信息(Bm、Bn)。
其中,在每次连接认证过程中中介方或服务方还会启动计时器,如果中介方或服务方在限定的时间内没有收到指定的信息,那么中介方或服务方就会中止认证过程而对用户方的认证就会失败。
其中,或者所述连接认证的其它步骤之前用户方还会向服务方或中介方发出连接认证请求,或者在所述连接认证中由用户方第一次发送的信息中还包含用户方向服务方或中介方发出的连接认证请求。
其中,所述约定算法为基于密钥的加密算法或解密算法,其中,以约定算法X或Y对信息A进行的计算为加密运算,以约定算法X或Y对信息B进行的计算为解密运算,其中,约定算法X中包括有密钥XKEY,约定算法Y中包括有密钥YKEY,其中,或者约定算法是对称加密解密算法从而XKEY与相对应的YKEY相同,或者约定算法是非对称加密解密算法从而XKEY与相对应的YKEY不同。
其中,信息A是一个对称加密密钥或者信息A和A1是一对非对称加密密钥,所述两次相匹配的计算为加密和解密运算,在连接认证过程中信息A会通过该加密和解密运算进行传递,如果连接认证通过那么用户方与中介方之间或者用户方与服务方之间会以信息A或以信息A和A1作为密钥建立加密通讯连接。
其中,一个用户方拥有2个约定算法X:加密算法X1和解密算法X2,中介方对应于每个用户方也拥有2个约定算法Y:解密算法Y1和加密算法Y2,其中,X1对应于Y1而X2对应于Y2,其中,X1和X2拥有共同的密钥XKEY,Y1和Y2拥有其同的密钥YKEY,其中,当约定算法是对称加密解密算法时XKEY和YKEY是同一个对称加密的密钥,当约定算法是非对称加密解密算法时XKEY和YKEY是一对非对称加密的密钥。
其中,该约定算法存储于用户方可移动外设上,该可移动外设与用户方终端通过有线或无线的方式相连接通讯,所述的可移动外设具有IC芯片,所述用户方以约定算法X对信息A或信息B进行的计算在该可移动外设上进行。
其中,当中介方或服务方生成信息A时,每个信息A都无法由先前的信息A推知或者信息A是随机产生的,或者,当用户方设生成信息A时,该信息A中包含该信息A生成时间的验证信息,中介方或服务方会提取信息A中的该生成时间的验证信息以确定信息A的生成时间是否在指定的范围内,如果信息A的生成时间超出了指定的范围则中介方或服务方就会中止认证过程而对用户方的认证就会失败。
其中,连接认证通过后服务方会允许来自用户方终端的一个连接或端口接入指定的服务或资源,该连接或端口是所述的服务方与用户方之间进行的不经过中介方的信息A或B的相关信息的传递所通过的那个端口或连接。
其中,在进行所述连接认证之前,用户方已经通过了中介方或服务方的一次认证并建立了连接。
其中,所述的三方对信息A或B的相关信息的传递都是通过服务方进行的,其中,中介方和用户方分别与服务方相互传递信息,中介方与用户方之间的信息传递也通过服务方来完成。
其中,不同的服务方能够通过同一中介方对同一用户方进行认证。即:一个用户方可以连接多个服务方,并且所述多个服务方可以通过同一个中介方对该用户方进行认证。
其中,用户方与服务方之间的信息传递是通过互联网进行的,服务方与中介方之间的信息传递是通过互联网或不通过互联网进行的。例如:服务方与中介方之间也可以通过专用的通讯方式进行信息传递。
其中,当用户方向服务方请求接入时,其连接认证的具体方案为以下所列举的其中之一:
1)中介方生成信息A,服务方作为验证方,其中,中介方会以该用户方对应的约定算法Y计算信息A生成信息B,用户方也会以约定算法X计算信息A得到信息B,服务方将收到或者两个信息B、或者信息B和Bm、或者信息Bm和Bn,其中信息Bm或Bn是用户方或中介方计算产生的,服务方将验证得到的两个信息的相关的信息B是否是相同的,如果验证结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
2)中介方生成信息A,服务方作为验证方,其中,中介方会以该用户方对应的约定算法Y计算信息A生成信息B,用户方会以约定算法X计算信息B得到信息A,服务方将收到或者两个信息A、或者信息A和Am、或者信息Am和An,其中信息Am或An是用户方或中介方计算产生的,服务方将验证得到的两个信息的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
3)中介方生成一对信息A和信息A1,服务方作为验证方,其中,中介方以该用户方对应的约定算法Y计算信息A生成信息B,用户方以约定算法X计算信息B得到信息A,服务方将收到信息A1和A或信息A1和Am或信息A和Am,其中信息Am是用户方或中介方计算产生的,服务方将验证得到的两个信息的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
4)中介方生成信息A,中介方作为验证方,其中,中介方以该用户方对应的约定算法Y计算信息A生成信息B,用户方也以约定算法X计算信息A得到信息B,中介方将收到一个信息B或Bm,其中信息Bm是由用户方或服务方计算产生的,中介方将验证自己生成的信息B和收到的信息B或Bm的相关的信息B是否是相同的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
5)中介方生成信息A,中介方作为验证方,其中,中介方以该用户方对应的约定算法Y计算信息A生成信息B,用户方也以约定算法X计算信息B得到信息A,中介方将收到一个信息A或Am,其中信息Am是由用户方计算产生的,中介方将验证自己生成的信息A和收到的信息A或Am的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
6)中介方生成一对信息A和信息A1,中介方作为验证方,中介方以该用户方对应的约定算法Y计算信息A生成信息B,用户方以约定算法X计算信息B得到信息A,中介方将收到信息Am,其中信息Am是用户方或服务方计算产生的,中介方验证信息A1和收到的信息Am的相关的信息A是否是相同的,如果验证结果是肯定的,那么中介方通知服务方认证通过并且服务方允许用户方接入指定的服务或资源;
7)中介方生成信息A,中介方作为验证方,其中,用户方会以约定算法X计算信息A得到信息B,中介方将得到该信息B,中介方会以该用户方对应的约定算法Y计算该信息B得到信息A,中介方验证自己生成的信息A和从信息B计算得到的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
8)中介方生成信息A,中介方作为验证方,其中,用户方会以约定算法X计算信息A得到信息B,中介方将得到该信息B,中介方会以该用户方对应的约定算法Y计算验证收到的信息B是否是由约定算法X计算自己生成的信息A产生的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
9)服务方生成信息A,服务方作为验证方,中介方以该用户方对应的约定算法Y计算信息A得到信息B,用户方以约定算法X计算信息B得到信息A,服务方将收到一个信息A或Am,其中信息Am是用户方计算产生的,服务方验证自己生成的信息A和收到的信息A或Am的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
10)服务方生成一对信息A和信息A1,服务方作为验证方,中介方以该用户方对应的约定算法Y计算信息A生成信息B,用户方以约定算法X计算信息B得到信息A,服务方将收到信息Am,其中信息Am是用户方计算产生的,服务方验证信息Am的相关的信息A与自己生成的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
11)服务方生成信息A,服务方作为验证方,中介方以该用户方对应的约定算法Y计算信息A得到信息B,用户方以约定算法X计算信息A得到信息B,服务方将收到或者两个信息B、或者信息B和Bm、或者信息Bm和Bn,其中信息Bm或Bn是由用户方或中介方设算产生的,服务方验证收到的两个信息的相关的信息B是否是相同的,如果验证结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
12)服务方生成信息A,服务方作为验证方,用户方以约定算法X计算信息A得到信息B,中介方以该用户方对应的约定算法Y计算信息B得到信息A,服务方将收到一个信息A或Am,其中信息Am是由中介方计算产生的,服务方验证自己生成的信息A和收到的信息A或Am的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
13)服务方生成一对信息A和信息A1,服务方作为验证方,用户方以约定算法X计算信息A生成信息B,中介方以该用户方对应的约定算法Y计算信息B得到信息A,服务方将收到信息Am,其中信息Am是中介方计算产生的,服务方验证信息A1和信息Am的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
14)服务方生成信息A,中介方作为验证方,其中,中介方以该用户方对应的约定算法Y计算信息A生成信息B,用户方也以约定算法X计算信息A得到信息B,中介方得到两个信息B或信息B和Bm,其中信息Bm是由用户方或服务方计算产生的,中介方将验证得到的两个信息的相关的信息B是否是相同的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
15)服务方生成信息A,中介方作为验证方,用户方以约定算法X计算信息A得到信息B,中介方以该用户方对应的约定算法Y计算信息B得到信息A,中介方得到两个信息A或信息A和Am,其中信息Am是由用户方或服务方计算产生的,中介方验证得到的两个信息的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
16)服务方生成信息A,中介方作为验证方,用户方以约定算法X计算信息A得到信息B,中介方得到信息A和信息B,中介方验证得到的信息B是否是以约定算法X计算得到的信息A产生的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
17)服务方生成一对信息A和信息A1,中介方作为验证方,用户方以约定算法X计算信息A生成信息B,中介方以该用户方对应的约定算法Y计算信息B得到信息A,中介方得到信息A和A1或信息A和Am,其中信息Am是服务方计算产生的,中介方验证得到的两个信息的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
18)服务方生成信息A,中介方作为验证方,中介方以该用户方对应的约定算法Y计算信息A得到信息B,用户方以约定算法X计算信息B得到信息A,中介方得到两个信息A或信息A和Am,其中信息Am是由用户方或服务方计算产生的,中介方验证两个信息A是否是相同的或信息A与信息Am的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
19)用户方生成信息A,服务方作为验证方,其中,用户方以约定算法X计算信息A得到信息B,中介方以该用户方对应的约定算法Y计算信息B生成信息A,服务方收到或者两个信息A、或者信息A和Am、或者信息Am和An,其中信息Am或An由用户方或中介方计算产生,服务方验证收到的两个信息的相关的信息A是否是相同的,如果验证的结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
20)用户方生成一对信息A和信息A1,服务方作为验证方,其中,用户方以约定算法X计算信息A得到信息B,中介方以该用户方对应的约定算法Y计算信息B生成信息A,服务方收到信息A1和A或信息A和Am或信息A1和Am,其中信息Am由用户方或中介方计算产生,服务方验证收到的两个信息的相关的信息A是否是相同的,如果验证的结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
21)用户方生成信息A,服务方作为验证方,其中,用户方也以约定算法X计算信息A得到信息B,中介方以该用户方对应的约定算法Y计算信息A生成信息B,服务方收到或者两个信息B、或者信息B和Bm、或者信息Bm和Bn,其中信息Bm或Bn是由用户方或中介方设算产生的,服务方验证收到的两个信息的相关的信息B是否是相同的,如果验证结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源;
22)用户方生成信息A,中介方作为验证方,用户方以约定算法X计算信息A得到信息B,中介方以该用户方对应的约定算法Y计算信息B得到信息A,中介方得到两个信息B或信息B和Bm,信息Bm是由用户方或服务方计算产生的,中介方验证两个信息B或信息B和Bm的相关的信息B是否是相同的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
23)用户方方生成信息A,中介方作为验证方,用户方以约定算法X计算信息A得到信息B,中介方以该用户方对应的约定算法Y计算信息B得到信息A,中介方得到两个信息A或信息A和Am,信息Am是由用户方或服务方计算产生的,中介方验证两个信息A或信息A和Am的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
24)用户方方生成信息A,中介方作为验证方,用户方以约定算法X计算信息A得到信息B,中介方得到该信息A和B,中介方验证该信息B是否是以约定算法X计算该信息A计算产生的,如果验证结果是肯定的,那么认证通过而且通知服务方允许用户方接入指定的服务或资源;
25)用户方方生成一对信息A和信息A1,中介方作为验证方,用户方以约定算法X计算信息A得到信息B,中介方以该用户方对应的约定算法Y计算信息B得到信息A,中介方得到信息A和A1或信息A和Am,信息Am是由用户方或服务方计算产生的,中介方验证收到的两个信息的相关的信息A是否是相同的,如果验证结果是肯定的,那么认证通过而且服务方允许用户方接入指定的服务或资源。
其中,用户方的约定算法是互不相同的或者是具有随机性的。
其中,以下列举几例说明所述的信息A1、Am、An的具体实现:
①Am是A和大质数的积:验证方要验证得到的信息Am和信息A,信息A是一个1024位的大质数,信息Am是一方将信息A乘以另一个随机的1024位质数的积,验证方以该信息Am除以该信息A,如果能整除则验证结果是肯定的;
②DES密钥A和加密信息Am:验证方要验证得到的信息Am和信息A,信息A是一个DES密钥A,一方以密钥A对特定内容进行加密或数字签名得到信息Am,验证方以密钥A解密信息Am或对数字签名进行验证,如果解密结果与特定内容相同或数字签名正确则验证结果是肯定的;
③相同散列函数产生的Am和An:验证方要验证一信息Am和一信息An是否相符合,信息Am和信息An是两方分别以相同的单向散列函数对信息A计算的结果,验证方对比信息Am和信息An,如果相同则说明验证结果是肯定的;
④最大公约同为A的Am和An:验证方要验证一信息Am和一信息An是否相符合,其中,信息A是一个1024位的整数,集合L是信息A的质因数集合,集合M和集合N是两个素数集合,集合L、集合M和集合N三者互不相交,信息Am是信息A和集合M中100个随机数的连乘积,信息An是信息A和集合N中100个随机数的连乘积,信息Am和信息An分别由两方计算产生并都发往作为第三方的验证方,验证方求信息Am和信息An的最大公约数,如果该公约数是1024位的,则认为信息Am和信息An的相关的信息A是相同的,也就说验证结果是肯定的;
⑤非对称密钥信息A和A1:信息A和信息A1分别是一对非对称加密密钥中的一个,信息Am是一方以信息A对特定内容进行加密或数字签名计算产生的,验证方以信息A1对收到的信息Am进行解密或验证该数字签名,如果解密结果与特定内容相同或数字签名正确,则信息Am与信息A1的相关的信息A是相同的从而验证结果是肯定的;
⑥互逆矩阵信息A和A1:信息A和信息A1是一对1024*1024的互逆矩阵,验证方将信息A和信息A1相乘,如果结果是单位矩阵,则信息A与信息A1的相关的信息A是相同的从而验证结果是肯定的,其中,信息A的相关的信息A还是信息A本身。
其中,Bm、Bn的具体实现的例子与以上举例中①、③、④的相同,将例子中的A、Am和An分别以B、Bm和Bn替换就得到关于信息Bm、Bn的例子。
其中,可移动外设连接于终端的具体方式为有线连接或无线连接,如:USB接口的数据线、蓝牙无线接口、红外连接等等。
其中,用户方可移动外可以通过有线或无线接口与不同的终端相连接。其中,与用户方可移动外设相连接的终端就是用户方终端。
其中,所述约定算法还可以是单向散列函数、数字摘要算法、数字签名算法、带参数的单向函数等等。
其中,用户方也可以同样的方式通过中介方对服务方进行认证,即:终端和服务方在以上连接认证过程中所执行的步骤进行对换,终端就可以对服务方完成认证。
其中,信息A是由一方即时生成的或者是预先生成即时获取的。
其中,所述连接认证的过程应该是由所述三方系统上运行的程序通过计算机网络完成的。
其中,服务方可以是通过互联网向用户方提供资源和服务的服务器系统,如各种网站等。服务方也可以是在互联网上的其它用户的终端,在对所述用户方的认证通过后,所述用户方的终端就会被允许接入到该其它用户的终端的指定的服务或资源,例如:本发明可用于即时通讯系统中两个用户终端建立两个终端间点对点连接的握手过程。
其中,服务方的指定的资源或服务可以是文件资源、浏览器服务、多媒体资源或服务、音视频连接、即时通讯对话服务、搜索服务、网上帐户操作服务、网上交易服务等等。对于服务方,具体例如:网络游戏运营商、网上论坛、即时通讯工具服务商、资源下载站点、网上银行、网上商店、已接入即时通信系统(如MSN)的一个终端等等。
其中,中介方是在互联网上进行第三方认证的计算机系统。
其中,用户方终端、服务方和中介方是具有计算机功能的设备,如:PC机、手机、服务器、服务器群组等。
其中,用户方在服务方系统中具有用户识别码(APID),用户方在中介方系统中也具有用户识别码(AUID),APID与AUID存在对应关系。其中,该对应关系由服务方系统或者中介方系统所掌握。其中,所述用户识别码是由任何符号组成的序列。例如:APID和AUID可以是用户方在服务方和中介方的用户名或是服务方和中介方为用户方生成的序列号。又如:AUID可以是APID+服务方名称或地址。
其中,所述服务方为多个,一个用户方可以在几个服务方系统上分别拥有几个不同的APID,这些APID可以对应于该用户在同一个中介方系统上的同一个AUID。
其中,所述中介方系统为一个或多个,一个用户方可以分别在几个中介方系统上拥有AUID,这些AUID可以对应于该用户方在同一个服务方系统上的同一个APID。
其中,服务方与中介方之间、或中介方与终端之间、或服务方与用户方之间的通讯信路可以是加密的,如采用SSL方式建立的连接。
其中,在进行所述连接认证之前,用户方已经通过了中介方或服务方一次认证并建立了连接。这次认证可以通过登陆密码的方式或通过所述约定算法的方式进行,可以防止恶意爆发登陆请求等问题。
其中,当验证方对信息A(或B)的相关的两个信息进行验证时,该验证的计算是在所述的两次相匹配的计算后进行的——验证该两个信息的相关的信息A(或B)是不是相同的;而当验证方对信息A和B进行验证时,该验证的计算是通过所述的两次相匹配的计算中的后者一起完成的——中介方以用户方对应的约定算法Y对该信息A和B进行计算从而验证该信息B是该用户方以约定算法X计算该信息A产生的。
其中,本发明在具体实现中,可以通过SSL协议的执行步骤来实现。
其中,用户方与中介方之间的信息传递不经过服务方。
其中,约定算法X和Y是由中介方或用户方同时生成的,中介方或用户方在生成后将约定算法X或Y以网络发送或派发可移动外设的方式传递给对应的用户方。其中,约定算法X和Y可以是在用户方请求接入前就生成并完成传递的,也可以是在用户方请求接入后生成并传递的。例如:中介方制做包含加密私钥的可计算U盘并派发给用户并在系统储存对应的公钥;用户方在中介方注册时用户终端从中介方下载约定算法X;用户方在每次成功登录中介方后,用户方就会与中介方建立SSL连接,SSL中加密连接的基于主密钥加解密算法就是约定算法;等等。
本发明采用基于用户方和中介方的约定算法的方式使服务方通过中介方对用户方进行认证,认证方法可靠、安全、便捷。
方案V
本发明采用一种互联网上两方之间建立新连接的方法来解决以上提到的问题。
本发明是这样实现的,一种互联网上两方之间建立新连接的方法,其中,两计算机系统第一方和第二方分别连接于互联网,其中第一方上的程序对象A能够通过一个已建立的连接向第二方发送信息或者从第二方接收信息,其中,当第一方上的程序对象B要与第二方建立一个新连接时,所述两方将两个信息分别在程序对象A与第二方之间和程序对象B与第二方之间进行传递,其中,所述两个信息是相同的或者是不同的并具有符合特定数学运算规律的对应关系,所述两个信息的传递构成一个在两方之间的闭合传递,所述两方上运行的程序能够自动获取所述两个信息并完成所述闭合传递,其中,作为闭合传递的终点的一方能够通过比较以上两个传递的信息是否相同或是否符合对应关系来验证收到的信息是否是由另一方发出的,如果收到的信息被验证是由另一方发出的则程序对象B与第二方之间传递信息的新连接被确认并建立。
其中,所述在两方之间的闭合传递是指:一方同时向另一方发送两个信息,或者,发起方向另一方发送一个信息然后另一方向发起方返回一个信息。
其中,所述两个信息只使用一次并只用于建立一个连接,所述两个信息无法由先前发出的信息推知。例如:与SessionID或其它应用层地址的方式不同,所述两个信息只用于建立一次连接,而不用于在会话过程中对会话进行标识。
其中,一方在发送信息时或者收到第一个信息时还会生成时间标记,时间标记可以保存在生成时间标记一方的本地或者生成时间标记一方发送的信息中,作为闭合传递的终点的一方收到信息的时间或者收到第二个信息的时间未超过规定有效期时新连接才会被确认并建立。
其中,所述两个信息不是数据报头中的IP地址和端口号。所述闭合传递的信息不依赖于IP地址和端口号,这在一些应用中更好地解决了NAT穿透问题。
其中,所述程序对象A的已建立的连接可以是所述两方之间的点对点连接或者是所述两方通过第三方的连接,所述已建立的连接可以是双向的连接或单向的连接。例如:程序对象A通过第二方的安全认证后与第二方建立了点对点的连接,然后基于这个已经建立点对点的安全连接建立一个程序对象B与第二方的新连接。或者程序对象A和第二方分别登录共同的服务器并通过该服务器建立了连接,然后基于这个间接的安全连接建立一个程序对象B与第二方的新的点对点连接。
其中,所述程序对象B的新连接的传递路径或通讯端口与程序对象A的已建立的连接不同。例如:程序对象A的连接是通过第三方服务器建立的,而程序对象B的新连接是点对点的直接连接。又如:程序对象A是通过第一方系统上的特定应用程序端口建立连接的,而程序对象B是通过第一方系统上的HTTPS协议端口建立连接的。
其中,所述的作为闭合传递的终点的一方是第二方。
其中,所述两个信息可以是相同的。例如:所述信息可以是由一随机函数生成的随机数。或者,所述两个信息是不同的。例如:所述两个信息可以是随机生成的符合特定规律的一对数字,发出方将这对数字中的两个分别发给另一方,另一方通过验证得到的两个数字是否符合特定规律来判断收到的两个信息是否是来自发出方的。又如:所述信息之一可以是一随机序列,发起方将该信息发给另一方,另一方收到该信息后以约定算法计算其单向散列值并将散列值发回发起方,发起方根据该散列值判断返回的信息是否来自另一方。再如:所述信息之一可以是密钥、单向散列函数或其它函数,发起方将该信息发给另一方,另一方收到该认证信息后将约定值以该密钥、单向散列函数或其它函数进行计算后发给发起方,发起方通过对约定值验算来判断该信息是否来自另一方。
其中,所述分别与程序对象A和程序对象B建立连接的是第二方上运行的同一程序对象或不同程序对象。
其中,所述两个信息是在进行闭合传递时即时生成的或者是预先生成即时获取的。
其中,所述闭合传递的路径中不包括系统的用户,系统的用户不需要知道信息的内容,系统的用户不需要参与传递的过程。
其中,第一方可以为用户使用的连接于互联网的具有计算机功能的终端设备,第二方为通过互联网向用户提供资源和服务的计算机系统。
其中,所述两方可以为PC终端、手机终端、服务器、服务器群组等。
其中,所述互联网的连接方式包括有线方式和无线方式。
其中,当程序对象A中止运行时,程序对象B与第二方的连接也会中止。
其中,通过同一程序对象A可以有多个不同的程序对象B建立新连接。
本发明采用两个信息的闭合传递的方式使两方基于已建立安全连接的生成一个对新应用对象的连接。这个方案具体实现方式多样、工作负荷小、程序简单且容易实现。而且,闭合传递的信息不依赖于IP地址和端口号,提供更好安全性的同时可以更好地解决NAT穿透等问题。
具体实施方式
以下各实施例说明了以上发明内容中的5个方案的具体实施方式,其中:
实施例I.1至实施例I.5可以说明方案I的具体实施方式;
实施例II可以说明方案II的具体实施方式;
实施例III.1、III.2、III.3可以说明方案III的具体实施方式;
实施例IV.1至IV.6可以说明方案IV的具体实施方式;
实施例V.1和V.2可以说明方案V的具体实施方式;
另外,以下部分实施例涉及所述的不同方案的结合并且可以说明2个以上方案的具体实施方式。
实施例I.1
图1.1是实施例I.1的信息传递路径图,本实施例的网络结构请见图1.6。
实施例I.1中闭合传递的信息是相同的一个认证信息而且闭合传递的起点与终点相同。在本实施例中,请求方为用户网络终端,服务方为一网络资源,第三方为在互联网上提供第三方身份认证服务的认证服务系统,认证信息为一随机数。
实施例I.1包括以下步骤:
1)用户网络终端通过认证服务系统的身份认证;
2)用户网络终端向网络资源请求服务;
3)网络资源生成一随机数和时间标记;
4)网络资源将随机数、网络资源URL、用户标识发送给认证服务系统;
5)认证服务系统根据用户标识将随机数和网络资源URL发送给用户网络终端;
6)用户网络终端根据网络资源URL将随机数返回给网络资源;
7)网络资源对比自己生成的随机数和从用户终端返回的随机数,如果随机数相同而且未超过规定的时间有效期则用户通过身份认证;
用户标识是指用户的APID或AUID。
在本实施例中,用户网络终端上的一个应用程序可以与认证服务系统建立安全连接。在能通过认证服务系统的身份认证情况下,该应用程序可以完成以下步骤:该应用程序通过安全连接收到来自认证服务系统的随机数和网络资源URL;该应用程序在终端上运行的浏览器对象中寻找与网络资源URL相同的,如果没有找到就生成一个新浏览器对象;该应用程序使找到的或新生成的浏览器对象向网络资源URL发送连接请求并将随机数添加到的该连接请求中,如:将随机数加到连接请求的表单中。
在本实施例中,步骤1)也可以移动至步骤4)和步骤5)之间来执行,这时,用户网络终端可以将用户的身份认证信息在步骤4)中一起发给认证服务系统,认证服务系统确认用户的身份无误后再执行步骤5)。
本实施例可以结合即时通讯工具方便地实现。例如,可以在即时通讯工具(如:MSN、Yahoo Messenger或QQ)的客户端软件上增加一个能够识别认证信息路径并执行认证信息转发的模块,再在网络资源提供方的服务器端增加一个可以生成并发送认证信息、从接入请求中提取认证信息并进行比对的软件模块,这样就可以构成了本实施例。其中,网络资源和客户端软件都可以由即时通讯工具提供方来开发和提供,网络资源和客户下载就可以使用,非常方便可行。
另外,本实施例还可以通过增加浏览器工具项的方式来实现,也可以通过在网络终端执行一个专门程序来实现。
在本实施例中,在网络资源生成随机数前还可先以用户名和密码的方式对用户进行一次认证,以避免恶意登陆攻击。
在本实施例中,网络资源可以在登录页面上设置一个针对本实施例登录方式的选项或按键,当用户选择此选项或按键时就发起本实施例的登录流程。
在本实施例中,请求方是在步骤2)通过一个单独的信息和步骤向服务方请求接入认证的。
本实施例中,闭合传递的流程为:服务方→(认证信息)→第三方→(认证信息)→请求方→(认证信息)→服务方。实施例I.1中闭合传递的信息是一个相同的认证信息而且闭合传递的起点与终点相同,与本实施例类似的其它流程还有:服务方→(认证信息)→请求方→(认证信息)→第三方→(认证信息)→服务方;第三方→(认证信息)→请求方→(认证信息)→服务方→(认证信息)→第三方;第三方→(认证信息)→服务方→(认证信息)→请求方→(认证信息)→第三方,等等。
实施例I.2
图1.2是实施例2的信息传递路径图,本实施例的网络结构请见图1.6。
实施例I.2中闭合传递的信息是一个相同的认证信息而且闭合传递的起点与终点不同。在本实施例中,请求方为用户网络终端,服务方为一网络资源,第三方为在互联网上提供第三方身份认证服务的认证服务系统,认证信息为一随机序列。
实施例I.2包括以下步骤:
1)用户网络终端通过认证服务系统的身份认证;
2)用户网络终端生成一随机序列;
3)用户网络终端向网络资源发送用户名和随机序列并请求认证,同时用户网络终端向认证服务系统发送用户标识、网络资源URL和随机序列;
4)认证服务系统根据用户网络终端发来网络资源URL将用户标识和随机序列发送给网络资源;
5)网络资源对比收到的两个随机序列,如果随机序列相同而且收到的时间差未超过规定值则用户通过身份认证;
用户标识是指用户的APID或AUID。
在本实施例中,用户网络终端上的一个应用程序能够与认证服务系统建立安全连接。在能通过认证服务系统的身份认证情况下,该应用程序可以完成以下步骤:该应用程序生成一随机序列;该应用程序将该随机序列、用户名和密码等通过一个浏览器对象的接入请求发往网络资源,同时该应用程序将该随机序列、网络资源URL和用户标识通过安全连接发往认证服务系统。
在本实施例中,步骤1)也可以移动至步骤3)和步骤4)之间来执行,这时,用户网络终端可以将用户的身份认证信息在步骤3)中一起发给认证服务系统,认证服务系统确认用户的身份无误后再执行步骤4)。
在本实施例中,可以在用户终端程序上设置针对具体网络资源的选项或按键,当用户选择此选项或按键时就发起登录流程。
本实施例可以结合即时通讯工具方便地实现,也可以通过增加浏览器工具项的方式来实现,还可以通过在网络终端执行一个专门程序来实现。
在本实施例中,网络资源还可以设置登录密码,用户在步骤3)将登录密码、用户名和随机序列一起发给网络资源。
在本实施例中,请求方是在步骤3)中通过直接向服务方发送闭合传递的信息(随机序列)来向服务方请求接入认证的。
本实施例中,闭合传递的方式为:请求方→(认证信息)→服务方,同时,请求方→(认证信息)→第三方→(认证信息)→服务方。实施例I.2中闭合传递的信息是一个相同的认证信息而且闭合传递的起点与终点不同,与本实施例类似的其它流程还有:请求方→(认证信息)→第三方,同时,请求方→(认证信息)→服务方→(认证信息)→第三方;第三方→(认证信息)→服务方,同时,第三方→(认证信息)→请求方→(认证信息)→服务方;服务方→(认证信息)→第三方,同时,服务方→(认证信息)→请求方→(认证信息)→第三方,等等。
实施例I.3
图1.3是实施例I.3的信息传递路径图,本实施例的网络结构请见图1.6。
在实施例I.3中闭合传递的信息包括基于认证信息生成的认证生成信息而且闭合传递的起点与终点不同。在本实施例中,请求方为用户网络终端,服务方为一网络资源,第三方为在互联网上提供第三方身份认证服务的认证服务系统,认证信息为一随机序列、或数学算法、或算法参数,用户网络终端根据该认证信息和与认证服务系统约定的信息生成己方在闭合传递中需要发送的信息。
实施例I.3包括以下步骤:
1)用户网络终端通过认证服务系统的身份认证;
2)用户网络终端将网络资源URL和用户标识发给认证服务系统;
3)认证服务系统生成认证信息,并以认证信息和约定的信息得出认证生成信息;
4)认证服务系统向网络资源发送用户标识和认证生成信息,同时认证服务系统向用户网络终端发送认证信息和网络资源URL;
5)用户网络终端以认证信息和与认证服务系统约定的信息得出认证生成信息;
6)用户网络终端将得出的认证生成信息和用户标识等发送给相应的网络资源;
7)网络资源对比收到的两个认证生成信息,如果相同而且收到的时间差未超过规定值则用户通过身份认证;
用户标识是指用户的APID或AUID。
在本实施例中,用户网络终端上的一个应用程序能够与认证服务系统建立安全连接。在能通过认证服务系统的身份认证情况下,该应用程序可以完成以下步骤:该应用程序将网络资源URL和用户标识发给认证服务系统;在得到认证服务系统的反馈后,该应用程序以认证信息和与认证服务系统约定的信息得出认证生成信息;该应用程序将得出的认证生成信息通过一个浏览器对象的接入请求发往网络资源。
在本实施例中,步骤1)也可以移动至步骤2)和步骤3)之间来执行,这时,用户网络终端可以将用户的身份认证信息在步骤2)中一起发给认证服务系统,认证服务系统确认用户的身份无误后再执行步骤3)。
在本实施例中,可以在认证服务系统的页面上设置针对具体网络资源的选项或按键,当用户选择此选项或按键时就发起登录流程。
本实施例可以结合即时通讯工具方便地实现,也可以通过增加浏览器工具项的方式来实现,还可以通过在网络终端执行一个专门程序来实现。
在本实施例中,网络资源还可以设置登录密码,用户在步骤6)将登录密码、用户名和随机序列一起发给网络资源。
在本实施例中,请求方是在步骤2)、3)和4)中通过向第三方传递闭合传递的信息再由第三方向服务方发送闭合传递的信息的方式向服务方发出接入认证请求。
在本实施例中,认证信息可以包括以下内容的部分或全部:服务方名称或地址,请求方名称或地址,第三方的名称或地址,信息生成时间,随机信息,等等。约定的信息可以是:数字摘要算法、加密解密算法、动态密码算法等等。
本实施例中,闭合传递的方式为:第三方→(认证生成信息)→服务方,同时,第三方→(认证信息)→请求方→(认证生成信息)→服务方。在实施例I.3中闭合传递的信息包括基于认证信息生成的认证生成信息而且闭合传递的起点与终点不同,与本实施例类似的还有其它流程,例如:第三方→(认证信息)→服务方,同时,第三方→(认证信息)→请求方→(认证生成信息)→服务方;服务方→(认证信息)→第三方,同时,服务方→(认证信息)→请求方→(认证生成信息)→第三方;请求方→(认证生成信息)→服务方,同时,请求方→(认证信息)→第三方→(认证生成信息)→服务方;等等。
实施例I.4
图1.4是实施例I.4的信息传递路径图,本实施例的网络结构请见图1.6。
在实施例I.4中闭合传递的信息包括基于认证信息生成的同源认证信息A和同源认证信息B而且闭合传递的起点与终点不同。在本实施例中,请求方为用户网络终端,服务方为一网络资源,第三方为在互联网上提供第三方身份认证服务的认证服务系统。在本实施例中,认证信息为随机生成的符合特定规律的一对数字,如:乘积或和为一固定值或在一固定范围内的一对数,这对数字分别称为同源认证信息A和同源认证信息B。
实施例I.4包括以下步骤:
1)用户网络终端通过认证服务系统的身份认证;
2)用户网络终端将网络资源URL和用户标识发给认证服务系统;
3)认证服务系统生成认证信息,得到同源认证信息A和同源认证信息B;
4)认证服务系统向网络资源发送用户标识和同源认证信息A,同时认证服务系统向用户网络终端发送网络资源URL和同源认证信息B;
5)用户网络终端将同源认证信息B和用户标识发送向网络资源URL;
6)网络资源核对收到的同源认证信息A和同源认证信息B是否匹配,如果匹配而且收到的时间差未超过规定值则用户通过身份认证;
用户标识是指用户的APID或AUID。
在本实施例中,用户网络终端上的一个应用程序能够与认证服务系统建立安全连接。在能通过认证服务系统的身份认证情况下,该应用程序可以完成以下步骤:该应用程序通过安全连接收到来自认证服务系统的同源认证信息B和网络资源URL;该应用程序在终端上运行的浏览器对象中寻找与网络资源URL相同的,如果没有找到就生成一个新浏览器对象;该应用程序使找到的或新生成的浏览器对象向网络资源URL发送连接请求并将同源认证信息B和用户标识添加到的该连接请求中。
在本实施例中,步骤1)也可以移动至步骤2)和步骤3)之间来执行,这时,用户网络终端可以将用户的身份认证信息在步骤2)中一起发给认证服务系统,认证服务系统确认用户的身份无误后再执行步骤3)。
在本实施例中,网络资源还可以设置登录密码,用户在步骤6)将登录密码、用户名和随机序列一起发给网络资源。
本实施例中,同源认证信息A和同源认证信息B的具体实现可以与实施例5相同。
本实施例中,闭合传递的方式为:第三方→(同源认证信息A)→服务方,同时,第三方→(同源认证信息B)→请求方→(同源认证信息B)→服务方。在实施例4中闭合传递的信息包括基于认证信息生成的同源认证信息A和同源认证信息B而且闭合传递的起点与终点不同,与本实施例类似的还有其它流程,在此不一一列举了。
实施例I.5
图1.5是实施例I.5的信息传递路径图,本实施例的网络结构请见图1.6。
本实施例中,闭合传递的方式为:服务方→(认证信息)→第三方→(同源认证信息A)→请求方→(同源认证信息B)→服务方。其中,同源认证信息A是基于认证信息生成的,而同源认证信息B是基于同源认证信息A生成的,作为闭合传递终点的服务方可以验证同源认证信息B是否是起源于认证信息的。例如:认证信息可以是由服务方随机生成的一个1024位的质数,服务方将此质数发往第三方,第三方生成一个64位的质数并计算两质数的乘积得到乘积A,第三方将乘积A发往请求方,请求方也生成一个64位的质数并计算该质数与乘积A的乘积得到乘积B,请求方将乘积B返回服务方,服务方以乘积B除以1024位的质数,如果可以整除则说明乘积B是起源于该大数的则认证通过。
与本实施例类似的还有其它流程,在此不一一列举了。
实施例I.4和I.5的同源认证信息A和B也可以分别是一认证信息和其数字签名等等。
在与所列实施例类似的流程中,当第三方是闭合传递的终点的时候,第三方需要将认证的结果通知服务方。例如:当服务方向第三方请求对请求方的认证时,服务方同时向第三方发送一个认证序号,第三方完成认证后向服务方一起返回认证结果和这个认证序号。
实施例II
图2是实施例II的系统结构示意图。本实施例中,可移动式IC为USB闪存,其中存储着密钥X。终端为一具有USB接口的计算机,可移动式IC通过USB接口与终端相连接。应用服务系统为一互联网服务供应商的服务器设备。认证服务系统是第三方认证服务提供商的服务器设备。
本实施例的一种工作流程为:用户在终端上运行可移动IC上储存的可执行程序或登录认证服务系统网页,终端以可移动IC上的密钥X通过认证服务系统的身份认证;用户终端向应用服务系统请求认证,应用服务系统生成一随机数作为认证信息并将该随机数发往认证服务系统;认证服务系统以与该用户的可移动IC对应的密钥将该随机数加密,此密钥可以是密钥X或可移动式IC上的其它密钥,认证服务系统将加密后的随机数发往用户终端;用户终端在可移动式IC上进行解密计算得到该随机数,然后将该随机数发往应用服务系统;应用服务系统对比从终端处收到的随机数和自己生成的随机数,只有随机数相同认证才能通过。另外,在此流程中,当应用服务系统生成随机数时还可同时生成时间标记,当收到用户返回的随机数的时间差小于一定值时才该随机数才有效。根据具体应用的不同,以上工作流程还可以有不同的变化。
本实施例的另一种工作流程为:用户在终端上运行可移动IC上储存的可执行程序或登录认证服务系统网页,终端以可移动IC上的密钥X通过认证服务系统的身份认证;用户终端向应用服务系统请求认证,应用服务系统将请求重定向或传递给认证服务系统;认证服务系统生成一随机数作为认证信息并将该随机数发往应用服务系统,认证服务系统以与该用户的可移动IC对应的密钥将该随机数加密,此密钥可以是密钥X或可移动式IC上的其它密钥,认证服务系统将加密后的随机数发往用户终端;用户终端在可移动式IC上进行解密计算得到该随机数,然后将该随机数发往应用服务系统;应用服务系统对比从终端处和从认证服务系统处收到的随机数,只有随机数相同认证才能通过。另外,在此流程中,当应用服务系统收到随机数时还可同时生成时间标记或者认证服务系统生成时间标记并同随机数一道发送给应用服务系统,当应用服务系统收到用户返回的随机数的时间差小于一定值时才该随机数才有效。根据具体应用的不同,以上工作流程还可以有不同的变化。
实施例III.1
本施例中,中介方拥有权威机构颁发的数字证书,服务方可以利用该数字证书验证中介方的数字签名,用户方以用户名和登陆密码的方式通过中介方认证,认证程序为用户方从中介方下载的专用程序。
本施例的具体步骤为:用户在终端上运行认证程序,该认证程序自动与中介方建立SSL连接,用户在该认证程序中输入AUID和密码进行登陆,该认证程序向中介方发送用户的AUID和密码,中介方核对用户名和密码,如果正确则继续进行以下步骤否则中止,中介方将该用户方的AUID、该SSL的ID和当前系统时间相对应保存起来(用户方保存的该SSL的DES密钥就是认证标识),当用户需要接入某个服务方的资源时,用户可以在认证程序界面上选择该服务方资源的链接或输入该服务方资源的地址,认证程序将用户方AUID和该服务方资源的地址以SSL连接发送给中介方(服务方资源地址和AUID的SSL加密信息就是关于认证标识的信息),在中介方从SSL连接收到AUID后如果中介方核对AUID正确并且时间未过有效期则继续进行以下步骤否则中止,中介方以当前系统时间、用户方的AUID和服务方资源的地址构成一个序列并对该序列进行数字签名(该序列及其数字签名就是验证凭证),中介方将凭证发送给用户方的认证程序,用户终端上运行的认证程序建立一个新的指向为服务方资源地址的浏览器对象并将凭证以表单方式提交,服务方收到凭证后如果验证凭证的数字签名正确而且凭证生成时间未过有效期则继续以下步骤否则中止,服务方根据用户方的AUID得到APID和用户方权限,如果用户方权限允许那么服务方就允许用户终端的浏览器接入该服务方资源,当认证程序中止驻留运行时认证程序会中止与中介方的SSL连接。
另外,认证程序还可以记录建立的每个浏览器,当认证程序中止驻留运行时也可以同时关闭自己建立的所有浏览器窗口。
实施例III.2
本施例中,中介方拥有权威机构颁发的数字证书,服务方可以利用该数字证书验证中介方的数字签名,用户方以用户名和登陆密码的方式通过中介方认证,认证程序为一浏览器。
本施例的具体步骤为:用户在终端上运行一浏览器对象并输入中介方地址(该浏览器对象作为认证程序),中介方与该浏览器建立基于SSL连接的会话,其中,中介方生成一个1024位的随机序列作为与该用户方浏览器建立的会话的SessionID,用户在中介方推出的界面上输入AUID和密码进行登陆,中介方核对AUID和密码,如果正确则继续进行以下步骤否则中止,中介方将该用户方的AUID、SessionID和当前系统时间相对应地保存起来,当用户需要接入某个服务方的资源时,用户可以在该浏览器里由中介方推出的界面上选择该服务方资源的链接或输入该服务方资源的地址,浏览器将该服务方资源的地址和AUID通过已建立的会话连接发送给中介方,如果中介方找到匹配的SessionID和AUID并且时间未过有效期则继续进行以下步骤否则中止,中介方以当前系统时间、用户方的AUID和服务方资源的地址构成一个序列并对该序列进行数字签名(该序列及其数字签名就是用户方通过中介方认证的凭证),中介方通过用户终端上运行的浏览器建立一个新的指向服务方资源地址的浏览器对象或将该浏览器重定向至并将凭证以表单方式提交,服务方收到凭证后如果验证凭证的数字签名正确而且凭证生成时间未过有效期则继续以下步骤否则中止,服务方根据用户方的AUID得到APID和用户方权限,如果用户方权限允许则服务方允许用户终端的浏览器接入该服务方资源,当作为认证程序的浏览器进行重定向或者中止运行时就会失去该浏览器的SessionID并中止与中介方的会话(即认证连接)。
实施例III.3
本施例中,服务方预先已知中介方的固定IP地址,用户方以用户名和登陆密码的方式通过中介方认证,认证程序为用户方从中介方下载的专用程序。
本施例的具体步骤为:用户在终端上运行认证程序,认证程序与中介方建立会话而且SessionID是中介方生成的1024位的随机序列,用户在该认证程序中输入用户名和密码进行登陆,该认证程序向中介方发送用户的用户名和密码,中介方核对用户名和密码,如果正确则继续进行以下步骤否则中止,中介方根据用户方的用户名得到该用户方的AUID,中介方将该用户方的AUID、与用户方认证程序建立的会话的SessionID和当前系统时间相对应地保存起来,当用户需要接入某个服务方的资源时,用户打开一个新的浏览器并输入该服务方资源的地址,用户方在服务方的界面上输入用户方在服务方的用户名,服务方根据用户方在服务方的用户名得到该用户方的APID,服务方将生成一个1024位的随机数,服务方将随机数和该用户方的APID起保存起来并同时发送给中介方,中介方根据该APID得到用户方的AUID,中介方根据AUID找到与用户方认证程序建立的会话,如果该会话未过期则中介方将收到的随机数和服务方资源地址发送给用户方认证程序(该随机数就是验证凭证),用户方认证程序在用户方终端上运行的浏览器对象中寻找指向该服务方资源的,如果没找到就建立一个新的指向该服务方资源的浏览器对象,认证程序将用户方在服务方的用户名和该随机数一起以表单的形式通过找到的或新建立的浏览器对象发送给服务方,服务方收到后找到用户方APID和生成的随机数,如果核对收到的随机数正确并且未过期则继续以下步骤否则中止,服务方根据用户方APID得到用户方权限,如果用户方权限允许则服务方允许用户终端的浏览器接入该服务方资源,当认证程序中止驻留运行时认证程序会中止与中介方的会话。
另外,认证程序还可以记录建立的每个浏览器,当认证程序中止驻留运行时也可以同时关闭接入服务方的所有浏览器窗口。
实施例IV.1至IV.6和说明书附图4.1a至图4.25c中说明流程的符号的意义为:
“s”-服务方,“a”-中介方,“u”-用户方;
“,”-表示逗号前后的步骤可以连续进行;
“;”-表示分号前后的步骤不能连续进行,在两步中间还必须进行其它步骤;
“↑A”-生成信息A,“↑A&A1”-生成信息A和A1;
“A→B”-以约定算法计算信息A得到信息B,同样还有“B→A”;
“A→Am”-以特定方式计算信息A生成信息Am,同样还有“B→Bm”、“A1→Am”“A→An”;
“XA=B”以约定算法X计算信息A得到信息B,同样还有“XB=A”、“YA=B”、“YB=A”;
“A→a”-将信息A发送给中介方(a),同样还有“Am→s”、“B→u”等等;
“A⊙B”-验证信息B是否是信息A以约定算法计算生成的;
“A⊙Am”-验证两个信息的相关的信息A是否是相同的,同样还有“A⊙A”,“A⊙A1”,“B⊙Bm”等等。
例如,s(↑A&A1,A1→Am,A1→a,A→u)表示:服务方生成信息A和A1,服务方以特定方式计算信息A1生成信息Am,服务方将信息Am发送给中介方,服务方将信息B发送给用户方。
又例如,a(↑A,YA=B,A→s,B→u)表示:中介方生成信息A,中介方以约定算法Y计算信息A得到信息B,中介方将信息A发送给服务方,中介方将信息B发送给用户方。
又例如,u(XA=B,A→Am,B→a)表示:用户方以约定算法X计算信息A得到信息B,用户方以特定方式计算信息A生成信息Am,用户方将信息B发送给中介方。
又例如,s(A⊙A)表示服务方脸证得到的两个信息A是否相同,s(A⊙A1)表示服务方验证得到的信息A和A1的相关的信息A是不是相同的,a(A⊙B)表示中介方验证得到的信息B是不是得到的信息A以约定算法计算产生的。
实施例IV.1
实施例IV.1是以上发明内容中方案IV的连接认证方案1)的具体实现之一(参见图4.1a)。在实施例中,信息A是一个随机序列,约定算法是基于RSA和SHA的摘要加密算法,用户方在中介方注册时用户方终端会得到中介方预置的RSA密钥和SHA摘要算法(RSA和SHA组成的摘要加密算法就是约定算法X),中介方对应地拥有与用户方相同的RSA密钥和SHA摘要算法(约定算法Y与X相同)。
本实施例的具体步骤为:用户方终端向服务方请求接入,服务方将该用户方的APID发送给中介方,中介方根据服务方地址和APID得到该用户方的AUID,中介方根据AUID得到该用户方对应的密钥和摘要算法,中介方生成一个随机序列(信息A)并以该用户方对应的摘要算法计算信息A的数字摘要再以对应的密钥进行加密得到信息B,中介方把信息A和B发送给服务方,服务方将信息A发送给用户方,用户方终端也会以自己的密钥和SHA散列函数计算该信息A(随机序列)生成摘要加密值信息B,用户方终端把信息B通过一个端口发往服务方,服务方连接认证过程中会启动定时器,如果服务方在指定期限内收到了两个信息B就继续以下步骤否则就中止认证过程,服务方对比两个信息B如果相同则认证通过,在认证通过后服务方会允许来自该用户方终端的端口接入服务方指定的服务或资源。(参见图4.1a)
图4.1a流程:a(↑A,YA=B,A→s,B→s),s(A→u),u(XA=B,B→s),s(B⊙B)。
图4.1b流程:a(↑A,YA=B,A→u,B→s),u(XA=B,B→s),s(B⊙B)。
实施例IV.2
实施例IV.2是基于以上发明内容中方案IV的第2)种连接认证程序的具体实现之一(参见图4.2a)。在实施例中,信息A是一个AES加密密钥,约定算法是RSA加密解密算法,用户方拥有中介方制做派发的USB外设,用户方在USB外设上拥有一个RSA私钥而服务方也拥有与用户方私钥相对应的RSA公钥。
本实施例的具体步骤为:用户终端向服务方请求接入,服务方将用户方APID发送给中介方,中介方根据用户方APID和服务方标识找到用户方AUID,中介方以用户方AUID找到用户方对应的RSA公钥,中介方生成一个AES密钥(信息A),中介方以用户方对应的RSA公钥加密AES密钥得到加密信息(以约定算法Y计算信息A得到信息B),中介方将AES密钥和加密信息(信息A和B)发送给服务方,服务方将信息B发送给用户方终端,用户方终端将加密信息(信息B)传输给用户方USB外设,用户方USB外设以RSA私钥解密加密信息到AES密钥(以约定算法X计算信息B得到信息A),用户方USB外设将AES密钥传输给用户方终端,用户方终端以该AES密钥(信息A)加密约定内容得到信息Am,该约定内容可以包括用户方名称、认证方名称、服务方地址、请求接入服务号、生成时间标记等等,用户方终端将信息Am通过端口P发送给服务方,服务方以收到的AES密钥对信息Am进行解密(验证信息A和Am对应的信息A是不是相同的),如果解密内容符合要求则用户的认证通过,服务方将允许用户方终端的端口P接入请求的服务或资源。
图4.2a流程:a(↑A,YA=B,B→s,A→s),s(B→u),u(XB=A,A→Am,Am→s),s(A⊙Am)。
图4.2b流程:a(↑A,YA=B,A→s,B→u),u(XB=A,A→s),s(A⊙A)。
实施例IV.3
实施例IV.3是以上发明内容中方案IV的连接认证方案9)的具体实现之一(参见图4.9a)。在实施例中,信息A是128位的随机序列,约定算法是RSA加密解密算法,用户方拥有中介方派发的USB接口的可移动IC,在该IC上储存着中介方设置的用户方RSA加密私钥,中介方拥有与该用户方私钥对应的RSA公钥(系统架构参见图4.26)。
本实施例的具体步骤为:用户方终端向服务方发送接入请求、用户名和登陆密码,服务方验证用户名和登陆密码无误就会继续以下步骤,服务方生成一个128位的随机序列(信息A),服务方将信息A和用户方APID发送给中介方,中介方根据APID和服务方名称得到用户识别码AUID,中介方根据AUID得到与该用户方对应的RSA公钥并以之加密信息A得到信息B(约定算法Y为RSA加密算法),中介方将信息B和APID发送给服务方,服务方根据用户方APID把信息B发给对应的用户方终端,用户方终端又通过USB接口将信息B发送到与终端相连接的用户方可移动IC上,该可移动IC以用户方RSA私钥解密信息B得到信息A(约定算法X为RSA解密算法),可移动IC将信息A发送给用户方终端,用户方终端将信息A和用户识别码APID通过一个端口P发送给服务方,服务方根据APID得到己方生成的该用户方对应的信息A(随机序列)并把它与收到的信息A进行对比,如果相同则说明中介方和用户方进行的计算是相匹配的,在验证正确并且其它条件也符合的情况下用户方就通过了认证,服务方相应地会允许来自用户方终端的端口P接入到所请求的服务或资源(参见图4.9a)。
在以上具体步骤中,所述的其它条件例如:服务方会在生成信息A后启动计时时器,只有当服务方收到另一信息A的时间未超过规定时间范围时认证才能通过。
图4.9a流程:s(↑A,A→a),a(YA=B,B→s),s(B→u),u(XB=A,A→s),s(A⊙A)。
图4.9b流程:s(↑A,A→a),a(YA=B,B→u),u(XB=A,A→Am,Am→s),s(A⊙Am)。
实施例IV.4
实施例IV.4是以上发明内容中方案IV的连接认证方案10)的具体实现之一(参见图4.10a)。在实施例中,信息A是一个RSA加密私钥,约定算法是ECC加密解密算法,用户方拥有中介方派发的USB接口的可移动IC,在该IC上储存着中介方设置的用户方ECC加密私钥,中介方拥有与该用户方私钥对应的ECC公钥。
本实施例的具体步骤为:用户方终端向服务方请求接入,服务方生成一对RSA密钥(私钥为信息A,公钥为信息A1),服务方将该RSA私钥(信息A)发送给中介方,中介方以该用户方对应的ECC公钥加密信息A得到信息B(约定算法Y为ECC加密算法),中介方将信息B经过服务方发送给用户方终端,用户方终端又通过USB接口将信息B发送到与终端相连接的用户方可移动IC上,该可移动IC以ECC私钥解密信息B得到信息A(约定算法X为ECC解密算法),可移动IC将RSA私钥(信息A)发送给用户方终端,用户方终端以该RSA私钥和MD5函数对约定内容进行数字签名,该约定内容可以包括用户方名称、认证方名称、服务方地址、请求接入服务号、生成时间标记等等,该约定内容及其数字签名就是信息Am,终端将信息Am和用户方名称通过一个端口P发送给服务方,服务方根据用户方名称以对应的RSA公钥(信息A1)和相同的MD5函数验证该约定内容的数字签名是否正确,如果正确则说明该对RSA公钥和私钥是相匹配的(即该信息A就是该信息A1的相关的信息A或者说信息A和A1的相关的信息A是相同的),在验证正确并且其它条件也符合的情况下用户方就通过了认证,服务方相应地会允许来自用户方终端的端口P接入到所请求的服务或资源(参见图4.10a)。
在以上具体步骤中,所述的其它条件例如:服务方会提取约定内容中的生成时间标记,只有当约定内容未超出规定时间范围时认证才能通过,或者,服务方会检查约定内容的格式,只有格式正确认证才能通过,等等。
在以上具体步骤中,在用户方通过认证后,服务方与用户方可以用该RSA密钥对(信息A和A1)传递加密信息,例如:双方通过RSA加密交换一个DES密钥,并以该DES密钥再建立加密通信连接。
图4.10a流程:s(↑A&A1,A→a),a(YA=B,B→s),s(B→u),u(XB=A,A→Am,Am→s),s(A1⊙Am)。
在本实施例中,还可同时实现以上发明内容中连接认证方案13):其中,用户方拥有约定算法X1和X2,X1为解密算法,X2为加密算法,X1和X2都基于同一个ECC私钥,中介方拥有约定算法Y1和Y2,Y1为加密算法,Y2为解密算法,Y1和Y2都基于该用户方对应的ECC公钥,这样可以同实现方案10)和方案13)(参见附图4.13a和以下图4.13a流程)。
图4.13a流程:s(↑A&A1,A→u),u(XA=B,B→s),s(B→a),a(YB=A,A→Am,Am→s),s(A1⊙Am)。
实施例IV.5
实施例IV.5是以上发明内容中方案IV的连接认证方案15)的具体实现之一(参见图4.15a)。在实施例中,约定算法是SSL连接的基于主密钥的加解密算法。
本实施例的具体步骤为:用户方首先以用户名和密码登陆中介方,如果登陆成功那么中介方就向用户方发起一个SSL连接,SSL连接成功建立后用户方和中介方都拥有相同的主密钥(基于该主密钥的加密和解密算法分别为约定算法X和Y),用户方向服务方请求连接,服务方生成随机信息(信息A)并发送给用户方,用户方通过SSL连接将信息A发送给中介方(其中加密和解密运算分别为约定算法的两次相匹配的计算),中介方把收到的信息A再发送给服务方,服务方会对比生成的信息A和收到信息A,如果相同则认证通过。
图4.15a流程:s(↑A,A→u),u(XA=B,B→a),a(B→A,A→s),s(A⊙A)。
实施例IV.6
实施例IV.6是以上发明内容中方案IV的连接认证方案24)的具体实现之一(参见图4.24a)。在实施例中,约定算法是由SHA和RSA一起构成的数字签名算法,用户方终端拥有中介方预设的SHA和RSA私钥,中介方拥有与用户方相同的SHA和与该用户方私钥对应的RSA公钥。
本实施例的具体步骤为:用户方终端生成信息A,该信息A由一随机序列、信息生成时间、用户方APID、AUID、服务方标识、请求服务标识等组成,用户方终端以拥有的SHA和RSA私钥对信息A进行计算生成数字签名(信息B),用户方终端将信息A和B通过端口P发送给服务方,服务方将信息A和B发送给中介方,中介方以该用户方对应的SHA和DSA公钥验证信息A的数字签名是不是信息B,如果验证结果是肯定的而且信息A中的信息生成时间未过期那么用户的认证通过,认证方通知服务方认证结果——用户方认证通过,服务方将允许用户方终端的端口P接入请求的服务。
图4.24a流程:u(↑A,XA=B,A→s,B→s),s(A→a,B→a),a(A⊙B,通知→s)。
实施例V.1
图5.1是实施例V.1的信息传递路径图。
本实施例描述的是在互联网上实现一个通过第三方实现身份认证的系统,其中,第一方的程序对象A已经与第二方通过第三方建立了一个连接,第一方为用户网络终端,第二方为一网络资源,第三方为在互联网上提供第三方身份认证服务的认证服务系统,所述两个信息为一随机数。
实施例V.1包括以下步骤:
1)用户网络终端上的程序对象A通过认证服务系统的身份认证并与认证服务系统建立了连接,认证服务系统具有与网络资源的连接,因而,程序对象A与网络资源建立了间接的连接;
2)用户网络终端上的程序对象A通过认证服务系统向网络资源请求服务;
3)网络资源生成一随机数和时间标记;
4)网络资源将随机数、网络资源URL、用户标识发送给认证服务系统;
5)认证服务系统根据用户标识将随机数和网络资源URL发送给用户网络终端上的程序对象A;
6)用户网络终端上的程序对象A将随机数和网络资源URL赋与程序对象B;
7)程序对象B根据网络资源URL将随机数返回给网络资源;
8)网络资源对比自己生成的随机数和从用户终端返回的随机数,如果随机数相同而且未超过规定的时间有效期则与程序对象B建立新连接;
在本实施例中,程序对象A可以完成以下步骤:程序对象A通过已建立连接收到来自认证服务系统的随机数和网络资源URL;程序对象A在终端上运行的浏览器对象中寻找与网络资源URL相同的,如果没有找到就生成一个新浏览器对象,程序对象A找到的或新生成的浏览器对象就是程序对象B;程序对象B向网络资源URL发送连接请求并将随机数添加到的该连接请求中,如:将随机数加到连接请求的表单中。
本实施例可以结合即时通讯工具方便地实现。例如,程序对象A可以通过在即时通讯工具的客户端软件上增加一个能够自动识别闭合传递的信息和路径并执行信息转发的模块来实现。其中,网络资源和客户端软件都可以由即时通讯工具提供方来开发和提供,网络资源和客户下载就可以使用,非常方便可行。
实施例V.2
图5.2是实施例V.2的信息传递路径图。
本实施例描述的是用户终端已经与网络资源建立了一个点对点连接后再通过新的程序对象建立一个新连接,可能的应用如:IM即时通讯工具中点对点通讯的两个客户端对文件进行发送和接收时需要建立新连接。实施例2中程序对象A已经与第二方建立了一个点对点的直接连接。在本实施例中,第一方为用户网络终端,第二方为一网络资源。所述两个信息为随机生成的符合特定规律的一对数字,如:一个128位质数和该质数与另一个128位质数的256位的乘积,第二方通过计算收到的两个数中256位的数是否能被128位的质数整除来判断信息是否来自第一方。
实施例V.2包括以下步骤:
1)用户网络终端的程序对象A与网络资源建立了一个信任连接;
2)用户网络终端的程序对象A随机生成符合特定规律的一对数字;
3)用户网络终端的程序对象A通过已建立连接向网络资源发送用户标识和一对随机数之一来请求认证,同时用户网络终端的程序对象A生成程序对象B并将用户标识和一对随机数之另一个写入程序对象B根据网络资源URL向网络资源发送的连接请求中;
4)网络资源对比收到的两个随机数,如果两个随机数符合特定规律而且收到的时间差未超过规定值则用户通过身份认证;
在本实施例中,程序对象A可以完成以下步骤:程序对象A随机生成符合特定规律的一对数字;生成程序对象B并将用户标识和一对随机数之另一个写入程序对象B根据网络资源URL向网络资源发送的连接请求中。
在本实施例中,步骤1)也可以移动至步骤3)和步骤4)之间来执行。
本实施例也可以结合点对点通讯方式的即时通讯工具IM来实现。在用户端软件中内置对象程序A,在网络资源配置相应的服务软件,就可以实现本实施例。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。