网络安全的目标应当满足:
身份真实性:能对通讯实体身份的真实性进行鉴别.
信息机密性:保证机密信息不会泄露给非授权的人或实体.
信息完整性:保证数据的一致性,能够防止数据被非授权用户或实体建立,修改和破坏.
服务可用性:保证合法用户对信息和资源的使用不会被不正当地拒绝.
不可否认性:建立有效的责任机制,防止实体否认其行为.
系统可控性:能够控制使用资源的人或实体的使用方式.
系统易用性:在满足安全要求的条件下,系统应当操作简单,维护方便.
可审查性:对出现的网络安全问题提供调查的依据和手段.
系统的安全威胁常表现为以下特征:
窃听:攻击者通过监视网络数据获得敏感信息.
重传:攻击者事先获得部分或全部信息,以后将此信息发送给接收者.
伪造:攻击者将伪造的信息发送给接收者.
篡改:攻击者对合法用户之间的通讯信息进行修改,删除,插入,再发送给接收者.
拒绝服务攻击:攻击者通过某种方法使系统响应减慢甚至瘫痪,阻止合法用户获得服务.
行为否认:通讯实体否认已经发生的行为.
非授权访问:没有预先经过同意,就使用网络或计算机资源被看作非授权访问.它主要有以下几种形式:假冒,身份攻击,非法用户进入网络系统进行违法操作,合法用户以未授权方式进行操作等.
传播病毒:通过网络传播计算机病毒,其破坏性非常高,而且用户很难防范.如众所周知的CIH<病毒,最近出现的"爱虫"病毒都具有极大的破坏性.
网络安全技术主要包括以下几个方面:
主机安全技术
身份认证技术
访问控制技术
密码技术
防火墙技术
安全审计技术
安全管理技术
系统漏洞检测技术
黑客跟踪技术
安全机制主要包括:
加密机制:加密是确保数据保密性
数字签名机制:数字签名用来确保数据真实性和进行身份验证.
访问控制机制:访问控制按照事先确定的规则决定主体对客体的访问是否合法.
数据完整性机制:数据完整性是保证数据不被修改.
认证机制:计算机网络中认证主要有站点认证,报文认证,用户和进程的认证.
信息流填充机制:信息流填充使攻击者不知道哪些是有用信息,哪些是无用信息,从而挫败信息流分析攻击.
路由控制机制:路由控制机制可根据信息发送者的申请选择安全路径,以确保数据安全.
公正机制:主要是在发生纠纷时进行公正仲裁用
针对网站架构,网站安全问题主要分为以下四个方面:服务器安全,边界安全,Internet和Extranet上的安全.
在攻击行为发生前,做到防患于未然是预防措施的关键,防火墙系统是网站安全的第一道防线,它可以过滤并阻挡许多攻击行为的发生.
防火墙结合了包过滤和代理服务两种主要的防火墙技术,从网络层到应用层提供完善的防护机制.能够隐藏局域网内部的网络拓扑,并解决IP资源不足的问题;
身份认证系统.
动态口令系统将系统的口令变成动态的,用户每次登录系统的口令都不同,这样可以防止口令被非法窃取;
[By DigitalTitan:这可以通过震荡来产生随机口令两端同时解密来验证]
PKI是一个提供用户认证和防止传输数据被非法修改的系统架构;
我们都听说过黑客通过Internet攻击数据库并且使用从中发现的信用卡信息的情况,造成这个问题的一个原因就是在被黑站点上的数据库信息未受到保护.
记住这句老话:深度防御.要牢固树立这个信念,因为系统中的所有防御都会受到危害,因此建立的防御层越多越好.对于保护数据库内容的情况,许多Web站点都相信SSL/TLS会保护他们的信用卡数据.当信用卡数据从客户端向数据库存入的过程中,这是事实,但是
SSL/TLS并不保护存储在数据库中的固定数据.SSL/TLS是一个在线协议.如果攻击者饶过了Web服务器而直接进入数据库服务器的话,那么他就有可能直接存取数据了.
加密数据库中的数据
加密存储在数据库中的数据是转移这种威胁的好办法,但是很少有数据库提供此种类型的数据加密.例如,Microsoft SQL Server 7和SQL Server 2000只对从数据库客户(如一个ASP页面)向数据库服务器本身流动的数据提供加密,但并不能对保存在数据库中的数据进行加密.
解决这个问题的最容易途径是:用C++创建一个调用Crypto API (CAPI)的COM组件,然后从ASP页面内部调用这个组件.但是请注意,这个方案很艰巨,因为CAPI并不是最容易使用的API.尽管它的功能很强大又很丰富,但是你需要调用一套复杂的函数才能完整地使用它.另一个问题是你必须要了解C++,如果你是一个用HTML和Jscript,VBScript或Perl等脚本语言工作的Web开发人员的话,这无疑又是一个困境.
用CAPICOM组件解决问题
现在我们来认识认识CAPI COM.CAPICOM是一个高性能的用于密码方面的COM组件,既可以在客户端(如HTML页面中或Windows脚本应用程序)使用,也可以在服务器端(如一个ASP页面)使用.要注意CAPICOM并不是CAPI基础上的简单包装,它为特殊功能提供了高级支持,如加密、验证管理以及数字签名的支持。CAPICOM第一次是在Microsoft发布平台SDK Windows Whistler Beta 2时出现的.因此,如果你具有了平台SDK,那么你就已经有了CAPICOM.
现在回到数据加密的问题上,关于加密最困难的部分是关键字的管理.我们可能已经有了用CAPICOM对数据进行加密和解密的有效办法,但是我们如何存储用来加密和解密的关键字数据呢?坦白地说,我们不能完全消除对关键字的潜在威胁,增加的只是让攻击者做更多的攻击工作.要记住深度防御!如果有人危害到你的数据库,并且已经获得了对加密的信用卡信息的使用权,那么攻击者要想确定用来加密和解密信息的关键字时,还必须再做些什么呢?
关键字管理的关键
要想使关键字管理安全,你的第一选择是不要将关键字与数据一同存储,要使用另外的存储位置,例如注册表文件或一个COM组件.使用注册表文件是最容易的.对关键字进行ACL控制(访问控制),这样那些需要对数据进行加密和解密的程序和用户才可以从注册表文件中读取关键字.为了获得更多安全性,还可以为注册表的关键字增加了一个审核用的ACE,这样就能看到这些关键字被使用的频率以及是谁使用的.
将关键字存储到注册表文件中是一个良好的开端,但是还没有结束.可以从系统的其它部分找到关键字的素材,如机器名称,或者也可以从用户的记录中得到一些关键字素材.当创建了一个新用户时,也可以创建一个随机值,并将其增加到客户记录中.但是,当生成随机值的时候,不要调用C/C++ rand()或VBScript Rnd,因为这些函数不是随机的,要使用CAPI的CryptGenRandom.
个人观点:
做为软件开发商而言:针对Web交互查询的B/S模式主要应采取如下措施:
1.保证服务器上数据库不被非法访问[服务器安全策略]
2.保证服务器上原代码不被非法访问[编译原程序,解释原程序可以通过加密手段]
3.网络通讯中应用SSL协议基本可以保证数据在传输中的安全性
4.代码访问数据库合理利用CAPICOM组件也是可以保证数据的安全性
物理层的安全防护:在物理层上主要通过制定物理层面的管理规范和措施来提供安全解决方案.
链路层安全保护:主要是链路加密设备对数据加密保护.它对所有用户数据一起加密,用户数据通过通信线路送到另一节点后解密.
网络层和安全防护:网络层的安全防护是面向IP包的.网络层主要采用防火墙作为安全防护手段,实现初级的安全防护.在网络层也可以根据一些安全协议实施加密保护.在网络层也可实施相应的入侵检测.
传输层的安全防护:传输层处于通信子网和资源子网之间,起着承上启下的作用.传输层也支持多种安全服务:1)对等实体认证服务;2)访问控制服务;3)数据保密服务;4)数据完整性服务;5)数据源点认证服务;
应用层的安全防护:应用层的安全防护:原则上讲所有安全服务均可在应用层提供.在应用层可以实施强大的基于用户的身份认证.在应用层也是实施数据加密,访问控制的理想位置.在应用层还可加强数据的备份和恢复措施.应用层可以是对资源的有效性进行控制,资源包括各种数据和服务.应用层的安全防护是面向用户和应用程序的,因此可以实施细粒度的安全控制.