第一篇:SKEY认证方案的分析与改进
S/KEY认证方案的分析与改进
殷松瑜,徐炜民
(上海大学 计算机工程学院,上海 200072)
摘 要:本文提出的改进S/KEY身份认证协议,使用随机数与机密信息进行异或运算,屏蔽重要信息防止机密泄露,实现了用户和服务器间的相互认证,认证服务器的计算负载并没有增加。本方案克服了传统S/KEY一次性口令认证方案不能抵抗重放攻击,小数攻击,冒充攻击,中间人攻击安全漏洞,有效地防止了连接劫持、协议破坏攻击等攻击手段,显著地增强了应用系统的安全性。关键词:S/KEY身份认证; 一次性口令; 异或; 散列函数 中图法分类号: TP393108
文献标识码: A
Analysis and Improvement of S/KEY Authentication Scheme
YIN Song-yu,XV Wei-min
(School of Engineering and Computer Science Shanghai University , Shanghai 200072)
Abstract:This paper proposes a new improved S/KEY protocol.As is described in my authentication scheme that the random number XORed by the confidential information prevents confidential information from disclosure, and a mutual authentication between the user and the server is effectively carried out , but which do not increase the overhead of authentication server.The new S/KEY solution can not only overcome the vulnerabilities of security that the traditional S/KEY one-time password protocol will not help the server to resist the replay attacks, small integer attacks, personate attacks and man-in–middle attacks, but also effectively prevent the server from connection hijacking, protocal–broken and other attacks, so the improved S/KEY protocol significantly enhances the security level of application system.Key words: S/KEY Authentication;One-Time Password;XOR;Hash fuction
是验证通信双方是否符合其所声称的身份, 防止非法用户窃取合法用户的身份,以得到不应有的授权进入系统获得不正当利益或恶意破坏系统。
传统的认证技术是输入用户名/口令的基本认证方式,这种认证最大的问题是用户名和口令都以明文的方式在不安全的网络中传输,很容易受到恶意的窃听、篡改、重放或在线猜测和离线字典攻击。安全的基于证书的数字签名技术必须以完整的CA(Certification Authority,证书授权中心)体系为基础,但目前在国内还没有法律上所公认的可信的第0 引言
计算机通信技术和网络的发展使得网络成为信息交换的主要手段,越来越多的企业将电子商务作为重要的运营模式。当企业用户在其业务活动中把自己完全展示给外部的用户和商业合作者或当通过网络获取客户的敏感数据时, 网络的安全访问控制就成了保护企业信息安全, 防止黑客恶意攻击破坏的重要手段。身份认证是确保网络系统中信息安全的门户,网络应用系统的第一道防线。身份认证的目的就三方证书授权中心。对于在不安全的网络环境中的企业来说,采用实现不太复杂,又无需第三方认证的一次性口令(One Time Password,OTP)认证技术是一种很有吸引力的的解决方案,从理论上讲,只使用一次的密码(A Single Use Password)是永远不会被破解,是最安全的密码。
本文在分析研究S/KEY一次性口令认证技术的基础上,针对S/KEY系统的缺陷[1][2][3]提出了一种新的改进方案。已有的一些改进方案[4][5][6][7]使用离散对数公钥加密技术,另外一些方案 [8]使用对称加密方法,虽然改进方案宣称无需第三方公证,但是如何管理分配加密密钥,是否最后还是依靠公钥基础设施PKI,这些都是很难解决的问题。使用加密方法增加了系统开销和实现的复杂度,这也就失去了口令认证的优点:实现方案简单,运行成本低等。而方案
[9][10][11]
虽然对S/KEY认证技术有所改进,却并没有完全解决S/KEY系统的安全问题。本文所提出的方案使用随机数与机密信息进行异或运算,屏蔽重要信息内容防止机密向外泄露,相比原来S/KEY方案认证服务器增加的运算量很小。改进方案克服了传统S/KEY一次性口令不能抵抗小数攻击,冒充攻击等安全漏洞,实现了用户和服务器间的相互认证,有效地防止了连接劫持、协议破坏攻击等攻击手段,显著地增强了应用系统的安全性。一次性口令认证技术
窃取系统口令文件、通过偷听网络连接来获取和合法用户的口令以及重放是常见的攻击方式。一次性口令系统设计的目的就是为了对付这种类型的攻击, 使用户在每次注册时使用一个以前没有使用过的口令。1.1 基本原理
OTP的主要思路是:在登录过程中加入不确定因子,使每次登录过程中生成的密码都各不相同,以提高登录过程的安全性。系统接收到登录口令以后, 以同样的算法做一个验算即可验证用户的合法性。目前有许多方法可以实现一次性口令身份认证,常用的有如下3种:(1)Lamport方案[15]。即哈希链(Hash chains)算法。在初始化阶段选取一个口令pw和一个次数n,及一个单向散列函数Hash,通过计算y= Hash n(pw),把y和n的值存到服务器上。用户端计算y'= Hash n-1(pw)的值,服务器计算 z = Hash(y')的值同服务器上相应的值y进行比较。如果z=y,则验证成功,然后用y'的值取代服务器上y的值,n的值减1。通过哈希链算法,用户每次登录到服务器端的口令都不相同。这种方案的优点是易于实现,且无须特殊硬件的支持。而缺点是用户需要进行多次Hash运算,其安全性依赖于单向散列函数Hash,而且每隔一段时间还需要重新初始化系统,服务器的额外开销很大。
(2)时间同步方案(见图1)[15]。每个系统用户都持有相应的时间同步令牌(token)。令牌内置时钟,种子密钥和加密算法。时间同步令牌根据当前时间和种子密钥可以每分钟动态生成一个一次性口令。动态口令传送到认证服务器。服务器通过其种子密钥副本和当前时间计算出所期望的输出值,对用户进行验证。如果相匹配,则登录通过。虽然该方法可以保证很高的安全性,然而技术上很难保证用户的时间同步令牌在时间上和认证服务器严格同步,因为数据在网络上传输和处理都存在一定的时间延迟,所以该方案实现时是在允许的时间误差范围内(例如多少秒)都可以通过认证,但是当时间误差超过允许值时,对正常用户的登录往往造成身份认证失败,这是时间同步方案很大的缺点,另外该方案要求有时间同步令牌这类特殊硬件的支持。
(3)质询/应答方案(Challenge/Response)(见图2)
[15]
。每个用户都持有相应的质询/应答令牌。令牌内置种子密钥和加密算法。用户需要访问系统时,服务器随机生成一个质询(Challenge),用户将该质询手工输入到质询/应答令牌中,质询/应答令牌利用内置的种子密钥和加密算法对其计算出相应的应答(Response)。用户将该应答手工输入到主机再上传给服务器。服务器根据该用户存储的种子密钥和加密算法计算出应答并和用户上传的应答进行比较,该方法可以保证很高的安全性。但该方案也有缺陷:需要特殊硬件(质询/应答令牌)的支持,增加了该方案的实现成本;用户需多次手工输入数据,易造成较多的输入失误,使用起来十分不便;用户的身份标识直接在网络上明文传输,攻击者可很容易地截获它,留下了安全隐患;没有实现用户和服务器间的相互认证,不能抵抗来自服务器端的冒充攻击;质询每次都由服务器随机生成,造成了服务器开销过大。
1.2 S/KEY一次性口令认证协议
目前在实际应用最广泛的一次性口令是S/Key认证协议,它也是质询/应答方式的一种。
S/Key一次性口令的原理是: OTP为每个用户分配一个账号,每个账号配有种子(Seed)、迭代值(Iteration)和秘密通行短语(Secret Pass Phrase,SPP)。在客户端和服务器端各安装一个OTP计算程序,用户通过客户机访问服务器时,首先向服务器传送自己的账号,服务器应答一个由与该账号对应的种子Seed和迭代值Seq组成的质询, 用户在客户端输入只有自己知道的秘密通行密语给予应答,客户机OTP计算程序使用该质询和秘密通行短语产生一个一次性口令,并以该一次性口令登录,作为对质询的应答。服务器端OTP计算程序同时也产生一次性口令,然后与所收到的一次性口令进行对比,从而完成服务器对登录用户的鉴别。每次登录成功后,迭代值递减。
但是当迭代值递减为0或秘密通行短语泄密后,则用户必须重新初始化系统。这也是S/KEY一次性口令最大的不足。1.3 单向散列函数
S/KEY认证是一种摘要认证, 主要利用了散列函数又称为哈希函数(Hash), 就是把可变输入长度申转换成固定长度输出串散列值的一种函数。S/KEY认证的安全性正是依赖于散列函数的单向、计算不可逆的特性:
(1)给定消息M很容易计算Hash(M),但是根据Hash(M)反向计算M却很难,几乎是不可能。
(2)给定M消息要找到另一消息M’, 并满足Hash(M)= Hash(M’)也是几乎不可能。
目前,著名的散列函数有MD4、MD5和SHA。SHA(Security Hash Arithmetic)是由美国国家标准和技术(NIST)提出的。SHA-1 算法允许的最大输入报文的长度不超过26
4位,输出160 比特的报文摘要。SHA-1 与MD5相似,都是从MD4 导出的,但它对强行攻击具有更大的强度,且易于实现。传统S/KEY认证系统[1] S/KEY认证系统分注册阶段和认证阶段2个阶段实现。本文使用的标志如下:U为客户端;S为服务器端;ID为用户身份标志;PW为用户口令;→为信息发送标识;//为级联运算符;⊕为异或运算符;H(x)为安全哈希函数;Hi
(x)为对x进行i次哈希运算;N为口令序列的元素个数;Seq为当前序列数(第i次认证序列数,Seq=N-i)。2.1注册过程
注册工作由客户端U与服务器端S共同参与完成,协商并保存在认证过程中将要用到的数据,要求注册工作必须在安全环境下进行。
(1)U输入ID和PW,请求注册;(2)S为U选择种子值Seed发送给U;
(3)U设置一次性口令序列的最大元素个数N,并计算口令序列的第一个口令HN(PW//Seed)传送给S;(4)S建立记录,存储ID,Seed,N,HN
(PW//Seed)。2.2认证过程
第i次认证过程如下:
步骤1 U→S:ID,认证请求;
步骤2 S→U:Seq=N-i,Seed;
步骤3 U→S:ID, HN-i(PW//Seed);
步骤4 S用收到的HN-i(PW//Seed)再做一次哈希运算
H(HN-i
(PW//Seed)),与上次认证成功后保留的H
N-(i-1)
(PW//Seed)比较,若相等,S就向U发送登
录成功消息,并保留HN-(i-1)
(PW//Seed)作为下一
次认证的验证值。
2.3 传统S/KEY认证系统的安全缺陷分析
S/KEY系统虽能有效抵御重放攻击,有一定的安全性,但是系统本身仍有很多缺陷。
S/KEY系统无法抵御冒充攻击,即冒充服务器攻击。传 统S/KEY系统是一种简单的认证协议,认证过程中只对用户 进行认证而不对服务器进行认证,并且S/KEY方案并没有提 供对传输数据的加密,Seed和Seq都是以明文形式在传输信道中传输,因此,攻击者可以欺骗用户去登录攻击者指定的假冒服务器,当用户提交认证请求时,假冒服务器可以发送事先窃听到的Seed,Seq给用户从而欺骗用户得到一次有效的登录口令,再伪装成合法用户登录服务器。
小数攻击是特别针对于口令序列类型的OTP方案的攻 击方式,S/KEY认证系统不能防御此种攻击。攻击者可以得 到系统使用的安全散列函数H(x),通过监听和篡改步骤(2)中的序列数Seq为一个小很多的数值m给用户,这样用户就会计算出Hm
(PW//Seed)给攻击者,攻击者再将Hm
(PW//Seed)哈希Seq-m次,既H
seq-m
(Hm(PW//Seed))得到Hseq
(PW//Seed)也就
是正确的口令去登录服务器,因为m< Seq,所以攻击者在成功进行一次攻击后仍可保留Hm
(PW//Seed)以后使用,只要服务器在认证时在步骤(2)中发送一个比m大的序列数攻击者就可计算出正确的口令来登录服务器。
S/KEY系统无法抵御协议破坏攻击,如果在合法用户和 服务器进行正常认证过程中攻击者成功地进行了窃听,并在 步骤(3)中,攻击者窃取到了第i次有效的口令HN-i
(PW//Seed)后将认证过程破坏或服务器崩溃,那么在系统重启后会直接恢复到认证破坏前的步骤(3),这时攻击者就可以利用协议被破坏前窃取到的有效口令登录服务器。
中间人攻击是指攻击者通过各种技术手段将自己控制的计算机非法连接到2台正常通信计算机的通信信道之间,直接即时地读取和篡改信道中的信息,而通信两端的计算机却认为彼此还在互相通信,无法察觉信息已经被转发过。这种隐蔽性攻击是对网络安全极具威胁和破坏性的一种攻击方式。S/KEY系统对于中间人攻击更显得无能为力,只要攻击者通过一定的技术手段成功建立好中间人攻击环境,则U与S之间传递的一切信息都会经过攻击者控制的计算机进行转发,攻击者只需在步骤(3)中获得一次性口令后强迫合法用户下线,再直接转发口令给S冒充合法用户登录。
连接劫持攻击最早由Bellovin[3]
提出,这种攻击方法是非法用户绕过身份确认这一关,等到合法用户通过认证成功与服务器建立连接后,设法劫取此连接先行抢入连接冒充合法用户侵入系统。
S/KEY认证系统的改进
3.1 改进思路
1)在证明对方身份之前,不给出有关信息的鉴别,不泄露有关信息,2)尽量使用简单而且安全的算法以减少认证服务器的运算量,提高效率,3)尽可能使传送的消息简短,减少相互传递的认证信息的个数,减少网络通信量,4)用户和系统之间进行相互认证,5)提供安全通信防止连接劫持的功能。3.2注册过程
注册工作与传统S/KEY方案大体相同,由U与S共同参与完成,协商并保存在认证过程中将要用到的数据,由服务器端S建立记录,存储ID,Seed,N,HN(PW//Seed),所不同的是客户端也要记住ID,Seed,并保证ID,Seed作为U和S共享秘密的安全。种子Seed的设置原本是为了客户在不同的服务器上方便使用OTP[1],在不同的服务器使用不同的Seed,这样即使客户使用同一个秘密通行短语SPP在不同的服务器上也能生成不同的OTP。在本方案中客户U记住Seed就能实现与服务器协商会话密钥(一个客户端生成的随机数),并且Seed也不需要每一次认证都传送给客户端,以减少被窃听的可能。
从安全角度考虑客户端可以用USBkey存储机密信息,而服务器端同样要保证存放客户信息的数据库的安全,防止非法窃取机密信息,特别是内部攻击。3.3认证过程
服务器端保留有一张表,每条记录包含:用户名ID,种子Seed,当前序列号Seq=N-i,上次成功登录密码PN-(i-1)
i-1=H(PW//Seed);
第i次认证过程:
步骤1 U→S:认证请求,H(ID),H(ID//Seed)⊕Ri; 步骤2 S→U:Seq⊕Ri,Pi-1⊕Ri; 步骤3 U→S: Pi⊕Ri;
步骤4 S→U:认证成功消息,保留Pi。
步骤说明:
步骤1:客户端U在每一次认证前都要产生一个随机数Ri 作为下面认证过程的会话密钥,用来屏蔽相关信息以防止泄密。为了保护客户ID,Seed信息,不传送明文,而改为发送他们的哈希函数值。
步骤2 :服务器端S在数据库中查找到ID对应的Seed,计算H(ID//Seed)⊕Ri⊕H(ID//Seed)= Ri 就可以得到随机数Ri,至此通过ID,Seed作为共享秘密由U和S协商了会话密钥Ri。为了不泄露机密信息,S发送Seq和Pi-1的加密形式,以防止被恶意攻击者窃听。
步骤3:客户端U通过计算Seq⊕Ri⊕Ri=Seq,和Pi-1⊕Ri⊕Ri= Pi-1,得到了当前序列号Seq=N-i和上次成功登录密码
PN-i
i-1以后,再计算第i次登录密码Pi=H(PW//Seed), 比较 H(Pi)和Pi-1,若相等则继续向服务器端发送加密形式的Pi;否则就中断认证过程。
步骤4: 服务器端S接受到客户端发来的登录密码加密的Pi后,计算Pi⊕Ri⊕Ri=Pi得到第i次登录密码Pi,再次计算H(Pi)并把它和自己保存的上次成功登录密码Pi-1进行比较,若相等则S向U发送登录成功消息,并用Pi替换Pi-1作为保留的值用于下一次认证,否则就中断认证过程,拒绝用户登录。3.3 改进S/KEY方案的安全性讨论
方案注册阶段在安全环境下进行,用户用USBkey 保存机密信息ID,Seed,可有效防止共享秘密信息泄漏,从而保证了会话密钥Ri的绝密性。共享秘密是确保本方案安全的基本条件之一。
在步骤(l)中,发送客户ID,Seed信息的散列值也杜绝了相关秘密的外泄。U和S通过共享秘密ID,Seed相互协商交换随机数Ri作为会话密钥,而下面认证过程的相互传递信息的机密性,都是依靠随机数Ri对传递的消息进行异或运算来防止非法窃听和篡改。
本方案还有一个确保安全性的基本条件,那就是用异或运算加密的安全性, 虽然MD5,SHA函数已被证明是不安全的[13], 而新方案采用异或运算方法对散列值值进行加密,Hash函数长度(例如MD5为128位, SHA为160位)足以保证攻击者不能通过穷举法破解有关机密信息[14]
。这里建议使用长
度更长更安全的Hash函数如SHA-224, SHA-256, SHA-384 和
SHA-512。
在步骤(2)中,S通过共享秘密解密h(ID//Seed)⊕Ri得到会话密钥Ri,使用Ri异或运算散列值Seq和Pi-1来加密,即使攻击者有进行猜测、穷举等攻击的可能,但是异或运算加密的时间很短,并且每次认证随机数都不同,因此,可以保证此过程中异或运算加密信息的安全性。
由于客户端用户用以产生OTP口令的秘密通行密语也就是真正的用户口令既不在网上传输,也不存储在服务器端及客户端的任何地方,只有使用者本人知道,因此即便在不安全的网络通信信道中秘密通行密语也不会被窃取,字典攻击、口令字猜测等常用的攻击手段对破解真正的用户口令都无能为力。OTP口令只使用一次,即使在网络传输过程中被捕获下一次也被不能被重复使用。这样一来攻击者既不能非法窃取相关客户的机密信息来构造出正确的OTP口令,又不能重放已经截获的信息来通过服务器认证,所以对于客户来说整个认证过程是安全的。
在步骤(3)中实现了客户端对服务器端的认证,因为只 有服务器端才保存有上次成功登录密码Pi-1。在步骤(4)中实现了服务器端对客户端的认证,只有客户端才能正确生成第i次登录密码PN-i
i=H(PW//Seed),因为只有客户端才知道秘密通行短语PW和种子Seed。本方案实现了客户端和服务器端的双向认证,可以抵抗来自客户端的假冒攻击和来自服务器端的假冒攻击,却不会使合法用户的合理要求得不到满足,也就是说本方案可以防止拒绝访问攻击和中间人攻击。
由于在认证的过程中客户端的机密信息:用户名ID,种子Seed,当前序列号Seq=N-i都被加密,攻击者无法窃听,当然也就不能篡改Seq,冒充服务器向用户发送一个小很多的数值m进行小数攻击。另外攻击者窃取不到第i次有效的口令HN-i(PW//Seed),即使认证过程被破坏或服务器崩溃,系统重启后会直接恢复到认证破坏前的步骤(3),这时攻击者就也不能利用协议被破坏前窃取到的有效口令登录服务器,所以协议破坏攻击对本方案不可行。步骤(4)结束后服务器端完成了对客户端的身份认证。但是攻击可能设法劫取此连接以冒充合法用户访问服务器。这样攻击者就成功地冒充用户,达到了欺骗服务器的目的。所以在本方案中当合法用户登录完成后,服务器端会定期地向客户端发出质询(Challenge),而客户端必须作出相应的应答(Response)否则就会切断该用户的已有连接。服务端向客户端发送的质询和客户应答需要另外建立一条连接,不影响原连接的客户端与服务器的正常通信,这对用户而言是透明的[10]。
为了避免被动攻击(Passive Attack)[16],每个用户登录时,只能建立一条连接,这样就能防止其他用户监听到部分口令后发动多条连接猜测后续的口令。3.4 改进S/KEY方案的实现问题
在运行效率方面,本方案主要的计算是散列函数和异或运算,而利用公私钥加密算法实现OTP,或者在有限域上用离散对数实现OTP相比,无论是硬件资源需求还是在运算复杂度上都要简单。另外生成随机数Ri的工作移到客户端上执行,和质询/应答方案(Challenge/Response)相比减少了服务器的额外开销。
通过网络安全注册可以实现如下:首先客户下载服务器的公钥用来加密一个对称加密私钥K发送给服务器,由服务器用于加密发往客户端的机密信息如种子Seed等,而客户也可以通过服务器的公钥加密发往服务器的信息,当用户重新初始化系统也可以通过网络安全注册。
S/KEY方案当迭代值递减为0或秘密通行短语泄密后, 用户需要重新初始化系统,这是S/KEY方案最大的缺点,但是从安全维护的角度来说初始化系统,同时也是在检查系统是否发生异常,是否受到攻击,是否有机密信息泄露并做好防范措施,保证系统的安全。结束语
用户身份认证是网络中保证信息安全的重要前提,一次性口令协议是简单认证中一种具有较高安全性的一类协议。本文提出了一种新的S/KEY认证方案,克服了传统的S/KEY认证的安全缺陷,有效地保护了用户身份机密信息,实现了客户端和服务端双向认证。改进协议能够较好地抵御
小数攻击、假冒攻击、协议破坏攻击等恶意破坏,实现了分布式系统的安全认证和持续用户认证,提高了S/KEY系统的安全性,并且没有增加认证服务器的计算负载。
改进S/KEY方案相对于强制认证的PKI等而言,具有实现简单、使用方便的特点,所以在很多场合都有推广意义,例如硬件资源少,运算能力有限的移动设备的远程身份认证。本方案还可以集成到其他安全解决方案中,如智能卡,指纹识别等以提高应用系统的安全防护能力。
参考文献
[1] Haller N.A one-time password system[S],(RFC2289),1998
[2] Mudge.Vulnerabilities in the S /KEY one time password system[EB/OL].http://www.xiexiebang.com
第二篇:基于USB_Key的PKI身份认证技术的分析与改进
基于USB Key的PKI身份认证技术的分析与改进
摘要:在当今数字世界中,身份认证技术是各种安全技术的基础。USB Key技术是现在比较流行的基于PKI的强身份认证技术,特别是在网上银行等金融领域。研究了USB Key的典型使用流程,分析了这些流程中的安全威胁,最后着重提出了针对这些风险的安全解决方案,这些方案都是在具体项目得以实施应用,对目前的USB Key使用和开发具有很好的实用和借鉴意义。
关键词:USB智能密码钥匙;公钥密码基础设施;身份认证;数字签名;网上银行
中图分类号:TP393.08 文献标识码:A
Analysis and improvement of PKI identity authentication technology based on USB Key Abstract: Now in digital world, all of security technologies are based on digital identity authentication technology.And the USB Key technology is one of the most popular technologies, which is a strong authentication technology and based on PKI, especially in Internet banking filed.The typical usage flows are researched, the security threats are analyzed.At the last, the solutions are proposed corresponding to these threats, which is applied in practical projects and have great practical and economic value.Key words: USB Key;PKI;Identity authentication;Digital signature;Internet banking 1引言
随着互联网和电子商务的发展,USB Key作为网络用户身份识别和数据保护的“电子钥匙”,正在被越来越多的用户所认识和使用。
USB Key[1,2,3]这个概念最早是由加密锁厂家提出来的,加密锁是用来防止软件盗版的硬件产品,用于识别用户身份。与此同时,随着PKI[45,6]应用的兴起,数字证书[45,6]作为确认用户身份和保护用户数据有效手段越来越被人们所接受。然而数字证书实质上表现为带有用户信息和密钥的一个数据文件,如何保护数字证书本身又成为PKI体系中最薄弱的环节,专门用于存储秘密信息的USB Key就很自然的成为数字证书的最佳载体。利用USB Key来保存数字证书和用户私钥。
每一个USB Key都带有PIN码保护,这样USB Key的硬件和PIN码构成了可以使用证书的两个必要因子,也就是所谓的双因素认证[7]。
随着智能卡[8]技术的发展,智能卡运算能力不断提高,带有智能卡芯片的USB Key可以通过内置的智能卡芯片在Key内部硬件实现DES/3DES、RSA加解密运算,并支持Key内生成RSA密钥对,杜绝了密钥在客户端内存中出现的可能性,大大提高了安全性。
这样,基于智能卡技术和PKI技术的发展形成了目前广泛使用的USB Key身份认证产品。USB Key 基本功能包括:高质量随机数生成,公/私密钥对产生,数字证书下载存储,哈希运算,数字签名/验证,对称加/解密,非对称加/解密等功能。
USB Key是目前所有身份认证技术中认证强度最高的技术,但是使用过程中的漏洞会大大削弱这种优势,其安全形势也不用乐观。USB Key的使用流程
网银[9](Internet Banking,网上银行)等金融领域是目前USB Key应用最广泛最成熟的领域,下面主要以网银案例来介绍USB Key的使用流程,以时序图形式说明。2.1 首次登录流程
用户1.0 插入USB KeyUSB Key客户端网银服务器1.1 虚拟光盘自动运行1.2 客户端启动并进入登录界面1.3 与服务器建立单向SSL安全通道1.4 与客户端建立单向SSL安全通道1.5 提示用户输入相关信息进行用户绑定1.6 用户输入身份证号和授权码1.7 提取相关序号1.8 设备序号和数字证书序号1.9 发送用户信息到服务器1.10 验证用户信息如果成功,则绑定用户身份证号、USB Key序号及数字证书序号1.11 返回绑定结果1.12 提示用户登录成功或失败
图1 首次登录流程图
2.2 普通登录流程
用户2.0 插入USB KeyUSB Key客户端网银服务器2.1 虚拟光盘自动运行2.2 客户端启动并进入登录界面2.3 与服务器建立单向SSL安全通道2.4 与客户端建立单向SSL安全通道2.5 提示用户输入口令2.6 用户输入口令2.7 验证用户口令指令2.8 返回验证结果2.10 提取相关序号2.11 设备序号和数字证书序号2.9 验证失败则提示用户,否则继续2.12 发送用户信息到服务器2.13 验证用户信息2.14 返回验证结果2.15 提示用户登录成功或失败
图2 普通登录流程图 2.3 客户端认证和转账流程
用户USB Key3.0 用户登录成功后,转账客户端网银服务器3.1 与服务器建立双向SSL安全通道3.2 SSL签名请求3.3 SSL签名3.4 与客户端建立双向SSL安全通道3.5 建立失败则提示用户,否则继续3.6 提示用户输入转账信息3.7 输入转入账号和金额3.8 提交转账请求3.10 返回请求结果3.11 提示用户输入USB Key口令3.12 输入用户口令3.13 签名请求3.14 签名值3.15 提交交易签名3.9 验证表单3.16 验证签名3.17 返回验证结果3.18 返回交易结果
图3 客户端认证和转账流程图 USB Key安全性分析及改进方案
3.1 安全风险[10][11]
目前USB Key安全风险有:
USB Key 口令(密码)明文传输,可能被USB监听工具截获;
有的网银系统USB Key只做身份认证,不进行交易签名;或者USB Key签名请求没有校验和客户确认机制,客户在使用网银进行资金操作时,其用户私钥存在被他人远程非法调用并进行交易的可能;
USB Key主控密钥管理不善,存在泄露风险,不法分子可远程调用USB Key进行非法交易签名,进而盗取用户资金。3.2 安全需求:
加强用户交易授权认证。在使用USB Key进行交易授权认证时,应增加客户交易确认手段,如增加向客户发送含有待确认交易信息的短信等第二渠道认证方式,或使用带有确认按键或显示屏的USB Key。
严格USB Key密钥安全管理。要采用加密手段保存和传输USB Key的口令(密码),严格USB Key主控密钥、传输密钥等安全管理,防止不法分子获取USB Key访问控制权,非法调用或修改用户私钥。
加强网上银行客户端的安全保护。在保护键盘输入、防通信明文窃取、防黑客程序跟踪、防内存数据截获、防截取屏幕信息、防“钓鱼”欺骗、防交易数据篡改等多方面对网上银行系统及客户端采取技术加固措施。
3.3 安全改进措施 3.3.1 用户口令安全
用户口令的输入主要有两种:PC端输入和USB Key端输入。
PC端输入包括使用PC键盘和虚拟软键盘,PC键盘输入相对比较容易拦截监听到,而软键盘布局随机排列且不易被拦截到。PC端输入方式口令验证过程的安全性主要靠动态密钥加密用户口令数据。
另外,USB Key配备数字全键盘或可以输入数字的按键,用户口令(包括修改)的输入全部在设备上完成,用户口令不会出现在USB通信中,所以从根本上防止口令被拦截或破解。同时,由于用户口令在设备上输入,外界无法直接向设备发送校验口令指令,有效防止通过远程恶意发送校验口令指令导致设备锁死。
3.3.2 密钥对安全
用户密钥对是在申请证书时在设备内部随机产生的,而不是事先存在或导入的。
用户私钥存放于芯片特殊保护区域,外面无法对其直接操作,并且通过各种手段都无法读出或替换,防止用户私钥被导出、读出或替换,保证用户私钥数据的安全。
所有用户私钥的操作都由用户口令来控制,需用户口令验证通过后才能进行数字签名操作,在操作完成后重置验证口令标志,防止私钥操作被远程劫持。同时,加密私钥操作指令的会话密钥都是一次一密,有效防止签名指令重发攻击。3.3.3 数据通信安全
设备和主机的通信数据很容易被USB监控软件(如:Bushound)获取,保护通信数据的安全,防止敏感信息泄露就显得至关重要。
基本思路:数据通信安全就是要保护主机和设备通信数据,防止数据被截取或篡改。保护通信数据的密钥是动态会话密钥,而不是单纯的静态密钥,这样即使某一段数据被拦截并破解,只要及时协商一个新的会话密钥,即可防止后面的通信被破解。并且,比如签名等比较敏感的指令数据的会话密钥都会用一次协商一次(一次一密)。协商基本流程,如图4所示。
主机设备
1、在设备初始化/格式化时随机产生一个专门用于协商会话密钥RSA密钥对(K)2.“发起协商”会话密钥,并携带主机产生的8字节随机数(Rh)3.返回设备随机数(Rd)和RSA密钥对公钥(Kpub)4.组装会话密钥,并用公钥(Kpub)加密会话密钥5.“协商”会话密钥指令,携带加密的会话密钥6.用私钥(Kpri)解密出会话密钥7.返回协商结果8.加密通信数据
图 4 安全通信的基本流程
1、会话密钥对生成。专门用于协商会话密钥的RSA密钥对(以下简称会话密钥对)在设备初始化/格式化时生成,这个密钥对与用户的密钥对毫无关系,仅用于会话密钥的协商,即使这个密钥对被破解也不会影响到用户的密钥对。会话密钥对随机产生,每个设备都不相同,并且同一个设备每一次格式化的密钥对也不相同。这些措施的目的就是要保障即使一个设备通信被破解也不会影响到别的设备,并且可以防止通信重放攻击。
2、发起协商。协商会话密钥的过程由主机(应用)发起。主机发送“发起协商” 指令,该指令同时携带主机随机产生的8字节随机数(Rh).指令形式如:发起协商指令头+主机产生的8字节随机数(Rh)。
3、返回设备随机数和会话密钥对公钥。当设备收到发起协商指令后,设备首先保存主机产生的8字节随机数(Rh),同时设备也产生8字节的随机数(Rd)。最后设备返回随机数(Rd)和会话密钥对公钥。指令响应形式:设备产生的8字节随机数(Rd)+会话密钥对公钥(Kpub)。
4、组装会话密钥。当主机收到发起协商指令返回后,主机保存设备产生的8字节随机数(Rd)和会话密钥公钥(Kpub)。接着,主机开始组装会话密钥,组装完成后用会话密钥公钥(Kpub)加密会话密钥。组装过程,如图 5 所示:
设备 8字节随机数(Rd)主机 8 字节随机数(Rh)设备右半 4 字节随机数主机左半 4 字节随机数设备左半4字节随机数主机右半4字节随机数RSA 公钥加密会话密钥公钥(Kpub)会话密钥密文
图 5 组装会话密钥
5、协商。主机组装完会话密钥并加密后,通过“协商”指令发送到设备,指令形式如:协商指令头+会话密钥密文。
6、设备解密会话密钥。当设备收到“协商指令” 发送过来的会话密钥密文后,设备使用会话密钥对的私钥(Kpri)解密出会话密钥(SK)。由于在“发起协商” 指令中设备已经获得了主机产生的随机数,所以设备也会自己组装会话密钥(SK’),然后设备比较(SK)和(SK’)是否一致。最后返回协商结果给主机,如图6所示。会话密钥密文8字节设备随机数(Rd)8字节主机随机数(Rh)会话密钥对私钥(Kpri)RSA私钥解密会话密钥(SK)设备右半4字节随机数主机左半4字节随机数设备左半4字节随机数(Rd)主机右半4字节随机数(Rd)比较返回失败相同?更新当前会话密钥返回成功图 6 解密会话密钥
7、返回协商结果,返回协商结果成功或失败。
8、加密通信。会话密钥协商成功后,主机和设备就可以使用刚刚协商的会话密钥来加密通信。一些敏感指令(比如:签名,验证用户口令)需要会话密钥动态变化,一次一密。3.3.4 交易签名安全
交易签名是对敏感交易数据进行签名。在签名运算之前,交易数据(TLV格式)先送到USB Key设备上显示,用户确认后在设备内部进行签名,防止非法程序对所签数据进行篡改。同时,由于内部数据签名之前进行数据填充,有效防止利用非交易签名来伪造交易签名。
签名数据数据检查USB Key内部符合交易数据格式(预定义TLV格式)是交易数据确认(设备LCD显示)数据填充否对填充后数据做哈希运算从设备上验证用户口令对数据哈希值做签名运算签名值
图 7 数据签名流程
从图 7 可以看到,明文数据进入设备后,设备首先检查数据是否是预定义格式的签名数据,如果不是的话,将不在设备上显示,验证用户口令后直接签名,返回签名值;如果符合交易数据格式化的话,首先在设备上显示交易内容,待用户确认后,对交易数据进行特别的内部填充,接着对填充后的数据进行哈希运算获取哈希值,待在设备上验证用户口令后,对数据进行签名并返回签名值。整个流程数据从进入设备到签名,从未出过设备。
由于交易签名数据会在设备内部填充,而非交易签名数据(比如:SSL安全通道签名)不会被填充,外界也无法模拟这个填充过程,所以利用非交易签名来伪造交易签名就无法实现。
同时可以发现,图中的除了数据填充外,其他过程都是标准处理流程,所以下面主要介绍一下数据填充。
数据填充的目的是防止交易签名的伪造,交易数据的填充过程,在设备外面无法完成,因为填充的数据是保密的。数据的填充方式如:填充值+交易签名数据。
填充的关键是填充的数据值。填充数据是在设备初始化/格式化时写入设备的,根据设备序号来派生的,因而每个设备的填充值都不一样;并且派生密钥存在控制卡中,由银行管理员来设置别人无法获取,因而无法得到填充值。
填充值写入设备安全机制,如图8所示:
签名填充值写入及授权使用<
图 8 填充值写入设备机制
填充值是在设备格式化时写入的,此时设备和控制卡之间经过双向认证(遵循 GP 2.1.1 SCP01规范)已建立安全通道,所以填充值明文不会出现在主机内存中,格式化程序也无法获取。结论
我们生活的现实世界是一个真实的物理世界,每个人都拥有独一无二的物理身份。而今我们也生活在数字世界中,一切信息都是由一组特定的数据表示,当然也包括用户的身份信息。而计算机只能识别用户的数字身份,所以计算机给用户的授权也是针对用户数字身份进行的。保证访问者的数字身份与物理身份相对应,就是身份认证管理系统所需要解决的问题。为了保护信息安全,现在有身份认证、授权管理控制、日志审计、防火墙等安全技术。其中身份认证是其他技术的基础。如果用户身份被非法冒用,那么用户的权限也被非法使用,安全审计等就失去意义。本文通过研究当前最流行的基于PKI的USB Key身份认证技术,总结出目前USB Key使用或部署中的一些安全威胁;最后针对这些安全威胁,对每个具体的安全点都提出了实用的安全解决方案,这些方案都在项目或产品中得到应用和检验,具体很好的使用价值和经济价值。
参考文献:
[1]苏正荣.简析USB Key的工作原理及应用[J].中国金融电脑, 2009,(05)[2]杨帆.USB KEY体系研究与技术实现[D]武汉大学, 2004 [3]刘红明.基于SSX45安全芯片的USB Key设计与实现[D]上海交通大学, 2009.[4]Carlisle Adams, Steve Lloyd, Understanding PKI: Concepts, Standards, and Deployment Considerations[M], Addison-Wesley Professional, 2 edition ,November 16, 2002 [5]Jianying Zhou, Meng-Chow Kang,Feng Bao, Hwee-Hwa Pang, Applied Public Key Infrastructure[M], 2005 [6]关振胜,公钥基础设施PKI与认证机构CA[M], 2002 [7]吴永英,邓路,肖道举,陈晓苏.一种基于USB Key的双因子身份认证与密钥交换协议[J]计算机工程与科学, 2007,(05)[8]张鑫,李方伟,潘春兰.一种增强的基于智能卡的远程身份鉴别方案[J]计算机应用, 2009,(04)[9]程宇贤.网上银行身份认证系统的安全性研究[D]上海交通大学, 2010 [10]张轶辉,王昭顺,USB密码钥匙漏洞分析及防御策略的研究 [J],航空计算技术,2007 [11]张锟,颜学龙.USB KEY的体系结构分析及安全策略研究[J]安防科技, 2009,(02)
第三篇:ElGamal签名方案的分析与改进
ElG【作者】: 姓名:李周洲
签名方案的分析与改进
学号:5342010023
【内容摘要】
通过对ElGamal签名方案的描述,分析出ElGamal签名体制的不安全怕,并可以使用伪造攻击方法对其进行攻击,提出使用该体制的几种失败可能。对其进行了一些改进,提高其安全性。
【关键词】:ElGamal体制 ;ElGamal签名方案;安全性分析;伪造攻击
【正文】:
一、ElGamal算法理论基础:
(1)背景
ElGamal 签名体制是由 ElGamal 在1985年提出的。是一种较为常见的加密算法,它是基于1984年提出的公钥密码体制和椭圆曲线加密体系。既能用于数据加密也能用于数字签名其修正形式已被美国NIST作为数字签名标准DSS,同时它又是Rabin体制的一种变形。
(2)算法定义
ElGamal 签名方案像ElGamal 公钥密码体制一样是非确定性的,这就意味着对任何给定的消息,有许多个有效的签名,验证算法必须能接受合法的有效签名中的任何一个,其安全性依赖于计算有限域上离散对数这一难题。在加密过程中,生成的密文长度是明文的两倍,且每次加密后都会在密文中生成一个随机数K。
(3)密钥生成
x, 系统选取大素数p,gZ*p一个本原元,p和g公开。用户随机选取整数1kp2,计算ygmodpx。y是公开的密钥,x是保密的密钥。
(4)签名变换 设mZ*等签名的消息,用户秘密随机选取一个整数k,1kp2,且k与pp1*互素,对消息m的签名为Sig(m)(r,s)ZpZp1,其中rgkmodp,s(mxr)k1mod(p1)。
(5)签名验证
对于(r,s)Z*Zp1,如果yrrsgxrgksgm,则确认(r,s)为用户对消息m的p有效签名。
二、ElGamal签名方案的安全性分析
假设攻击者在不知道x的情况下企图伪造一个给定消息m的签名。如果攻击者选择一个值r,然后企图找到相应的s,他必须计算离散对数.另外,他如果首先选择s,然后企图找到r,他就试图“解”一个未知数r的方程,这又是一个已知的没有可行解法的问题,如果攻击者选择r和s,然后企图解出m,他将再次面临离散对数问题。因此, 攻击者利用这种方式不能签名一个“随机”消息,然而该方案不能排除某些特定的攻击方法。
伪造攻击
攻击者同时选择r,s和m来签名一个随机消息:设i和j(1i,jp2)是整数,且j与p1互素。
可以利用逐步搜索法完成下列计算: rgiyimodp
srj1)mod(p1)
xrijmod(p11这里j1是用模p1来计算的(所以我们需要j与p1互素)。由于:
yrrsgxrrr(jmodp)11g(gy)1xri1irj(modp)g1xrgrij op(md)
gxrgrijgxr(modp)grij(modp)gx(modp)
所以这对伪造的(r,s,m)通过验证,成为合法的签名。
条件伪造攻击
(1)假设在签名时泄漏了随机数k,由于:
s(mxr)kx(xsk)r1mod(p1)sk(mxr)mod(p1)mod(p1)1
此时计算x是简单的,一旦x已知了,这个体制将被攻破攻击者能任意伪造签名。
(2)攻击者得到对x1签名为(r1,s1),对x2签名为(r2,s2),则由:s(mxr)k1kmod(p1)可以得到ksmxr,因为rgmodp,所以可以得到k1,k2,即可以得到二元一次方程组,求到x和m,并可以任意伪造签名。
三、方案改进
签名过程
对于待签字的消息m,签名者执行以下步骤: 1):计算m的杂凑值h(m)。
2):随机选取kRZ*计算rgkmodp。p3):计算s[x(h(m)r)k]mod(p1)。
签名者以(m,(s,r))作为产生的数字签名发送给验证者。验证过程
当验证者接收到签名者发送的消息m和数字签名(r,s)后,进行验证: 1):先计算h(m)
2):验证yh(m)rrgsmodp,如果成立,则说明签名正确,否则不正确。
四、总结
该方案在技术上存在一些限制,从而导致一致的安全隐患,如:会话密钥 k 不能暴露给任何人,其值必须随机选取,而且必须确保在签名不同的信息时会话密钥没有重复使用过;必须避免选择到“弱随机数k”等。为了避免遭受代换攻击,必须使用单向Hash函数其安全性。1991年8月,经ElGamal演变而来的基于DSA的DSS签名方案被提出。
【参考文献】
[1]张少武,《安全认证理论与技术》。
第四篇:学生会问题分析与改进
学生会干部存在的问题分析与改进
学生会分团委是学生“自我管理、自我教育、自我作风”的学团组织,学生干部是建立良好的师生关系的重要纽带与桥梁,良好的学生干部作风是进行工作的基础与前提,更是工作质量的重要保证。虽然我们都进行了学生干部培训的这一环节,但我们在工作的同时仍然存在一些不足,现我将其中存在的一些问题论述如下:
问题一:学风不浓,文风不实,作风不深
学风、文风、作风是学生干部素养的外在表现。
学风:只有通过学习,才能不断提升思想认识,去探索新途径,制定新措施,增强树立和坚持正确的事业观、工作观,提高自己的工作水平,有部分的学生干部没有很好地处理好工作与学习的关系,虽然工作突出,但学习成绩不理想,没有起到学生干部应有的模范带头作用。
文风:文章和讲话是一个学生干部世界观、人生观、价值观的客观反映,胸无点墨又怎能言之有物,要实事求是,讲实话、办实事,通过各部门上交的总结计划可以看出,很多都是空话、套话,甚至一成不变的交以前月份的总结计划。
作风:是学生干部世界观、人生观、价值观的外在反映,学生干部能否身体力行,充分发挥模范带头作用,直接影响着作风建设的成效。良好的作风三干出来的,要求真务实,严格要求自己,始终保持思想纯正,杜绝一切形式主义与官僚主义,主要体现在:
服务意识不强:进部门只为个人及班级荣誉且有“特权主义”意识。个人形象欠佳:
A、学习、工作能力不强。
B、不能模范遵守规章制度。
C、“两面派”。
D、官僚主义风气渐行
全局意识不强。
问题二:制度不健全
制度建设是保证各项工作平稳运行的有效机制,因此,我们要根据新情况、新形式建立健全各项考核制度,并要求我们学生干部自我模范遵守并折好制度的落实力度。现我们团体的一些制度如同虚设,根本没有起到制度应有的震慑作用且考核力度不够,加上一些学生干部自身都不遵守且又通过某些途径逃避了制度的惩罚。所以制度的健全关键要折好制度的落实,强化工作问题。
问题三:部门之间缺乏协调
部门与部门之间缺乏实时性的沟通与交流,没有形成良好的合作共赢的关系,缺乏统一协调,各做各的,导致相互之间活动时间,地点冲突,对工作的开展造成不好的影响,无论是委员还是干事之间都缺乏一定的交流,沟通。相互之间都不熟悉。
问题三: 干部选拔机制不健全
学生会干部选拔制度选拔不合理。在学生干部选拔新学生干部的时候,存在任人为亲的现象,即选拔学生干事依据的不是学生平时表现、个人特长、实际能力,而是这个学生是否是自己老乡,是否是熟人推荐,是否和自己一个院系、一个专业等这些外部因素。这就就破坏了选拔的公平性和公正性,不利于对真正优秀的人才的选拔和使用。
面对以上问题可以实现以下措施:
建立科学严格的学生干部选拔、监督机制
学生干部选拔作为学生会建设工作中的一个基础环节,应该予以高度重视。在具体的实施过程中,就要本着“公平、公正、竞争、择优”的原则,严格把握标准,选拔出品质好、素质高、能力强、工作积极性高、愿意为广大同学服务的学生担任学生干部。具体有以下五个方面的要求:一是个人主观要求进步,思想道德品质高,自愿为学校、为同学服务;二是自觉遵守学校各项规章制度,敢于同各种不良风气作斗争,严于律己,树立模范带头作用;三是具备一定的组织、领导能力和学生工作经验,具有改革创新精神,工作积极,敢说敢做,勇于承担,工作务实、端正、扎实;四是团结和关心同学,有较强的集体观念和整体意识,识大体,顾大局,能够及时将同学的意见和问题反映给老师和学校,充分发挥学生干部的桥梁和纽带作用;五是能正确处理工作和学习之间的关系,学习成绩优良,在公文写作、书法、体育、文艺等方面有一定专长。此外,管理学生工作的老师和学生会的主要干部要对刚入选的干部进行一段时间的考察,观察其言行是否一致,是否能够很好履行自己在竞选学生会干部时的诺言。
目前学生会以及学生干部面临的问题急待解决,因为学生会和学生干部在广大师生中的影响是巨大的,所以我们要致力于建设一支高素质的学生干部团队,完善各项规章制度,不断提高学生干部的自身修养和综合素质,增强学生会以及学生干部在师生中的公信力,也只有这样学生会才能真正发挥其自身桥梁作用,才能真正做到立足于学校,服务于同学。
第五篇:学困生分析与改进措施
2013-2014学年第一学期初三年级2班化学学科
新增学困生统计分析与改进措施
北京市xx学校
一、学困生:
二、新增学困生学情分析
xx情况相似,上课能够积极发言,学习态度端正,能够按老师的要求完成各项作业。但是记忆力偏差,对知识的理解力偏弱。从考试试卷 看,存在反复练的题目丢分严重的问题,因此上课还是要重点关注该生,做到反复问,反复强化。
xx 该生性格偏急躁,不能够做到冷静思考问题,做题马虎,如何引导该生有序全面的思考问题,理顺思维是突破点。但是能够积极的和老师进行交流,性格开朗
三、改进措施
(1)与孩子谈心,增强他学习的积极性和自信心。
(2)针对该生实际情况,开展“一帮一活动 ”为该生找一位负责任的“小老师”,经常对他进行辅导和帮助。
(3)学生其实基础掌握还不错,但由于对知识的理解不透彻,喜欢死记硬背的原因,造成运用知识的能力不是特别强,讲过的一模一样的题目能够保证作对,但是一旦碰到新题目就不行了,尽管知道所考的知识点,但是却仍不知道如何分析,如何回答,所以在批卷时常常看到学生写了一大堆,却无论如何也答不到点子上。(4)基本概念有待加强,首先表现在对基础知识的运用不够灵活,对学生今后的学习、甚至对中考都有较大的负面影响,平时的教学和复习中应关注每一个细节落实到位.堂教学中多关心学困生学习状态,并注意做到分层次练习,让学困生尝试在课堂上完成老师所布置作业。同时,多给予他回答问题的机会,帮助树立学习自信心;并培养良好的学习习惯,重点是培养按时完成作业的习惯。
2013-2014学年第一学期初三年级3班化学学科
新增学困生统计分析与改进措施
北京市xx学校
一、新增学困生名单
二、新增学困生学情分析
学习基础差,学习听课能力差,注意力不集中,作业完成的质量不高,甚至不写作业,思维理解力有待提高,课堂上不能跟上老师的节奏,平时上课不积极发言,课下又不能够及时和老师交流,因此没有暴露出存在的问题,没有及时解决学习中的问题。
三、改进措施
1、与孩子谈心,增强学习的积极性和自信心。
2、一块分析 找出 问题,确定王元帮扶她
3、课堂教学中多关心她的 学习状态,并注意做到分层次练习
4、基本概念有待加强,首先表现在对基础知识的运用不够灵活,对学生今后的学习、甚至对中考都有较大的负面影响,平时的教学和复习中应关注每一个细节落实到位.堂教学中多关心学困生学习状态,并注意做到分层次练习,让学困生尝试在课堂上完成老师所布置作业。同时,多给予他回答问题的机会,帮助树立学习自信心;并培养良好的学习习惯,重点是培养按时完成作业的习惯。