写点什么

Silverlight 5 的安全性:为局域网而设计

  • 2012-01-31
  • 本文字数:1719 字

    阅读完需:约 6 分钟

Silverlight 所扮演的角色一直为人所误解。人们最初认为 Silverlight 要和 Flash 竞争,但是 Flash 本身已经被 HTML 5 所取代。人们还认为它是一种交付跨平台应用程序的方式,但是 iOS 让这个希望也破灭了。让人奇怪的是,它在人们认为应该是 WPF 的领域——企业内部业务应用程序——中繁荣起来,而 Silverlight 5 中改进的安全性模型也反映了这一点。

Silverlight 2 是人们普遍认可的第一个真正意义上的版本,它出现后不久,人们就想要了解交付传统样式应用程序的方法。这项特性叫做“浏览器之外(out-of-brwoser)”或者 OOB,它最早是在 Silverlight 3 中提供的。但是早在发布之前,人们就开始要求访问 COM。但是正如我们所知,考虑到安全性问题,在浏览器中访问 COM 是非常可怕的想法。尽管微软缓解了这个问题,并在 Silverlight 4 中添加了这个特性,但是仅针对 OOB 应用程序。

一旦 Silverlight 的开发者尝到了 COM 的甜头,他们就要求对底层操作系统由更多的访问权限。并且他们要求即便是在浏览器中运行,也要能够访问。所以我们现在有了带有 p/invoke 功能的 Silverlight 5,它在浏览器之中拥有完全信任关系,这不仅仅是一种幻想,而且要成为一种公司的技术。有些人可能认为这是非常大胆的声明,但是了解一下更新的 Silverlight 安全性概览中所传达的信息,就会发现并不尽然。

在浏览器信任的应用程序中,和浏览器之外信任的应用程序一样,它们拥有其它权利,像访问文件系统和调用 COM 对象。在浏览器中,只有它们带有可信任发行商密钥的签名时,才能够带有信任关系运行,而这属于企业环境中组策略设置的一部分。它永远都不会提示用户赋权。

成为“可信任的发行商”并不像购买密码签名证书那样简单。想要被添加到那个列表中,用户需要手动导入证书,并使用为微软管理控制台所提供的 snap-in 功能来安装。在控制面板中并没有这个快捷方式;用户需要从命令行运行。

在 Silverlight 4 中,应用程序至少需要拥有管理员的权限。但那个限制已经被去掉了。

Silverlight 5 不会去除管理员权限。在 Silverlight 4 中,如果以管理员权限运行 Silverlight 应用程序,那么 Silverlight 就会载入另一个受限的进程并结束原来的进程,从而移除管理员权限。受限的权限与 Windows Vista 及以上版本中的用户账户控制(User Account Control,UAC)限制类似。Silverlight 5 摆脱了这种逻辑,并遵循了正常的操作系统规则,在 Silverlight 5 中,如果应用程序是作为管理员运行的,那么它就会带有管理员权限运行,如果没有作为管理员运行,那么就不会带有管理员权限运行。

代码签名

如果你在部署面向互联网的 Silverlight 应用程序,那么你就可以忽略所有受信应用程序的内容,但是还需要考虑很多安全性方面的指标。首先,微软建议你对所有 Silverlight 签名。“如果你无法使用证书颁发机构发布的签名,那么至少应该自己对应用程序签名,以避免有人在更新应用程序时进行中间攻击。”

重新部署(Re-hosting)

Silverlight 应用程序所要面对的主要风险因素就是重新部署。有人可以创建钓鱼站点,在其中放置真正Silverlight 应用程序的副本。然后服务调用会通过虚假站点跳转,这样用户名和密码就会泄漏。

降低这种攻击风险的一种方式是,进行检查以查看应用程序是从哪个页面载入的。如果不是从正确的域中载入,那么你就应该在启动的时候退出。

跨站点脚本攻击和页面/ 应用程序信任

默认情况下,Silverlight 并不容易受到跨站点脚本攻击。然而,暴露脚本函数就会引入这个问题,特别是在那些函数调用XamlReader.Load 或AssemblyPart.Load 的时候。作为一种规则,所有带有ScriptableMemberAttribute 标签的函数都可以从JavaScript 调用,所以你应该仔细检查,看其中是否存在安全性漏洞。

