用于使电子通信中的认证安全的方法与流程

文档序号:13675297阅读:302来源:国知局

本发明涉及信息和通信安全的技术领域。本发明涉及装置的安全性,特别是用于在本地或远程电子通信中进行认证以防止被未获授权的人滥用的设备的安全性。



背景技术:

利用各种手段来使受保护的电子通信(认证)安全,这提供各种级别的安全性,即对抗被未获授权的人滥用的不同级别的应变力。为了提高安全性,使用了各种方法来应对各种可能的滥用方式。在电子通信中使用的认证手段的滥用的主要风险包括获得这些手段或获得用于认证的这些手段所使用的秘密信息。

通过用户输入的登录名和密码进行认证的非常普遍的方法,对于攻击者成功获取关于使用的密码的信息的情况非常敏感。攻击者可以通过以下方式这样做:例如,观察用户用于输入密码的键盘,跟踪传输密码的数据网络中的通信,从用于检查密码的服务提供商的数据库读取信息或者从用户欺骗性地获取密码(网络钓鱼)。

使用多个认证因子来降低与认证手段的滥用有关的风险。攻击者必须破解所有使用的认证因子,而不仅仅是破解一个认证因子。智能支付卡代表了一个非常知名且广泛的双因子认证手段。用户有一个芯片卡,该芯片卡只有在输入pin(秘密编号)时才起作用。为了滥用该芯片卡,攻击者必须获取该支付卡并猜测或以其他方式获取pin。

使用专门设计的设备降低与滥用认证手段相关联的风险;这些设备为存储在认证装置上的用于认证的秘密信息提供增强的保护。这降低了攻击者通过从(本地或远程)认证设备读取信息来获取这些信息的风险。示例包括专用认证令牌、计算器、智能卡和带有内置智能芯片的usb令牌。

通常,认证方案越安全,其涉及的复杂度以及用户复杂性越高。为了解决这个问题,存在以下这样的解决方案:这些解决方案冒着可能被攻击者复制所使用的用于认证的秘密信息的风险,来降低使用这种认证手段的成本、对于用户的复杂性以及对专业设备通常所需的专业知识和技能的要求。一个示例是在pc硬盘或通用usb存储器令牌上安装认证x.509证书(使用私钥)。

实际使用的解决方案具有许多缺点,这些缺点或者导致安全性低,即攻击者滥用这种认证手段的机会较大,或者导致用户不愿或不能使用的昂贵且用户复杂的解决方案。

现有解决方案的缺点包括这样的事实:防止滥用的保护是相关认证手段的默认部分,并且其使用独立于在给定时刻将与认证手段的具体使用相称的安全级别。因此,如果电子服务的客户的舒适标准获胜,则在与高安全级别要求一起使用时,认证缺乏安全性,或者在用于具有通常的安全等级要求的服务时,认证手段操作起来不合理地复杂且因此不能被用户接受。

这些解决方案的缺点还包括这样的事实:在实际认证开始之前,第二个和任何其它因子由认证设备直接评估。攻击者可能会获得该设备,并找到绕过其保护机制的方式。攻击者或者绕过使用第二因子的必要性,或者具有足够数量的猜测,或者找到从认证设备获得关于第二因子的信息的另一方式。

另外,用户必须针对不同的服务使用多种不同的认证手段,这使得安全流程复杂化,降低了电子通信和电子服务的整体安全性,最终增加了成本。



技术实现要素:

本发明提供了一种使至少一个用户认证装置与至少一个服务器认证装置之间的电子通信中的认证安全的方法,其中,在第一个步骤中执行主认证,在所述主认证内创建次级认证密钥(sas,secondaryauthenticationsecret),所述次级认证密钥在所述用户认证装置和所述服务器认证装置之间共享并且仅对于给定的认证事务有效;并且所述次级认证密钥随后被用作用于在创建第一认证矢量元素积(avep,authenticationvectorelementproducts)的同时由所述用户认证装置分别对每个认证矢量元素(ave)执行的转换、优选地密码转换的输入(参数),其中认证矢量(av,authenticationvector)是认证矢量元素(ave(i))的有序集合,并且第一认证矢量积(avp,authenticationvectorproduct)是从所述用户认证装置传送到所述服务器认证装置的并由所述服务器认证装置使用所述次级认证密钥来评估的对应的第一认证矢量元素积(avep(i))的有序集合。

优选地,用户认证装置存储认证矢量元素的值,和/或该值在认证事务之前或期间由用户输入或者从信息介质或从外部环境获得,和/或该值在认证事务之前或期间使用由用户输入的信息或从信息介质或外部环境获得的信息,从认证矢量元素的转换值(t-ave(i))获得,和服务器认证装置存储认证矢量元素的参考值(aver(i))或者在认证事务之前或期间从信息介质或外部环境获得认证矢量元素的参考值(aver(i))。

例如,转换可以包括添加sas、与sas级联、与sas的位操作、密码转换等。

密码转换可以是单向的(例如散列函数)或双向的(例如加密和解密)。

认证矢量元素(ave)是用于部分认证的认证元素。各个ave具有唯一的索引(i-索引),符号是ave(i)。相关的ave(i)明确地分配给它的使用目的。

