AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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:272451
用户头像

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

关注

评论

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

如何快速构建研发效能度量的指标体系?

Kyligence

数据分析 指标

教你用JavaScript实现乘法游戏

小院里的霍大侠

JavaScript 前端开发 编程实战 实战案例 初学者

互联网医疗领域月度观察——数字乡村建设加快,“互联网+医疗健康”带动乡村高质量发展

易观分析

数字化 互联网医疗

专访 | 罗成:开源并非“只可远观”

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

新变化新营销 这些知识点你得Get!(文末有PPT福利首次放送)

字节跳动数据平台

大数据 营销 12 月 PK 榜

OpenMLDB 实时引擎性能测试报告

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

让对外合作更高效,就用WeLink跨企业沟通

路过的憨憨

镕铭微电子加入龙蜥社区,推动开源 OS 在音视频产业的应用

OpenAnolis小助手

操作系统 芯片 数据存储 龙蜥社区 镕铭微电子

演讲实录 | OpenMLDB 整合自动特征工程

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

OpenMLDB 社区月报 | 2022年10月

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

华为云数据库GaussDB(for Influx)揭秘:数据分级存储

路过的憨憨

Ansible之Ansible Tower使用User和Team管理访问权限的笔记

山河已无恙

12月月更

OpenMLDB Meetup No.7 回顾 | OpenMLDB+AutoX:整合自动特征工程,拥抱高效机器学习

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

创业者说丨云起无垠沈凯文:构建新一代开发安全基础设施 让Fuzzing技术为企业赋能

云起无垠

安全开发 开发安全 Fuzzing技术防护

Ansible最佳实践之Playbook高级循环任务如何操作

山河已无恙

12月月更

react源码分析:babel如何解析jsx

flyzz177

React

专访 | 徐鹏程:开源,就是酷

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

关于 Git 重写历史的一些笔记

山河已无恙

12月月更

Ansible最佳实践之 AWX 启用facts缓存和模板问卷调查

山河已无恙

12月月更

Ansible最佳实践之 AWX 作业创建和启动

山河已无恙

12月月更

react源码中的生命周期和事件系统

flyzz177

React

黄东旭:开发者的“技术无感化”时代,从 Serverless HTAP 数据库开始 | PingCAP DevCon 2022

PingCAP

TiDB

HIFIVE音加加 × 火山引擎:正版曲库+智能视频创作SDK,短视频全链路需求一站式解决!

曲多多(嗨翻屋)版权音乐

短视频 火山引擎 HIFIVE音加加 视频配乐 版权音乐

react源码中的协调与调度

flyzz177

React

OpenMLDB v0.6 新版本运维功能增强

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

数字化改变了什么?WeLink在实践中给出答案

路过的憨憨

ChaosBlade Java 场景性能优化,那些你不知道的事

阿里巴巴中间件

阿里云 云原生 ChaosBlade

初识华为云数据库GaussDB(for Cassandra

路过的憨憨

裸辞不慌!入职蚂蚁金服P6,掌握并发编程我是这样吊打面试官的

钟奕礼

Java java面试 java编程 程序员‘

教育部公布2022年第一批产学合作协同育人项目,千锋教育57个项目成功立项

千锋IT教育

【Meetup 预告】OpenMLDB + MaxCompute:集成打通云上生态,高效构建 AI 应用

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

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