口令技术

2024-10-16

口令技术(共8篇)

口令技术 篇1

摘要:随着信息技术及网络的不断发展, 网络安全越来越受到人们的关注, 身份认证已成为网络安全的一个重要研究课题。身份认证技术很多, 本文就基于动态口令的三种身份认证技术作了详细的分析及比较, 并对动态口令系统的应用作了简单介绍。

关键词:网络安全,身份认证,动态口令

1. 引言

近年来, 随着网络技术的发展, 人们的生活也随之发生很大的改变。它就像一把双刃剑, 给人们的生活带来很大的便利, 比如在网上可以查阅资料、购物, 缴费、聊天、视频对话、玩游戏、开会等等。但同时, 它也为人们带来了不可忽视的威胁和破坏, 比如, 我们在进行网上商业交易时如何保障个人信息及交易金额的安全等问题时刻存在。所以, 网络安全越来越受到人们的关注, 身份认证已成为网络安全的一个重要研究课题。身份认证指的是用户身份的确认技术, 它是网络安全的第一道防线, 也是最重要的一道防线。

身份认证的本质是指被认证方有一些信息 (无论是一些秘密的信息还是一些个人持有的特殊硬件或个人特有的生物学信息) , 除被认证方自己外, 任何第三方 (在有些需要认证权威的方案中, 认证权威除外) 不能伪造, 被认证方能够使认证方相信他确实拥有那些秘密, 则他的身份就得到了认证。

2. 身份认证技术简介

随着信息安全技术的不断发展, 身份认证技术也经历了从简单到复杂, 从单一化到多元化的发展过程。分析现有的身份认证技术, 主要分为三大类:

2.1 基于口令的传统认证方式

基于口令的身份认证方式是最简单也是最传统的方式, 就目前的发展来看, 主要分两种, 一种是静态口令身份认证, 一种是动态口令身份认证, 这两种方式各有优缺点, 具体分析如下:

静态口令认证指每个合法用户都持有自己的账号和口令, 被访问的系统将所有合法用户的相关信息保存在口令文件中。当用户访问系统时, 输入各自的账号和口令, 系统将自已保存的相关信息同登录者提供的帐号和口令相比较, 若两者结果匹配, 则认定用户是合法的。否则拒绝访问。

静态口令认证配置简单, 使用方便, 但缺点是安全性较低, 存在很多安全隐患和缺陷。

动态口令认证也称一次性口令认证, 即用户每次登录系统时所使用的口令是不同的, 且一次有效。

动态口令的生成方法很多, 主要采用数学手段实现, 有简单数学变换形式, 也有复杂数学方法处理, 既有随机函数也有伪随机发生器, 有软件产品, 也有硬件产品。根据动态口令的生成方式不同, 有不同的动态口令认证方案, 其安全性也有所不同。

动态口令具有动态性、随机性、一次性、抗窃听性、方便性等优点, 较静态口令而言, 具有较高的安全性。

2.2 基于物理证件的认证方式

基于物理证件的认证方式是一种利用用户所拥有的某种东西进行认证的方式。主要的物理证件有智能卡和目前流行的USB Key等。

基于物理证件的认证方式是一种双因子 (用户信息+物理证件) 的认证方式, 即用户若想登录系统, 必须同时知道用户信息和具备物理证件, 缺一不可。即使用户信息或物理设备被窃取, 用户仍不会被冒充。

2.3 基于生物特征的认证方式

这种认证方式以人体唯一的、可靠的、稳定的生物特征 (如指纹、虹膜、脸部、掌纹等) 为依据, 采用计算机的强大功能和网络技术进行图像处理和模式识别。该技术具有很好的安全性、可靠性和有效性, 但这种方式适用于安全性要求非常高的场合, 而且系统的研制和开发费用昂贵, 目前还不适用在网络环境下身份认证的普遍使用。

随着安全问题的不断出现和复杂化, 认证技术也出现了多种技术的融合, 产生了更为成熟复杂的认证方法。比如基于生物特征识别的技术和基于密码学的认证技术相结合, 基于口令认证与智能卡技术相结合等等。

3. 基于动态口令认证的类型

动态口令是变动的口令, 其变动来源于产生口令的运算因子是变化的。根据不同的变动因子形成了不同的动态口令认证技术。主要分为三种, 即:基于时间同步认证技术、基于事件同步认证技术和挑战/应答方式的非同步认证技术[4]。

3.1 基于时间同步认证技术

基于时间同步认证技术是把时间作为变动因子, 一般以60秒作为变化单位。所谓“同步”, 是指客户端和认证服务器所产生的口令在时间上必须同步。这里的时间同步方法不是用“时统”技术, 而是用“滑动窗口”技术。具体的认证过程如图1所示:

(1) 客户请求接入应用服务器;

(2) 应用服务器请求认证服务器验证客户的身份;

(3) 客户终端弹出身份认证对话框, 提示用户输入账号和口令;

(4) 客户在持有的USBKEY口令卡上输入PIN码, 激活USBKEY卡。U盘根据内在的密钥K与客户机时间T使用专用算法计算动态密码RC, 并且用户输入账号和口令;

(5) 客户终端将帐号和口令通过网络传输给认证服务器;

(6) 认证服务器调用客户信息, 利用用户对应密钥K与服务器时间T计算动态密码RS, 对比RS与RC是否一致, 若一致, 客户合法, 否则不合法, 并将结果报告给应用服务器;

(7) 应用服务器根据客户身份的合法性和真实性反馈给客户终端, 并决定可以提供服务或拒绝服务。

3.2 基于事件同步认证技术

基于事件同步认证技术是把变动的数字序列 (事件序列) 作为口令产生器的一个运算因子, 与用户的私有密钥共同产生动态口令。这里的同步是指每次认证时, 认证服务器与客户端保持相同的事件序列。如果用户使用时, 因操作失误多产生了几组口令出现不同步, 服务器会自动同步到目前使用的口令, 一旦一个口令被使用过后, 在客户端序列中所有这个口令之前的口令都会失效。其认证过程与时间同步认证相同。

3.3 挑战/应答认证技术

基于挑战/应答方式的身份认证机制就是用户申请认证后, 认证服务器端都给客户端发送一个不同的“挑战”字串, 客户端程序收到这个“挑战”字串后, 根据一定算法做出相应的“响应”, 上传给认证服务器进行验证。具体的认证过程如图2所示:

(1) 客户请求接入应用服务器;

(2) 通过应用服务器向认证服务器提出认证请求, 验证客户的合法性和真实性;

(3) 认证服务器接到请求后, 先传送一个随机动态的数字序列给客户终端, 即“挑战”码, 并且客户终端弹出身份认证对话框, 提示用户输入账号和口令;

(4) 用户激活USBKEY卡, 并将账户和口令输入身份认证对话框传输给客户终端;

(5) 客户将“挑战”码与用户帐号进行合并, 使用单向函数HASH生成一个字节串作为“响应”码传送给认证服务器;

(6) 认证服务器调用客户信息, 产生与客户信息和随机数字序列相关的动态口令, 并与客户输入的“响应码”进行比对, 若相同, 则客户合法, 否则, 认证失败。然后将结果报告给应用服务器;

(7) 应用服务器根据客户身份的合法性和真实性反馈给客户终端, 并决定可以提供服务或拒绝服务。

3.4 三种方式的综合评价

对于以上三种方式的认证方式各有优缺点, 下面针对这三种方式作一简单分析评价:

