BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

ASP.NET实现了更好的加密算法

| 作者 Roopesh Shenoy 关注 0 他的粉丝 ,译者 陈菲 关注 0 他的粉丝 发布于 2012年12月8日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

.NET 4.5引进了一系列对ASP .NET处理加密的改进,并带来了新的ProtectUnprotect API,以及众多不易察觉的更改。Levi Broderick通过一系列文章介绍了其动机、改变及兼容问题。

ASP.NET需要两个密钥(解密钥和验证钥)来加密,而这一对合起来就叫做机器钥。机器钥可以在不同组件间重用。Levi的第一篇文章里解释了.NET4.0的设计为何在某一组件上造成安全问题的同时,也给系统其他组件带来了更大的影响。

同样,为开发者开放的MachineKey.EncodeDecode API也使用了同样的机器钥来加密。因此,开发人员将进一步引入来自他们本身的安全问题,从而再次造成了级联效应。

Duong 和 Rizo在一篇IEEE论文里已经着重强调了这些顾虑的大部分(以及其它方面)。尽管论文里提到的大多数问题已经在论文里被解决了,但还有一些关键问题仍然存在。

作为解决方案,.NET 4.5引入了以下改变--

  • 机器钥的转换和上一版有显著区别:通过改变机器钥上某几位就可将其作为钥定义方法的钥衍生钥,以生成真正用于应用的密钥。
  • ProtectUnprotect API 将MACing和encrypting并作一步,然后将其命名为“保护(protecting)” 。编码(Encode)和解码(Decode) API仍然存在,但不推荐使用。
  • 引入一个名叫“目的(purpose)”的参数用来区分那些由于某些特定需要而进一步使用别的加密API,以减少其它区域安全问题对其造成的影响。

所有这些改变在默认情况下是关闭的,必须在web config中明确设置后才能开启(所有新的ASP.NET项目模板都使用该变化)。关于改变的所有细节都在Levi Broderick的第二篇文章里描述了。而第三篇文章则介绍了一些高级用法和使用技巧。

应注意的是:本次改变不包括membership提供程序中的密码加密,此功能将分开处理

原文链接ASP.NET Gets Better Cryptography


感谢姚琪琳对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT