以具有逻辑的辞句产生无意义密码的方法

xiaoxiao2020-6-27  214

专利名称:以具有逻辑的辞句产生无意义密码的方法
技术领域
本发明涉及一种以具有逻辑的辞句产生无意义密码、从而增加计算机系统安全的方法,尤其涉及一种防止入侵者或冒充者取得使用者账户密码的方法。
背景技术
任何一种服务器都必须把提供服务的通信端口曝露在互联网上。曝露的通信端口成为恶意攻击的目标之一,攻击者的攻击可能会造成用户数据被非法查阅、网站页面被修改、服务器当机等恶性后果。
因此,采取安全措施防范恶意攻击已成为所有网络系统必须考虑的一个因素。数十年来,使用密码作为信息安全上认证的基本架构。一般而言,一个安全个体(principal)(如使用者)需要同时输入系统认证的名称及密码,以取得该系统资源的使用权。这组名称和密码的组合,即为系统开放特定权限给予使用的账户。
然而,任何仅靠使用者名称及密码即可开放权限的认证系统,均曝露于想要成为入侵者的攻击目标。破解计算机服务器的账户方法有多种。一般来说,使用者名称通常最易为非授权人所确定或取得。举例来说,电子邮件信箱地址常作为账户的使用者名称。而密码则主要通过三种方式破解获得,其一为猜解简单口令,其二为字典攻击,其三为暴力破解,如下所述。
许多人为了方便记忆,使用自己或家人的生日、电话号码、房间号码、简单数字、或挑选身份证号码中的数字作为密码,甚至在所有系统中皆用同一组密码,使用原厂预设账号和密码,或是很轻易将密码告诉别人、将密码备忘藏在鼠标垫下或贴在屏幕旁,或使用“password”作为密码,甚至不设密码,这些情况均为入侵者容易猜解的简单指令。
另有一种人以英文单字与阿拉伯数字的排列组合、或女友、男友、儿子、女儿的名字为密码。因此,若上述猜解简单口令攻击失败后,入侵者将使用字典攻击,即利用程序尝试字典中的单词的每种可能。字典攻击可利用重复登录,或收集加密的口令,并试图与加密后的字典中的单词匹配。这些恶意的入侵者通常以英语辞典/字典或其它语言的辞典为基础破解。另外,其还使用各类字典的数据库,例如姓名与常用口令的数据库。
暴力猜解类似字典攻击,入侵者以专门的计算机与程序以暴力尝试所有可能字符的组合方式。由于计算机计算速度越来越快,一个由4个小写字母组成的密码可以在几分钟内被破解;而较长的密码,包括数字、标点、大小写字母,可能的组合达10万亿种,若该计算机每秒钟可尝试100万种组合,可于一个月内被破解。目前入侵企业网络的破解密码软件则声称可每秒完成八百万笔测试组合。
因此,造成冒充者入侵的原因中很大一部分是密码设定不够隐密,使冒充者容易猜中。虽然目前发展出一次性密码(OTP)强化身分认证,取代传统的密码认证。但这种方法,乃至于其它替代或辅助密码的方式(例如以软件令牌(soft token)、智能卡(smartcards)或数字签名(certificate)为基础的系统)都受制于实施费用高昂,具有无法普及化的问题。
同时,不同系统安全性不一致,但多数人为了简便起见,在其授权的电子邮件信箱和工作站账号等全都使用相同的密码。这样,当一个安全性等级不够严谨的计算机系统受到攻击,使得使用者账户外流时,通过这些账户可使这些入侵者掌握其它系统的机率大为增加。
因此,截至目前为止,若同时考虑到安全性与实施性,保障系统安全最好的方法是禁止用户重新使用旧密码(强制密码历史),并在两次更改密码之间的时间(最大密码寿命以及最小密码寿命)、最小密码长度、以及用户是否必须混合使用大小写字母、数字和特殊字符(密码必须满足复杂性要求)进行限制。理论来说,考虑到当前的破解技术,使用者应该设计18~23个毫无意义的字符避免字典攻击,并每2~3个月更改一次,同时,不同的工作系统,应使用各别的密码为最佳。
然而,一般人很难有效记忆毫无意义的乱码字符,故常会忘记密码。即便记住了,又需要每两到三个月更换一次,且每个系统的账户密码不一致时,也常因无法区别各个账户使用的密码而造成使用上的困扰。这样,可能导致账户被锁住,或由于忘记密码,需经过烦杂的手续再申请一次账户密码。

