程序开发维护系统的制作方法

文档序号:7965503阅读:132来源:国知局
专利名称:程序开发维护系统的制作方法
技术领域
本发明涉及计算机网络信息技术,特别涉及一种程序开发维护系统。
背景技术
对于需要在多开发/运维终端+服务器环境下进行程序源代码开发、运维的需求场景,也就是说需要在服务器环境存放程序源代码,用于支持开发和运维的场景下,常常存在着源代码明文存储、不限制存取权限范围和访问文件数量、不限制访问的终端、不限制代码的非法复制、不限制·服务端非法迁移等问题。这需要同时解决代码加/解密、通信的加密传输、权限化访问与控制、可访问性验证等问题。专利号为200410103471.1的中国专“用于应用服务器的基于令牌的细粒度访问控制系统及方法”公开了一种访问控制系统,该系统包括:需要访问应用服务器中资源/能力的业务单元,由保护安全的代码组成的业务代理单元,由各种文件资源、网络资源、数据库资源和其它资源和/或能力组成的系统资源/能力单元,由顺序连接的访问控制检查器、系统安全控制器和安全策略管理器组成的访问控制单元,以及由结果缓存表、访问权限令牌表、主体令牌表、令牌索引表和其它安全控制表组成的控制访问的令牌与数据存储单元,各部分相互配合完成基于令牌的细粒度访问控制。该系统不仅能够有效控制各种访问操作,提高应用服务器的安全性,而且效率高,在对系统进行安全保护的同时,能尽量减少其对系统正常处理操作的影响。但它依然存在以下技术问题: 不能进行程序代码的加/解密 不能实现程序代码的加密通信传输 无法进行可访问性验证,即无法实现对开发端可访问性验证、非法复制及服务端非法迁移验证。

