刘怡博,傅民仓
(1.武警工程大学 研究生大队,陕西 西安 710086;2.武警工程大学 通信工程系,陕西 西安 710086)
C/S(Client/Server,客户机/服务器)模式,是 20 世纪 80 年代末逐步成长起来的一种模式,是软件系统体系结构的一种。C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。功能的分布在于减少计算机系统的各种瓶颈问题。C/S模式简单地讲就是基于内部网络的应用系统[1]。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言[2]。随着现代信息技术、网络技术的迅速发展,给数据的管理工作模式带来了深刻的影响,传统的手工管理模式数据量大,管理方法单调繁琐,不仅费时费力,还无法直观表达统计结果,查询和分析都不方便。为改变这种落后的管理方式,适应现代化管理的要求,采用计算机技术实现对数据管理的自动化是解决这一问题的有效方法。利用现代计算机技术,使用C#语言设计基于C/S模式的数据库管理系统,依其特定的数据处理环境,是数据管理的迫切需要,是信息化建设不可或缺的支撑平台,将各单位的管理推入了科学化、规范化的轨道,有力地促进了各单位整体管理水平的提高。
当用户向数据库管理系统注册新用户记录时,用SHA-1加密用户名和密码,并将这对加密后的口令插入数据库。当用户登录信息系统时,用同样的方法对用户输入的口令进行加密,然后将它与从数据库中的加密口令进行比较。
其关键代码如下[3]:
在客户端和服务器端通过RSA签名体制实现认证,完成鉴别通信。
RSA体制是由 R.L.Rivest,A.Shamir和 L.Adleman于1978年设计的用数论构造双钥方法。该算法设计之精巧,安全性和效率之高,至今无人能超越。RSA算法的高明之处在于它既是一个加密算法又是一个签名算法,加密(签名)和解密(验证)使用了完全相同的操作[4]。
在实际的操作中,并不会直接用私钥去加密要发送的数据或文件,这是因为非对称加密的算法非常耗时并且密文的长度要大于明文的长度,直接加密系统的开销非常大。
需要了解另外一个概念:消息摘要。所谓的消息摘要就是通过一种单向算法计算出来的唯一对应一个文件或数据的固定长度的值,也被称作数字摘要。根据不同的算法,消息摘要的长度一般为128位或160位。常用的消息摘要的算法有MD5和SHA1。一个文件的消息摘要就同一个人的指纹一样,它可以唯一代表这个文件,如果这个文件被修改了,那么它的消息摘要也一定会发生变化,所以,可以通过对一个文件的消息摘要进行签名来代替对它本身进行签名。并且,我们还可以通过验证消息摘要,来确定发送的数据是否完整或曾经被修改过。
其关键代码如下[5-6]:
数据库是存放数据的软件系统,都保存着企业、组织和政府部门的各种重要的信息。加密是一种帮助保护数据的机制。加密通过将数据打乱,达到只有经过授权的人员才能访问和读取数据的目的,从而帮助提供数据的保密性。SQL Server 2005中,提供了完整的加密机制,其结构图如图 1所示[7]。
图1 SQL Server 2005的加密机制Fig.1 Encryption mechanism of SQL Server 2005
以对称加密/解密为例,使用SQL Server 2005实现数据库加密的基本步骤可以使用T-SQL语言描述[8]:
1)产生对称密钥
2)用对称密钥加密数据
3)用对称密钥解密数据
系统安全层有两个方面,一是代码访问控制,二是操作级的权限验证。第一个层面与具体的开发语言与运行平台相关,第二个层面的安全管理借鉴RBAC(基于角色的访问控制)模型来设计和实现。RBAC有角色、对象、权限、操作等几个主要实体构成,并按分为RBAC0,RBAC1,RBAC2等3个级别。
1)对 象
有的地方称为“安全对象”,系统中需要进行访问控制的一切实体都可称为“安全对象”,例如:雇员、部门、合同等等。“安全对象”没有新增操作,系统中其他业务实体本来就是“安全对象”,因此在新增业务实体的同时(例如:新增雇员)也隐式的添加了一个雇员安全对象。系统预置了业务实体类型级的“安全对象”用于将权限仅仅控制在业务实体类型层次,例如:只将权限控制在能够新增、删除雇员,而不控制能够修改雇员“张三”的层次。
2)操 作
操作是权限验证的最小单位,往往是业务实体的一个方法。例如:修改雇员的基本信息等。操作是定义在“预置的安全对象”类型上的,新增的业务实体继承了它对应的“业务实体类型”的操作。
3)权 限
有的地方称为“授权项”(ACE),它是“某个安全对象”+“某个操作”+“是否许可”+“期限”构成的联合体。例如:雇员+修改基本信息+可以修改+1年有效期。
4)角 色
角色是一个权限的集合,往往与真实组织机构中的岗位对应(并非一一对应),有时候也仅仅作为简化授权的一种实体存在[9]。
权限管理模式图如图2所示[10-11]。
图2 权限管理模式图Fig.2 Model diagram of authority management
目前网络安全所面临的形势依然严峻,数据库中存放着大量的数据,保护数据不受内部和外部的侵害是一项重要的任务。数据库系统是计算机信息系统的核心组成部分,SQL Server2005提供了全方面多层次的安全保护措施,合理地设置各层次的安全服务措施,切实有效地对敏感数据进行保护,不但可以提高数据库的管理效率,更保障了数据库中数据的安全。本文采用用户口令、C/S之间的签名认证、数据库加密、系统分配角色和用户权限,保证数据库管理系统的安全。这也是数据库管理系统设计和管理的重中之重。这些措施地恰当使用到达了预期的目的,增加了系统的安全可靠性。
[1]刘志刚.基于C/S技术的江西理工大学学生管理系统的研究与设计[D].南昌:南昌大学,2009.
[2]Bradley J C,Millspaugh A C.Visual C#2008程序设计教程[M].杨继萍,马海军,等译.北京:清华大学出版社,2010.
[3]罗斌.Visual C#2005数据库开发经典案例[M].北京:中国水利水电出版社,2008.
[4]杨晓元.现代密码学[M].西安:西安电子科技大学出版社,2009.
[5]马臣云,王彦.精通PKI网络安全认证技术与编程实现[M].北京:人民邮电出版社,2008.
[6]王冰.计算机等级考试报名系统的设计与实现 [D].吉林:吉林大学,2009.
[7]赵松涛.深入浅出SQL Server 2005系统管理与应用开发[M].北京:电子工业出版社,2009.
[8]宋敏,程凤娟.SQL Server 2005安全机制研究[J].电脑与信息技术,2008(10):68-70.SONG Min,CHENG Feng-juan.SQL Server 2005 security mechanism research[J].Computer and Information Technology,2008(10):68-70.
[9]邓延平.机务维修管理系统的设计与实现[D].广州:华南理工大学,2010.
[10]Booch G,Maksimchuk R A.面向对象分析与设计[M].3版.王海鹏,潘加宇,译.北京:人民邮电出版社,2009.
[11]胡荷芬,张帆,高斐.UML系统建模基础教程[M].北京:清华大学出版社,2010.