摘要:本文ASP.NET应用程序安全的概念,介绍了各种安全通讯技术并进行了比较。
关键字:安全通讯 SSL IPSec RPC ASP.NET WEB应用
1. 前言
任何成功的应用程序安全策略的基础都是稳固的身份验证和授权手段,以及提供机密数据的保密性和完整性的安全通讯。
许多应用程序在应用程序的各层之间传输机密数据:从数据库到浏览器,或者相反。机密数据的例子包括银行账户的详细资料、信用卡号码和薪金数据等。另外,当登录凭据在网络上传输时,应用程序必须保证凭据信息的安全。
2. 安全通信的特性
2.1 .保密性(privacy)
保密性用于确保数据的机密性,不能被那些可能安装有网络监视软件的窃听者看到。通常通过加密来提供保密性。
2.2 完整性(integrity)
安全通信信道必须确保数据在传输过程中不会有意或无意被修改。通常通过消息验证码(MAC,Message Authentication Code)来提供完整性。
3. 安全通讯技术
3.1 安全套接层
安全套接层(Secure Sockets Layer)技术最常用于保护浏览器和Web服务器之间的信道。不过也可以用于保护往返于运行了SQL Server 2000 的数据库服务器和WEB服务消息和通信。
当应用SSL时,客户端使用HTTP协议并指定一个https://URL,而服务器在TCP端口443上侦听。
使用SSL后,由于SSL使用复杂的加密功能来对数据进行加密和解密,因此对应用程序的性能会产生影响,所以应改优化使用SSL的页面。
在使用基本身份验证和窗体身份验证时,因为是以明文的形式传递用户名和密码,因此应该使用SSL。一般说来,不但要在登录页面使用,在后续的页面上也应该使用SSL。
3.2 Internet 协议安全性
Internet 协议安全性(IPSec, Internet Protocol Security)提供了一种传输层安全通讯解决方案,可以保护两个计算机之间-例如,一个应用程序服务器和一个数据库服务器之间-来回传递数据。
IPSec 可以用于:
通过对两台计算机之间来回发送的所有数据进行加密来提供消息的保密性。
在两台计算机之间提供消息完整性(不对数据进行加密)。
在两台计算机之间(不是用户之间)提供相互的身份验证。
限制哪些计算机可以相互进行通信。也可以将通信限制为使用特定的IP协议和TCP/UDP端口。
3.3 远程过程调用加密
远程过程调用(RPC,Remote Procedure Call)加密,由分布式COM(DCOM)使用的RPC协议提供的一种身份验证级别,这种级别将使得在客户端和服务器之间传送的每个数据包都被加密。
4. 角色的授权的模式
《ASP.NET应用程序的安全方案(一)-身份验证》。
《ASP.NET应用程序的安全方案(二)-授权》。
……