一种实现强口令认证方式的安全系统及方法

文档序号:7665560阅读:356来源:国知局
专利名称:一种实现强口令认证方式的安全系统及方法
技术领域
本发明涉及口令认证领域,特别是一种实现实体强口令认证方式的安全系 统及方法
背景技术
口令(Password)登录认证是大多数应用系统普遍采用的一种比较简便易 行的登录认证方式。在口令登录认证中,口令被用于验证用户对系统进行访问 时的身份。但是,在现有技术中,口令登录认证方式在使用过程中存在较多的 安全问题,比如口令容易被窥探,以及容易被字典攻击、穷举尝试、垃圾搜索、 信息截取/重放、网络数据流窃听等攻击手段所威胁。在具体使用中,尽管可 以通过经常更换口令和增加口令长度的方法来在某种程度上增强口令的安全 性,但这同时也会给用户带来记忆和操作上的麻烦。此外,现有的口令认证都 是针对客户端单方面所进行的,因此客户端的用户有可能且很容易被假冒服务 器所欺骗,从而导致用户口令的泄漏。
为了解决口令登录认证中所存在的安全问题,安全专家们提出了一种一次 性动态口令(One-Time Password, OTP)认证的安全机制。所谓动态口令,是 由电子令牌(Token)等手持终端设备生成的,根据某种密码算法,所产生的 随某一个不断变化的参数(例如时间,事件等)而不停地、没有重复地变化的 一种口令。是为了解决传统静态的、固定的口令和密码所存在的无法解决的缺 陷,而设计的一种密码体制,用以保护用户的关键数据资源。动态口令认证的 主要原理是客户端的用户在登录前,依据用户的私人身份信息并引入根据不 确定因素产生随机变化的动态口令,使得每次用户登录过程中所传送至系统的 ^fr态口令信息都各不相同,即该动态口令只使用一次,以后不再使用,从而可 以大大提高用户登录过程中的安全性。 一般来说,动态因子越多、口令随机性 越好、其抗攻击能力越强。
但是,现有技术的动态口令登录认证方法依然无法避免用户口令的泄漏,口令容易被窥探和遭到各种攻击。避免用户口令泄漏依然是急需解决的问题。