发明内容
本发明要解决的技术问题是提供一种程序开发维护系统,能防止在服务器环境下程序源代码的非法泄漏和篡改,提高程序开发维护系统中的程序源代码的安全性。为解决上述技术问题,本发明的程序开发维护系统,包括一服务器、多个开发运维终端,服务器同各开发运维终端间互联网络通信;所述服务器,包括服务端许可证、服务端许可证验证模块、登录授权模块、动态密钥解析模块、代码服务模块、代码数据库;所述服务端许可证,记录有服务端验证信息、代码安全策略;所述服务端验证信息,用于进行服务器可访问性验证;所述代码安全策略,包括所托管开发端许可证的验证信息及对应的请求权限;所述动态密钥解析模块,用于解析接收到的开发运维终端动态密钥,得到该开发运维终端上的开发端许可证的开发端验证信息及请求事项信息,请求事项信息包括请求命令类型,请求命令类型包括登录、代码操作;
所述服务端许可证验证模块,在所述动态密钥解析模块得到开发端验证信息及请求事项信息后,依据服务端许可证的服务端验证信息先对服务器的可访问性进行验证,在服务器的可访问性验证通过后,再依据服务端许可证的代码安全策及解析得到的开发端验证信息、请求事项信息对发送请求命令的开发运维终端上的开发端许可证的有效性以及请求事项的权限进行验证;所述登录授权模块,在服务端许可证验证模块对发送请求命令的开发运维终端上的开发端许可证的有效性以及登陆请求的权限验证通过后,把在所述服务端许可证中的代码安全策略对该开发端许可证的授权内容,发送给该开发运维终端;所述代码服务模块,用于在服务端许可证验证模块对发送请求命令的开发运维终端上的开发端许可证的有效性以及代码操作请求的权限验证通过后,完成相应的代码操作服务并返回结果到该开发运维终端;所述代码数据库,用于存放代码文件;所述开发运维终端,包括开发端许可证、开发端许可证验证模块、登录模块、动态密钥生成模块;所述开发端许可证,记录有开发端验证信息;所述开发端许可证验证模块,用于在开发运维终端向服务器发送任何请求时,依据开发端许可证记录的开发端验证信息对开发运维终端的可访问性进行验证;所述登录模块,用于发送登录请求,还用于根据服务器的登录授权模块发送的授权内容得到授权文件列表,并支持对授权文件列表中的授权文件发出代码操作请求;所述动态密钥生成模块,用于在所述开发端许可证验证模块对开发运维终端的可访问性验证通过后,根据所述登录模块发出登录请求或代码操作请求,以及开发端许可证的服务端验证信息,生成一个动态密钥,发送到服务器。所述开发运维终端还包括一代码编辑模块;所述代码编辑模块,用于编辑代码文件,所述代码编辑模块允许从外部向由其打开的代码文件内粘贴代码,允许在由其打开的几个代码文件间复制粘贴代码,禁止将由其打开的代码文件的代码复制粘贴到不是由其打开的文件中。所述代码编辑模块打开的代码文件包括从所述服务器代码数据库中下载的代码文件。所述服务端验证信息,包括Mac地址、IP地址;所述代码安全策略,包括托管开发端许可证的许可证识别码及对应的请求权限;所述开发端验证信息,包括许可证识别码、Mac地址、IP地址;如果服务器的Mac地址、IP地址同所述服务端验证信息的Mac地址、IP地址一致,则对服务器的可访问性验证通过;如果解析得到的开发端许可证识别码同代码安全策略中的托管开发端许可证的许可证识别码一致,则该开发端许可证的有效性验证通过;如果代码安全策略中所托管开发端许可证的许可证识别码对应的请求权限包括解析得到的请求事项,则开发运维终端的请求事项的权限验证通过;如果开发运维终端的Mac地址、IP地址同所述开发端验证信息的Mac地址、IP地址一致,则对该开发运维终端的可访问性验证通过。
代码操作请求包括下载代码数据库中的代码、上传代码到代码数据库、对代码数据库中的代码加解密。本发明的程序开发维护系统,在开发运维终端提出服务器登录请求时,必须通过开发端许可证,对开发运维终端进行身份验证,验证通过之后,开发运维终端自动生成一个登录请求动态密钥,凭此密钥才能向服务器申请登录,服务端根据密钥及服务端许可证记录的权限内容返回其授权的代码文件列表,此过程不会返回具体代码内容,这种方式保证了由服务器控制开发运维终端的授权内容。此外,动态密钥在开发运维终端每次向服务端发出请求时都使用,这就保证了每次请求的密钥不能被重复使用,避免权限变更时的出现安全性问题。开发运维终端用户选择获取的授权代码文件并提出代码操作请求时,会再次通过开发端许可证对开发运维终端进行身份验证,服务器上的代码服务模块完成相应的代码操作服务并返回结果到该开发运维终端,服务器上的代码服务模块会自动解密出代码数据库中的授权代码文件代码内容、自动加密开发运维终端上传的代码文件代码内容并保存在代码数据库中,由此实现了代码文件代码的自动加密、解密。本发明的程序开发维护系统,在开发运维终端部署开发端许可证,在服务器部署服务端许可证。在开发运维终端提出服务器登录请求时,必须根据开发端许可证对开发运维终端进行身份验证,验证通过之后,开发运维终端才自动生成一个登录请求动态密钥发送到服务器,这样即使拿到了开发端许可证,但如果更换了开发运维端,由于无法通过开发运维终端可访问性验证,开发运维端也无法向服务器提出任何请求。服务器每次接受开发运维终端请求时都根据服务端许可证进行服务器可访问性验证,验证通过之后,服务器才对开发运维终端的具体请求命令进行处理,这样即使将现有的系统镜像至其它主机,都会由于未通过服务器可访问性验证而拒绝执行任何请求命令,能防止服务器的非法迁移。本发明的程序开发维护系统,基于许可证进行服务器环境下程序源代码的权限管控,可有效防止在服务器环境下程序源代码的非法泄漏和篡改,有效保护软件资产,提高软件开发及运维的系统安全性。