认证矢量元素(ave)可用于各种目的,例如验证另一个认证因子或防止复制认证密钥。优选地,各个认证矢量元素选自包括以下数据的组:来自之前认证事务的数据、与用户认证装置的识别相关的数据、与本地认证因子有关的数据,与数据信道密钥相关的数据等。

认证矢量(av)是ave(i)的有序集合。用于在特定认证事务中的av的具体使用的ave的数量和选择可以不同于之前或之后的认证事务。在给定的特定认证事务中使用的ave的选择可以由服务器认证装置基于使用认证的目标应用的请求、优选在线请求直接地或间接地控制。

认证矢量元素的参考值(aver(i)-认证矢量元素参考)是指定用于验证ave(i)的准确性的值。这是在ave(i)的验证之前以与ave(i)的目的相一致的方式创建的值。

认证矢量元素积(avep(i))表示通过使用次级认证密钥,对相应的ave(i)进行转换而获得的信息;优选地,该转换是密码转换。认证矢量积avp是avep(i)的有序集合。

次级认证密钥(sas)表示在主认证内例如使用主认证密钥创建和认证的共享密钥。它是只有参与认证的双方都知道的伪随机秘密信息,所述双方即用户认证装置和服务器认证装置。sas仅在认证(认证过程,认证事务)期间有效,并且被创建成使得即使主认证密钥已知,其也不可预测。主认证的过程和创建共享的次级认证密钥的过程在本领域中是已知的。

在本发明的一个实施方式中,服务器认证装置上的第一认证矢量积被以这样的方式评估:通过使用次级认证密钥作为由服务器认证装置分别对每个认证矢量元素执行的密码转换的输入,从服务器认证装置上存储的认证矢量元素参考值,在服务器认证装置中创建第二认证矢量积;并比较第一认证矢量积和第二认证矢量积。

在本发明的另一个实施方式中,对服务器认证装置上的第一认证矢量积进行评估,使得在服务器认证装置中,每个第一认证矢量元素积分别进行与用户认证装置使用的转换逆向的转换,且使用认证矢量元素参考值来评估结果。

在一个实施方式中,所有认证矢量元素被用在每个认证事务中。

在本发明的另一个实施方式中,仅有一些认证矢量元素用在各种认证事务中,其中在认证事务期间,将关于在给定的认证事务中将使用哪些认证矢量元素的信息从服务器认证装置发送到用户认证装置。这确保了容易适应每个特定认证事务的安全性需求。

在使用av之前确定各个认证矢量元素ave(i),包括每个ave(i)的使用目的。ave(i)的确定对所有随后的认证都是有效的,直到分配改变。

可以在每个单独的认证事务之前确定,将在该事务中使用哪些特定的认证矢量元素ave(i)以及在该事务中将不使用哪些特定的认证矢量元素ave(i)。将这个控制信息发送到服务器认证装置。在一个优选实施方式中,服务器认证装置基于该控制信息来确定认证事务中将使用哪些认证矢量元素ave(i),将该信息发送给用户认证装置,并且用户认证装置仅使用如此确定的元素ave(i)创建第一认证矢量积。如果用户认证装置不能获得元素ave(i)的值,并且因此不能获得第一认证矢量元素积avep(i)的相应元素,其将该事实通知给服务器。服务器包含关于认证评估中的缺失值的信息。

任何给定的认证的第一步骤在于主认证(例如,使用主认证密钥)以及创建次级认证密钥(sas)。

确定在所述认证中将使用认证矢量的哪些特定元素ave(i)和将不使用认证矢量的哪些特定元素ave(i)的控制信息可以以安全的方式从服务器认证装置传送到用户认证装置。sas或从sas获得的信息可用于保护该传送。

用户认证装置获得实现要使用的每个单独的认证矢量元素ave(i)的目的所需的信息。用户认证装置以适合于使用目的的方式获得并处理该信息。以这种方式,用户认证装置获得所有认证矢量元素ave(i)的值。使用转换,用户认证装置从每个认证矢量元素ave(i)且从次级认证密钥sas计算认证矢量元素积avep(i)。

将所有这样计算的认证矢量元素积avep(i)作为第一认证矢量积从用户认证装置安全地传送到到服务器认证装置。次级认证密钥sas或从sas获取的信息可用于保护该传送。

根据每个单独的认证矢量元素ave(i)的使用目的,服务器认证装置将认证中使用的认证矢量元素ave(i)的评估结果直接传递给目标应用作为认证结果的一部分,或执行其他处理或其他动作或活动。

在优选实施方式中,认证矢量包含至少一个元素,该至少一个元素的目的是检测用户认证装置的复制。m个认证矢量元素用于此目的。我们将这些元素表示为ac-ave(i)(防复制认证矢量元素,anticopyauthentizationvectorelement)。

将i=1至m的m个元素ac-ave(i)中的每一个分配给之前的认证之一;优选地,ac-ave(1)被分配给紧接的前一认证,ac-ave(2)被分配给所述紧接的前一认证的前一个认证,并且ac-ave(j)被分配给第j个先前认证。ac-ave(i)元素对应于明确地分配给相关的先前认证事务的信息,并且仅由事务的双方知道。