(1) 时间同步认证方式

优点:操作简单, 占用网络时间资源少。

缺点:实现上有难度, 成本较高, 安全性较低。

应用环境:集中管理的系统。

(2) 事件同步认证方式

优点:简单, 易用, 易管理。

缺点:客户端成本比较高。安全性低, 口令卡丢失存在安全隐患。

应用环境:需要批次作业的系统。

(3) 挑战/应答认证方式

优点:安全性是三者中最高, 一卡多用, 成本较低, 易于实现。

缺点:操作烦琐、占用网络时间多

应用环境:安全性要求高的小系统。

4. 结束语

当前, 市场上很多地方应用动态口令身份认证系统, 在客户端配合口令卡、令牌、USBKEY、磁卡等使用, 它既能在大型电子商务系统中应用, 也能在网上银行中使用。动态口令除了以上的典型应用外, 它也在不断发展。比如, 它可以应用在移动通信网络中, 使用户直接从手机中获得动态口令, 也可应用在商品防伪中, 还可应用在网络设备的认证中, 总之, 动态口令的认证系统具有广泛的应用前景, 需要我们进行更加深入细致的研究和探索。

参考文献

[1]栾燕.网络身份认证技术及应用[J].新疆电力.2006、3:54-55.

[2]徐茂智, 游林.信息安全与密码学[M].清华大学出版社, 2007.

[3]魏永禄, 朱红, 邱兵.基于双因素特征的信息安全身份认证技术研究[J].山东大学学报 (理学版) .2005, 40.3:76-79.

[4]林麟.统一的动态口令身份认证平台的应用[J].计算机安全.2003, 7:20-22.

口令技术 篇2

2.闲来没事出城西,树木朗林数不齐,一二三四五六七,七六五四三二一,六城四,三二一,五四三二一,四三二一三二一,二一一,一个一,数了半天一棵树,一棵树长了七个枝,七个枝结了七样果,结的是槟子橙子桔子柿子李子栗子梨,槟子橙子桔子柿子李子栗子梨!

3.出南门,面正南,有一个面铺面冲南,面铺门口挂着一个蓝布棉门帘,摘了蓝布棉门帘,看了看面铺面冲南,挂上蓝布棉门帘,瞧了瞧面铺还是面冲南。

超级难的幽默快板绕口令大全

4.我家有个肥净白净八斤鸡,飞到张家后院里,张家后院有个肥净白净八斤狗,咬了我的肥净白净八斤鸡,卖了他的肥净白净八斤狗,赔了我的肥净白净八斤鸡。

5.这个绕口令儿最难唱,咱们唱的是山前有四十四个小狮子,山后边有四十四棵紫色柿子树,山前四十四个小狮子吃了山后边四十四棵紫色柿子树的涩柿子,山前四十四个小狮子让山后边四十四棵紫色柿子树的涩柿子给涩死了。

6.顺南边来了个喇嘛,手里提了五斤塌目,顺北边来了个哑巴,腰里别着个喇叭,提了塌目的喇嘛要拿五斤塌目去换北边哑巴腰里别着的喇叭,别着的喇叭的哑巴不愿意拿喇叭去换提了塌目喇嘛他的塌目,提了塌目的喇嘛就急了,拿起了五斤塌目打了别着的喇叭哑巴一塌目,别着的喇叭的哑巴也急了,顺腰里摘下喇叭,打了提了塌目喇嘛一喇叭,也不知道喇嘛的塌目打了别着的喇叭的哑巴一塌目,还是别着的喇叭的哑巴打了提了塌目的喇嘛一喇叭,喇嘛回家炖塌目,哑巴回家吹喇叭。

7.一道黑,两道黑,三四五六七道黑,八九道黑十道黑,我买个烟袋乌木杆儿,抓住两头一道黑,二姑娘描眉去打鬓,照着个镜子两道黑,粉皮墙写川字儿,横瞧竖瞧三道黑,象牙的桌子乌木的腿儿,放在炕上四道黑,买个小鸡不下蛋,圈在笼里捂到黑,挺好的骡子不吃草,拉到街上遛到黑,买个小驴不驮磨,配上鞍韂骑到黑,姐俩南洼去割麦,丢了镰刀拔到黑,月窠儿的孩子得了疯病,点起个艾条灸到黑,卖瓜子的打瞌睡,呼啦啦拉撒了那么一大堆,他的笤帚簸箕不凑手,这么一个一个拾到黑。

8.南边来个瘸子,担了一挑子茄子,手里拿着个碟子,地下钉着木头橛子,没留神那橛子绊倒了瘸子,撒了瘸子茄子,砸了瘸子碟子,瘸子爬起来要捡茄子,北边来个醉老爷子,腰里掖着烟袋别子,过来要买瘸子茄子,瘸子不乐意卖给醉老爷子茄子,老爷子一生气抢了瘸子茄子,瘸子拔起橛子,追老爷子,快给瘸子茄子,不给瘸子茄子,招呼手里橛子,毛腰捡茄子拾碟子,老爷子一生气,不给瘸子茄子,拿起烟袋别子,就打瘸子,瘸子拿起橛子砍老爷子,也不知老爷子的烟袋别子打了瘸子茄子,也不知瘸子橛子打了老爷子烟袋别子。

9.正月里,正月正,姐妹二人去逛灯,大姑娘名叫粉红女,二姑娘名叫女粉红,粉红女身穿一件粉红袄,女粉红身穿一件袄粉红,粉红女怀抱一瓶粉红酒,女粉红怀抱一瓶酒粉红,姐俩找了个无人处,推杯换盏饮刘伶,女粉红喝了粉红女的粉红酒,粉红女喝了女粉红的酒粉红,粉红女喝了一个酩酊醉,女粉红喝了一个醉酩酊,女粉红揪着粉红女就打,粉红女揪着女粉红就拧,女粉红撕了粉红女的粉红袄,粉红女就撕了女粉红的袄粉红,姐妹打罢落下手,自己买线自己缝,粉红女买了一条粉红线,女粉红买了一条线粉红,粉红女是反缝缝缝粉红袄,女粉红是缝反缝缝袄粉红。

10.数九寒天冷风嗖,转年春打六九头,正月十五是龙灯会,有一对狮子滚绣球,三月三王母娘娘蟠桃会,大闹天宫孙猴儿又把那个仙桃偷,五月端午是端阳日,白蛇许仙不到头,七月初七传说本是一个天河配,牛郎织女泪交流,八月十五云遮月,月里的嫦娥犯忧愁,要说愁,净说愁,唱上一段绕口令儿名字就叫十八愁,狼也愁,虎是愁,象也愁,鹿也愁,骡子也愁马也愁,猪也愁,狗是愁,牛也愁,羊也愁,鸭子也愁鹅也愁,蛤蟆愁,螃蟹愁,蛤蜊愁,乌龟愁,鱼愁虾愁不一样,您听我个个说根由,虎愁不敢把这高山下,狼愁野心耍滑头,象愁脸憨皮又厚,鹿愁长了一对七叉八叉大犄角,马愁鞴鞍行千里,骡子愁它是一世休,羊愁从小它把胡子长,牛愁愁的犯牛轴,狗愁改不了那净吃屎,猪愁离不开那臭水沟,鸭子愁扁了它的嘴,鹅愁脑瓜门儿上长了一个奔了头,蛤蟆愁长了一身脓疱疥,螃蟹愁的净横搂,蛤蜊愁闭关自守,乌龟愁的胆小尽缩头,鱼愁离水不能游,虾愁空枪乱扎没准头。

