小议网络管理系统的安全性

前言:寻找写作灵感?中文期刊网用心挑选的小议网络管理系统的安全性,希望能为您的阅读和创作带来灵感,欢迎大家阅读并分享。

小议网络管理系统的安全性

1.net网络管理系统安全性分析

在系统运行时,.net和Internet信息服务(IIS)协调工作,能提供很好的安全机制。而身份验证和RBAC权限管理等方式能很好地提高基于.net网络管理系统的安全性。对发送请求的客户端信息进行身份核实被称为身份验证,主要验证登陆身份的合法性。.net网络管理系统的身份验证有以下几种:windows身份验证、forms验证、passport验证。RBAC权限管理则决定用户是否有权限访问他所调用的资源,而数据的加密和使用存储过程则为数据访问提供了有力的安全保证。

1.1.net的身份验证

1.1.1Windows身份验证

Windows身份验证在Intranet中使用,Intranet中的用户组可以以客户端身份登陆。IIS通过Web浏览器与.net网络管理系统进行数据访问,客户端的请求需要经过IIS解密验证才能到达.net应用程序。假设被客户端请求的资源可以匿名访问,客户端的请求将不进行Windows身份验证;如果被验证且已被授权的用户请求需要具有一定的权限才能访问,那么.net应用程序将对该请求进行处理。通常IIS把用户票据映射到Windows账户,然后通过用户票据来验证用户。Windows身份验证类型一般分为以下三种:

其一,基本身份验证。基本身份验证方法已经在工业上得到普遍的运用,它主要用来收集用户身份验证信息。然而用户的身份信息以文本信息的形式在网络上传送过程中,如果使用Sniffer之类的监听工具能够监听到,因此只有在安全性要求不高的环境中才使用基本身份验证。

其二,Windows域的摘要式验证。摘要式验证的使用要求Windowsserver2003域控制器站点的环境,并且IE版本在5.0以上才能使用。摘要式验证将密码用Hash算法转换,然后发送,同时在域控制器上将密码以文本文件保存,IIS发送的散列和域控制器的文本文件进行比较。摘要式验证的安全性低,如果有人获得域控制器上的文本文件,密码就会被破解,从而产生安全隐患。

其三,集成Windows验证。集成Windows验证的使用必须保证域控制器可以访问,同时浏览器的版本在InternetExplorer5.0以上。Windowsserver2003域控制器的站点允许Windows域用户登录。对客户端而言,Windows验证过程是透明的。根据以上各种验证的特点,IIS管理服务应当选择要集成的Windows身份验证为宜,因为它的实现比较方便。

1.1.2forms身份验证

在Internet中,forms进行身份验证服务使用的是Cookies,Cookies存储有验证信息。如果客户端设置IIS允许匿名访问,那么.net网络管理系统中仍可以进行forms身份验证以实现在应用程序内部进行客户端的身份验证和授权。forms利用重定向功能[3]将客户端浏览器发送的未通过验证的请求重定向到login.asp登录页面,客户端在登陆页面输入用户验证票据。用户票据验证如果通过且被授权,那么.net应用程序将生成验证用户身份的密匙(通过html发送到客户端,称为身份验证票据)的forms(称为身份验证表单),身份验证表单存放在Cookies中,再重定向到用户指定的页面上。如果同一用户在同一会话中再次发出请求时,forms身份验证和授权将被再次进行。

1.1.3passport身份验证

集中身份验证服务(Microsoft提供)称为pass-port身份验证,需要安装PSDK(PlatformSoftwareDevelopmentKit)。这种认证方式适合于跨站之间的应用,用户有一个用户名和密码可以访问任何成员站。其工作原理与forms认证相似,都需要在客户端创建认证cookies。在进行passport验证时,首先客户端针对受保护的资源发出HTTPGET请求,应用程序先检查passport身份验证票据是否存放客户端的Cookie,有效的票据如果在站点被找到,客户端就进行身份验证,反之服务器返回状态代码,客户端将被重定向到passport登录服务。客户端执行重定向并再次请求初始的资源。按如下方式可将pass-port设置为身份验证模式:把<authenticationmode=“passport”>代码设置到web应用程序的web.config配置文件中。

1.2基于角色访问权限的控制

