惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 牛奶哥

C#点滴 - 深拷贝与浅拷贝 C#点滴 - 抽象类与接口区别 C#点滴 - ?与?? C#点滴 - 值类型与引用类型 C#点滴 - 类型转换 - 牛奶哥 C#点滴 - 关于String C#点滴 – 内建基本类型 C#点滴 – CLR, CTS…等等基本概念 - 牛奶哥 SharePoint 2010 学习资料 初学SilverLight - (3)简单布局 - 牛奶哥 初学SilverLight - (2)第一个SilverLight程序 初学SilverLight - (1)开发环境准备 关于在SharePoint中管理大文件的一些想法 WCF热带鱼书学习手记 - Service Contract Overload - 牛奶哥 WCF热带鱼书学习手记 - client coding - 牛奶哥 WCF热带鱼书学习手记 - metadata WCF热带鱼书学习手记 - endpoint - 牛奶哥 WCF热带鱼书学习手记 - ABC - 牛奶哥 WCF热带鱼书学习手记 - Host Type - 牛奶哥
WCF热带鱼书学习手记 - Security (1) 概述
牛奶哥 · 2009-12-24 · via 博客园 - 牛奶哥

谈到安全,首先应该想到的是三个基本的安全相关的动作,可以用AAA来概括,即Authentication, Authorization and Audit

  • Authentication - 验证用户是不是他所宣称的人。或者反过来,server是不是我们确实要访问的server。。。。这年头没啥东西是绝对可信的啊!
  • Authorization - 通过验证的用户能做什么样的操作。
  • Audit - 记录用户的验证,授权等安全相关操作活动,以备后用

WCF的运行是基于消息传输的。我们在谈及上述3个security要素的时候,通常假设应用程序通讯及消息传输是安全的。也就是说,WCF作为分布式应用程序的框架,一般情况下会涉及到程序各个节点之间的信息传输,如果这个传输都不安全的话,三A也就没有了构筑安全的应用程序的基石。所以除了AAA意外,WCF安全还要考虑到消息传输安全。

1. Authentication

WCF提供了一些基本的用户验证方式:

  • none -  没有安全验证。任何人都能调用所有的service。通常情况下,这个是不可取的。
  • Windows - 同AD,domain或者本地user/group集成。一般来说应用在局域网,intranet中。
  • User and Password - 适用于一般Internet的场景,username和password存储在数据库或者其他storage中,通过验证用户提供的凭证对比storage中的凭证来实现身份验证。
  • X509 certificate - 证书方式。类似我们使用的身份证。server端承认公安局是合法的发证机关并信任它,对于公安局发布的证书也信任,依据这个前提进行验证。
  • Issued Token - 个人感觉和证书方式类似,也需要第三方。client和server都拥有从第三方拿过来的token,基于这个进行验证。
  • Others - 指纹等等。。。自定义的

2. Authorization

WCF的授权一般来说根据凭证库的类型可分为,基于user/group的和基于user/role的,概念上2者应该一样,不过前者凭证库是AD或者是Windows local user,后者是数据库。当然WCF提供了扩展机制,上面说的2个是最常用的case。

3. Audit

这个没什么好说的,WCF提供了可配置的Audit机制,完全可以做到无编程的仅靠配置的安全审核。

4. 传输安全

传输安全涉及到三个要素:

  • 完整性 - 消息在传输过程中不能被修改,如果被修改了,server能够知道并且拒绝下一步的执行。

    完整性很容易理解,如果消息被篡改了,意味着客户端调用不再安全,服务必须拒绝客户端调用。那么server如何知道消息是否被篡改了呢?举个例子来说,在我自己的印象中数字签名是一种可以实现完整性的技术。首先要对你要发送的消息进行hash,不同的消息得到的hash肯定是不同的,而且不能通过hash值反推出消息。这样server可以通过相同的hash算法运用到得到的消息上面,把得到的hash值与客户端发送过来的hash值进行比较,如果二者一样,证明消息没有被篡改过。当然应该要对client端产生的hash值进行加密,确保hash值不会也被篡改。。。利用公钥私钥对进行加密解密操作可以减少hash值被获取的情况。

  • 机密性 - 消息在传输过程中不能被读取,因为其中包含的敏感信息也可能造成损害。
  • 相互验证 - 消息传输双方要相互确认对方是合法的。这个和3A中的authentication本质上是一样的。

WCF提供了5种传输安全模式:

  • none - 无安全。
  • transport - 直接对通信信道进行加密,所有通过信道的小心都会被加密。只适用于点对点的通信(局域网场景)。
  • message - 仅仅对消息进行加密,适用于端对端通信(Internet场景)。
  • mixed - 消息传输时使用transport,并且利用message模式对client凭证进行加密。
  • both - 同时使用信道加密,和消息加密。。。一般没必要。

OK,Security是WCF中最复杂的feature之一,也是这本热带鱼书中我比较感兴趣的。后面会继续写些文章关于其他安全相关的学习。