发明内容
本发明的目的在于,提出一种实现强口令认证方式的安全系统及方法,以 解决现有的口令认证方式中,口令容易被窥探和遭到各种攻击等问题。
为了实现上述目的,本发明公开了 一种实现强口令认证方式的安全系统, 包括
客户端,所述客户端包括第一接口模块以及第一功能模块; 安全模块,所述安全模块包括第二接口模块、输入单元、第一存储模块以 及第二功能模块;
认证服务器端,所述认证服务器端包括第三功能模块以及第二存储模块; 所述第一接口模块与所述第二接口模块用于实现所述客户端与所述安全
模块的功能性连接;
所述第一功能模块用于实现与所述认证服务器端进行会话以及口令认证
等功能,所述第二功能模块用于实现验证安全模块开启PIN码、口令计算等功
能,所述第三功能模块用于实现与所述客户端进行会话以及口令计算、认证等
功能;
所述输入单元用于以让用户通过其对所述安全模块进行数据输入;
所述第一存储模块用于存储所述安全模块中预存的各种数据,所述第二存 储模块用于存储与口令认证相关的各种数据。
较佳的,所述安全模块中,还包括第一时钟计数器,所述认证服务器端中, 还包括一第二时钟计数器。
较佳的,所述第一时钟计数器和第二时钟计数器的时钟同步。
较佳的,所述安全模块中,还包括显示单元,用于显示所述认证服务器端 发送来的挑战信息。
较佳的,所述客户端中,还包括显示单元,用于显示所述认证服务器端发 送来的挑战信息。
较佳的,所述显示单元为液晶显示屏幕。
较佳的,所述挑战信息包括挑战码,所述挑战码为所述认证服务器端临时 随机产生的可显示的数字/字符串,或者该数字/字符串的任何图形加扰形式。
较佳的,所述客户端中还包括第一验证模块,所述认证服务器端中还包括 第二验证模块,所述第一验证模块和第二验证模块用于对所述客户端与所述认 证服务器端间进行交互的各种信息生成验证码,并通过与交互信息一同发送来 的验证码验证交互信息的完整性。
较佳的,所述安全模块中包括第一同步模块,所述认证服务器端中包括第 二同步模块,所述第一同步模块与第二同步模块用于实现所述第一时钟计数器 与第二时钟计数器的时钟同步。
为了实现上述目的,本发明还公开了一种实现强口令认证方式的方法,包 括以下歩骤
步骤A,对客户端、安全模块以及认证服务器端进行初始化; 步骤B,用户将所述安全模块插入到所述客户端中,使所述安全模块与客 户端间建立功能性连接;
步骤C,用户在所述安全模块的输入单元中输入安全模块开启PIN码以开 启所述安全模块的安全功能,当所述安全模块验证得出所述安全模块开启PIN
码正确无误后,进入步骤D,否则报错退出;
步骤D,用户操纵所述客户端,向所述认证服务器端发出一登录请求;
步骤E,所述认证服务器端向所述客户端发送一个挑战信息;
歩骤F,所述用户依照所看到的挑战信息和提示,在所述安全模块的输入
单元中输入所看到的挑战码cc,所述安全模块计算本次登录所用的动态口令
并通过所述客户端发送所述动态口令至所述认证服务器端;
步骤G,所述认证服务器端验证所述动态口令是否正确,若动态口令正确,
则登录成功,否则报错退出。
较佳的,在所述步骤A的初始化过程中,将所述安全模块与所述认证服
务器端的时钟被设置为同步关系。
较佳的,所述步骤D中,还包括一步骤,记录当前时间作为客户端登录
计时起点。
较佳的,在步骤E中,先有一所述认证服务器端根据初始化时设定的规则, 判断所述登录请求是否合法的步骤,若登录请求合法,则发送挑战信息,否则 报错退出。
较佳的,所述认证服务器端根据用户登录请求中的登录用户名以及安全模
块标识判断所述登录请求是否合法。
较佳的,所述挑战信息包括挑战码和认证服务器端允许的本次登录周期有 效时间长度,所述挑战码为所述认证服务器端临时随机产生的可显示的数字/ 字符串,或者该数字/字符串的任何图形加扰形式。
较佳的,所述步骤E中,还包括一步骤,记录当前时间作为认证服务器端 登录计时起点。
较佳的,在步骤F中,还包括一步骤,根据所述客户端登录计时起点、所 述安全模块的当前时间和所述本次登录周期有效时间长度,判断当前时间是否 还在所述登录周期有效的时间之内,若超时,则退出此次登录。
较佳的,在步骤F中,还包括一步骤,在用户输入挑战码时,根据所述客 户端登录计时起点、所述安全模块的当前时间和所述本次登录周期有效时间长 度,计算当前时间是否在所述登录周期有效的时间之内,若超时,则退出此次 登录。
较佳的,在步骤F中,根据所述登录请求中包括的客户端用户标识、安全 模块标识、安全模块的当前时钟计数值或将当前时钟计数值作为种子的某种变 换形式、挑战码以及安全模块中保存的用户用于登录系统的秘密口令计算动态 口令。
较佳的,在步骤F中,使用单向杂凑算法计算动态口令。 较佳的,在步骤G中,先有一步骤,根据所述认证服务器端登录计时起 点、所述认证服务器端的当前时间和所述本次登录周期有效时间长度,判断当 前是否仍在本次登录周期的有效期内,若超时,则退出此次登录。 较佳的,在步骤G中,包括以下步骤
步骤G1,根据所述登录请求中包括的客户端用户标识、安全模块标识、 认证服务器端的当前时钟计数值或将当前时钟计数值作为种子的某种变换形 式、挑战码以及认证服务器端中保存的用户用于登录系统的秘密口令计算验证 口令;
步骤G2,对比所述验证口令与动态口令,若一致,则登录成功,否则报 错退出。
较佳的,在步骤G1中,使用单向杂凑算法计算验证口令。
较佳的,在步骤G1中,在所述当前时钟计数值或将当前时钟计数值作为
种子的某种变换形式的前后一定范围内,计算所述验证口令;
在步骤G2中,若在该时间范围内能够有一个时间点的计算结果满足所述
验证口令与所述动态口令一致,则登录成功,否则报错退出。
较佳的,在每一需要发送信息或数据的步骤中,都包括一发送方对所述信
息或数据生成验证信息,并与所述信息或数据一同发送的步骤;
在每一接受信息或数据的步骤中,都包括一接受方根据与所述信息或数据
一同发送的验证信息,对所述信息与数据进行完整性验证的步骤,若不符合完
整性,则报错退出。
较佳的,在歩骤D至歩骤F中的至少一步骤中,还包括一步骤
认证服务器端向客户端发送一时间参考值,安全模块根据所述时间参考值 调整自身的时钟,以使安全模块的自身时钟与认证服务器端的时钟同步。 本发明的有益效果在于,由于可以不从主机键盘输入用户口令,因而能够
有效的防止从主机键盘和内存窥探用户口令;由于采用了足够长的随机数做用 户口令,因而能够有效抵御穷举尝试;由于登录时不在网络上直接传送用户口 令本身,因而能够防止网络数据流窃听;由于传送的动态口令信息是一次性的, 因而能够有效抵御信息截取/重放攻击。在本发明的强口令认证机制中,主要 采用到了挑战/应答机制和时间同步机制,同时结合安全模块或装置上的安全 功能特性,使得本方法除了能够抵御上述口令攻击之外,还可以抵御服务器假 冒以及中间人攻击等。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的 限定。


