Chinaunix首页 | 论坛 | 博客

rgy

  • 博客访问: 428072
  • 博文数量: 179
  • 博客积分: 2580
  • 博客等级: 少校
  • 技术积分: 1890
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-19 08:45
文章分类

全部博文(179)

文章存档

2012年(7)

2011年(43)

2010年(60)

2009年(69)

我的朋友

分类: BSD

2010-07-13 10:18:40



开始使用opie之前,你必须自己在/etc/opiekeys目录中添加opie数据库。默认时,此数据库为空,这意味着如果运行more命令你只能得到下面的提示符: 

BSD#more /etc/opiekeys
/etc/opiekeys
No such file or directory

为添加自己的数据库,可以使用带参数的opiepasswd命令∶ 

BSD# opiepasswd - c
Adding root

Only use this method from the console
NEVER from remote If you are using
telnet
xterm or a dial-in type ^C now or exit with no password
Then run opiepasswd without the -c parameter

Using MD5 to compute responses

Enter new secret pass phrase
/*在此输入通行短语*/


注意开始部分的警告,当运行opiepasswd - c命令时,你或者坐在你要登录到其上的机器旁边(控制台),要么经由ssh连接到该机器。否则,你的秘密通行短语和一次性口令将以明文文本的形式通过网络发送——很明显,这是一个严重的的安全隐患。接下来在提示符下故意输入一个字符数较短的通行短语如“ace6nm/”,看一下它有何反应: 


Secret pass phrases must be between 10 and 127 characters long
Enter new secret pass phrase
/*在此输入符合要求的通行短语*/
Again new secret pass phrase
/*再次输入以上通行短语*/



这里我们收到一个警告,因为刚才输入的通行短语太短,按要求通行短语的长度应在10127个字符之间。此通行短语在概念上于SSH系统中的产生公/私密钥对的通行短语相仿。此通行短语本身并不充当一个口令,而是用来证明我是将root帐户添加到数据库以及有权建立“应答”(或一次性口令)的那个人。从下文可以看到,应答包含六个单词,每个单词由毫无意义的大写字母组成。按照提示输入正确的通行短语之后,屏幕输出如下: 





ID root OTP key is 499 gr9306
AUNT CLUE WHOM CASK HERO HOLT
BSD#



此时回到命令提示符,我可以再次使用more命令验证opie数据库∶ 

BSD# more /etc/opiekeys
root 0499 gr9306   4f0d07ed32197333  Apr 28
2003 182210



注意,在数据库中,存在包含我的用户名root的一个登记项,后面跟着计数器( 499),然后是一个种子值( dh0391),再后面是一个一次性口令(4f0d07ed32197333),最后面是登记项增到数据库的日期与时间。对我们来说重要的是计数器和种子值,因为每次通过一次性口令等录时都要用到它们。 

如果需要验证我们的计数器和种子值,可用此命令进行∶ 
BSD# opieinfo
498 gr9306
opieinfo
命令显示下次登录时使用的资料。请注意,下次通过一次性口令登录时的预期应答与“ 498 ”有关,而非关上面more /etc/opiekeys命令中见到的“ 499 ”对应的应答,即4f0d07ed32197333。为得到所预期的应答, 我们需要用到一个OTP计算器,实际上就是opiekey命令。 

登录 

现在,用下面的命令退出本次会话准备重新登录: 





BSD#logout
FreeBSD/i386 (grid.grid.grid) (ttyv0)
login



此时我们实际上有两种选择:(1)每次登录时使用某终端上的计算器产生一个应答,或者(2)一次产生一列应答,并以此建立一个应答表,直到将表上的应答用完为止。让我们先从第一方案开始∶ 

login root
otp-md5 498 gr9306 ext
Password


登录时,您会收到了一个OTP挑战,其中包含您的种子值和当前的计数器。如今,opie正在等待我们的应答(或一次性口令),很明显该应答与当前计数器498有关。需要说明的是,在默认的情况下,登录时用户能够决定是否使用OTP,也就是说如果您在Password:提示符下输入您的可重用口令,您将象往常一样登录。 

如果您决定使用OTP登录,眼下要做的事便是计算正确的应答。俗话说得好,不管白猫黑猫,只要能逮住老鼠就是好猫;与此相仿,您在哪儿计算应答无关紧要,只要不通过一个非加密网络连接使用计算器就行。因此,您可以使用另一个虚拟终端来产生应答,例如,您能够按Alt - F3,在本地登录然后运行计算器;另外,如果您能访问室内另一台计算机,甚至一个运行计算器软件的Palm,在那里计算应答也未尝不可。 

利用计算器产生正确的应答时,有三样东西必不可少∶(1)当前计数器,(2)您的种子值和(3)您的秘密通行短语。当前计数器和种子在挑战中出现,实际上他们是公开的,但重要的是您的秘密通行短语只有您本人知道;换句话说,一旦某人得到了您的通行短语,他就能够以您的身份计算应答并且登录——很不幸,您的“嘴脸”并没有深深地烙在计算机的脑海里,除非您使用的是更高级的生物鉴别系统。 

现在让我们利用种子值和计数器计算所需要的应答,如下∶ 





BSD# opiekey 498 gr9306
Using the MD5 algorithm to compute response

Reminder
Don't use opiekey from telnet or dial-in sessions
Enter secret pass phrase
  /*在此输入秘密通行短语*/
BEAM GWYN WART MOLT WAD RUDY



请注意,在按照提示输入秘密通行短语后,我们得到了与计数器498对应的应答∶BEAM GWYN WART MOLT WAD RUDY。现在,让我们继续进行先前未完成的OPIE登录∶ 


login root
otp-md5 498 gr9306 ext
Password
/*注意,这里输入回车键而不是可重用口令*/
otp-md5 498 gr9306 ext
Password [echo on]
beam gwyn wart molt wad rudy



这里需要说明的是,不要在Password:提示符后键入您的可重用口令,而是按回车键开启echo,这样就允许您看到所键入的应答。但对可重用口令系统来说,Echo可绝不是个“好玩意”,所以使用可重用口令时它总是被关闭。然而,对一次性口令技术来说,每次登录时的应答都不相同,所以即使有人看着您输入也不要紧,因为下次它就不可用了。另外,与可重用口令不同的是,该应答不区分大小写,所以无论是大写或小写字母的应答,它都会来者不拒。 

现在如果您运行opieinfo命令的话,您将看到下一个预期应答与计数器497相关。也就是说,每次使用一次性口令登录后,该计数器将自动减1。现在您可以放心地使用了,但一定注意绝不要让您的计数器减少为0,至于为什么,我想不用我说您也一定猜得到。 

建立密钥表 

就像有人吃苹果时喜欢现吃现洗,而有人则一次把苹果都洗干净,嘴馋时拿过来就往嘴里送一样,并不是所有人都喜欢上面介绍的方法。现在让我们展示第二方法——一次产生多个应答。为此,在使用计算器时,除了需要参数n外,还需要一个数字作为参数,以便指出想一次计算多少个应答。在这里,假设我们想产生10个应答,当前计数器为497,见下面的命令: 


BSD# opiekey -n 10 497 gr9306
Using the MD5 algorithm to compute response

Reminder
Don't use opiekey from telnet or dial-in sessions
Enter secret pass phrase

488
COIN LO DOG GOLF ACTA FULL
489
SOD STUN SINK DRAW LAWN TILT
490
MALT STAY MASH CAR DEBT WAST
491
HOWE DRY WALL TOO BUDD SWIM
492
ROOT SPY BOND JEST HAIL SCAR
493
MEAN ADD NEON CAIN LION LAUD
494
LYLE HOLD HIGH HOME ITEM MEL
495
WICK BALI MAY EGO INK TOOK
496
RENT ARM WARN ARC LICE DOME
497
LEAD JAG MUCH MADE NONE WRIT



以上便是备您今后十次登录所需的口令列表。您当然可以为它做一份硬拷贝,比如把它打印到一张纸上,然后将其保存到一个安全的地方。在此强烈建议男士们将其放到您的钱包中,因为携伴外出时,可爱的女士们常常为其男伴的钱包而“揪心”:一则怕其随小偷而去,更重要的是“不知这次他有没有把钱带够呀?”。现在让我们把口令表输出到名为secretlist的文件中∶ 





BSD# opiekey -n 10 497 gr9306 > secretlist



接下来您可以打印了,不过请注意,一旦打印完毕,请立刻将该文件从硬盘上抹去,除非您疯狂到要留十个口令副本在硬盘上的地步。 

如果您的计数器小得到了危险的地步,比方说10左右,建议您使用opiepasswd命令重置它。在您连到口令数据库后,可以用带n(数字开关)以及s(种子值开关)而非c开关的opiepasswd命令完成这项工作。比如,您打算将计数器重置为366,同时将您的种子值改为mssp298,假设当前的种子值为7,执行命令时的情形如下∶ 





BSD# opiepasswd -n 366 -s mssp298
Updating root

You need the response from an OTP generator

Old secret pass phrase

otp-md5 7 gr9306 ext
Response
lopt omut sffe erdc jout dxrk
New secret pass phrase

otp-md5 366 mssp298
Response
hdwn as dom mel mcli maln



此时,有一点您可能感到疑惑:既然在login提示符下既可以用可重用口令登录也可以用一次性口令登录,那么在哪些情况下更应当使用后者呢?如果您正在一个安静的地方使用SSH来登录到远程系统的话,您大可不必使用OTP,因为SSH将您的全部信息都加密处理,其中包括您的登录口令。可是,如果您需要在某些“热闹”的场所登录并使用系统的话,比如在嘈杂的候车厅里使用您的笔记本电脑的情形,很可能有一双眼睛正在您的背后密切地注视着您的键盘,这时一次性口令便有了用武之地。也就是说,是否选择使用OTP取决于当您登录时口令是否受到外部的威胁。当然,如果您愿意也可以修改默认配置,让FreeBSD系统强迫用户总是使用OTP登录,方法是建立一个称作/etc/opieaccess的文件,但是,通常认为此方法有安全漏洞并且系统也在man opieaccess中给出了警告。 
阅读(946) | 评论(0) | 转发(0) |
0

上一篇:mysql慢查询

下一篇:ubuntu 安装eclipse

给主人留下些什么吧!~~