为了更清楚地说明本申请或现有技术中的技术方案,下面将对本申请或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本发明的程序开发维护系统一实施例示意图;图2为本发明的程序开发维护系统生成的动态密钥一实施例示意图;图3为本发明的程序开发维护系统一实施例登录服务器流程图;图4为本发明的程序开发维护系统一实施例向服务器发出代码操作请求流程图。
具体实施例方式下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本申请保护的范围。本发明的程序开发维护系统一实施例如图1所示,包括一服务器、多个开发运维终端;服务器同各开发运维终端间互联网络通信;所述服务器,包括服务端许可证、服务端许可证验证模块、登录授权模块、动态密钥解析模块、代码服务模块、代码数据库;所述服务端许可证,以加密文件方式存在,记录有服务端验证信息、代码安全策略;所述服务端验证信息,用于进行服务器可访问性验证,所述服务端验证信息包括许可证识别码、Mac (Medium/Media Access Control,介质访问控制)地址、IP地址、特征识别码等等;所述代码安全策略,包括所托管开发端许可证的许可证识别码等验证信息和及对应的请求权限;所述动态密钥解析模块,用于解析接收到的开发运维终端动态密钥,得到该开发运维终端上的开发端许可证的开发端验证信息及请求事项信息,请求事项信息包括请求命令类型、请求命令参数(如请求代码文件的名称)等,请求命令类型包括登录、代码操作等,代码操作包括下载代码数据库中的代码、上传代码到代码数据库、对代码数据库中的代码编译等;所述服务端许可证验证模块,在所述动态密钥解析模块得到开发端验证信息及请求事项信息后,依据服务端许可证的服务端验证信息先对服务器的可访问性进行验证,在服务器的可访问性验证通过后,再依据服务端许可证的代码安全策及解析得到的开发端验证信息、请求事项信息对发送请求命令的开发运维终端上的开发端许可证的有效性以及请求事项的权限进行验证;如果服务器的Mac地址、IP地址同所述服务端验证信息的Mac地址、IP地址一致,则对服务器的可访问性验证通过;如果解析得到的开发端许可证识别码等开发端验证信息同代码安全策略中所托管开发端许可证的许可证识别码等验证信息一致,则该开发端许可证的有效性验证通过;如果代码安全策略中所托管开发端许可证的许可证识别码等验证信息对应的请求权限包括解析得到的请求事项,则开发运维终端的请求事项的权限验证通过;所述登录授权模块,在服务端许可证验证模块对发送请求命令的开发运维终端上的开发端许可证的有效性以及登陆请求的权限验证通过后,把在所述服务端许可证中的代码安全策略对该开发端许可证的授权内容,发送给该开发运维终端;所述代码服务模块,用于在服务端许可证验证模块对发送请求命令的开发运维终端上的开发端许可证的有效性以及代码操作请求的权限验证通过后,完成相应的代码操作服务并返回结果到该开发运维终端,如完成下载代码数据库中的代码的操作请求,将代码数据库中的代码文件发送到该开发运维终端;完成上传代码到代码数据库的操作请求,将该开发运维终端上的代码文件加密后存放在代码数据库中;完成对代码数据库中的代码编译的操作请求,将选定的代码数据库中的代码文件解密后编译并将编译后文件发送到开发运维终端;所述代码数据库,用于存放代码文件;
所述开发运维终端,包括开发端许可证、开发端许可证验证模块、登录模块、动态密钥生成模块、代码编辑模块;所述开发端许可证,以加密文件方式存在,用于进行开发运维终端可访问性验证,记录有许可证识别码、Mac地址、IP地址、特征识别码等开发端验证信息;所述开发端许可证验证模块,用于在开发运维终端向服务器发送任何请求时,依据开发端许可证记录的开发端验证信息对开发运维终端的可访问性进行验证;如果开发运维终端的Mac地址、IP地址等同所述开发端验证信息的Mac地址、IP地址一致,则对该开发运维终端的可访问性验证通过;所述登录模块,用于发送登录请求,还用于根据服务器的登录授权模块发送的授权内容得到授权文件列表,并支持对授权文件列表中的授权文件发出下载、编译等代码操作请求,支持对开发运维终端上的代码文件发出上传等代码操作请求;所述代码编辑模块,用于编辑代码文件,所述代码编辑模块允许从外部向由其打开的代码文件内粘贴代码,允许在由其打开的几个代码文件间复制粘贴代码,禁止将由其打开的代码文件的代码复制粘贴到不是由其打开的文件中,所述代码编辑模块打开的代码文件可以是从所述服务器代码数据库中下载的代码文件,也可以是开发运维终端本地形成的代码文件。所述动态密钥生成模块,用于在所述开发端许可证验证模块对开发运维终端的可访问性验证通过后,根据所述登录模块发出登录请求或代码操作请求,以及开发端许可证的服务端验证信息,生成一个动态密钥,发送到服务器。

