基于非对称身份的恶意程序防控方法,属于数字签名技术和计算机技术领域;包括钥匙管理、身份调制、动态监视和身份验证四个部分;软件生产企业拥有两个钥匙,即一个私钥和一个公钥;私钥只能企业私有,不能泄露,用于企业调制程序的非对称身份,该身份存于程序的主名字中,公钥可以公开,存放在验证平台上,用于用户计算机识别程序的非对称身份;当程序在用户计算机中启动时,动态监视模块会截获程序的启动过程,提取身份,并发送到验证平台进行识别计算;本方法具有不可伪造、验证速度快、程序身份与程序同体等特点,可用于防止恶意程序(含盗版程序)的启动与运行。
【技术实现步骤摘要】
基于非对称身份的恶意程序防控方法(一)
本方法属于数字签名技术和计算机
,是防止恶意程序在计算机中运行的一种新方法。这里的恶意程序包括网络蠕虫、特洛伊木马等,它们以可执行文件、脚本文件或动态链接库文件的形式存在,运行后篡改或窃取用户计算机中的数据。(二)
技术介绍
首个数字签名方案RSA诞生于1978年(R.L.Rivest,A.Shamir,L.M.Adleman,AMethodforObtainingDigitalSignaturesandPublic-keyCryptosystems,CommunicationsoftheACM,vol.21,no.2,1978,pp.120-126.)。RSA体制基于因式分解难题,它存在亚指数时间解,因此,当用户的安全性需求为2^80量级时,RSA的模数长度为1024比特。2012年4月,申请者研究数年的原创的REESSE1+公钥方案被国际期刊发表(ShenghuiSu,ShuwangLü,APublicKeyCryptosystemBasedonThreeNewProvableProblems,TheoreticalComputerScience,vol.426-427,Apr.2012,pp.91-117.)。REESSE1+基于三个新的可证难题,它们还没有被找到亚指数时间解。由于该优势,在REESSE1+的基础上,我们引申出了JUNA轻量级数字签名技术(一种基于超对数难题的轻量级数字签名方法,申请号:201110297654.1,2011年10月)。当用户的安全性需求为2^112量级时,JUNA的模数长度可以仅为112比特,而在同样的安全性下,RSA的模数长度需要2048比特。在JUNA的基础上,可以进一步研究开发防止恶意程序运行的技术。(三)
技术实现思路
当计算机联网时,网络蠕虫很容易以正常IP分组的方式穿过防火墙进入计算机,并对计算机发动篡改、删除、窃取数据等攻击,IPsec协议对此也无能为力;特洛伊木马通过伪装自身吸引用户下载并执行,进而危害用户计算机。这就需要一种机制——当一个可执行文件、脚本文件或动态链接库文件(下面,三者统称为程序)被启动时,其身份应该先被验证。如果身份不合法,它应该被禁止运行,并被清除。本专利技术提出了一种新的防止恶意程序启动与运行、并通知用户删除恶意程序的技术方法,为网络安全和信息安全提供了新的技术保障。在本文中,符号“=”表示将右边的值赋给左边的变量或者表示两边的值相等,“≠”表示两边的值不相等,“#”为文件或字符串连接符。3.1几个基本概念主要涉及到非对称身份、程序身份、程序消息、数字签名码等。3.1.1非对称身份和程序身份非对称身份用于网络空间或现实世界中物品的身份认证。在网络空间中,物品可以是一台计算机、一个程序文件、一个数据文件等。生产物品的单位叫主体,物品本身叫客体。定义1:在网络空间中,非对称身份是指隐含了客体特征信息(尤其是唯一编号)和主体私有钥匙(简称私钥),并可通过主体公开钥匙(简称公钥)来验证的数字签名码。它具有四个性质:①唯一性(在应用领域内不重复);②防伪性(关联物品的身份不能被假冒);③隐含性(特征信息藏而不露);④非对称性(使用公私两个钥匙)。定义2:隐含了程序内容、程序编号、主体(即软件生产企业)编号和主体私钥的非对称身份被称为程序身份。3.1.2程序消息、程序摘要和数字签名码定义3:由程序内容、程序编号和主体编号组成的一个文件或字符串被称为程序消息。定义4:以程序消息作为输入的单向散列模块的输出被称为程序摘要。定义5:数字签名方案的输出被称为数字签名码。3.2本专利技术的技术方案本专利技术的关键在于使用了私钥与公钥两个钥匙,并把程序身份存于程序的主名字中。本专利技术是一种基于非对称身份的恶意程序防控方法,由钥匙管理、身份调制、动态监视和身份验证四个部分组成,它只是一种开发恶意程序防控产品所必须遵循的基本原理与技术方案,而不是物理产品本身。根据本专利技术,可制造出钥匙管理芯片、身份调制芯片、动态监视芯片以及身份验证芯片,或开发出钥匙管理软件、身份调制软件、动态监视软件以及身份验证软件。3.2.1钥匙管理部分供软件生产企业使用,相关模块运行于企业负责人办公室的计算机中,不连网,用来生成与存放一个私钥和一个公钥。假设Signsys是一个性能较好的数字签名方案,Keygen是其钥匙生成模块,Cnum为企业编号(10-12个16进制字符),则钥匙管理部分的实现方法是:(1)选择安全参数,其中,模数长度最大为224比特;(2)调用Keygen(安全参数),得到私钥SK和公钥PK;(3)把SK存于优盘中,由企业负责人保管,不得泄露;(4)把Cnum和PK上传到验证平台的公钥数据库中;(5)将私钥编号、公钥、生成时间、生命周期、保管人等信息存入钥匙管理数据库中。注意,验证平台由一台或几台计算机组成,可以供多个软件生产企业共同使用,并与网络相连。3.2.2身份调制部分该部分供软件生产企业使用,且在程序包装销售前进行,相关模块运行于企业办公室的计算机中,不连网,用来生成一个程序(及其不同备份)的非对称身份。假设Signing是Signsys的数字签名模块,Hash是一与Signsys匹配的单向散列模块,SK为企业的私钥,Pnum为程序编号(10-12个16进制字符,且同一程序的备份须有不同编号),Pcon为程序内容,PM为程序消息,PD为程序摘要,PID为程序身份,Nori为程序原始主名字,Date为生产日期,Func为程序功能说明,则身份调制部分的实现方法是:(1)置PM=Cnum#Pnum#Pcon;(2)令PD=Hash(PM);(3)计算PID=Signing(PD,SK);(4)将PID、PD转化为16进制字符;(5)将PID、PD、Cnum、Pnum插入到程序主名字的最右边;(6)将Cnum、Hash(PID)、Pnum、Nori、Date、Func等存入到验证平台的程序简介数据库中。注意,一个程序名字包含两部分,“.”之前的部分被称为主名字,“.”之后的部分被称为扩展名。目前,在主流操作系统中,名字的最大长度约为256个字符。3.2.3动态监视部分该部分供购买和安装了程序的用户使用,相关模块运行于用户的计算机中,该计算机处于联网状态。假设Hash是那个与Signsys匹配的单向散列模块,动态监视部分的实现方法是:(1)每当程序启动时,截获程序的启动,并获得程序的主名字;(2)如果主名字的长度小于规定长度,则向用户报告程序非法,并中止程序的启动;(3)从主名字中提取PID、PD、Cnum和Pnum;(4)令PD=Hash(Cnum#Pnum#Pcon);(5)如果新的PD≠旧的PD,则向用户报告程序非法,并中止程序的启动;(6)将PID、PD、Cnum、Pnum以分组的形式传送到验证平台;(7)接收从平台返回的结果;(8)如果结果为“假”,则向用户报告程序非法,并中止程序的启动,否则,允许程序继续启动。注意,第6步中的分组可以是IP分组,也可以是其它协议的分组。3.2.4身份验证部分该部分供网络中的验证平台使用,相关模块运行于验证服务器中,用来对程序身份进行识别运算。假设Verifying是Sign本文档来自技高网...
【技术保护点】
基于非对称身份的恶意程序防控方法,由钥匙管理、身份调制、动态监视和身份验证四个部分组成,第一部分用来生成和管理软件生产企业的一对私钥与公钥,第二部分供企业利用自己的私钥来调制一个程序的非对称身份,第三部分供用户计算机来监视程序的启动过程,第四部分供用户计算机利用存放在验证平台上的企业公钥来识别一个程序的非对称身份,其特征在于(有关符号的含义请见说明书):·钥匙管理部分采用了下列步骤:1)选择安全参数,其中,模数长度最大为224比特;2)调用Keygen(安全参数),得到私钥SK和公钥PK;3)把SK存于优盘中,由企业负责人保管,不得泄露;4)把Cnum和PK上传到验证平台的公钥数据库中;5)将私钥编号、公钥、生成时间、生命周期、保管人等信息存入钥匙管理数据库中;这样,企业得到并保管了自己的一对私钥与公钥;·身份调制部分采用了下列步骤:<1>置PM=Cnum#Pnum#Pcon;<2>令PD=Hash(PM);<3>计算PID=Signing(PD,SK);<4>将PID、PD转化为16进制字符;<5>将PID、PD、Cnum、Pnum插入到程序主名字的最右边;<6>将Cnum、Hash(PID)、Pnum、Nori、Date、Func等存入到验证平台的程序简介数据库中;这样,企业为每个程序(及其每个备份)赋予了一个非对称身份;·动态监视部分采用了下列步骤:(1)每当程序启动时,截获程序的启动,并获得程序的主名字;(2)如果主名字的长度小于规定长度,则向用户报告程序非法,并中止程序的启动;(3)从主名字中提取PID、PD、Cnum和Pnum;(4)令PD=Hash(Cnum#Pnum#Pcon);(5)如果新的PD≠旧的PD,则向用户报告程序非法,并中止程序的启动;(6)将PID、PD、Cnum、Pnum以分组的形式传送到验证平台;(7)接收从平台返回的结果;(8)如果结果为“假”,则向用户报告程序非法,并中止程序的启动,否则,允许程序继续启动;这样,用户计算机可以识别出非法程序并中止它们的启动;·身份验证部分采用了下列步骤:①接收来自用户计算机的分组,获得PID、PD、Cnum、Pnum等参数;②通过Cnum在公钥数据库中找到PK;③通过Cnum和Hash(PID)在程序简介数据库中找到Pnum;④如果当前Pnum≠存储Pnum,则令Res=“假”,否则,计算Res=Verifi(PID,PD,PK);⑤如果程序简介数据库中的源地址为空,则写入当前的源地址,否则,若已存源地址≠当前源地址,则令Res=“假”;⑥返回Res;这样,验证平台可以识别出一个程序身份的真假和是否正版。...
【技术特征摘要】
1.基于非对称身份的恶意程序防控方法,由钥匙管理、身份调制、动态监视和身份验证四个部分组成,第一部分用来生成和管理软件生产企业的一对私钥与公钥,第二部分供企业利用自己的私钥来调制一个程序的非对称身份,第三部分供用户计算机来监视程序的启动过程,第四部分供用户计算机利用存放在验证平台上的企业公钥来识别一个程序的非对称身份,在下文中,符号“=”表示将右边的值赋给左边的变量或者表示两边的值相等,“≠”表示两边的值不相等,“#”为文件或字符串连接符,Signsys是一个性能较好的数字签名方案,Keygen是Signsys的钥匙生成模块,含有一调用参数,Cnum为企业编号,即10-12个16进制字符,Signing是Signsys的数字签名模块,含有两个调用参数,Hash是一与Signsys匹配的单向散列模块,含有一调用参数,SK为企业的私钥,Pnum为程序编号,即10-12个16进制字符且同一程序的备份须有不同编号,Pcon为程序内容,PM为程序消息,PD为程序摘要,PID为程序身份,Nori为程序原始主名字,Date为生产日期,Func为程序功能说明,Verifying是Signsys的身份验证模块,含有三个调用参数,其返回值为“真”或“假”,PK是企业的公钥,Res为验证结果,其值为“真”或“假”,“源地址”是指被接收到的分组中的源地址,包括用户计算机IP地址和物理地址,该方法的特征在于:·钥匙管理部分采用了下列步骤:1)选择安全参数,其中,模数长度最大为224比特;2)调用Keygen(安全参数),得到私钥SK和公钥PK;3)把SK存于优盘中;4)把Cnum和PK上传到验证平台的公钥数据库中,验证平台由一台或几台计算机组成,可以供多个软件生产企业共同使用,并与网络相连;5)将私钥编号、公钥、生成时间、生命周期、保管人信息存入钥匙管理数据库中;这样,企业得到并保管了自...
【专利技术属性】
技术研发人员:苏盛辉,吕述望,郑建华,
申请(专利权)人:苏盛辉,吕述望,郑建华,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。