请较为详细地描述rsa加密算法过程的全过程

找不到答案?
请较为详细地描述rsa加密算法的全过程
请较为详细地描述rsa加密算法的全过程
按投票排序
按时间排序
<dd id="vote_num_
RSA算法非常简单,概述如下:
找两素数p和q
取t=(p-1)*(q-1)
取任何一个数e,要求满足e&t并且e与t互素(就是最大公因数为1)
取d*e%t==1
这样最终得到三个数: n d e
设消息为数M (M &n)
设c=(M**d)%n就得到了加密后的消息c
设m=(c**e)%n则 m == M,从而完成对c的解密。
注:**表示次方,上面两式中的d和e可以互换。
在对称加密中:
n d两个数构成公钥,可以告诉别人;
n e两个数构成私钥,e自己保留,不让任何人知道。
给别人发送的信息使用e加密,只要别人能用d解开就证明信息是由你发送的,构成了签名机制。
别人给你发送信息时使用d加密,这样只有拥有e的你能够对其解密。
rsa的安全性在于对于一个大数n,没有有效的方法能够将其分解
从而在已知n d的情况下无法获得e;同样在已知n e的情况下无法
rsa简洁幽雅,但计算速度比较慢,通常加密中并不是直接使用rsa 来对所有的信息进行加密,
最常见的情况是随机产生一个对称加密的密钥,然后使用对称加密算法对信息加密,之后用
RSA对刚才的加密密钥进行加密。
最后需要说明的是,当前小于1024位的N已经被证明是不安全的
自己使用中不要使用小于1024位的RSA,最好使用2048位的。
登录后可回答问题,请
服务底层使用经国家密码管理局检测认证的硬件密码机,通过虚拟化技术,帮助用户满足数据安全方面的监管合规要求,保护云...
用于实时预测用户对物品偏好,支持企业定制推荐算法,支持A/B Test效果对比
大数据开发套件(Data IDE),提供可视化开发界面、离线任务调度运维、快速数据集成、多人协同工作等功能,为您...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...DRIVER PROTECTION METHOD AND SYSTEM
WIPO Patent Application WO/
Embodiments of the present invention relate to a driver protection method and system. The driver protection method comprises the following steps: encrypting a program file, and sending an input/output request package and the en receiving the input/output request package and the encrypted program file, decrypting the encrypted program file, and verifying the de and if the verification is passed, otherwise, returning no handle. In the embodiments of the present invention, a program file of an application layer is encrypted, the encrypted program file is sent at the time of sending an input/output request package, and the driver layer performs decryption verification on the encrypted program file. Only after the verification is passed, can a handle be returned to the application layer, and the application layer may access the driver layer acc if the verification is not passed, the driver layer refuses the access of the application layer, thereby ensuring that a legal application layer communicates with the driver layer, preventing a suspicious program from accessing the driver layer, and improving the security of the driver layer.
Inventors:
WANG, Yu (4/F. East 2 Block. SEG Park, Zhenxing Rd. Futian Distric, Shenzhen Guangdong 4, 518044, CN)
王宇 (中国广东省深圳市福田区振兴路赛格科技园2栋东4楼, Guangdong 4, 518044, CN)
Application Number:
Publication Date:
01/31/2013
Filing Date:
07/02/2012
Export Citation:
TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED (4/F. East 2 Block. SEG Park, Zhenxing Rd. Futian Distric, Shenzhen Guangdong 4, 518044, CN)
腾讯科技(深圳)有限公司 (中国广东省深圳市福田区振兴路赛格科技园2栋东4楼, Guangdong 4, 518044, CN)
WANG, Yu (4/F. East 2 Block. SEG Park, Zhenxing Rd. Futian Distric, Shenzhen Guangdong 4, 518044, CN)
International Classes:
View Patent Images:
&&&&&&PDF help
Foreign References:
CNACN1591329A7577985
Attorney, Agent or Firm:
DEQI INTELLECTUAL PROPERTY LAW CORPORATION (7/F Xueyuan International Tower, No. 1 Zhichun Road Haidian District, Beijing 3, 100083, CN)
权利要求书
1、 一种驱动保护方法, 包括以下步骤:
对程序文件进行加密,并发送输入输出请求包及加密后的程序文件; 接收所述输入输出请求包及加密后的程序文件, 并对所述加密后的 程序文件进行解密, 以及对解密后的程序文件进行验证, 若验证通过, 则返回句柄, 否则不返回句柄。
2、根据权利要求 1所述的驱动保护方法, 其特征在于, 所述发送输 入输出请求包及加密后的程序文件的步骤具体为:
通过进程发送输入输出请求包, 其中该进程的身份标识( PID ) 与 所述加密后程序文件的路径具有对应关系;
所述接收输入输出请求包及加密后的程序文件的步骤具体为: 通过该进程接收所述输入输出请求包, 并且根据该进程的 PID解析 出相对应的加密后程序文件的路径;
根据所述加密后程序文件的路径, 获取所述加密后的程序文件。 3、根据权利要求 1所述的驱动保护方法, 其特征在于, 所述发送输 入输出请求包及加密后的程序文件的步骤具体为:
通过进程发送输入输出请求包, 其中在该进程的进程结构体 ( EPROCESS ) 中存储有加密后程序文件的路径;
所述接收输入输出请求包及加密后的程序文件的步骤具体为: 通过该进程接收所述输入输出请求包, 并且从该进程的 EPROCESS 中解析出加密后程序文件的路径;
根据所述加密后程序文件的路径, 获取所述加密后的程序文件。 4、根据权利要求 1所述的驱动保护方法, 其特征在于, 所述对程序 文件进行加密的步骤具体为:
读取程序文件; 计算所述程序文件的信息摘要值;
对所述信息摘要值进行非对称加密;
将非对称加密的信息摘要值写入到所述程序文件尾部。
5、根据权利要求 4所述的驱动保护方法, 其特征在于, 对所述加密 后的程序文件进行解密, 对解密后的程序文件进行验证, 若验证通过, 则返回句柄, 否则不返回句柄的步骤具体为:
读取非对称加密后的信息摘要值, 对其进行解密得到信息摘要值; 计算所述程序文件的信息摘要值, 将计算得到的信息摘要值与解密 得到的信息摘要值进行比较, 若两者相同, 则返回句柄, 否则不返回句 柄。
6、根据权利要求 5所述的驱动保护方法, 其特征在于, 所述非对称 加密或解密采用 RSA算法。
7、根据权利要求 1所述的驱动保护方法, 其特征在于, 对所述加密 后的程序文件进行解密, 以及对解密后的程序文件进行验证的步骤具体 为: 在创建类型的输入输出请求包中对加密后的程序文件进行解密及对 解密后的程序文件进行验证。
8、 一种驱动保护系统, 其特征在于, 包括:
应用层模块, 包括加密子模块和第一通信子模块, 所述加密子模块 用于对程序文件进行加密, 所述第一通信子模块用于发送输入输出请求 包及加密后的程序文件;
驱动层模块, 包括解密验证子模块和第二通信子模块, 所述第二通 信子模块用于接收所述输入输出请求包及加密后的程序文件, 所述解密 验证子模块用于对所述加密后的程序文件进行解密, 以及对解密后的程 序文件进行验证, 若验证通过, 则所述第二通信子模块返回句柄到所述 第一通信子模块, 若验证不通过, 则所述第二通信子模块不返回句柄到 所述第一通信子模块。
9、 根据权利要求 8所述的驱动保护系统, 其特征在于,
所述第一通信子模块用于通过进程发送输入输出请求包, 其中该进 程的身份标识(PID )与所述加密后程序文件的路径具有对应关系; 所述第二通信子模块用于通过该进程接收所述输入输出请求包, 并 且根据该进程的 PID解析出相对应的加密后程序文件的路径; 根据所述 加密后程序文件的路径, 获取所述加密后的程序文件。
10、 根据权利要求 8所述的驱动保护系统, 其特征在于, 所述第一通信子模块用于通过进程发送输入输出请求包, 其中在该 进程的进程结构体(EPROCESS ) 中存储有加密后程序文件的路径; 所述第二通信子模块用于通过该进程接收所述输入输出请求包, 并 且从该进程的 EPROCESS中解析出加密后程序文件的路径;根据所述加 密后程序文件的路径, 获取所述加密后的程序文件。
11、 根据权利要求 8所述的驱动保护系统, 其特征在于, 所述加密 子模块还用于读取程序文件, 计算所述程序文件的信息摘要值, 并对所 述信息摘要值进行非对称加密, 以及将非对称加密的信息摘要值写入到 所述程序文件尾部。
12、根据权利要求 11所述的驱动保护系统, 其特征在于, 所述解密 验证子模块还用于读取非对称加密后的信息摘要值, 对其进行解密得到 信息摘要值, 计算所述程序文件的信息摘要值, 将计算得到的信息摘要 值与解密得到的信息摘要值进行比较, 当两者相同时, 所述第二通信子 模块返回句柄到所述第一通信子模块, 当两者不同时, 所述第二通信子 模块不返回句柄到所述第一通信子模块。
13、根据权利要求 12所述的驱动保护系统, 其特征在于, 所述非对 称加密或解密采用 RSA算法。 14、根据权利要求 12所述的驱动保护系统, 其特征在于, 所述解密 验证子模块还用于在创建类型的输入输出请求包中对加密后的程序文 件进行解密及对解密后的程序文件进行验证。
Description:
驱动保护方法及系统
本发明涉及驱动防护领域, 特别涉及一种驱动保护方法及系统。 发明背景
输入输出请求包( IRP, I/O Request Package )为 Windows内核中的 一种数据结构,它与输入输出相关。上层应用程序与底层驱动层通信时, 应用程序会发送 I/O请求,操作系统将 I/O请求转化为相应的 IRP数据, 不同类型的 IRP数据会根据类型传递到不同的派遣函数中。
IRP具有两个基本属性, 一个是主功能函数(MajorFunction ), 用于 记录 IRP的主要类型, 将 IRP的主要类型与派遣函数相关联, 另一个是 子功能函数(MinorFunction ), 用于记录 IRP 子类型。 操作系统根据 MajorFunction将 IRP派遣到不同的派遣函数中,在派遣函数中还可以继 续判断这个 IRP属于哪种 MinorFunction。 文件 I/O的相关函数, 比如: 创建文件内核对象( CreateFile )、读文件( ReadFile )、写文件( WriteFile ) 等, 会创建相对应的创建类型的输入输出请求包( IRP_MJ_CREATE )、 读类型的输入输出请求包( IRP_MJ_READ )、 写类型的输入输出请求包 ( IRP_MJ_WRITE的 IRP )等 IRP。 这些 IRP会被传递到驱动层的派遣 函数中。 其中, 函数 CreateFile用于创建或打开对象, 并返回一个可用 来访问该对象的句柄; 函数 ReadFile用于从文件指针指向的位置开始将 数据读出到一个文件中, 且支持同步和异步; 函数 WriteFile用于将数据 写入一个文件。
在操作系统中, 应用程序想要打开驱动层, 首先需要发送 IRP_MJ_CREATE给驱动层, 驱动层经过相应的派遣函数处理后返回句 柄。 其中, 句柄为一个整数值, 用于标志应用层中应用程序的不同对象 和同类对象中的不同的实例, 如一个窗口、 钮、 图标、 滚动条、 输出设 备、 控件或者文件等, 应用层能够通过句柄访问相应的驱动层。
然而, 若有第三方程序通过工具查看到句柄, 然后通过该句柄打开 驱动层, 如此, 第三方程序就可以向驱动层发送设备驱动层中对 I/O通 道管理的函数(IOCTL ), 达到直接控制驱动层的目的。 若该第三方程序 是恶意软件, 其可在用户电脑上肆意破坏。 发明内容
本发明实施方式提供一种能提高驱动层安全性的驱动保护方法。 一种驱动保护方法, 包括以下步骤:
对程序文件进行加密,并发送输入输出请求包及加密后的程序文件; 接收所述输入输出请求包及加密后的程序文件, 并对所述加密后的 程序文件进行解密, 以及对解密后的程序文件进行验证, 若验证通过, 则返回句柄, 否则不返回句柄。
本发明实施方式还提供一种能提高驱动层安全性的驱动保护系统。 一种驱动保护系统, 包括:
应用层模块, 包括加密子模块和第一通信子模块, 所述加密子模块 用于对程序文件进行加密, 所述第一通信子模块用于发送输入输出请求 包及加密后的程序文件;
驱动层模块, 包括解密验证子模块和第二通信子模块, 所述第二通 信子模块用于接收所述输入输出请求包及加密后的程序文件, 所述解密 验证子模块用于对所述加密后的程序文件进行解密, 以及对解密后的程 序文件进行验证, 若验证通过, 则所述第二通信子模块返回句柄到所述 第一通信子模块, 若验证不通过, 则所述第二通信子模块不返回句柄到 所述第一通信子模块。
上述驱动保护方法及系统, 采用对应用层的程序文件进行加密, 并 发送输入输出请求包时发送加密后的程序文件, 驱动层对加密后的程序 文件进行解密验证, 验证通过后, 才返回句柄给应用层, 应用层根据该 句柄可访问驱动层, 若验证不通过, 则驱动层将拒绝应用层的访问, 保 证了合法的应用层与驱动层进行通信, 防止可疑程序访问驱动层, 提高 了驱动层的安全性。 附图简要说明
图 1为一个实施方式中驱动保护方法的流程图;
图 2为一个实施方式中对程序文件进行加密的具体流程图; 图 3为一个实施方式中对加密后的程序文件进行解密及验证的具体 流程图;
图 4为一个实施方式中驱动保护系统的内部结构示意图。 实施本发明的方式
下面结合具体的实施方式及附图对技术方案进行详细的描述。
如图 1所示, 在一个实施方式中, 一种驱动保护方法, 包括以下步 骤:
步骤 S110, 对程序文件进行加密, 并发送输入输出请求包及加密后 的程序文件。
对应用层的程序文件进行非对称加密, 即对应用程序文件进行非对 称加密。 该实施方式中, 该非对称加密采用 RSA算法。 其中, 非对称加 密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为 "公 钥" 和 "私钥", 它们两个必需配对使用, 否则不能打开加密文件。 "公 钥" 是指可以对外公布的, "私钥" 则不能, 只能由持有人一个人知道。 RSA公钥加密算法就是一个非对称加密算法,它是 1977年由 Ron Rivest、 Adi Shamirh和 LenAdleman开发的, 用于数据加密, 同时也能用于数字 签名的算法, 易于理解和操作, 应用十分广泛, 且 RSA算法加密安全性 高, 不易被破解。
应用层访问驱动层时需发送 I/O请求, 该 I/O请求被转化为输入输 出请求包(IRP ), 同时发送加密后的程序文件, 以便驱动层对该应用层 身份进行验证。
在一个实施方式中, 发送输入输出请求包及加密后的程序文件的步 骤具体为:通过进程发送输入输出请求包,其中该进程的身份标识(PID ) 与加密后程序文件的路径具有对应关系。
在一个实施方式中, 发送输入输出请求包及加密后的程序文件的步 骤具体为: 通过进程发送输入输出请求包, 其中在该进程的进程结构体 ( EPROCESS ) 中存储有加密后程序文件的路径。
应用层通过 I/O相关函数 CreateFile发送访问请求,会创建相对应的 IRP_MJ_CREATE的 IRP, 该 IRP_MJ_CREATE派遣到驱动层中的派遣 函数中。
步骤 S120, 接收该输入输出请求包及加密后的程序文件, 并对该加 密后的程序文件进行解密, 以及对解密后的程序文件进行验证。
在一个实施方式中, 当步骤 S110中通过进程发送输入输出请求包, 而且其中该进程的 PID与加密后程序文件的路径具有对应关系时:
相应地,步骤 S120中接收输入输出请求包及加密后的程序文件具体 为: 通过进程接收所述输入输出请求包, 并且根据该进程的 PID解析出 相对应的加密后程序文件的路径; 根据加密后程序文件的路径, 获取所 述加密后的程序文件。 在一个实施方式中, 当步骤 S110中通过进程发送输入输出请求包, 其中在该进程的进程结构体(EPROCESS ) 中存储有加密后程序文件的 路径时:
相应地, 步骤 S120接收输入输出请求包及加密后的程序文件具体 为: 通过该进程接收所述输入输出请求包, 并且从该进程的 EPROCESS 中解析出加密后程序文件的路径; 根据所述加密后程序文件的路径, 获 取所述加密后的程序文件。
驱动层接收到 IRP及加密后的应用层的程序文件后, 对加密后的应 用层的程序文件进行解密。通过 RSA算法对加密的应用层的程序文件进 行解密。 然后对解密后的应用层的程序文件进行验证, 若验证通过, 则 返回驱动层的句柄到应用层, 应用层根据该句柄可访问驱动层, 若验证 不通过, 则驱动层将拒绝应用层进行访问。
步骤 S130, 判断验证是否通过, 若是, 则执行步骤 S140, 否则执 行步骤 S150。
步骤 S 140, 返回句柄。 返回驱动层的句柄。
步骤 S150, 不返回句柄。
在一个实施方式中, 如图 2所示, 对程序文件进行加密的步骤具体 为:
步骤 S210, 读取程序文件。
首先读取出应用层的程序文件, 该应用层的程序文件为可移植可执 行体 ( PE, Portable Execute )格式时, 读取除 PE文件 DOS头、 PE头 和区块表之外的部分内容。
步骤 S220, 计算该程序文件的信息摘要值。
若应用层的程序文件为 PE格式,则计算读取的除 PE文件 DOS头、 PE 头和区块表之外的部分内容的信息摘要值。 该信息摘要值一般采用 MD5值。
步骤 S230, 对信息摘要值进行非对称加密。
对计算得到的信息摘要值进行非对称加密, 如通过 RSA算法加密。 步骤 S240,将非对称加密的信息摘要值写入到该应用层的程序文件 尾部。
将加密后的信息摘要值写入到应用层的程序文件尾部, 以便和应用 层的程序文件一起发送。
在一个实施方式中, 如图 3所示, 对加密后的程序文件进行解密, 对解密后的程序文件进行验证, 若验证通过, 则返回句柄, 否则结束的 步骤具体为:
步骤 S310, 读取非对称加密后的信息摘要值, 对其进行解密得到信 息摘要值。
获取应用层的程序文件, 读取程序文件尾部, 从而读取出非对称加 密后的信息摘要值, 采用 RSA算法进行解密, 得到信息摘要值。
步骤 S320, 计算程序文件的信息摘要值, 将计算得到的信息摘要值 与解密得到的信息摘要值进行比较。
驱动层计算应用层的程序文件的信息摘要值, 若应用层的程序文件 为 PE文件, PE文件包括 DOS头、 PE文件标志位、 映像文件和可选映 像头, PE文件标志位为 PE头, 映像文件为 PE文件的基本信息, 可选 映像头为区块表, 计算除了 PE文件 DOS头、 PE头和区块表之外的部 分内容的信息摘要值, 将计算得到的信息摘要值与解密得到的信息摘要 值进行比较, 若两者相同, 则返回驱动层的句柄到应用层, 应用层根据 该句柄可访问驱动层, 若两者不同, 则驱动层将拒绝应用层进行访问。
步骤 S330,判断两个信息摘要值是否相同,若是,则执行步骤 S340, 否则执行步骤 S350。 步骤 S340, 返回句柄。
步骤 S350, 不返回句柄。
如图 4所示, 在一个实施方式中, 一种驱动保护系统, 包括应用层 模块 410和驱动层模块 420。
应用层模块 410为应用程序。 应用层模块 410包括相连的加密子模 块 411和第一通信子模块 413。 加密子模块 411用于对程序文件进行加 密, 第一通信子模块 413用于发送输入输出请求包及加密后的程序文件 到驱动层模块 420。
加密子模块 411对应用层的程序文件进行非对称加密, 该实施方式 中, 该非对称加密可以采用 RSA算法。
应用层模块 410访问驱动层模块 420时需通过第一通信子模块 413 发送 I/O请求, 该 I/O请求被转化为输入输出请求包( IRP ), 同时第一 通信子模块 413发送加密后的程序文件, 以便驱动层模块 420对该应用 层模块 410身份进行验证。
在一个实施方式中, 应用层模块 410通过 I/O相关函数 CreateFile 发送访问请求, 会创建相对应的创建类型的输入输出请求包 ( IRP_MJ_CREATE ) 的 IRP, 该 IRP_MJ_CREATE派遣到驱动层模块 420中的派遣函数中。
驱动层模块 420为驱动程序。 驱动层模块 420包括相连的第二通信 子模块 421和解密验证子模块 423。
第二通信子模块 421用于接收该输入输出请求包及加密后的程序文 件。
在一个实施方式中, 第一通信子模块 413用于通过进程发送输入输 出请求包, 其中该进程的身份标识(PID ) 与所述加密后程序文件的路 径具有对应关系。 相应地, 第二通信子模块 421用于通过该进程接收所 述输入输出请求包, 并且根据该进程的 PID解析出相对应的加密后程序 文件的路径; 根据所述加密后程序文件的路径, 获取所述加密后的程序 文件。
在一个实施方式中, 第一通信子模块 413用于通过进程发送输入输 出请求包, 其中在该进程的进程结构体(EPROCESS ) 中存储有加密后 程序文件的路径。 相应地, 第二通信子模块 421用于通过该进程接收所 述输入输出请求包,并且从该进程的 EPROCESS中解析出加密后程序文 件的路径; 根据所述加密后程序文件的路径, 获取所述加密后的程序文 件。
解密验证子模块 423用于对该加密后的程序文件进行解密, 以及对 解密后的程序文件进行验证, 当验证通过时, 第二通信子模块 421返回 句柄到应用层模块 410的第一通信子模块 413, 当验证不通过时, 第二 通信子模块 421不返回句柄到第一通信子模块 413。
驱动层模块 420的第二通信子模块 421接收到 IRP及加密后的应用 层的程序文件后, 发送给解密验证子模块 423, 解密验证子模块 423对 加密后的应用层的程序文件进行解密,具体可以通过 RS A算法对加密的 应用层的程序文件进行解密。 然后, 解密验证子模块 423对解密后的应 用层的程序文件进行验证, 若验证通过, 则返回句柄到应用层模块 410, 应用层模块 410根据该句柄可访问驱动层模块 420, 若验证不通过, 则 驱动层模块 420将拒绝应用层模块 410进行访问。
优选的实施方式中, 加密子模块 411还用于读取程序文件, 计算程 序文件的信息摘要值, 并对该信息摘要值进行非对称加密, 以及将非对 称加密的信息摘要值写入到该程序文件尾部。
加密子模块 411首先读取出应用层的程序文件, 该应用层的程序文 件为可移植可执行体(PE, Portable Execute )文件, 其中, PE文件包括 DOS头、 PE文件标志位、 映像文件和可选映像头, PE文件标志位为 PE 头, 映像文件为 PE文件的基本信息, 可选映像头为区块表。 加密子模 块 411读取除 PE文件 DOS头、 PE头和区块表之外的部分内容, 再计 算读取的除 PE文件 DOS头、 PE头和区块表之外的部分内容的信息摘 要值, 再对计算得到的信息摘要值进行非对称加密, 最后将加密后的信 息摘要值写入到应用层的程序文件尾部。 其中, 非对称加密可采用 RSA 算法加密。
优选的实施方式中, 解密验证子模块 423还用于读取非对称加密后 的信息摘要值, 对其进行解密得到信息摘要值, 计算该程序文件的信息 摘要值, 将计算得到的信息摘要值与解密得到的信息摘要值进行比较, 当两者相同时, 驱动层模块 420的第二通信子模块 421返回句柄到应用 层模块 410的第一通信子模块 413, 当两者不同时, 驱动层模块 420的 第二通信子模块 421 不返回句柄到应用层模块 410 的第一通信子模块 413。
解密验证子模块 423还用于获取应用层的程序文件, 读取程序文件 尾部,从而读取出非对称加密后的信息摘要值,采用 RSA算法进行解密, 得到信息摘要值。 解密验证子模块 423计算应用层的程序文件的信息摘 要值, 若应用层的程序文件为 PE格式, 则计算除了除 PE文件 DOS头、 PE头和区块表之外的部分内容的信息摘要值,将计算得到的信息摘要值 与解密得到的信息摘要值进行比较, 若两者相同, 则通过第二通信子模 块 421返回句柄到应用层模块 410的第一通信子模块 413, 应用层模块 410 ^据该句柄可访问驱动层模块 420, 若两者不同时, 则驱动层模块 420将拒绝应用层模块 410进行访问。
解密验证子模块 423 还用于在创建类型的输入输出请求包 ( IRP_MJ_CREATE ) 中对加密后的程序文件进行解密及对解密后的程 序文件进行验证。 验证通过后, 应用层模块 410通过句柄访问驱动层模 块 420, 可通过 I/O相关函数读文件(ReadFile )、 写文件 (WriteFile ) 对应的创建读类型的输入输出请求包( IRP_MJ_READ )和写类型的输 入输出请求包 ( IRP_MJ_WRITE ) 的 IRP , 并将 IRP_MJ_READ 和 IRP_MJ_WRITE的 IRP派遣到驱动层模块 420的派遣函数中,可对驱动 层进行读写操作。
上述驱动保护方法及系统, 采用对应用层的程序文件进行加密, 并 发送输入输出请求包时发送加密后的程序文件, 驱动层对加密后的程序 文件进行解密验证, 验证通过后, 才返回句柄给应用层, 应用层根据该 句柄可访问驱动层, 若验证不通过, 则驱动层将拒绝应用层的访问, 保 证了合法的应用层与驱动层进行通信, 防止可疑程序访问驱动层, 提高 了驱动层的安全性。
另外, 采用计算程序文件的信息摘要值, 比较应用层计算得到的信 息摘要值与驱动层计算得到的信息摘要值,验证操作方便;采用 RSA非 对称加密或解密, 安全性高。 体和详细, 但并不能因此而理解为对本发明专利范围的限制。 应当指出 的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下, 还可以做出若干变形和改进, 这些都属于本发明的保护范围。 因此, 本 发明专利的保护范围应以所附权利要求为准。
FreePatentsOnline.com. All rights reserved.

我要回帖

更多关于 rsa加密算法例题 的文章

 

随机推荐