发明内容
本发明的主要目的在于,辅助使用者建立一组不易遗忘且足够长的乱码作为密码,以防止入侵者以暴力攻击等手段取得账户数据,并非法存取系统资源。为了防止运算速度越来越快的攻击系统,最安全的密码应为18~23个字符,并每2~3个月定时更换一次。另外,使用者应在不同服务器间设定不同的密码。然而,由于人脑很难背诵18~23个字符的乱码,同时,由于设定太多组密码将会导致使用上的混乱,反而造成使用者遗失密码、搞混密码。因此,本发明采用转换函数,以易记忆的辞句输入以得到密码。本发明的使用者可从易背诵的辞句得到乱码,由于辞句跟乱码相比,更易背而不易忘,因此,可确保使用者建立的密码不易遗失。
如上所述,为解决使用者遗忘密码的问题,本发明以个人易于取得的辞句为基础,经由转换函数产生一组不可逆的密码。故使用者需要背诵的是辞句的出处,或是辞句的内文。相较于毫无章理可寻的随机数密码,辞句易背且不易忘。同时由于使用者可以轻易记忆,而不用抄写在特定位置,因此,本发明的方法所产生的密码具有高度可移植性与变换性,使用者只需在便携式电子仪器中存入该转换函数,当需要密码时输入辞句,即可获得长而有效的密码。
本发明的另一目的在于,防止由于使用者的习惯被泄漏,而使系统再度被破解的可能性增加。当系统受到攻击并使账户数据外流时,纵使该系统要求使用者更改密码,但由于攻击者可由外流的账户数据推得使用者设定密码的习惯,当再次入侵系统时,可以轻易地猜解账户密码,故大幅降低系统的安全性。
综上所述,本发明为一种以易于取得的辞句为基础,将长辞句输入至转换函数以产生账户密码的方法。其中,本发明使用伪随机函数为密码产生函数。将该辞句作为转换函数的输入,以产生乱码字符串,以供使用者作为账户密码。其中,该辞句是从方便取得、不易遗忘、或是牢记于个人记忆中的辞句中选择的,因此为有条理可记忆的、或容易查询的,故可避免使用者漏忘密码。同时,该转换函数产生的密码为随机数排列,因此不易受到恶意冒充者的侵入,而造成个人数据的外流,甚至计算机系统遭破坏的危险。同时,本发明以伪随机函数作为转换函数。由于伪随机函数的特性,同样的输入种子可以得到相同的随机数输出,因此使用者可以铭记引用的辞句,若需登录时,以该辞句输入至伪随机函数中即可获得密码。
此外,本发明优选地采用单向杂凑函数为基础的伪随机数产生函数。单向杂凑函数是一种不可解压缩(单向)的方法,即,由已知的输出无法取得输入,或无法求得任两输入而其输出为相同的方法。另一方面,伪随机函数可产生一长串的不可被预测的随机数位。因此本发明密码产生的方法具有高度安全性,即便得知密码,也无法得到原始种子辞句,可有效保护使用者的选用习惯,再次更改密码时较难被破解。