优选地,所述信息可以例如通过sas或通过从sas加密地导出的值、优选地使用单向密码转换表示。执行每个认证,以便创建有效的且仅在该认证中知道的认证的sas。在该给定的认证中,用户认证装置和服务器认证装置可以使用相同的sas。在认证事务期间,用户认证装置和服务器认证装置独立地使用sas来使用密码转换(为了安全起见,优选使用单向密码转换)为该认证计算新的ac-ave值。我们将它表示为ac-ave(0)。

从先前创建和存储的ac-ave(i)的值,其中i=1到m,用户认证装置创建认证矢量元素积avep(i)并将其发送到服务器装置以进行评估。使用采用sas作为输入(参数)的转换来执行avep(i)的创建。

在计算ac-ave(0)之后,用户认证装置移动先前记录的ac-ave(i)值,以便在移动ac-ave(1)的值到ac-ave(2)(以此类推)之后,用户认证装置记录ac-ave(0)的值作为ac-ave(1)。这意味着在每个执行的认证中,新计算的ac-ave(0)值被置于ac-ave(i)的值的列表的开始处,而其它值向值的列表的末尾移动一个位置。

服务器认证装置使用所计算的ac-ave(0)作为认证矢量元素的相关参考值ac-aver(0)。

服务器认证装置使用先前记录的ac-aver(i)的值(其中i=1至m)来验证与由用户认证装置发送的值的匹配性以用于通过在将先前记录的ac-aver(i-1)的值移动到ac-aver(i)后,通过使用sas作为输入的相同的转换来创建认证矢量元素积以进行验证;并将它们与从用户认证装置接收的值进行比较。

服务器认证装置还记录新计算的ac-ave(0)值,并且同时移动先前记录的ac-aver(i)值,因为其将ac-aver(1)值移动到ac-aver(2)等之后,将ac-ave(0)值记录为ac-aver(1)。这意味着在每次执行的认证中,新计算的ac-ave(0)值被置于ac-aver(i)值的列表的开始处且其他值向值的列表的末尾移动一个位置。

评估ac-avep(i)元素,其中i=1至m,以便区分用户认证装置方或服务器认证装置方出现技术问题的情况与数据被从用户认证装置复制并被另一用户认证装置使用的情况。

优选地,评估区分以下情况:

-所有ac-ave(i)元素被评估为与ac-aver(i)相同。这意味着没有发生技术问题,也没有使用副本。

-除列表开始处的n个相邻元素外,所有ac-ave(i)元素与ac-aver(i+/-n)相同,即与向前或向后移动n个位置的参考元素相同。这意味着在用户认证装置或服务器认证装置上的n个连续认证中发生了技术问题。当检测到该技术问题时,对相关ac-aver(i)附加一个注释,即,这种情况被评估,并将该信息用于值从列表开始处逐渐消失的随后评估。

-如果检测到任何其它不匹配,即一个或几个ac-ave(i)元素与ac-aver(i)与以下方式不同:该方式与用户认证装置或服务器认证装置的技术问题不对应。这意味着获得了认证密钥的副本,且该副本被至少一次使用。

如果如此检测到认证密钥的副本的存在和使用,则将该事实作为认证装置的防止滥用的装置的输出来发信号,并且可以用于恢复措施,诸如阻止认证装置、通过强制干预使副本不同于原始等。

在一个优选实施方式中,认证矢量包含至少一个元素,该至少一个元素的目的是验证本地认证因子。用户认证装置从外部环境获得本地认证因子(laf)的值,且存储在服务器认证装置上的认证矢量元素的参考值lf-aver(i)进而直接由本地认证因子、从本地认证因子导出的信息或参考信息表示,其中如果lf-aver(i)是参考信息,则所述参考信息独立于本地认证因子。

为了验证用户认证装置由授权用户持有的目的,本地认证因子(laf)表示由用户认证装置的技术设备从该装置的物理外部环境、或直接从用户获得的信息。本地认证因子可以由用户必须输入的信息(例如,pin,密码)或从仅授权用户拥有的对象(例如无线支付卡)获得的信息、或者授权用户(例如,获得人脸图像、指纹、手势、常规习惯等)的生物特征或行为生物特征的识别来表示。

k个认证矢量元素用于验证l个本地认证因子,其中k>=l。我们将这些元素表示为lf-ave(i)(localfactorauthenticationvectorelement,本地因子认证矢量元素),其中i=1到k。

被验证的laf数量不一定总是相同的;其可以通过服务器认证装置的请求来确定,该请求指定在给定的事务中是否应该由用户认证装置获得laf且获得哪些laf以及laf是否应当用于验证并且哪些laf应当用于验证。获得的laf的数量不需要总是与经过验证的laf的数量相同。在过去获得且由用户认证装置存储的laf也可以用于在允许laf重新使用的时间段期间的验证。该允许的时间段可以由用户认证装置的用户设置,或者可以构成服务器认证装置的请求的一部分,或者其可以使用服务器认证装置来远程配置在用户认证装置上。

