写点什么

.NET 框架 2.0 中的证书应用

  • 2007-08-28
  • 本文字数:1274 字

    阅读完需:约 4 分钟

一直以来无论是 Web Form 应用、Windows Forms 应用还是 Mobile&Smart Device 应用,强密码保护的认证机制普遍缺失,点对点的非对称消息加密和数据内容签名因为缺少了这个可信赖的凭证也总是成为“沙丘上的城堡”,PKI 环境中的证书机制也许是解决上述问题一个不错的选择。

最新一期的 MSDN 杂志刊发了用证书保护.NET 2.0 应用的文章,文章提纲挈领地将如何使用证书,如何用证书完成 SSL,如何对 Web Service 调用进行保护,如何对代码、安全策略(.NET Framework 和 Active Directory)、自动下发机制、数据进行签名支持等进行了介绍。对于开发人员而言,这些内容应该是非常珍贵的,因为它解决了应用中一个两难的问题:

  1. 为了安全和实施简便,.NET 应用常常会选择集成活动目录域环境认证(或者是互信域认证)模式,这种情况普遍存在于 IT 环境相对比较好的企业内部,尤其被用于企业内部应用,企业分支机构(Branch Offices)的员工也通过包装的 SSPI 接口或者集成认证方式访问内部应用。但偶尔还会遇到很多信任域外的用户访问,出于安全考虑不能给他们开放域账号,但又想让他们访问企业信息资源的时候有个凭据;
  2. 应用本身定位于开放的互联网环境(跨域),采用用户名 / 密码的 Forms 认证方式,认证后的结果也“偷偷摸摸”地保存在某个调用上下文中(Session、Cookie)。如果进行一些无关痛痒的操作倒也无妨,但如果用于会有“别有用心”人特别惦记的一些操作时,例如:账户支付、医疗信息交换等,虽然算不上“裸奔”但也和“就穿着内衣过闹市”没什么区别。这些场景下,无论是法律规定,还是用户需求,往往都促使应用的设计者考虑一些跨信任域的强身份措施,以及在此基础上的非对称密码处理。

当“跨域”、“安全”、“简便”合并在一起的时候,好像现有技术手段中能胜任的寥寥无几,仅从.NET Framework 层面看证书机制也许是最易于实施的一种,它本身基于 PKI 的公钥体系下,可以为各主要的安全机制提供强密码保护。而且在 SOA 大行其道的今天,似乎架构师们更关注与互通(Inter-Communication)和互操作(Interoperation),大家常常谈的“互”其实更多的指消息,但往往忽略了如果调用双方互相都不认识这个“互”似乎也太牵强了,而证书机制恰好也适合这个场景。不仅如此,如果设计人员将安全边界界定到应用服务部分的话,对外交户的内容不会仅限于消息,想想看:

  • 您的应用不需要更新吗?如果需要更新的话,下发的、或者客户端应用调用的 Assembly、ActiveX 是您意愿中的那个版本吗?
  • 变基于规则和硬性逻辑的治理为基于策略的治理是一个趋势,但是最终发布的这个策略(适于某个应用,或者某组应用,甚至于适于企业发布的各个应用)能忠实地发布到用户一端,并在目标应用执行中被正确解读吗?
  • WS-* 协议组中,WS-SEC、XML-Signature 之类的似乎给出了很圆满的应用无关、平台不管、开发技术无所谓的 Web Service 安全方案,但他充其量只说了结果、宾语,没有提过程的主语——“谁”。

数据、组件、安全策略、Web Service 调用还有其他只要是与边界外对象交换的东西,如果需要,能用证书的就都给它用上证书好了,不过之前先要生成并分发好这些证书。

2007-08-28 21:161061
用户头像

发布了 61 篇内容, 共 12.3 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

MyBatis官方文档-日志,java高级开发工程师职责

Java 程序员 后端

MySQL慢查询,一口从天而降的锅!,java程序开发基础彭政答案

Java 程序员 后端

mysql的 int 类型,刨析返回类型为BigDicemal 类型的奇怪现象

Java 程序员 后端

Netty相关面试题汇总,java并发编程电子书

Java 程序员 后端

Mac下vagrant从安装到体验,经典实战教程

Java 程序员 后端

Nginx面试三连问:如何工作?负载均衡策略有哪些

Java 程序员 后端

markdown编辑器的使用教程,java面试笔试题程序题

Java 程序员 后端

Mybatis学习笔记--自定义Mybatis,java程序员面试笔试宝典百度云

Java 程序员 后端

Mysql中,21个写SQL的好习惯,你值得拥有呀(1)

Java 程序员 后端

Mysql优化提高笔记整理,来自于一位鹅厂大佬的笔记

Java 程序员 后端

Nginx架构浅析:为什么不用多线程模型管理连接与处理逻辑业务?

Java 程序员 后端

MyBatis 自定义 SQL 拦截器,java数据可视化技术

Java 程序员 后端

MyBatis01:初识 MyBatis 与 第一个 MyBaits 程序

Java 程序员 后端

mybatis开发要点-insert主键ID获取和多参数传递

Java 程序员 后端

MySQL各种锁详情,实战分析

Java 程序员 后端

MySQL是如何恢复到某一天的某一秒的状态?,现在做Java开发有前途吗

Java 程序员 后端

mysql的timestamp会存在时区问题?,java技术专家方向

Java 程序员 后端

Netty编解码开发+多协议开发和应用+源码,Java开发经验谈

Java 程序员 后端

MongoDB入门操作汇总,网易架构师深入讲解Java开发

Java 程序员 后端

MyBatis 源码分析 - 插件机制,java容器面试题

Java 程序员 后端

Mybatis常考面试题汇总(附答案),学习SpringBoot

Java 程序员 后端

MyCat配置文件详解(二),java自学视频谁讲的好

Java 程序员 后端

MySQL 事务隔离级别,进阶和基础哪一个难

Java 程序员 后端

MySQL索引原理B+树,java学习视频百度云盘

Java 程序员 后端

MySQL进阶三板斧(三)看清,java高级框架思维导图

Java 程序员 后端

MyBaitsPlus----知识盲点整理,mysql数据库项目式教程答案

Java 程序员 后端

MySQL事务:ACID特性的实现原理知多少,java教学视频百度云

Java 程序员 后端

Mysql进阶三板斧(一)带你彻底搞懂View视图的原理及应用

Java 程序员 后端

MySQL面试题:谈谈MySQL 索引,B,java程序员面试算法宝典pdf下载

Java 程序员 后端

MyEclipse优化、常用设置、快捷键,java视频教程百度云

Java 程序员 后端

Mysql中,21个写SQL的好习惯,你值得拥有呀,jvm原理面试题

Java 程序员 后端

.NET框架2.0中的证书应用_.NET_王翔_InfoQ精选文章