写点什么

在 Windows Azure 中保证数据安全的几点建议

  • 2010-01-31
  • 本文字数:1369 字

    阅读完需:约 4 分钟

在最近一篇名为《 Windows Azure 的加密服务和数据安全》的 MSDN 文章中, Jonathan Wiggs 为大家提供了几点关于在 Windows Azure 中安全存储和处理数据的建议。InfoQ 仔细研究了这个主题,以便在把应用程序部署到云当中的时候,更好地理解一些随之而来的安全细节。

在使用 Windows Azure 的时候,Wiggs 建议使用由加密服务提供程序( Cryptographic Service Providers ,CSP)所支持的基本加密功能:

从一致性角度来考虑,绝对不要创建自己或使用私有的加密算法……
在.NET CSP 中提供的算法经过多年的验证和测试,尽可放心使用。

他也建议使用 RNGCryptoServiceProvider 类来生成随机数,以保证生成的随机数具有高随机量而很难被猜中。

CSP 提供了对加密数据和签名消息的支持,不过这些功能都需要一个纯字符串形式的加密密钥来辅助。正确存储和保护这些密钥,对于保证足够的数据安全至关重要。

任何应用程序都不要使用由 Windows Azure 所提供的任何密钥来加密数据。比如,Windows Azure 为存储服务所提供的密钥。这些密钥为了安全目的被配置成可允许轻易地交替,或者它们有可能由于某种原因而泄露。换句话说,它们未来可能并不会一直存在,或可能被广泛地分发。

Wiggs 建议使用 Azure Storage 服务来存储密钥库,这可充分利用由这些服务所提供的安全性。加密密钥能通过 blob 服务 API 存储在文本文件中:

在 CSP 密钥容器中,先持久保存一个密钥。这是存储公开密钥的一种主要方式,在不能物理访问服务器的时候是不能获取到这些密钥的。而在 Windows Azure 中,应用程序和数据的保存位置都是抽象的,按照这种方式保存的公开密钥可能非常难被找到和获取。

然而,文章并没有提及如何保护这些存储的密钥——这给用户留下了一个亟待解决的问题。为了保护这些加密密钥,Wiggs 建议了几种解决方案:

  • 经常地替换密钥
  • 让它们只对那些需要访问的人才公开
  • 绘出数据流图,明白地知道数据如何被使用、被哪些人使用,以便你能评估所面临的风险,并决定如何处理它们

即使 SQL Server 2008 中引入了一种称为透明数据加密( Transparent Data Encryption ,TDE)的技术——能实时地对发送给数据库的数据进行加密解密,而 SQL Azure 却还不支持数据库级别的加密功能。因此,据 Wiggs 所说,是没办法考虑使用这个特性的。不过 SQL Azure 具有一个不同的安全工具——防火墙:

它让你基于特定 IP 地址或范围,来准许和禁止来自各种来源的连接。SQL Azure 防火墙能通过 SQL Azure 门户进行管理,或通过 master 数据库所提供诸如 sp_set_firewall_rule 和 sp_delete_firewall_rule 的存储过程来直接管理。

最后的建议是关于保护敏感数据的,就是要避免使用不可变的数据类型,比如 String。在创建之时,object 这样的对象会保留在内存中很长时间,而那部分内存有可能被分配给其他用户的其他应用程序,它们可能会读取这些已分配的内存,来检查是否存在一些可以访问的值。Wiggs 建议把加密密钥或其他敏感数据保存在字节数组中,那样能够在不需要的时候就会被重写为零。

云计算提供了全新的计算机遇,不过由于新的数据窃取潜在方式也带来了新的安全问题。提供云计算平台的公司确实把数据安全放在了最高优先级,并力求提供最好的安全解决方案,不过用户要让他们的应用程序和数据更加安全,也需要投入更多的精力来减少他们的数据被窃取的可能性。

查看英文原文: Advice for Securing Data in Windows Azure

2010-01-31 09:551794
用户头像

发布了 254 篇内容, 共 67.5 次阅读, 收获喜欢 2 次。

关注

评论

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

除了技术,加密货币开发者更应关注可使用性

CECBC

加密货币 用户为本 可使用性 容错机制

脑洞:基于Enterprise Continuum证明DDD用于构建汽车的可行性

冯文辉

企业架构 领域驱动设计 DDD 架构演进

报志愿|想学区块链,要上什么大学?报什么专业?

CECBC

高考 报考志愿 区块链专业 高校学院

IO系列——UNIX五种IO模型

Java联盟

io 多路复用 异步IO

LeetCode001-两数之和-easy

书旅

算法 LeetCode 数据结构与算法

Vue 学习笔记-2

多选参数

vue.js Vue vuejs

推荐 16 款 IDEA 插件,让你的开发速度飞起来!

Bruce Duan

idea插件

CDN百科第七期 | 关于CDN的原理、术语和应用场景那些事

阿里云Edge Plus

CDN

主宰操作系统的经典算法

苹果看辽宁体育

后端 操作系统

最高法主张加强数字货币产权保护有法可依

CECBC

数字货币 法偿货币 中国人民银行 虚拟财产

JVM系列之:对象的锁状态和同步

程序那些事

JVM GC 同步

第7周作业

文古

Flink Weekly | 每周社区动态更新

Apache Flink

flink

架构师训练营第八周笔记

Melo

LeetCode题解:1. 两数之和,JavaScript,双循环暴力解法,详细注释

Lee Chen

大前端 LeetCode

腾讯面试题: 百度搜索为什么那么快?

小松漫步

面试

高能预警!Apache Flink Meetup · 上海站返场啦

Apache Flink

flink

关于中台,可能都是正确的废话

FinClip

中台 业务中台

IO系列——用户空间与内核空间

Java联盟

io 零拷贝 用户空间 内核空间 zero copy

阿里巴巴大规模应用 Flink 的实战经验:常见问题诊断思路

Apache Flink

flink

Vue 学习笔记-3

多选参数

vue.js Vue vuejs

性能优化

独孤魂

【区块链+通证经济】从量变到质变区块链发展的下一阶段是什么?

CECBC

数字货币 防篡改 通证

OAM 深入解读:如何基于 OAM Runtime 编写一个扩展 Trait?

钱王骞

云原生 k8s OAM

架构师训练营第八周学习总结

张明森

Demo 示例:如何原生的在 K8s 上运行 Flink?

Apache Flink

flink

胡继晔:发挥我国优势把依法治网落实到区块链管理中

CECBC

CECBC 胡继晔 依法治网 数字货币监管

如何识别刷屏文章中的伪科学

Lee Chen

大前端 随笔杂谈

2. 妈呀,Jackson原来是这样写JSON的

YourBatman

Java json Jackson Fastjson

英特尔中国研究院宋继强:芯片、系统、软件成为异构计算的三层级

最新动态

敏捷软件开发宣言及十二原则

BigYoung

敏捷开发

在Windows Azure中保证数据安全的几点建议_.NET_Abel Avram_InfoQ精选文章