当laf被定义(初始化,创建)时,laf验证装置的初始化由用户认证装置和服务器认证装置二者执行。lf-ave(i)的值,即由用户认证装置获得的与laf对应的元素的值,可以直接由laf表示,或者由从laf导出的信息表示,或者通过使用laf作为输入(参数)的密码转换所转换的参考信息表示。然后,lf-aver(i)值,即存储在服务器认证装置上的参考值,相应地由laf表示,或者由从laf的导出的信息或由参考信息表示。如果lf-aver(i)由参考信息表示,则该参考信息独立于laf。

验证特定laf(包括由该laf产生的lf-ave(i)值)是否属于授权用户可以在定义laf期间或之后执行(例如,使用组织手段,诸如在值得信赖的人、政府当局的存在下或由电子邮件,首次输入laf)。

如果lf-aver(i)由独立于laf的参考信息表示,则如下在用户认证装置上执行lf-ave(i)装置的初始化:

·获得参考laf(例如,首先输入和验证密码或pin,使用相关的识别对象,获得脸部或指纹的参考图像)。获得参考laf的结果是参考值或本地参考值的集合(我们将它们表示为laf-rv(i)-localauthenticationfactorreferencevalue,本地认证因子参考值)。其可以用单个值或多个值表示。

·同时,从sas伪随机地创建认证矢量元素的相应数量的获得的参考值lf-aver(i)。

·相互对应的laf-rv(i)和lf-aver(i)被用作密码转换的输入(例如,使用laf-rv(i)对lf-aver(i)进行加密)。密码转换的结果被存储在用户认证装置上以供进一步使用,并且不被传送到任何其它位置。我们将这个值表示为t-ave(i)(转换后的认证矢量元素)。

·同时,在服务器认证装置上从sas以相同方式计算的相关认证矢量元素的相关参考值lf-aver(i),被存储在服务器认证装置上。

这个过程适用于所有laf的所有值,且不需要对所有值或所有laf一次性执行。相反,其可以是一个逐渐的过程,其中,初始化的各个laf的值甚至可以在初始化其它值或其它laf之前用于验证。

如下执行laf(i)的验证:

·用户认证装置获取laf并创建相应的值,或使用较早获得的laf以及其存储在存储器中的值(我们将其表示为laf-vv(i)-localauthenticationfactorverifiedvalue,本地认证因子验证值)。

·先前初始化和记录的t-ave(i)和laf-vv(i)的相关值是与在初始化过程中使用的密码转换逆向的密码转换的输入(例如使用laf-vv(i)对t-ave(i)解密)。

·逆密码转换的输出被用作认证矢量元素lf-ave(i)的值。验证矢量元素的上述验证机制被用于验证。

该机制对每个laf的每个值分别使用,并分别进行评估。

在优选实施方式中,认证矢量包含至少一个元素,该至少一个元素的目的是认证未认证的数据信道。单个认证矢量元素ave(i)就满足该目的,但也可以使用多个ave(i)。

用户部分和服务器部分之间的数据信道创建用于保护数据信道的内部密钥(例如加密和保护所传送的数据的完整性)。

使用单向转换,数据通道的客户端部分从数据通道内部密钥创建数据信道密钥输出(dcse,datachannelsecretexporter)。

数据信道的服务器部分也创建相同的数据通密钥输出。

用户认证装置从数据信道的客户端部分获得dcse,且服务器认证装置从数据信道的服务器部分获得dcse。

用户认证装置使用所获得的dcse作为认证矢量元素ave(i),并且服务器认证装置使用所获得的dsce作为认证矢量元素的参考值aver(i)。

以上述方式评估相应的认证矢量元素,从而通过由(主)认证密钥认证的次级认证密钥sas来认证数据信道。

在本发明的一个优选实施方式中,认证矢量包含至少一个元素,该至少一个元素的目的是验证由一个或多个标识符标识的用户认证装置(即,验证真实性,设备的身份,例如内部识别数据),直到设备的各个部分上的标识符相同。我们将设备标识符表示为di(i)。

通过使用di(i)作为lf-ave(i),可以验证所使用的设备与在laf(i)初始化时的设备相同。di(i)可以在用户认证装置的第一次使用期间被初始化。

在本发明的优选实施方式中,认证矢量包含至少一个元素,该至少一个元素的目的是通过数据信道消除攻击者。单个认证矢量元素ave(i)就满足该目的,但是可以使用认证矢量元素中的多个认证矢量元素。

数据信道次级密钥dcss(datachannelsecondarysecret)是使用客户端部分和服务器部分之间的数据信道创建的。dcss可以由例如数据信道密钥输出(dcse)或数据信道传输的密钥(dcts,datachanneltransportedsecret)来表示。

用户认证装置从数据信道的客户端部分获得dcss,服务器认证装置从数据信道的服务器部分获得dcss。

我们将用户认证装置的(主)认证密钥的公钥表示为cpuk(客户端公钥)。

用户认证装置使用应用于cpuk和从客户端部分获得的dcss值的单向转换来计算该认证矢量元素ave(i)的值。