11.闲暇云游四大部洲,人的心好比是长江水似流,君子人相交是淡淡如水,小人交友蜜里调油,淡淡如水长来往,蜜里调油不到头,交朋友总学桃园三结义,莫学那孙膑庞涓结下冤仇,唱的是,天也愁地也愁,山也愁这个水也是愁,君也愁臣也愁,爹也愁这个娘也是愁,老的也是愁,少的也是愁,恶也愁善也愁,穷也愁这个富也愁,鸭子也愁鹅也愁,这个牛愁马愁一十八也愁,天愁不下那甘露雨,地愁五谷不丰收,山愁本是条了谷子坎,这个水愁本是流不到头,君愁愁的刀兵动,臣愁愁的把官丢,老愁愁的本是没有人管,少愁愁的本是白了他的头,恶愁愁的本是恶贯满,善愁愁的本是修不到头,穷愁愁的本是没有钱使,富愁愁的贼人把他偷,鸭子愁的扁了他的嘴,这个鹅也愁愁来愁去脑瓜门愁出一个奔了头,马愁备鞍行千里,这个牛愁愁的冷风嗖,嗖来嗖去把牛嗖老,送到汤锅里面宰老牛,牛皮蒙鼓千钉钉,送在城里头钟鼓楼,牛肉推在长街上卖,肝肚肠子作个饶头,牛骨头就把麻将牌来做,零零碎碎把色子扣,二对着五这个三了对着四,幺了对着六这个幺不幺六不六,咒骂色子邪骨头,说我诹我就诹,听我没事我捋捋舌头。

12.说我诌我不诌,闲来没事我溜溜舌头,这个绕口令儿最难唱,咱们唱的是前门楼子九丈九,四门三桥五牌楼,出了便门往东走,离城四十到通州,通州倒有个六十六条胡同口,在里边住着一位六十六岁的刘老六,六十六岁刘老头,六十六岁六老刘,老哥仨盖了那六十六座好高楼,楼上有六十六篓桂花油,篓上蒙着六十六匹鹅缎绸,绸上绣着六十六个狮子滚绣球,在楼外头栽了那六十六根儿柏木轴,轴上拴着六十六头大青牛,在牛上边着六十六个大马猴,刘老六,六老刘,刘老头,这么老哥仨倒坐在门口啃骨头,南边来了一条狗好眼熟,好像那大大妈家大大妈的眉子大大眼睛大大鼻子大大耳朵大大口大大鳌头狮子狗,北边又来一条狗好眼熟,好像那二大妈家二大大眉子二大眼睛二大鼻子二大耳朵二大口二大鳌头狮子狗,这两条狗抢骨头,顺南头跑到北头,碰倒了六十六座好高楼,碰洒了六十六篓桂花油,油了六十六匹鹅缎绸,脏了六十六个狮子滚绣球,在楼外头了六十六根儿柏木轴,打惊了六十六头大青牛,打跑了六十六个大马猴,刘老六,六老刘,刘老头,这么老哥仨打死了狗,又盖起来六十六座好高楼,收起来六十六篓桂花油,洗干净六十六匹鹅缎绸,洗净了六十六个狮子滚绣球,在楼外头栽起来六十六根儿柏木轴,牵回来六十六头大青牛,逮回来六十六个大马猴,刘老六,六老刘,刘老头,这么老哥仨又看见南边来个气不休,手里拿着土坯头去打着狗的头,也不知气不休的土坯头打了狗的头,还是狗的头碰坏气不休的土坯头,打北边来了个秃妞妞,手里拿着个油篓口去套狗的头,也不知秃妞妞的油篓口套了狗的头,还是狗的头钻了秃妞妞的油篓口,狗啃油篓篓油漏,狗不啃油篓篓不漏油。

口令技术 篇3

目前网络安全越来越受到重视,银行和各种大型电子商务网站都采用了提供免费的动态口令令牌或动态口令卡来加强网络身份认证系统的安全性。但对于中小型的电子商务网站来讲,提供硬件的动态口令令牌来加强安全性成本太高,显然是不现实的。开发一种简单易行的软件实现动态口令技术的方法能解决中小型电子商务网站的燃眉之急。动态口令技术的软件实现无需购买任何硬件,只需一次编程就可解决所有问题。

1 动态口令技术的基本原理

动态口令又称为一次性口令OTP(One- Time-Password) ,其特点是:用户根据服务商提供的动态口令令牌的显示数字来输入动态口令,而且每个登录服务器的口令只使用一次,窃听者无法用窃听到的登录口令来做下一次登录,同时利用单向散列函数(如 MD5算法等)的不可逆性,防止窃听者从窃听到的登录口令推出下一次登录口令。

选取动态口令认证这种方案的商用系统采用的是静态密码与令牌相结合的方式进行身份鉴别。这种方式在检查用户静态密码(知道什么) 的同时,验证用户是否持有正确的令牌(拥有什么) 。令牌常用的有两种方式,一种是基于时间同步机制, 另一种是基于挑战应答机制。采用时间同步机制的令牌, 每分钟会提供给用户一个不同的口令, 与验证方同步获得验证,本例实现的动态口令也是基于时间同步机制的。

2 动态口令的软件实现过程

2.1 客户端动态口令的产生

动态口令的产生和验证过程如图1所示。为了方便描述, 对图中采用的符号做如下定义:A为用户;S为认证服务器; IDA为A的标识;KA1为用户密钥1; KA2为用户密钥2;PA为动态口令;T为时钟计时器。

客户端软件(即相当于硬件实现中的动态口令令牌)保存有用户密钥和用户ID 号,软件中的时钟计数器T 每隔60秒自动用密钥KA1和KA2同时加密用户ID和当前时间 t(精确到分钟),然后我们用MD5算法对加密结果进行单向散列加密(即第二层加密),产生两个等长的32位十六进制摘要。最后我们把两个摘要分别分割为8块,进行异或运算并取每块最右边位得到最终的8位动态口令。

2.2 动态口令的验证

验证服务器收到用户输入的用户ID、静态密码和动态口令后,先验证用户ID和静态密码是否正确。如正确则在数据库中读出该用户的密钥KA1和KA2。这两个密钥在发布动态口令客户端软件时应该已确定,并存放在验证服务器端数据库内。使用密钥KA1和KA2对用户ID和当前时间t进行同客户端相同的处理,最终产生验证服务器端的动态口令,并与客户端产生的动态口令进行比较,一致则通过验证。

3 主要关键技术解决和实施效果

3.1 时间的同步问题

基于时间同步机制的动态口令系统一般每60秒产生一个新口令。如果用类似动态口令令牌的硬件实现方法,由于其同步的基础是国际标准时间,故对令牌的晶振频率有严格的要求,以降低系统失去同步的几率。但随着时间的流逝,误差总是会出现的,当服务器和令牌的时间偏移超过一定值时,则系统验证会出错。而用软件实现动态技术则没有这方面的问题,只要定期通过校时网站(如:time.windows.com等)校准一下服务器和客户端的系统时间即可解决同步的问题。

3.2 主要加密过程

用密钥KA1和KA2对用户ID和当前时间t进行第一层加密,其部分VB代码如下:

For I = 1 To Len(strSource)

′从待加(解)密字符串中取出一个字符

strChar1 = Mid(strSource, I, 1)

′取字符的低字节和Key1进行异或运算

bLowData = AscB(MidB(strChar1, 1, 1)) Xor Key1

′取字符的高字节和Key2进行异或运算

bHigData = AscB(MidB(strChar1, 2, 1)) Xor Key2

′将运算后的数据合成新的字符

strString = strString & ChrB(bLowData) & ChrB(bHigData)

Next I

For K = 1 To Len(strString)

strChar2 = Mid(strString, K, 1)

strEncrypt = strEncrypt & AscB(strChar2)

Next K

第二层加密使用MD5加密算法,由于MD5算法的理论不可逆性决定了破坏者无法根据密文推出明文,这样保证了动态口令的安全性。 此外MD5加密算法把任意长度(小于2的64次方Bit)的信息通过加密产生128位信息摘要(固定位数),而动态口令的位数也是固定的(一般为6位或8位),故MD5算法很适合应用在动态口令技术的实现中。

3.3 实施步骤和效果

(1) 新客户在网站上先注册会员,并要求提供动态口令服务。

(2) 网站产生两个随机数作为密钥KA1和KA2(如12,25)并存放于数据库客户登录信息表中。

(3) 网站根据该用户ID和其相应的密钥KA1和KA2生成一个可执行文件(EXE文件),并发放给该客户。当客户登录网站时,必须先运行该文件得到该时段(精确到分钟)的动态口令。客户端文件运行效果如图2所示。

(4) 客户在网站输入用户ID、静态密码和动态口令后,如果正确即登录成功。

3.4 碰撞问题

不同的明文如果经过加密后密文是一样的, 则我们称这种现象为碰撞。由于动态口令位数固定,所以碰撞是在所难免的。本程序实际应用中动态口令每分钟变一次,在测试中为了提高效率,我们让动态口令每秒变一次,其碰撞数据如表1所示。

从上面的数据我们可以看到:动态口令软件连续运行11天可能会出现一次碰撞(即出现一次相同的动态口令),连续运行53天则大约出现29次碰撞,连续运行半年则会出现大约350次碰撞,总体碰撞率不高,而且实际应用中我们只是在需要登录时才会运行一下客户端文件并得到该时刻的动态口令,得到动态口令后即关闭程序,而不会连续运行程序。

4 结 论

本文阐述了用双密钥和MD5算法对用户ID和当前时间进行两层加密,从而产生动态口令的编程技术。该方法在保持硬件实现动态口令优点的同时,提出了用软件实现动态口令技术的整套方案。本方案已经成功应用于温州医学院计算机实验室的计算机专业学生身份认证系统,结果表明本方案完全能够满足一般性认证系统的需要,而且可以直接在现有基础上开发,无需任何额外的硬件成本。本方案也非常适用于各类中小型商务网站的身份认证系统。

摘要:描述动态口令技术的基本原理,研究一种基于MD5加密算法的动态口令技术的软件实现方法,并通过实例演示了该方法的实际效果。对于开发各类电子商务网站的动态口令技术可以提供一定的帮助。

关键词:动态口令技术,MD5算法,加密

参考文献

[1]吴佩萱.基于时间同步机制的动态密码认证系统[J].长江大学学报:自然版,2005,2(7):256-257.

[2]李传目.一次性口令技术的研究[J].集美大学学报:自然科学版,2003,8(2):160-163.

[3]胡天麟,刘嘉勇,陈芳,等.基于MD5的OTP认证系统的原理及实现[J].信息技术,2005(9):140-142.

南昌起义口令问题考 篇4

1.“河山统一”说。

如丁海明认为, “7月31日, 贺龙、叶挺共同签署作战命令。起义军口令为‘河山统一’, 识别标志为‘领系红领带, 膀扎白毛巾’、‘在马灯和手电筒上贴红十字’”[1]。1979年人民出版社出版的《南昌起义资料》中侯镜如先生认为, “行动时间:当夜一点钟;行动信号:三声枪响;认别符号:左臂缠白毛巾;口令:‘河山统一’”[2]221;但同一本书却又有这样的记载, “队伍全用白手巾系在颈上, 记好口令, 城里敌人都是穿的短袖上衣、短裤, 容易认别。”[2]135, 两者显然在起义的认别符号上有矛盾之处:一个是左臂缠白毛巾, 一个说用白手巾系在颈上。2004年由南昌八一起义纪念馆编, 人民出版社出版的《军旗升起的地方》一书也认为口令是河山统一。另南昌八一起义纪念馆网站上胡振的一篇文章《八一起义在南昌的日子》也认为, 1927年8月1日凌晨2时, 在以周恩来为书记的中共前敌委员会领导下, 贺龙、叶挺、朱德、刘伯承等率领起义部队, 以‘河山统一’为口令。尹家民认为, “口令:‘河山统一’, 最后还讲了夜间行动的注意事项, 各部队区域的配合等”[3]185。

2.“山河统一”说。

如《贺龙传》编写组认为口令是“山河统一”[4]55;陈幼荣等认为, “口令是:‘山河统一’”[5]110。新华网北京8月30日电, 记者朱玉、白瑞雪的文章《访刘伯承、贺龙、罗荣桓子女》也指出, “口令?”“山河统一!”。由八一电影制片厂导演宋业明执导的电影《八月一日》同样认为起义的口令是“山河统一”。

3.“还我山河”说。

如《贺龙年谱》编写组认为, “以二十军指挥部号音为信号, 口令是‘还我山河’”[6]96。2007年8月1日中国江西新闻网上, 刘云记录的文章《贺龙同志在江西大旅社谈南昌起义》指出, “口令是‘还我山河’。大约打了三个多钟头就结束了战斗。我们 (20军) 缴的武器大部分都放在伪省政府内, 有机枪80多挺、步枪6000多支, 省政府打的厉害。起义军共缴机枪300多挺、步枪1万多支。歼敌1万多人。”

4.“还我河山”说。

贺龙在参观南昌起义纪念馆时说, 起义时起义军的标志是“红领巾”, 口令是“还我河山”[7]204。朱泽云认为, 南昌起义“决定了‘还我河山’的口令”[8]282。

5.“统一河山”说。

郑明认为“起义部队的口令是‘统一河山’”[9]15。

6. 综合说。

张侠认为, “口令词不一样”, “多数人记得是‘河山统一’”[7]205;张月琴认为, “大致有两种说法, 即‘还我河山’和‘河山统一或山河统一’”, 但作者更倾向于后者, “我们估计当前的口令是‘河山统一’的可能性比较大。”[10]63。另起义时跟随贺龙在二十军军部工作的陈公培在1961年12月5日参观南昌八一起义纪念馆时说, “起义军佩戴的标志, 在起义的晚上用白毛巾, 白天用红领巾。起义前一个晚上的口令, 一般说是‘山河统一’。‘还我河山’, 好像是对外的口号, 要用, 也只用了一晚”[7]204。

为什么会出现这么多不同的说法。笔者认为有两方面原因。主观原因可能有:关于使用什么口令, 主要是根据起义参与者的回忆, 可能年代已久, 由于战争紧张, 这些起义参与者在此后无不经历很多战争, 也许很难对南昌起义的细节问题都记忆犹新;也有受到其他信息干扰, 如其他参与者的回忆、报纸、书籍等资料影响;也有作者编者引用原始资料的问题, 或相互转引中的误差。

客观上, 口令一般有两种意思:一是指战斗、练兵或做体操时以简短的术语下达的口头命令。二是指在对敌作战中的夜晚, 视觉不灵的情况下识别敌我的一种口头暗号。南昌起义的口令主要指后者。由于口令作为一种暗语, 是十分机密的。所以可能并不是每人都知道, 即使知道也是通过口耳相传。尽管如此, 南昌起义毕竟标志了中国共产党独立地创造革命军队和领导革命战争的开始。8月1日也成为中国工农红军和后来的中国人民解放军的建军节。在这个问题上需要有一定的政治严肃性和对学术研究的严谨态度。需要有一个统一的说法, 如果确实无法确定口令到底是什么, 可以不注明, 至少不可主观臆断, 混淆史实。

参考文献

[1]南昌起义:“八一”枪声震寰宇[N].解放军报, 2007-5-22 (第九版) .

[2]中国社会科学院现代革命史研究室.南昌起义资料[G].人民出版社, 1979.

[3]尹家民.南昌起义纪实[M].解放军文艺出版社, 2002.

[4]《贺龙传》编写组.贺龙传[M].当代中国出版社, 2007.

[5]陈幼荣, 等.八一起义中的叶挺将军[M].中共党史出版社出版, 2007.

[6]《贺龙年谱》编写组.贺龙年谱[M].中共中央党校出版社, 1988.

[7]张侠.南昌起义研究[M].上海人民出版社, 1982.

[8]朱泽云.贺龙元帅的前半生[M].当代中国出版社, 2001.

[9]郑明.八一南昌起义.中国国际广播出版社, 1996.

对口令“跑步——走”的再认识 篇5

在《田径》上册 (田径教材编写组编, 北京:人民教育出版社) 是这样描述走和跑的联系的:“走与跑都是人体移动的自然方法, 属于周期性运动。走和跑的动作周期是由一个复步, 即走或跑两步形成。无论走与跑的距离长短, 都是单个周期动作的重复。”两者在技术上存在着共同点。“跑步——走”, 是一个大家都很熟悉的队列练习方法“跑步”的口令, 相信所有体育教师都能很熟练而正确地实施口令和完成动作。所以, 在平时的练习中, 老师们习以为常了就觉得很自然, 没有什么不合适的。可是, 仔细考虑就会发现, 这个口令好像不太对。既然是跑, 怎么又变成了走了呢?这是不是存在着矛盾呢?到底“跑步——走”是“跑”还是“走”呢?

首先, 在《体操》 (体操教材编写组编, 北京:高等教育出版社) 第239页是将“跑步”, 口令为“跑步——走”归纳在“1.各种走步及其互换和立定”里面, 也就是说它是一种走步方法, 理应是一种走。

其次, 在《体操》 (体操教材编写组编, 北京:高等教育出版社) 第240页关于“跑步”是这样描述的:“上体微向前倾, 两腿微弯, 同事左脚利用右脚掌的弹力跃出约80厘米, 前脚掌先着地, 重心前移右脚动作与左脚相同。行进速度每分钟170步~180步。”这段描述中关于步幅的大小和步频的大小充分说明了“跑步”确实是跑的动作, 并不是走的动作。普通的走步步幅是远小于80厘米的, 并且步频也大约只有每分钟100步~120步。在“齐步”和“正步”中步频分别是, 每分钟116步~122步和每分钟110步~116步。即使是竞走, 它强调的也还是走, 是比赛谁走得快。它也还不是跑的范畴, 一旦运动员在比赛中出现了腾空的状态了, 就说明是犯规了。步幅要大约80厘米, 而且步频要达到每分钟170步~180步, 也就是意味着每秒钟必须完成大约3步的速度。如此速度, 只有减少脚的支撑时间来解决问题, 即必须改双脚支撑为单脚支撑, 以减少支撑的时间。再从实际的练习经验来讲, “跑步”练习起来就是跑的技术动作。

第三, 同样在《田径》上册 (田径教材编写组编, 北京:人民教育出版社) 是这样描述走和跑的主要区别的:“走的一个周期包括两次单腿支撑和两次双腿支撑, 不允许出现身体腾空现象。跑是单腿支撑与腾空的交替, 一个周期由两次单腿支撑和两次腾空组成。”也就是说走和跑最主要的区别在于能否出现腾空状态。在“跑步——走”口令中, 如果从字面上来解释, 显然是存在矛盾的, 也就是在这个练习中既要跑又要走, 是走和跑交替进行的练习。其实不然, 在“跑步——走”的练习中, 强调的是跑, 它是遵循跑的技术原理的, 而不是遵循走的技术原理的。另外, 从结束跑步动作后的口令中也可以看出, “跑步”结束后“立——定”口令发出后, 学生要有4步的缓冲过程, 也说明其速度是比较快, 惯性是比较大的。应该是一种跑的技术动作。

第四, 基于以上第二和第三两点, 说明“跑步”是以跑为技术特征的, 并不是以走为技术特征。在口令中“跑步”是个预令, 是告诉练习者现在准备做什么技术动作的, 这个技术动作是跑步前进。“走”是动令, 是告诉练习者现在可以出发前进, 并不是告诉练习者现在开始走步。

基于口令的安全用户认证模型 篇6

随着网络在人们生活中的不断深入, 网络安全越来越受到人们的关注。身份认证是网络安全中最令人关心的热点问题之一。通常, 用户在使用网络服务前必须向认证服务器提供一个对应的身份标识以及相应的秘密信息用于身份认证, 网络服务提供商根据认证结果决定是否提供所需的网络服务及用户权限。目前网络应用大致利用以下三种类型的秘密信息实现身份认证机制:用户拥有的, 比如利用智能IC卡存放一个足够大的秘密随机数 (128/256 b) 进行身份认证;用户知道的, 比如用户利用自选的口令进行身份认证;用户的特征, 比如用户用自身的生物特征, 例如指纹、声纹、视网膜、脸型等进行身份认证。在这三类机制中, 由于成本最低、实施方便使得基于口令的认证方式应用最为广泛。

1 相关工作

目前主要应用两种口令管理方式来增强口令的安全性:一种是一次口令 (OneTime Password, OTP) 的方式[1,2];另外一种是基于Hash函数的口令管理方式。对于一次口令的方式中用户在每次认证的时候, 所提交的认证信息都是不同的, 使整个认证过程更加安全, 从而能够较好地应用在Internet环境下。但这样的OTP认证系统每隔一段时间需要用户重新初始化系统, 这使得服务器的额外开销比较大;另外, 用户在认证时需要进行多次Hash运算, 在应用上也不够方便。

目前的研究热点主要集中在基于Hash函数的口令管理方式上, 此方式的特点是真正的口令是由Hash函数计算产生, 如Gabber等提出的LPWA[3], Ross等提出的PwdHash[4], Halderman等提出的Password Multiplier[5]和Yee等提出的Passpet[6]方案。LPWA和PwdHash方案都是将用户主口令和站点域名的Hash值作为真正的账号口令。这两个方案解决了多个口令的维护问题, 但由于Hash函数的运算速度很快, 它们容易遭到暴力破解。Password Multiplier和Passpet方案首先用主口令和用户信息经过多次执行Hash运算得到中间变量v, 并保存在本地主机上, 然后使用主口令、v和Web站点域名多次执行Hash运算得到账号对应的口令, 两次计算中都执行迭代Hash运算, 增加了计算的时间复杂度, 提高了暴力破解的难度。以上基于Hash函数的方案存在明显的安全漏洞, 只要攻击者攻破主口令, 就可以计算出用户的所有账号口令, 并且用户不能修改单个账号的口令。

Gajek等[7]提出应用每个用户使用高熵的口令并且不同的帐号使用不同的口令的方法来增强口令的强度, 但没有解决用户需要记忆多个口令的问题, 并且实现方法复杂。Bruce Schneier提出的Password Safe方案[8], 将用户所有的帐号和对应的口令存储在经Twofish加密算法加密的口令库中, 用户只需要记忆访问口令库对应的主口令就能管理所有的口令, 但将口令文件存储在本地磁盘上, 非常容易被窃取和破坏, 因此不但没有增强口令的强度和安全性, 反而增加了口令的不安全因素。

本文在挑战/响应的基础上, 结合Hash函数的口令管理技术和隧道技术提出了一个基于口令的安全用户认证模型。

2 提出的基于口令的安全用户认证模型

应用Diffe-Hellman密钥交换协议, DES和SHA-512提出了一个基于口令的安全用户认证模型, 如图1所示。此模型既能够抵抗中间人攻击, 重放攻击, 字典攻击和拒绝服务攻击, 同时还能提供完善向前保密。在此模型中客户端连接器和服务器端连接器使用彼此的公钥加密Diffe-Hellman交换参数以抵抗中间人攻击;抵抗重放攻击通过在客户端连接器和服务器端连接器使用挑战/响应方式进行会话密钥建立;引入口令处理器以增加口令的强度, 同时在服务器端引入“挂起”机制以抵抗字典攻击;抵抗拒绝服务攻击通过应用Email Server用于接受服务器发送过了的激活码;为了提供完善向前保密, 客户端连接器和服务器端连接器在创建隧道时随机选择秘密指数, 隧道创建成功后就将秘密指数删除。

提出的模型主要包含:登陆模块, 口令处理器模块, 连接器模块, 数据库模块, Email Server模块。

用户通过登陆模块输入“用户名”和“口令”, 登陆模块将“用户名”和“口令”传给口令处理器模块处理, 连接器模块将“用户名”和处理过的“口令”通过隧道方式传给数据库, 数据库将处理后的结果返回给连接器, 然后通过隧道将结果返回给登陆模块。各模块的功能如下:

登陆模块:与用户实现交互的界面, 向其他模块提出请求, 并显示其他模块的响应。

口令处理器模块:用户注册和修改口令时, 主动检查用户的口令;用户登陆时, 加密用户的口令。

由于一般的用户往往会选择短的、有意义的字母组合或日常生活中常用的号码作为口令以方便记忆, 而这些类型的口令数是有限的, 因此攻击者可以利用电脑将所有可能的口令存放在字典中, 然后快速地遍历字典进行反复猜测与比对, 并在很短的时间内就有可能猜出一个用户的口令。

主动的口令检查在用户注册和试图修改口令的时候就进行。这样就可以有效地消除脆弱的, 易被破解的口令。主动的口令检查对时间和资源也没有太大的消耗, 因为其检查的过程不是一个破解的过程, 而是利用口令本身检查其脆弱性的过程[9]。

登陆时用户的口令被当作DES的密钥用以加密用户名和口令的Hash值, 为了提高安全性这里建议Hash算法使用SHA-512。加密算法被重复25次, 得出结果中包含了11个字符长的字符串和两个字符的“Salt”。在系统校验用户口令时, 系统把经过加密后的口令与Password表中存储的加密字串进行比较, 如果相同则证明用户输入的口令正确。

连接器模块:为模块之间的通信提供加密解密功能。在模块之间建立隧道, 提供相互认证, 分配会话密钥和PFS。gp是公共的Diffe-Hellman参数, a是A选择的秘密指数, b是B选择的秘密指数。

(1) 连接器A向连接器B发送质询RA;

(2) 连接器B收到质询RA, 计算gbmod p, 并将计算结果和RA一起用A的公钥加密, B再对加密结果{RA, gbmod p}A进行签名操作, 并将运算结果[{RA, gbmod p}A]B和质询RB一起发送给连接器A;

(3) 连接器A将收到结果进行解密, 得到质询RB, 质询RA和gbmod p , A计算gamod p, 并将计算结果和RB一起用B的公钥加密, A再对加密结果{RB, gamod p}B进行签名操作, 并将运算结果[{RA, gbmod p}B]A发送给连接器B;

(4) 连接器B将收到结果进行解密, 得到质询RB和gamod p;

(5) 连接器A和B各自计算gabmod p, 得到共享的会话密钥K, 隧道建立成功。

数据库模块:存储用户的相关信息。

数据库中包含Users, Password和Faillog表。这三个表解决了文献[10]中提到的如何既能防止字典攻击, 又能防止拒绝服务攻击的问题。Users表通过访问Password表获得用户的口令;Password表只能被Users表访问, 提高口令的安全性;Faillog表记录用户登陆失败的情况, 设置一个阈值, 与阈值比较, 超过阈值将该用户挂起不允许该用户再次登陆, 这样可以完全抵制字典攻击;并将一个生成的激活码发送给该用户的Email中, 以便用户再次激活帐号, 这样可以抵制拒绝服务攻击。三个表的关系如图2所示。

下面给出这三个表的具体的结构。

Users表用来记录用户登陆时认证和授权的信息, 其结构如下:

用户名:标识一个惟一用户, 设为主码, 这里用用户的邮箱地址作为用户名。

连接Password:用来连接Password表, 存取用户的口令。

用户标识:标识用户的安全级别。只有当用户的安全级别高于文件的安全级别时才可以对文件有“读”访问权[10]。

组标识:标识用户所属的组。

状态:标识用户帐户的有效性。有两个状态:“有效”和“挂起”。它能完全杜绝字典攻击。

激活码:激活用户帐户, 能防止拒绝服务攻击。

Password表用来记录用户的口令, 只能由Users表来连接调用和读取, 对其他任何操作透明。其结构如下:

用户名:同表1的“用户名”字段。

口令:这里实际存储的是加密后的口令。

Faillog表用来记录用户用户登陆时的一些相关信息, 其结构如下:

用户名:同表1的“用户名”字段。

次数:统计用户登陆失败的次数。

时间:记录最近一次登陆失败时间。

在此安全模型中另外还包括例外处理模块, 各例外处理模块的功能如下:

用户名不存在例外处理模块:向调用模块返回“用户名不存在”, 并进行相应处理。

状态无效例外处理模块:向调用模块返回“状态无效”, 要求用户输入激活码, 并与Users表中该用户的“激活码”字段比较, 相等时激活用户的帐号。

密码不正确例外处理模块:向调用模块返回“密码不正确”, 并进行相应处理。

Email Server:用于接受数据库发送过来的激活码, 可以防止拒绝服务攻击。

3 基于C/S方式的原型实现

本文提出的基于口令的安全用户认证模型的实现可以采用B/S方式, 也可以采用C/S方式。在此给出一个基于C/S结构的原型实现, 如图3所示, 客户端包含登陆模块, 口令处理模块和连接器模块;服务器端包含连接器模块和数据库。

3.1 用户注册

