现在的位置: 首页 > 综合 > 正文

Enterprise Library 加密应用程序块的场景和目标

2013年05月16日 ⁄ 综合 ⁄ 共 1628字 ⁄ 字号 评论关闭
加密应用程序块为解决在开发人员编写需要加密功能的应用程序时所面对的绝大多数常规任务而设计。这些任务已根据场景进行了组织。每个场景都给出了一个真实世界情况的示例,如认证用户,讨论了情况所需要的加密功能,并展示了完成任务的代码。

 

根据场景组织这些任务的目的是给代码一些上下文,来代替展示一组独立的方法,而没有它们最好用到哪儿的思想,场景为代码提供了设置,将它放到必须使用加密特性的应用程序的许多开发人员所熟悉的场景中去。

场景如下:

  • 配置加密

  • 加密数据

  • 解密数据

  • 获取数据的哈希

  • 检查哈希是否配置某些文本

关于每个场景的更多信息,请参见关键场景。

何时使用加密应用程序块

将在需要哈希和/或对称加密功能时使用加密应用程序块。可以与包含在应用程序中的加密提供程序一起使用这些功能,或者与自己定制的加密提供程序一起使用。如果数据仅需要加密,而不需要解密(例如,密码),就可以使用哈希。如果数据需要加密也需要解决(例如,传输敏感客户数据),就可以使用对称加密。

同步加密的先决条件是,发送数据的应用程序和接收数据的应用程序必须互相信任。通常,发送者和接受者是同一应用程序时这是正确的。这个限制经常阻止将应用程序块用于跨网络的加密数据。在使用加密应用程序块要考虑的另外二点是如何管理对称加密密钥和将使用哪种哈希或同步加密算法

管理和分发密钥

对称加密在加密和解密数据时使用同样的密钥,发送数据和接收数据的应用程序都必须拥有此密钥。任何其他可以访问此密钥的应用程序也可以加密数据并用密钥解密。这意味着攻击者如果可以访问加密密钥的话,就可以解密加密的数据。而且,攻击者可以删除或破坏密钥文件从而阻止你读取加密的数据。一个密钥文件是一个加密的文本文件,它包含有密钥。必须小心管理共享的密钥。考虑下列指南来保密钥:

  • 用访问控制列表(ACL)来保护密钥。只授予需要访问密钥文件的个体必要的权限。

  • 在计算机运行在低信任环境中时不要配置计算机允许远程调试。例如,允许匿名访问的 Web 服务器。

加密应用程序块将每个密钥保存在本地计算机中的单独文件中。在配置源中的
<securityCryptographyConfiguration>
节包含了每个密钥文件的绝对路径。例如,在使用默认配置源时,应用程序配置文件包含了每个密钥的绝对路径。为了保护密钥,应用程序块在将它写入文件之前用
DPAPI 对其进行了加密。如果还使用了熵,就必须要保护熵值的存储位置。(熵是使破译文件更加困难的随机数。)例如,可以使用 ACL
来设计包含熵值的文件的授权。如果应用程序需要使用另一种密钥保护方式,如特定的硬件或密钥容器,就必须要修改应用程序块源码来支持需求。关于应用程序块的修改的信息,请参见修改加密应用程序块。

应用程序块没有解决如何安全分发密钥的问题。在自己安全的计算机中安全的分发密钥是相对容易的。其他情况,如在多个合作者之间共享多个密钥,就需要安全的计划。一种方法是使用配置控制台在分发前将密钥导出到密钥文件中。密钥文件使用在导出时提供的密码加密。可以将密钥文件传送到需要密钥的计算机上,然后使用配置控制台导入加密的密钥文件。当导入加密的密钥文件时,配置控制台会提示要求输入用于加密文件的密码。

选择算法

如果加密算法被破解或者对暴力破解来说是脆弱的,它将无法提供安全。如果没有测试,定制的加密算法会非常脆弱。做为代替的,使用公开的、众所周知的经受过多年严酷攻击和严格检查的加密算法。

推荐的密码长度随着计算机能力的增长而改变。加密密钥的长度从 128 位到 256
位的范围里在现在而言是安全的。绝大多数现代算法使用的密钥至少是128位长的。

对于哈希算法,推荐使用 SHA256Managed 算法。此算法使用的哈希大小是 256 位。SHA1Managed 哈希算法是
160 位。此算法是可接受的,但不鼓励使用。不现推荐 MD4 和 MD5 算法。

对于对称算法,推荐 AES,也称为 Rijndael。此算法支持的长度为 128、192和 256 位。不再推荐 DES
算法。

抱歉!评论已关闭.