CN107534642A - 用于对用在客户端和服务器之间的通信中的计算难题进行建立的方法和设备 - Google Patents

用于对用在客户端和服务器之间的通信中的计算难题进行建立的方法和设备 Download PDF

Info

Publication number
CN107534642A
CN107534642A CN201580078820.5A CN201580078820A CN107534642A CN 107534642 A CN107534642 A CN 107534642A CN 201580078820 A CN201580078820 A CN 201580078820A CN 107534642 A CN107534642 A CN 107534642A
Authority
CN
China
Prior art keywords
client device
service equipment
computer program
answer
calculating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580078820.5A
Other languages
English (en)
Other versions
CN107534642B (zh
Inventor
古兰·塞兰德
埃琳娜·杜波罗瓦
弗雷德里克·林德奎斯特
马茨·内斯隆德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN107534642A publication Critical patent/CN107534642A/zh
Application granted granted Critical
Publication of CN107534642B publication Critical patent/CN107534642B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开涉及一种用于服务设备(3)的方法(20),该方法建立在客户端设备(2)和服务设备(3)之间的通信中使用的计算难题。该方法(20)包括:基于由客户端设备(2)和服务设备(3)共享的密钥并基于计算难题(p)的答案(s’,s”),在服务设备(3)中建立(21)计算难题(p)。提供了服务设备中的另一方法(30)、用于客户端设备(2)的方法(60、70)、服务设备(3)、客户端设备(2)、计算机程序和计算机程序产品。

Description

用于对用在客户端和服务器之间的通信中的计算难题进行建 立的方法和设备
技术领域
本文公开的技术总体涉及数据通信领域,尤其涉及用于建立和求解计算难题的方法和装置。
背景技术
当提供各种形式的网络服务(例如网络访问或对应用程序的访问等)时,在有些情况下服务实体(例如服务器)由于大约同时接收过多服务请求而变得过载。这种过载还可能由所谓的拒绝服务(DoS)攻击造成,在拒绝服务攻击中,恶意的客户端故意用大量请求淹没服务。在初始请求时,在已经证实安全性之前(即对客户端进行鉴权之前),尤其难以针对过载攻击提供保护。
有时使用称为“难题”的机制来避免过载情况。难题的目的是在客户端产生小的计算负担,由此为客户端请求服务的服务器创造一段空闲时间。客户端在被允许继续之前必须给出难题的答案。以计算上非对称的模式创建难题:服务器容易创建新难题,但客户端要求解它们存在难度。
图1示出了用于避免攻击的信令,这种攻击例如是DoS或连接耗尽攻击,目的在于耗尽服务器S的计算资源和存储器资源以导致过载。实现难题的一种主要方式是通过一种加密哈希函数F。客户端C向服务器S发送访问请求(箭头A1)。作为响应,服务器S选择值x并向客户端C发送难题y=F(x)(箭头A2),要求客户端C找到x。在其他情况下,值x和y可由服务器S预先确定。如果x和y是随机或伪随机的,并且在大小上分别为m和n比特,则这需要客户端C进行数量级为min(2m,2n)次的哈希函数计算,而仅需要服务器S进行一次哈希函数计算来进行验证(箭头A4)。标准哈希函数具有n和m=100比特的数量级的输入/输出,这将不可能被求解。因此,通常在输入和/或输出中截断哈希值。例如,难题或任务可以是找到满足F(x)=p||00...0的x,其中p允许是“任何值”,后跟n个零。现有技术安排因此允许通过选择参数m和/或n来调整难题的难度,难题的难度因此仅由该参数选择来确定。
在一些情况下,难题的发送和接收/验证仍然会造成不必要的开销,即在带宽和计算处理方面浪费资源,因此是低效的,需要在防止和控制过载情况方面做出改进。
发明内容
本公开的目的是解决或者至少缓解以上提到的问题中的至少一个。
根据一个方面,该目的由一种用于服务设备的方法实现,该方法建立在客户端设备和服务设备之间的通信中使用的计算难题。该方法包括:基于由客户端设备和服务设备共享的密钥并基于计算难题p的答案,在服务设备中建立计算难题。
该方法的优点是,通过使用对服务器和至少某些客户端可用的密钥来建立难题,改进了针对过载情况的保护。通过向例如受信任客户端或优先客户端提供密钥或部分密钥,高效地允许这些客户端在通信中继续推进。与此同时,通过使答案对于不具有密钥的客户端(例如恶意的客户端)而言非常难猜出或甚至不可能猜出,从而完全阻止这些客户端在通信中继续推进。另一个优点是在早期阻止这些恶意的客户端,从而使对服务设备造成的负担最小化。
根据一个方面,该目的由一种用于服务设备的计算机程序实现,该计算机程序建立在客户端设备和服务设备之间的通信中使用的计算难题。该计算机程序包括计算机程序代码,该计算机程序代码当在服务设备的至少一个处理器上执行时,使服务设备执行上述方法。
根据一个方面,该目的由一种计算机程序产品实现,该计算机程序产品包括上述的计算机程序和其上存储有该计算机程序的计算机可读装置。
根据一个方面,该目的由一种用于建立在与客户端设备之间的通信中使用的计算难题的服务设备实现。该服务设备被配置为:基于客户端设备和服务设备共享的密钥并基于计算难题的答案,建立计算难题。
根据一个方面,该目的由一种用于客户端设备的方法实现,该方法求解在客户端设备和服务设备之间的通信中使用的计算难题。该方法包括:从服务设备接收定义计算难题的信息的至少一部分;以及在客户端设备中通过使用由客户端设备和服务设备共享的密钥来求解计算难题。
该方法的优点是,合法的客户端设备能够快速地取得访问,但阻止不具有密钥的客户端取得访问。
根据一个方面,该目的由一种用于客户端设备的计算机程序实现,该计算机程序求解在客户端设备和服务设备之间的通信中使用的计算难题。该计算机程序包括计算机程序代码,该计算机程序代码当在客户端设备的至少一个处理器上执行时,使客户端设备执行上述方法。
根据一个方面,该目的由一种计算机程序产品实现,该计算机程序产品包括上述的计算机程序和其上存储有该计算机程序的计算机可读装置。
根据一个方面,该目的由一种客户端设备实现,该客户端设备求解在客户端设备和服务设备之间的通信中使用的计算难题。该客户端设备被配置为:从服务设备接收定义计算难题的信息的至少一部分;以及在客户端设备中通过使用由客户端设备和服务设备共享的密钥来求解计算难题。
根据一个方面,该目的由一种用于服务设备的方法实现,该方法建立在客户端设备和服务设备之间的通信中使用的计算难题。该方法包括:基于在计算难题的答案的第二部分中编码的辅助信息并基于计算难题的答案,建立计算难题。
根据一个方面,该目的由一种用于服务设备的计算机程序实现,该计算机程序建立在客户端设备和服务设备之间的通信中使用的计算难题。该计算机程序包括计算机程序代码,该计算机程序代码当在服务设备的至少一个处理器上执行时,使服务设备执行上述方法。
根据一个方面,该目的由一种计算机程序产品实现,该计算机程序产品包括上述的计算机程序和其上存储有该计算机程序的计算机可读装置。
根据一个方面,该目的由一种用于服务设备的方法实现,该方法建立在客户端设备和服务设备之间的通信中使用的计算难题。该方法包括:基于在计算难题的答案的第二部分中编码的辅助信息并基于计算难题的答案,建立计算难题。
该方法通过将辅助信息编码入答案中,从而以高效的方式针对过载情况提供保护。提高的效率比现有技术程度更高地利用由难题的使用所造成的增加的开销。该方法的另一优点是,当辅助信息包括关于接下来要使用的资源的信息时,恶意的客户端设备没有动力猜出答案,因为与预期答案不同的任何难题答案都不能传递允许客户端设备继续推进的辅助信息。
根据一个方面,该目的由一种用于客户端设备的方法实现,该方法求解在客户端设备和服务设备之间的通信中使用的计算难题。该方法包括:从服务设备接收定义计算难题的信息的至少一部分;以及作为对计算难题进行求解的一部分,对在计算难题的答案的第二部分中编码的辅助信息进行解码。
根据一个方面,该目的由一种用于客户端设备的计算机程序实现,该计算机程序求解在客户端设备和服务设备之间的通信中使用的计算难题。该计算机程序包括计算机程序代码,该计算机程序代码当在客户端设备的至少一个处理器上执行时,使客户端设备执行上述方法。
根据一个方面,该目的由一种计算机程序产品实现,该计算机程序产品包括上述的计算机程序和其上存储有该计算机程序的计算机可读装置。
根据一个方面,该目的由一种客户端设备实现,该客户端设备求解在客户端设备和服务设备之间的通信中使用的计算难题。该客户端设备被配置为:从服务设备接收定义计算难题的信息的至少一部分;以及作为对计算难题进行求解的一部分,对在计算难题的答案的第二部分中编码的辅助信息进行解码。
通过阅读以下描述和附图,本公开的更多特征和优点将变得清楚。
附图说明
图1示出了根据现有技术的用于避免服务器过载的信令。
图2示意性地示出了可以实现本公开实施例的环境。
图3例示了根据本教导的难题和答案。
图4示出了根据本教导的服务设备中的方法实施例的步骤的流程图。
图5示意性地示出了用于实现本教导的实施例的服务设备和装置。
图6示出了根据本教导的客户端设备中的方法实施例的步骤的流程图。
图7示意性地示出了用于实现本教导的实施例的客户端设备和装置。
图8示出了根据本教导的服务设备中的方法实施例的步骤的流程图。
图9示出了根据本教导的客户端设备中的方法实施例的步骤的流程图。
具体实施方式
在以下说明中,出于说明而非限制的目的,为了提供透彻的理解而阐述例如具体的体系结构、接口、技术等特定细节。在其他情况下,为了不因为不必要的细节而使说明变得不清楚,省略对周知的设备、电路和方法的详细描述。在整个说明书中,相同的参考符号指相同或类似的部件。
图2示意性地示出了可以实现本公开实施例的环境。通信系统1包括可以使用接入网络4通信的多个客户端设备2和服务设备3(以下也简称为服务器)。接入网络4可以包括例如无线电接入网络(RAN),在这种情况下,客户端4可以包括例如移动终端或用户设备(UE),服务设备可以包括无线电接入节点(例如基站或接入点)。作为另一示例,接入网络4可以包括(有线)计算机网络,分组数据网络(PDN),在这种情况下,客户端设备2可以包括个人计算机、膝上型计算机等,服务设备3可以包括如下服务器,即,该服务器包括例如应用程序并提供Web服务或其他服务。请注意,接入网络4可以包括有线分组数据网络(例如因特网),也可以包括RAN(例如4G网络)。
本教导的发明人们已经准确地指出计算难题(本文中也称为难题)的至少两个方面:
1.在许多情况下,使难题对于特定种类的客户端设备(例如优先客户端)而言更容易求解是有利的。
2.为了利用由求解和验证难题相关的信令造成的额外开销,为难题答案赋予“语义含义”是有利的。这与已知的基于难题的算法不同,后者仅将难题答案用于证明已经取得了正确的答案,而不将其用于其他任何目的。换句话说,在现有技术中,难题答案在其被验证之后被丢弃,而不用于任何其他目的。
首先考虑第1点:假设有种类A和B这两类客户端,其中,种类A的客户端设备(以下也称为客户端)应当具有比种类B的客户端更容易的求解难题的任务,例如使用2nA次操作进行求解,而种类B中的客户端在求解难题时应当具有2nB次操作的复杂度,其中nA<nB。在基于哈希的难题的现有技术中,通过简单地将n选择为等于nA或nB,能够创建具有这样的相应难度的难题。然而,回忆一下,通常的情况是客户端尚未被鉴权,因此,来自种类B的客户端可能仅仅宣称属于种类A就被提供“过于简单”的难题。该情况稍后会被检测到,但是会为时已晚,因为已经不能实现减轻服务器负担的期望目标。
下面考虑第二点:假设例如应当在难题答案x中对64比特参数进行编码。根据本教导的示例,该参数用于在初始接入请求之后的服务或通信中使用,以便利用额外的开销。这意味着x在大小上至少为64比特,即,m至少为64比特,这很可能使难题无法在合理时间内被求解。因而,一个困难是将辅助信息编码入答案x中还会对难题的难度产生影响。在不同方面,本教导提供了与编码的辅助比特数无关地控制难题难度的手段。
至少鉴于上述方面,本教导提供了针对上述问题的有价值的解决方案,对计算难题领域作出了改进。
简言之,本教导提出使用可调难题,假设合法的客户端设备具有密钥。也就是说,不是使用形式为y=F(x)(其中,x是答案)的已知难题,而是提出使用y=F(key||x’,x”)(其中,x=(x’,x”)是难题的答案,x”对辅助信息进行编码)形式的难题。求解该难题的难度取决于x’中的比特数,但与x”中的比特数无关。由此,通过例如设置x’的比特数,该难题是可调的。对于不知道密钥的客户端而言,难度至少是min(2n,2k),其中k是密钥中的比特数。
密钥可以仅由属于特定种类(例如优先种类)的客户端设备已知。或者,密钥的一部分可以固定的、已知的或者由服务设备提供的,然后可以用来为优先种类以外的设备创建难题。对于与优先设备和非优先设备相关联的难题而言,x’的比特长度可以是不同的。在优选实施例中,函数F基于诸如高级加密标准(AES)这样的分组密码(block cipher)。
下面,将详细地描述根据本教导的计算难题的各个方面。
在下文中,难题被表示为长度n的比特串p,难题的答案被表示为长度m的比特串s,满足F(s)=p,其中F是具有特定属性的函数。一些基本要求可以是:
·服务设备3(或通信系统1中的其他实体)应当容易生成难题p,或者对难题p进行预计算是可行的。这是因为,难题的创建不应对服务设备3产生不必要的负担。
·函数F应能容易地计算但难以逆转,F例如可以是单向函数。
作为一个简单的示例,F是加密哈希函数。于是,p=F(s)是答案为s的难题。为了能够求解难题,s的长度应当被限制为允许在合理时间内进行穷尽搜索。为了管理输入和输出中的比特数与难题的期望“难度”之间的关系,输入和输出可以如现有技术中那样用比特串a和b进行填充:
a||p=F(b||s)
其中,“||”表示级联,即首尾相连地联接比特串的操作。
a和b的比特数可以是固定的,例如是在标准中定义的常量(例如,a=000...0),或者由标准指定为具有某个值。
请注意,函数F通常不是一对一函数,在一对一函数中,一个难题仅具有一个答案。因此,多个(b,s)值可能给出相同的(a,p)输出。在根据现有技术的难题中,这是可以接受的,因为答案在被验证之后不会被使用,因而任何答案都被认为是允许的。根据本教导的方面,这是不期望的,并且在各种实施例中,在答案中对辅助信息进行编码,该信息具有“语义含义”。找到错误的答案(即,不是预期的答案)意味着客户端设备2获得错误的语义信息。通过适当地设计难题,找到错误答案的可能性可以得到控制(如后面所描述的)。辅助信息例如可以包括使客户端设备能够继续进行通信的信息。也就是说,服务设备3向客户端设备2发送难题,客户端设备2求解该难题并由此对辅助信息进行解码,辅助信息可以包括例如关于接下来要使用的通信资源的信息、或者要使用的某些参数。这样,求解了难题的客户端设备2可以继续推进操作,而有效地阻止了未能求解难题的客户端设备(例如使用DoS攻击的设备)继续推进操作。
在下文中,对可调难题函数进行描述。考虑安全对称密钥加密算法(例如AES),该算法取长度n的密钥和长度m的消息,并将它们转换为长度m的密文。
AES(密钥,消息)=密文
对于AES,指定k=128、192和256比特的密钥大小。“AES密钥”可以不同于与难题p相关联的密钥,因此在下文中在需要避免混淆时使用“AES密钥”和“难题密钥”。给定AES密钥时,AES的逆函数易于计算,这是明确定义(well-defined)的解密算法。然而,请注意,作为难题密钥的函数来考虑,上述函数不是一对一函数,因此表现得类似哈希函数。也就是说,对于给定的M,FM(x)=AES(x,M)可以视为哈希函数。因此,为了创建难题p,不能泄露整个AES密钥,因为知道AES密钥的那些客户端几乎根本不需要执行任何计算,仅执行简单的AES计算即可。另一方面,为了使难题p能够在合理时间内被求解,整个AES密钥也不能完全未知。为了将有效的难题密钥大小减少为t比特(t<k),AES密钥可以被定义为具有例如k-t个起始零,剩余的t比特由s’表示(于是,这是前面提到的用b=000...0来填充的一个示例)。一个可能的难题函数是
F(s’)=AES(000...0s’,000...0)=a||p
也就是说,满足使用AES密钥000...0s’将a||p解密为000...0的任意t比特的s’都是答案。如前面所讨论的,F(s’)可以视为(非一对一的)哈希函数,对于同一难题p可能有许多答案。请注意,难题p容易高效地生成,仅仅使用所选的AES密钥000...0s’对全零执行加密即可。
有很多方法可以应对多个答案。例如,如果容易生成例如字典顺序最低的答案s’,则该字典顺序最低的答案s’可以被定义为标准答案(唯一答案),由此避免具有多个答案的潜在问题。在其他情况下,可以使用其他顺序(例如字典顺序最高的答案)定义标准答案。例如,如果难题基于模运算函数(模p),则标准答案可以被定义为具有特定属性,具体可以为数论属性,例如,属于一个区间或者是二次剩余……等等。
然而,在尝试定义标准答案时会有一些困难。例如,当考虑“字典顺序最低的答案”时,对于任何答案s1,有可能存在更小的答案s2<s1,找出答案的唯一方法是穷尽搜索,这会给生成难题的一方带来负担,违背了避免额外负担的目标。因此,在本教导的各个方面,并不要求难题具有唯一答案,而是使具有多答案的可能性较低(如后面所描述)。
在分析多答案的可能性之前,再进行一些概括。为了允许辅助信息的存在,在解密值中应当留有某种自由度,以便能够对该“隐藏”信息进行编码。通过考虑以下更为一般的难题等式,可以实现这一点:
F(s’,s”)=AES(000...0s’,000...0s”)=p (*)
其中,难题p为n比特,s’为t比特,s”为u比特,在s”的前面有m-u个前导零。该难题p的答案是满足使用所选AES密钥000...0s’将p解密为000...0s”的任意t比特的s’和u比特的s”。难题p的答案是v:=t+u比特的答案s:=s’||s”,该答案由服务设备3(或通信系统1中的其他实体)选择,以便能将相关的辅助信息进行编码并在然后插入到等式(*)的AES中以生成难题p。图3例示了难题p(图的最上部)和答案s(图的最下部)。
请注意,如果需要且根据需要,可以给出辅助信息,作为难题生成的输入。辅助信息可以由服务设备选择,而不是从难题“反向”计算出,也就是说,辅助信息可以按照任意期望方式被选择。作为一个具体的示例:假设难题答案应当对一个统一资源定位符(URL)进行编码,客户端应当将后续的请求指向该URL,以便对某个内容(例如电影或音乐文件)进行流媒体传输。例如,URL=“www.example.com”。为此,服务设备可以例如将该URL的合适表示选择为构成辅助信息的二进制串s”,例如,s”可以简单地是该URL的ASCII字符序列。接着,服务设备附加合适的b”。如前所述,b”可以是固定的二进制模式(例如“00...0”),二进制串b”||s”将作为用于创建难题的两个参数之一使用。接着,构建定义难题的第二输入参数,表示为b’||s’。可以依赖于密钥建立该参数。取决于客户端设备的种类,服务设备可以将b’||s’选择为仅某个设备已知的密钥,或者服务设备可以将b’选择为固定的或公开已知的串b’=00...0(具有合适数量的零以控制难题的难度),然后可以随机地对s’赋值。在任何一种情况下,最终的难题都由y=F(b’||s’,b”||s”)(或y中的部分比特,见下文)定义,其中F可以基于AES。请注意,由于辅助信息s”用作难题创建的输入,所以不会对服务设备创建对应的难题带来问题。如果服务设备首先选择了y,然后试图构建对期望的辅助信息进行编码的输入参数,则会更成问题。
作为另一示例,假设辅助信息应当对密码进行编码。通过将该密码编码为二进制串s”并遵循上述相同的过程,可以实现这一点。
更一般地,考虑以下难题:
AES(b’||s’,b”||s”)=a||p (**)
其中a、b’、b”是已知的比特串,给定难题p,且s=s’||s”是答案。任何比特串都有可能是空的(但所有比特串不同时为空)。
考虑等式(**),难题函数的密钥是b’的子集(或整个b’),该密钥是秘密的,可以仅由特殊种类的客户端设备2和服务设备3(以及通信系统1)知道。请注意,当“AES密钥”对应于整个第一参数b’||s’时,“难题密钥”由b’(或其子集)决定。还请注意,如果s’是短的串(即,使得b’几乎是整个AES密钥)或甚至为空,则计算s”需要非常少的计算量。如果可调难题p被用于对拥有难题密钥的客户端设备2赋予优先权,则可以无需要求这些客户端设备2付出计算量。在这些情况下,对于不通过试错法猜出AES密钥和难题密钥的任何人而言,在计算上都是不可行的,因此其他客户端设备将被有效地降低优先级。
现在,回到答案的唯一性这一问题,假设AES(或任何哈希函数)表现随机,则做出以下统计性/启发性论断。不同答案s’的数量为2t,任意值p(或者在更一般的设置(**)中是a||p)在随机密钥下解密为任意其他值s的概率可以假设为1/2m(或1/2n;请注意,对于诸如AES这样的加密函数而言,全部a||p和b”||s”的大小必须相等,即m=n,因此1/2m=1/2n)。
因此,对于任意固定的x,冲突数量的期望值(即使得AES(b’||s1’,x)=AES(b’||s2’,x)的对(s1’,s2’)的期望数量约为:
E(#collision-pairs)≈22t-m
如果还考虑辅助比特s”,则在上述x的选择中获得u比特的更多的自由度。回忆一下,v=t+u表示答案s=s’+s”中的比特数,冲突的期望数变为大约:
E(#collision-pairs)≈22v-m
为了避免冲突,该数值应当远远小于1,最好可以忽略不计,例如<2-40。可以由此解出v,得到:
v=(m-40)/2≈44对于m=128(对AES应用n=m=128)。
这因此也是客户端设备找到错误答案并由此获得错误辅助信息的概率的界限。
然而,应当验证,难题没有变得“过于简单”,即,仍然可以使u足够大:例如,t≈16比特会得到0<u<28,该范围是在此情况下辅助信息中的比特数的取值范围。
还请注意,给定期望冲突概率ε,可以推出参数m的下限,m>log2-1)。
现在已经描述了用于优先设备的特殊可调难题的创建,且还描述了在不增加求解难题的难度的情况下在难题答案中对附加(有用)信息进行编码。
这两个方面可以单独或组合提供。在很多用例中,此功能是有价值的。在任何系统中,如果系统负担重,则会愿意给予优先用户访问权而不首先对该用户进行识别(因为识别本身会增加负担)。
使用将附加信息(辅助信息)编码到答案中的该第二特性的示例是:难题的答案可以是某个附加安全信息或其他信息。例如,难题的答案可以是客户端用作附加鉴权要素的一次性密码。作为另一示例,答案可以是随机数(Nonce),合法客户端可以从该Nonce推导出在某个安全协议中使用的密钥。或者,答案可以包含与某个请求相关服务有关的信息,例如客户端可能使用的统一资源定位符(URI)、完全合格域名(FQDN)或因特网协议(IP)地址。辅助信息还可以描述要用于后续通信的网络资源/通信资源。
在难题中使用了在客户端设备和服务设备之间共享的密钥,使用这一难题使得可推迟对拥有密钥的客户端设备的响应(通过调整难度),还使得可控制来自不具有密钥的客户端设备的访问(同样通过调整难度,特别是降低难度)。
难题的答案可以用作“会话密钥”。这允许请求“共享密钥”持有者和非密钥持有者的访问的共存。共享密钥持有者可通过使用“共享密钥”解密“会话密钥”来容易地求解难题,而非密钥持有者将需要更多时间。然而,这两个种类(分别是共享密钥持有者和非密钥持有者)都会获得“会话密钥”,该“会话密钥”可以用于取得对通信系统1的访问和/或对服务的访问。
已经描述的本教导的功能和实施例可以以不同方式进行组合,其示例在下面首先参考图4给出。图4示出了根据本教导的服务设备中的方法实施例步骤的流程图。
提供了一种用于服务设备3的方法20,该方法建立在客户端设备2和服务设备3之间的通信中使用的计算难题。方法20包括:在服务设备3中,基于由客户端设备2和服务设备3共享的密钥并基于计算难题p的答案s’,s”,建立21计算难题p。
因此,计算难题p基于密钥并基于难题p的答案s,例如,p=F(key,s),例如,p=F(key||s)。答案s可以包括第一部分s’和第二部分s”,即s=(s’,s”)。合法的客户端设备2具有密钥,因此具有答案s的一部分,且与不具有密钥的客户端设备相比可更容易地求解难题。
方法20提供许多改进以防止过载和连接耗尽情况。难题基于由客户端设备2和服务设备3共享的密钥,这一特征提供了如下优点,即,防止不具有密钥的客户端设备在可行的时间量内求解难题。由此,可以创建未授权设备(例如不具有密钥的客户端设备)几乎不可解的难题。与现有技术相比,服务设备由此不会被验证难题的答案所占用。
在一些实施例中,可以向不同的客户端设备发送不同的难题。第一和第二种类的客户端设备可以发送不同类型的访问请求,服务设备可以基于接收到的访问请求的类型来选择难题。例如,使用例如第一前导码的客户端设备可以属于优先种类的客户端设备并且可以接收第一类型难题,而属于非优先种类客户端设备的其他客户端设备使用第二前导码并且接收第二类型难题。服务设备3可以在接收到第一前导码时建立第一类型难题,与第二类型难题相比,第一类型难题在答案的第一部分s’中具有较少的比特。由此,可以根据客户端设备来调整难题,即,调整为使得不同的客户端设备在求解难题时具有不同级别的难度。
在实施例中,建立21还包括由服务设备3在答案s’,s”的第二部分s”中对辅助信息进行编码22。在图4中,该步骤22由用短划线绘制的方框示出,由此表示该步骤是可选的。该实施例的优点是,通过改进且更高效的方式来利用难题的使用所带来的开销。辅助信息例如可以向客户端设备提供关于如何在通信中进一步推进的信息,例如,通过指向要使用的某个资源,或者通过提供接下来的消息传输所需的参数。“辅助信息”这一表示可以解释为除答案之外的信息。也就是说,答案的第一部分s’不具有语义含义,仅仅是答案的一部分,而答案的第二部分s”还具有语义含义,例如揭示为了与服务设备3进行进一步的通信接下来要使用的资源。并非是预期答案的答案不能传递第二信息,防止客户端设备与服务设备3进行进一步通信。如前所述,通过辅助信息向难题答案赋予的“语义含义”与已知的基于难题的机制不同,后者仅将难题答案用于证明已经获得了正确的答案。
由此,在各种实施例中,辅助信息包括以下各项中的一项或多项:与客户端设备2和服务设备3之间的后续消息要使用的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够从其推导出安全密钥的随机数(Nonce)。在一些实施例中,安全密钥可能仅能由属于特定设备种类(例如优先设备或受信任设备)的客户端设备2推导出。
在实施例中,方法20包括:通过相应地设置以下至少一项中的比特数来对求解计算难题的难度级别进行适配:计算难题p、答案的第一部分s’、以及答案的第二部分s”。如同答案的任意部分那样,计算难题p的比特数可以例如被改变。
在实施例中,方法20包括:通过相应地设置密钥的比特数来对求解计算难题的难度级别进行适配。
在实施例中,所述适配包括:当证实在服务设备3中已经达到负载阈值时增加难度级别。该实施例提供了通过根据服务设备3的负载来对难度级别进行适配,从而防止过载的方法。如果负载逼近指示(例如处理能力的)即将到来的过载的阈值,则可以增加难度(例如通过增加答案的比特数),而当服务设备3的负载较轻时可以降低难度,以便客户端设备2更容易地求解难题。
在各种实施例中,密钥的至少一部分预先配置在客户端设备2中或者已经在先前的通信中提供给客户端设备2。服务设备3可以被安排为用密钥或密钥的一部分对特定的客户端设备进行配置,或者可以在客户端设备2和服务设备3之间的早先的通信交换中已经提供密钥,例如,在之前的由加密保护的通信过程中进行提供,从而使密钥不会被非授权实体取得。
图5示意性地示出了用于实现本教导的实施例的服务设备和装置。例如与图4相关地描述的方法20的各种实施例可以在例如有线网络中,在例如分组数据网络(例如因特网)的服务器中实现,客户端设备2请求对该服务器的访问。方法20的实施例还可以在诸如eNB的无线电接入节点中实现。
服务设备3包括处理器50,处理器50包括能够执行存储在存储器51中的软件指令的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)、专用集成电路等中的一个或多个的任意组合,存储器51由此可以是计算机程序产品51。处理器50可以被配置为执行例如关于图4描述的方法的各种实施例中的任何一个。
存储器51可以是读写存储器(RAM)和只读存储器(ROM)、闪存存储器、磁带、紧凑式光盘(CD)-ROM、数字多功能盘(DVD)、蓝光光盘等的任意组合。存储器61还包括永久性存储单元,例如可以是磁存储器、光学存储器、固态存储器、甚至远程安装存储器中的任意一个或组合。
服务设备3还可以包括用于执行方法的各步骤的处理电路53,该处理电路53包括例如计算机电路,诸如一个或多个基于微处理器的电路、基于DSP的电路、基于FPGA的电路、基于ASIC的电路、或者其他数字处理电路。这种电路可以包括固定处理电路或编程处理电路、或者固定处理电路及编程处理电路这二者的混合。
服务设备3还可以包括:输入/输出设备54(在图5中由I/O表示),用于与其他实体进行通信。这种输入/输出设备54例如可以包括与其他服务设备和网络节点之间的通信接口、天线系统和/或有线连接。
本教导提供了用于服务设备3的计算机程序52。计算机程序52包括计算机程序代码,该计算机程序代码当在服务设备3的至少一个处理器50上执行时,使服务设备3执行根据以上描述的任何实施例的方法20。
本公开还涵盖计算机程序产品51,其包括:用于执行所描述的方法的实施例的计算机程序52;以及其上存储有计算机程序52的计算机可读装置。
提供一种服务设备3,用于建立在与客户端设备2的通信中使用的计算难题。该服务设备3被配置为:基于由客户端设备2和服务设备3共享的密钥并基于计算难题p的答案s’,s”,建立计算难题p。计算难题p可以例如由创建该难题p的服务设备3建立,或者由从例如其他设备接收该难题p的服务设备3建立,或者由向创建该难题p的设备请求该难题p的服务设备3建立。
服务设备3可以被配置为例如通过包括处理器50和存储器51来执行上述步骤,存储器51包含可由处理器50执行的指令,由此,服务设备3可进行操作以执行这些步骤。
在实施例中,服务设备3被配置为通过还在答案s’,s”的第二部分s”中对辅助信息进行编码来建立计算难题。
在各种实施例中,辅助信息包括以下各项中的一项或多项:与客户端设备2和服务设备3之间的后续消息要使用的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够从其推导出安全密钥的随机数(Nonce)。
在实施例中,服务设备3被配置为:通过相应地设置计算难题p、答案的第一部分s’、以及答案的第二部分s”至少一项中的比特数来对求解计算难题的难度级别进行适配。
在实施例中,服务设备3被配置为:通过相应地设置密钥的比特数来对求解计算难题的难度级别进行适配。
在实施例中,服务设备3被配置为:通过当证实在服务设备3中已经达到负载阈值时增加难度级别来进行适配。
在实施例中,服务设备3被配置为将密钥的至少一部分提供给客户端设备2。可以在例如发送给客户端设备2的配置消息中提供密钥,或者可以在客户端设备2和服务设备3之间的先前的通信中提供密钥。在一些实施例中,密钥至少部分可以是公开已知的,例如由服务设备3进行广播。
计算机程序产品或存储器包括可由处理器50执行的指令。这种指令可以包括在计算机程序中,或者包括在一个或多个软件模块或功能模块中。
在一个方面中,提供可以使用软件指令和/或硬件来实现的装置(例如功能模块),该软件指令例如是在处理器中执行的计算机程序,该硬件例如是专用集成电路、现场可编程门阵列、分立逻辑元件等或它们的任意组合。
特别地,提供一种服务设备,用于建立在与客户端设备的通信中使用的计算难题。该服务设备包括第一装置,该第一装置用于:基于由客户端设备和服务设备共享的密钥并基于计算难题的答案,建立计算难题。该第一装置可以例如包括处理电路,该处理电路被适配为使用存储在存储器中的程序代码,基于密钥并基于计算难题的答案建立计算难题。该第一装置可以例如包括参考图5描述的处理电路53。
该服务设备还可以包括附加装置,用于执行已经描述的实施例的任何功能和步骤。例如,该服务设备可以包括用于通过还在答案的第二部分中对辅助信息进行编码来建立计算难题的装置。这种装置可以例如包括处理电路,该处理电路被适配为使用存储在存储器中的程序代码,通过对辅助信息进行编码来进行建立。
已经描述的本教导的功能和实施例可以以不同方式进行组合,其示例在下面接着参考图6给出。图6示出了根据本教导的客户端设备中的方法实施例的步骤的流程图。
一种用于服务设备2的方法60,该方法求解在客户端设备2和服务设备3之间的通信中使用的计算难题。该方法60包括:
-从服务设备3接收61定义计算难题的信息的至少一部分;以及
-在客户端设备2中通过使用由客户端设备2和服务设备3共享的密钥来求解62计算难题。
如果客户端设备2具有密钥,则当它已经接收到定义计算难题的信息或者该信息的至少部分时,它能够求解计算难题。不具有密钥的客户端设备2通常不能求解计算难题,这阻止它们增加服务设备3的负载。
在实施例中,求解62还包括对在答案s’,s”的第二部分s”中编码的辅助信息进行解码63。
在各种实施例中,辅助信息包括以下各项中的一项或多项:关于后续消息中要使用的资源的信息、安全信息、在鉴权过程中使用的密码、以及能够由第一种类的客户端设备2从其推导出安全密钥的随机数(Nonce),并且方法60包括使用辅助信息以在通信中继续推进。
图7示意性地示出了用于实现本教导的实施例的客户端设备和装置。例如与图6相关地描述的方法60的各种实施例可以在例如有线网络中,在例如分组数据网络(例如因特网)的服务器中实现,客户端设备2请求对该服务器的访问。方法60的实施例还可以在诸如eNB的无线电访问节点中实现。
客户端设备2包括:处理器90,其包括能够执行存储在存储器81中的软件指令的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)、专用集成电路等中的一个或多个的任意组合,存储器81由此可以是计算机程序产品81。处理器90可以被配置为执行例如关于图6描述的方法的各种实施例中的任何一个。
存储器81可以是读写存储器(RAM)和只读存储器(ROM)、闪存存储器、磁带、紧凑式光盘(CD)-ROM、数字多功能盘(DVD)、蓝光光盘等的任意组合。存储器61还包括永久性存储单元,例如可以是磁存储器、光学存储器、固态存储器、甚至远程安装存储器中的任意一个或组合。
客户端设备3还可以包括用于执行方法的各步骤的处理电路93,该处理电路93包括例如计算机电路,诸如一个或多个基于微处理器的电路、基于DSP的电路、基于FPGA的电路、基于ASIC的电路、或者其他数字处理电路。这种电路可以包括固定处理电路或编程处理电路、或者固定处理电路及编程处理电路这二者的混合。
客户端设备2还可以包括:输入/输出设备94(在图7中由I/O表示),用于与其他实体进行通信。这种输入/输出设备94例如可以包括与其他服务设备和网络节点之间的通信接口、天线系统和/或有线连接。
本教导提供了用于客户端设备2的计算机程序82。计算机程序82包括计算机程序代码,该计算机程序代码当在客户端设备2的至少一个处理器90上执行时,使客户端设备2执行根据以上描述的任何实施例的方法60。
本公开还涵盖计算机程序产品51,其包括:用于执行所描述的方法的实施例的计算机程序82;以及其上存储有计算机程序82的计算机可读装置。
提供一种客户端设备2,用于求解在客户端设备2和服务设备3之间的通信中使用的计算难题。客户端设备2被配置为:
-从服务设备3接收定义计算难题的信息的至少一部分;以及
-在客户端设备2中通过使用由客户端设备2和服务设备3共享的密钥来求解计算难题。
客户端设备2可以被配置为例如通过包括处理器90和存储器81来执行上述步骤,存储器81包含可由处理器90执行的指令,由此,客户端设备2可进行操作以执行这些步骤。
在实施例中,客户端设备2被配置为通过还对在答案s’,s”的第二部分s”中编码的辅助信息进行解码来求解计算难题。
在各种实施例中,辅助信息包括以下各项中的一项或多项:关于后续消息中要使用的资源的信息、安全信息、在鉴权过程中使用的密码、以及能够由第一种类的客户端设备2从其推导出安全密钥的随机数(Nonce),其中方法60包括使用辅助信息以在通信中继续推进。
计算机程序产品或存储器包括可由处理器90执行的指令。这种指令可以包括在计算机程序中,或者包括在一个或多个软件模块或功能模块中。
在一个方面中,提供可以使用软件指令和/或硬件来实现的装置(例如功能模块),该软件指令例如是在处理器中执行的计算机程序,该硬件例如是专用集成电路、现场可编程门阵列、离散逻辑部件等或它们的任意组合。
特别地,提供一种客户端设备,用于求解在客户端设备和服务设备之间的通信中使用的计算难题。客户端设备包括第一装置,该第一装置用于从服务设备接收定义计算难题的信息的至少一部分。该第一装置可以例如包括接收电路、天线设备、接口和/或用于数据接收的处理电路。该第一装置可以例如包括参考图7描述的输入/输出设备94。
客户端设备包括第二装置,该第二装置用于通过使用由客户端设备和服务设备共享的密钥来求解计算难题。该第二装置可以例如包括处理电路,该处理电路被适配为使用存储器的程序代码来求解难题。
该客户端设备还可以包括附加装置,用于执行已经描述的实施例的任何功能和步骤。
图8示出了根据本教导的服务设备中的方法实施例步骤的流程图。
提供了一种用于服务设备3的方法30,该方法建立在客户端设备2和服务设备3之间的通信中使用的计算难题。方法30包括:基于在计算难题的答案s’,s”的第二部分s”中编码的辅助信息并基于计算难题的答案s’,s”,建立31计算难题。建立31可以包括服务设备3例如响应于接收到访问请求而创建难题,或者,建立可以包括服务设备3从其他节点或设备接收或请求计算难题。
在答案s’,s”的一部分中对辅助信息进行编码的方法30减轻了由发送难题而带来的开销这一缺点。特别地,增加的信息可以用于例如使客户端设备2能够执行通信的下一个步骤,从而将该开销不仅用于发送难题,还用于其他用途。辅助信息(增加的信息)可以例如包括通过通知要使用的通信资源或者通过通知在后续信令中需要的特定参数来允许发送后续消息的信息。
在实施例中,建立31还基于由客户端设备2和服务设备3共享的密钥。
在各种实施例中,辅助信息包括以下各项中的一项或多项:关于后续消息中要使用的资源的信息、安全信息、在鉴权过程中使用的密码、以及能够从其推导出安全密钥的随机数(Nonce)。
在实施例中,方法30包括:通过相应地设置计算难题p、答案的第一部分s’、以及答案的第二部分s”至少一项中的比特数来对求解计算难题的难度级别进行适配。
在实施例中,方法30包括:通过相应地设置密钥的比特数来对求解计算难题的难度级别进行适配。
在上述实施例的变形中,所述适配包括:当证实在服务设备3中已经达到负载阈值时增加难度级别。
在实施例中,密钥的至少一部分预先配置在客户端设备2中或者已经在先前的通信中提供给客户端设备2。
再次参考图5,提供了一种服务设备3,用于建立在客户端设备2和服务设备3之间的通信中使用的计算难题。服务设备3被配置为基于在计算难题的答案s’,s”的第二部分s”中编码的辅助信息并基于计算难题的答案s’,s”,建立计算难题。
在实施例中,服务设备3被配置为还基于由客户端设备2和服务设备3共享的密钥来建立计算难题。
在各种实施例中,辅助信息包括以下各项中的一项或多项:关于后续消息中要使用的资源的信息、安全信息、在鉴权过程中使用的密码、以及能够从其推导出安全密钥的随机数(Nonce)。
在各种实施例中,服务设备3被配置为:通过相应地设置计算难题p、答案的第一部分s’、以及答案的第二部分s”至少一项中的比特数来对求解计算难题的难度级别进行适配。
在实施例中,服务设备3被配置为:通过相应地设置密钥的比特数来对求解计算难题的难度级别进行适配。
在实施例中,服务设备3被配置为:通过当证实在服务设备3中已经达到负载阈值时增加难度级别来进行适配。
在实施例中,服务设备3被配置为将密钥的至少一部分提供给客户端设备2。
本教导提供了用于服务设备3的计算机程序52。计算机程序22包括计算机程序代码,该计算机程序代码当在服务设备3的至少一个处理器50上执行时,使服务设备3执行根据以上描述的任何实施例的方法30。
本公开还涵盖计算机程序产品41,其包括:用于执行所描述的方法的实施例的计算机程序42;以及其上存储有计算机程序42的计算机可读装置。
计算机程序产品或存储器包括可由处理器50执行的指令。这种指令可以包括在计算机程序中,或者包括在一个或多个软件模块或功能模块中。
在一个方面中,提供可以使用软件指令和/或硬件来实现的装置(例如功能模块),该软件指令例如是在处理器中执行的计算机程序,该硬件例如是专用集成电路、现场可编程门阵列、离散逻辑部件等或它们的任意组合。
特别地,提供一种服务设备,用于建立在客户端设备和服务设备之间的通信中使用的计算难题。服务设备包括第一装置,该第一装置用于基于在计算难题的答案s’,s”的第二部分s”中编码的辅助信息并基于计算难题的答案s’,s”,建立计算难题。该第一装置可以例如包括处理电路,该处理电路被适配为使用存储器的程序代码来建立难题。
图9示出了根据本教导的客户端设备中的方法实施例步骤的流程图。
提供一种用于客户端设备2的方法70,该方法求解在客户端设备2和服务设备3之间的通信中使用的计算难题。方法70包括从服务设备3接收71定义计算难题的信息的至少一部分。
方法70包括:作为对计算难题进行求解的一部分,对在计算难题的答案s’,s”的第二部分s”中编码的辅助信息进行解码72。
在实施例中,求解计算难题还包括使用由客户端设备2和服务设备3共享的密钥。
在各种实施例中,辅助信息包括以下各项中的一项或多项:与后续消息(特别是客户端设备2和服务设备3之间的后续消息)中要使用的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够由所选种类的客户端设备2从其推导出安全密钥的随机数(Nonce),其中所述方法70包括使用辅助信息以在通信中继续推进。
再次参考图7,提供了一种客户端设备2,用于求解在客户端设备2和服务设备3之间的通信中使用的计算难题。该客户端设备被配置为:从服务设备3接收定义计算难题的信息的至少一部分;以及作为对计算难题进行求解的一部分,对在计算难题的答案s’,s”的第二部分s”中编码的辅助信息进行解码。
客户端设备2可以被配置为例如通过包括处理器90和存储器91来执行上述步骤,存储器91包含可由处理器90执行的指令,由此,客户端设备2可进行操作以执行这些步骤。
在实施例中,客户端设备2被配置为通过还使用由客户端设备2和服务设备3共享的密钥来求解计算难题。
在各种实施例中,辅助信息包括以下各项中的一项或多项:关于后续消息中要使用的资源的信息、安全信息、在鉴权过程中使用的密码、以及能够由所选种类的客户端设备2从其推导出安全密钥的随机数(Nonce),其中方法70包括使用辅助信息以在通信中继续推进。
再次参考图7,本教导提供了用于客户端设备2的计算机程序92。计算机程序92包括计算机程序代码,该计算机程序代码当在客户端设备2的至少一个处理器90上执行时,使客户端设备2执行根据以上描述的任何实施例的方法70。
本公开还涵盖计算机程序产品91,其包括:用于执行所描述的方法70的实施例的计算机程序92;以及其上存储有计算机程序92的计算机可读装置。
计算机程序产品或存储器包括可由处理器90执行的指令。这种指令可以包括在计算机程序中,或者包括在一个或多个软件模块或功能模块中。
在一个方面中,提供可以使用软件指令和/或硬件来实现的装置(例如功能模块),该软件指令例如是在处理器中执行的计算机程序,该硬件例如是专用集成电路、现场可编程门阵列、离散逻辑部件等或它们的任意组合。
特别地,提供一种客户端设备,用于求解在客户端设备和服务设备之间的通信中使用的计算难题。客户端设备包括第一装置,该第一装置用于对计算难题进行定义的信息的至少一部分。该第一装置可以例如包括接收电路、天线设备、接口和/或用于数据接收的处理电路。该第一装置可以例如包括参考图7描述的输入/输出设备94。
客户端设备包括第二装置,该第二装置用于:作为对计算难题进行求解的一部分,对在计算难题的答案的第二部分中编码的辅助信息进行解码。第二装置可以例如包括处理电路,该处理电路被适配为使用存储在存储器中的程序代码来对辅助信息进行解码。该第一装置可以例如包括参考图7描述的处理电路93。
该客户端设备还可以包括附加装置,用于执行已经描述的实施例的任何功能和步骤。
本文中主要参考若干实施例描述了本发明。然而,本领域技术人员可以理解,在由所附专利权利要求书所定义的本发明的范围内,同样可以具有与本文中公开的具体实施例不同的其他实施例。

Claims (48)

1.一种用于服务设备(3)的方法(20),所述方法(20)建立在客户端设备(2)和所述服务设备(3)之间的通信中使用的计算难题,所述方法(20)包括:
-基于所述客户端设备(2)和所述服务设备(3)共享的密钥并基于所述计算难题(p)的答案(s’,s”),在所述服务设备(3)中建立(21)所述计算难题(p)。
2.根据权利要求1所述的方法(20),其中,所述建立(21)还包括:所述服务设备(3)在所述答案(s’,s”)的第二部分(s”)中编码(22)辅助信息。
3.根据权利要求2所述的方法(20),其中,所述辅助信息包括以下各项中的一项或多项:与要用于所述客户端设备(2)和所述服务设备(3)之间的后续消息的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够从其推导出安全密钥的随机数。
4.根据前述任一项权利要求所述的方法(20),包括:通过相应地设置所述计算难题(p)、所述答案的第一部分(s’)以及所述答案的第二部分(s”)至少一项中的比特数,适配求解所述计算难题的难度级别。
5.根据前述任一项权利要求所述的方法(20),包括:通过相应地设置所述密钥的比特数来适配求解所述计算难题的难度级别。
6.根据权利要求4或5所述的方法(20),其中,所述适配包括:当证实在所述服务设备(3)中已经达到负载阈值时增加难度级别。
7.根据前述任一项权利要求所述的方法(20),其中,所述密钥的至少一部分被预先配置在所述客户端设备(2)中或者已在先前的通信中提供给所述客户端设备(2)。
8.一种用于服务设备(3)的计算机程序(52),用于建立在客户端设备(2)和所述服务设备(3)之间的通信中使用的计算难题,所述计算机程序(52)包括计算机程序代码,当在所述服务设备(3)的至少一个处理器(50)上执行所述计算机程序代码时,所述计算机程序代码使所述服务设备(3)执行根据权利要求1-8中任一项所述的方法(20)。
9.一种计算机程序产品(51),包括:根据权利要求8所述的计算机程序(52)以及在其上存储所述计算机程序(52)的计算机可读装置。
10.一种服务设备(3),用于建立在与客户端设备(2)的通信中使用的计算难题,所述服务设备(3)被配置为:
-基于所述客户端设备(2)和所述服务设备(3)共享的密钥并基于所述计算难题(p)的答案(s’,s”),建立所述计算难题(p)。
11.根据权利要求10所述的服务设备(3),被配置为:通过还在所述答案(s’,s”)的第二部分(s”)中编码辅助信息来建立所述计算难题。
12.根据权利要求11所述的服务设备(3),其中,所述辅助信息包括以下各项中的一项或多项:与要用于所述客户端设备(2)和所述服务设备(3)之间的后续消息的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够从其推导出安全密钥的随机数。
13.根据权利要求10-12中任一项所述的服务设备(3),被配置为:通过相应地设置所述计算难题(p)、所述答案的第一部分(s’)以及所述答案的第二部分(s”)至少一项中的比特数,适配求解所述计算难题的难度级别。
14.根据权利要求10-13中任一项所述的服务设备(3),被配置为:通过相应地设置所述密钥的比特数来适配求解所述计算难题的难度级别。
15.根据权利要求13或14所述的服务设备(3),被配置为:通过当证实在所述服务设备(3)中已经达到负载阈值时增加难度级别来进行适配。
16.根据权利要求10-15中任一项所述的服务设备(3),被配置为:将所述密钥的至少一部分提供给客户端设备(2)。
17.一种用于客户端设备(2)的方法(60),所述方法(60)求解在所述客户端设备(2)和服务设备(3)之间的通信中使用的计算难题,所述方法(60)包括:
-从所述服务设备(3)接收(61)对计算难题进行定义的信息的至少一部分;以及
-通过使用所述客户端设备(2)和所述服务设备(3)共享的密钥来在所述客户端设备(2)中求解(62)所述计算难题。
18.根据权利要求17所述的方法(60),其中,所述求解(62)还包括对在答案(s’,s”)的第二部分(s”)中编码的辅助信息进行解码(63)。
19.根据权利要求18所述的方法(60),其中,所述辅助信息包括以下各项中的一项或多项:与后续消息中要使用的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够由第一种类的客户端设备(2)从其推导出安全密钥的随机数,且所述方法(60)包括使用所述辅助信息在所述通信中继续推进。
20.一种用于客户端设备(2)的计算机程序(82),用于求解在所述客户端设备(2)和服务设备(3)之间的通信中使用的计算难题,所述计算机程序(82)包括计算机程序代码,当在所述客户端设备(2)的至少一个处理器(90)上执行所述计算机程序代码时,所述计算机程序代码使所述客户端设备(2)执行根据权利要求17-19中任一项所述的方法(60)。
21.一种计算机程序产品(81),包括:根据权利要求20所述的计算机程序(82)以及在其上存储所述计算机程序(82)的计算机可读装置。
22.一种客户端设备(2),用于求解在所述客户端设备(2)和服务设备(3)之间的通信中使用的计算难题,所述客户端设备(2)被配置为:
-从所述服务设备(3)接收对计算难题进行定义的信息的至少一部分;以及
-通过使用由所述客户端设备(2)和所述服务设备(3)共享的密钥,在所述客户端设备(2)中求解所述计算难题。
23.根据权利要求22所述的客户端设备(2),被配置为通过还对在答案(s’,s”)的第二部分(s”)中编码的辅助信息进行解码来求解计算难题。
24.根据权利要求23所述的客户端设备(2),其中,所述辅助信息包括以下各项中的一项或多项:与后续消息中要使用的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够由第一种类的客户端设备(2)从其推导出安全密钥的随机数,且所述方法(60)包括使用所述辅助信息在所述通信中继续推进。
25.一种用于服务设备(3)的方法(30),所述方法(30)建立在客户端设备(2)和所述服务设备(3)之间的通信中使用的计算难题,所述方法(30)包括:
-基于在所述计算难题的答案(s’,s”)的第二部分(s”)中编码的辅助信息并基于所述计算难题的答案(s’,s”),建立(31)所述计算难题。
26.根据权利要求25所述的方法(30),其中,所述建立(31)还基于由所述客户端设备(2)和所述服务设备(3)共享的密钥。
27.根据权利要求25或26所述的方法(30),其中,所述辅助信息包括以下各项中的一项或多项:与后续消息中要使用的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够从其推导出安全密钥的随机数。
28.根据权利要求25-27中任一项所述的方法(30),包括:通过相应地设置所述计算难题(p)、所述答案的第一部分(s’)、以及所述答案的第二部分(s”)中的至少一项的比特数,适配求解所述计算难题的难度级别。
29.根据权利要求25-28中任一项所述的方法(30),包括:通过相应地设置所述密钥的比特数来适配求解所述计算难题的难度级别。
30.根据权利要求28或29所述的方法(30),其中,所述适配包括:当证实在所述服务设备(3)中已经达到负载阈值时增加难度级别。
31.根据权利要求25-30中任一项所述的方法(30),其中,所述密钥的至少一部分被预先配置在所述客户端设备(2)中或者已在先前的通信中提供给所述客户端设备(2)。
32.一种用于服务设备(3)的计算机程序(42),用于建立在客户端设备(2)和所述服务设备(3)之间的通信中使用的计算难题,所述计算机程序(42)包括计算机程序代码,当在所述服务设备(3)的至少一个处理器(50)上执行所述计算机程序代码时,所述计算机程序代码使服务设备(3)执行根据权利要求25-31中任一项所述的方法(30)。
33.一种计算机程序产品(41),包括:根据权利要求32所述的计算机程序(42)以及在其上存储所述计算机程序(42)的计算机可读装置。
34.一种服务设备(3),用于建立在客户端设备(2)和所述服务设备(3)之间的通信中使用的计算难题,所述服务设备(3)被配置为:
-基于在所述计算难题的答案(s’,s”)的第二部分(s”)中编码的辅助信息并基于所述计算难题的答案(s’,s”),建立所述计算难题。
35.根据权利要求34所述的服务设备(3),被配置为:还基于由所述客户端设备(2)和所述服务设备(3)共享的密钥来建立所述计算难题。
36.根据权利要求34或35所述的服务设备(3),其中,所述辅助信息包括以下各项中的一项或多项:与后续消息中要使用的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够从其推导出安全密钥的随机数。
37.根据权利要求34-36中任一项所述的服务设备(3),被配置为:通过相应地设置所述计算难题(p)、所述答案的第一部分(s’)、以及所述答案的第二部分(s”)中的至少一项的比特数,适配求解所述计算难题的难度级别。
38.根据权利要求34-37中任一项所述的服务设备(3),被配置为:通过相应地设置所述密钥的比特数来适配求解所述计算难题的难度级别。
39.根据权利要求37或38所述的服务设备(3),被配置为:通过当证实在所述服务设备(3)中已经达到负载阈值时增加难度级别来进行适配。
40.根据权利要求34-39中任一项所述的服务设备(3),被配置为:将所述密钥的至少一部分提供给所述客户端设备(2)。
41.一种用于客户端设备(2)的方法(70),所述方法(70)求解在所述客户端设备(2)和服务设备(3)之间的通信中使用的计算难题,所述方法(70)包括:
-从所述服务设备(3)接收(71)对计算难题进行定义的信息的至少一部分;以及
-作为对所述计算难题进行求解的一部分,对在所述计算难题的答案(s’,s”)的第二部分(s”)中编码的辅助信息进行解码(72)。
42.根据权利要求41所述的方法(70),其中,求解所述计算难题还包括:使用所述客户端设备(2)和所述服务设备(3)共享的密钥。
43.根据权利要求41或42所述的方法(70),其中,辅助信息包括以下各项中的一项或多项:与后续消息中要使用的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够由所选种类的客户端设备(2)从其推导出安全密钥的随机数,且所述方法(70)包括使用所述辅助信息在所述通信中继续推进。
44.一种用于客户端设备(2)的计算机程序(92),用于求解在所述客户端设备(2)和服务设备(3)之间的通信中使用的计算难题,所述计算机程序(92)包括计算机程序代码,当在所述客户端设备(2)的至少一个处理器(90)上执行所述计算机程序代码时,所述计算机程序代码使所述客户端设备(2)执行根据权利要求41-43中任一项所述的方法(70)。
45.一种计算机程序产品(91),包括:根据权利要求41所述的计算机程序(42)以及在其上存储所述计算机程序(92)的计算机可读装置。
46.一种客户端设备(2),用于求解在所述客户端设备(2)和服务设备(3)之间的通信中使用的计算难题,所述客户端设备(2)被配置为:
-从所述服务设备接收对计算难题进行定义的信息的至少一部分;以及
-作为对所述计算难题进行求解的一部分,对在所述计算难题的答案(s’,s”)的第二部分(s”)中编码的辅助信息进行解码。
47.根据权利要求46所述的客户端设备(2),被配置为:通过还使用所述客户端设备(2)和所述服务设备(3)共享的密钥来求解所述计算难题。
48.根据权利要求46或47所述的客户端设备(2),其中,辅助信息包括以下各项中的一项或多项:与后续消息中要使用的资源有关的信息、安全信息、在鉴权过程中使用的密码、以及能够由所选种类的客户端设备(2)从其推导出安全密钥的随机数,且所述方法(70)包括使用所述辅助信息在所述通信中继续推进。
CN201580078820.5A 2015-04-16 2015-04-16 用于对用在客户端和服务器之间的通信中的计算难题进行建立的方法和设备 Active CN107534642B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SE2015/050439 WO2016167693A1 (en) 2015-04-16 2015-04-16 Method and device for establishing a computational puzzle for use in communication between a client and a server.

Publications (2)

Publication Number Publication Date
CN107534642A true CN107534642A (zh) 2018-01-02
CN107534642B CN107534642B (zh) 2020-11-10

Family

ID=57126652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580078820.5A Active CN107534642B (zh) 2015-04-16 2015-04-16 用于对用在客户端和服务器之间的通信中的计算难题进行建立的方法和设备

Country Status (4)

Country Link
US (1) US10735392B2 (zh)
EP (1) EP3284231B1 (zh)
CN (1) CN107534642B (zh)
WO (1) WO2016167693A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110611573A (zh) * 2019-09-27 2019-12-24 华东师范大学 一种基于hlc和哈希碰撞谜题的智能家庭中的认证协议

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3716570B1 (en) * 2019-03-29 2022-07-27 Mitsubishi Electric R&D Centre Europe B.V. Computational puzzles against dos attacks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1635530A1 (en) * 2004-08-25 2006-03-15 NTT DoCoMo, Inc. Apparatus and method for mitigating DoS attacks in a service discovery system
CN101110762A (zh) * 2007-08-22 2008-01-23 华中科技大学 一种Ad hoc网络安全路由方法
CN102946387A (zh) * 2012-11-01 2013-02-27 惠州Tcl移动通信有限公司 一种防御拒接服务攻击的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7231526B2 (en) * 2001-10-26 2007-06-12 Authenex, Inc. System and method for validating a network session
US6944663B2 (en) 2002-03-06 2005-09-13 Sun Microsystems, Inc. Method and apparatus for using client puzzles to protect against denial-of-service attacks
US20160072787A1 (en) * 2002-08-19 2016-03-10 Igor V. Balabine Method for creating secure subnetworks on a general purpose network
US7069438B2 (en) * 2002-08-19 2006-06-27 Sowl Associates, Inc. Establishing authenticated network connections
US7398315B2 (en) * 2003-03-12 2008-07-08 Workman Nydegger Reducing unwanted and unsolicited electronic messages by preventing connection hijacking and domain spoofing
US7694335B1 (en) 2004-03-09 2010-04-06 Cisco Technology, Inc. Server preventing attacks by generating a challenge having a computational request and a secure cookie for processing by a client
GB0411777D0 (en) * 2004-05-26 2004-06-30 Crypomathic Ltd Computationally asymmetric cryptographic systems
JP4547210B2 (ja) 2004-08-27 2010-09-22 株式会社エヌ・ティ・ティ・ドコモ クライアント端末、サービス提供装置及びサービス発見方法
KR100828372B1 (ko) 2005-12-29 2008-05-08 삼성전자주식회사 서비스 거부 공격으로부터 서버를 보호하는 방법 및 장치
US8102838B2 (en) * 2007-01-17 2012-01-24 Alcatel Lucent Mechanism for authentication of caller and callee using otoacoustic emissions
US8646104B2 (en) * 2008-02-27 2014-02-04 Red Hat, Inc. Stateless challenge-response broadcast protocol
EP2974118B1 (en) 2013-03-15 2019-11-27 Robert Bosch GmbH System and method for mitigation of denial of service attacks in networked computing systems
US10171119B2 (en) * 2014-07-29 2019-01-01 Ramot At Tel Aviv University Communication terminals and a method for exchanging information between communication terminals in a noisy environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1635530A1 (en) * 2004-08-25 2006-03-15 NTT DoCoMo, Inc. Apparatus and method for mitigating DoS attacks in a service discovery system
CN101110762A (zh) * 2007-08-22 2008-01-23 华中科技大学 一种Ad hoc网络安全路由方法
CN102946387A (zh) * 2012-11-01 2013-02-27 惠州Tcl移动通信有限公司 一种防御拒接服务攻击的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISAAC LEE ET AL: "A Novel Design and Implementation of Dos-Resistant Authentication and Seamless Handoff Scheme for Enterprise WLANs", 《AUSTRALIAN INFORMATION SECURITY MANAGEMENT》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110611573A (zh) * 2019-09-27 2019-12-24 华东师范大学 一种基于hlc和哈希碰撞谜题的智能家庭中的认证协议
CN110611573B (zh) * 2019-09-27 2021-10-15 华东师范大学 一种基于hlc和哈希碰撞谜题的智能家庭中的认证通信方法

Also Published As

Publication number Publication date
US10735392B2 (en) 2020-08-04
EP3284231A1 (en) 2018-02-21
WO2016167693A1 (en) 2016-10-20
US20180131679A1 (en) 2018-05-10
EP3284231A4 (en) 2018-03-07
CN107534642B (zh) 2020-11-10
EP3284231B1 (en) 2019-07-10

Similar Documents

Publication Publication Date Title
US7835525B2 (en) Cryptographic method using dual encryption keys and a wireless local area network (LAN) system therefor
US20050074122A1 (en) Mass subscriber management
CN108289026B (zh) 一种卫星网络中的身份认证方法及相关设备
JPH1195658A (ja) マルチキャスト・ネットワーク上で暗合鍵を安全に配布するための方法およびシステム
JP2007089147A (ja) 認証方法
CN109743170B (zh) 一种流媒体登录以及数据传输加密的方法和装置
US9923720B2 (en) Network device configured to derive a shared key
US9516065B2 (en) Secure communication device and method
CN101867473B (zh) 抗阻塞攻击的共享媒体终端连接建立方法和接入认证系统
CN108964896B (zh) 一种基于群组密钥池的Kerberos身份认证系统和方法
CN106453410A (zh) 数据传输方法及数据传输装置
KR20210066640A (ko) 비밀분산 인증 시스템 및 방법
US9544376B1 (en) Method and apparatus for securely discovering services in a wireless network
CN108880799B (zh) 基于群组密钥池的多次身份认证系统和方法
WO2013172743A1 (ru) Способ защищенного взаимодействия устройства клиента с сервером по сети интернет
CN108964895B (zh) 基于群组密钥池和改进Kerberos的User-to-User身份认证系统和方法
CN113746788A (zh) 一种数据处理方法及装置
Raad et al. Secure data in lorawan network by adaptive method of elliptic-curve cryptography
CN107534642A (zh) 用于对用在客户端和服务器之间的通信中的计算难题进行建立的方法和设备
CN112019501B (zh) 一种用户节点匿名通信方法与装置
US20100310078A1 (en) System for user-centric identity management and method thereof
CN107534997A (zh) 网络节点中的向设备提供对网络的访问的方法
CN101827079A (zh) 抗阻塞攻击的终端连接建立方法和终端访问认证系统
CN112367329B (zh) 通信连接认证方法、装置、计算机设备及存储介质
CN114765546B (zh) 端到端硬加密方法、系统、加密设备、密钥管理服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant