CN107431624B - 用于验证用户的安全凭证的方法和设备 - Google Patents
用于验证用户的安全凭证的方法和设备 Download PDFInfo
- Publication number
- CN107431624B CN107431624B CN201680015472.1A CN201680015472A CN107431624B CN 107431624 B CN107431624 B CN 107431624B CN 201680015472 A CN201680015472 A CN 201680015472A CN 107431624 B CN107431624 B CN 107431624B
- Authority
- CN
- China
- Prior art keywords
- substring
- user
- value
- security string
- string
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2103—Challenge-response
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2111—Location-sensitive, e.g. geographical location, GPS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开用于提供加速的密码短语校验的***和方法。在一个实施例中,方法包含:接收完整安全字符串;生成完整安全字符串散列代码;将所述完整安全字符串散列代码存储在存储器中;基于与所述完整安全字符串中的一或多个前导字符相关联的熵值来确定至少一个子字符串;生成至少一个子字符串散列代码和至少一个对应字符计数值,以使得所述对应字符计数值等于所述至少一个子字符串中的字符的数目;且将所述至少一个子字符串散列代码和所述至少一个对应字符计数值存储在存储器中。
Description
背景技术
服务提供商和消费者希望将以数字方式编码的高质量内容(例如数据、语音和视频)分配到固定装置以及移动装置两个。对内容的接入通常受限制且可能要求用户提供安全凭证。例如口令、口令句、图案校验、手势和其它用户输入的凭证可用于安全性关键使用案例。凭证可由例如由字母、词语、数字、符号、手势或其它用户输入构成的字符串的多个字符组成。一般来说,具有较多字符的凭证比短口令更加安全。
在努力增加计算机网络、计算机操作***内的安全性的过程中可支持多达256个字符的口令句。然而对用户来说,特别是在使用具有较小触摸屏的移动装置的情况下,输入较长的口令句通常是不方便的。过长口令句可以被单独且通常更短的口令替代。但是,更短口令可能存在其它问题。举例来说,虽然安全性较高的口令难以记住,但是简单的口令安全性较低。而且,特定客户端侧应用程序可能具有与强制执行口令句的相同服务器对话的PC版和手机版两个版本。如果口令句在PC版本中强制执行,那么通常在移动版本中难以放松要求来使用更短的口令。
发明内容
一种根据本公开在计算装置上验证用户的安全凭证的实例方法包含在服务器上创建包含用户标识符(userID)值和完整安全字符串的用户帐户,以使得所述完整安全字符串从第一字符开始,且通过提供用户标识符值和子字符串来接入用户帐户,以使得所述子字符串在从第一字符开始的完整安全字符串中包含连续字符的子集。
一种根据本公开校验从客户端接收的接入请求的实例方法包含:接收来自客户端的接入请求,以使得所述接入请求包含用户标识;至少部分地基于所述用户标识确定字符计数值;将所述字符计数值提供到客户端;接收来自客户端的子字符串,以使得子字符串的长度对应于字符计数值;校验所述子字符串;在所述子字符串有效的情况下,允许接入请求;且在子字符串无效的情况下,拒绝接入请求。
这类方法的实施方案可以包含以下特征中的一或多个。接收上下文信息,且至少部分地基于用户标识和上下文信息来确定字符计数值。所述上下文信息可以包含客户端的当前位置。上下文信息可以包含接收接入请求的时间。校验子字符串可以包含确定子字符串的子字符串散列代码。盐值(salt value)可以至少部分地基于用户标识来确定,且子字符串可以与盐值组合,以使得确定用于子字符串与盐值的组合的子字符串散列代码。确定字符计数值可以包含使用用户标识来查询接入控制数据库,以使得接入控制数据库是包含用户标识、散列代码和字符计数值的数据结构。
一种根据本公开的实例设备包含存储器、至少一个处理器,所述处理器操作性地耦合到所述存储器且被配置成:接收完整安全字符串;生成完整安全字符串散列代码;将完整安全字符串散列代码存储在存储器中;基于与完整安全字符串中的一或多个前导字符相关联的熵值来确定至少一个子字符串;生成至少一个子字符串散列代码和至少一个对应字符计数值,以使得对应字符计数值等于所述至少一个子字符串中的字符的数目;且将所述至少一个子字符串散列代码和所述至少一个对应字符计数值存储在存储器中。
这类设备的实施方案可以包含以下特征中的一或多个。可以生成第一盐值且将第一盐值与完整安全字符串组合来生成完整安全字符串散列代码。可以生成第二盐值且将第二盐值与子字符串组合来生成子字符串散列代码。完整安全字符串可以是对应于手势输入的持久性数据。生成完整安全散列代码可以包含对完整安全字符串执行加密散列。生成至少一个子字符串散列代码可以包含对所述至少一个子字符串执行加密散列。评估子字符串的熵值为至少较强水平的复杂度水平。
根据本公开的设备的实例包含存储器、至少一个处理器,所述处理器操作性地耦合到所述存储器且被配置成:在服务器上创建包含用户标识符值和完整安全字符串的用户帐户,以使得所述完整安全字符串从第一字符开始,且通过提供用户标识符值和子字符串来接入用户帐户,其中所述子字符串在从第一字符开始的完整安全字符串中包含连续字符的子集。
这类设备的实施方案可以包含以下特征中的一或多个。可在提供用户标识符值之后从服务器接收字符计数值。可确定设备的上下文信息,且可通过提供上下文信息、用户标识符值和子字符串来接入用户帐户。可在提供用户标识符值和上下文信息之后从服务器接收字符计数值。所述上下文信息可以包含设备的当前位置和/或当前时间。
本文中所描述的项目和/或技术可提供以下能力中的一或多个以及其它未提到的能力。在***上创建用户帐户。所述***可以是本地装置或网络的部分。用户帐户包含用户标识信息(例如用户标识符)和完整安全字符串。所述完整安全字符串可以包含字符、手势、图案校验或其它用户输入。存储对应于完整安全字符串的散列代码。盐值可与安全字符串一起使用从而形成散列函数的输入。确定完整安全字符串的复杂度分数(例如强度值)。现有算法可用于评估字符串的复杂度(即,强度)。举例来说,强度测量可以基于字符串的熵值。确定由完整安全字符串的前‘x’个字符构成的子字符串。评估子字符串的强度。‘x’值基于子字符串的对应复杂度(即,强度)而变化。存储对应于子字符串(和可选盐值)的散列代码。可以评估多个子字符串且可以存储它们的对应散列代码。基于子字符串验证用户的凭证。也就是说,仅通过完整安全字符串的前‘x’个字符来完成用户校验。可以确定与用户相关联的上下文。所述上下文可以基于当前位置、环境噪音、行为数据和/或历史数据。可以基于所述上下文来确定子字符串。当校验要求完整安全字符串的输入或子字符串的输入时,***安全策略可以建立。可提供其它能力且并非根据本公开的每一实施方案必须提供任何特定能力,更不用说提供所论述的所有能力。另外,可以利用除了所提到的手段之外的手段来实现上文提到的效果,且所提到的项目/技术可能不一定产生所提到的效果。
附图说明
图1是移动装置的一个实施例的组件的框图。
图2是实例联网***的框图。
图3是计算机***的实例的框图。
图4是用户在移动装置上提供安全凭证的说明。
图5A是包含完整安全字符串和对应子字符串的表格。
图5B是具有可选盐值的字符串的集合。
图6是实例客户端-服务器消息流的流程图。
图7是与加速的口令句校验一起使用的数据结构的实例。
图8是生成子字符串散列代码的过程的框流程图。
图9是服务器上加速的口令句校验的过程的框流程图。
图10是客户端上加速的口令句校验的过程的框流程图。
具体实施方式
论述加速用户校验过程的技术。用户可以向网络服务器提供超长安全凭证(例如字符串、口令、口令句)。可以评估安全凭证中的前‘x’个字符的强度。举例来说,所述超长安全凭证的前6到8个字符可以具有足够的熵值来充当可接受的凭证。由于仅具有6到8个字符的凭证实际上足够强,所以可以省略超长安全凭证中的后续字符以改善用户体验(即,用户将不必输入额外字符)。利用加速的凭证校验的***可以评估具有前‘x’个字符的输入凭证的强度直到获得足够强度(即,熵值)。所述***可以存储前‘x’个字符的第一散列以及完整超长安全凭证的散列,且口令校验可以基于特定安全策略仅利用前‘x’个字符或完整超长安全凭证来完成。所述安全策略可以是默认设置、在设置期间的用户选择、位置/行为的实时监视或其它上下文。在操作中,用户仅需要记住初始凭证(例如口令句)。‘x’值(即,输入直到获得足够熵值的字符数目)可能并不为用户所知。也就是说,软件可以在凭证设置期间确定值‘x’。‘x’值可以基于上下文(例如在公共或私人区域中)而变化。值‘x’可以与多个散列一起存储。举例来说,第一散列(即,针对前‘x’个字符)和第二散列(即,针对整个超长凭证)都用相同用户标识符来存储。要求‘x’至少应允许可接受水平的熵值。每一初始安全字符串可以取决于熵评估而具有其特定的‘x’值。散列可以在内部含有盐化机制以便挫败字典攻击,即,散列(口令句)=SHA-256(盐||口令句),其中“||”表示字符串级联。在校验前‘x’个字符之后,用户接口(UI)可以省略后续用户输入集合并通知用户校验成功。
参考图1,说明可以利用本文中各种技术的移动装置100。移动装置100可包含或实施各种移动通信和/或计算装置的功能性;无论是当前现有的还是未来研发的,实例包含但不限于,个人数字助理(PDA)、智能电话、计算装置(例如笔记型计算机、台式计算机或平板计算机)、汽车计算***等。
移动装置100包含处理器111(或处理器核心)和存储器140。所述移动装置可以任选地包含利用公共总线101或私人总线(未展示)以可操作方式连接到存储器140的受信任环境160。受信任环境160可以包含受信任执行环境(TEE),例如可以集成到处理器111中的ARM Trust技术。移动装置100还可包含通信接口120和无线收发器121,所述无线收发器被配置成经由无线天线122通过无线网络来发送和接收无线信号123。将无线收发器121连接到总线101。此处,移动装置100经说明为具有单个无线收发器121。然而,移动装置100可替代地具有多个无线收发器121和无线天线122以支持多个通信标准,例如Wi-Fi、CDMA、宽带CDMA(WCDMA)、长期演进(LTE)、蓝牙短程无线通信技术等。
所述通信接口120和/或无线收发器121可以支持对多个载波(不同频率的波形信号)的操作。多载波发射器可在多个载波上同时发射已调制信号。每一已调制信号可以是码分多址(CDMA)信号、时分多址(TDMA)信号、正交频分多址(OFDMA)信号、单载波频分多址(SC-FDMA)信号等。每一已调制信号可在不同载波上发送且可携载导频、开销信息、数据等。
移动装置100还包含用户接口150(例如显示器、GUI)和经由SPS天线158接收卫星定位***(SPS)信号159(例如来自SPS卫星)的SPS接收器155。SPS接收器155可与单个全球导航卫星***(GNSS)或多个这类***通信。GNSS可以包含但不限于全球定位***(GPS)、伽利略、格洛纳斯(Glonass)、北斗(指南针)等。SPS卫星还被称作卫星、宇宙飞船(SV)等。SPS接收器155整体或部分地处理SPS信号159且使用这些SPS信号159来确定移动装置100的位置。还可以利用处理器111、存储器140、DSP 112和/或专用处理器(未展示)来整体或部分地处理SPS信号159,且/或结合SPS接收器155来计算移动装置100的位置。使用存储器140或寄存器(未展示)来执行对来自SPS信号159或其它位置信号的信息的存储。尽管图1中仅展示一个处理器111、一个DSP 112和一个存储器140,但是移动装置100可使用这些组件中的任一个、一对或全部中的多于一个。将与移动装置100相关联的处理器111和DSP 112连接到总线101。
存储器140可以包含将功能存储为一或多个指令或代码的非暂时性计算机可读存储媒体。可构成存储器140的媒体包含但不限于RAM、ROM、闪存、光盘驱动器等。存储器可以包含用于操作***141、应用程序142、数据文件143和认证模块144的代码。一般来说,利用通用处理器111、专用处理器或DSP 112来执行由存储器140存储的功能。因此,存储器140是存储被配置成使得处理器111和/或DSP 112执行所描述的功能的软件(编程代码、指令等)的处理器可读存储器和/或计算机可读存储器。替代地,移动装置100的一或多个功能可在硬件中整体或部分地执行。
移动装置100可以基于可用于移动装置100的视图和/或信息内的其它通信实体使用各种技术来评估其在相关联***内的当前位置。举例来说,移动装置100可以使用从与一或多个无线局域网(LAN)、利用短程无线通信技术(例如蓝牙或等)的个人局域网(PAN)、SPS卫星相关联的接入点(AP)获得的信息和/或从地图服务器或LCI服务器获得的地图约束数据来评估其位置。
接下来参考图2,展示实例联网计算机***200的框图。联网计算机***200包含多个数据处理装置,例如移动装置100和个人计算机208。数据处理装置可以是能够接收用户凭证的任何适合的电子装置(例如笔记型计算机、平板计算机、上网本、手机、游戏控制台、自动取款机(ATM)、查询一体机、个人数字助理(PDA)等)。联网计算机***200还可以包含一或多个接入点212和/或被配置成与数据处理装置通信且能够与一或多个网络210连接的基站214。举例来说,网络210可以是广域网(WAN)和/或无线局域网(WLAN)且还可以包含与因特网的连接。接入点212可以是高级WLAN接入点且基站214可以包含电子开关功能且可以被配置为媒体网关(MGW)或网关媒体交换中心服务器(GMSC)。
网络210可以提供与一或多个服务器202的连接。服务器202是包含处理器和存储器的数据处理装置,且被配置成执行计算机可执行指令。举例来说,服务器202可以包含计算机***,所述计算机***包含处理器、非暂时性存储器、磁盘驱动器、显示器、键盘、鼠标。处理器优选地是智能装置,例如(例如那些由公司或制造的)个人计算机中央处理单元(CPU)、微控制器、专用集成电路(ASIC)等。存储器包含随机存取存储器(RAM)和只读存储器(ROM)。磁盘驱动器包含硬盘驱动器、CD-ROM驱动器和/或zip驱动器,且可以包含其它形式的驱动器。虽然其它形式的显示器是可接受的,例如阴极射线管(CRT),但是显示器是液晶显示器(LCD),例如薄膜晶体管(TFT)显示器。所述键盘和鼠标向用户提供数据输入机制。服务器202可以存储(例如在存储器中)含有用于控制处理器执行本文中所描述的功能的指令的处理器可读、处理器可执行软件代码。所述功能有助于一或多个数据处理装置上的加速的凭证校验。所述功能可以包含例如:接收安全字符串;确定安全字符串和对应子字符串的强度;生成加密安全的伪随机数;生成且存储加密函数(例如散列代码);确定字符计数信息;评估用户上下文数据;且验证数据接入请求。可以通过经由网络连接下载、从磁盘上传等将软件加载到存储器上。另外,软件可能不是可直接执行的,例如要求在执行之前进行编译。服务器202可以包含接入控制数据库204(例如数据结构、关系型数据库、平面文件)以存储安全凭证信息。服务器202还可以包含内容数据库206,所述内容数据库包含可以向用户提供的以数字方式编码的内容(例如数据、语音和视频)。服务器202、接入控制数据库204和内容数据库206的配置仅仅是示范性的,且并不是限制。可以使用多于一个服务器和数据库。
可以利用如图3中所说明的计算机***300来至少部分地实施服务器202的功能性。图3提供计算机***300的一个实施例的示意性说明,所述计算机***可以执行利用如本文中所描述的各种其它实施例而提供的方法,且/或可以充当移动装置或其它计算机***。图3提供各种组件的一般化说明,适当时可以利用所述组件中的任一个或全部。因此,图3大致说明可以如何以相对分离或相对更整体的方式来实施个别***元件。
计算机***300展示为包括可经由总线305电耦合(或适当时可以其它方式通信)的硬件元件。硬件元件可以包含:一或多个处理器310,其包含但不限于一或多个通用处理器和/或一或多个专用处理器(例如数字信号处理芯片、图形加速处理器和/或类似处理器);一或多个输入装置315,其可包含但不限于鼠标、键盘和/或类似输入装置;和一或多个输出装置320,其可包含但不限于显示装置、打印机和/或类似输出装置。处理器310可以包含例如智能硬件装置,例如(例如那些由公司或制造的)中央处理单元(CPU)、微控制器、ASIC等。还可以利用其它处理器类型。
计算机***300可以进一步包含一或多个非暂时性存储装置325(且/或与其通信),所述非暂时性存储装置可包括但不限于本地存储器和/或网络可接入存储器,且/或可包含但不限于磁盘驱动器、驱动阵列、光学存储装置、例如随机存取存储器(“RAM”)和/或可编程、闪存可更新的只读存储器(“ROM”)的固态存储装置和/或类似非暂时性存储装置。这类存储装置可以被配置成实施任何适当的数据存储器,其包括但不限于各种文件***、数据库结构和/或类似数据存储器。
计算机***300还可以包含通信子***330,其可包含但不限于调制解调器、网卡(无线或有线)、红外通信装置、无线通信装置和/或芯片组(例如蓝牙短程无线通信技术收发器/装置、802.11装置、Wi-Fi装置、WiMax装置、蜂窝式通信设施等)和/或类似通信子***。通信子***330可以允许与网络(例如作为一个实例,下文所描述的网络)、其它计算机***和/或本文中所描述的任何其它装置交换数据。在多个实施例中,计算机***300将如此处进一步包括工作存储器335,所述工作存储器可包含如上所描述的RAM或ROM装置。
计算机***300还可以包括展示为当前位于工作存储器335内的软件元件,所述软件元件包含操作***340、装置驱动器、可执行库和/或例如一或多个应用程序345的其它代码,所述应用程序可包括由各种实施例提供、且/或可被设计成实施方法且/或配置由其它实施例提供的***的计算机程序,如本文中所描述。仅通过实例的方式,本文中所描述的一或多个过程可以被实施为可由计算机(和/或计算机内的处理器)执行的代码和/或指令。举例来说,如图3中所展示,认证模块322、接入控制器324、上下文评估器326和/或本文中所描述的其它功能模块可以经由计算机***300、经由处理器可执行软件代码来实施,所述处理器可执行软件代码经由处理器310从工作存储器335执行。这类代码和/或指令可用于配置且/或调适通用计算机(或其它装置)从而根据所描述的方法执行一或多个操作。
这些指令和/或代码的集合可能存储在例如上文所描述的存储装置325的计算机可读存储媒体上。在一些情况下,存储媒体可能并入到例如计算机***300的计算机***内。在其它实施例中,存储媒体可能与计算机***(例如,可装卸式媒体,例如压缩光盘)分离,且/或提供于安装包中,使得存储媒体可用于编程、配置且/或调适其上存储有指令/代码的通用计算机。这些指令可能呈可由计算机***300执行的可执行代码的形式,且/或可能呈源和/或可安装代码的形式,所述源和/或可安装代码在计算机***300上编译和/或安装于所述计算机***上(例如,使用多种一般可用编译程序、安装程序、压缩/解压缩公用程序等中的任一个)之后,接着呈可执行代码的形式。
参考图4,展示用户提供移动装置的安全凭证的说明。移动装置100包含作为数据输入装置的具有可编程键盘152的触摸屏显示器151,和作为视觉反馈机构的文本框对象153。由于可以使用其它数据输入项和显示装置/对象,显示器151、键盘152和文本框对象153仅为示范性的,且并不是限制。在操作中,可以提示用户将例如口令、口令句、手势或其它信息的安全代码输入到在移动装置100上执行的应用程序中。在一实例中,移动装置100是联网计算机***200的部分,且用户尝试接入网络内容(即,内容数据库206)。用户可能先前已经在***200上建立了帐户,或可能已经重新设置了其账户信息,且在相应时间提供了安全凭证。在后续尝试接入***时,提示用户在键盘152上输入安全凭证。在键入安全凭证的字符的‘x’数目(其中‘x’是比完整安全凭证更少的字符)后,允许用户接入所要的内容。因此,因为用户不必输入整个安全凭证,所以校验过程经加速。用户不必知道‘x’值,且‘x’值可以基于安全凭证中的字符而变化。在一实施例中,‘x’值可以基于在其中使用移动装置100的上下文而改变。文本框对象153中的字符仅展示为演示且可以显示为通用符号(例如点、星号等)从而帮助保存安全凭证的完整性。
参考图5A和5B,进一步参考图1、2和4,展示包含完整安全字符串及对应子字符串的表格500。表格500包含完整安全字符串/子字符串列502、复杂度列504和字符列506。完整安全字符串/子字符串列502中的字段是完整安全字符串和利用来自完整安全字符串的不同数目个字符的六个子字符串的实例。字符列506指示完整安全字符串和子字符串(例如前‘x’个字符)中的每一个中的字符的相应数目。复杂度列504表示关于相应字符串的口令强度算法的结果。口令强度算法被配置成测量字符串的熵值。作为一实例,且并不是限制,口令强度算法可以在www.passwordmeter.com处找到。还可以使用其它口令强度和/或熵测量算法。参考图5B,用户帐户可以与安全字符串510的集合相关联,所述安全字符串包含完整安全字符串512、第一子字符串514a、第二子字符串514b和指示为第n个子字符串514n的任何数目个额外子字符串。字符串的集合中的字符串中的每一个可以在散列所述字符串值之前与可选盐值组合。举例来说,完整安全字符串512可以附加有第一盐值516a,第一子字符串514a可以附加有第二盐值516b,第二子字符串514b可以附加有第三盐值516c等等,以使得第n个子字符串514n可以通过第n个盐值516n而盐化。通常使用加密安全伪随机数生成器(CSPRNG)来生成每一盐值,但所述盐的其它值可以基于安全方案或其它硬件考量来使用。在努力挫败字典攻击的过程中将盐添加到字符串。在将字符串保存为散列代码之前,可以将所述盐前置到字符串开端(即,之前)或附加到末端(即,之后)。举例来说,字符串510和对应盐的集合可以各自经由加密散列函数(例如SHA256、SHA512、SHA3等)而转化且可以将所得散列代码连同来自字符计数列506的对应值存储在接入控制数据库204上。在一实施例中,可以将盐和所得散列代码中的一或多个存储在受信任环境160中以用于本地用户校验。认证模块144被配置成:检索来自受信任环境160的盐值;盐化向文本框对象153提供的数据;对盐化字符串执行散列函数;且将结果与存储在受信任环境中的散列代码进行比较。
参考图6,进一步参考图1至4、图5A和图5B,展示实例客户端-服务器消息流的流程图600。流程图600说明客户端602和服务器604之间的实例消息流。客户端602可以是移动装置100,且服务器604可以是服务器202,且相应实例消息可以经由网络210和无线信号123而发射。可以经由例如安全套接层(SSL)或超文本传输协议(HTTPS)的安全因特网协议来交换所述消息。用户可以利用客户端602来在服务器604上创建账户且可以提供例如用户标识符的登入信息来鉴别其账户。类似过程可以发生于先前已经在服务器604上建立了账户(包含先前用户标识符)的用户中,但必须重新设置其安全凭证。可以与服务器604交换一或多个创建账户消息606。作为响应,可以自服务器发送请求安全信息消息608以提示用户提供完整安全字符串。完整安全字符串消息610将包含超长口令、口令句、一连串手势或用户希望利用作为安全凭证以验证账户接入请求的其它信息。在阶段612处,服务器604被配置成生成且存储用于完整安全字符串的散列代码。服务器604将评估一或多个子字符串(即,完整安全字符串的前‘x’个字符)的安全强度,且生成且存储相应子字符串散列代码和对应字符计数(即,‘x’值)。散列代码可以经由用户标识符或其它索引信息与用户相关联。
后续登入尝试之后,用户可以提供包含其用户标识符或其它鉴别信息的用户ID登入消息614。在阶段616处,服务器604被配置成确定将哪些先前确定的子字符串用于加速的校验。子字符串的选择可以基于例如移动装置的位置、当前时间或其它考量的当前上下文。在一实施例中,针对每一完整安全字符串仅存储一个子字符串。确定与子字符串相关联的字符的数目(例如自接入控制数据库204检索)且经由字符计数信息消息618向客户端602提供那个数目值。客户端602被配置成提示用户输入完整安全字符串且在用户输入时对每一字符进行计数。用户并不了解字符计数信息消息618中的数目值。当用户输入的字符的数目等于字符计数信息消息618中提供的值时,客户端602被配置成经由子字符串消息620向服务器604提供所输入字符(即,子字符串)。用户不了解子字符串消息620交换。在阶段622处,服务器604被配置成验证子字符串消息620中所接收的子字符串。所述验证包含生成所接收子字符串的散列代码且将所得散列代码与先前存储在接入控制数据库204中的散列代码进行比较。还可以如先前所描述来使用盐值。基于验证的结果,向客户端602提供一或多个允许/拒绝消息624。在验证成功的情况下,向用户提供对其账户的接入而无需输入其整个完整安全字符串。由于在用户不了解的情况下发射子字符串消息620,对用户的而言效果是加速的校验过程。在阶段622处的验证过程失败的情况下,允许/拒绝消息624可以向用户指示接入账户被拒绝且服务器604可以记录失败的接入尝试。
参考图7,进一步参考图2、图5A和图5B,展示用于与加速的口令句校验一起使用的实例数据结构700。由于可以使用额外表格、字段、索引和关系,数据结构700仅为示范性的且并不是限制。数据结构700可以存留在服务器202或网络210上的其它存储装置中,且可以包含例如接入控制数据库204和内容数据库206的一或多个数据库。数据库204、206可以是具有表格集合的一或多个关系数据库。还可以将数据库204、206内的数据中的一些或全部存储在移动装置100上。数据库204、206可以包含含有涉及用户帐户和登入验证的数据字段的一或多个表格702、704。所述数据字段可以属于如所属领域中已知的数据类型(例如数目、固定长度字符(char)、可变长度字符(varchar)、日期等)。包含于接入控制数据库204中的信息可以包含包含表示用户帐户的多个字段的账户表格702,所述字段例如用户标识符和例如通讯信息、计费信息、安全问题等的用户信息(例如用户信息1、用户信息2等)。出于将当前上下文与用户相关联的目的,可以将用户帐户链接到上下文数据库(例如上下文链路)。所述上下文可以基于位置信息、环境声音、用户行为和使用历史数据文件。用户帐户表格可以包含用户安全数据,或可以将其链接到含有用户安全信息的安全表格704。用户安全信息可以包含例如索引704a、链路ID 704b、盐值704c、散列代码704d、字符计数值704e和上下文选择准则704f的字段。索引704a可用于鉴别安全表格704中的个别记录,且链路ID704b可用于将对应记录链接到账户表格702中的记录。如果盐值用于安全字符串的加密散列,则需要盐值704c。散列代码704d是对完整安全字符串/子字符串列502中的所述值与相应盐值704c的级联执行的散列函数的结果。图7中的盐值704c和散列代码704d仅仅是实例且已经将其截短以增强图7的视觉美观性。字符计数值704e与字符计数列506中的相应值相对应。上下文选择准则704f表示对应于其中客户端602正请求接入的当前上下文的相对值。举例来说,如果当前上下文与繁忙区域或先前未访问位置相关联,则用户可能需要提供较大安全子字符串以获得对其账户的接入。相反,如果上下文指示用户遵守现有使用模式或处在私人场所中,则较小安全子字符串可能能够实现校验。
散列代码704d可以是执行基于子字符串和盐的例如SHA256的加密散列函数的结果。举例来说,如果子字符串是8字符的字符串“Ju3Tou2W”(例如,如在完整安全字符串/子字符串列502中所指示),且对应盐值704c是“4ece73a9bcbf066e”(例如参见图7中的记录索引48),那么对应散列函数是:
散列代码=SHA256(盐║Ju3Tou2W)
其中║是级联操作。
出于视觉美感的目的,将图7中的用户安全表格中的散列代码704d的值截短。盐值704c是包含随机十六进制数字的实例,但盐值可以包含其它数据值。由于可以使用其它加盐值和加密算法,盐值704c和SHA256加密散列函数仅仅是实例。
参考图8,进一步参考图1到7,用于生成子字符串的过程800具有包含所展示阶段的代码。但是,过程800仅仅是实例且没有限制性。例如,可以通过添加、去除、重新布置、组合和/或同时执行各阶段来更改过程800。举例来说,生成第一和/或第二盐值是可任选的且图8中利用虚线来描绘对应阶段。过程800可以在服务器202上执行客户端-服务器应用程序(例如远程登录)或在本地移动装置100(例如本地认证)上执行。
在阶段802处,服务器202被配置成接收完整安全字符串。可以将完整安全字符串输入到移动装置100中且经由网络210将其提供到服务器。移动装置100还可以被配置成接收完整安全字符串。服务器202和移动装置100是用于接收完整安全字符串的装置。完整安全字符串是用户可以输入到计算装置中的相对超长安全凭证,例如口令、口令句、手势或其它信息。如在图5A上所指示,长为21个字符的完整安全字符串的实例是字符串“Ju3Tou2Wang3Ming2Yue4”。可以使用例如对应于手势输入(例如ASCII、十六进制和/或二进制表示的手势输入)的持久性数据的其它长度和元件。
在阶段804处,服务器202上的认证模块322被配置成基于完整安全字符串来生成和存储完整安全字符串散列代码。可以将完整安全字符串散列代码存储在接入控制数据库204中。对于本地认证,移动装置100上的认证模块144和受信任环境160还可以被配置成生成和存储完整安全散列代码。服务器202或移动装置100可以是用于生成和存储完整安全散列代码的装置。完整安全字符串散列代码可以包含在阶段806处所生成的盐值。所述盐值是可任选的但一般建议所述盐值使用查找表和彩虹表来阻挠攻击。任何值都可以用作盐,但优选的解决方案是使用加密安全伪随机数生成器(例如用于Java的java.security.SecureRandom、用于MS.NET的system.security.cryptography.RNGCyptoServiceProvider、用于C/C++的CryptGenRandom)。可以将盐与在阶段802处所接收的完整安全字符串值级联(例如前置、附加)。完整安全字符串散列代码是对完整安全字符串和(如果存在)所级联盐执行的加密散列函数的结果。加密散列函数的实例包含SHA256、SHA512、RipeMD、Whirlpool。还可以使用其它加密散列函数。将所得完整安全散列代码存储在例如接入控制数据库204的存储器中。举例来说,可以将完整安全散列代码和可选盐值存储在与特定用户(例如账户表格702中的记录)相关联的安全表格704中。其它数据结构还可以用于使完整字符串散列代码与用户相关联。
在阶段808处,服务器202上的认证模块322被配置成基于与完整安全字符串中的一或多个前导字符相关联的熵值来确定至少一个子字符串。对于本地认证,移动装置100上的认证模块144和受信任环境160还可以被配置成基于与完整安全字符串中的一或多个前导字符相关联的熵值来确定至少一个子字符串。服务器202或移动装置100可以是用于基于与完整安全字符串中的一或多个前导字符相关联的熵值来确定至少一个子字符串的装置。可以利用字符基础在字符上对完整安全字符串中的前‘x’个字符的熵值进行评估直到实现足够强水平的子字符串为止。所述足够强的要求可以基于网络安全设计要求。参考图5A,复杂度列504提供对熵复杂度水平或强度水平(例如弱、良好、强、极强)的相对指示且足够强的子字符串可以基于设计要求对应于良好、强或极强的值。现有强度计量算法可用于确定字符串的复杂度水平。在一实例中,字符串‘Ju3Tou2W’被视为足够强的子字符串,因为它具有对应于‘强’复杂度值的熵值。子字符串‘Ju3Tou2W’是完整安全字符串“Ju3Tou2Wang3Ming2Yue4”中的8个前导字符。因此在这个实例中,将子字符串‘Ju3Tou2W’确定为基于与完整安全字符串中的一或多个前导字符相关联的熵值的至少一个子字符串。
在阶段810处,服务器202上的认证模块322被配置成生成和存储至少一个子字符串散列代码和至少一个对应字符计数值。对于本地认证,移动装置100上的认证模块144和受信任环境160还可以被配置成生成和存储至少一个子字符串散列代码和至少一个对应字符计数值。服务器202或移动装置100可以是用于生成和存储至少一个子字符串散列代码和至少一个对应字符计数值的装置。继续上述实例,子字符串‘Ju3Tou2W’和可选盐值(在阶段812处生成)可用于创建子字符串散列代码(例如经由如先前所描述的加密散列函数)。如图7中所描绘,可以将子字符串散列代码、对应字符计数值和可选盐值存储在安全表格704(即,704c、704d、704e)中。在本地认证实施例中,安全表格704可以存留在移动装置上的受信任环境160中。
参考图9,进一步参考图1到7,用于服务器上的加速的口令句校验的过程900包含所展示阶段。但是,过程900仅仅是实例且没有限制性。例如,可通过添加、去除、重新布置、组合和/或同时执行各阶段来更改过程900。举例来说,接收上下文信息是可任选的且因此利用虚线来描绘阶段906。
在阶段902处,服务器604上的接入控制器324被配置成接收来自客户端602的接入请求,以使得接入请求包含用户标识。在一实例中,客户端602是移动装置100且经由网络210接收接入请求。服务器604是用于接收来自客户端的接入请求的装置。用户标识可以基于用户所选择的用户名,或其可以与特定客户端装置(例如网络接口控制器(NIC)、订户标识模块(SIM)或其它唯一密钥)相关联。客户端602可能需要接入内容数据库206上的信息且服务器202被配置成基于例如安全口令句的先前所提供的信息来校验客户的凭证。用户标识用于使安全凭证与特定客户端/用户发生关联。
在可选阶段906处,服务器604上的上下文评估器326被配置成接收上下文信息。上下文信息可以是位置信息(例如移动装置的当前位置),或例如经由移动装置100上的麦克风所捕获的环境噪音的其它同时环境信息。上下文信息可以是在阶段902处接收的接入请求的时间,且上下文评估器326被配置成将所述时间与对应于客户端的使用历史和先前行为的数据文件进行比较。上下文评估器326可以指派对应于其中客户端602正请求接入的当前上下文的上下文选择准则704f。上下文选择准则704f可以是指示与所述上下文相关联的安全需求的相对规模的整数值或其它数据类型。如图7中所描绘,虽然较低上下文选择准则704f(例如值为7)仅要求输入完整安全字符串的前8个字符(例如子字符串)以验证用户,但是安全表格704指示较高上下文选择准则704f(例如值为10)要求完整安全字符串的输入项以验证用户。在一实施例中,接入控制数据库204可以仅含有用于客户端的两个安全字符串(即,完整安全字符串和单个子字符串)。如果上下文信息通过服务器604来接收,那么其可用于确定是需要完整安全字符串还是子字符串(即,仅需要两个上下文选择标准值)。上下文选择可以基于例如位置和时间、或时间和历史(即,检测接入账户的多个尝试)的一或多个因素。环境和行为因素的其它组合可用于确定当前上下文值。服务器604上的上下文评估器326是用于确定当前上下文值的装置。
在阶段904处,服务器604中的接入控制器324被配置成至少部分地基于在阶段902处所接收的用户标识信息来确定字符计数值。服务器604上的接入控制数据库204是用于确定字符计数值的装置。服务器604可以利用用户标识和可选上下文选择准则来查询接入控制数据库204(例如经由存储程序或其它数据接入命令)以确定字符计数值。字符计数值704e是对应子字符串(例如图5A,前‘x’个字符)中的字符的数目。如果仅完整安全字符串和单个子字符串与用户相关联,那么选择子字符串的字符计数且在阶段908处将所述字符计数提供到客户端。举例来说,客户端可以经由网络210来接收字符计数信息消息618。
在阶段910处,服务器604上的接入控制器324被配置成接收来自客户端的子字符串,以使得子字符串的长度对应于字符计数值。接入控制器324是用于接收来自客户端的子字符串的装置。客户端可以发送包含对应长度的子字符串的子字符串消息620。继续上文所论述的实例,如果服务器604在阶段908处提供了的字符计数值‘8’,那么客户端602可以包含子字符串消息620中的子字符串‘Ju3Tou2W’。
在阶段912处,服务器604上的接入控制器324被配置成校验阶段910处所接收的子字符串。接入控制器324是用于校验子字符串的装置。所接收的子字符串可以与先前存储的盐值(例如704c)组合且可以确定加密散列代码。将所得散列代码与接入控制数据库204中的相应记录(例如704d)进行比较。如果散列代码匹配,那么子字符串有效且在阶段914处允许接入请求。如果散列代码并不匹配,那么子字符串无效且在阶段914处拒绝接入请求。服务器604基于验证的所述允许或拒绝结果的功能性可以基于应用程序而变化。在一实例中,在验证失败后,服务器604可以被配置成请求用户基于字符计数值进行一或多个额外尝试,且在后续尝试后接着可以请求用户输入完整安全字符串。
参考图10,进一步参考图1到7,用于客户端上的加速的口令句校验的过程1000包含所展示阶段。但是,过程1000仅仅是实例且没有限制性。例如,可以通过添加、移除、重新布置、组合和/或同时执行各阶段来更改过程1000。例如移动装置100的客户端602是用于执行过程1000的装置。
在阶段1002处,移动装置100被配置成在服务器上创建包含用户标识符值和完整安全字符串的用户帐户,以使得所述完整安全字符串从第一字符开始。用户标识符值可以是由用户输入或向用户提供的字符串(例如电子邮件地址或其它唯一标识符)。用户标识符可以是例如NIC或SIM值的***变量。完整安全字符串可以是连续字符的相对超长字符串或其它数据(例如对应于手势输入的持久性数据)。所述序列从第一字符开始。举例来说,在图5A中提供的完整安全字符串“Ju3Tou2Wang3Ming2Yue4”从第一字符‘J’开始。完整安全字符串可以经由触摸屏显示器151或经由其它类型的输入装置由用户来提供。
在阶段1004处,移动装置100被配置成通过提供用户标识符值和子字符串来接入用户帐户,以使得子字符串由从第一字符开始的完整安全字符串中的连续字符的子集构成。用户之后可以试图通过提供适当安全凭证来接入在阶段1002处创建的用户帐户。通过将用户标识符键入到适当数据对象中来提供用户标识符,或可以基于硬件配置(例如NIC、SIM)而被动地提供用户标识符。用户接着可以开始输入其在阶段1002处所提供的完整安全字符串。继续以上实例,用户将第一字符‘J’输入到适当数据对象中(例如文本框对象153)且继续输入连续字符。也就是说,由用户提供的子字符串是‘J’接着‘u’接着‘3’接着‘T’接着‘o’接着‘u’接着‘2’接着‘W’等。在此过程中键入至少第一字符‘J’后但键入完整安全字符串前的任一点处,用户的凭证得到验证或被拒绝。待输入的子字符串中的字符的数目不为用户所知。如上文所论述,子字符串中的字符的数目可以基于先前评估的子字符串的熵值(即,强度)而变化。在一实施例中,所述移动装置的当前上下文还可以用于确定子字符串的长度。因此,经由过程1000,加速的口令句验证通过所述移动装置得以实现。
可根据特定要求进行实质性变化。举例来说,还可使用定制硬件,且/或可以在硬件、软件(包含便携式软件,例如小程序等)或这两个中实施特定元件。另外,可采用对例如网络输入/输出装置的其它计算装置的连接。
计算机***(例如计算机***300)可用于执行根据本公开的方法。响应于处理器310执行含于工作存储器335中的一或多个指令的一或多个序列(可以将所述一或多个指令并入到操作***340和/或例如应用程序345的其它代码中),可以利用计算机***300来执行这类方法的程序中的一些或全部。可以将这类指令从例如存储装置325中的一或多个的另一计算机可读媒体读取到工作存储器335中。仅通过实例的方式,含于工作存储器335中的指令的序列的执行可以使得处理器310执行本文中所描述的方法的一或多个程序。
如本文中所使用,术语“机器可读媒体”和“计算机可读媒体”是指参与提供使机器以特定方式操作的数据的任何媒体。在使用移动装置100和/或计算机***300来实施的一实施例中,各种计算机可读媒体可以参与向处理器111、310提供指令/代码以用于执行且/或可以用于存储和/或携载这类指令/代码(例如作为信号)。在许多实施方案中,计算机可读媒体是实体和/或有形的存储媒体。这类媒体可以呈许多形式,包含但不限于非易失性媒体、易失性媒体和发射媒体。非易失性媒体包含例如光盘和/或磁盘,例如存储装置140、325。易失性媒体包含但不限于动态存储器,例如工作存储器140、335。发射媒体包含但不限于包含包括总线101、305的电线的同轴缆线、铜线和光纤以及通信子***330的各种组件(和/或通信子***330借以提供与其它装置的通信的媒体)。因此,发射媒体还可以呈波(包含但不限于无线电波、声波和/或光波,例如在无线电波和红外数据通信期间所产生的那些波)的形式。
常见形式的实体和/或有形的计算机可读媒体包含例如软性磁盘、软磁盘、硬盘、磁带或任何其它磁性媒体、CD-ROM、蓝光光盘、任何其它光学媒体、打孔卡、纸带、具有孔图案的任何其它实体媒体、RAM、PROM、EPROM、闪存EPROM、任何其它存储器芯片或盒带、如下文所描述的载波或计算机可以从其读取指令和/或代码的任何其它媒体。
各种形式的计算机可读媒体可以参与将一或多个指令的一或多个序列携载到处理器111、310以用于执行。仅通过实例的方式,最初可将指令携载于远程计算机的磁盘和/或光盘上。远程计算机可以将指令加载到其动态存储器中且经由发射媒体将指令作为信号发送以利用移动装置100和/或计算机***300来接收和/或执行。根据本发明的各种实施例,可呈电磁信号、声学信号、光学信号和/或类似形式的这些信号都是可在其上编码指令的载波的实例。
上文所论述的方法、***和装置是实例。适当时各种替代性配置可以省略、取代或添加各种程序或组件。举例来说,在替代方法中,可按与上文所论述不同的顺序来执行各阶段,并且可添加、省略或组合各个阶段。另外,可以各种其它配置来组合关于特定配置所描述的特征。可以类似方式来组合配置的不同方面和元件。另外,技术在发展,且因此许多元件是实例且并不限制本公开或权利要求书的范围。
在描述中给出特定细节以提供对(包含实施方案的)实例配置的透彻理解。然而,可在没有这些特定细节的情况下实践配置。举例来说,在没有不必要的细节的情况下已经展示了熟知电路、过程、算法、结构和技术以便避免混淆所述配置。本说明书仅提供实例配置且并不限制权利要求书的范围、适用性或配置。确切地说,所述配置的先前描述将向所属领域的技术人员提供用于实施所描述的技术的启发性描述。在不脱离本公开的精神或范围的情况下可以对元件的功能和布置做出各种改变。
可将配置描述为被描绘为流程图或框图的过程。尽管每一流程图或框图可将操作描述为依序处理过程,但许多操作可并行或同时地执行。另外,可以重新布置所述操作的顺序。过程可具有未包含在图中的额外步骤。此外,可由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实现所述方法的实例。当在软件、固件、中间件或微码中实施时,可将用以执行必要任务的程序代码或代码段存储在例如存储媒体的非暂时性计算机可读媒体中。处理器可以执行所描述的任务。
如本文中所使用,包含在权利要求书中,以“的至少一个”开始的项目的列表中所使用的“或”指示分离性列表,以使得例如“A、B或C中的至少一个”的列表是指A或B或C或AB或AC或BC或ABC(即,A和B和C)或与多于一个特征的组合(例如AA、AAB、ABBC等)。
如本文中所使用,包含在权利要求书中,除非另外规定,否则功能或操作是“基于”项目或条件的表述意味着所述功能或操作是基于所陈述的项目或条件且可以基于除了所陈述的项目或条件之外的一或多个项目和/或条件。
在描述了若干实例配置后,在不脱离本公开的精神的情况下可以使用各种修改、替代构造和等效物。举例来说,以上元件可以是较大***的组件,其中其它规则可以优先于或以其它方式修改本发明的应用。另外,可以在考虑以上元件之前、期间或之后进行许多步骤。因此,以上描述并不约束权利要求书的范围。
Claims (18)
1.一种用于在计算装置上验证用户的安全凭证的方法,所述方法包括:
在服务器上创建包含用户标识符值和完整安全字符串的用户帐户,其中所述完整安全字符串从第一字符开始;
随后通过如下操作来接入所述用户帐户:
向所述服务器提供所述用户标识符;
接收来自所述服务器的与所述用户标识符相关联的字符计数值,其中所述字符计数值基于所述计算装置的当前上下文对应于密码强度;
接收来自用户的输入,其中所述输入由从所述第一字符开始的所述完整安全字符串中的连续字符的子集构成;及
当所述输入中的字符的数目等于所述字符计数值时,向所述服务器提供所述输入。
2.一种用于校验从客户端接收的接入请求的方法,所述方法包括:
接收来自用户的用户标识和完整安全字符串,其中所述完整安全字符串从第一字符开始;
生成多个子字符串,其中所述多个子字符串中的每一个都由从所述第一字符开始的所述完整安全字符串中的连续字符的子集构成,且所述多个子字符串中的每一个与密码强度值和字符计数值相关联;
接收来自所述客户端的所述接入请求,其中所述接入请求包含所述用户标识;
至少部分地基于所述用户标识和所述客户端的当前上下文来确定所述多个子字符串中的一个;
向所述客户端提供与所述多个子字符串中的所述一个相关联的所述字符计数值;接收来自所述客户端的输入子字符串,其中所述输入子字符串的长度对应于所述字符计数值;
校验所述输入子字符串;
如果所述输入子字符串有效,那么允许所述接入请求;及
如果所述输入子字符串无效,那么拒绝所述接入请求。
3.根据权利要求2所述的方法,其中所述当前上下文包含所述客户端的当前位置。
4.根据权利要求2所述的方法,其中所述当前上下文包含接收所述接入请求的时间。
5.根据权利要求2所述的方法,其中校验所述输入子字符串包含确定用于所述输入子字符串的子字符串散列代码。
6.根据权利要求5所述的方法,其进一步包括:
至少部分地基于所述用户标识来确定盐值;及
将所述输入子字符串与所述盐值组合,其中针对所述输入子字符串与所述盐值的所述组合确定所述子字符串散列代码。
7.一种设备,其包括:
存储器;
至少一个处理器,其操作性地耦合到所述存储器且被配置成:
接收完整安全字符串,其中所述完整安全字符串从第一字符开始;
生成完整安全字符串散列代码;
将所述完整安全字符串散列代码存储在所述存储器中;
基于熵值来确定至少一个子字符串,其中所述至少一个子字符串由从所述第一字符开始的所述完整安全字符串中的连续字符的子集构成;
生成至少一个子字符串散列代码和至少一个对应字符计数值,其中所述至少一个对应字符计数值等于所述至少一个子字符串中的字符的数目;且
将所述至少一个子字符串散列代码和所述至少一个对应字符计数值存储在所述存储器中。
8.根据权利要求7所述的设备,其中所述至少一个处理器被配置成:
生成第一盐值;
将所述第一盐值与所述完整安全字符串组合;且
基于所述第一盐值与所述完整安全字符串的所述组合来生成所述完整安全字符串散列代码。
9.根据权利要求7所述的设备,其中所述至少一个处理器被配置成:
生成第二盐值;
将所述第二盐值与所述至少一个子字符串组合;且
基于所述第二盐值与所述至少一个子字符串的所述组合来生成所述至少一个子字符串散列代码。
10.根据权利要求7所述的设备,其中所述完整安全字符串包括对应于手势输入的持久性数据。
11.根据权利要求7所述的设备,其中所述至少一个处理器被配置成对所述完整安全字符串执行加密散列来生成所述完整安全字符串散列代码。
12.根据权利要求7所述的设备,其中所述至少一个处理器被配置成对所述至少一个子字符串执行加密散列来生成所述至少一个子字符串散列代码。
13.根据权利要求7所述的设备,其中评估用于所述至少一个子字符串的所述熵值为低于用于所述完整安全字符串的熵值的复杂度水平的复杂度水平。
14.一种设备,其包括:
存储器;
至少一个处理器,其操作性地耦合到所述存储器且被配置成:
在服务器上创建包含用户标识符值和完整安全字符串的用户帐户,其中所述完整安全字符串从第一字符开始;
在提供所述用户标识符值后接收来自所述服务器的字符计数值,其中所述字符计数值对应于所需密码强度;且
通过提供所述用户标识符值和长度等于所述字符计数值的子字符串来接入所述用户帐户,其中所述子字符串包含从所述第一字符开始的所述完整安全字符串中的连续字符的子集。
15.根据权利要求14所述的设备,其中所述至少一个处理器被配置成:
确定用于所述设备的上下文信息,其中所述所需密码强度至少部分地基于所述上下文信息;且
通过提供所述上下文信息、所述用户标识符值和所述子字符串来接入所述用户帐户。
16.根据权利要求15所述的设备,其中所述至少一个处理器被配置成在提供所述用户标识符值和所述上下文信息后接收来自所述服务器的所述字符计数值。
17.根据权利要求15所述的设备,其中所述上下文信息包含所述设备的当前位置。
18.根据权利要求15所述的设备,其中所述上下文信息包含当前时间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/673,561 | 2015-03-30 | ||
US14/673,561 US10091188B2 (en) | 2015-03-30 | 2015-03-30 | Accelerated passphrase verification |
PCT/US2016/022564 WO2016160333A1 (en) | 2015-03-30 | 2016-03-16 | Accelerated passphrase verification |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107431624A CN107431624A (zh) | 2017-12-01 |
CN107431624B true CN107431624B (zh) | 2020-11-20 |
Family
ID=55637490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680015472.1A Expired - Fee Related CN107431624B (zh) | 2015-03-30 | 2016-03-16 | 用于验证用户的安全凭证的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10091188B2 (zh) |
EP (2) | EP3278528B1 (zh) |
JP (1) | JP6453486B2 (zh) |
KR (1) | KR101977672B1 (zh) |
CN (1) | CN107431624B (zh) |
WO (1) | WO2016160333A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10116441B1 (en) * | 2015-06-11 | 2018-10-30 | Amazon Technologies, Inc. | Enhanced-security random data |
WO2018100682A1 (ja) * | 2016-11-30 | 2018-06-07 | 株式会社オプティム | コンピュータシステム、IoT機器監視方法及びプログラム |
US10681037B2 (en) * | 2017-06-29 | 2020-06-09 | Amadeus S.A.S. | Terminal authentication |
US11036780B2 (en) * | 2018-03-08 | 2021-06-15 | Ebay Inc. | Automatic lot classification |
US11418335B2 (en) | 2019-02-01 | 2022-08-16 | Hewlett-Packard Development Company, L.P. | Security credential derivation |
US11343672B2 (en) | 2019-02-20 | 2022-05-24 | Coretigo Ltd. | Secure communication encryption and decryption mechanism in a wireless communication system |
US11240227B2 (en) * | 2019-06-10 | 2022-02-01 | Microsoft Technology Licensing, Llc | Partial pattern recognition in a stream of symbols |
US11258783B2 (en) | 2019-06-10 | 2022-02-22 | Microsoft Technology Licensing, Llc | Authentication with random noise symbols and pattern recognition |
US11496457B2 (en) | 2019-06-10 | 2022-11-08 | Microsoft Technology Licensing, Llc | Partial pattern recognition in a stream of symbols |
US11736472B2 (en) | 2019-06-10 | 2023-08-22 | Microsoft Technology Licensing, Llc | Authentication with well-distributed random noise symbols |
US20200389443A1 (en) * | 2019-06-10 | 2020-12-10 | Microsoft Technology Licensing, Llc | Authentication with random noise symbols and pattern recognition |
US11178135B2 (en) | 2019-06-10 | 2021-11-16 | Microsoft Technology Licensing, Llc | Partial pattern recognition in a stream of symbols |
US11514149B2 (en) | 2019-06-10 | 2022-11-29 | Microsoft Technology Licensing, Llc | Pattern matching for authentication with random noise symbols and pattern recognition |
CN110489466B (zh) * | 2019-07-03 | 2023-09-08 | 平安证券股份有限公司 | 邀请码的生成方法、装置、终端设备及存储介质 |
US11394551B2 (en) | 2019-07-17 | 2022-07-19 | Microsoft Technology Licensing, Llc | Secure authentication using puncturing |
US11133962B2 (en) | 2019-08-03 | 2021-09-28 | Microsoft Technology Licensing, Llc | Device synchronization with noise symbols and pattern recognition |
US11258779B2 (en) * | 2020-01-14 | 2022-02-22 | Cisco Technology, Inc. | Wireless LAN (WLAN) public identity federation trust architecture |
US11528276B2 (en) * | 2020-04-16 | 2022-12-13 | Bank Of America Corporation | System for prevention of unauthorized access using authorized environment hash outputs |
US11425123B2 (en) | 2020-04-16 | 2022-08-23 | Bank Of America Corporation | System for network isolation of affected computing systems using environment hash outputs |
US11423160B2 (en) | 2020-04-16 | 2022-08-23 | Bank Of America Corporation | System for analysis and authorization for use of executable environment data in a computing system using hash outputs |
US11481484B2 (en) | 2020-04-16 | 2022-10-25 | Bank Of America Corporation | Virtual environment system for secure execution of program code using cryptographic hashes |
CN111797285A (zh) * | 2020-06-30 | 2020-10-20 | 深圳壹账通智能科技有限公司 | 字符串模糊匹配方法、装置、设备及可读存储介质 |
US11625477B2 (en) * | 2020-08-13 | 2023-04-11 | Capital One Services, Llc | Automated password generation |
US11657142B2 (en) | 2021-05-12 | 2023-05-23 | Micro Focus Llc | Stateless password manager |
CN113806730B (zh) * | 2021-09-18 | 2024-03-08 | 北京安天网络安全技术有限公司 | 一种安全密码输入方法、***、设备及介质 |
US20230198978A1 (en) * | 2021-12-22 | 2023-06-22 | Mcafee, Llc | Deterministic hash to secure personal data and passwords |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902461A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种数据流内容过滤的方法及装置 |
CN102246166A (zh) * | 2008-12-30 | 2011-11-16 | 国际商业机器公司 | 利用哈希算法的搜索引擎服务 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3829355B2 (ja) * | 1996-04-09 | 2006-10-04 | 松下電器産業株式会社 | 利用者照合装置 |
JP2002091921A (ja) * | 2000-09-20 | 2002-03-29 | Nippon Telegraph & Telephone East Corp | 認証方法及び認証装置 |
EP1570442A2 (en) * | 2002-11-27 | 2005-09-07 | RSA Security Inc. | Identity authentication system and method |
US7299359B2 (en) * | 2003-04-23 | 2007-11-20 | Apple Inc. | Apparatus and method for indicating password quality and variety |
US7886345B2 (en) | 2004-07-02 | 2011-02-08 | Emc Corporation | Password-protection module |
US8145912B2 (en) | 2005-03-01 | 2012-03-27 | Qualcomm Incorporated | System and method for using a visual password scheme |
US8046827B2 (en) * | 2007-06-12 | 2011-10-25 | Francisco Corella | Access control of interaction context of application |
US8386461B2 (en) | 2008-06-16 | 2013-02-26 | Qualcomm Incorporated | Method and apparatus for generating hash mnemonics |
US8495715B2 (en) | 2009-02-23 | 2013-07-23 | Oracle International Corporation | Techniques for credential auditing |
JP5289152B2 (ja) * | 2009-04-14 | 2013-09-11 | 三菱電機株式会社 | 生体認証装置および生体認証システム |
US8832807B1 (en) | 2010-08-05 | 2014-09-09 | Christine E. Kuo | Method and apparatus for asynchronous dynamic password |
WO2012125758A1 (en) | 2011-03-14 | 2012-09-20 | Qualcomm Atheros, Inc. | Hybrid networking master passphrase |
US9471772B2 (en) | 2011-06-01 | 2016-10-18 | Paypal, Inc. | Password check by decomposing password |
US8869305B1 (en) * | 2011-09-22 | 2014-10-21 | Symantec Corporation | Systems and methods for implementing password-protection policies based on physical locations of mobile devices |
JP2013131164A (ja) * | 2011-12-22 | 2013-07-04 | Internatl Business Mach Corp <Ibm> | ロック機能を有する情報処理装置およびロック機能を実行させるためのプログラム |
US8613066B1 (en) | 2011-12-30 | 2013-12-17 | Amazon Technologies, Inc. | Techniques for user authentication |
CN102693380A (zh) * | 2012-05-07 | 2012-09-26 | 李良 | 一种密码验证方法 |
US8756677B2 (en) * | 2012-05-30 | 2014-06-17 | Google Inc. | Variable-strength security based on time and/or number of partial password unlocks |
US9245107B2 (en) | 2012-12-21 | 2016-01-26 | Paypal, Inc. | Systems and methods for determining a strength of a created credential |
US20140189885A1 (en) * | 2012-12-27 | 2014-07-03 | Microsoft Corporation | Permitting a user access to password protected data |
US9135427B2 (en) | 2013-01-30 | 2015-09-15 | Arris Technology, Inc. | Authentication using a subset of a user-known code sequence |
US9654479B2 (en) * | 2013-02-28 | 2017-05-16 | Apple Inc. | Private discovery of electronic devices |
US10726159B2 (en) * | 2014-01-31 | 2020-07-28 | Maxell, Ltd. | Portable terminal device executing an application in accordance with a selection made by a user |
US9390242B2 (en) * | 2014-02-07 | 2016-07-12 | Bank Of America Corporation | Determining user authentication requirements based on the current location of the user being within a predetermined area requiring altered authentication requirements |
US9348989B2 (en) * | 2014-03-06 | 2016-05-24 | International Business Machines Corporation | Contemporaneous gesture and keyboard entry authentication |
-
2015
- 2015-03-30 US US14/673,561 patent/US10091188B2/en not_active Expired - Fee Related
-
2016
- 2016-03-16 EP EP16712164.9A patent/EP3278528B1/en not_active Not-in-force
- 2016-03-16 WO PCT/US2016/022564 patent/WO2016160333A1/en active Application Filing
- 2016-03-16 CN CN201680015472.1A patent/CN107431624B/zh not_active Expired - Fee Related
- 2016-03-16 KR KR1020177027347A patent/KR101977672B1/ko active IP Right Grant
- 2016-03-16 EP EP17199146.6A patent/EP3300333A1/en not_active Withdrawn
- 2016-03-16 JP JP2017550703A patent/JP6453486B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102246166A (zh) * | 2008-12-30 | 2011-11-16 | 国际商业机器公司 | 利用哈希算法的搜索引擎服务 |
CN101902461A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种数据流内容过滤的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107431624A (zh) | 2017-12-01 |
KR101977672B1 (ko) | 2019-05-13 |
US10091188B2 (en) | 2018-10-02 |
JP6453486B2 (ja) | 2019-01-16 |
WO2016160333A1 (en) | 2016-10-06 |
JP2018514030A (ja) | 2018-05-31 |
EP3278528B1 (en) | 2018-09-05 |
EP3278528A1 (en) | 2018-02-07 |
EP3300333A1 (en) | 2018-03-28 |
US20160294802A1 (en) | 2016-10-06 |
KR20170131467A (ko) | 2017-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107431624B (zh) | 用于验证用户的安全凭证的方法和设备 | |
US10348715B2 (en) | Computer-implemented systems and methods of device based, internet-centric, authentication | |
EP2657871B1 (en) | Secure configuration of mobile application | |
US9491165B2 (en) | Providing a service based on time and location based passwords | |
US9727715B2 (en) | Authentication method and system using password as the authentication key | |
US10255425B2 (en) | Secure authentication protocol systems and methods | |
US11509642B2 (en) | Location-based mobile device authentication | |
US20160301531A1 (en) | Proof of work based user identification system | |
US9331995B2 (en) | Secure configuration of mobile application | |
EP2951950B1 (en) | Methods for activation of an application on a user device | |
US9762657B2 (en) | Authentication of mobile applications | |
WO2015074443A1 (en) | An operation processing method and device | |
EP3289519B1 (en) | Acquisition of a device fingerprint from an instance of a client application | |
US20160373422A1 (en) | User identity based on location patterns of non-associated devices | |
US20230171087A1 (en) | Server Side Authentication | |
WO2021169305A1 (zh) | 声纹数据处理方法、装置、计算机设备和存储介质 | |
WO2022083695A1 (en) | Multi-factor authentication of internet of things devices | |
US10461932B2 (en) | Method and system for digital signature-based adjustable one-time passwords | |
CN112769565A (zh) | 密码加密算法的升级方法、装置、计算设备和介质 | |
EP3163490B1 (en) | Providing security assurance information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201120 |
|
CF01 | Termination of patent right due to non-payment of annual fee |