图1为本发明中的实现强口令认证方式的安全系统的框架图; 图2为本发明中的实现强口令认证方式的方法的流程图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明的实现强口令认证方式的安全系统及方法进行进一步详细说 明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定
本发明。
请参照图1所示,此为本发明中的实现强口令认证方式的安全系统的框架 图。在所述实现强口令认证方式的安全系统10中,包括有客户端ll、安全模 块12以及认证服务器端13。
所述客户端11中,包括有第一接口模块111以及第一功能模块112。其
中,接口模块111用于连接安全模块12,所述第一功能模块112用于实现与 所述认证服务器端13进行会话以及口令认证等功能。
所述安全模块12中,包括有第二接口模块121、输入单元122、第一存储 模块123以及第二功能模块124。其中,所述第二接口模块121用于通过所述 第一接口模块111使所述安全模块12与所述客户端11进行功能性连接;所述 输入单元122用于以让用户可以通过其对所述安全模块12进行数据输入,所 述输入单元122可以是如键盘或手写输入屏等;所述第一存储模块123用于存 储所述安全模块12中预存的各种数据;所述第二功能模块124用于进行口令 计算等操作。
所述认证服务器端13中,包括有第三功能模块131以及第二存储模块 132。所述第三功能模块131用于实现与所述客户端11进行会话以及口令计算、 认证等功能;所述第二存储模块132用于存储与口令认证相关的各种数据。
当用户使用上述实现强口令认证方式的安全系统IO进行口令认证时,首 先,用户将安全模块12插入客户端11中,通过所述安全模块12的第二接口 模块121与所述客户端11的第一接口模块111,使所述客户端11与所述安全 模块12进行功能性连接。
而后,用户通过所述安全模块12的输入单元122,输入安全模块开启PIN 码以开启所述安全模块12,当所述安全模块12验证得出所述安全模块开启PIN 码正确时,所述安全模块12开启其安全功能。
当所述安全模块12的安全功能开启后,用户操作所述客户端ll,向所述 认证服务器端13发送登录请求以及认证口令。所述登录请求中,包括有客户 端用户标识、进程标识以及安全模块标识,其中,所述客户端用户标识是由用 户键入的登录用户名UID,所述进程标识是由登录进程自动从系统中获取的实 施登录操作的进程的标识PID,所述安全模块标识可以是所述安全模块12的 设备标识MID等,其中,进程标识PID是用户在客户端登录时所执行的程序 在客户端系统上运行时由系统所赋予给它的值,同一个应用程序的PID在每次 运行的时候可能是不同的,这就具备一定的随机性,登录请求中采用PID的目 的,是用来与用户做一定的关联。所述认证口令,由所述安全模块12根据保 存在所述第一存储模块123中的用户PIN码和登录口令(PWD—C),结合所 述客户端用户标识以及安全模块标识,在所述安全模块12内部进行计算所生 成,所述计算认证口令的算法为已知的单向杂凑算法,如MD5、 SHA1等。其 中,PWD—C在设置或修改时写入所述安全模块12的所述第一存储模块123 中后,便不能再被读出到所述安全模块12外部,因而登录时无需用户输入和 记忆该口令,因此,可以选择一个足够长的随机数,以增强用户口令本身的强 度。
所述认证服务器端13接收到所述认证口令后,判断所述登录请求的合法 性,当所述登录请求合法时(即UID、 MID满足所述实现强口令认证方式的 安全系统IO在初始化时预设的条件),所述认证服务器端13根据所述登录请 求中的UID、 PID、 MID以及保存在所述第二存储模块132中的用户口令 PWD—S,计算验证口令,并验证用户的登录口令是否与验证口令相一致,所 述计算口令的算法为与所述安全模块12计算认证口令时相同的算法。其中, PWD_C与PWD—S为相互对应的口令。
当用户的登录口令与验证口令一致时,所述认证服务器端13即认为进行 本次登录的用户是合法的用户,登录成功,否则登录失败。
进一步的,在本发明的另一实施例中,所述安全模块12中,还包括第一 时钟计数器125,所述认证服务器端13中,还包括一第二时钟计数器133,所 述第一时钟计数器125与第二时钟计数器133的时钟同歩。所述安全模块12 中,还包括显示单元126,所述显示单元126可以是如液晶显示屏幕等装置。
作为另一种可实施方式,所述实现强口令认证方式的安全系统10的所述 安全模块12中不包括显示单元,而是在所述客户端11中,包括有显示单元 113,显示单元设置在安全模块12或是客户端11中,对本发明中的口令认证 过程不产生实质的影响。
当所述安全模块12与所述客户端11连接、所述安全模块12的安全模块 开启PIN码验证正确,所述安全模块12开启其安全功能后,所述客户端11 先向所述认证服务器端13发送包括有客户端用户标识以及安全模块标识的登
录请求。此时,所述客户端11根据所述第--时钟计数器125的当前时间,记 录当前时间作为客户端登录计时起点。
所述认证服务器端13接收到所述登录请求后,记录所述第二时钟计数器
133的当前时间作为认证服务器端登录计时起点,并判断所述登录请求的合法
性,当所述登录请求合法时,向用户发送一个挑战信息,所述挑战信息中包括
挑战码CC以及所述认证服务器端13允许的本次登录周期的有效时间长度 Len。其中,挑战码CC是所述认证服务器端13临时随机产生的可显示的数字 /字符串,或者该数字/字符串的任何图形加扰形式,防止恶意软件自动识别该 挑战码;认证服务器端13允许的本次登录周期有效时间长度Len由登录安全 策略和经验值决定,每次登录都传送Len的好处是,服务器可以根据网络状态 和不同时段甚至不同用户动态地调整Len的值,即Len可以根据需要做动态调 整。
所述客户端11接收到所述挑战信息后,在所述显示单元126上显示所述 挑战码CC,并提示用户在所述安全模块12的所述输入单元122上输入用户所 看到的挑战码CC。同时,根据所述客户端登录计时起点、所述第一时钟计数 器125的当前时间和所述本次登录周期有效时间长度Len,判断当前时间是否 还在所述登录周期有效的时间之内,如果当前时间的值小于所述客户端登录计 时起点与所述本次登录周期有效时间长度Len的和,即当前时间在所述登录周 期有效的时间之内,则继续等待用户输入看到的挑战码CC,否则此次登录超 时失败。
用户在所述输入单元122上输入所述挑战码CC后,所述安全模块12计 算本次登录所使用的动态口令并发送所述动态口令至所述认证服务器端13, 计算所述动态口令的因子包括UID、 PID、 MID、 CC、 PWD—C以及Time—C。
其中,所述Time_C为所述安全模块12的所述第一时钟计数器125的当 前时钟计数值或当前时钟计数值的某种变换形式。
所述计算动态口令的算法为己知的单向杂凑算法,如MD5、 SHA1等。
所述认证服务器端13接收到所述动态口令后,首先根据所述认证服务器 端登录计时起点、所述第二时钟计数器133的当前时间和所述本次登录周期有 效时间长度Len,判断当前是否仍在本次登录周期的有效期内,如果当前时间 的值小于所述认证服务器端登录计时起点与所述本次登录周期有效时间长度Len的和,即当前时间在所述本次登录周期的有效期内,则继续进行后续操作,
否则此次登录超时失败。
而后,所述认证服务器端13根据所述客户端11发送来的登录请求中所包 括的UID、 PID、 MID、所述认证服务器端13生成的挑战码CC、保存在所述 第二存储模块132中的与PWD—C相对应的用户口令PWD—S以及Time—S(所 述第二时钟计数器133的当前时钟计数值或当前时钟计数值的某种变换形 式),计算验证口令。当所述验证口令与所述动态口令一致时,即可认为PWD—C =PWD—S,即本次登录的用户是合法的用户,本次登录成功,否则,本次登 录失败。在本发明的另一实施例中,所述认证服务器端13在计算所述验证口 令时,自动在当前时钟的前后滑动一定的时间范围,只要在该时间范围内能够 有一个时间点的计算结果满足所述验证口令与所述动态口令一致,即可以认为 PWD_C=PWD_S,以避免网络延迟等原因对进行口令验证的影响。
较佳的,在本发明的另一实施例中,所述客户端ll中,还包括第一验证 模块114,在所述认证服务器端13中,还包括第二验证模块134。所述第一验 证模块114和所述第二验证模块134用于对所述客户端11与所述认证服务器 端13间进行交互的各种信息生成验证码,并通过与交互信息一同发送来的验 证码验证信息的完整性。
较佳的,在本发明的另一实施例中,所述安全模块12中,还包括第一同 步模块127,所述认证服务器端13中,还包括第二同步模块135,所述第一同 步模块127与第二同步模块135用于实现所述第一时钟计数器125与第二时钟 计数器133的时钟同步。
请参照图2,此为本发明的实现强口令认证方式的方法的流程图。如图2 所示,本发明的实现强口令认证方式的方法包括以下步骤
步骤S100,对客户端、安全模块以及认证服务器端进行初始化。
其中,所述安全模块中存储有用户的PIN码和登录口令PWD—C,以及所 述安全模块的标识信息MID。所述PWD—C在设置或修改时写入所述安全模块 中后,便不能再被读出到所述安全模块外部。所述认证服务器端中存储有用户 的登录口令PWD一S,所述PWD—C与PWD一S为对应的登录口令。
所述安全模块与所述认证服务器端的时钟被设置为同步关系。
所述客户端与所述认证服务器端中,分别初始化相同的一些数据,以使在 所述口令认证中可以进行验证等操作。
步骤S200,用户将所述安全模块插入到所述客户端中,使所述安全模块 与客户端间建立功能性连接,而后,用户在所述安全模块的输入单元中输入安
全模块开启PIN码以开启所述安全模块的安全功能。当所述安全模块验证得出 所述安全模块开启PIN码正确无误后,进入下一步骤,否则报错退出。
步骤S300,用户操纵所述客户端,向所述认证服务器端发出一登录请求。 所述登录请求中包括有客户端用户标识、进程标识以及安全模块标识,其 中,所述客户端用户标识可以是由用户键入的登录用户名UID,所述进程标识 是由登录进程自动从系统中获取的实施登录操作的进程的标识PID,所述安全 模块标识可以是所述安全模块的设备标识MID等,其中,进程标识PID是用
户在客户端登录时所执行的程序在客户端系统上运行时由系统所赋予给它的 值,同一个应用程序的PID在每次运行的时候可能是不同的,这就具备一定的 随机性,登录请求中采用PID的目的,是用来与用户做一定的关联。 其中,所登录请求的命令序列Request = (UID || PID || MID)。 在发送所述登录请求的同时,所述客户端还向所述认证服务器端发送一登 录请求消息验证码。所述登录请求消息验证码的命令序列为HMAC(UTD II PID II MID),发送所述登录请求消息验证码的目的,是为了保证接收方(即所述 认证服务器端)能够验证所传输消息的完整性。消息验证码由安全模块产生。 客户端与认证服务器端之间的通讯都通过消息验证码进行处理。HMAC计算 所用到的密钥为客户端与认证服务器端之间的某个共享秘密,该秘密是在系统 初始化阶段产生并存储的,每个客户端与认证服务器端之间的共享秘密各不相 同。
客户端在发送所述登录请求的同时,记录当前时间作为客户端登录计时起占。
八、、o
步骤S400,所述认证服务器端接收到所述登录请求和所述登录请求消息 验证码后,用所述登录请求消息验证码对所述登录请求的完整性进行判断,当 所述登录请求具有完整性时,根据预先设定的判断规则,判断登录请求中的 UID以及MID的合法性,当所述UID和MID合法时,记录当前时间作为认 证服务器端登录计时起点,并向所述客户端发送一个挑战信息。
所述挑战信息包括挑战码CC以及一个认证服务器端允许的本次登录周期
有效时间长度Len。
其中,所述挑战信息的命令序列Challenge = (CC||Len)。 在发送所述挑战信息的同时,所述认证服务器端还向所述客户端发送一挑
战信息消息验证码。所述挑战信息消息验证码的命令序列为HMAC (CC II
Len)。
所述挑战信息中的所述挑战码CC,是所述认证服务器端临时随机产生的 可显示的数字/字符串,或者该数字/字符串的任何图形加扰形式(加扰的目的 是为了防止恶意软件自动识别该挑战码);服务器允许的本次登录周期有效时 间长度Len由登录安全策略和经验值决定,每次登录都传送Len的好处是,服 务器可以根据网络状态和不同时段甚至不同用户动态地调整Len的值,即Len 可以根据需要做动态调整。
步骤S500,客户端接收到所述挑战信息和所述挑战信息消息验证码后, 用所述挑战信息消息验证码对所述挑战信息的完整性进行判断,当所述挑战信 息具有完整性时,所述安全模块的显示单元上显示所述挑战码CC (在本发明 的另一实施例中,在本步骤中,在所述客户端的显示单元上显示所述挑战码), 并提示用户在所述安全模块的输入单元中输入所看到的挑战码CC,而后,所
述安全模块计算本次登录所用的动态口令并通过所述客户端发送所述动态口 令至所述认证服务器端。
所述动态口令的命令序列Repiy = HASH (UID || PID || MID || CC || Time—C||PWD—C)。其中,Time_C为所述安全模块的当前时钟计数值或将当 前时钟计数值作为种子的某种变换形式,PWD一C为所述安全模块中保存的用 户用于登录系统的秘密口令,该口令在设置或修改时写入安全模块或装置后便 不再被读出到安全模块或装置外部,HASH是某种已知的单向杂凑算法,如 婦5、 SHA1等。
在发送所述动态口令的同时,所述客户端还向所述认证服务器端发送一动 态口令消息验证码。所述动态口令消息验证码的命令序列为HMAC (HASH (UID|(PID||MID||CC||Time—C廿PWD—C))。
在本步骤中,还需要进行超时判断,即根据所述客户端登录计时起点、所 述安全模块的当前时间和所述本次登录周期有效时间长度Len,判断当前时间 是否还在所述登录周期有效的时间之内,如果当前时间的值小于所述客户端登
录计时起点与所述本次登录周期有效时间长度Len的和,表示当前时间在所述 登录周期有效的时间之内,则继续等待用户输入看到的挑战码CC,否则此次 登录超时失败。
作为另一种可实施方式,在本步骤中,是在用户输入挑战码时计算当前时 间是否在所述登录周期有效的时间之内,其同样可以起到有效的超时判断作 用。
步骤S600,所述认证服务器端接收到所述动态口令和所述动态口令消息 验证码后,用所述动态口令消息验证码对所述动态口令的完整性进行判断,当 所述动态口令具有完整性时,进行超时判断,即根据所述认证服务器端登录计 时起点、所述认证服务器端的当前时间和所述本次登录周期有效时间长度 Len,判断当前是否仍在本次登录周期的有效期内,如果当前时间的值小于所 述认证服务器端登录计时起点与所述本次登录周期有效时间长度Len的和,即 当前时间在所述本次登录周期的有效期内,则继续进行后续操作,否则此次登 录超时失败。
步骤S700,所述认证服务器端验证所述动态口令是否正确。
验证所述动态口令时,所述认证服务器端根据所述客户端发送来的登录请 求中所包括的UID、 PID、 MID、所述认证服务器端生成的挑战码CC、 PWD—S 以及Time一S,计算验证口令。当所述验证口令与所述动态口令一致时,即可 认为PWDj:二PWD一S,即本次登录的用户是合法的用户,本次登录成功,否 则,本次登录失败。
在上述实现强口令认证方式的方法的步骤中,当登录成功或登录失败时, 本次登录生成的挑战码CC都要即行销毁。
在本发明的另一实施例中,所述认证服务器端在计算所述验证口令时,自 动在当前时钟的前后滑动一定的时间范围,只要在该时间范围内能够有一个时 间点的计算结果满足所述验证口令与所述动态口令一致,即可以认为PWD—C -PWD一S,以避免网络延迟等原因对进行口令验证的影响。
较佳的,作为一种可实施方式,在上述步骤S300至步骤S500的至少一步 骤中,还包含一时钟同步的步骤。即所述认证服务器端向所述客户端发送一时 间参考值,所述安全模块根据所述时间参考值调整自身的时钟,以保证所述安 全模块的自身时钟与所述认证服务器端的时钟同步。
从上述本发明的实现强口令认证方式的安全系统及方法中可以看到,在进 行口令认证的整个过程中,均没有从客户端中输入任何秘密信息,而是从安全 模块中输入秘密信息,用户的秘密口令可以采用一个足够长度的随机数,登录 时用户口令不以明文形式出现在客户端的内存和网络传输中,并且每次登录过 程由于采用了挑战码和时间因子两个动态因子,即使针对同一用户的两次登录 的挑战信息完全一样,所使用的动态验证口令也都是不一样的,因此这是一种 非常安全的强口令认证机制和方法,能够防止和抵御从主机键盘和内存窥探口 令,以及穷举尝试、网络数据流窃听、信息截取/重放攻击等常见口令攻击手 段,也能够抵御服务器假冒和中间人攻击等。
同时,本发明提出的强口令机制中还加入了有效登录时间的判断,且客户 端和认证服务器端各自管理登录有效时间周期,在登录时间的计算上不需要同 步。理论上,客户端和认证服务器端两者的计时起点时间相差为两者之间的一 个网络传输延迟时间,但两者做出登录超时判断的时间点也正好相差一个网络 传输延迟时间,这样两者的判断结果是完全一致的。在实际的系统中,由于两 次网络传输的延迟时间可能不一定完全相同,这就可能存在两种判断不一致的 情况 一是客户端判定结果为超时,登录过程即告结束;二是客户端未判超时, 但存储服务器端判定结果为超时,登录过程也结束。只有当双方都判定为未超 时,才认为登录时间仍有效。因此在登录时间计算上无需做同步处理,使得登 录的实现过程更加实用和简单有效。
以上对本发明的目的、技术方案以及有益效果进行了详细的说明,所应理 解的是,上述内容仅为本发明的具体实施例而已,并不用于限制本发明的保护 范围。本发明保护范围应当以权利要求书所述为限定,凡在本发明的精神与原 则之内,对本发明权利要求技术方案所做的任何修改、等同替换以及改进等, 均应包含在本发明的保护范围之内。
权利要求
1、一种实现强口令认证方式的安全系统,其特征在于,包括客户端,所述客户端包括第一接口模块以及第一功能模块;安全模块,所述安全模块包括第二接口模块、输入单元、第一存储模块以及第二功能模块;认证服务器端,所述认证服务器端包括第三功能模块以及第二存储模块;所述第一接口模块与所述第二接口模块用于实现所述客户端与所述安全模块的功能性连接;所述第一功能模块用于实现与所述认证服务器端进行会话以及口令认证,所述第二功能模块用于实现验证安全模块开启PIN码、口令计算,所述第三功能模块用于实现与所述客户端进行会话以及口令计算、认证;所述输入单元用于以让用户通过其对所述安全模块进行数据输入;所述第一存储模块用于存储所述安全模块中预存的各种数据,所述第二存储模块用于存储与口令认证相关的各种数据。
2、 根据权利要求1所述的一种实现强口令认证方式的安全系统,其特征 在于,所述安全模块中,还包括第一时钟计数器,所述认证服务器端中,还包 括一第二时钟计数器。
3、 根据权利要求2所述的一种实现强口令认证方式的安全系统,其特征 在于,所述第一时钟计数器和第二时钟计数器的时钟同步。
4、 根据权利要求1所述的一种实现强口令认证方式的安全系统,其特征 在于,所述安全模块中,还包括显示单元,用于显示所述认证服务器端发送来 的挑战信息。
5、 根据权利要求1所述的一种实现强口令认证方式的安全系统,其特征 在于,所述客户端中,还包括显示单元,用于显示所述认证服务器端发送来的 挑战信息。
6、 根据权利要求4或5中任一项所述的一种实现强口令认证方式的安全 系统,其特征在于,所述显示单元为液晶显示屏幕。
7、 根据权利要求4或5中任一项所述的一种实现强口令认证方式的安全 系统,其特征在于,所述挑战信息包括挑战码,所述挑战码为所述认证服务器端临时随机产生的可显不的数字/字符串,或者该数字/字符串的任何图形加扰 形式。
8、 根据权利要求1所述的一种实现强口令认证方式的安全系统,其特征 在于,所述客户端中还包括第一验证模块,所述认证服务器端中还包括第二验 证模块,所述第一验证模块和第二验证模块用于对所述客户端与所述认证服务 器端间进行交互的各种信息生成验证码,并通过与交互信息一同发送来的验证 码验证交互信息的完整性。
9、 根据权利要求2所述的一种实现强口令认证方式的安全系统,其特征 在于,所述安全模块中包括第一同步模块,所述认证服务器端中包括第二同步 模块,所述第一同步模块与第二同步模块用于实现所述第一时钟计数器与第二 时钟计数器的时钟同步。
10、 一种实现强口令认证方式的方法,其特征在于,包括以下步骤 步骤A,对客户端、安全模块以及认证服务器端进行初始化;歩骤B,用户将所述安全模块插入到所述客户端中,使所述安全模块与客户端间建立功能性连接;步骤C,用户在所述安全模块的输入单元中输入安全模块开启PIN码以开启所述安全模块的安全功能,当所述安全模块验证得出所述安全模块开启PIN码正确无误后,进入步骤D,否则报错退出;步骤D,用户操纵所述客户端,向所述认证服务器端发出一登录请求;步骤E,所述认证服务器端向所述客户端发送一个挑战信息;步骤F,所述用户依照所看到的挑战信息和提示,在所述安全模块的输入单元中输入所看到的挑战码cc,所述安全模块计算本次登录所用的动态口令并通过所述客户端发送所述动态口令至所述认证服务器端;步骤G,所述认证服务器端验证所述动态口令是否正确,若动态口令正确, 则登录成功,否则报错退出。
11、 根据权利要求io所述的一种实现强口令认证方式的方法,其特征在于,在所述步骤A的初始化过程中,将所述安全模块与所述认证服务器端的时钟被设置为同步关系。
12、 根据权利要求11所述的一种实现强口令认证方式的方法,其特征在 于,所述步骤D中,还包括一步骤,记录当前时间作为客户端登录计时起点。
13、 根据权利要求IO所述的一种实现强口令认证方式的方法,其特征在 于,在步骤E中,先有一所述认证服务器端根据初始化时设定的规则,判断所 述登录请求是否合法的歩骤,若登录请求合法,则发送挑战信息,否则报错退 出。
14、 根据权利要求n所述的一种实现强口令认证方式的方法,其特征在于,所述认证服务器端根据用户登录请求中的登录用户名以及安全模块标识判 断所述登录请求是否合法。
15、 根据权利要求IO所述的一种实现强口令认证方式的方法,其特征在于,所述挑战信息包括挑战码和认证服务器端允许的本次登录周期有效时间长 度,所述挑战码为所述认证服务器端临时随机产生的可显示的数字/字符串, 或者该数字/字符串的任何图形加扰形式。
16、 根据权利要求11所述的一种实现强口令认证方式的方法,其特征在 于,所述步骤E中,还包括一步骤,记录当前时间作为认证服务器端登录计时 起点。
17、 根据权利要求12所述的一种实现强口令认证方式的方法,其特征在 于,在步骤F中,还包括一步骤,根据所述客户端登录计时起点、所述安全模 块的当前时间和所述本次登录周期有效时间长度,判断当前时间是否还在所述 登录周期有效的时间之内,若超时,则退出此次登录。
18、 根据权利要求12所述的一种实现强口令认证方式的方法,其特征在 于,在步骤F中,还包括一步骤,在用户输入挑战码时,根据所述客户端登录 计时起点、所述安全模块的当前时间和所述本次登录周期有效时间长度,计算 当前时间是否在所述登录周期有效的时间之内,若超时,则退出此次登录。
19、 根据权利要求IO所述的一种实现强口令认证方式的方法,其特征在 于,在步骤F中,根据所述登录请求中包括的客户端用户标识、安全模块标识、 安全模块的当前时钟计数值或将当前时钟计数值作为种子的某种变换形式、挑 战码以及安全模块中保存的用户用于登录系统的秘密口令计算动态口令。
20、 根据权利要求19所述的一种实现强口令认证方式的方法,其特征在 于,在步骤F中,使用单向杂凑算法计算动态口令。
21、 根据权利要求IO所述的一种实现强口令认证方式的方法,其特征在 于,在步骤G中,先有一步骤,根据所述认证服务器端登录计时起点、所述认证服务器端的当前时间和所述本次登录周期有效时间长度,判断当前是否仍 在本次登录周期的有效期内,若超时,则退出此次登录。
22、 根据权利要求IO所述的一种实现强口令认证方式的方法,其特征在于,在步骤G中,包括以下步骤步骤G1,根据所述登录请求中包括的客户端用户标识、安全模块标识、 认证服务器端的当前时钟计数值或将当前时钟计数值作为种子的某种变换形 式、挑战码以及认证服务器端中保存的用户用于登录系统的秘密口令计算验证口令;步骤G2,对比所述验证口令与动态口令,若一致,则登录成功,否则报 错退出。
23、 根据权利要求22所述的一种实现强口令认证方式的方法,其特征在 于,在步骤G1中,使用单向杂凑算法计算验证口令。
24、 根据权利要求22所述的一种实现强口令认证方式的方法,其特征在 于,在步骤G1中,在所述当前时钟计数值或将当前时钟计数值作为种子的某 种变换形式的前后一定范围内,计算所述验证口令;在步骤G2中,若在该时间范围内能够有一个时间点的计算结果满足所述 验证口令与所述动态口令一致,则登录成功,否则报错退出。
25、 根据权利要求IO所述的一种实现强口令认证方式的方法,其特征在 于,在每一需要发送信息或数据的歩骤中,都包括一发送方对所述信息或数据 生成验证信息,并与所述信息或数据一同发送的步骤;在每一接受信息或数据的步骤中,都包括一接受方根据与所述信息或数据 一同发送的验证信息,对所述信息与数据进行完整性验证的步骤,若不符合完 整性,则报错退出。
26、 根据权利要求IO所述的一种实现强口令认证方式的方法,其特征在 于,在步骤D至步骤F中的至少一步骤中,还包括一步骤认证服务器端向客户端发送一时间参考值,安全模块根据所述时间参考值 调整自身的时钟,以使安全模块的自身时钟与认证服务器端的时钟同步。
全文摘要
本发明涉及口令认证领域,公开了一种实现强口令认证方式的安全系统及方法,以解决现有的口令认证方式中,口令容易被窥探和遭到各种攻击等问题。在本发明中,采用利用安全模块进行口令认证的方式,不从主机键盘而是从安全模块中输入用户口令,采用了足够长的随机数做用户口令,登录时不在网络上直接传送用户口令本身,且传送的动态口令信息是一次性的,因而能够有效抵御各种口令攻击。同时,本发明中采用到了挑战/应答机制和时间同步机制,同时结合安全模块的安全功能特性,使得本方法除了能够抵御口令攻击之外,还可以抵御服务器假冒以及中间人攻击。
文档编号H04L9/18GK101188495SQ20071017876
公开日2008年5月28日 申请日期2007年12月4日 优先权日2007年12月4日
发明者晶 杨, 杨贤伟 申请人:魏恺言
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1