admin 管理员组

文章数量: 1086019


2024年3月22日发(作者:verilog数据流描述)

Windows Crypt API接口进行数据加密解密

Windows Crypt API 是易于使用, 易于实现, 经彻底调试的, 可用于从多方面

增强Visual FoxPro 应用程序性能。Craig Kimpel 在这里提出一个使用session

密码的 Visual FoxPro Crypt API 类,并提供一对私有/公共密码对值以加密/解密

数据流或块, 并生成一个校验数字信号。

在聚焦Visual FoxPro Crypto 类和编写示例应用程序前, 需要访问基本的

Windows Crypt API。原始的Windows 95 在它的安装程序中没有提供加密。它是

作为Internet Explorer

的一部分安装的。Windows Crypt API (CAPI) 首先在IE 3.02 中引入。包含

在Internet Explorer

3.02 安装程序中的是Microsoft Base Cryptographic Provider v1.0

(MBCP)。Windows 98 和 2000 整合了IE, 这就意味着Microsoft Base

Cryptographic Provider v1.0 是作为操作系统的一部分安装的。Windows NT 4.0

Service Pack 2以前没有包含它。Windows NT 4.0 Service Pack

3 也安装了Microsoft Base Cryptographic Provider v1.0; 但是, 它没有在

注册表中安装数字信号, 意味着在未安装注册表补丁文件前也是不可用的。该补丁

更新注册表 MBCP signature 字段。

Crypt API 调用基本上靠一个叫Cryptographic Service Provider (CSP)的模

块来实现的。CSP 是一个与Windows Crypt API协定一致的 DLL。内置的Windows

Crypt API 是一个位于Windows 内核 DLL 中的封装器。Windows Crypt API 字段

可以从任何程序中调用, 且在最后处理时,它自己的调用将包含一个指向CSP 的指

针。Windows API 然后剥离该CSP 指针, 发送调用到预定的CSP 进行处理, 并返

回返回值到源程序。这是我所知道的仅次于操作系统内核的唯一低级接口。

CSP 需要驻留在操作系统的下一级的两个理由是:

1. Windows 内核DLL 必须周期性的校验CSP DLL 是一个可信的CSP DLL 而不

是一个设置在操作系统和虽然是实的但被更名了的CSP DLL之间的、假的封装器。

一个假的封装器会保存所有传递到它的口令, 在一个数据库中, 然后传递调到实

CSP来作为普通方式完成它们。在什么时候和如何CSP DLL被校验的细节因为显而

易见的理由而没有发布。

2. U.S. 商业部限制出口嵌入有公开和非常复杂的加密系统程序。用内核DLL

校验, 所有CSP 必须直接注册到Microsoft, 而且Microsoft在他们合并它到

Windows 操作系统前,让分销商说服U.S. 商业部,他们的系统是顺从的。于是 U.S.

商业部例外地允许复杂加密到U.S. 用于国际银行事务应用程序。法国有一个额外

的限制。法国不允许进口加密程序。在法语版的Windows 中, 设有任何 CSP。

现在我们知道了什么是CSP 和它是如何可靠的, 让我们看一下哪一个CSP 安

装在我们系统中。如上所述, 该信息保存在Windows 注册表数据库中。运行

并打开节点到

"MyComputerHKEY_LOCAL_MACHINEsoftwareMicrosoftCryptographyDefau

ltsProvider"

该注册密码包含了所有已安装的CSP 密码值。

CSP 注册表键值包括DLL 文件名,DLL 信号, 和CSP 类型. DLL 信号可以保存

在DLL内部。但是, Windows 2000 是唯一可以从DLL文件内部搜索信号的操作系

统。因此, 老版本的Windows 必须使用注册表信号字段。你可能会想注册表信号

字段是时髦的并且可以修改它而使得系统变得不安全。本文稍后, 我会解释数字信

号, 和为什么不会使得系统变得不安全。在我看来, 我相信即使签名在注册表中是

可见的和可修改的, 该安全系统仍然是非常坚固的。


本文标签: 注册表 加密 应用程序 信号 安装