服务器认证装置使用应用于cpuk和从数据信道的服务器部分获得的dcss值的相同的单向转换来计算该认证矢量元素aver(i)的参考值。服务器认证装置使用其已知的cpuk值,服务器认证装置使用该cpuk值用于用户认证装置的主认证。

如果攻击者不在数据信道上,并且同时在用户认证装置和服务器认证装置之间,以上述方式评估相关的认证矢量元素,从而消除针对主认证的主动mitm(man-in-the-middle,中间人)攻击。

在本发明的优选实施方式中,认证矢量包含至少一个元素,该至少一个元素的目的是使用副本消除攻击者。在这个实施方式中,使用两个用户认证装置、一个服务器认证装置和两个相互关联的密钥即k和pk。第一用户认证装置产生随机密钥pk,并通过单向密码转换(例如,通过散列函数)从pk得到密钥k。

第一用户认证装置将密钥pk直接发送到第二用户认证装置。

第二用户认证装置使用单向密码转换(例如散列函数)从所获得的密钥pk导出密钥k。

为了消除攻击者,还需要使用用户认证装置以正确的顺序验证相同的密钥k或pk可用于服务器认证装置,并且还使用服务器认证装置验证相同的密钥k或pk可用于用户认证装置。

在这个过程中,利用密钥之间的单向依赖,即,k可以从pk计算而pk不能从k计算的事实。

为了消除攻击者,首先需要使用服务器认证装置来验证第一用户认证装置的密钥k,然后需要使用服务器认证装置来验证第二用户认证装置的密钥pk,并且随后使用第一用户认证装置来验证服务器认证装置的密钥k,并且最后使用第二用户认证装置来验证服务器认证装置的密钥pk。

因此,密钥k首先从第二用户认证装置传输到服务器认证装置,然后密钥pk从第一用户认证装置传输到服务器认证装置。

两个认证矢量元素ave(k)和ave(pk)被用于验证密钥k和pk。

在使用服务器认证装置的验证中,使用用户认证装置计算认证矢量元素积(avep),由服务器认证装置执行通过与认证矢量元素的参考值(aver)或从其导出的信息的比较而进行的评估。

在使用用户认证装置的验证中,使用服务器认证单元来计算认证矢量元素积(avep),并且由用户认证装置执行通过与认证矢量元素的参考值(aver)或其获得的信息的比较而进行的评估。

从密钥k或pk计算认证矢量元素积(avep),并将密钥k或pk用作认证矢量元素的参考值(aver)。

由于密钥k和pk是由两个用户认证装置在开始时计算的,所以在从服务器接收到认证矢量元素积(avep)之后立即通过用户认证装置执行评估。

由于在服务器认证装置从用户认证装置接收到认证矢量元素积(avep)时,服务器认证装置不能使用密钥k和pk,当密钥k以及然后密钥pk被传输到服务器认证装置时,随后执行评估。

在本发明的一个优选实施方式中,使用应用于该对cpuk(用户认证装置的(主)认证密钥的公钥)和k或者该对cpuk和pk的单向转换,计算认证矢量元素ave(k)和ave(pk)以及认证矢量元素的参考值(aver)。

在本发明的一个优选实施方式中,创建三个相互关联的密钥-pk、k和nk,其中nk由单向密码函数(例如散列)从密钥k导出。

第二用户认证装置使用单向密码转换(例如散列函数),从所传输的密钥pk导出密钥k,且将密钥k传输到服务器认证装置。

服务器认证装置使用单向密码转换(例如散列函数),从所获得的密钥k导出密钥nk,且将密钥nk发送到第一服务器认证装置。

第一用户认证装置使用单向密码转换(例如散列函数)从所创建的密钥pk以及源自密钥k的密钥nk导出密钥k,且使用从服务器认证装置获得的密钥nk验证导出的密钥nk。

在本发明的优选实施方式中,认证矢量包含至少一个元素,该至少一个元素的目的是在创建(启动)身份时消除攻击者。两个服务器认证装置和一个用户认证装置以及两个相互关联的密钥(k和pk)用于此目的。第一服务器认证装置创建随机密钥pk,并使用单向密码转换(例如散列函数)从pk导出密钥k。

第一服务器认证装置将密钥pk直接发送到第二服务器认证装置。

第二服务器认证装置使用单向密码转换(例如散列函数),从所获得的密钥pk导出密钥k。

为了消除攻击者,还需要使用用户认证装置以正确的顺序验证相同的密钥k或pk可用于服务器认证装置,并且还使用服务器认证装置验证相同的密钥k或pk可用于用户认证装置。

关于本发明的主题,情况类似于本发明的前述实施方式,不同之处在于,当使用认证矢量元素ave(k)和ave(pk)时,用户认证装置接管服务器认证装置的功能,反之亦然。

在本发明的优选实施方式中,认证矢量包含至少一个元素,该至少一个元素的目的是识别通过恶意代码对应用的修改(即恶意软件保护)。

这些元素使用fam1(x)函数,其中x是参数(挑战),函数fam1(x)是要验证的应用程序的图像的参数签名。该函数计算来自永久存储器的应用程序图像的校验和(例如散列,mac),并使用用户认证装置的主认证私钥将校验和与挑战(参数x)一起签名。

