CN105122255A - 权限受管的代码 - Google Patents

权限受管的代码 Download PDF

Info

Publication number
CN105122255A
CN105122255A CN201380066157.8A CN201380066157A CN105122255A CN 105122255 A CN105122255 A CN 105122255A CN 201380066157 A CN201380066157 A CN 201380066157A CN 105122255 A CN105122255 A CN 105122255A
Authority
CN
China
Prior art keywords
source code
access
software development
sdk
development kit
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.)
Pending
Application number
CN201380066157.8A
Other languages
English (en)
Inventor
B·埃瑟瑞
S·H·托布
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.)
Microsoft Technology Licensing LLC
Abbott Point of Care Inc
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105122255A publication Critical patent/CN105122255A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

提供了用于提供对源代码的受控访问的方法、***和计算机程序产品。加密源代码。配置对加密源代码的访问权限。加密源代码被主存在网络可访问的位置处。接收启用数字权限管理(DRM)的软件开发工具对加密源代码的访问尝试。根据配置的访问权限来实现启用DRM的软件开发工具对加密源代码的访问。

Description

权限受管的代码
背景
源代码是由代码开发者用人类可读的编程语言编写的计算机程序指令的集合。存在有助于软件开发者编写此类源代码的软件开发环境。软件开发环境可包括各种工具,诸如用于输入和编辑源代码的源代码编辑器、用于编译源代码的一个或多个构建自动化工具、以及代码调试器。市场上销售的软件开发环境的示例包括华盛顿州雷蒙德市微软公司开发的Visual加利福尼亚州雷德伍德市的甲骨文公司提供的英属哥伦比亚省温哥华市的ActiveState软件公司提供的
在一些情景中,对源代码的访问可以受到控制或限于特定人。例如,对源代码的访问可出于安全目的(例如为阻止代码盗窃等)而受到控制。对源代码的访问可以用各种方式来控制,诸如通过提供限制对源代码的访问的端口(例如终端或工作站),从而有效地控制通过其可以接触源代码并与源代码交互的环境。可以使用能够导航和查看源代码的特殊用户账户(例如客账户)通过该端口来使人们能够访问源代码。在另一示例中,在包含源代码文件的源控制储存库中,可以设置许可,该许可基于用户身份授予能够访问特定源代码文件的用户许可。例如,用户可以被授予阅读特定源代码文件的许可,但可以不被授予向那些文件进行写入的许可。
数字权限管理(DRM)是硬件制造商、发布者、版权所有者、以及旨在限制在销售之后对数字内容和设备的使用的个体所使用的一类访问控制技术。例如,微软公司开发的Office应用DRM技术通过可以被应用的有限许可集来控制对Word文档、PowerPoint电子表格等的访问。
概述
提供本发明内容以便以简化形式介绍将在以下详细描述中进一步描述的一些概念的选集。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
提供了用于提供对源代码的受控访问的方法、***和计算机程序产品。可以向源代码指派访问权限,包括常规访问权限(例如,诸如读、写等的访问权限)以及针对源代码和源代码开发环境定制的访问权限(例如,诸如编译、调试、分析、归纳、部署、复制、打印、发送电子邮件、保存/另存为、仅公开元数据、相关联的许可证、部署站点等访问权限和其他访问权限)。源代码可以被加密,使得加密源代码对各个计算设备可用且可被访问,但该源代码在没有首先被解密的情况下无法被读取、修改、或以其他方式与之交互。启用DRM(数字权限管理)的软件开发工具可以解密源代码并与之交互,如被指派给源代码的特定访问权限所启用的。
根据一种方法实现,加密源代码。配置对加密源代码的访问权限。加密源代码被主存在网络可访问的位置处。接收启用DRM的软件开发工具对加密源代码的访问尝试。根据配置的访问权限来实现启用DRM的软件开发工具对加密源代码的访问。
根据一种***实现,一种源代码访问管理器,包括加密模块、访问权限管理器、和代码访问接口。加密模块被配置成加密源代码。访问权限管理器被配置成启用对要被配置的加密源代码的访问权限。代码访问接口被配置成接收启用DRM的软件开发工具对加密源代码的访问尝试,并且根据所配置的访问权限来实现启用DRM的软件开发工具对加密源代码的访问。
根据另一种方法实现,根据软件开发工具启用的DRM来尝试加密源代码的访问。接收对加密源代码的访问。加密源代码被解密。根据被配置用于服务器处的加密源代码的访问权限来访问解密源代码。
根据另一***实现,软件开发工具包括被配置成为软件开发工具启用DRM的DRM模块。DRM模块包括代码访问请求器、解密模块、以及访问权限实施模块。代码访问请求器被配置成通过网络请求和接收对服务器处的加密源代码的访问。解密模块被配置成对加密源代码进行解密。访问权限实施模块被配置成根据为服务器处的加密源代码配置的访问权限来启用对解密源代码的访问。
本文还描述了包含计算机可读存储介质的计算机程序产品,存储用于使用启用DRM的工具来控制对源代码的访问的指令,存储用于处理针对源代码和源代码开发工具定制的访问权限以及实现本文描述的附加实施例的指令。
下面将参考各个附图,详细描述本发明的进一步特点和优点,以及本发明的各实施例的结构和操作。值得注意的是,本发明不仅限于此处所描述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术人员将是显而易见的。
附图简述
结合到本说明书并构成本说明书的一部分的附图示出了本发明,且与描述一起,进一步用于说明本发明的原理,并允许那些相关领域技术人员实施和使用本发明。
图1示出根据一示例实施例的针对启用数字权限管理(DRM)的开发工具控制对源代码的访问的软件开发***的框图。
图2示出根据一示例实施例的提供一种用于试图访问受保护源代码的启用DRM的软件开发工具的过程的流程图。
图3示出根据一示例实施例的包括多个软件开发工具并且试图访问受保护的源代码的软件开发环境的框图。
图4示出根据一示例实施例的提供一种用于控制启用DRM的软件开发工具对源代码的访问的过程的流程图。
图5示出根据一示例实施例的一种控制启用DRM的软件开发工具对源代码的访问的***的框图。
图6示出了可用于实现本发明的各实施例的示例计算机的框图。
当结合其中相同的附图标记标识对应的元素的附图时,本发明的特征和优点将从以下阐述的详细描述中变得更加显而易见。在附图中,相同的参考标号一般指相同的、功能上相似的和/或结构上相似的元素。其中元素第一次出现的附图由对应的参考标号中最左侧的数字指示。
详细描述
I.介绍
本说明书公开了包括本发明的各特征的一个或多个实施例。所公开的实施例只例示了本发明。本发明的范围不仅限于所公开的实施例。本发明由所附的权利要求进行限定。
说明书中对“一个实施例”、“一实施例”、“一示例实施例”等等的引用表示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可不必包括该特定特征、结构,或特征。此外,这些短语不一定指相同的实施例。此外,当关于某一实施例描述特定特征、结构或特性时,不管是否被明确描述,关于其他实施例来实现该特征、结构或特性被认为是在本领域技术人员的知识范围内。
本发明的多个示例性实施例在以下描述。应当注意,在此提供的任何章节/子章节标题不旨在限制。本文档中描述了各实施例,并且任何类型的实施例可被包括在任何章节/子章节下。此外,在任何章节/子章节中公开的各实施例可与在相同章节/子章节和/或不同章节/子章节中描述的任何其它实施例以任何方式组合。
II.示例实施例
源代码是用人类可读的编程语言编写的计算机程序指令的集合。存在有助于软件开发者编写源代码的软件开发环境。软件开发环境可包括各种工具,诸如用于输入和编辑源代码的源代码编辑器、用于编译源代码的一个或多个构建自动化工具、以及代码调试器。在一些情景中,对源代码的访问可以受到控制或限于特定人和/或工具。例如,对源代码的访问可出于安全目的(例如为阻止代码盗窃等)而受到控制。对源代码的访问可以用各种方式来控制,诸如基于用户的身份通过使用许可来授予用户对特定服务器和源代码文件的访问。在另一示例中,端口(portal)可用于限制对终端或工作站处的源代码的访问,从而有效地控制通过其可以接触源代码并与源代码交互的环境。由微软公司开发的RDP(远程桌面协议)以及由Citrix***公司提供的是用于提供此类端口的示例机制。
然而,用于控制对源代码的访问的此类技术可能是麻烦的,尤其在许多个体可能需要访问源代码时(例如,开发者、对源代码的同一部分或其他部分进行操作的其他开发者、代码审阅者等)。此外,应用于对源代码的访问的约束通常不会超过正常访问权限(例如,读/查看和写/修改)。而且,此类技术可能不是足够精细的,因为它们适用于条目文件,而非能够控制用户对文件的各个部分的访问,并且也不能够通过特定工具控制访问。
例如,可能期望授予第一用户对修改源代码文件中的特定函数的访问,而不必授予第一用户对修改整个文件的访问。可能期望阻止第二用户使其不能够阅读特定源代码文件,同时使得第二用户能够编译该文件。此外,可能期望允许第三用户阅读文件,同时阻止第三用户使其不能够从该文件进行复制粘贴。用于控制对源代码的访问的公知技术不能够提供这些类型的访问权限。
根据各实施例,使用权限管理技术来控制对源代码的访问。例如,在一实施例中,源代码可用加密形式被主存在网络上(例如,被主存在“云”中)。不要求特殊的环境或端口来访问源代码(尽管特殊环境或端口可附加地用于提供附加保护)。相反,可以使用在网络中建立的权限管理***来直接访问源代码。在网络中发生完整的开发体验。与源交互的每一工具是启用权限管理的,诸如启用数字权限管理(DRM)的。可以将一个或多个访问权限应用于加密源代码,并且启用权限管理的工具根据访问权限来实现对加密源代码的访问。提供针对源代码开发环境定制的新的访问权限。
相应地,应用于源代码的访问权限可被用于控制对源代码的各种形式的访问,包括限制什么种类的许可证能够与添加到项目的源代码相关联、控制来自项目的源代码是否能被共享、指示哪些开发者被允许查看或修改源代码的特定部分、根据开发***的架构层来授予许可等。关于源代码可启用的访问权限的其他示例包括“查看但不能复制”、“编译但不能查看”、“仅能查看开发者所拥有的代码”、“显示对代码的引用而非代码本身”等。访问权限可被配置成阻止对源代码的打印、阻止将源代码复制并粘贴到除了一个或多个期望开发工具之外的应用中、阻止将源代码作为电子邮件发送或上传源代码等。
可以用各种方式来配置各实施例以控制对源代码的访问。例如,图1示出根据一示例实施例的针对启用DRM的开发工具控制对源代码的访问的软件开发***100的框图。如图1所示,***100包括第一计算设备102a、第二计算设备102b、和服务器104,它们由网络106通信耦合。如图1所示,计算设备102a包括软件开发工具108a,计算设备102b包括软件开发工具108b,而服务器104包括源代码访问管理器110。此外,软件开发工具108a包括DRM模块112a而软件开发工具108b包括DRM模块112b。***100是作为一示例实施例来提供的,并且各实施例可以在替换环境中实现。下面描述***100。
服务器104中的源代码访问管理器110被配置成控制对服务器处的加密源代码118的访问。加密源代码118包括由一个或多个代码开发者生成并且被加密以阻止未经授权的实体对加密源代码118的读取的源代码。源代码访问管理器110可以加密源代码,使得访问权限能够被应用于源代码,并且根据访问权限促进开发者和其他实体对加密源代码118的访问。
被如此加密的源代码118可以广泛地由服务器104处的计算设备通过网络106来访问,但访问加密源代码118的实体不能够在没有首先对加密源代码118进行解密的情况下查看或以其他方式与其中加密的源代码交互。这一实施例因此提供了超越使用端口来限制其中可以访问源代码的环境的常规技术的优点。加密源代码118可以被计算设备广泛地访问,但访问加密源代码118的软件开发工具必须是启用DRM的(如本文所描述的)以与其中加密的源代码交互。
例如,源代码访问管理器110可以从软件开发工具108a和软件开发工具108b接收对访问加密源代码118的请求。例如,如图1所示,服务器104中的源代码访问管理器110可以通过网络106从计算设备102a中的软件开发工具108a接收请求114。开发者或其他实体可以与软件开发工具108a交互以开发/编程程序代码形式的加密源代码118、编译源代码、调试源代码等。响应于请求114,源代码访问管理器110将加密源代码118中的一些或全部提供给软件开发工具108a。例如,如图1所示,计算设备102a中的软件开发工具108a可以从服务器104中的源代码访问管理器110接收加密源代码部分116。加密源代码部分116包括加密源代码118中的一些或全部,并且可包括与加密源代码相关联的访问权限信息(例如以元数据的形式等)。DRM模块112a使得软件开发工具108a能够根据访问权限信息与加密源代码部分116交互。
例如,DRM模块112a(和DRM模块112b)启用DRM功能,诸如包括限制在销售之后对数字内容的使用并且适用于在如此处所述的软件开发环境中限制对源代码的访问的一个或多个专用或市售权限控制技术。DRM模块112a至少部分地通过为软件开发工具108a启用解密以及根据指派给源代码的访问权限来控制软件开发工具108a对源代码的访问来为软件开发工具108a启用DRM(DRM模块112a阻止软件开发工具108a违反所指派的访问权限来与源代码交互)。
服务器104可以是能够提供内容的任何类型的计算设备,并且可包括一个或多个计算设备。计算设备102a和102b可各自是任何类型的固定或移动计算设备,包括固定计算机(例如,个人计算机、服务器等)或移动计算设备,诸如手持设备(例如,设备、设备、个人数字助理(PDA))、膝上型计算机、笔记本计算机、平板计算机(例如,苹果iPadTM、微软SurfaceTM等)、上网本、移动电话(例如,智能手机,诸如苹果iPhone、GoogleAndroidTM手机、微软phone等)、或其它类型的计算设备。
软件开发工具108a和108b可以各自包括任何类型的市售或专用软件开发工具、软件开发环境、或集成开发环境。软件开发工具的示例包括代码编辑器、编译器、调试器、静态分析工具、剖析器、部署工具等。软件开发环境的示例包括华盛顿州雷蒙德市微软公司开发的Visual加利福尼亚州雷德伍德市的甲骨文公司提供的英属哥伦比亚省温哥华市的ActiveState软件公司提供的软件开发工具108a和108b的这些示例仅仅出于解说的目的来提供,并且不旨在进行限制,因为存在许多其他类型的适用软件开发工具和环境,如相关领域技术人员知晓的。
加密源代码118可包括任何类型的编程语言的源代码,包括C/C++、VB.NET(VisualBasic.NET)、C#、F#、M、Python、Ruby、XML/XSLT、HTML/XHTML、Java、JavaScript、CSS、SQL、BPEL、PHP、Perl、Tcl等。编程语言的这些示例仅仅出于解说的目的来提供,并且不旨在进行限制,因为存在许多其他类型的适用编程语言,如相关领域技术人员知晓的。
计算设备102a和102b以及服务器104通过网络106来通信地耦合。网络106可包括一个或多个通信链路和/或通信网络,诸如PAN(个域网)、LAN(局域网)、WAN(广域网)、或网络的组合,诸如因特网。可使用各种链路来将计算设备102a和102b以及服务器104通信地耦合到网络106,该各种链路包括有线和/或无线链路,如IEEE802.11无线局域网(WLAN)无线链路、全球微波互联接入(Wi-MAX)链路、蜂窝网络链路、无线个人区域网络(PAN)链路(例如,BluetoothTM链路)、以太网链路、USB链路等等。
出于解说的目的在图1中示出两个计算设备102a和102b。然而,在***100中可以存在与服务器104通信以访问源代码的任何数目的计算设备,包括数十个、数百个、数千个、甚至更多数目的计算设备。此外,尽管加密源代码在上文被描述为从服务器104传送到计算设备102a和102b,但在另一实施例中,加密源代码可以由服务器104处的软件开发工具108a和/或108b通过网络106来对其进行操作。在另一实施例中,加密源代码118和软件开发工具108a可驻留在同一计算设备中,而源代码访问管理器110位于服务器104处。在又一实施例中,源代码访问管理器110、加密源代码118、和软件开发工具108a可以驻留在同一计算设备中。
在各实施例中,图1中示出的软件开发***100的各元素可以用各种方式来配置。在随后的子章节中描述了软件开发***100的示例实施例。
A.用于从软件开发工具访问受保护源代码的示例实施例
如上所述,软件开发工具108a和108b是被配置成访问具有相关联的访问权限的源代码的启用DRM的软件开发工具。在各实施例中,软件开发工具108a和108b可以用各种方式来配置,并且可以用各种方式来操作。
例如,图2示出根据一示例实施例的提供一种用于试图访问受保护源代码的启用DRM的软件开发工具的过程的流程图200。在一实施例中,图1的软件开发工具108a和108b可以各自根据流程图200来操作。出于解说的目的,图2的流程图200结合图3来描述。图3示出根据一示例实施例的包括多个软件开发工具并且试图访问受保护的源代码的软件开发环境300的框图。如图3所示,软件开发环境300包括DRM模块302、代码编辑器304、编译器306、调试器308、静态分析工具310、剖析器312、和部署工具314。DRM模块302是图1中的DRM模块112a和112b的示例。DRM模块302使得能够对于软件开发环境300处的源代码实施访问权限。DRM模块302包括代码访问请求器316、解密模块318、和访问权限实施模块320。软件开发环境300是图1的软件开发工具108的一个示例。在其他实施例中,软件开发工具108可包括DRM模块302以及以下各项中的任何一者或多者:代码编辑器304、编译器306、调试器308、静态分析工具310、剖析器312、和部署工具314。流程图200和软件开发环境300描述如下。基于以下描述,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。
流程图200开始于步骤202。在步骤202,根据为软件开发工具启用的数字权限管理(DRM)在服务器处通过网络试图访问加密源代码。根据各实施例,软件开发环境300使得加密源代码能够被访问,无论该源代码与软件开发环境300在同一设备中,还是位于通过网络远离软件开发环境300。参考图3的示例,软件开发环境300可以向服务器104(图1)中的源代码访问管理器110传送请求114。请求114是软件开发环境300对访问加密源代码118的请求。软加开发环境300可能出于各种原因期望访问加密源代码118。
例如,参考图3,请求114可以基于代码编辑器304来生成。在生成包括在或要被包括在加密源代码118中的源代码时,开发者可以与软件开发环境300的代码编辑器304交互以输入和编辑程序代码。例如,开发者可以诸如通过键入、通过语音输入等使用代码编辑器304来添加、修改、或删除程序代码文本。代码编辑器304可包括搜索和/或发现工具(例如,用于对源代码执行关键词搜索等)。在完成时或在其他间隙时,用户能够通过与“保存”按钮或其他用户界面元素交互来保存程序代码。由此,代码编辑器304可以响应于开发者试图使用代码编辑器304来开发解密源代码118而使得请求114被传送。
在另一示例中,请求114可以基于编译器306来生成。用户可以与软件开发环境300的编译器306交互以编译加密源代码118的源代码。编译器306通过将源代码从其被编写的编程语言(源语言)变换成另一计算机语言(目标语言,通常具有被称为对象代码的二进制形式)、创建可执行程序来编译源代码。由此,编译器306可以响应于用户试图使用编译器306来编译源代码而使得请求114被传送。
在另一示例中,请求114可以基于调试器308来生成。用户可以与软件开发环境300的调试器308交互以调试加密源代码118的源代码。调试器308通过使得源代码能够被逐步执行、在断点处停止执行、跟踪变量的值、和/或以其他方式使得源代码能够被测试来调试源代码。由此,调试器308可以响应于用户试图使用调试器308来调试源代码而使得请求114被传送。
在另一示例中,请求114可以基于静态分析工具310来生成。用户可以与软件开发环境300的静态分析工具310交互以静态地分析加密源代码118的源代码。静态分析工具310可以通过执行模型检查、数据流分析、抽象解读、和/或对源代码的其他形式的静态分析来静态地分析源代码(例如在不执行的情况下)。由此,静态分析工具310可以响应于用户试图使用静态分析工具310来对源代码执行静态分析而使得请求114被传送。
在另一示例中,请求114可以基于剖析器312来生成。用户可以与软件开发环境300的剖析器312交互以动态地分析加密源代码118的源代码。剖析器312可以通过确定正在运行的程序使用多少存储器空间、正在运行的程序的各方面使用的时间量、特定指令的使用、函数调用的频率和/或历时、和/或对源代码的执行其他形式的动态分析来动态地分析源代码(例如在执行期间)。由此,剖析器312可以响应于用户试图使用剖析器312来剖析源代码而使得请求114被传送。
在另一示例中,请求114可以基于部署工具314来生成。用户可以与软件开发环境300的部署工具314交互以部署加密源代码118的源代码以创建程序实例。例如,部署工具314可以将经编译的源代码部署到网络上的一位置以生成程序实例,或者可以将原始(未经编译的)源代码部署到网络上的一位置。未经编译的源代码可以在第一次访问时以及当源代码被改变时的任何将来时间点被动态地编译(例如在web服务器上)。由此,部署工具314可以响应于用户试图使用部署工具314来部署源代码而使得请求114被传送。
代码访问请求器316可以监视(存在的)代码编辑器304、编译器306、调试器308、静态分析工具310、剖析器312、和部署工具314中的每一者以获得期望访问加密源代码118(图1)的指示并且作为响应可以生成请求114。请求114可以指示软件开发工具请求加密源代码118的任何一部分,包括加密源代码118的全部。
注意到,不必在每次试图访问源代码时都生成请求114。例如,客户端(例如,计算设备102a)和服务器可以驻留在同一设备中并且因此将不需要网络请求。在另一示例中,客户端可以高速缓存接收自服务器的访问权限信息,以使得后续请求可以根据这一本地高速缓存来满足(直到出于某个或其他原因高速缓存期满)。
回头参考图2,在步骤204,接收对加密源代码的访问。如图3所示,响应于请求114,代码访问请求器316接收加密源代码部分116(从图1中的源代码访问管理器110)。加密源代码部分116包括加密源代码118中的一些或全部,并且可包括与加密源代码相关联的访问权限信息(例如以元数据的形式等)。如图3所示,代码访问请求器316输出加密源代码部分116和访问权限328。访问权限328包括与加密源代码部分116相关联的访问权限。
在步骤206,对加密源代码进行解密。如图3所示,解密模块318接收加密源代码部分116。此外,解密模块318从访问权限实施模块320接收加密启用信号330。访问权限实施模块320基于访问权限328来生成解密启用信号330。访问权限实施模块320分析访问权限328以确定关于提出请求的软件开发工具是否存在足够的权限(例如,读权限、编译权限等)以对加密源代码部分116进行解密。如果确定存在足够的权限,则访问权限实施模块302生成解密启用信号330以使得解密模块318能够对加密源代码部分116进行解密。如果确定不存在足够的权限,则访问权限实施模块302生成解密启用信号330以使得解密模块318不能够对加密源代码部分116进行解密。
如图3所示,解密模块318对加密源代码部分116进行解密以生成解密源代码部分322。解密模块318可被配置成使用任何合适的解密技术来对加密源代码部分116进行解密,如相关领域技术人员知晓的(例如,使用私有密钥、公共密钥等)。
注意到,在另一实施例中,取代由解密启用信号330来对加密源代码部分116进行解密,解密模块318可改为在接收到加密源代码部分116时对加密源代码部分116自动地解密(无需启用信号)。
回头参考图2,在步骤208,根据被配置用于服务器处的加密源代码的访问权限来访问解密源代码。如图3所示,访问权限实施模块320基于访问权限328来生成访问启用信号324。访问启用信号324指示为提出请求的软件开发工具启用的对解密源代码部分322的访问类型,如访问权限328中所指示的。访问启用信号324可以指示针对解密源代码部分322的任何一部分的任何类型和组合的访问权限。以此方式,提出请求的软件开发工具能够根据对其应用的访问权限来与解密源代码部分322交互。
例如,访问启用信号324可以授予读、写(或“修改”)、显示等标准访问权限的任何组合。此外,访问启用信号324可以授予针对软件开发环境以及具体软件开发工具定制的其他类型的访问权限及其组合,诸如编译、调试、分析、剖析、部署、复制、打印、发送电子邮件、保存/另存为、仅公开元数据、相关联的许可证、部署站点等。在一实施例中,如果不授予特定访问权限,则适用的用户和/或工具不具有特定的访问权限。
例如,“读”访问权限指示解密源代码部分322的适用源代码能否被用户和/或软件开发工具读取,以及读访问权限可具有对其应用的修饰符。例如,“由用户读取”使得用户能够读取适用的源代码(类似于“显示”访问权限,使得源代码能够被显示)。“由编译者读取”(或由其他软件开发工具读取)使得编译者(或其他软件开发工具)能够读取适用的源代码。
“写”(或“修改”)访问权限指示适用的源代码能否被用户和/或软件开发工具(例如,被代码编辑器304等)写入。
“编译”、“调试”、“分析”、“剖析”和“部署”访问权限指示对应的软件开发工具能否与适用的源代码交互。例如,“调试”可使得调试器308调试适用的源代码,而“不可调试”使得调试器308不能够调试适用的源代码。
“复制”、“打印”、“发送电子邮件”和“保存/另存为”访问权限分别指示对应的软件开发工具能否复制、打印、发送电子邮件、或保存适用的源代码。例如,“复制”可以使得代码编辑器304复制适用的源代码,而“不可复制”可以使得代码编辑器304不能够复制适用的源代码。在另一示例中,“保存”和/或“另存为”可以使得源代码的副本能够被本地地存储(例如在客户端处)。
“仅公开元数据”访问权限指示可以显示与适用的源代码相关联的公开可用的元数据而无需使得源代码能够在软件开发工具处被读取/显示。
“相关联的许可证”访问权限指示关于基于与源代码相关联的许可证用户是否能够访问(例如读取)源代码的限制。例如,源代码的元数据可以存储指示与源代码相关联的许可证的许可信息。在被指派“相关联的许可证”权限时,“相关联的许可证”权限可基于许可证以及关于用户的信息被配置以使得用户能够读取或不能够读取源代码。在另一实施例中,相关联的许可证访问权限可以被配置成使得仅特定许可证被允许与特定源代码相关联。例如,特定源代码可以具有与其相关联的许可证信息(例如,Apache、MS-PL、GPLv3等),并且相关联的许可证访问权限可以被指派以使得不允许在具有指示不同的相关联的许可证的元数据的附加代码中进行粘贴的任何尝试。
“部署站点”访问权限指示关于哪些服务器可被部署适用的源代码的限制。例如,部署站点访问权限可指示特定用户可向其部署源代码的一个或多个服务器。
这些和其他访问权限可以用任何方式在访问启用信号324中被组合,如通过本文的示教对相关领域技术人员显而易见的。例如,“读取但不可复制访问权限”(或被指派的“由用户读取”访问权限和未被指派的复制访问权限的组合)可以使得代码编辑器304或其他软件开发工具能够显示解密源代码部分322但不能够复制解密源代码部分322。在另一示例中,可以为用户授予由用户编译访问权限,但不授予由用户读取访问权限,从而用户能够使用编译器306来编译解密源代码部分322但用户不能够读取解密源代码部分322(不向用户显示代码)。
B.用于提供对受保护源代码的访问的示例实施例
如上所述,源代码访问管理器110被配置成根据访问权限向启用DRM的软件开发工具提供对源代码的访问。在各实施例中,源代码访问管理器110可以用各种方式来配置,并且可以用各种方式来操作。
例如,图4示出了根据一示例实施例的提供用于控制启用DRM的软件开发工具对源代码的访问的过程的流程图400。在一实施例中,图1的源代码访问管理器110可以根据流程图400来操作。出于解说的目的,图4的流程图400结合图5来描述。图5示出根据一示例实施例的***500的框图,其中源代码访问管理器502提供对源代码的受控访问。源代码访问管理器502是图1的源代码访问管理器110的一个示例。如图5所示,***500包括源代码访问管理器502、用户界面504和存储506。源代码访问管理器502包括加密模块508、访问权限管理器510、和代码访问接口512。流程图400和***500描述如下。基于以下描述,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。
流程图400开始于步骤402。在步骤402,加密源代码。例如,如图5所示,加密模块508接收源代码514。源代码514可以接收自软件开发工具、接收自存储、或接收自另一位置。加密模块508被配置成加密源代码514以生成加密源代码118。加密模块508可以根据相关领域技术人员已知的任何加密技术或算法来加密源代码514以生成加密源代码118,包括私有密钥加密技术或公共密钥加密技术(例如,PGP(良好隐私)等)、内容加扰***(CSS)、高级加密标准(AES)、或其他加密算法。尽管提及了加密技术的若干示例,但这些示例是出于解说的目的来提供的并且不旨在进行限制。
如图5所示,加密模块508将加密源代码118存储在存储506中。存储506可包括任何类型的存储机构中的一个或多个,包括磁盘(例如,在硬盘驱动器中)、光盘(例如,在光盘驱动器中)、磁带(例如,在磁带驱动器中)、诸如RAM设备、ROM设备等的存储器设备、和/或用于存储加密源代码118的任何其他合适类型的存储介质。
回头参考图4,在步骤404,配置对加密源代码的访问权限。在一实施例中,加密源代码118的访问权限可以由访问权限管理器510自动指派和/或可以由与用户界面504交互的用户手动指派。用户界面504是由访问权限管理器510生成以使得开发者或其他用户能够向源代码指派访问权限的用户界面(例如图形用户界面(GUI)、文本编辑器界面等)。用户能够选择本文他处提及的或以其他方式知晓的访问权限中的任一者,并且将它们应用于加密源代码118中包括的源代码的任何一部分(包括全部)。访问权限可以用可选形式在列表中显示,或者可以毗邻可选用户界面元素(例如,复选框、单选按钮等)来显示,以被配置并应用于源代码。在一实施例中,用户界面504可以显示未加密形式的加密源代码118(例如源代码514)以使得用户能够查看明文的源代码以帮助用户向源代码指派访问权限。
用户界面504可具有任何数量和任意组合的用户可与之交互的用户界面元素。例如,用户界面504可以是包括一个或多个图形用户界面控件(例如,文本输入框、下拉菜单、单选按钮、复选框)的图形用户界面(GUI)。用户可以任何方式与用户界面504交互,诸如通过键盘、拇指滚轮、定点设备、滚球、指点杆、触敏显示器(例如,通过使用手势输入)、语音识别***、和/或描述在本文中其它处或以其它方式已知的其它用户界面元素。
如图5所示,访问权限管理器510将自动和/或手动配置的访问权限与加密源代码118相关联作为访问权限信息516。
注意到,可以用任一顺序来执行步骤402和404。此外,在步骤404,被指派的每一访问权限可以被指派给加密源代码的任何一部分,包括被指派给加密源代码中包括的一个或多个具体的方法、类、函数等,或者被指派给加密源代码的全部(例如,被指派给源代码文件)。例如,在一个实施例中,特定访问权限可以被指派给加密源代码的第一部分,而特定访问权限不被指派给加密源代码的第二部分(与第一部分不同)。因而,至少部分地由特定访问权限来控制对加密源代码的第一部分的访问,而对加密源代码的第二部分的访问不受到该特定访问权限的影响。
回头参考图4,在步骤406,加密源代码被主存在网络可访问的位置处。在一实施例中,源代码访问管理器502被主存在网络可访问的位置中,诸如图1中示出的服务器104。代码访问接口512提供用于源代码访问管理器502通过网络(例如图1中的网络106)进行通信的接口。在一实施例中,源代码访问管理器502可以被主存在通过因特网可访问的一个或多个服务器中,这被认为被主存在“云”中。
在步骤408,通过网络接收启用DRM的软件开发工具对加密源代码的访问尝试。例如,如图5所示,代码访问接口512可以接收请求114。代码访问接口512可以通过代码访问接口512中包括的网络接口或代码访问接口512可访问的网络接口来接收请求114。如上所述,请求114是启用DRM的软件开发工具对访问加密源代码118的请求,诸如图1的软件开发工具108a或软件开发工具108b、图3中的软件开发环境300的代码编辑器304、编译器306、调试器308、静态分析工具310、剖析器312或部署工具314。
在步骤410,根据所配置的访问权限来实现启用DRM的软件开发工具对加密源代码的访问。如图5所示,响应于请求114,代码访问接口512从存储506检索加密源代码118的请求部分(以及对应的访问权限信息516),并且在加密源代码部分116中传送所请求的部分以及对应的访问权限信息516。加密源代码部分116可以由提出请求的软件开发工具接收,并且根据权限访问信息516中指示的对应访问权限来与之交互。软件开发工具处的DRM功能(例如,图1中的DRM模块112a或DRM模块112b、图3中的DRM模块302等)根据所指示的访问权限(例如如上进一步描述的)来限制与加密源代码部分116的交互。
C.其他示例实施例
如上所述,根据各实施例,软件开发工具可以被启用DRM以访问具有相关联的访问权限的源代码。源代码访问管理器可以使得访问权限与源代码相关联,并且可以根据所配置的访问权限为启用DRM的软件开发工具提供对源代码的访问。
如上所述,尽管加密源代码被描述为从服务器处的源代码访问管理器传送到分开的计算设备处的软件开发工具,但在另一实施例中,源代码访问管理器和软件开发工具可以位于同一计算设备中。
在又一实施例中,加密源代码可以在服务器处被维护(不通过网络下载到计算设备),并且软件开发工具可以通过网络对服务器处的加密源代码进行操作。
在另一实施例中,加密源代码和软件开发工具可驻留在同一计算设备中,而源代码访问管理器可位于分开的服务器处。例如,加密源代码的完整副本可驻留在开发者的计算设备上,但仍然可以基于本文所述的权限管理技术遵守相同的读/写/复制/等等许可。在一实施例中,访问权限信息(例如,访问权限信息516)可以被本地存储(例如高速缓存)在开发者的计算设备上,以使得开发者能够离线访问源代码(例如,在未通过网络连接时,开发者不必依赖访问远程源代码访问管理器,而是能够由本地高速缓存的访问权限所控制地访问源代码)。
在又一实施例中,源代码访问管理器、加密源代码、和软件开发工具可以驻留在同一计算设备中。
此外,如图3所示,单个DRM模块(例如,DRM模块302)可以为多个软件开发工具提供DRM功能。在另一实施例中,软件开发工具中的一者或多者(例如,代码编辑器304、编译器306、调试器308、静态分析工具310、剖析器312、部署工具314等)可包括其自己的DRM模块。
III.示例计算设备实施例
软件开发工具108a、软件开发工具108b、源代码访问管理器110、DRM模块112a、DRM模块112b、软件开发环境300、DRM模块302、代码编辑器304、编译器306、调试器308、静态分析工具310、剖析器312、部署工具314、代码访问请求器316、解密模块318、访问权限实施模块320、源代码访问管理器502、加密模块508、访问权限管理器510、代码访问接口512、流程图200、和流程图400可以用硬件、或硬件与软件和/或固件的任意组合来实现。例如,软件开发工具108a、软件开发工具108b、源代码访问管理器110、DRM模块112a、DRM模块112b、软件开发环境300、DRM模块302、代码编辑器304、编译器306、调试器308、静态分析工具310、剖析器312、部署工具314、代码访问请求器316、解密模块318、访问权限实施模块320、源代码访问管理器502、加密模块508、访问权限管理器5610、代码访问接口512、流程图200、和/或流程图400可以被实现为计算机程序代码,该计算机程序代码被配置成在一个或多个处理器中执行并且被存储在计算机可读存储介质中。或者,软件开发工具108a、软件开发工具108b、源代码访问管理器110、DRM模块112a、DRM模块112b、软件开发环境300、DRM模块302、代码编辑器304、编译器306、调试器308、静态分析工具310、剖析器312、部署工具314、代码访问请求器316、解密模块318、访问权限实施模块320、源代码访问管理器502、加密模块508、访问权限管理器5610、代码访问接口512、流程图200、和/或流程图400可以被实现为硬件逻辑/电子电路***。
例如,在一实施例中,软件开发工具108a、软件开发工具108b、源代码访问管理器110、DRM模块112a、DRM模块112b、软件开发环境300、DRM模块302、代码编辑器304、编译器306、调试器308、静态分析工具310、剖析器312、部署工具314、代码访问请求器316、解密模块318、访问权限实施模块320、源代码访问管理器502、加密模块508、访问权限管理器5610、代码访问接口512、流程图200、和/或流程图400中的一者或多者可以一起被实现为片上***(SoC)。SoC可包括集成电路芯片,该集成电路芯片包括以下一个或多个:处理器(如微控制器、微处理器、数字信号处理器(DSP)等等)、存储器、一个或多个通信接口、和/或用于执行其功能的更多的电路和/或嵌入的固件。
图6描绘了其中可以实现本发明的各实施例的计算机600的示例性实现。例如,计算设备102和/或服务器104可被实现在类似于计算机600的一个或多个计算机***中,这些计算机***包括计算机600的一个或多个特征和/或替换特征。此处所提供的对计算机600的描述只是为了说明,并不是限制性的。如相关领域的技术人员所知道的,本发明的各实施例可以在其他类型的计算机***中实现。
如图6所示,计算机600包括一个或多个处理器602、***存储器604,以及将包括***存储器604的各种***组件耦合到处理器602的总线606。总线606表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、***总线、加速图形端口,以及处理器或使用各种总线体系结构中的任何一种的局部总线。***存储器604包括只读存储器(ROM)608和随机存取存储器(RAM)610。基本输入/输出***612(BIOS)储存在ROM608中。
计算机600还具有一个或多个以下驱动器:用于读写硬盘的硬盘驱动器614、用于读或写可移动磁盘618的磁盘驱动器616、以及用于读或写诸如CDROM、DVDROM或其他光介质之类的可移动光盘622的光盘驱动器620。硬盘驱动器614、磁盘驱动器616,以及光驱动器620分别通过硬盘驱动器接口624、磁盘驱动器接口626,以及光学驱动器接口628连接到总线606。驱动器以及它们相关联的计算机可读介质为计算机提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失存储。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他类型的计算机可读存储介质来储存数据。
数个程序模块可被储存在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作***630、一个或多个应用程序632、其他程序模块634以及程序数据636。应用程序632或程序模块634可包括,例如,用于实现软件开发工具108a、软件开发工具108b、源代码访问管理器110、DRM模块112a、DRM模块112b、软件开发环境300、DRM模块302、代码编辑器304、编译器306、调试器308、静态分析工具310、剖析器312、部署工具314、代码访问请求器316、解密模块318、访问权限实施模块320、源代码访问管理器502、加密模块508、访问权限管理器5610、代码访问接口512、流程图200、和/或流程图400(包括流程图200和400的任意步骤)和/或本文所述的更多实施例的计算机程序逻辑(例如,计算机程序代码或指令)。
用户可以通过诸如键盘638和定点设备640之类的输入设备向计算机600中输入命令和信息。其它输入设备(未示出)可包括话筒、控制杆、游戏手柄、卫星天线、扫描仪、触摸屏和/或触摸平板、用于接收语音输入的语音识别***、用于接收手势输入的手势识别***、诸如此类。这些及其他输入设备常常通过耦合到总线606的串行端口接口642连接到处理器602,但是,也可以通过其他接口,诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。
显示组件644也通过诸如视频适配器646之类的接口连接到总线606。除了监视器之外,计算机600还可包括其他***输出设备(未示出),如扬声器和打印机。
计算机600通过适配器或网络接口650、调制解调器652、或用于通过网络建立通信的其他手段连接到网络648(例如,因特网)。可以是内置的或外置的调制解调器652可以经由串行端口接口642连接到总线606,如图6所示,或者可以使用包括并行接口的另一接口类型连接到总线606。
如此处所用的,术语“计算机程序介质”、“计算机可读介质”以及“计算机可读存储介质”被用于泛指介质,诸如与硬盘驱动器614相关联的硬盘、可移动磁盘618、可移动光盘622,以及其他介质,诸如闪存卡、数字视频盘、随机读取存储器(RAM)、只读存储器(ROM)等。这些计算机可读存储介质与通信介质相区别且不重叠(不包括通信介质)。通信介质通常将计算机可读指令、数据结构、程序模块或者其它数据包含在已调制数据信号中,如载波。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如声学、RF、红外线的无线介质和其它无线介质。各个实施例也针对这些通信介质。
如上文所指示的,计算机程序和模块(包括应用程序632及其他程序模块634)可被储存在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以通过网络接口650、串行端口接口642或任何其他接口类型来接收。这样的计算机程序,当由应用执行或加载时,使得计算机600能实现此处所讨论的本发明的实施例的特征。相应地,这样的计算机程序表示计算机600的控制器。
本发明还涉及包括储存在任何计算机可使用介质上的软件的计算机程序产品。这样的软件,当在一个或多个数据处理设备中执行时,使数据处理设备如此处所描述的那样操作。本发明的各实施例使用现在已知的或将来已知的任何计算机可使用或计算机可读介质。计算机可读介质的示例包括,但不仅限于,诸如RAM、硬盘驱动器、软盘、CDROM、DVDROM、zip磁盘、磁带、磁存储设备、光存储设备、MEM(存储器)、基于纳米技术的存储设备等等之类的存储设备。
VI.结语
尽管上文描述了本发明的各实施例,但是,应该理解,它们只是作为示例来呈现的,而不作为限制。那些精通有关技术的人员将理解,在不偏离如所附权利要求书所定义的本发明的精神和范围的情况下,可以在形式和细节方面进行各种修改。因此,本发明的范围不应该受到上述示例性实施例的任一个的限制,而只应根据下面的权利要求和它们的等效内容进行定义。

