基于非对称身份的恶意程序防控方法

文档序号:8285268阅读:392来源:国知局
基于非对称身份的恶意程序防控方法
【专利说明】
(-)
技术领域
[0001]本方法属于数字签名技术和计算机技术领域,是防止恶意程序在计算机中运行的一种新方法。这里的恶意程序包括网络蠕虫、特洛伊木马等,它们以可执行文件、脚本文件或动态链接库文件的形式存在,运行后篡改或窃取用户计算机中的数据。
(二)
【背景技术】
[0002]首个数字签名方案RSA 诞生于 1978 年(R.L.Rivest, A.Shamir, L.Μ.Adleman,A Method for Obtaining Digital Signatures and Public-key Cryptosystems,Communicat1ns of the ACM,vol.21,n0.2,1978,pp.120-126.)。RSA 体制基于因式分解难题,它存在亚指数时间解,因此,当用户的安全性需求为2~80量级时,RSA的模数长度为1024比特。
[0003]2012年4月,申请者研宄数年的原创的REESSE1+公钥方案被国际期刊发表(Shenghui Su,Shuwang Lu,A Public Key Cryptosystem Based on Three New ProvableProblems,Theoretical Computer Science,vol.426-427, Apr.2012,pp.91-117.)。RE E S S EI +基于三个新的可证难题,它们还没有被找到亚指数时间解。由于该优势,在REESSE1+的基础上,我们引申出了 JUNA轻量级数字签名技术(一种基于超对数难题的轻量级数字签名方法,申请号:201110297654.1,2011年10月)。当用户的安全性需求为2~ 112量级时,JUNA的模数长度可以仅为112比特,而在同样的安全性下,RSA的模数长度需要2048比特。在JUNA的基础上,可以进一步研宄开发防止恶意程序运行的技术。
(三)

【发明内容】

[0004]当计算机联网时,网络蠕虫很容易以正常IP分组的方式穿过防火墙进入计算机,并对计算机发动篡改、删除、窃取数据等攻击,IPsec协议对此也无能为力;特洛伊木马通过伪装自身吸引用户下载并执行,进而危害用户计算机。这就需要一种机制一一当一个可执行文件、脚本文件或动态链接库文件(下面,三者统称为程序)被启动时,其身份应该先被验证。如果身份不合法,它应该被禁止运行,并被清除。
[0005]本发明提出了一种新的防止恶意程序启动与运行、并通知用户删除恶意程序的技术方法,为网络安全和信息安全提供了新的技术保障。
[0006]在本文中,符号“=”表示将右边的值赋给左边的变量或者表示两边的值相等,“#”表示两边的值不相等,“#”为文件或字符串连接符。
[0007]3.1几个基本概念
[0008]主要涉及到非对称身份、程序身份、程序消息、数字签名码等。
[0009]3.1.1非对称身份和程序身份
[0010]非对称身份用于网络空间或现实世界中物品的身份认证。在网络空间中,物品可以是一台计算机、一个程序文件、一个数据文件等。生产物品的单位叫主体,物品本身叫客体。
[0011]定义1:在网络空间中,非对称身份是指隐含了客体特征信息(尤其是唯一编号)和主体私有钥匙(简称私钥),并可通过主体公开钥匙(简称公钥)来验证的数字签名码。
[0012]它具有四个性质:
[0013]①唯一性(在应用领域内不重复);
[0014]②防伪性(关联物品的身份不能被假冒);
[0015]③隐含性(特征信息藏而不露);
[0016]④非对称性(使用公私两个钥匙)。
[0017]定义2:隐含了程序内容、程序编号、主体(即软件生产企业)编号和主体私钥的非对称身份被称为程序身份。
[0018]3.1.2程序消息、程序摘要和数字签名码
[0019]定义3:由程序内容、程序编号和主体编号组成的一个文件或字符串被称为程序消息。
[0020]定义4:以程序消息作为输入的单向散列模块的输出被称为程序摘要。
[0021]定义5:数字签名方案的输出被称为数字签名码。
[0022]3.2本发明的技术方案
[0023]本发明的关键在于使用了私钥与公钥两个钥匙,并把程序身份存于程序的主名字中。
[0024]本发明是一种基于非对称身份的恶意程序防控方法,由钥匙管理、身份调制、动态监视和身份验证四个部分组成,它只是一种开发恶意程序防控产品所必须遵循的基本原理与技术方案,而不是物理产品本身。
[0025]根据本发明,可制造出钥匙管理芯片、身份调制芯片、动态监视芯片以及身份验证芯片,或开发出钥匙管理软件、身份调制软件、动态监视软件以及身份验证软件。
[0026]3.2.1钥匙管理部分
[0027]供软件生产企业使用,相关模块运行于企业负责人办公室的计算机中,不连网,用来生成与存放一个私钥和一个公钥。
[0028]假设Signsys是一个性能较好的数字签名方案,Keygen是其钥匙生成模块,Cnum为企业编号(10-12个16进制字符),则钥匙管理部分的实现方法是:
[0029](I)选择安全参数,其中,模数长度最大为224比特;
[0030](2)调用Keygen (安全参数),得到私钥SK和公钥PK ;
[0031](3)把SK存于优盘中,由企业负责人保管,不得泄露;
[0032](4)把Cnum和PK上传到验证平台的公钥数据库中;
[0033](5)将私钥编号、公钥、生成时间、生命周期、保管人等信息
[0034]存入钥匙管理数据库中。
[0035]注意,验证平台由一台或几台计算机组成,可以供多个软件生产企业共同使用,并与网络相连。
[0036]3.2.2身份调制部分
[0037]该部分供软件生产企业使用,且在程序包装销售前进行,相关模块运行于企业办公室的计算机中,不连网,用来生成一个程序(及其不同备份)的非对称身份。
[0038]假设Signing是Signsys的数字签名模块,Hash是一与Signsys匹配的单向散列模块,SK为企业的私钥,Pnum为程序编号(10-12个16进制字符,且同一程序的备份须有不同编号),Pcon为程序内容,PM为程序消息,PD为程序摘要,PID为程序身份,Nori为程序原始主名字,Date为生产日期,Func为程序功能说明,则身份调制部分的实现方法是:
[0039](I)置 PM = Cnum#Pnum#Pcon ;
[0040](2)令 PD = Hash (PM);
[0041](3)计算 PID = Signing (PD, SK);
[0042](4)将PID、PD转化为16进制字符;
[0043](5)将PID、PD、Cnum, Pnum插入到程序主名字的最右边;
[0044](6)将 Cnum、Hash (PID)、Pnum> Nor1、Date、Func 等
[0045]存入到验证平台的程序简介数据库中。
[0046]注意,一个程序名字包含两部分,“.”之前的部分被称为主名字,“.”之后的部分被称为扩展名。目前,在主流操作系统中,名字的最大长度约为256个字符。
[0047]3.2.3动态监视部分
[0048]该部分供购买和安装了程序的用户使用,相关模块运行于用户的计算机中,该计算机处于联网状态。
[0049]假设Hash是那个与Signsys匹配的单向散列模块,动态监视部分的实现方法是:
[0050](I)每当程序启动时,截获程序的启动,并获得程序的主名字;
[0051](2)如果主名字的长度小于规定长度,则向用户报告程序非法,
[0052]并中止程序的启动;
[0053](3)从主名字中提取 PID、PD、Cnum 和 Pnum ;
[0054](4)令 F1D =
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1