基于角色的访问控制RBAC是一种灵活、高效的访问机制,它在用户和权限之间引入了角色的概念。这样,访问权限和角色相关联,角色与用户关联,实现了用户和权限的逻辑分离,便于权限的管理。以企业网络管理系统为例,当某一用户的职位发生变化,其对应的权限也将发生变化。采用RBAC时,只要系统管理员委派给某一用户新的角色即可,不需要专业人员来操作。其具体思想是根据企业的访问控制需要,确定整个系统的功能模块的情况和用户角色的情况,从而创建功能模块表、功能表、角色表,其中模块表由模块编号、模块名称、功能数量等字段组成,主要用来显示功能的数量。功能表由功能编号、功能名称、该功能所属的模块编号等字段组成,确定某功能的编号(排在第几位)。角色表是由角色编号、角色名称、角色值等字段组成,其中角色值确定角色是否拥有某功能。角色值是由一组类似的二进制组成的字符串(由“0”、“1”构成),字符串的长度由功能数量决定,角色值对应位置上的是“0”,则表示没有此权限,是“1”表示拥有此权限。例如,某公司的普通员工的角色值是100001010…(共20位),位数和功能编号对应,即角色值的第一位代表功能编号01,第二位代表功能编号02。如果要对该员工增加员工信息查询的权限(该权限对应功能编号03),则只需要将角色值第三位置成“1”即(101001010…)。它们的关系如图1所示。如果想添加新角色只需将角色值全置为“0”,根据角色需要和功能表编号,利用.net类库中的re-palce函数将对应的功能编号的位置置为“1”即可。通过RBAC权限管理,使得授权用户能够顺利访问.net网络管理系统授权使用的资源,并且防止了授权用户对.net网络管理系统的非法使用。进入.net网络管理系统后,按照用户所属角色的不同,动态构建不同角色的链接页面,使模块功能在表示层上,保证了数据资源的安全。

1.3数据库安全

1.3.1数据库密码的加密处理

用户的信息保密在基于.net网络管理系统中是相当重要的,如果用户的密码被别人盗取,那么就会导致网络管理系统的数据和数据库处于不安全的状态。但是通过对用户的密码加密则可以解决问题。用户密码应当加密之后再存储,不能直接存储在数据库中。用户登陆时,也对密码进行加密生成乱码,再和存储于数据库中的乱码比较,如果相同,则通过验证。.net中提供了加密的解决方法。在.net中System.Web.Security中包含类FormAuthentication,这个类提供的函数可以用MD5算法将用户的密码变成乱码,然后存储在cookies中。函数支持“SHA1”和“MD5”两个加密算法。这两个散列算法是单向算法,即使看到加密后的密码也无法获得原始值。通过这种办法可以提高验证密码的准确性,保证了用户、数据和数据库的安全。

1.3.2使用存储过程

中间层的组件ADO.net被基于.net的网络管理系统用来访问数据库,在对数据库的访问上,对数据的操作全部采用存储过程实现。表示层(客户端)和数据访问层的隔离也可以通过使用存储过程实现,用户对数据表的直接更新和访问得到了控制,非法代码的安全隐患也被使用存储过程消除了。另外,存储过程避免了SQLServer数据库受到“SQL注射”的攻击。“SQL注射”攻击可以解释为攻击者把SQL的and或or命令插入到web表单的输入文本框或页面查询请求的字符串,以欺骗数据库执行恶意的SQL命令。如果按照上述操作,相当于不需要密码验证就登录到网络管理系统,对系统造成安全隐患,甚至使系统遭到破坏。数据库如果采用使用存储过程访问,“SQL注射攻击”可以被消除。另外,在用户进行数据访问的时候,有时一次会产生多个SQL语句,那么就可以将其在存储过程中打成一个包,然后到数据库服务器批量执行,网络通信量和执行的速度将会有很大的提高。存储过程实际被ADO.net组件调用时,它的代码全部使用参数而不使用实际值。由此,存储过程的使用保证了数据库的安全和系统的安全运行。

2结论

本文对基于.net的网络管理系统的安全性进行了分析,基于.net的网络管理系统的安全性同时需要考虑数据访问安全和网络安全两个方面。分析发现,基于.net的B/S的三层架构的网络管理系统安全访问机制得到了基本的保障,在逻辑上表示层、业务逻辑层、数据访问层相互之间独立,提高了网络管理系统的安全,软件开发的耦合度降低了。网络管理系统数据的安全被身份验证、RBAC权限管理、SQL数据访问加密、存储过程访问SQLServer数据库等多种安全策略所保证,很好地限制了网络管理系统的攻击入侵,网络管理系统的安全性、完整性得到了保证。

作者:圣光磊 单位:合肥工业大学计算机与信息学院 亳州师范高等专科学校理化系