Claims (10)

1.一种在服务器中的用于管理对计算机程序源代码的访问权限的方法,包括:
加密所述源代码;
配置对加密源代码的访问权限;
将所述加密源代码主存在网络可访问的位置处;
接收启用数字权限管理(DRM)的软件开发工具对所述加密源代码的访问尝试;以及
根据所配置的访问权限来实现启用DRM的软件开发工具对所述加密源代码的访问。
2.如权利要求1所述的方法,其特征在于,所述访问权限包括由用户读取访问权限和复制访问权限,所述由用户读取访问权限被指派给所述加密源代码而所述复制访问权限未被指派给所述加密源代码,其中所述实现包括:
使得所述启用DRM的软件开发工具能够根据由用户读取访问权限来解密所述加密源代码并且显示解密源代码但不能够在所述启用DRM的软件开发工具处复制所述解密源代码。
3.如权利要求1所述的方法,其特征在于,所述访问权限包括由编译器读取访问权限和由用户读取访问权限,所述由编译器读取访问权限被指派给所述加密源代码而所述由用户读取访问权限未被指派给所述加密源代码,其中所述实现包括:
使得所述启用DRM的软件开发工具能够根据由编译器读取访问权限来解密所述加密源代码并且编译解密源代码但不能够在所述启用DRM的软件开发工具处由用户读取所述解密源代码。
4.如权利要求1所述的方法,其特征在于,所述配置对所述加密源代码的访问权限包括:
向所述加密源代码的第一部分指派访问权限,所述访问权限未被指派给所述加密源代码的第二部分。
5.如权利要求1所述的方法,其特征在于,所述访问权限包括仅公开元数据访问权限,其中所述实现包括:
使得所述启用DRM的软件开发工具能够根据仅公开元数据访问权限来解密所述加密源代码并且显示与源代码相关联的公开可用的元数据但不能够在所述启用DRM的软件开发工具处读取解密源代码。
6.如权利要求1所述的方法,其特征在于,所述接收访问尝试包括:
接收来自计算设备通过与服务器的网络的访问尝试。
7.如权利要求1所述的方法,其特征在于,所述接收访问尝试包括:
接收来自所述服务器中的启用DRM的软件开发工具的访问尝试。
8.一种在服务器中的被配置成管理对计算机程序源代码的访问权限的源代码访问管理器,包括:
加密模块,被配置成加密所述源代码;
访问权限管理器,被配置成启用要被配置的对加密源代码的访问权限;以及
代码访问接口,被配置成接收启用数字权限管理(DRM)的软件开发工具对所述加密源代码的访问尝试,并且根据所配置的访问权限来实现所述启用DRM的软件开发工具对所述加密源代码的访问。
9.如权利要求8所述的源代码访问管理器,其特征在于,所述访问尝试接收自代码编辑器、编译器、调试器、静态分析工具、剖析器、或部署工具。
10.一种计算机程序产品,包括其上记录有计算机程序代码的计算机可读介质,包括:
用于使得处理器能够执行权利要求1-7中任一项的计算机程序代码。
CN201380066157.8A 2012-12-17 2013-12-17 权限受管的代码 Pending CN105122255A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/716,887 US20140173759A1 (en) 2012-12-17 2012-12-17 Rights-managed code
US13/716,887 2012-12-17
PCT/US2013/075690 WO2014099925A1 (en) 2012-12-17 2013-12-17 Rights-managed code