另一种可能是引入了调用页面上JavaScript 脚本的恶意Silverlight 应用程序。为了减少这种可能,

直接服务调用(Direct Service Invocation)

一种经常被忽略的攻击点是应用程序使用的服务调用。WCF 没有一种可靠的方式用于检测web 服务是否真正来自于Silverlight 应用程序,所以你需要假设所有服务调用都可能是恶意的,并且要在服务器中再次执行在客户端已经完成的验证操作。

查看英文原文: Silverlight 5 Security:Designed for the Intranet

2012-01-31 03:272743
用户头像

发布了 340 篇内容, 共 145.3 次阅读, 收获喜欢 13 次。

关注

评论

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

TSDB在油气田勘探开发领域的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

重磅 | 九科信息成功入选中国交通建设集团财务云(RPA)项目

九科Ninetech

案例 | 九科信息为某大型科研单位设计财务系统科目预警RPA

九科Ninetech

Syscoin宣布与Web3孵化器WEconomy建立长期合作伙伴关系

100DAO 加速计划

DAO #Syscoin #区块链 #Web3

华为云助推武水集团项目成功入选住建部“智慧水务”典型案例!

秃头也爱科技

MySQL分库分表,可能真的要退出历史舞台了!

Java永远的神

MySQL 程序员 后端 架构师 分布分表

一图了解人造石墨负极材料上中下游全产业链

PreMaint

新能源 锂电池

天翼云斩获2022全球分布式云大会两项大奖

天翼云开发者社区

功能上新|使用 Excel 低门槛进行指标分析!

Kyligence

数据分析 指标管理

作为一个研发凭什么花大量时间修安全漏洞?

墨菲安全

安全 开发

华为云发布CodeArts Req需求管理工具,让需求管理化繁为简

IT科技苏辞

架构实战营第 10 期 - 模块三作业:外包学生管理系统详细架构设计文档

kaizen

「架构实战营」

2022年中国第三方输入法发展分析

易观分析

报告 输入法 语音输入

阿里云对话 Tapdata:以秒级响应速度,为企业提供实时数据服务

tapdata

ETL 实时数据 DaaS 现代数据栈

新茶饮 200+ 门店优化库存成本,需要几个数据分析师?

Kyligence

数据分析 指标中台

软件测试面试真题 | 需求评审中从几个方面发现问题

测试人

软件测试 面试题 自动化测试 测试开发 需求评审

数字先锋| 活起来、动起来、用起来!“海南模式”让数据要素发挥更大价值

天翼云开发者社区

外包学生管理系统架构文档

白杨

华为时习知,让企业培训更简单!

IT科技苏辞

云渲染时可以关机吗_云渲染电脑可以关闭吗?

Renderbus瑞云渲染农场

云渲染

HTTP其他首部字段

穿过生命散发芬芳

HTTP 12月月更

直播倒计时1天!“基于AIOps的全面可观测性网络研讨会”与你不见不散

博睿数据

根因分析 直播 智能运维 博睿数据

案例 | 九科信息久其报表RPA项目助力某大型央企财务部门提质增效

九科Ninetech

小数据治理靠“人工”,大数据治理靠“智能”

用友BIP

站在2023起跑线,政企数字化如何深入“核心地带”?

脑极体

数字先锋| 药品信息何处有?尽在标识编码处

天翼云开发者社区

软件测试面试真题 | web自动化关闭浏览器,quit()和close()的区别

测试人

软件测试 面试题 自动化测试 测试开发 web测试

PM&PMO汇报工作的5大技巧,学会了让老板眼前一亮!

PMO实践

PMO 年终报告 年终总结 项目经理

移动办公时代,就看华为云桌面

秃头也爱科技

远程办公成趋势,华为云桌面为何连续7年领跑?

秃头也爱科技

安全可信| 安全与高效兼得?天翼云EasyCoding敏捷开发平台来了!

天翼云开发者社区

Silverlight 5的安全性:为局域网而设计_.NET_Jonathan Allen_InfoQ精选文章