用户输入注册名, 连接器A使用会话密钥K加密用户名并将结果发送给连接器B, B使用会话密钥K解密将结果发送给数据库, 数据库检查用户名是否存在, 并将检查结果返回;用户名通过检测, 用户输入口令;口令处理器主动检查输入口令, 不允许弱口令通过;口令通过检测, 口令处理器对口令加密, 连接器A使用会话密钥K对用户名和加密后的口令进行加密, 并发送到连接器B;连接器B使用会话密钥K解密得到用户名和加密过的口令, 将用户名和加密过的口令发送给数据库, 数据库将用户的相关信息添入表中。

3.2 用户登陆

用户登陆时, 过程如下:

(1) 用户在登陆模块中输入用户名和口令;

(2) 口令处理器加密口令;

(3) 用户名和加密过的口令通过隧道传给数据库;

(4) 数据库验证用户

① 在Users表中查找, 如果用户名存在并且状态为“有效”, 则进入下一步;如果用户名不存在, 转向用户名不存在例外处理模块;如果用户名存在但是状态为“挂起”, 则转向状态无效例外处理模块。

② 通过连接Password字段, 连接Password表。在Password中查找用户名所对应的口令进比较如果相等进入第 (5) 步;否则进入下一步。

③ 在Faillog表查找用户名对应的记录。记录此次登陆失败的时间。将登陆失败次数加1, 比较是否超过最大限制次数。如果超过进入下一步;否则, 转向密码不正确例外处理模块。

④ 将Users表中用户的状态字段改为“挂起”。通过Faillog表中用户最近一次登陆失败时间生成一个激活码 (用于激活用户帐号) , 存储到Users表中用户对应的“激活码”字段并发送到用户的邮箱中, 转向状态无效例外处理模块。

(5) 验证通过, 通过Users表对用户进行初始化。

在客户端使用HOOK (钩子) 技术来加强登陆的安全性。

钩子函数实际上是一个处理消息的程序段, 每当一个应用程序调用函数GetMessage或PeekMessage而恰有一个消息即将被处理时, 系统调用钩子函数。也就是说, 当特定的消息发出, 在没有到达目的窗口前, 钩子函数先捕获消息, 亦即钩子函数先获得控制权。这时钩子函数既可以加工处理该消息, 也可以不作处理而继续传递消息, 还可以强制结束消息传递。系统为每种类型的钩子维护一个钩子链, 最近安装的钩子放在链的开始, 而最先安装的钩子放在最后, 也就是后加入的钩子先获得控制权。

由于最后安装的钩子总是放在最前, 也就是最先获得对消息的控制权。为此可以在客户端每次登陆时, 安装键盘钩子, 钩子截取用户输入的用户名和口令, 发送给口令处理模块和连接器模块, 登陆成功后卸载键盘钩子。由钩子函数来阻断键盘消息在钩子链中的传递, 将消息直接发送给消息接受窗口。本模型创建钩子的核心代码如下:

创建一个键盘线程钩子WHKEYBOARD, 在登陆窗口中SetWindowsHookEx (WHKEYBOARD, (HOOKPROC) KeyboardProc, hInst, GetCurrentThreadId () ) ;

钩子处理函数KeyboardProc如下:

登陆成功后UnhookWindowsHookEx (hook) ;

4 结 语

身份认证是网络安全中热点问题之一, 本文对基于口令的安全用户认证模型进行研究, 应用DES, SHA-512和Diffe-Hellman密钥交换协议提出一个能够有效抵抗中间人攻击, 重放攻击, 字典攻击和拒绝服务攻击, 同时能提供完善向前保密的安全用户认证模型, 并且进行了安全性分析。最后给出了一个基于C/S结构的原型实现。

摘要:对基于口令的访问控制进行研究, 应用DES, SHA-512和Diffe-Hellman密钥交换协议, 提出一个基于口令的安全用户认证模型。此模型可以抵抗中间人攻击、重放攻击、字典攻击和拒绝服务攻击, 同时还能提供完善向前保密。基于提出的安全用户认证模型应用HOOK技术, 给出了一个基于C/S方式的原型实现。

关键词:访问控制,身份认证,弱口令,哈希函数,HOOK,DES,Diffe-Hellman密钥交换协议

参考文献

[1]Lamport L.Password Authentication with Insecure Commu-nication[J].Communications of the ACM, 1981, 24 (11) :770-772.

[2]Haller N.The S/KEY One-Time Password System.RFC1760.1995.

[3]Gabber E, Gibbons P B, Matias Y, Mayer A.How to MakePersonalized Web Browsing Simple, Secure and Anonymous[J].Proceedings of Financial Cryptography′97, Anguilla:Springer-Verlag, 1997:17-31.

[4]Ross B, Jackson C, Miyake N, et al.Stronger Password Au-thentication Using Browser Extensions[A].Proceedings ofthe 14th USENIX Security Symposium[C].2005:17-32.

[5]Halderman J A, Waters B, Fehen E W.A ConvenientMethod for Securely Managing Passwords[A].Proceedingsof the 14th International Conference on World Wide Web[C].Chiba:ACM Press, 2005:471-479.

[6]Yee K P, Sitaker K.Passpet:Convenient Password Manage-ment and Phishing Protection[A].Proceedings of the SecondSymposium on Usable Privacy and Security[C].New York:ACM, 2006:32-43.

[7]Gajek S, Sadeghi A R, Stuble C, et al.Compartmented Secu-rity for Browsers-or How to thwat a phisher with trustedcomputing[A].Proceedings of the 2nd International Confe-rence on Availability, Reliability and Security[C].Washing-ton DC:IEEE Computer Society, 2007:120-127.

[8]Schneier B.Password Safe[EB/OL].http://www.schneier.com/passsafe.html.

[9]董光宇, 高安全等级操作系统及网络服务的标识鉴别机制[D].北京:中科院软件所, 2002.

动态口令身份认证机制的研究 篇7

动态口令身份认证具有随机性、动态性、一次性、不可逆等特点, 不仅保留了静态口令方便性的优点, 而且很好地弥补了静态口令存在的各种缺陷。动态口令系统在国际公开的密码算法基础上, 结合生成动态口令的特点, 加以精心修改, 通过数十次以上的非线性迭代运算, 完成时间参数与密钥充分的混合扩散。在此基础上, 采用先进的身份认证及加解密流程、先进的密钥管理方式, 从整体上保证了系统的安全性。特点如下:

⑴动态口令系统的抗截获攻击能力在动态口令认证系统的设计中, 每个正确的动态口令只能使用一次。因此, 不用担心口令在传输认证期间被第三方监听到。因为正确的口令在认证服务器上被认证之后, 在数据库中会有相应的日志记录, 这时即使再有使用这个正确口令的用户提交认证, 也不能通过。动态口令系统的这个特点使得截获攻击无法实现。

⑵动态口令系统的抗实物解剖能力动态口令卡采用了带加密位的数据处理器, 防止有人企图解算法程序从其中读出, 具有很高的抗实物解剖能力。另外, 由于每个用户的密钥都不相同 (在初始化时随时生成) , 并且密钥与同口令计算有关的信息存贮在动态RAM中, 当有人对其进行分析时, 数据处理一旦掉电, 这些密钥将消失。即使有人破译了其中的程序, 由于不知道用户的密钥, 以及初始化时间等相关信息, 也无法正确地计算出用户实时的口令。

⑶动态口令系统的抗穷举攻击能力穷举攻击是破解口令时常用的攻击手段之一。这种攻击手段的特点就是大量频繁地对一个用户的口令进行反复认证。针对这一特点, 在动态口令认证系统中对每一个用户在一个时段内的认证结果设计了日志记录, 当发现一个用户的认证记录为多次失败时, 系统将锁住这个用户的认证行为。这样也就杜绝了穷举攻击的可能性。

⑷系统的密钥管理和安全数据库的加密。系统安全数据库保存用户信息、用户密钥等等, 这些敏感数据如果泄露, 将使第三者获得合法用户的身份, 因此是绝对需要保密的。我们对安全数据库均进行加密后存放在服务器上, 绝对不以明码的形式出现。系统主密钥存放在系统维护员的IC卡上, 只有掌握系统维护员的IC卡的人才能对这些敏感数据库进行操作。因此不掌握系统密钥的话, 即使有机会接触到服务器, 也无法取得各用户密钥。

下面以南京众力科技有限公司生产的系统为例, 剖析一下中小型局域网内布局VPN动态口令身份验证方案的实现。VPN动态口令身份认证系统主要由以下几个主要模块组成:认证系统管理员界面、帐号管理服务器 (UAM) 、RADIUS认证服务器、NAS (网络接入服务器采用带VPN功能的防火墙, 例如:NOKIAIP380) 、ORACLE数据库管理系统、VPN客户端、防火墙管理软件 (例如:NOKIA防火墙软件CheekPointExpress) 。VPN用户从顶temet远程访问内部网络, 需要对用户身份进行认证, 允许合法的用户访问网络, 不合法的用户不允许访问。密码通过远程网络传输有被黑客拦截的危险, 而采用动态口令作为密码, 真正做到一次一密, 即每次用户通过身份认证后本次密码立即失效。用户下次登录时, 通过VPN客户端获得新的密码, 并通过手机短信将新密码发送给用户。

采用该方案后, 在中小型公司的认证系统中能够实现:⑴密钥/时间双因素的身份认证机制;⑵登录口令随时间变化;⑶口令使用次数和时效自由控制, 有效抵御重播攻击行为;⑷开放的应用程序接口, 与应用系统方便集成;⑸使用经过国家认可的自主密码算法, 具有优秀的安全性;⑹提供客户端设备与认证服务器之间的时间补偿机制, 提高系和可用性;⑺用户端设备设计小巧, 性能稳定, 使用方便;⑻提供完善灵活的安全事件日志审计和查询功能。

避免了静态口令中的不足, 譬如:

⑴网络数据流窃听

⑵认证信息截取/重放

⑶字典攻击

⑷穷举尝试

一种针对口令的加密设计方案 篇8

很多系统中, 对用户ID、密码的存储与传送都没有进行加密处理, 明文在使用过程中很容易被非法用户获得, 所以很难保证系统的安全性。笔者对用户密码采用了移位代换算法进行加密处理, 并对传统的移位代换算法进行改进, 使用户密码在存储及传输过程中都以密文的形式存在, 加大了被破译的难度。

1 单表移位代换密码

单表代换密码指明文的所有字母都用同一个固定的明文字母表到密文字母表的映射, 即令明文m=m0m1…, 则相应密文为:

其中f表示某个固定的明文字母表到密文字母表的映射。

移位代换密码是最简单的一类代换密码, 其加密变换为:

其中, mod q表示为q除得的余数。密钥空间元素个数是q, 其中有一恒等变换, 即k=0。解密变换为:

最著名的单表代换密码是以凯撒大帝命名的凯撒 (Cacser) 密码。这是对英文26个字母进行移位代换的密码。q=26, k=3, 则有下述代换:

比如, 明文是m=Cacser cipher is a shift substitution, 则经凯撒密码变换后得到的密文是:

反向利用同一个对应表, 就可以从密文C=E (m) 中恢复出原来提明文m。

2 改进的移位代换密码对用户密码的加密

通过分析, 传统的移位代换密码算法存在很大缺陷, 在进行移位加密代换时采用固定的K值, 所以降低了密文破译难度。一旦明文代换表与移位数K被确立, 密文的安全性就不复存在。为了减小密文被破译的可能性, 本文作者对传统的基于单表的移位代换密码算法做了一些改进, 把K值的确立与具体用户的某些相关信息联系起来 (本文中假设用户名) 。K的值随用户名的不同而不同, 即不同的用户密码在加密存储及传输时采用不同的K值来处理。并且对某一明文的不同位置上的字符采用不同的K值进行移位处理, 即使黑客对多个不同的密文来分析, 也很难得出对明文的加密规律, 因为对于K值的选择带有一定的随机性。

为算法的实现方便, 对用户名和密码做了两点约定: (1) 用户名必须是由汉字或拼音组成; (2) 用户密码是数字与字母的组合且密码当中不能包括空格。下面对这种算法思想做简单介绍:

移位K的不同取值来源于用户名, 即取用户名称的拼音位数, 如:王大传 (wang da chuan) , 则K= (4, 2, 5) 。在对明文进行移位处理时, 则对于不同位置上的明文采用不同的K值进行处理。明文加密首先根据K的取值个数进行分组, 这里K个数为3, 所以对明文以3为单位进行分组。然后对每一组分别采用不同K值进行移位代换。比如给定明文:pub159lic, 其各位与移位K值对应关系如图1所示:

加密变换为:

mi为明文m中第i个字符, i的值不超过明文的的最大长度。q有两个值:当明文中的字符对应为数字时, q=10;为字母时, q=26。L为明文长度, 即用户密码的长度。J为K的取值个数。

为了计算的方便, 当明文出现字母时, 直接将它转化为对应表中的数值。对应关系为a~z对应数值中的0~25, 即a=0, …, z=25 (表2所示) , 而不是采用的字母对应的ASCII值;明文中的数值保持不变。对数值明文计算以后得到的值为加密的值;对字母明文计算以后的值再根据对应表转化成字母的值为加密后的值。其中定义了两个数值与字母转换的函数:LTON () 为字母转化成数值函数, NTOL () 为数值转化成字母函数。

解密变换为:

在进行密文恢复的时候, 如果密文当中出现的是字母, 则首先将字母转化成对应的数值, 然后再与K作比较, 如果为数值则直接与K比较。这里ci是转化为数值以后的值, 通过比较结果来决定恢复密文所用公式。

3 算法流程

为便于理解, 下面通过具体实例来看一下算法的加密与解密过程:

这种加密方法的优点是移位值K取的是一组值, 而且取值带有一定的随机性。对明文加密时分别对不同的位采用不同的K值进行移位代换, 增加了破译难度。缺点是明文与密文对应位置的数据类型是一样的, 即数值加密以后得到的依然是数值, 字母加密以后还是字母。虽然这种加密方法不能抵抗高强度的密码分析, 但是对于一般的黑客还是能够起到一定的作用, 使他们不能够轻易地得到用户密码。

4 结束语

对用户ID/密码的安全检索是加强系统安全应用最广泛的一种方式。基于明文的存储与传输存在很大的安全问题, 笔者对传统的基于单值移位K的加密算法进行改进, 使加密算法的安全性基于在多值移位K上, 减小了密码被破译的可能性。

摘要:本文提出了一种简单的对用户口令的加密方案, 采用移位代换算法进行加密处理, 并对传统的移位代换算法进行改进, 使用户密码在存储及传输过程中都以密文的形式存在, 增加了应用系统的安全性。

关键词:身份认证,口令识别,加密,安全性

参考文献

[1]阙喜戎, 孙悦, 龚向阳, 王纯.信息安全原理与应用.清华大学出版社.2003.7.

上一篇:语文作业下一篇:中医整体护理