Publications (1)

Publication Number Publication Date
CN105122255A true CN105122255A (zh) 2015-12-02

Family

ID=49956379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380066157.8A Pending CN105122255A (zh) 2012-12-17 2013-12-17 权限受管的代码

Country Status (4)

Country Link
US (1) US20140173759A1 (zh)
EP (1) EP2932427A1 (zh)
CN (1) CN105122255A (zh)
WO (1) WO2014099925A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107257282A (zh) * 2017-05-18 2017-10-17 柚子(北京)移动技术有限公司 一种基于rc4算法的代码全包加密方法
CN108363912A (zh) * 2018-02-28 2018-08-03 苏州国芯科技有限公司 一种程序代码的密保方法及装置
CN109040133A (zh) * 2018-09-27 2018-12-18 上海点融信息科技有限责任公司 在区块链网络中安装智能合约的方法、装置及存储介质
CN109543366A (zh) * 2017-09-22 2019-03-29 ***通信集团浙江有限公司 一种源代码加密方法及其装置和***
CN109885468A (zh) * 2019-02-13 2019-06-14 上海易点时空网络有限公司 用于监控的多维度配置***、方法及存储介质
CN109981338A (zh) * 2019-02-13 2019-07-05 上海易点时空网络有限公司 代码拉取的告警方法、装置及存储介质
CN110908666A (zh) * 2019-10-31 2020-03-24 北京浪潮数据技术有限公司 一种源代码共享管理方法、装置、设备及计算机存储介质
CN111552698A (zh) * 2020-04-21 2020-08-18 重庆富民银行股份有限公司 一种解决环境差异的sql版本控制***及方法
CN111625782A (zh) * 2020-05-25 2020-09-04 杭州安恒信息技术股份有限公司 源码的访问权限控制方法、装置、计算机设备和存储介质

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135434B2 (en) * 2010-04-19 2015-09-15 Appcentral, Inc. System and method for third party creation of applications for mobile appliances
US10008057B2 (en) 2014-08-08 2018-06-26 Live Nation Entertainment, Inc. Short-range device communications for secured resource access
US9489787B1 (en) * 2014-08-08 2016-11-08 Live Nation Entertainment, Inc. Short-range device communications for secured resource access
EP3043284A1 (en) 2015-01-12 2016-07-13 Huawei Technologies Co., Ltd. Software handling device, server system and methods thereof
US20170103192A1 (en) * 2015-10-12 2017-04-13 Renesas Electronics America Inc. Secure code delivery
EP3188063A1 (en) * 2015-12-29 2017-07-05 GuardSquare NV A build system
US10452821B2 (en) 2016-03-30 2019-10-22 International Business Machines Corporation Tiered code obfuscation in a development environment
CN105930695B (zh) * 2016-04-11 2019-03-19 江苏通付盾科技有限公司 一种软件开发工具包的保护方法及装置
US10366227B2 (en) * 2016-11-15 2019-07-30 International Business Machines Corporation Secure debugging in a trustable computing environment
US11921615B2 (en) 2017-12-21 2024-03-05 Mastercard International Corporation Computer-implemented methods, computer-readable media and electronic devices for processing test electronic transactions
US11275579B2 (en) * 2020-05-14 2022-03-15 Bank Of America Corporation Discovery and authorization optimization of GIT based repositories

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200459A1 (en) * 2002-04-18 2003-10-23 Seeman El-Azar Method and system for protecting documents while maintaining their editability
US20060212714A1 (en) * 2005-03-21 2006-09-21 Ting Annsheng C Method and system to create secure virtual project room
US20080270462A1 (en) * 2007-04-24 2008-10-30 Interse A/S System and Method of Uniformly Classifying Information Objects with Metadata Across Heterogeneous Data Stores
CN101925913A (zh) * 2008-01-31 2010-12-22 国际商业机器公司 加密文件访问的方法和***
US20110276805A1 (en) * 2010-04-19 2011-11-10 Aashin Nagpal System and Method for Third Party Creation of Applications for Mobile Appliances

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978476A (en) * 1996-09-17 1999-11-02 Altera Corporation Access restriction to circuit designs
US6684389B1 (en) * 1999-08-05 2004-01-27 Canon Kabushiki Kaisha Compiler that decrypts encrypted source code
US7062750B2 (en) * 2001-07-16 2006-06-13 Microsoft Corporation Accessing remote stores of source and symbol data for use by computing tools
US7506313B2 (en) * 2002-03-04 2009-03-17 International Business Machines Corporation Debug of code with selective display of data
US7937753B2 (en) * 2005-03-25 2011-05-03 Microsoft Corporation Method and apparatus for distributed information management
WO2007125911A1 (ja) * 2006-04-24 2007-11-08 Panasonic Corporation データ処理装置、方法、プログラム、集積回路、プログラム生成装置
CN101187965B (zh) * 2006-11-16 2010-12-15 思科技术公司 用于过滤对数据对象的访问的方法和装置
WO2008099738A1 (ja) * 2007-02-07 2008-08-21 Humming Heads Inc. 電子情報の履歴を管理するための情報処理装置
US8776258B2 (en) * 2007-06-20 2014-07-08 David J. Linsley Providing access rights to portions of a software application
US20110276491A1 (en) * 2009-12-31 2011-11-10 Douglas Elliott Methods and systems for in-game advertising
US8661555B2 (en) * 2010-11-29 2014-02-25 Sap Ag Role-based access control over instructions in software code
US8527361B2 (en) * 2011-06-27 2013-09-03 Amazon Technologies, Inc. Service for adding in-application shopping functionality to applications
US8667600B2 (en) * 2011-06-30 2014-03-04 International Business Machines Corporation Trusted computing source code escrow and optimization
US20140143121A1 (en) * 2012-02-23 2014-05-22 Rexante Systems, Inc. System and Method for Programming a Trading System

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200459A1 (en) * 2002-04-18 2003-10-23 Seeman El-Azar Method and system for protecting documents while maintaining their editability
US20060212714A1 (en) * 2005-03-21 2006-09-21 Ting Annsheng C Method and system to create secure virtual project room
US20080270462A1 (en) * 2007-04-24 2008-10-30 Interse A/S System and Method of Uniformly Classifying Information Objects with Metadata Across Heterogeneous Data Stores
CN101925913A (zh) * 2008-01-31 2010-12-22 国际商业机器公司 加密文件访问的方法和***
US20110276805A1 (en) * 2010-04-19 2011-11-10 Aashin Nagpal System and Method for Third Party Creation of Applications for Mobile Appliances

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107257282A (zh) * 2017-05-18 2017-10-17 柚子(北京)移动技术有限公司 一种基于rc4算法的代码全包加密方法
CN107257282B (zh) * 2017-05-18 2021-01-08 柚子(北京)移动技术有限公司 一种基于rc4算法的代码全包加密方法
CN109543366A (zh) * 2017-09-22 2019-03-29 ***通信集团浙江有限公司 一种源代码加密方法及其装置和***
CN109543366B (zh) * 2017-09-22 2021-07-06 ***通信集团浙江有限公司 一种源代码加密方法及其装置和***
CN108363912A (zh) * 2018-02-28 2018-08-03 苏州国芯科技有限公司 一种程序代码的密保方法及装置
CN109040133A (zh) * 2018-09-27 2018-12-18 上海点融信息科技有限责任公司 在区块链网络中安装智能合约的方法、装置及存储介质
CN109885468A (zh) * 2019-02-13 2019-06-14 上海易点时空网络有限公司 用于监控的多维度配置***、方法及存储介质
CN109981338A (zh) * 2019-02-13 2019-07-05 上海易点时空网络有限公司 代码拉取的告警方法、装置及存储介质
CN110908666A (zh) * 2019-10-31 2020-03-24 北京浪潮数据技术有限公司 一种源代码共享管理方法、装置、设备及计算机存储介质
CN110908666B (zh) * 2019-10-31 2022-03-22 北京浪潮数据技术有限公司 一种源代码共享管理方法、装置、设备及计算机存储介质
CN111552698A (zh) * 2020-04-21 2020-08-18 重庆富民银行股份有限公司 一种解决环境差异的sql版本控制***及方法
CN111625782A (zh) * 2020-05-25 2020-09-04 杭州安恒信息技术股份有限公司 源码的访问权限控制方法、装置、计算机设备和存储介质
CN111625782B (zh) * 2020-05-25 2023-09-19 杭州安恒信息技术股份有限公司 源码的访问权限控制方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
WO2014099925A1 (en) 2014-06-26
US20140173759A1 (en) 2014-06-19
EP2932427A1 (en) 2015-10-21

