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

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
M
MIT News - Artificial intelligence
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
罗磊的独立博客
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
美团技术团队
F
Fortinet All Blogs
I
Intezer
IT之家
IT之家
T
Threat Research - Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Know Your Adversary
Know Your Adversary
P
Proofpoint News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AWS News Blog
AWS News Blog
P
Palo Alto Networks Blog
S
Securelist
L
LINUX DO - 热门话题
Security Archives - TechRepublic
Security Archives - TechRepublic
N
Netflix TechBlog - Medium
TaoSecurity Blog
TaoSecurity Blog
Scott Helme
Scott Helme
Hugging Face - Blog
Hugging Face - Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Project Zero
Project Zero
U
Unit 42
博客园_首页
博客园 - 司徒正美
S
Security Affairs
V
V2EX
T
Threatpost
T
Tailwind CSS Blog
GbyAI
GbyAI
O
OpenAI News
K
Kaspersky official blog
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
H
Hacker News: Front Page
V2EX - 技术
V2EX - 技术
Security Latest
Security Latest

博客园 - 牛奶哥

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之一,也是这本热带鱼书中我比较感兴趣的。后面会继续写些文章关于其他安全相关的学习。