CN105227545B - 智能操作平台中实现用户和开发者划分控制的系统及方法 - Google Patents

智能操作平台中实现用户和开发者划分控制的系统及方法 Download PDF

Info

Publication number
CN105227545B
CN105227545B CN201510562565.3A CN201510562565A CN105227545B CN 105227545 B CN105227545 B CN 105227545B CN 201510562565 A CN201510562565 A CN 201510562565A CN 105227545 B CN105227545 B CN 105227545B
Authority
CN
China
Prior art keywords
developer
application
service module
signature
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510562565.3A
Other languages
English (en)
Other versions
CN105227545A (zh
Inventor
季杰
唐亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI LIANTONG NETWORK COMMUNICATIONS TECHNOLOGY Co Ltd
Original Assignee
SHANGHAI LIANTONG NETWORK COMMUNICATIONS TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI LIANTONG NETWORK COMMUNICATIONS TECHNOLOGY Co Ltd filed Critical SHANGHAI LIANTONG NETWORK COMMUNICATIONS TECHNOLOGY Co Ltd
Priority to CN201510562565.3A priority Critical patent/CN105227545B/zh
Publication of CN105227545A publication Critical patent/CN105227545A/zh
Application granted granted Critical
Publication of CN105227545B publication Critical patent/CN105227545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Abstract

本发明涉及一种智能操作平台中实现用户和开发者划分控制的系统及方法,其中系统包括开发者网站服务模块,用以根据开发者的注册信息生成开发者编号并提供开发者证书下载链接;应用程序签名服务模块,用以根据所述的开发者编号和开发设备编号生成开发者证书并利用所述的开发者证书对开发者的应用程序包进行签名;应用程序管理服务模块。采用该种结构的智能操作平台中实现用户和开发者划分控制的系统及方法,保护智能操作平台应用程序的合法性的同时允许第三方开发者在智能操作平台上进行开发而不会带来额外风险,通过将程序包名称和设备编号包含在开发者证书中防止开发者证书泛滥,提高系统安全性,具有更广泛的应用范围。

Description

智能操作平台中实现用户和开发者划分控制的系统及方法
技术领域
本发明涉及智能操作系统技术领域,尤其涉及智能操作系统用户和开发者划分的技术领域,具体是指一种智能操作平台中实现用户和开发者划分控制的系统及方法。
背景技术
目前的智能操作系统为了保护系统安全,智能操作系统主要采用禁用未知源程序安装,只允许来自于AppStore(应用商店)的应用程序可以安装在系统上,只需AppStore加强对应用程序的安全性检查,就能保证智能系统终端的应用程序安全。缺点:由于以Android为首的智能操作系统开放性的原因,恶意软件也可以安装在智能操作系统上。智能操作系统厂商将AppStore加入系统,用户只能从AppStore上安装应用程序,这样只要AppStore加强对应用程序的安全性检查,就能保证智能系统终端的应用程序安全;然而,这样就封闭了第三方应用程序开发人员在智能系统上开发和测试应用程序,从而导致智能系统平台生态链失去成长的潜力。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现保护智能操作平台应用程序的合法性的同时允许第三方开发者在智能操作平台上进行开发而不会带来额外风险、通过将程序包名称和设备编号包含在开发者证书中防止开发者证书泛滥、提高系统安全性、应用范围广泛的智能操作平台中实现用户和开发者划分控制的系统及方法。
为了实现上述目的,本发明的智能操作平台中实现用户和开发者划分控制的系统及方法具有如下构成:
该智能操作平台中实现用户和开发者划分控制的系统,其主要特点是,所述的系统包括:
开发者网站服务模块,用以根据开发者的注册信息生成开发者编号,并提供开发者证书下载链接;
应用程序签名服务模块,用以根据所述的开发者编号和开发设备编号生成开发者证书,并利用所述的开发者证书对开发者的应用程序包进行签名;
应用程序管理服务模块,用以对签名后的应用程序包进行开发者证书验证,并安装通过验证的应用程序包。
本发明还涉及一种基于所述的系统于智能操作平台中实现用户和开发者划分控制的方法,其特征在于,所述的方法包括以下步骤:
(1)所述的开发者网站服务模块获取开发者的注册信息,并生成开发者编号;
(2)所述的应用程序签名服务模块获取申请证书的开发者的开发设备编号和所对应的开发者编号生成开发者证书,并发送至所述的开发者网站服务模块;
(3)所述的应用程序签名服务模块获取开发者的开发者证书和开发者的应用程序包并对开发者的应用程序包进行签名;
(4)所述的应用程序管理服务模块对签名后的应用程序包进行开发者证书验证,并安装通过验证的应用程序包。
采用了该发明中的智能操作平台中实现用户和开发者划分控制的系统及方法,具有如下有益效果:
(1)本发明的开发者证书的私钥完全在签名服务器端,而且可以采用硬件签名服务器,任何人都无法获取签名私钥,所以保障了高度安全性,在发终端的安全存储地点保存了开发者证书对应的公钥,公钥的本质就是开发的,所以放置在应用终端中是一个合理的行为。
(2)本发明涉及的开发者证书将程序包名称设备ID包含其中,防止开发者证书泛滥的情况,对应用程序的开发者证书的生成过程包含应用开发者填写的资料和设备的在线认证两部分,经过这两个步骤,将开发者证书与开发设备、应用程序绑定;应用开发者开发的应用程序在添加了应用开发者证书之后,即可在此设备上随意安装此应用程序,再进行调试,但此设备上无法安装其他非法来源的应用程序,提高系统的安全性,从而保护智能操作系统应用程序的合法性的同时允许第三方开发者在智能操作系统上进行开发,而不会带来额外的风险,具有更广泛的应用范围。
(3)本发明将程序包名称、开发者编号与应用程序相关联,限定开发者开发的应用程序名称,设备编号与开发设备相关联,限定开发者开发的应用程序允许运行的设备,这样就能保证应用开发者所开发的应用程序只能在开发者证书中限定了的设备上运行,从而使得该应用程序不具备任意设备安装的能力。
附图说明
图1为本发明的智能操作平台中实现用户和开发者划分控制的系统的结构示意图。
图2为本发明的进行开发者证书申请的流程图。
图3为本发明的进行应用程序签名的流程图。
图4为本发明的应用程序验证的流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
如图1所示,本发明的智能操作平台中实现用户和开发者划分控制的系统包括设置于开发者网站服务器2的开发者网站服务模块2-1、设置于签名服务器3的应用程序签名服务模块3-1和设置于智能终端4的应用程序管理服务模块4-1,开发者可以使用开发设备1通过网络连接到开发者网站服务器2。
开发者网站服务模块2-1,用以根据开发者的注册信息生成开发者编号并提供开发者证书下载链接;
应用程序签名服务模块3-1,用以根据所述的开发者编号和开发设备编号生成开发者证书并利用所述的开发者证书对开发者的应用程序包进行签名;
应用程序管理服务模块4-1,用以对签名后的应用程序包进行开发者证书验证并允许安装通过验证的应用程序包。
具体而言,开发者网站服务模块2-1可以采用一个供开发者注册和使用的开发者网站,为开发者提供一系列注册、认证和开发者证书下载等服务,也可以采用其他可以提供相应服务的开发的应用程序。应用程序签名服务模块3-1可以采用具有特殊编程的签名工具;采用本发明中的签名方法对开发者的应用程序包进行签名。应用程序管理服务模块4-1可以采用PKMS(Package Manager Service),即程序包管理服务,具体是指用来安装、删除或更新程序包的服务,在安装、删除和更新过程中可以对应用程序包进行验证。
其中智能操作平台可以是智能机顶盒操作系统、智能手机操作系统或智能平板操作系统或其他可以采用程序包管理服务的智能操作系统。
本发明应用于具体实施例的技术方案如图2~4所示,其中开发者网站作为开发者网站服务模块,签名工具作为应用程序签名服务模块,程序包管理服务作为应用程序管理服务模块。
本发明的智能操作平台中实现用户和开发者划分控制的方法包括开发者证书申请、应用程序签名和应用程序验证三大部分。本发明的划分控制的方法主要包括以下步骤:
(1)所述的开发者网站服务模块2-1获取开发者的注册信息并生成开发者编号,所述的注册信息包括开发者对应的开发设备编号、开发者公钥、开发者个人资料和应用程序包名称;
为了加强申请开发者证书的开发者的身份审核以及应用程序审核,避免开发者证书的随意申请和滥用,在生成开发者证书之前需要进行如下步骤:
(11)所述的开发者网站服务模块2-1根据用户的注册信息和应用商店数据库的信息对开发者进行审核。
即,所述的开发者网站服务模块判断所述的开发者公钥和应用程序包名称是否已在所述的应用商店数据库中存在,如果是,则提示身份审核失败,并结束退出,否则继续步骤(2)。
(2)所述的应用程序签名服务模块3-1获取申请证书的开发者的开发设备编号和所对应的开发者编号生成开发者证书并发送至所述的开发者网站服务模块2-1;
(3)所述的应用程序签名服务模块3-1获取开发者的开发者证书和开发者的应用程序包并对开发者的应用程序包进行签名;
所述的步骤(3),包括以下步骤:
(31)所述的应用程序签名服务模块3-1对开发者的应用程序包进行解压缩得到程序文件;
(32)所述的应用程序签名服务模块3-1对所述的程序文件计算二次摘要并将摘要计算结果写入一次摘要文件和二次摘要文件中。具体而言,所述的步骤(32)包括:
所述的应用程序签名服务模块3-1依次对所述的程序文件、一次摘要文件和二次摘要文件采用SHA1、SHA或MD5算法分别计算摘要结果,并将摘要结果分别逐一写入一次摘要文件、二次摘要文件和二次摘要文件中。
(33)所述的应用程序签名服务模块3-1使用私钥对所述的二次摘要文件计算签名并将签名结果和开发者公钥打包写入签名文件中;
(34)所述的应用程序签名服务模块3-1将所述的程序文件、一次摘要文件、二次摘要文件、签名文件和开发者证书一起打包生成签名后的应用程序包。
(4)所述的应用程序管理服务模块4-1对签名后的应用程序包进行开发者证书验证并安装通过验证的应用程序包。具体而言,步骤(4)包括以下步骤:(41)所述的应用程序管理服务模块4-1对签名后的应用程序包进行解压缩;(42)所述的应用程序管理服务模块4-1获取开发者公钥、应用程序包名称、开发者编号和设备信息,并对解压缩得到的开发者证书进行验证,如果验证成功,则继续步骤(44),否则继续步骤(43);(43)所述的应用程序管理服务模块4-1提示验证失败,然后结束退出;(44)所述的应用程序管理服务模块4-1打开应用程序安装并判断解压缩得到的开发者公钥和应用程序商店存储的公钥是否一致,如果是,则继续步骤(45),否则继续步骤(43);(45)所述的应用程序管理服务模块4-1利用二次摘要文件对开发者证书进行验证,如果验证成功,则继续步骤(46),否则继续步骤(43);(46)所述的应用程序管理服务模块4-1利用二次摘要文件对签名文件进行验证,如果验证成功,则继续步骤(47),否则继续步骤(43);(47)所述的应用程序管理服务模块4-1对一次摘要文件内容和一次摘要文件中的各项分别进行摘要计算和BASE64编码并将结果与所述的二次摘要文件进行对比,如果一致,则继续步骤(48),否则继续步骤(43);(48)所述的应用程序管理模块对应用程序文件进行摘要计算和BASE64编码并将结果与一次摘要文件进行对比,如果一致,则继续步骤(49),否则继续步骤(43);(49)所述的应用程序管理模块提示验证成功并进行应用程序安装。
如图2所示,具体实施例中开发者证书申请包括以下步骤:首先开发者在开发者网站上进行注册,向网站提供相关信息(开发平台,安全信息(开发者公钥),个人资料,程序包名称),获得Developer ID(开发者编号);然后用Developer ID在设备上登录,COS开发者网站自动获取设备相关信息;开发者网站利用开发者提供的信息,对比Appstore(应用商店)数据库的信息,对开发者进行审核,比如程序包名是否有重复的,公钥是否有重复的。开发者利用Developer ID登录开发者网站,找到已经关联的设备,然后点击生成开发者证书按钮,下载此设备相关的开发者证书。
具体包括以下四个阶段:
(a)开发者提供信息的阶段:应用开发者通过开发这网站注册账号,填写开发者组织信息,应用程序名称、证书有效期等信息,注册成功后,开发者将获得一个开发者网站登录账号,即获得Developer ID;然后用Developer ID在设备上登录,COS开发者网站自动获取设备相关信息。
然后,开发者网站利用开发者提供的信息,对比Appstore数据库的信息,对开发者进行审核,比如程序包名是否有重复的,公钥是否有重复的。本发明对应用程序的开发者证书的生成过程包含应用开发者填写的资料和设备的在线认证两部分,经过这两个步骤,将开发者证书与开发设备、应用程序绑定,应用开发者开发的应用程序在添加了应用开发者证书之后,即可在此设备上随意安装此应用程序,再进行调试,但此设备上无法安装其他非法来源的应用程序,从而保证智能操作系统的安全性。具体包括(b)步骤中开发设备认证的步骤和(c)步骤中开发者信息审查的步骤。
(b)开发设备的认证阶段:应用开发者在设备上,使用之前获取到的账号登录开发者网站(登录网页使用https协议),在设备管理页面,点击网页中的自动获取设备信息按钮,使得开发者网站自动获取开发者拥有设备的信息:如设备硬件编号,智能操作系统引导程序版本信息,基带信息,以及智能操作系统版本信息等。
(c)开发者证书授权阶段:开发者证书申请服务器根据提供的开发组织信息,此项审核工作可以为人工或者自动审核,审核开发者的信息,根据应用程包名称是否已经存在,根据设备信息,查找该设备上已经授权的开发者证书个数和已经申请的开发者证书信息是否重复。如果审核通过,那么开发者证书申请服务器将这些信息发送给开发者证书签名服务器,开发者证书签名服务器根据这些信息,生成开发者证书,并将该证书返回给开发者证书申请服务器,开发者证书申请服务器为开发者网站生成一个可以下载的链接给应用程序开发者。
开发者申请的开发者证书中加密数据来源是程序包名称(PackageName)、开发者编号(DeveloperID)和设备编号(DeviceID)等。程序包名称、开发者编号与应用程序相关联,限定开发者开发的应用程序名称,设备编号(DeviceID)与开发设备相关联,限定开发者开发的应用程序允许运行的设备,这样就能保证应用开发者所开发的应用程序只能在开发者证书中限定了的设备上运行,从而使得该应用程序不具备任意设备安装的能力。
(d)开发者根据提供的链接,即可从开发者网站下载开发者证书。
在一种较佳的实施例中,由开发者在开发者网站上申请开发者证书,由此开启开发者网站执行步骤(b)到(c)。开发者利用Developer ID登录开发者网站,找到已经关联的设备,然后点击生成开发者证书按钮,下载此设备相关的开发者证书。
如图3所示,本发明应用于一具体实施例的进行应用程序签名的部分包括以下步骤:
本发明仅仅是一种划分用户和开发者的方法,并不会审核应用程序包。签名工具首先对开发者的应用程序包进行第一次签名,然后将开发者证书(.cosdeveloper)打包进应用程序包,生成最终可用于在智能系统上安装的应用程序。
在本发明的具体实施例中,使用签名工具对未签名的应用程序包计算两次摘要并计算签名,以实现更好的签名效果,加强安全性,具体包括以下几个步骤:
(a)解压缩,签名工具(LTSigner)首先对package.apk.unsigned(未签名的应用程序包)包进行解压缩,得到具体的程序文件,包括配置文件(AndroidManifest.xml或Gaia.xml),程序的执行代码(classes.dex),资源文件(/res目录下的文件)等;
(b)计算一次摘要,对解析出来的每个文件分别计算摘要值,并将摘要结果逐一写入MANIFEST.MF文件(一次摘要文件)中,目前使用的优选的摘要算法有三种SHA1、SHA和MD5算法,可以采用其中任一种摘要算法进行计算;
(c)二次摘要,对MANIFEST.MF文件(一次摘要文件)中的计算摘要值,摘要计算结果写入CERT.SF文件(二次摘要文件),同时对MANIFEST.MF(一次摘要文件)文件中的每个摘要项分别计算摘要值,计算结果写入CERT.SF文件(二次摘要文件),目前优选使用SHA1算法;
(4)计算签名,使用输入的私钥key.pk8对CERT.SF文件(二次摘要文件)计算签名,并将签名结果和输入的公钥key.X509.pem证书打包成PKCS7格式写入CERT.RSA文件(签名文件);
(5)打包,将2、3、4步中生成的三个签名数据文件MANIFEST.MF(一次摘要文件)、CERT.SF(二次摘要文件)、CERT.RSA(签名文件),第一步解析得到的应用程序原文件和开发者证书一起进行打包,生成签名后的程序—package.apk.signed(签名后的应用程序包)。
本发明的签名方法与现有技术相比,除了采用二次摘要计算方法,还包括将开发者证书(.cosdeveloper)与应用程序包相关联的过程,开发者申请的开发者证书中加密数据来源是程序包名称(packageName)、开发者编号(DeveloperID)和设备编号(DeviceID)等。
程序包名称、开发者编号与应用程序相关联,限定开发者开发的应用程序名称,设备编号(DeviceID)与开发设备相关联,限定开发者开发的应用程序允许运行的设备,这样就能保证应用开发者所开发的应用程序只能在开发者证书中限定了的设备上运行,从而使得该应用程序不具备任意设备安装的能力。
如图4所示,本发明应用于一具体实施例的进行应用程序验证的部分包括以下步骤:
程序包管理服务首先对应用程序包进行解压缩,得到包括.cosdeveloper、CERT.SF、CERT.RSA和MANIFEST.MF等文件;在解压的过程中发现存在META-INF目录中存在.cosdeveloper证书文件,PKMS就会搜集开发者公钥,程序包名称,DeveloperID和设备ID,来对.cosdeveloper证书文件进行验证,验证成功,打开未知源程序安装,继续执行智能操作系统中正常的安装流程,在此不再赘述;否则不允许该应用程序安装。
在具体实施应用中,Package Manager Service(PKMS,程序包管理服务)对安装至/data/app/目录的apk(AndroidPackage,安卓安装包)或pkg(安装包配置文件),会执行如图4所示的验证逻辑,对于build-in(内置)的应用程序,会少了比对Makert公钥的步骤。具体包括以下几个步骤:
(a)解压缩,PKMS首先对package.apk包(签名的应用程序包)进行解压缩,得到包括CERT.CA(证书文件)、CERT.SF(二次摘要文件)、CERT.RSA(签名文件)和MANIFEST.MF(一次摘要文件)等文件;在解压的过程中发现存在META-INF目录中存在.cosdeveloper证书文件,PKMS就会搜集开发者公钥、程序包名称、DeveloperID和设备ID,来对.cosdeveloper证书文件进行验证,验证成功,打开应用程序安装,跳转第(b)步;验证失败,则返回验证失败。
(b)提取CERT.CA中的公钥,对比Market公钥,对比失败,查询未知源安装许可,如果不允许安装未知源软件,则返回验证失败,反之跳转到第(d)步;如果对比公钥成功,则跳转到第(c)步。
(c)验证CERT.CA,利用CERT.SF文件作为输入,对CERT.CA进行验证,如果验证失败,则返回验证失败;如果验证成功,则跳转第(d)步。
(d)验证CERT.RSA,利用CERT.SF文件作为输入,对CERT.RSA进行验证,如果验证失败,则返回验证失败;如果验证成功,则跳转第(e)步。
(e)验证CERT.SF,首先将MANIFEST.MF文件和此文件中的条目分别做摘要(优选为SHA1算法,也可以采用其他适用的摘要计算方法)计算,然后将得到的计算结果再用BASE64编码,最后用此结果去对比CERT.SF中的摘要信息,如果全部比对通过,则跳转第(6)步;如果对比一旦失败,则返回验证失败。
(f)验证MANIFEST.MF,分别对应用程序文件(META-INF目录下的文件除外)做摘要(优选为SHA1算法,也可以采用其他适用的摘要计算方法)计算,得到的计算结果做BASE64编码,然后与MANIFEST.MF中的摘要信息做比对,如果全部比对通过,则返回验证成功,并进行应用程序安装;如果对比一旦失败,则返回验证失败。
综上所述,本发明的智能操作平台中实现用户和开发者划分控制的方法中,最关键在于对开发者证书审核生成的安全性把握、基于开发者证书对应用程序签名和在智能操作平台中基于程序包管理服务对应用程序验证后仅安装验证通过的应用程序三部分。
其中在开发者证书审核过程中对开发者、设备和程序的审查不局限于上述具体实施例中的方法,只要能实现对开发者、设备和程序的合法性和安全性掌控即可,由于开发者证书中包含程序包名称和设备编号,防止开发者证书的滥用,只有有效的合乎规则的开发者以及符合要求的程序包名称和设备编号才能生成新的开发者证书,任一条件不满足将不能生成开发者请求的开发者证书,需要将申请失败信息反馈给开发者,开发者如果想继续申请开发者证书,需要对提交的申请信息按照要求进行修改。
同样的,基于开发者证书对应用程序签名也并不局限于上述计算二次摘要后打包签名的方法,可以采用其他能实现基于开发者证书对应用程序进行有效签名即可,同时可以在开发者证书生成过程中或者在签名过程中增加应用程序限定安装设备的设定信息,从而不仅实现了智能操作平台对是否允许安装应用程序的选择,也可以实现开发者和应用程序对智能操作平台的选择,防止不符合开发者和应用程序的智能操作平台安装对应的应用程序。
同样的,在智能操作平台中基于程序包管理服务对应用程序验证的方法也并不局限于上述各个摘要文件和签名文件的验证方法,可以采用任意与上述应用程序签名方法相对应的验证方法,对签名后的应用程序包进行合法性和安全性验证,实现有效划分用户和开发者的技术效果。
采用了该发明中的智能操作平台中实现用户和开发者划分控制的系统及方法,具有如下有益效果:
(1)本发明的开发者证书的私钥完全在签名服务器端,而且可以采用硬件签名服务器,任何人都无法获取签名私钥,所以保障了高度安全性,在发终端的安全存储地点保存了开发者证书对应的公钥,公钥的本质就是开发的,所以放置在应用终端中是一个合理的行为。
(2)本发明涉及的开发者证书将程序包名称设备ID包含其中,防止开发者证书泛滥的情况,对应用程序的开发者证书的生成过程包含应用开发者填写的资料和设备的在线认证两部分,经过这两个步骤,将开发者证书与开发设备、应用程序绑定;应用开发者开发的应用程序在添加了应用开发者证书之后,即可在此设备上随意安装此应用程序,再进行调试,但此设备上无法安装其他非法来源的应用程序,提高系统的安全性,从而保护智能操作系统应用程序的合法性的同时允许第三方开发者在智能操作系统上进行开发,而不会带来额外的风险,具有更广泛的应用范围。
(3)本发明将程序包名称、开发者编号与应用程序相关联,限定开发者开发的应用程序名称,设备编号与开发设备相关联,限定开发者开发的应用程序允许运行的设备,这样就能保证应用开发者所开发的应用程序只能在开发者证书中限定了的设备上运行,从而使得该应用程序不具备任意设备安装的能力。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (8)

1.一种智能操作平台中实现用户和开发者划分控制的系统,其特征在于,所述的系统包括:
开发者网站服务模块,用以根据开发者的注册信息生成开发者编号,并提供开发者证书下载链接,所述的注册信息包括开发者对应的开发设备编号、开发者公钥、开发者个人资料和应用程序包名称;
应用程序签名服务模块,用以根据所述的开发者编号和开发设备编号生成开发者证书,并利用所述的开发者证书对开发者的应用程序包进行签名,并进行以下处理:
(32)所述的应用程序签名服务模块对程序文件计算二次摘要结果,并将二次摘要结果写入一次摘要文件和二次摘要文件中;
(33)所述的应用程序签名服务模块使用私钥对二次摘要文件计算签名结果,并将签名结果和开发者公钥打包写入签名文件中;
(34)所述的应用程序签名服务模块将程序文件、一次摘要文件、二次摘要文件、签名文件和开发者证书打包,生成签名后的应用程序包;
应用程序管理服务模块,用以对签名后的应用程序包进行开发者证书验证,并安装通过验证的应用程序包。
2.根据权利要求1所述的系统,其特征在于,所述的智能操作平台为智能机顶盒操作平台、智能手机操作平台或智能平板操作平台。
3.根据权利要求1所述的系统,其特征在于,所述的程序文件由所述的应用程序签名服务模块对开发者的应用程序包进行解压缩得到。
4.一种基于权利要求1至3中任一项所述的系统于智能操作平台中实现用户和开发者划分控制的方法,其特征在于,所述的方法包括以下步骤:
(1)所述的开发者网站服务模块获取开发者的注册信息,并生成开发者编号;
(2)所述的应用程序签名服务模块获取申请证书的开发者的开发设备编号和所对应的开发者编号生成开发者证书,并发送至所述的开发者网站服务模块;
(3)所述的应用程序签名服务模块获取开发者的开发者证书和开发者的应用程序包并对开发者的应用程序包进行签名;
(4)所述的应用程序管理服务模块对签名后的应用程序包进行开发者证书验证,并安装通过验证的应用程序包;
所述的步骤(1)和(2)之间,还包括以下步骤:
(11)所述的开发者网站服务模块根据用户的注册信息和应用商店数据库的信息对开发者进行审核;
所述的注册信息包括开发者对应的开发设备编号、开发者公钥、开发者个人资料和应用程序包名称,所述的开发者网站服务模块根据用户的注册信息和应用商店数据库的信息对开发者进行审核,具体为:
所述的开发者网站服务模块判断所述的开发者公钥和应用程序包名称是否已在所述的应用商店数据库中存在,如果是,则提示身份审核失败,并结束退出,否则继续步骤(2);
所述的应用程序签名服务模块获取开发者的开发者证书和开发者的应用程序包,并对开发者的应用程序包进行签名,还包括以下步骤:
(32)所述的应用程序签名服务模块对所述的程序文件计算二次摘要结果,并将二次摘要结果写入一次摘要文件和二次摘要文件中;
(33)所述的应用程序签名服务模块使用私钥对所述的二次摘要文件计算签名结果,并将签名结果和开发者公钥打包写入签名文件中;
(34)所述的应用程序签名服务模块将所述的程序文件、一次摘要文件、二次摘要文件、签名文件和开发者证书打包,生成签名后的应用程序包。
5.根据权利要求4所述的方法,其特征在于,所述的应用程序签名服务模块获取开发者的开发者证书和开发的应用程序包,并对开发者的应用程序包进行签名,包括以下步骤:
(31)所述的应用程序签名服务模块对开发者的应用程序包进行解压缩得到程序文件。
6.根据权利要求4所述的方法,其特征在于,所述步骤(32)包括以下步骤:
(321)所述的应用程序签名服务模块对所述的程序文件分别计算摘要结果,并将摘要结果逐一写入一次摘要文件中;
(322)所述的应用程序签名服务模块对所述的一次摘要文件中的内容计算摘要结果并将摘要结果写入二次摘要文件中;
(323)所述的应用程序签名服务模块对所述的一次摘要文件中的每个摘要项分别计算摘要结果并将摘要结果写入所述的二次摘要文件中。
7.根据权利要求6所述的方法,其特征在于,所述的应用程序签名服务模块对所述的程序文件分别计算摘要结果,具体为:
所述的应用程序签名服务模块对所述的程序文件分别采用SHA1、SHA或MD5算法计算摘要结果;
所述的应用程序签名服务模块对所述的一次摘要文件中的内容计算摘要结果,具体为:
所述的应用程序签名服务模块对所述的一次摘要文件中的内容采用SHA1算法计算摘要结果;
所述的应用程序签名服务模块对所述的一次摘要文件中的每个摘要项分别计算摘要结果,具体为:
所述的应用程序签名服务模块对所述的一次摘要文件中的每个摘要项采用SHA1算法分别计算摘要结果。
8.根据权利要求4所述的方法,其特征在于,所述的应用程序管理服务模块对签名后的应用程序包进行开发者证书验证,并安装通过验证的应用程序包,包括以下步骤:
(41)所述的应用程序管理服务模块对签名后的应用程序包进行解压缩;
(42)所述的应用程序管理服务模块获取开发者公钥、应用程序包名称、开发者编号和设备信息,并对解压缩得到的开发者证书进行验证,如果验证成功,则继续步骤(44),否则继续步骤(43);
(43)所述的应用程序管理服务模块提示验证失败,然后结束退出;
(44)所述的应用程序管理服务模块打开应用程序安装并判断解压缩得到的开发者公钥和应用程序商店存储的公钥是否一致,如果是,则继续步骤(45),否则继续步骤(43);
(45)所述的应用程序管理服务模块利用二次摘要文件对开发者证书进行验证,如果验证成功,则继续步骤(46),否则继续步骤(43);
(46)所述的应用程序管理服务模块利用二次摘要文件对签名文件进行验证,如果验证成功,则继续步骤(47),否则继续步骤(43);
(47)所述的应用程序管理服务模块对一次摘要文件内容和一次摘要文件中的各项分别进行摘要计算和BASE64编码并将结果与所述的二次摘要文件进行对比,如果一致,则继续步骤(48),否则继续步骤(43);
(48)所述的应用程序管理模块对应用程序文件进行摘要计算和BASE64编码并将结果与一次摘要文件进行对比,如果一致,则继续步骤(49),否则继续步骤(43);
(49)所述的应用程序管理模块提示验证成功并进行应用程序安装。
CN201510562565.3A 2015-09-07 2015-09-07 智能操作平台中实现用户和开发者划分控制的系统及方法 Active CN105227545B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510562565.3A CN105227545B (zh) 2015-09-07 2015-09-07 智能操作平台中实现用户和开发者划分控制的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510562565.3A CN105227545B (zh) 2015-09-07 2015-09-07 智能操作平台中实现用户和开发者划分控制的系统及方法

Publications (2)

Publication Number Publication Date
CN105227545A CN105227545A (zh) 2016-01-06
CN105227545B true CN105227545B (zh) 2018-09-25

Family

ID=54996224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510562565.3A Active CN105227545B (zh) 2015-09-07 2015-09-07 智能操作平台中实现用户和开发者划分控制的系统及方法

Country Status (1)

Country Link
CN (1) CN105227545B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480484A (zh) * 2016-11-02 2017-12-15 深圳市波普安创技术有限公司 信息安全设备的合法应用调试系统及其方法
CN106650322A (zh) * 2016-12-15 2017-05-10 Tcl集团股份有限公司 一种安卓系统下apk安装授权方法及系统
CN106712963A (zh) * 2016-12-27 2017-05-24 艾体威尔电子技术(北京)有限公司 一种pos防切机远程签名系统及方法
US10810004B2 (en) * 2017-06-30 2020-10-20 Oracle International Corporation System and method for managing a public software component ecosystem using a distributed ledger
CN108280947A (zh) * 2017-11-29 2018-07-13 艾体威尔电子技术(北京)有限公司 一种pos机远程解锁的系统和方法
CN111046376B (zh) * 2018-10-11 2022-05-17 中国人民解放军战略支援部队航天工程大学 基于安装包的分发审核方法及装置
CN111274552A (zh) * 2020-01-07 2020-06-12 惠州市德赛西威汽车电子股份有限公司 一种升级包的签名及验签方法、存储介质
CN111324887A (zh) * 2020-02-25 2020-06-23 广东天波信息技术股份有限公司 一种应用程序的安装控制方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663320A (zh) * 2012-04-12 2012-09-12 福建联迪商用设备有限公司 终端识别开发者及划分不同权限开发者的方法
CN102883321A (zh) * 2012-09-21 2013-01-16 哈尔滨工业大学深圳研究生院 一种面向移动微技的数字签名认证方法
CN104426658B (zh) * 2013-09-02 2017-12-01 中国移动通信集团公司 对移动终端上的应用进行身份验证的方法及装置
CN104331658A (zh) * 2014-11-14 2015-02-04 北京视博数字电视科技有限公司 一种智能终端应用程序的安装验证方法及系统

Also Published As

Publication number Publication date
CN105227545A (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
CN105227545B (zh) 智能操作平台中实现用户和开发者划分控制的系统及方法
US10796379B2 (en) Handing requests in a consensus network
KR101740256B1 (ko) 모바일 앱 무결성 보증 장치 및 방법
CN107463806B (zh) 一种Android应用程序安装包的签名和验签方法
CN106055936B (zh) 可执行程序数据包加密/解密方法及装置
CN104426658B (zh) 对移动终端上的应用进行身份验证的方法及装置
CN109194625B (zh) 一种基于云端服务器的客户端应用保护方法、装置及存储介质
CN104363264A (zh) 移动终端软件的多渠道sdk接入系统及方法
US10148440B2 (en) Binary code authentication
CN111191195A (zh) 一种用于保护apk的方法和装置
CN108710500A (zh) 资源发布方法、更新方法和装置
CN107301343A (zh) 安全数据处理方法、装置及电子设备
CN104320265A (zh) 用于软件平台的认证方法和认证装置
CN111045722B (zh) 智能合约打包方法、装置、系统、计算机设备及存储介质
CN106789075A (zh) Pos数字签名防切机系统
Dadeau et al. Model‐based mutation testing from security protocols in HLPSL
CN104965701B (zh) 获取应用信息的方法及装置
JP5278495B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
CN106888094B (zh) 一种签名方法及服务器
CN111222181B (zh) Ai模型的监管方法、系统、服务器及存储介质
CN107145342B (zh) 应用的渠道信息的处理方法和装置
CN106778227A (zh) 应用程序处理方法、应用程序启动方法及装置
CN107404391A (zh) 版本文件校验方法及装置和加密方法及装置
CN114238870A (zh) 一种网络请求处理方法、装置、设备及存储介质
CN109298869A (zh) 一种目标渠道包的生成方法及相关装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant