[发明专利]一种DPAPI加密数据的解密方法和系统有效
申请号: | 201310020303.5 | 申请日: | 2013-01-21 |
公开(公告)号: | CN103116730A | 公开(公告)日: | 2013-05-22 |
发明(设计)人: | 陈江勇;钱镜洁;林艺滨 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;H04L9/06 |
代理公司: | 北京恒都律师事务所 11395 | 代理人: | 邸建凯 |
地址: | 361008 福建省厦门*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 dpapi 加密 数据 解密 方法 系统 | ||
技术领域
本发明涉及一种数据解密方法和系统,特别地,涉及一种DPAPI加密数据的解密方法和解密系统。
背景技术
微软从Windows 2000开始便引入了一种简单易用的应用程序数据保护接口(Data Protect Application-Programming Interface,DPAPI),用来为用户程序和操作系统提供系统级别的数据保护。在Windows系统中的无线网络密码、上网密码、加密文件系统的私钥等各种私密数据全部采用DPAPI加密存储,然而DPAPI的加密机制极为复杂,微软也从未公开任何关于DPAPI的技术细节,因此,对于理解DPAPI的内部实现机制是非常困难的。
目前,国内还没有人研究DPAPI的离线解密方法,国外关于DPAPI的离线解密方法的相关技术文档和专利也极少。国内的取证软件对于DPAPI加密数据采用的取证方法是一种称之为“动态取证”的方法,即在获取到需要取证的目标数据源后,需运行安装在目标源设备上的操作系统,并登录对应的账户,然后在该账户上安装对应的取证软件,取证软件内部再通过调用CryptUnProtectData函数来解密加密的数据,最后在界面上进行展示。这种取证方法直接依赖于目标源的操作系统,在运行操作系统过程中很可能会污染目标源的数据,无法达到对目标数据源只读的要求。国外虽有部分软件能实现DPAPI的离线解密,但是都是直接调用加密应用程序编程接口(CryptoAPI)来实现的,并未对CryptoAPI接口的内部算法作分析和实现,由于CryptoAPI直接依赖于Windows操作系统而且不同的操作系统支持的安全函数不同,导致这些软件无法实现跨平台的要求,而且在某些版本的Windows系统上甚至还无法正常解密。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够无需依赖数据源所在设备上的操作系统,也无需调用CryptoAPI函数以实现对DPAPI加密数据的解密。
发明内容
本发明所要解决的技术问题是提供一种对DPAPI加密数据的解密方法和系统,可实现对DPAPI加密数据的离线解密,无需依赖目标数据源所在设备上的操作系统,也无需依赖CryptoAPI接口,进而实现对目标数据源的只读操作且不受操作系统的限制而满足跨平台的要求。
为了解决上述问题,本发明一方面提供了一种DPAPI加密数据的解密方法,包括如下步骤:
对数据源所在设备进行加载;
在数据源中识别出Windows系统所在的系统分区,读取所述系统分区内的文件;
获取系统分区内需要解密的文件和所有用户的主密钥文件;
在所述需要解密的文件中获取所有DPAPI加密块;
对所有DPAPI加密块进行解析,以获取所有DPAPI加密块各自的第一解密关键信息,其中,所述第一解密关键信息包括加密密钥唯一标识、第一加密算法标识、第一安全散列算法标识和加密散列输出数据;
根据所述加密密钥唯一标识获取每个DPAPI加密块的主密钥文件;
对所述每个DPAPI加密块的主密钥文件进行解析,以获取第二解密关键信息,其中,所述第二解密关键信息包括第二干扰值、第二基于口令的密钥派生函数迭代次数、第二安全散列算法标识、第二加密算法标识和主密钥文件密文;
根据本次登录密码、系统熵参数和所述第一、第二解密关键信息对DPAPI加密块进行解密。
优选的,在所述对数据源所在设备进行加载之前还包括:判断所述数据源的类型。其中,所述数据源的类型包括存储介质、系统分区和单个文件。
优选的,所述获取系统分区内所有用户的主密钥文件的步骤具体包括:
获取系统分区的Documents目录或Users目录;
读取所述Documents目录或Users目录中的所有用户名目录,以获取所有用户名目录中的主密钥文件。
优选的,所述在需要解密的文件中获取所有DPAPI加密块的步骤,具体为:
判断需要解密的文件中是否包括DPAPI加密块的头部数据信息;
若包括,则根据所述头部数据信息获取DPAPI加密块。
优选的,对所述DPAPI加密块进行解密的步骤,具体包括:
计算本次登录密码的安全散列值;
根据所述安全散列值和第二解密关键信息对所述主密钥文件密文进行解密,以获取主密钥明文;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310020303.5/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置