所述动态密钥生成模块生成动态密钥、所述动态密钥解析模块解析接收到的动态密钥的一具体实例如下:如图2所示,动态密钥包括5个部分:解析密钥区、时间戳区、许可证识别码区、请求命令区、请求参数区。其中,解析密钥区长度8位,由在1000至9999间的随机整数加密而成;时间戳区长度28位,由开发端14位本地时间加密而成;许可证识别码区长度64位,由开发端许可证的许可证识别码加密而成;请求命令区长度4位,由10至99数字组成,代表请求命令类型,如10表示登录、20表示下载、21表示上传、22表示编译等;请求参数区位于密钥尾部,长度不限,由请求代码文件的名称加密而成。动态密钥的生成步骤是:■随机生成解析密钥的4位整数(1000至9999)■获取时间戳,为14位时间字符串,格式是yyyyMMddhhmmss■以时间戳为加密密钥,使用3DES通用加密算法(下同),加密解析密钥的4位数构成的字符串,并用16进制格式生成为8位字符串,存储在解析密钥区■以8位加密后的解析密钥为加密密钥,加密14位时间戳,并用16进制格式生成28位字符串,存储在时间戳区■以未加密的解析密钥4位整数的字符串为加密密钥,分别加密许可证识别码、请求命令、请求参数,并将加密后的密文转为16进制字符串,存储相应的区中■连接所有区为一个字符串,生成动态密钥。所述动态密钥解析模块,根据接收到的开发运维终端动态密钥,解析出许可证识别码、请求命令类型、请求命令参数等关键信息。其解析过程是上述开发端动态密钥生成模块的生成动态密钥的逆过程,具体为:
■抽取动态密钥的前8位,即解析密钥区,以此为解密密钥,使用3DES解密算法(下同),解析动态密钥的第9位到37位共28位字符,即时间戳区,得到明文时间戳■以明文时间戳,解析动态密钥中的解析密钥区,得到4位整数■以4位整数分别解析动态密钥中的许可证识别码区、请求命令区、请求参数区,进而得到许可证识别码、请求命令类型、请求命令参数等。所述开发端许可证、服务端许可证可以由一许可证管理工具的创建、修改、注销。开发运维终端登录服务器的过程如如图3所示,用户通过开发运维终端登录模块提出服务器登录请求,所述开发端许可证验证模块进行开发运维终端可访问性验证,验证通过则所述动态密钥生成模块生成一个登录请求动态密钥发送到服务器,服务器上的动态密钥解析模块解析动态密钥,服务端许可证验证模块在动态密钥解析模块得到开发端验证信息及请求事项信息后,进行服务器的可访问性进行验证,验证通过则进行登陆请求的权限验证,在登陆请求的权限验证通过后,登录授权模块把授权内容发送给该开发运维终端,开发运维终端并以树状列表的形式显示有规定权限的代码文件。开发运维终端登录服务器后进行服务器代码操作的过程如如图4所示,用户通过开发运维终端登录模块提出代码操作请求,所述开发端许可证验证模块进行开发运维终端可访问性验证,验证通过则所述动态密钥生成模块生成一个代码操作请求动态密钥发送到服务器,服务器上的动态密钥解析模块解析动态密钥,服务端许可证验证模块在动态密钥解析模块得到开发端验证信息及请求事项信息后,进行服务器的可访问性进行验证,验证通过则进行代码操作请求的权限验证,在代码操作请求的权限验证通过后,代码服务模块完成相应的代码操作服务并返回结果到该开发运维终端。本发明的程序开发维护系统,在开发运维终端部署开发端许可证,在服务器部署服务端许可证。在开发运维终端提出服务器登录请求时,必须根据开发端许可证对开发运维终端进行身份验证,验证通过之后,开发运维终端才自动生成一个登录请求动态密钥发送到服务器,这样即使拿到 了开发端许可证,但如果更换了开发运维端,由于无法通过开发运维终端可访问性验证,开发运维端也无法向服务器提出任何请求。服务器每次接受开发运维终端请求时都根据服务端许可证进行服务器可访问性验证,验证通过之后,服务器才对开发运维终端的具体请求命令进行处理,这样即使将现有的系统镜像至其它主机,都会由于未通过服务器可访问性验证而拒绝执行任何请求命令,能防止服务器的非法迁移。动态密钥在开发运维终端每次向服务端发出请求时都使用,这就保证了每次请求的密钥不能被重复使用,避免所托管开发端许可证的请求权限变更时出现安全性问题。服务端根据登录请求动态密钥及服务端许可证记录的权限内容返回其授权的代码文件列表,此过程不会返回具体代码内容,这种方式保证了由服务器控制开发运维终端的授权内容。开发运维终端用户选择获取的授权代码文件并提出代码操作请求时,会再次通过开发端许可证对开发运维终端进行身份验证,服务器上的代码服务模块完成相应的代码操作服务并返回结果到该开发运维终端,服务器上的代码服务模块会自动解密出代码数据库中的授权代码文件代码内容、自动加密开发运维终端上传的代码文件代码内容并保存在代码数据库中,由此实现了代码文件代码的自动加密、解密;执行代码编译操作请求时,由服务器上的代码服务模块自动解密出代码数据库中的授权代码文件进行编译,编译结果放至服务器端规定目录下并发送到开发运维终端,同时自动清除解密的临时代码文件,由此实现了开发运维终端的代码编译操作。对开发运维终端进行可访问性验证,可以绑定IP或Mac地址等,考虑到开发环境的不稳定性和易变性,本方案可通过开发端许可证灵活设定绑定条件;通过服务端许可证的权限配置可以对开发运维端进行详细的控制,如控制开发运维端打开代码文件的数量、设置只读模式、设置不可复制模式等,这对于部分代码移交用户方,存在向第三方泄漏风险的场景下非常适合。
权利要求
1.一种程序开发维护系统,包括一服务器、多个开发运维终端,服务器同各开发运维终端间互联网络通信;其特征在于, 所述服务器,包括服务端许可证、服务端许可证验证模块、登录授权模块、动态密钥解析模块、代码服务模块、代码数据库; 所述服务端许可证,记录有服务端验证信息、代码安全策略; 所述服务端验证信息,用于进行服务器可访问性验证; 所述代码安全策略,包括所托管开发端许可证的验证信息及对应的请求权限; 所述动态密钥解析模块,用于解析接收到的开发运维终端动态密钥,得到该开发运维终端上的开发端许可证的开发端验证信息及请求事项信息,请求事项信息包括请求命令类型,请求命令类型包括登 录、代码操作; 所述服务端许可证验证模块,在所述动态密钥解析模块得到开发端验证信息及请求事项信息后,依据服务端许可证的服务端验证信息先对服务器的可访问性进行验证,在服务器的可访问性验证通过后,再依据服务端许可证的代码安全策及解析得到的开发端验证信息、请求事项信息对发送请求命令的开发运维终端上的开发端许可证的有效性以及请求事项的权限进行验证; 所述登录授权模块,在服务端许可证验证模块对发送请求命令的开发运维终端上的开发端许可证的有效性以及登陆请求的权限验证通过后,把在所述服务端许可证中的代码安全策略对该开发端许可证的授权内容,发送给该开发运维终端; 所述代码服务模块,用于在服务端许可证验证模块对发送请求命令的开发运维终端上的开发端许可证的有效性以及代码操作请求的权限验证通过后,完成相应的代码操作服务并返回结果到该开发运维终端; 所述代码数据库,用于存放代码文件; 所述开发运维终端,包括开发端许可证、开发端许可证验证模块、登录模块、动态密钥生成模块; 所述开发端许可证,记录有开发端验证信息; 所述开发端许可证验证模块,用于在开发运维终端向服务器发送任何请求时,依据开发端许可证记录的开发端验证信息对开发运维终端的可访问性进行验证; 所述登录模块,用于发送登录请求,还用于根据服务器的登录授权模块发送的授权内容得到授权文件列表,并支持对授权文件列表中的授权文件发出代码操作请求; 所述动态密钥生成模块,用于在所述开发端许可证验证模块对开发运维终端的可访问性验证通过后,根据所述登录模块发出登录请求或代码操作请求,以及开发端许可证的服务端验证信息,生成一个动态密钥,发送到服务器。
2.根据权利要求1所述的程序开发维护系统,其特征在于,所述开发运维终端还包括一代码编辑模块; 所述代码编辑模块,用于编辑代码文件,所述代码编辑模块允许从外部向由其打开的代码文件内粘贴代码,允许在由其打开的几个代码文件间复制粘贴代码,禁止将由其打开的代码文件的代码复制粘贴到不是由其打开的文件中。
3.根据权利要求2所述的程序开发维护系统,其特征在于,所述代码编辑模块打开的代码文件包括从所述服务器代码数据库中下载的代码文件。
4.根据权利要求1所述的程序开发维护系统,其特征在于, 所述服务端验证信息,包括Mac地址、IP地址; 所述代码安全策略,包括托管开发端许可证的许可证识别码及对应的请求权限; 所述开发端验证信息,包括许可证识别码、Mac地址、IP地址; 如果服务器的Mac地址、IP地址同所述服务端验证信息的Mac地址、IP地址一致,则对服务器的可访问性验证通过; 如果解析得到的开发端许可证识别码同代码安全策略中的托管开发端许可证的许可证识别码一致,则该开发端许可证的有效性验证通过; 如果代码安全策略中所托管开发端许可证的许可证识别码对应的请求权限包括解析得到的请求事项,则开发运维终端的请求事项的权限验证通过; 如果开发运维终端的Mac地址、IP地址同所述开发端验证信息的Mac地址、IP地址一致,则对该开发运维终端的可访问性验证通过。
5.根据权利要求1所述的程序开发维护系统,其特征在于,代码操作请求包括下载代码数据库中的代码、上传 代码到代码数据库、对代码数据库中的代码加解密。
全文摘要
本发明公开了一种程序开发维护系统,包括一服务器、多个开发运维终端;服务器包括服务端许可证、服务端许可证验证模块、登录授权模块、动态密钥解析模块、代码服务模块、代码数据库;开发运维终端包括开发端许可证、开发端许可证验证模块、登录模块、动态密钥生成模块。本发明的程序开发维护系统,基于许可证进行服务器环境下程序源代码的权限管控,可有效防止在服务器环境下程序源代码的非法泄漏和篡改,有效保护软件资产,提高软件开发及运维的系统安全性。
文档编号H04L12/24GK103095482SQ20111034885
公开日2013年5月8日 申请日期2011年11月7日 优先权日2011年11月7日
发明者周维, 王家炜, 魏震, 王森, 黄颖雷, 徐端, 魏广余 申请人:上海宝信软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1