图1为杂凑函数的应用图;图2为本发明的应用范围图;图3为本发明的一个实施例图;图4为本发明的另一个实施例图;图5为本发明的流程图。
附图中,各标号所代表的部件列表如下10-杂凑函数输入11-杂凑函数12-杂凑函数输出13-杂凑函数输入14-杂凑函数15-杂凑函数输出
21-个人数字助理25-个人计算机23-笔记型计算机31-实施例的长辞句33-更改后的实施例的长辞句 35-作为种子输入至函数37-得到输出41-选择长辞句43-加入长辞句产生条件 45-输入至伪随机函数47-得到输出49-输入账户密码501-选择长辞句 502-判断是否修改504-修改长辞句 506-判断是否加入密码产生条件508-加入密码产生条件 510-输入至伪随机函数512-得到输出 514-将输入作为账户密码具体实施方式
本发明为一种以易于取得、易于背诵、或是存在于个人记忆中的辞句为基础,产生使用者账户密码的方法与转换函数。该辞句用以作为转换函数的输入,以产生可作为密码的字符所组成的字符串,方便使用者利用为账户密码。因此,本发明为辅助使用者使用辞句以产生无意义随机数的方法,由于该辞句是从方便取得、不易遗忘、或是牢记于个人记忆中的字句中选择,因此是有条理可记忆的、或容易查询的,因此可避免因使用者漏忘密码而产生麻烦。同时,该转换函数产生的密码为随机数排列,因此不易受到恶意冒充者的侵入、从而造成个人数据外流甚至计算机系统遭破坏的危险。
举例来说,一个使用者首先需选择一个他/她熟悉的辞句,如某首流行歌曲的前十句歌词,将其作为转换函数的输入种子。之后,该辞句经过转换函数的转换,成为计算机系统中能够接受作为密码的随机数字符,以供使用者复制于登录的密码栏。由于各种系统所接受的密码长度不一,使用者可根据系统对密码长度的要求,择其所限制的长度作为系统的账户密码。或者,如果系统对密码的长度未加以限制,则该函数产生的随机数可全部作为账户密码。转换函数为伪随机函数,将输出结果转换为符合密码允许的字符的随机数字符串。
为使得使用者由相同的辞句产生相同的密码,本发明以伪随机函数作为转换函数。由于伪随机函数的特性在于,同样的输入种子可以得到相同的随机数输出,因此使用者可以铭记所引用的辞句,若需登录时,以所铭记的辞句输入该伪随机函数中,从而获得密码。
记忆的信息以容易取得为最优选,因此可选择大众化书籍中的内容作为种子,如圣经中的某章节,或论语的某一篇。由于圣经与论语均有极大的普极性,现今在书店很容易就可查到,因此毋需记忆。需要输入辞句时,可在书局、书架上实时找寻。另外,还可将种子辞句中的某关键词输入网络搜寻引擎查询。
因此,使用者仅需记忆引用书名以及章节编号即可,如此使用者毋需辛苦地记下毫无条理的乱码,也不用将密码抄于计算机旁或携带于皮夹内。换句话说,使用者所需记忆的,是辞句的出处,而非一串由字母、数字与符号组成的无意义乱码。
虽然这些辞句容易获得,但是所选取的段落辞句却根据使用者需要而决定,因此即使被具有恶意的外来者得知使用者引用的辞句出自圣经,但由于圣经内容丰富,因此还是不知其选取的段落,故破解绝非易事。更进一步来说,书籍有不同版本,如圣经就有和合版以及思高版等,同时,可选用不同语言(如英文本、中文本等)输入,由版本与语言的不同,可排列出更多种可能性,则更加深了破解的难度。
此外,可选择将辞句进行记忆。为了方便背诵,应以使用者曾经背过且不易遗忘的辞句为优选,如背诵过的诗词,流行歌曲的歌词等。由于歌曲或韵文容易背诵而不易忘记,因此使用者可截取其中的某些段落或全部记忆,将其作为输入种子。
现今处理器运算速度越来越快,而入侵者的算法技巧也日益进步,为将账户进行最安全防护,使用者的账户密码理论上越长越难破解。因此,所引用的辞句越长,相对产生的密码难度就越大,从而越难破解。因此,本发明为产生一种由长辞句产生、不易突破的强密码的方法,另一方面来说,使用者毋需耗神背诵所产生的乱码。
为了避免使用者所输入的辞句被其它恶意入侵者所取得,而在使用者选用辞句的习惯曝露于入侵者之前,增加其破解密码的可能性,本发明优选地采用单向杂凑函数为基础的伪随机数产生函数。单向杂凑函数是一种不可解压缩(单向)的方法,即,由已知的输出无法取得输入,或无法求得任意两输入而其输出为相同的方法。如图1的方框10所示,当输入x=110010时,杂凑函数的输出为1010110100101,如方框12。而另一方面,若将x+1=110011输入至该杂凑函数时,得到的输出方框15为01001101001。则杂凑函数(x)与杂凑函数(x+1)的输出之间毫无关联。另一方面,伪随机函数可产生一长串周期长且不可被预测的随机数位。因此,本发明密码产生的方法具有高度安全性,即便得知密码,也无法得到原始种子辞句,可有效保护使用者的选用习惯,从而使用者再次更改密码时较难被破解。
如图2所示,本发明的方法是提供具有高度可移植性的密码产生器。举例来说,转换函数的原始码可公开下载,使用者可将函数复制于个人计算机25或便携式电子运算器(如个人数字助理器(PDA)21或是笔记型计算机23)内,因此无论在何处需要密码时,均可实时输入辞句并产生长密码。另外,还可到提供计算机和网络的地方(如网络咖啡厅等)下载函数,以产生密码。所以,密码随手可得,从而增加了本发明的便利性。
如图3所示,为了避免密码可能太容易重复的缺陷,本发明的输入辞句可进行小部分修改。举例来说,若引用王之涣的《登鹳鹊楼》为函数种子,其原文为方框31“白日依山尽黄河入海流欲穷千里目更上一层楼”但为了增加密码的安全性,可视情况将原文作可理解的更改,如将“黄河”改成“长江”,则输入种子成为方框33“白日依山尽长江入海流欲穷千里目更上一层楼”另外,可间隔插入同样的文字,形成“白日依山尽兮黄河入海流兮欲穷千里目兮更上一层楼兮”或者,可将诗句以倒序反过来输入。以上这些方式均为将辞句稍加更改的方式。然而再重申,这些更改部分均为使用者所自设于记忆中的,外部人士无法轻易获得。最后,这些修改过的辞句即为伪随机函数的种子,如方框35~37所示。
为更进一步提升使用密码的安全性,密码应该要定期更新,并且不同账户间应使用不同密码。为实现此目的,可以加入密码产生条件,其可由数种对长辞句的修改而实现。举例来说,使用者可在长辞句后加上要登录系统的代号或名称,则可避免使用者在所有的账户中均引用相同密码的弊病。
举例来说,如图5所示,一个使用者具有Gmail电子信箱、Skype账户、MSN账户、以及Hinet电子信箱的账户,其选择的输入长辞句为《登鹳鹊楼》,如方框41所示。为了在不同账户中设置不同密码,其输入种子则分别为“长辞句+服务器名称”。即,Gmail信箱密码的输入种子如方框43与44,为“Gmail登鹳鹊楼”,Skype账户的输入种子为“Skpye登鹳鹊楼”,以此类推。注意,该账号位于长辞句之前、之后或中间是使用者自订的。之后,再将这些辞句作为种子输入至伪随机函数,得到的输出作为各账户信箱的密码,如方框45至49所示。
此外,由于系统的密码需每隔一段时间更换一次,因此使用者可以考虑在长辞句后加入密码的适用日期或设定日期,以满足定期更换密码的要求。同样的以图4的例子来说,如果Gmail的信箱密码为2005年1月1日设定,此信箱密码下次再次重新设定时间为2005年4月1日,则输入函数的种子可为“登鹳鹊楼Gmail2005/01/01~2005/03/31”。
另外,可以不同编码的选择产生密码。以前面《登鹳鹊楼》的例子而言,可使用标点符号,使种子成为“白日依山尽,黄河入海流;欲穷千里目,更上一层楼。”对于非英语系的国家而言,更包含了编码的选择。以中文为例,就有大五码(Big5)以及四位万国码(UCS4)等,还有简体中文与繁体中文编码的不同。甚至可使用注音或拼音作为编码,以避免中文输入时的错别字。
综上所述,本发明的完整流程图由图5示出。如图所示,当使用者请求登录并接收到服务器传来的登录信息时,可预先选择一组长辞句,如步骤501所示。之后选择是否修改该长辞句,因为可以保持长辞句的原貌,因此可选择不修改,如步骤502~504。为了更进一步加强安全性,使用者应在不同账户下设定不同密码,但步骤506并非绝对,也可以均设定相同密码。再如步骤510至514所示,将最后得到的长辞句输入至伪随机函数中,以所产生的输入作为账户密码,复制并输入至服务器。
权利要求
1.一种以具有逻辑的辞句产生无意义密码的方法,所述方法包括从已知的辞句中挑选一串文字;将所述文字作为种子输入至随机数产生器;选取所述随机数产生器的输出形成密码,其中,所述密码适当地应用于登录计算机或服务器系统。
2.如权利要求1所述的方法,其中,所述随机数产生器的输出包括字母。
3.如权利要求1所述的方法,其中,所述随机数产生器的输出包括数字。
4.如权利要求1所述的方法,其中,所述随机数产生器的输出为字母与数字的组合。
5.如权利要求1所述的方法,其中,所述随机数产生器包括伪随机函数。
6.如权利要求5所述的方法,其中,所述伪随机函数使用杂凑函数为基础。
7.如权利要求1所述的方法,其中,所述文字经过修改后再作为种子,并输入至所述随机数产生器。
8.如权利要求1所述的方法,其中,所述种子进一步包括要登录的系统的代号。
9.如权利要求1所述的方法,其中,所述种子进一步包括设定密码的适用日期。
全文摘要
一种以具有逻辑的辞句产生无意义密码的方法,其以长辞句作为输入种子,输入至伪随机函数从而产生密码。其中,辞句为从方便取得、或牢记于个人记忆中的字句中选择,稍加改变后作为输入种子。此外,伪随机函数以单向杂凑函数为基础。举例来说,可引用“白日依山尽黄河入海流欲穷千里目更上一层楼”为函数种子输入。此外,使用者可以作不同设定如将“黄河”改成“长江”,或加入更改日期、登录主机名称等,从而加强函数种子难度。
文档编号G09C1/00GK101025874SQ20061000802
公开日2007年8月29日 申请日期2006年2月23日 优先权日2006年2月23日
发明者林岱宏 申请人:资通电脑股份有限公司

最新回复(0)