对于不存在私钥读取功能的操作系统,可以使用一组永久密钥对或一对非对称密码密钥。只有关于私钥的选择的操作,这不会损害私钥,且不会损害公钥读取的操作。一对密钥是为整个操作系统或一个服务器认证装置提供的。

此外,元素可选地使用fam2(x)或fam2(i,x)函数,其中x是参数(挑战,challenge),并且i是当使用一组密钥对时使用的密钥对的索引。fam(x)或fam(i,x)函数是主存储器中的应用程序图像的参数签名。当要检查的软件被加载到存储器中时,操作系统计算所加载的软件的校验和(例如散列,mac),并使用所需的私钥(参数i)将校验和与挑战(参数x)一起签名。操作系统的内核仅将fam(x)或fam(i,x)的结果值发送到以下这样的软件:操作系统启动该软件以及该操作系统使用该软件的校验和。

此外,元素可选地使用fs(x)或fs(i,x)函数,其中x是参数(挑战),且i是当使用一组密钥对时使用的密钥对的索引。fs(x)或fs(i,x)函数是独立于主存储器中的应用程序图像的参数签名。函数使用的所需的私钥(参数i)将挑战(参数x)签名。

至少两个认证矢量元素ave(i)被用于验证应用代码的修改;我们将这些元素表示为am1、am2,可选地,还可以将另外两个元素表示为am3和am4。

认证矢量元素am1包含来自永久存储器(例如光盘)的应用程序图像的校验和。

认证矢量元素am2包含来自永久存储器的由用户认证装置fam1(x)的主认证的私钥签名的应用程序图像的校验和的参数非对称签名。签名的参数x由sas导出数表示。

认证矢量元素am3包含在主存储器中的由操作系统fam2(x)或fam2(i,x)的私钥签名的应用程序图像的参数化校验和,其中x是sas导出数,以及i是分配给给定的服务器认证装置的索引。

认证矢量元素am4包含由操作系统fs(x)或fs(i,x)的私钥签名的参数签名,其中x是sas导出数,以及i是分配给给定服务器认证装置的索引。

由于服务器认证装置不具有用于创建参考签名的手段,而只是具有用于验证使用在fam1,fam2和fs函数中使用的非对称密码创建的签名的手段,所以认证矢量元素am2,am3和am4必须以未改变的形式从用户认证装置传输到服务器认证装置且在传输过程中受到保护。因此,使用利用对称密码转换的例如通过使用sas加密的元素am2、am3和am4的用户认证装置计算认证矢量元素积(avep)。

使用服务器认证装置对am2、am3和am4元素的评估是通过使用非对称密码创建的签名的验证方法来执行的。所获得(例如通过服务器认证方式使用sas进行解密而获得)的am2、am3和am4元素的重构值、以及校验和与参数x(sas导出数)的相关公钥和参考值用于验证。

在本发明的一个优选实施方式中,创建三个相互关联的密钥即pk、k和nk,其中nk由单向密码函数(例如散列)从密钥k导出。

第二服务器认证装置使用单向密码转换(例如散列函数),从所获得的密钥pk导出密钥k,并将密钥k发送到用户认证装置。

用户认证装置使用单向密码转换(例如散列函数),从所获得的秘钥k导出秘钥nk。并将秘钥nk发送到第一服务器认证装置。

第一服务器认证装置使用单向密码转换(例如散列函数),从所创建的密钥pk导出密钥k以及从密钥k导出密钥nk,且使用从用户认证装置获得的密钥nk验证如此获得的密钥。

特别优选的是组合本文描述的一些或全部优选实施方式。这可以通过适当地分配认证矢量元素ave(i)并且通过使用服务于各种目的的多个ave(i)来完成。

附图说明

图1示意性地示出了根据示例1的系统。

图2示意性地示出了示例2中描述的系统。

具体实施方式

示例1

认证矢量元素(authenticationvectorelement)ave(i)的具体分配的使用及其使用的示例。

图1中示意性地示出所描述的系统。

前m个认证矢量元素ave(1)至ave(m)用于提供防复制保护,认证矢量元素ave(m+1)用于验证用户输入的本地因子(例如pin或nfc卡),认证矢量元素ave(m+2)用于验证本地区域认证因子(例如wifi热点),认证矢量元素ave(m+3)用于验证用户认证装置(例如,用户认证装置的内部识别数据的验证),认证矢量元素ave(m+4)用于认证数据信道,以及认证矢量元素ave(m+5)用于通过数据信道消除攻击者。

在创建副本的情况下或者在身份开始存在的情况下,认证矢量元素ave(m+6)和认证矢量元素ave(m+7)用于攻击者的附加消除。

首先,执行用户认证装置101与服务器认证装置201之间的主认证,经由非安全网络401在用户认证装置101与服务器认证装置201之间创建认证的信道301,并且次级认证密钥(sas,secondaryauthenticationsecret)2也被创建为可被用户认证装置101以及服务器认证装置201使用。

