CN101291227A - 一种密码输入方法、装置和系统 - Google Patents
一种密码输入方法、装置和系统 Download PDFInfo
- Publication number
- CN101291227A CN101291227A CNA2008101144724A CN200810114472A CN101291227A CN 101291227 A CN101291227 A CN 101291227A CN A2008101144724 A CNA2008101144724 A CN A2008101144724A CN 200810114472 A CN200810114472 A CN 200810114472A CN 101291227 A CN101291227 A CN 101291227A
- Authority
- CN
- China
- Prior art keywords
- cipher
- password input
- user
- dynamic key
- input side
- 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.)
- Pending
Links
Images
Classifications
-
- 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
-
- 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
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- 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/3236—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 cryptographic hash functions
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)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种密码输入方法、装置和系统。在密码认证方和密码输入方之间约定散列(Hash)函数,该方法还包括:密码认证方向密码输入方提供动态密钥;密码输入方根据用户密码、该动态密钥以及该约定Hash函数生成加密值,并将该加密值发送到密码认证方进行认证;密码认证方根据自身保存的用户密码、该动态密钥以及该约定Hash函数生成加密值,并当密码认证方生成的加密值与密码输入方发送来的加密值相同时,判定密码输入方提供的用户密码正确。应用本发明实施例以后,能够显著提高密码输入安全性。
Description
技术领域
本发明涉及信息安全技术领域,更具体地,涉及一种密码输入方法、装置和系统。
背景技术
随着网络应用的不断普及,人们经常需要访问各种各样的网站,如电子购物、收发电子邮件(Email)、网上聊天、网络游戏等。在登录网站之前,通常都需要用户输入自己的用户名和密码。然而,目前网上存在着各种病毒,可以在用户输入密码时偷偷记录下用户通过键盘所输入的字符,从而盗取用户的密码,这就给用户带来很大的风险。
在现有技术中,一般采用软键盘来防止键盘输入被病毒程序截获。具体包括:在需要输入密码时,应用程序提供一个图形化的键盘界面,用户使用鼠标点击其中图形化的字符按钮,代替键盘的敲击将密码字符输入给应用程序。在这种技术中,当用户点击字符图片按钮时,计算机系统只是接收到了鼠标点击的位置信息,而不是真正的字符,因而即使输入被病毒程序截获,病毒也无法知道输入的到底是哪个字符,只有应用程序才知道各图形字符的位置信息与字符之间的对应关系。
软键盘的使用在某种程度上能够阻止键盘记录器等病毒对键盘输入的窃听,但是一些病毒程序仍然可以采用其它方法盗取输入的密码,比如:
(1)屏幕快照:
例如,2004年江民反病毒中心截获“证券大盗”病毒。该病毒作者已考虑到软键盘输入密码保护技术。病毒在运行后,会通过屏幕快照将用户的登陆界面连续保存为两张黑白图片,然后通过自带的发信模块将图片发向指定的邮件接受者。黑客通过对照图片中鼠标的点击位置,就很有可能破译出用户的登陆账号和密码,从而突破软键盘密码保护技术,严重威胁股民网上证券交易安全。
(2)直接捕获软键盘输入后的字符:
软键盘只是模拟了键盘的输入,经过应用程序的转换处理后,仍然会向输入密码的文本框中提供真实的字符。病毒可以通过网络浏览器的COM接口获取密码输入文本框中的内容,或者直接拦截浏览器发送的超文本传输协议(Http)报文,从中也可以获得用户输入的密码信息。
由此可见,尽管现在已经出现了一些防止密码被非法截取的技术,随着病毒技术的进步,目前的密码输入安全性仍然有待提高。
发明内容
本发明实施例提出一种密码输入方法,以提高密码输入安全性。
本发明实施例还提出一种密码输入系统,以提高密码输入安全性。
本发明实施例还提出一种键盘输入装置,以提高密码输入安全性。
本发明实施例的技术方案如下:
一种密码输入方法,在密码认证方和密码输入方之间约定散列Hash函数,该方法还包括:
密码认证方向密码输入方提供动态密钥;
密码输入方根据用户密码、所述动态密钥以及该约定Hash函数生成加密值,并将该加密值发送到密码认证方进行认证;
密码认证方根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成加密值,并当密码认证方生成的加密值与密码输入方发送来的加密值相同时,判定密码输入方提供的用户密码正确。
所述密码认证方向密码输入方提供动态密钥包括:
密码认证方以图片或字符的形式向密码输入方提供所述动态密钥。
所述密码输入方根据用户密码、动态密钥以及该约定Hash函数生成加密值为:密码输入方根据用户密码、所述动态密钥以及该约定Hash函数生成用于消息认证的密钥散列HMAC值;
所述密码认证方根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成加密值为:密码认证方根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成HMAC值;
当密码认证方生成的该HMAC值与密码输入方发送来的HMAC值相同时,判定密码输入方提供的用户密码正确。
进一步建立一个字节所表示的数值与键盘上可见字符之间的映射关系;
所述密码输入方在生成HMAC值后,进一步将所述HMAC值根据该映射关系转换成可见字符序列,并将所述可见字符序列发送到密码认证方进行认证。
一种密码输入系统,包括密码认证方和密码输入方,其中在密码认证方和密码输入方之间约定散列Hash函数;
密码认证方,用于在密码输入方登录时生成动态密钥,并向密码输入方提供该动态密钥;并根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成加密值,当密码认证方生成的加密值与密码输入方发送来的加密值相同时,判定密码输入方提供的用户密码正确;
密码输入方,用于根据用户密码、密码认证方提供的动态密钥以及该约定Hash函数生成加密值,并将该加密值发送到密码认证方进行认证。
所述密码认证方,用于以图片或字符的形式向密码输入方提供所述动态密钥。
所述密码输入方,用于根据用户密码、所述动态密钥以及该约定Hash函数生成用于消息认证的密钥散列HMAC值;
所述密码认证方,用于根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成HMAC值,并当密码认证方生成的HMAC值与密码输入方发送来的HMAC值相同时,判定密码输入方提供的用户密码正确。
所述密码输入方和所述密码认证方都保存有一个字节所表示的数值与键盘上可见字符之间的映射关系;
所述密码输入方,用于在生成HMAC值后,将所述HMAC值根据该映射关系转换成可见字符序列,并将所述可见字符序列发送到密码认证方进行认证;
所述密码认证方,用于根据该映射关系将自身计算出来的HMAC值转换为可见字符序列,然后再与所述密码输入方传来的可见字符序列进行比较,当两者相同时,判定密码输入方提供的用户密码正确。
一种键盘输入装置,该键盘输入装置包括键盘和密码编码器;其中:
所述键盘,用于供用户输入动态密钥和用户密码;
所述密码编码器,用于记录用户通过键盘所输入的动态密钥和用户密码,并根据该用户密码、动态密钥以及与密码认证方预先约定的Hash函数生成加密值,并将该加密值发送到密码认证方进行认证。
所述键盘中提供有两个功能键,用于提供给用户区分输入动态密钥和用户密码。
所述密码编码器作为硬件模块集成在所述键盘的键盘编码器中,或者作为硬件模块集成在所述键盘的键盘接口中,或者作为软件模块集成在操作系统中。
从上述技术方案中可以看出,在本发明实施例中,首先在密码认证方和密码输入方之间约定散列Hash函数,密码输入方根据用户密码、密码认证方提供的动态密钥以及该约定Hash函数生成加密值,并将该加密值发送到密码认证方进行认证,密码认证方根据自身保存的用户密码、动态密钥以及该约定Hash函数生成加密值,并当该加密值与密码输入方发送来的加密值相同时,判定密码输入方提供的用户密码正确。由此可见,应用本发明实施例以后,由于发送的密码字符序列是经过转换过的加密值,黑客无法通过该加密值破获真实密码,因此能够提高密码输入安全性。
而且,应用本发明实施例以后,由于密码是通过键盘输入的,输入的密码在文本框中一般都将密码显示为非文本的掩码,即使显示密码的HMAC值,由于HMAC函数具有单向性,也不会导致密码被破解,因此进一步提高了密码输入安全性。
还有,即使病毒程序可以读取密码文本框中的字符,或者截获了用户提交的登录请求中的密码文本,由于黑客获得的只是密码的HMAC值,既不能通过此值破解密码的真实值,也无法直接向密码认证系统重放,因此又进一步提高了密码验证的安全性。
附图说明
图1为根据本发明的密码输入方法流程示意图;
图2为根据本发明的密码输入系统结构示意图;
图3为根据本发明实施例的密码输入系统结构示意图;
图4为根据本发明实施例的键盘输入装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为根据本发明的密码输入方法流程示意图。该方法中,首先在密码认证方和密码输入方之间约定散列(Hash)函数。
众所周知,单向函数是一种数学函数。针对指定的输入,利用单向函数能够很容易地计算出结果。然而,在仅仅知道计算结果的情况下,要反推出输入的值却是很难做到的。
下面对Hash函数进行示范性说明。
Hash函数被称为单向散列函数,是一种能将任意长的消息映射为定长的Hash值的公开函数。Hash函数的计算结果被称为原来输入消息的摘要。Hash函数在密码学中应用十分广泛,与各种加密算法有着密切的联系。
Hash函数的模型如下:
h=H(M):
其中,M是待处理的消息数据;H是Hash函数;h是生成的消息摘要;它的长度是固定的,并且和M的长度无关。
Hash函数具有下面一些性质:
(1):Hash函数可应用于任意长度的数据块;
(2):Hash函数产生定长的输出;
(3):对于任何给定的M和H,计算h比较容易,用硬件和软件均可实现;
(4):对任何给定的H和h,无法计算出M,这又可称之为单向性;
(5):对任何给定的H和M,找到不同的消息M1,使得H(M1)=H(M),在计算上是不可行的,这又称之为抗弱碰撞性;
(6):对任何给定的H,找到不同的消息M1和M2,使得H(M1)=H(M2),在计算上是不可行的,这又称之为抗碰撞性。
目前常用的消息摘要算法有MD5和SHA1。
下面继续对本发明的流程进行说明。如图1所示,该方法包括:
步骤101:密码认证方向密码输入方提供动态密钥。
优选地,密码输入方侧的用户每次登录时,都会由密码认证方动态生成一个随机的动态密钥,并以图片或者字符的形式将该动态密钥传送给密码输入方,密码输入方将此动态密钥图片或字符显示在登录界面中,从而用户可以获知该动态密钥。用图片传送动态密钥可以增强网络传输过程中的抗破解能力,如果不担心被破解,也可以采用字符形式传递该动态密钥。相应地,在密码认证方中保存该动态密钥,以在后续的认证过程中予以使用。
步骤102:密码输入方根据用户密码、该动态密钥以及该约定Hash函数生成加密值,并将该加密值发送到密码认证方进行认证。
在这里,优选地,密码输入方根据用户密码、动态密钥以及该约定Hash函数生成用于消息认证的密钥散列(HMAC)值,并将该HMAC值发送到密码认证方进行认证。
步骤103:密码认证方根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成加密值,并当密码认证方生成的该加密值与密码输入方发送来的加密值相同时,判定密码输入方提供的用户密码正确。
在这里,优选地,密码认证方根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成HMAC值。当密码认证方生成的该HMAC值与密码输入方发送来的HMAC值相同时,判定密码输入方提供的用户密码正确。
本领域技术人员可以意识到,使用HMAC函数来生成加密值仅是一种示范性实例,并不应用于限定本发明的保护范围。实质上,本发明实施例还可以采用其它的函数来生成加密值,这些函数上的变换都不脱离本发明的保护范围。
下面对HMAC函数进行详细说明。
在Hash函数的基础上,又产生了一种被称为HMAC的算法。
HMAC函数可以表示为:
y=HMAC(x,k,h)
其中x代表输入消息;
k代表一个为通讯双方所共享的密钥(此处为密码认证方向密码输入方提供的动态密钥);
h代表某种hash算法(此处为密码认证方和密码输入方约定的hash算法),例如常见的MD5和SHA1;
y代表HMAC函数的计算结果,也就是x的一种摘要。
HMAC函数的应用过程如下:
(1):在传输数据前,通讯双方通过某种方式协商出共同的hash算法和HMAC密钥k。hash算法的确定可以通过协议交互实现,也可以通过某种系统约定来实现。HMAC密钥k是动态变化的,每次通讯会话所使用的密钥k都是不同的。
(2):在k和h都确定的情况下,HMAC函数就变成了一个hash函数,具有单向性和抗碰撞性,可以对输入的密码计算出相应的摘要。
(3):当本次通讯会话结束后,密钥k就失效。以后用户登录系统时,系统将产生新的共享密钥k,从而得到与前一次通讯不同的HMAC值。
这样,即使在用户登录过程中黑客截获了用户所提交密码的HAMC值,黑客既无法破获真实的密码(HMAC的单向性),也无法使用重放攻击通过系统的认证(HMAC的动态性)。
由于HMAC(x,k,h)的计算结果是一个字节序列,其中某些字节可能是不可显示的字符,这可能会给字符的传输和使用带来一些麻烦。有鉴于此,本发明实施例提出优选的解决方案。
进一步优选的,可以建立一个字节所表示的数值与键盘上可见字符之间的映射关系,密码输入方在生成HMAC值后,进一步将根据该映射关系将HMAC值转换成可见字符序列,并将该可见字符序列发送到密码认证方进行认证,密码认证方也采用相同的映射关系将自己计算的HMAC值进行转化,然后再与密码输入方传来的可见字符序列进行比较,当两者相同时,判定密码输入方提供的用户密码正确。
具体地,可以设计一张映射表,将一个字节所表示的数值(0-255)映射为键盘上可以输入的可见字符。当密码经过HMAC函数计算后,再经过此映射表对输出的字节进行转换,就可以得到一个新的可见字符的序列,此时该序列依然具有单向性和抗碰撞性。映射表的实现可以多种组合,只要在密码认证方和密码输入方中采用统一的实现方式即可。
基于上述分析,本发明实施例还提出了一种密码输入系统。
图2为根据本发明的密码输入系统结构示意图。
如图2所示,该密码输入系统包括密码输入方201和密码认证方202,其中在密码认证方202和密码输入方201之间约定散列Hash函数;
密码认证方202,用于在密码输入方201登录时生成动态密钥,并向密码输入方201提供该动态密钥,并根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成加密值,当密码认证方202生成的加密值与密码输入方201发送来的加密值相同时,判定密码输入方201提供的用户密码正确;
密码输入方201,用于根据用户密码、密码认证方202提供的动态密钥以及该约定Hash函数生成加密值,并将该加密值发送到密码认证方202进行认证。
密码输入方201可以通过为用户提供登录操作界面的应用程序来访问密码认证方202。该登录操作界面可以是是网站的登录页面,也可以是应用软件的登录界面。该登录界面除了提供用户名和密码的文本输入框外,还应该有一个动态密钥显示框。
优选地,密码输入方201,用于根据用户密码、所述动态密钥以及该约定Hash函数生成用于消息认证的密钥散列HMAC值;
密码认证方202,用于根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成HMAC值,并当密码认证方202生成的HMAC值与密码输入方发送来的HMAC值相同时,判定密码输入方201提供的用户密码正确。
而且,在密码输入方201和所述密码认证方202之间都保存有一个字节所表示的数值与键盘上可见字符之间的映射关系;
密码输入方201,用于在生成HMAC值后,将所述HMAC值根据该映射关系转换成可见字符序列,并将所述可见字符序列发送到密码认证方202进行认证;
密码认证方202,用于根据该映射关系将自己计算的HMAC值转化为可见字符序列,然后再进行认证。
基于图2所述的系统,可以不脱离本发明的保护范围而产生多种形式的具体实施方式。
比如:图3为根据本发明实施例的密码输入系统结构示意图。
如图3所示,该系统主要包括键盘、计算机和用户认证系统三大部分。其中键盘上新定义有两个功能键A和功能键B。
功能键A的功能是:当第一次按下功能键A时,表示其后要输入动态密钥,当第二次按下时,表示动态密钥输入完毕,以后反复按下功能键A时,重复前述的功能。
功能键B的功能是:当第一次按下功能键B时,表示其后要输入用户密码,当第二次按下时,表示用户密码输入完毕;以后反复按下功能键B时,重复前述的功能。
键盘还包括键盘编码器和键盘接口。键盘编码器是对按键产生的电信号进行数字编码的电路器件,在功能和实现方式上与目前键盘中对应的部件一样。键盘接口是计算机上连接键盘电缆的接口电路,功能和实现方式上与目前的计算机中对应的部件一样。
该系统进一步包括密码编码器,密码编码器是对密码进行加密处理的模块,其功能如下:
(1)当密码编码器检测到功能键A第一次按下时,密码编码器将记录随后在键盘上输入的字符,作为动态密钥记录下来。当检测到功能键A第二次按下时,将停止动态密钥的记录,记录的动态密钥不传送给操作系统。
(2)当密码编码器检测到功能键B第一次按下时,将记录随后在键盘上输入的字符,作为用户密码记录下来。当检测到功能键B第二次按下时,将停止用户密码的记录。
(3)在功能键B第二次按下时,密码编码器通过函数HMAC(x,k,h)计算获得用户密钥的HMAC值。
同上分析,在函数HMAC(x,k,h)中,h为和用户认证系统约定好的某种hash算法,k为步骤(1)中所记录的动态密钥,x为步骤(2)中所记录的用户密码,通过HMAC计算就可以得到用户密码的HMAC值。
密码编码器计算出HMAC值后,模拟键盘输入向操作系统发送用户密钥的HMAC值字节序列。
在实际应用中,密码编码器可以位于不同的位置,包括但是并不局限于以下三种形式:
(1)密码编码器作为硬件模块集成在键盘编码器中。
(2)密码编码器作为硬件模块集成在键盘接口中。
(3)密码编码器作为软件模块集成在操作系统中,但要求操作系统保证在密码编码器接收到键盘输入之前,不能有病毒截获键盘输入的可能。
该系统还包括应用程序,应用程序可以为用户提供登录系统的登录操作界面。该登录操作界面除了提供用户名和密码的文本输入框外,还有一个动态密钥显示框。
通过使用前述的键盘输入系统,在用户输入密码时,应用程序可以直接得到密码的HMAC值。该系统还包括用于对用户身份进行认证的用户认证系统。如前所述,在用户每次登录时,用户认证系统生成一个随机的动态密钥。该共享密钥在用户认证系统中同样予以保存。当用户认证系统验证用户密码时,用户认证系统采用与前述密码编码器相同的HMAC算法,计算HMAC(x,k,h),其中x为认证系统中保存的用户密码,k为认证系统为此次认证会话动态生成的共享密钥,h为系统内约定的某种hash算法,与密码编码器所采用的hash算法一致。
认证系统先计算自己保存的密码的HMAC值,并与用户提交的HMAC值进行比较。如果一致,就认为用户输入了正确的密码,否则,就认为密码输入错误。
其中:用户认证系统可以运行在用户所使用的计算机上,也可以是通过网络与用户终端相连的服务器。根据具体应用情形的不同,用户认证系统也可能有各种变体,都应该包括在本发明的保护范围之内。
下面描述图3所示系统的一次示范性完整密码验证过程。
首先,应用程序向用户认证系统发出获取用户登录界面的请求。用户认证系统为本次登录会话生成了一个随机的动态密钥,该动态生成的动态密钥在用户认证系统中保存一份,并以图片或文本的形式传送给应用程序,由应用程序在登录界面中将动态密钥显示给用户。当用户期望进行认证时,用户首先按照功能键A的操作方法输入登录界面上所显示的动态密钥,然后再按照功能键B的操作方法,输入用户的真实密码。用户的真实密码被密码编码器转换为密码的HMAC值,发送给操作系统。操作系统再将从密码编码器发来的字符序列传递给应用程序,应用程序将其作为用户输入的密码字符放入密码文本框,然后用户提交用户名和密码的HMAC值给认证系统。认证系统使用自己保存的用户密码、本次登录会话所使用的动态密钥、与密码编码器一致的hash算法计算出用户密码的HMAC值,将其与用户提交的HMAC值进行比较。如果一致,系统就认为用户输入的密码正确;否则,就认为密码输入错误。
基于上述分析,本发明实施例还提出了一种键盘输入装置。
图4为根据本发明实施例的键盘输入装置结构示意图。
如图4所示,该键盘输入装置包括键盘401和密码编码器402;其中:
键盘401,用于供用户输入动态密钥和用户密码;
密码编码器402,用于记录用户通过键盘401所输入的动态密钥和用户密码,并根据该用户密码、动态密钥以及与密码认证方预先约定的Hash函数生成加密值,并将该加密值发送到密码认证方进行认证。
其中,在键盘401中可以提供有两个功能键,用于提供给用户区分输入动态密钥和用户密码。使用两个功能键是为了触发编码器对随后输入的字符序列做特殊处理。
可选地,如果密码编码器对操作系统提供驱动接口的话,用户也可以通过软件来设置密码编码器的处理状态,如通过菜单或按钮给密码编码器下达指令通知后面输入的字符是动态密钥,后面输入的密码要作HMAC计算等。
密码编码器402可以作为硬件模块集成在所述键盘401的键盘编码器中,或者作为硬件模块集成在所述键盘401的键盘接口中,或者作为软件模块集成在操作系统中。
综上所述,在本发明实施例中,首先在密码认证方和密码输入方之间约定散列Hash函数,密码输入方根据用户密码、密码认证方提供的动态密钥以及该约定Hash函数生成加密值,并将该加密值发送到密码认证方进行认证,密码认证方根据自身保存的用户密码、动态密钥以及该约定Hash函数生成加密值,并当该加密值与密码输入方发送来的加密值相同时,判定密码输入方提供的用户密码正确。由此可见,应用本发明实施例以后,由于发送的密码字符序列是经过转换过的加密值,黑客无法通过该加密值破获真实密码,因此能够提高密码输入安全性。
而且,应用本发明实施例以后,由于因为密码是通过键盘输入的,输入的密码在文本框中一般都将密码显示为非文本的掩码,即使显示密码的HMAC值,由于HMAC函数具有单向性,也不会导致密码被破解,因此本发明实施例进一步提高了密码输入安全性。
还有,即使病毒程序可以读取密码文本框中的字符,或者截获了用户提交的登录请求中的密码文本,由于黑客获得的只是密码的HMAC值,既不能通过此值破解密码的真实值,也无法直接向认证系统重放,因此本发明实施例又进一步提高了密码输入安全性。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1、一种密码输入方法,其特征在于,在密码认证方和密码输入方之间约定散列Hash函数,该方法还包括:
密码认证方向密码输入方提供动态密钥;
密码输入方根据用户密码、所述动态密钥以及该约定Hash函数生成加密值,并将该加密值发送到密码认证方进行认证;
密码认证方根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成加密值,并当密码认证方生成的该加密值与密码输入方发送来的加密值相同时,判定密码输入方提供的用户密码正确。
2、根据权利要求1所述的密码输入方法,其特征在于,所述密码认证方向密码输入方提供动态密钥包括:
密码认证方以图片或字符的形式向密码输入方提供所述动态密钥。
3、根据权利要求1所述的密码输入方法,其特征在于,所述密码输入方根据用户密码、动态密钥以及该约定Hash函数生成加密值为:密码输入方根据用户密码、所述动态密钥以及该约定Hash函数生成用于消息认证的密钥散列HMAC值;
所述密码认证方根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成加密值为:密码认证方根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成HMAC值;
当密码认证方生成的该HMAC值与密码输入方发送来的HMAC值相同时,判定密码输入方提供的用户密码正确。
4、根据权利要求3所述的密码输入方法,其特征在于,进一步建立一个字节所表示的数值与键盘上可见字符之间的映射关系;
所述密码输入方在生成HMAC值后,进一步将所述HMAC值根据该映射关系转换成可见字符序列,并将所述可见字符序列发送到密码认证方进行认证。
5、一种密码输入系统,其特征在于,包括密码认证方和密码输入方,其中在密码认证方和密码输入方之间约定散列Hash函数;
密码认证方,用于在密码输入方登录时生成动态密钥,并向密码输入方提供该动态密钥,并根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成加密值,当密码认证方生成的加密值与密码输入方发送来的加密值相同时,判定密码输入方提供的用户密码正确;
密码输入方,用于根据用户密码、密码认证方提供的动态密钥以及该约定Hash函数生成加密值,并将该加密值发送到密码认证方进行认证。
6、根据权利要求5所述的密码输入系统,其特征在于:
所述密码输入方,用于根据用户密码、所述动态密钥以及该约定Hash函数生成用于消息认证的密钥散列HMAC值;
所述密码认证方,用于根据自身保存的用户密码、所述动态密钥以及该约定Hash函数生成HMAC值,并当密码认证方生成的HMAC值与密码输入方发送来的HMAC值相同时,判定密码输入方提供的用户密码正确。
7、根据权利要求6所述的密码输入系统,其特征在于:
所述密码输入方和所述密码认证方都保存有一个字节所表示的数值与键盘上可见字符之间的映射关系;
所述密码输入方,用于在生成HMAC值后,将所述HMAC值根据该映射关系转换成可见字符序列,并将所述可见字符序列发送到密码认证方进行认证;
所述密码认证方,用于根据该映射关系将将自身计算出的HMAC值转换为可见字符序列,然后再与所述密码输入方传来的可见字符序列进行比较,当两者相同时,判定密码输入方提供的用户密码正确。
8、一种键盘输入装置,其特征在于,该键盘输入装置包括键盘和密码编码器;其中:
所述键盘,用于供用户输入动态密钥和用户密码;
所述密码编码器,用于记录用户通过键盘所输入的动态密钥和用户密码,并根据该用户密码、动态密钥以及与密码认证方预先约定的Hash函数生成加密值,并将该加密值发送到密码认证方进行认证。
9、根据权利要求8所述的键盘输入装置,其特征在于,所述键盘中提供有两个功能键,用于提供给用户区分输入动态密钥和用户密码。
10、根据权利要求8或9所述的键盘输入装置,其特征在于,所述密码编码器作为硬件模块集成在所述键盘的键盘编码器中,或者作为硬件模块集成在所述键盘的键盘接口中,或者作为软件模块集成在操作系统中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101144724A CN101291227A (zh) | 2008-06-06 | 2008-06-06 | 一种密码输入方法、装置和系统 |
PCT/CN2009/072129 WO2009146655A1 (zh) | 2008-06-06 | 2009-06-04 | 一种密码输入方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101144724A CN101291227A (zh) | 2008-06-06 | 2008-06-06 | 一种密码输入方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101291227A true CN101291227A (zh) | 2008-10-22 |
Family
ID=40035326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101144724A Pending CN101291227A (zh) | 2008-06-06 | 2008-06-06 | 一种密码输入方法、装置和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101291227A (zh) |
WO (1) | WO2009146655A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009146655A1 (zh) * | 2008-06-06 | 2009-12-10 | Xue Ming | 一种密码输入方法、装置和系统 |
CN103248480A (zh) * | 2012-02-10 | 2013-08-14 | 李宏光 | 一种对帐户资料进行加密保存与验证的方法及系统 |
CN103391292A (zh) * | 2013-07-18 | 2013-11-13 | 百度在线网络技术(北京)有限公司 | 针对移动应用的安全登录方法、系统和装置 |
CN103853992A (zh) * | 2012-11-30 | 2014-06-11 | 国际商业机器公司 | 接收私密信息输入的方法和装置 |
WO2014110948A1 (en) * | 2013-01-15 | 2014-07-24 | Tencent Technology (Shenzhen) Company Limited | Method, device and system for trojan horse interception |
CN104113413A (zh) * | 2013-04-19 | 2014-10-22 | 汤姆逊许可公司 | 用于管理密码的装置和方法 |
CN104394532A (zh) * | 2014-11-21 | 2015-03-04 | 北京京东尚科信息技术有限公司 | 移动端防暴力破解的安全登录方法 |
CN104636920A (zh) * | 2015-02-06 | 2015-05-20 | 西安酷派软件科技有限公司 | 一种数据交互方法、设备和系统 |
CN105591928A (zh) * | 2015-09-15 | 2016-05-18 | 中国银联股份有限公司 | 用于云平台网络的安全控制方法 |
CN106656495A (zh) * | 2016-10-18 | 2017-05-10 | 北京海泰方圆科技股份有限公司 | 一种用户口令存储的方法及装置 |
CN107292205A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种输入方法和装置、电子设备 |
CN108377231A (zh) * | 2018-01-26 | 2018-08-07 | 珠海金山网络游戏科技有限公司 | 一种网络游戏安全管理系统装置及其方法 |
CN108377191A (zh) * | 2018-02-24 | 2018-08-07 | 深圳市道通智能航空技术有限公司 | 电池识别方法、无人机及电池 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201217084D0 (en) | 2012-09-25 | 2012-11-07 | Uni I Oslo | Network security |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1193538C (zh) * | 2001-12-17 | 2005-03-16 | 北京兆日科技有限责任公司 | 电子密码形成与核验方法 |
KR100860573B1 (ko) * | 2006-12-01 | 2008-09-26 | (재)대구경북과학기술연구원 | 사용자 인증 방법 |
CN101291227A (zh) * | 2008-06-06 | 2008-10-22 | 薛明 | 一种密码输入方法、装置和系统 |
-
2008
- 2008-06-06 CN CNA2008101144724A patent/CN101291227A/zh active Pending
-
2009
- 2009-06-04 WO PCT/CN2009/072129 patent/WO2009146655A1/zh active Application Filing
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009146655A1 (zh) * | 2008-06-06 | 2009-12-10 | Xue Ming | 一种密码输入方法、装置和系统 |
CN103248480A (zh) * | 2012-02-10 | 2013-08-14 | 李宏光 | 一种对帐户资料进行加密保存与验证的方法及系统 |
CN103853992A (zh) * | 2012-11-30 | 2014-06-11 | 国际商业机器公司 | 接收私密信息输入的方法和装置 |
WO2014110948A1 (en) * | 2013-01-15 | 2014-07-24 | Tencent Technology (Shenzhen) Company Limited | Method, device and system for trojan horse interception |
CN104113413A (zh) * | 2013-04-19 | 2014-10-22 | 汤姆逊许可公司 | 用于管理密码的装置和方法 |
CN103391292A (zh) * | 2013-07-18 | 2013-11-13 | 百度在线网络技术(北京)有限公司 | 针对移动应用的安全登录方法、系统和装置 |
CN104394532A (zh) * | 2014-11-21 | 2015-03-04 | 北京京东尚科信息技术有限公司 | 移动端防暴力破解的安全登录方法 |
CN104636920A (zh) * | 2015-02-06 | 2015-05-20 | 西安酷派软件科技有限公司 | 一种数据交互方法、设备和系统 |
CN105591928A (zh) * | 2015-09-15 | 2016-05-18 | 中国银联股份有限公司 | 用于云平台网络的安全控制方法 |
CN105591928B (zh) * | 2015-09-15 | 2018-09-21 | 中国银联股份有限公司 | 用于云平台网络的安全控制方法 |
CN107292205A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种输入方法和装置、电子设备 |
CN106656495A (zh) * | 2016-10-18 | 2017-05-10 | 北京海泰方圆科技股份有限公司 | 一种用户口令存储的方法及装置 |
CN106656495B (zh) * | 2016-10-18 | 2018-06-12 | 北京海泰方圆科技股份有限公司 | 一种用户口令存储的方法及装置 |
CN108377231A (zh) * | 2018-01-26 | 2018-08-07 | 珠海金山网络游戏科技有限公司 | 一种网络游戏安全管理系统装置及其方法 |
CN108377191A (zh) * | 2018-02-24 | 2018-08-07 | 深圳市道通智能航空技术有限公司 | 电池识别方法、无人机及电池 |
Also Published As
Publication number | Publication date |
---|---|
WO2009146655A1 (zh) | 2009-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101291227A (zh) | 一种密码输入方法、装置和系统 | |
CN108092776B (zh) | 一种基于身份认证服务器和身份认证令牌的系统 | |
CN201467167U (zh) | 一种密码编码器和密码保护系统 | |
US9736147B1 (en) | Artificial intelligence encryption model (AIEM) with device authorization and attack detection (DAAAD) | |
US8381272B1 (en) | Systems and methods for strengthening web credentials | |
US8701166B2 (en) | Secure authentication | |
Claessens et al. | On the security of today’s online electronic banking systems | |
EP2936369B1 (en) | Verification of password using a keyboard with a secure password entry mode | |
Dhamija et al. | Phish and hips: Human interactive proofs to detect phishing attacks | |
Azrour et al. | New Efficient and Secured Authentication Protocol for Remote Healthcare Systems in Cloud‐IoT | |
CN106576041A (zh) | 客户端与服务器之间相互验证的方法 | |
KR20200107931A (ko) | 멀티 포인트 인증을 위한 키 생성 및 보관을 위한 시스템 및 방법 | |
CN106059764A (zh) | 基于终止密钥导出函数的口令及指纹三方认证方法 | |
Diaz et al. | A formal methodology for integral security design and verification of network protocols | |
JP5186648B2 (ja) | 安全なオンライン取引を容易にするシステム及び方法 | |
CA2797353C (en) | Secure authentication | |
CN117370952A (zh) | 基于区块链的多重节点身份验证方法及装置 | |
Kiennert et al. | Authentication systems | |
Abbas et al. | Identifying an OpenID anti‐phishing scheme for cyberspace | |
Wagner et al. | Remote WebAuthn: FIDO2 Authentication for Less Accessible Devices. | |
Xie et al. | VOAuth: A solution to protect OAuth against phishing | |
Guo et al. | Extending registration and authentication processes of FIDO2 external authenticator with qr codes | |
CN102739398A (zh) | 网银身份认证的方法及装置 | |
Razumov et al. | Ensuring the security of web applications operating on the basis of the SSL/TLS protocol | |
CN101453335B (zh) | 用户信息安全输入方法、以及客户端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20081022 |