写点什么

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

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

关注

评论

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

【LeetCode】叶子相似的树Java题解

Albert

算法 LeetCode 5月日更

414天前,我以为这是编程玄学...

why技术

Java JVM JMM

GitHub开源的文言文编程语言、程序生成中国山水画、格律诗编辑程序

不脱发的程序猿

GitHub 开源 编程语言 传统文化

苹果移动设备用什么管理比较好?有什么推荐?

懒得勤快

imazing 手机管理

10个 解放双手的 IDEA 插件,这些代码都不用写(第二弹)

程序员小富

Java 后端 IDEA

阿里大牛亲码 Spring AOP详解笔记全网开源,学透并发只需3天

飞飞JAva

spring aop

STM32F103C8/BT6最小系统原理图、PCB

不脱发的程序猿

嵌入式 单片机 STM32F103C8T6 MCU ST

优柔寡断的人,能成什么大事

Kareza

个人成长 5月日更 反思总结

秘笈分享! 24 小时无人自习室为什么这么火?

IoT云工坊

小程序 人工智能 物联网 无人自习室

百度大脑开放日厦门站-企业服务专场报名

百度大脑

百度大脑 开放日 企业服务

【智慧农业】从“看天吃饭”到“知天而作”,乡村振兴全靠 TA

IoT云工坊

人工智能 物联网 智慧农业 庭院灌溉 温室大棚

图算法系列之计算图中最短路径

Silently9527

数据结构和算法 图算法 广度优先搜素

干好开发者关系的十个职业发展秘诀

开发者关系

开发者关系 技术运营 DevRel

停止维护的CentOS6,怎么使用yum?

运维研习社

Linux 5月日更

python解释器+pycharm的安装

Geek_6370d5

#python学习之路

关于中台,聊聊我认为相对客观的三点认知

架构精进之路

中台 5月日更

【技术干货】文件系统中的“锁”

焱融科技

容器 分布式 云原生 高性能 文件存储

缓存系统稳定性 - 架构师峰会演讲实录

万俊峰Kevin

缓存 微服务 分布式缓存 Go 语言

想要做网页游戏怎么办 ?PixiJs 篇(三)

空城机

大前端 游戏 pixi 5月日更

STM32如何计算RTC时钟异步预分频和同步预分频

不脱发的程序猿

嵌入式 RTC stm32 单片机 ST

一线大厂最新总结Spring Security Oauth2.0认证授权全彩笔记

Java架构追梦

Java 阿里巴巴 架构 面试 spring security

青海大学智慧微能源数字孪生可视化系统

ThingJS数字孪生引擎

大前端 可视化 3D可视化 数字孪生

怎样使用过程自动化来实现过程的习惯性和持久性?

IPD产品研发管理

自动化 开发 CMMI

Python OOP-4

若尘

面向对象 oop Python编程 5月日更

读完你就知道对话式人工智能的数据采集如何解决啦!

澳鹏Appen

人工智能 自然语言处理 聊天机器人 nlp nlu

一文带你全面了解java对象的序列化和反序列化

华为云开发者联盟

Java 序列化 java对象 反序列化 Serializable接口

JavaScript设计模式之单例模式

程序员海军

JavaScript 大前端 设计模式 单例模式

阿里P7:每个码农都应该知道的MySQL主从复制方法,看这篇就够了

牛哄哄的java大师

Java MySQL 数据库

Java程序员面试必备——过得了面试官,过不了HR?我教你

比伯

Java 编程 架构 程序人生 计算机

IM扫码登录技术专题(三):通俗易懂,IM扫码登录功能详细原理一篇就够

JackJiang

即时通讯 IM 扫码

Nginx基础配置-资源缓存配置

梁龙先森

nginx 大前端 缓存;

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