前m个认证矢量元素ave(1)至ave(m)使用存储在用户认证装置101中的m个ac-ave(i)值1。从ac-ave(i)值1,使用用户认证装置101的次级认证密钥(sas)2,执行用户认证装置101的认证矢量元素积avep(i)(authenticationvectorelementproducts)3的m个值的计算。

在用户输入本地因子4之后,使用所输入的值对本地因子4的认证矢量元素的转换值t-ave(1)5进行解密。本地因子4的解密值6被用作认证矢量元素ave(m+1),即使用次级认证密钥2(sas)从本地因子4的解密值6计算用户认证装置101的认证矢量元素积3的值avep(m+1)。

在确定来自靠近用户认证装置101的装置的本地区域认证因子7的值之后,所确定的值用来对本地区域认证因子7的认证矢量元素的转换值t-ave(2)8进行解密。本地区域认证因子7的解密值9被用作认证矢量元素ave(m+2),即,使用次级认证密钥(sas)2从本地区域认证因子7的解密值9计算用户认证装置101的认证矢量元素积3的值avep(m+2)。

用户认证装置101的内部识别数据10,例如,网络接口的序列号和mac地址,用于解密内部识别数据10的认证矢量元素的转换值t-ave(3)11。内部识别数据10的解密值12被用作认证矢量元素ave(m+3),即使用次级认证密钥(sas)2从内部识别数据的解密值12计算用户认证装置101的认证矢量元素积3的值avep(m+3)。

未经认证的数据信道302在其两端上创建了数据信道密钥输出13。传输到用户认证装置101的数据信道密钥输出13被用作认证矢量元素ave(m+4),即,使用次级认证密钥(sas)2,从数据信道密钥输出13计算用户认证装置101的认证矢量元素积3的值avep(m+4)。

使用从发送给用户认证装置101的数据信道密钥输出13和用户认证装置101的(主)认证密钥14的公钥cpuk的单向密码转换(例如散列),计算导出值15。导出值15被用作认证矢量元素ave(m+5),即,使用次级认证密钥(sas)2,从应用于数据信道密钥输出13和用户认证装置101的(主)认证密钥14的公钥cpuk的单向密码转换的结果,计算用户认证装置101的认证矢量元素积3的值avep(m+5)。

因此,整个认证矢量积avp在用户认证装置101上可获得。

服务器认证装置201使用存储在服务器认证装置201中的m个ac-ave(i)的值1作为认证矢量元素的相关参考值ac-aver(i)。使用服务器认证装装置201的次级认证密钥(sas)2,从服务器认证装置201上的ac-ave(i)的值1计算认证矢量元素积3avep(i)的m个值。

服务器认证装置201使用本地因子的参考值16laf-rv(1)作为认证矢量元素ave(m+1),即使用次级认证密钥(sas)2从本地因子的参考值16laf-rv(1)计算服务器认证装置201上的认证矢量元素积3的值avep(m+1)。

服务器认证装置201使用本地因子的参考值17laf-rv(2)作为认证矢量元素ave(m+2),即,使用次级认证密钥(sas)2从本地因子的参考值17laf-rv(2)计算服务器认证装置201上的认证矢量元素积3的值avep(m+2)。

服务器认证装置201使用设备的本地因子的参考值18laf-rv(3)作为认证矢量元素ave(m+3),即,使用次级认证密钥(sas)2从设备的本地因子的参考值18laf-rv(3)计算服务器认证装置201上的认证矢量元素积3的值avep(m+3)。

发送给服务器认证装置201的数据信道密钥输出13被用作认证矢量元素ave(m+4),即,使用次级认证密钥(sas)2从数据信道密钥输出13计算服务器认证装置201的认证矢量元素积3的值avep(m+4)。

使用从发送给服务器认证装置201的数据信道密钥输出13和用户认证装置的(主)认证密钥14的公钥cpuk的单向密码转换(例如散列),计算导出值15。导出值15被用作认证矢量元素ave(m+5),即,使用次级认证密钥(sas)2,从应用于数据信道密钥输出13和用户认证装置的(主)认证密钥14的公钥cpuk的单向密码转换的结果,计算服务器认证装置201上的认证矢量元素积3的值avep(m+5)。

因此,整个认证矢量积3avp在服务器认证装置201上可获得。

使用先前在用户认证装置101和服务器认证装置201之间通过非安全网络401创建的认证的信道301,将整个认证矢量积3avp从用户认证装置101传送到服务器认证装置201并在服务器认证装置201处用作输入矢量19。

将输入矢量19的每个单独元素与在服务器认证装置201上创建的相关认证矢量元素积3进行比较。在匹配的情况下,在结果矢量20的相关元素中指示肯定评估,如果未实现匹配,指示否定评估。

结果矢量20由服务器认证装置201进一步处理或由服务器认证装置201传送到其它系统以供进一步处理。

示例2

在创建副本中用于进一步消除攻击者的示例。所描述的系统在图2中示意性地示出。

本示例提供了使用认证矢量元素ave(m+6)和认证矢量元素ave(m+7)用于进一步消除攻击者的描述。所描述的系统在图2中示意性地示出。为了描述清楚起见,不描述其它认证矢量元素ave。示例1给出了其它认证矢量元素ave(i)的使用方式的例子。

首先,执行第一用户认证装置102与服务器认证装置201之间的主认证,经由非安全网络401在第一用户认证装置102与服务器认证装置201之间创建第一认证的信道301,并且第一次级认证密钥(sas)22也被创建为可供用户认证装置102和服务器认证装置201二者使用。

第一用户认证装置102产生密钥pk24。其将密钥pk24直接发送到第二用户认证装置103。

第一用户认证装置102使用单向密码转换(例如,散列)从密钥pk24导出密钥k25。第二用户认证装置103也使用非对称密码转换从密钥pk24导出密钥k25。此时,同一对密钥,即密钥pk24和密钥k25,对于用户认证装置102、103都是可用的。

第二用户认证装置103和服务器认证装置201之间也发生了主认证,经由非安全网络401在第二用户认证装置103和服务器认证装置201之间创建第二认证的信道303,以及第二次级认证密钥(sas)23也被创建为可被第二用户认证装置103和服务器认证装置201两者使用。

第一用户认证装置102使用密钥k25作为认证矢量元素ave(m+6),即,使用第一次级认证密钥(sas)22从密钥k25导出第一用户认证装置102的认证矢量元素积3的值avep(m+6)。

使用先前经由非安全网络401在用户认证装置102和服务器认证装置201之间创建的第一认证的信道301,将认证矢量积3avp从第一用户认证装置102传送到服务器认证装置201,并在服务器认证装置201处用作第一输入矢量32。第一输入矢量32被存储,直到密钥k25可用于服务器认证装置201。

第二用户认证装置103使用密钥pk24作为认证矢量元素ave(m+7),即,使用第二次级认证密钥(sas)23从密钥pk24导出第二用户认证装置103的认证矢量元素积3的值avep(m+7)。

使用先前经由非安全网络401在第二用户认证装置103和服务器认证装置201之间创建的第二认证的信道303,将认证矢量积3avp和密钥k25从第二用户认证装置103发送到201,并在服务器认证装置201处用作第二输入矢量33。第二输入矢量33被存储,直到密钥pk24可用于服务器认证装置201。

此时,服务器认证装置201可以使用密钥k25。服务器认证装置201使用密钥k25来评估认证矢量元素ave(m+6),即,使用第一次级认证密钥(sas)22从密钥k25导出第一认证矢量元素积42的值avep(m+6)。将所述值与先前记录的第一输入矢量32的值进行比较。

服务器认证装置201还使用密钥k25来在相反方向上验证认证矢量元素ave(m+6),即,使用第一次级认证密钥(sas)22从密钥k25计算第一认证矢量元素积52的值avep(m+6)。

第一用户认证装置102使用密钥k25作为认证矢量元素ave(m+6),即,使用第一次级认证密钥(sas)22从密钥k25导出第一用户认证装置102上的认证矢量元素积3的值avep(m+6)。

使用先前经由非安全网络401在第一用户认证装置102和服务器认证装置201之间创建的第一认证的信道301,将认证矢量积52avp从服务器认证装置201发送到第一用户认证装置102,并在第一用户认证装置102处用作第一用户认证装置102的输入矢量31。

在第一用户认证装置102上的认证矢量元素积3avep(m+6)与输入矢量31的相关项之间匹配的情况下,除了其它方面,证实了密钥k25的正确值对于第二用户认证装置103和服务器认证装置201可用。

因此,使用先前经由非安全网络401在第一用户认证装置102和服务器认证装置201之间创建的第一认证的信道301,将密钥pk24从第一用户认证装置102传送到服务器认证装置201。

此时,服务器认证装置201可以使用密钥pk24。服务器认证装置201使用密钥pk24来评估认证矢量元素ave(m+7),即,使用第二次级认证密钥(sas)23从密钥pk24计算第二认证矢量元素积43的值avep(m+6)。将所述值与先前记录的第二输入矢量33的值进行比较。服务器认证装置201还使用密钥pk24来在相反的方向上验证认证矢量元素ave(m+7),即,使用第二次级认证密钥(sas)23从密钥pk24导出第二认证的值矢量元素积53的值avep(m+7)。

第二用户认证装置103使用密钥pk24作为认证矢量元素ave(m+7),即,使用第二次级认证密钥(sas)23从密钥pk24计算第二用户认证装置103上的认证矢量元素积3的的值avep(m+7)。

使用先前经由非安全网络401在第二用户认证装置103和服务器认证装置201之间创建的第二认证的信道303,将认证矢量积53avp从服务器认证装置201发送到第二用户认证装置103并在第二用户认证装置103用作第二用户认证装置103的输入矢量31。

在第二用户认证装置103上的认证矢量元素积3avep(m+7)与输入矢量31的相关项之间匹配的情况下,除了其它方面,证实了密钥k24的正确值对于第一用户认证装置102和服务器认证装置201可用。

在这种情况下,攻击者出现在两个认证的信道中的一个信道上的可能性,即在第一认证的信道301或在第二认证的信道303上的可能性,被消除。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1