Password Algorithms: Internet Explorer 10 (Windows Vault)

Password Algorithms: Internet Explorer 10 (Windows Vault)

IE10中的密码算法(Windows Vault)

                                    原文链接:Password Algorithms: Internet Explorer 10 (Windows Vault)

一,介绍

微软在Windows7中增加了一个新特性,就是所谓的“Vault”,您可以通过在控制面板中的 凭据管理器 或者在命令行中使用vaultcmd来访问它们。(凭据管理器倒是找到了,至于使用vaultcmd,目前不明白如何使用)。它的工作原理非常类似于Linux里的Gnome Key Ring或者是MacOS上的Apple Keychain。

在IE7、8、9中,(自动登录的)密码和登录的url地址使用DPAPI保护之后再写入注册表中。IE10采用的新算法继续使用了DPAPI,但是凭据加密现在交由Vault Service处理。


二,Vault系统服务

如同大多数的Windows加密方案,Vault数据的保护一般发生在本地系统服务中。vaultsvc.dll包含了这个服务的代码,并且在系统引导启动的时候会被本地安全账户子系统(lsass.exe)加载。

有18到24个函数(取决于操作系统)对本地RPC(远程过程调用协议)端点是可见的。在Windows7,它们附加在KeyRing Credential UI application (VaultSysUI.exe)中,如果需要Vault所有者的信息话,系统会启动Vault Service以便支持它们。

 

例如,你有对Vault添加密码的能力。


当应用程序试图访问密码元素(应该指使用DPAPI加密的数据),你也可以配置vault去从用户(加密数据的那个人)那里获取权限。


上述两种情况,VaultSysUI会显示一个窗口给用户,然后将用户的响应写到Vault Service可以访问的内存中。

 

虽然这两个功能很有用,并且用户的的安全证书进一步得到了保护,但是在Windows8中,它们还是被遗弃了。

 

 

三,Vault客户端库访问

当访问凭据管理器的时候,浏览器会加载Credui.dll 和 Vault.dll。根据当前用户的会话(指与浏览器之间),一个远程工程调用(RPC)会被激活,它通过调用vaultcli.dll导出的API(来实现对敏感数据的访问,从而实现IE的自动完成表单)


你也可以使用vaultcmd.exe去添加或者删除凭证,但是在IE7、8中它不会显示密码。



在Windows8中,


无论出于什么原因,在Windows7与8之间,对于Vault功能,有一个非常显著的改动。下面的列表展示了那些功能被更改。

  • Creation / Deletion of vaults.
  • Loading / Unloading external vault files.
  • Locking / Unlocking vaults with additional password protection.

即:

  • 创建/删除 vaults.
  •  加载/卸载vault外部库文件
  • 锁定/解锁vault库提供额外的密码保护

 

四,保护方法

Windows 7有2种方法可用,但Windows 8的只有种1。DPAPI(数据保护API)默认情况下会使用,但在Windows7中,您也可以使用一个密码来保护数据。

用于保护密码算法为RSA PBKDF2。

 


五,恢复网页证书

至于,Windows7与8之间对于Vault服务有一些改变,在Windows8中,VaultGetItem需要附加参数,并且VAULT_ITEM结构有一个额外的属性。

下面是VAULT_ITEM结构在Windows7中的定义

typedef struct _VAULT_ITEM_W7 {

  GUID SchemaId;

  LPCWSTR pszCredentialFriendlyName;

  PVAULT_ITEM_ELEMENTpResourceElement;

  PVAULT_ITEM_ELEMENTpIdentityElement;

  PVAULT_ITEM_ELEMENTpAuthenticatorElement;

  FILETIME LastModified;

  DWORD dwFlags;

  DWORD dwPropertiesCount;

  PVAULT_ITEM_ELEMENTpPropertyElements;

} VAULT_ITEM_W7, *PVAULT_ITEM_W7;

对于 Windows 8 . . .

typedef struct _VAULT_ITEM_W8 {

  GUID SchemaId;

  LPCWSTR pszCredentialFriendlyName;

  PVAULT_ITEM_ELEMENTpResourceElement;

  PVAULT_ITEM_ELEMENTpIdentityElement;

  PVAULT_ITEM_ELEMENTpAuthenticatorElement;

  PVAULT_ITEM_ELEMENT pPackageSid;

  FILETIME LastModified;

  DWORD dwFlags;

  DWORD dwPropertiesCount;

  PVAULT_ITEM_ELEMENTpPropertyElements;

} VAULT_ITEM_W8, *PVAULT_ITEM_W8;

 

 

我(指原文作者)已经写了使用Vault API来恢复密码的IE10的工具,这里的输出示例在Windows7机器运行的

如果你想了解更多关于这个程序,你可以到这里下载代码。点击下载源代码


由于Windows Vault的服务仍然没有正式文档说明,我不能保证所提供信息的准确性。IE10最新的对网络凭据证书的保护确实比以前的算法强度弱(IE7、8、9使用的),但好处是,你可以在需要的时候可靠备份或者恢复你的密码。

 

下面是一个API列表,Windows7与8之间对vault的支持如下

Credential Vault Client Library Function

Windows 7

Windows 8

VaultCreateItemType

Yes

Yes

VaultDeleteItemType

Yes

Yes

VaultEnumerateItemTypes

Yes

Yes

VaultAddItem

Yes

Yes

VaultFindItems

Yes

Yes

VaultEnumerateItems

Yes

Yes

VaultGetItem

Yes

Yes

VaultRemoveItem

Yes

Yes

VaultGetItemType

Yes

Yes

VaultOpenVault

Yes

Yes

VaultCloseVault

Yes

Yes

VaultGetInformation

Yes

Yes

VaultEnumerateVaults

Yes

Yes

VaultSetInformation

Yes

No

VaultCreateVault

Yes

No

VaultCopyVault

Yes

No

VaultDeleteVault

Yes

No

VaultLoadVaults

Yes

No

VaultUnloadVaults

Yes

No

VaultCopyItem

Yes

No

VaultMoveItem

Yes

No

VaultLockVault

Yes

No

VaultUnlockVault

Yes

No

VaultConfirmVaultAccess

Yes

No

VaultEnumerateSettingUnits

No

Yes

VaultGetSettingUnit

No

Yes

VaultApplySettingUnit

No

Yes

VaultRemoveSettingUnit

No

Yes

VaultTriggerSync

No

Yes

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值