Similar Documents

Publication Publication Date Title
CN105122255A (zh) 权限受管的代码
US11405428B2 (en) Method and system for policy management, testing, simulation, decentralization and analysis
US11593055B2 (en) Selective screen sharing
US20210344485A1 (en) Label-based double key encryption
CN105940654B (zh) 特权静态被托管的web应用
US11765152B2 (en) Related asset access based on proven primary asset access
US10452821B2 (en) Tiered code obfuscation in a development environment
US9699193B2 (en) Enterprise-specific functionality watermarking and management
CN106471466A (zh) 短暂应用
CN106663018A (zh) 在容器化工作空间环境中修改android应用生命周期以控制其执行的方法
US10158631B2 (en) Digital identity card management
US20120036457A1 (en) Integrated development environment for rapid application development
CN101458746B (zh) 用于在主机上提供第三方安全存储的方法和***
TWI587216B (zh) 動態中介語言修改及替換的方法、記錄相關指令的電腦程式產品及相關計算系統
CN102402598B (zh) 应用文件***访问
US20220107774A1 (en) Apparatus, systems, and methods for display content control at electronic user devices
Acretoaie et al. Hypersonic: Model analysis and checking in the cloud
JP2005157786A (ja) アプリケーション試験システム
US20220150280A1 (en) Context menu security policy enforcement
US20230198994A1 (en) Virtual reality enabled internet-of-things device resolution
Sanz Maroto et al. On the Struggle Bus: A Detailed Security Analysis of the m-tickets App
Wilson et al. Enforcing scientific data sharing agreements
Brakmić et al. Running Bitcoin
Mehwish Smart Search Over Encrypted Cloud Multimedia Data By using Machine Learning
Nina Hanco et al. Systematic mapping of the literature on Secure Software Development

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20151202

RJ01 Rejection of invention patent application after publication