王命全,张祖莲,李景林
(新疆气象局 新疆兴农网信息中心,新疆 乌鲁木齐 830002)
目前网络攻击现象十分严重,给很多企业和单位造成很大程度的破坏。网络安全问题一直是很多单位重视的问题。目前所有交互性系统或用户查询系统类,都需要涉及到登录窗口。网络攻击者也主要是攻破登录窗口这个界面,才能进入应用系统,进行操作相关的数据或应用程序。可见登录窗口对系统的作用是至关重要的。现在Web系统直接部署在网络上,任何人都可以访问到,安全问题是很多系统担心的问题。
本文的防Web攻击登录窗口设计主要从程序设计角度来讲,针对一般的Web系统,例如论坛、留言等用户能自己登录后发布信息的窗口。对于银行等安全性要求极高的系统来说,除了本身的Web设计外,还必须借助其他如U盾等外界硬件设备来保证其足够安全性。
(1)基于可信平台模块(TPM)的用户登录可信认证。该认证方式是利用PC机USB接口外接TPM,将用户的身份信息、相关的密钥信息等存储在TPM中,并利用USBKEY技术、动态的口令技术来确保用户身份的真实可信[1];(2)用户登录端程序嵌入到还原程序当中通信代理服务,用户端和服务器端分开响应[2]。
以上的研究主要从硬件来考虑,对于一般的论坛类系统不可能让每个用户发篇帖子还要单独配置相关的硬件。
(1)以著名的 RSA算法和 DES算法为基础,提出一种互补性的混合数据加密方案及其实现过程[3];(2)安全减少用户登录次数,在分布式环境中基于Web服务的用户单点登录机制,使得用户只需登录一次即可完成复杂业务[4]。
过滤特殊字符,分配数据库账户权限,正确使用存储过程,确保输入的合法性,对敏感数据加密存储,严格进行错误处理[5]。此研究主要从软件设计上考虑,用户可以借鉴,设计考虑的并不全面,对于不同的攻击不一定能很好地预防。关于数据库设置,对于网络管理员来说,可以借鉴。
本文主要从软件设计方面来考虑不同用户不同需要及各种有关预防策略。
登录窗口要设计好,首先考虑的方面要全,攻击者不可能用所有的方法去试探,但仅用其中的部分要素就可以。本文将列出一部分常见的实用的攻击及预防的策略。
(1)防 SQL注入漏洞攻击
目前很多登录程序在设计上存在一个很大的隐患就是直接写SQL语句进行验证登录,即黑客输入任意的用户名、密码后,只要在后面输入“′1′or′1′=′1′”成为选择语句,验证就会轻松通过,进入后台,访问数据库。换一种方法去验证用户名和密码,就可以有效地预防这类现象。
代码例如:
(2)加入输入密码次数
目前电脑配置也越来越高,很多相关黑客破解密码的软件,黑客会用一个配置较好的主机去破解用户名的密码,直到破解为止,计算机的运行速度特别快,一般数字密码很快就会破解。因此在登录窗口要设置用户登录输入密码的次数,如输入密码次数不超过3次,这样才能大大减少被破解的机会。如果用户登录成功,错误次数会自动清零。以免影响正常用户的正常登录。
核心代码例如:
(3)限制同一IP多次申请注册
如果用户一直注册,当作攻击的一种类型,当申请次数达到一定数据,该用户不能再申请。主要由浏览器缓存暂时存下用户的相关信息如IP等,用于记录用户申请帐户次数。
核心代码:
(6)重要的应用登录后写入注册表
输入正确用户名和密码后,写入注册表,即使该用户暂时没权限,发生异常,则写入XML。
核心代码如下:
(7)对键盘上的回车进行处理
相关代码(用户按键盘Enter也可以登录):
(9)添加验证码
目前网络上有多种验证码,稍加修改,明白其中的成图原理,都可以改成自己常用的开发语言进行使用。
例如下面生成验证码相关核心代码:
(10)客户端和服务器端都验证,防止黑客禁掉客户端程序
登录是用户进入系统的首要窗口,攻破登录,对非法用户操作数据就很容易了,开发Web程序时应当重视登录窗口的设计,做好程序代码的安全性检查,设置好服务器和数据库的安全,虽然没有绝对的安全,但各种方面小心防范,就可以从很大程度上保证Web服务器的安全。
本文从以上10个方面考虑防Web攻击登录窗口设计,设计的登录窗口系统已在实际系统中使用一年半时间,目前发现攻击的次数越来越少。随着网络的发展,可能有更多的情况需要考虑,本文将不断优化改进。
[1]谭良,周明天.一种新的用户登录可信认证方案的设计与实现[J].计算机应用,2007,27(5):1070-1072.
[2]王书海,刘明生,肖众.机房管理系统用户登录认证方案设计[J].实验室研究与探索,2008,24(2):37-38.
[3]伍华健.公开密钥密码体系在网络安全中的应用研究[J].微计算机信息,2006,22(43):14-17.
[4]胡毅时,怀进鹏.基于Web服务的单点登录系统的研究与实现[J].北京航空航天大学学报,2004,30(3):236-239.
[5]郜激扬.基于Web服务的数据库注入攻击与防范[J].华北水利水电学院学报,2008,29(1):89-91.