安全

来源:互联网 发布:手机淘宝开店怎么关闭 编辑:程序博客网 时间:2024/04/28 08:26

1、WCF 安全概念

认证

安全最基本概念之一是知道谁在敲门。认证是为一次访问建立一个清晰身份的过程,例如,通过提供用户名和密码的证据。尽管对一个服务来说这对理解它的调用者明显是重要的,同等重要的是调用者有一个关于调用的服务是期望的而不是伪造的保证。

  WCF为服务和调用者为共同认证提供几个选项-例如,证书和Windows账户和组。通过使用这些以及其他选项(我们会在这章描述),每端都可以保证它们正在与期望的部分通信。

授权

安全的下一步,就是在身份建立起来后确定是否应该允许调用端做它们请求的。这个过程称为授权因为服务或者资源授权一个调用者来操作。注意你也可以选择匿名用户来操作,所以尽管授权与认证不是严格独立,它通常是跟随认证的。

  授权可以通过服务中的自定义代码实现,原有的或者自定义授权提供者,ASP.NET 规范,Windows组,活动目录,认证管理器和其他架构。

可信赖性

当处理敏感信息时,如果一次调用的结果将广播给任何感兴趣的人,那么创建身份并授权就没有多大用处。可信赖性是阻止其他人读取一个调用者和一个服务间的交换信息的概念。这通常通过加密实现,这种多样性的架构存在WCF中。

完整性

最后一个关于安全的基本概念是保证在调用者和服务端传输的消息内容没有被篡改,反之亦然。这通常通过数字签名或者为消息内容创建一个签名哈希并让接收方验证基于它接收的内容的签名值。如果计算出的值与嵌入的值不匹配,消息应该被丢弃。

  注意即便私密性不是必须的也可以提供完整性。只要接收方可以通过数字签名验证保证原始数据那么以明文发送消息也是可以接受的。

传输安全和消息安全

WCF中有两个主要的安全级别;两个都是关于在一个服务端和调用端(有时称作传输安全)消息的安全性。第一个保护数据的概念是当它在网络中发送,或者”在线”。这称之为传输安全。另外一个类别称作消息安全并关注每条消息为它自己提供的保护,不考虑使用的传输架构。

  为数据发送提供保护的是传输安全,不关心内容。这个场景的通用例子是使用安全套接层(SSL)来对数据包的内容进行加密和签名并通过HTTPS发送。也有其他的传输安全选项,选项将依赖于使用的特定WCF绑定。事实上,默认情况在WCF中你将看到很多选项设置为安全,比如TCP。

2、基于证书的加密

证书以及它们所提供的声明是一个安全的提供身份的通用方法,WCF使用X.509工业标准证书,它被很多技术提供商广泛采用,证书可以在传输安全或消息级别安全使用

  非对称密钥来加密消息的概念总体上来说很简单。想象一个可以使用一个密钥加密任意字符串并使用另外一个密钥对其解密的算法。现在想象我有一对儿这样的密钥,我让它们中的一个是公共的以便于互联网上的所有人都可以看到它,但是我让另外一个是私有的以便于只有我可以看到它。如果我的朋友想给我发送一条消息,他寻找我的公共密钥,运行算法加密消息,然后发送它。如果加密的消息被我的敌人截获,那个人不能读取它因为只有我,有我的私有密钥,可以解密消息。当我发送一个反馈给我的朋友时,我寻找他的公共密钥,运行算法来加密反馈,然后发送。再次,只有他可以解密加密的消息,所有它将在我们俩之间保密。

数字签名使用消息加密。一个数字签名是一个使用私有密钥加密的简单字符串以便于它只可以使用相关的公共密钥来解密。对那个字符串(例如,我的名字)的正确解密是公共信息,所有在一些人使用我的公共密钥解密消息后,那个人可以确定我的名字存储在消息中

3、传输层安全

使用SSL加密:基于HTTP 的SSL,在TCP上使用SSL





原创粉丝点击