CN104769606B - 提供安全的计算机环境的系统和方法 - Google Patents
提供安全的计算机环境的系统和方法 Download PDFInfo
- Publication number
- CN104769606B CN104769606B CN201380049976.1A CN201380049976A CN104769606B CN 104769606 B CN104769606 B CN 104769606B CN 201380049976 A CN201380049976 A CN 201380049976A CN 104769606 B CN104769606 B CN 104769606B
- Authority
- CN
- China
- Prior art keywords
- component
- software component
- software
- subsystem
- information
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Retry When Errors Occur (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了用于提供保密计算机环境的方法。在特定的实施方式中,保密计算机环境可以通过下述方式来提供:限制软件构件中可利用或潜在可利用的子构件;将软件构件替换为相应的已知良好的软件构件而不考虑软件构件是否已经被泄密或可能已经被泄密;将待传送的不同信息结合到数据包的不同数据片,和/或利用不同的加密方案加密片;处理具有数据片的数据包,该数据片与利用不同加密方案所加密的不同信息相关;利用具有标头的数据包来保密信息,该标头起始于数据包内与其他数据包不同的位置;处理具有标头的数据包,该标头起始于数据包内与其他数据包不同的位置;或利用其他方法。
Description
相关申请的交叉引用
本申请要求下述优先权,每个优先权的全部内容通过引用合并于此:(1)2012年8月18日提交的美国临时专利申请序列号61/684,743;(2)2012年8月18日提交的美国临时专利申请序列号61/684,744;(3)2012年8月18日提交的美国临时专利申请序列号61/684,745;以及(4)2012年8月18日提交的美国临时专利申请序列号61/684,746。
另外,本申请涉及下述的同日提交的共同悬而未决的美国实用专利申请,每个申请的全部内容通过引用合并于此:(1)标题为“在软件构件中限制可利用或潜在可利用的子构件的系统和方法”的美国专利申请序列号13/969,158[代理人案号026409-0424092];(2)标题为“将软件构件替换为相应的已知良好的软件构件而不考虑所述软件构件是否已经被泄密或可能已经被泄密的系统和方法”的美国专利申请序列号13/969,181[代理人案号026409-0424094];(3)标题为“将信息交叉在数据包的片中,微分加密片并数据包内的信息混淆的系统和方法”的美国专利申请序列号13/969,216[代理人案号026409-0424095]。
技术领域
本申请涉及通过限制软件构件内的可利用或潜在可利用的子构件、将软件构件替换为相应的已知良好的软件构件而不考虑所述软件构件是否已经被泄密或可能已经被泄密、将待传送的不同信息结合到数据包的不同片以及利用不同的加密方案对片进行加密、处理具有数据片的数据包,所述数据片与利用不同的加密方案进行加密的不同信息相关、利用具有标头的数据包保密信息,所述标头起始于数据包内与其他数据包不同的位置、处理具有标头的数据包,所述标头起始于数据包内与其他数据包不同的位置、或利用其他方法来保密和维护构件和/或信息的完整性。
背景技术
随着世界越来越科技发达并依赖与计算机系统,计算机网络攻击的复杂性和强度越来越高。这些攻击包含利用漏洞攻击程序来窃取专有信息、传播恶意软件、干扰服务或引起其他问题。传统的防御方法,诸如防火墙、反恶意软件探测系统等,聚焦于识别和减轻这些威胁。但是,传统的防御方法忽视了一些潜在的问题,这些潜在的问题允许漏洞攻击程序或其他威胁的存在。例如,构件通常暴露在运行时环境中很长时间,并且提供对于操作来说可能不必要的管理访问和特权。另外,网络通常通过在运行时环境中维护构件所要求的连接而暴露。而且,在一些情况下,发现泄密构件可能是困难的,且当或如果最终发现了,可能已经造成大范围的损伤或负面影响。
发明内容
本发明解决了这些和其他缺陷,且涉及用于保密和维护构件和/或信息的完整性的方法、装置和/或系统。例如,系统可以通过限制软件构件内的可利用或潜在可利用的子构件、将软件构件替换为相应的已知良好的软件构件而不考虑所述软件构件是否已经被泄密或可能已经被泄密、将待传送的不同信息结合到数据包的不同片以及利用不同的加密方案对片进行加密、处理具有数据片的数据包,所述数据片与利用不同的加密方案进行加密的不同信息相关、利用具有标头的数据包保密信息,所述标头起始于数据包内与其他数据包不同的位置、和/或处理具有标头的数据包,所述标头起始于数据包内与其他数据包不同的位置来促进构件和/或信息的保密性和完整性。
正如所讨论的,软件构件通常暴露在运行时环境中很长时间,并且提供对于操作来说可能不必要的管理访问和特权。例如,这样的访问或特权可能通过恶意软件或其他威胁被利用来泄密提供管理访问/特权的软件构件或其他软件构件。当传统的防御方法通常聚焦于发现已经被泄密的软件构件和减轻与泄密软件构件有关的负面影响时,本系统可以提供附加的或可选的保护措施促进可能暴露于网络或其他可进入环境的构件的保密和完整性,和/或促进通过网络传送的来自或到达系统构件的信息的保密性。附加的或可选的保护措施可以单独使用或与其他保护措施联合使用。
作为一个例子,本系统可以在软件构件被产生之后以及软件构件被放置在可能使软件构件泄密的环境中之前通过移除或禁用软件构件内的可利用或潜在可利用的子构件来消除或减小被泄密的软件构件以及相关的负面影响。
作为另一个例子,本系统可以将在运行时环境中利用的软件构件替换为相应的已知良好的软件构件,对于该已知良好的软件构件来说,对于替换这样的发现不是必要的。例如,该替换可以定期或按照要求执行而不考虑可以在运行时环境中使用的软件构件是否已经泄密或可能已经泄密。也就是说,本系统不必要已经确定指定软件构件已经泄密或可能已经泄密就可以替换给定软件构件。因此,在一些情况下,本系统可以将已经泄密的软件构件替换为相应的已知良好的软件构件。
一旦软件构件正在运行时环境中运行,在软件构件正在运行时环境中运行时识别已经泄密或可能已经泄密的所有软件构件可能是一项繁重的任务(如果并非不可能)。这样,相对于其他的优点,在不考虑软件构件已经泄密或可能已经泄密的情况下替换在运行时环境中正在运行或频繁地和/或规律地使用的软件构件可能会消除或减小当软件构件正在运行时环境中运行时将软件构件识别为泄密的或可能泄密的软件构件的需要。
作为另一个例子,本系统可以为通过网络传送的信息提供交叉和混淆。通过实例,可以产生数据包,使得每个数据包可以包含与不同的构件相关的信息的多个部分。信息的每个部分可以在数据包中代表加密数据片,使得数据包中的每个数据片可以代表与构件相关的信息的至少一个部分,该构件不同于另一个构件,该另一个构件与信息的另一个数据片代表的部分相关。另外,或可选地,数据包的每个数据片可以利用加密方案来加密,该加密方案不同于用于对数据包中的另一个数据片进行加密的另一个加密方案。例如,不同的加密方案可以包含对不同的加密种类和/或对不同加密密钥的使用。
作为另一个例子,可以产生数据包,使得数据包内标头的位置可以继续从一个数据包变换至另一个数据包。在一个使用案例中,后一个的数据包可以具有位于数据包内的位置的标头,数据包内的该位置不同于前一个数据包内的位置。例如,后一个数据包的标头的位置有前一个数据包的标头来指定。用这样的方式,信息可以通过结合不同信息的部分、利用加密方案,和/或利用具有标头的数据包对数据片进行加密,该标头起始于数据包内相对于其他数据包不同的位置。
本发明的多个其他方面、特征以及优点将通过本发明的详细描述及其附图变来明确。也可以理解的是上述的综合描述和随后的详细描述均是示例性的,不是对本发明的范围的限制。除非下文明确指出,在说明书和权利要求中所使用的单数形式“一”、“一个”和“该”表示复数。另外,除非下文明确指出,在说明书和权利要求中所使用的术语“或”意思为“和/或”。
附图说明
本发明通过附图进行说明,该说明是示例性的,而不是限制性的。附图中相同的附图标记表示相似的元件。
图1是根据本发明的一个方面的促进构件和信息的保密性和完整性的系统的示例性说明。
图2是根据本发明的一个方面的环境和与该环境相关的操作的流程图的示例性说明,在该环境中存在子系统、存储库或其他构件。
图3是根据本发明的一个方面的构件产生子系统的示例性说明。
图4A是根据本发明的多个方面的发送计算机的示例性说明。
图4B是根据本发明的多个方面的接收计算机的示例性说明。
图5是根据本发明的一个方面的两个计算机系统之间的信息传送的示例性说明。
图6是根据本发明的一个方面的数据包标头的示例性说明。
图7是根据本发明的一个方面的以相应的已知良好的软件构件来替换在运行时环境中运行的软件构件的方法的流程图的示例性说明。
图8是根据本发明的一个方面的限制软件构件中的可利用或潜在可利用的子构件的方法的流程图的示例性说明。
图9是根据本发明的一个方面的结合待传送至数据包的不同片的不同信息以及利用不同加密方案对所述片进行加密以确保信息的传送的方法的流程图的示例性说明。
图10是根据本发明的一个方面的处理数据包的方法的示例性说明,该数据包具有与不同的信息相关的数据片,该不同的信息利用不同的加密方案来加密。
图11是根据本发明的一个方面的通过限制构件的子构件、将构件替换为相应的已知良好的软件构件、对通过网络传送到构件或从构件传送来的信息进行保密和混淆来促进构件和信息的保密性和完整性的方法的流程图的示例性说明。
图12是根据本发明的一个方面的通过限制构件的子构件、将构件替换为相应的已知良好的软件构件来促进构件和信息的保密性和完整性的方法的流程图的示例性说明。
图13是根据本发明的一个方面的通过将构件替换为相应的已知良好的软件构件以及对通过网络传送到构件或从构件传送来的信息进行保密和混淆来促进构件和信息的保密性和完整性的方法的流程图的示例性说明。
图14是根据本发明的一个方面的通过限制构件的子构件以及对通过网络传送到构件或从构件传送来的信息进行保密和混淆来促进构件和信息的保密性和完整性的方法的流程图的示例性说明。
具体实施方式
如下描述给出了以解释为目的的多种详细描述来提供对本发明的实施方式的透彻理解。然而,可以理解的是,本领域技术人员可以在没有这些详细描述的情况下或采用等同布置来实施本发明的实施方式。在其他例子中,以框图的形式显示了公知的结构和设备,避免对本发明的实施方式的不必要的混淆。
图1是根据本发明的一个方面的促进构件和信息的保密性和完整性的系统100的示例性说明。系统100可以包含一个或多个构件以及子系统,该子系统提供不同的保护措施来促进构件的保密性和完整性,构件可以暴露于网络或进入环境,和/或促进通过网络传送到系统构件或从系统构件传送来的信息的保密性。不同的保护措施可以单独使用或与其他保护措施结合使用。例如,保护措施可以包含禁用软件构件的某些界面或其他子构件、以相应的已知良好的软件构件来替换软件构件而该软件构件是否已经被泄密,交叉或混淆通过网络传送的信息,和/或其他保护措施。
在一些实施方式中,系统100可以禁用给定构件的界面或其他子构件,该给定构件容易受攻击以致被泄密。例如,系统100可以包含构件产生子系统118,在例示时,构件产生子系统118产生构件,构件在运行时环境中操作并可通过网络进入。例如,给定构件可以包含子构件,诸如构件界面,构件界面方便由系统管理员来使用,在给定构件上执行维护和管理性操作,但是该构件界面时常可以被攻击者和其他人使用,以泄密该给定构件。在一些实施方式中,构件产生子系统118可以被编程为禁用该子构件,使得该子构件不可以进入,并且因此不再被攻击者或其他人利用。这样,例示时构件产生子系统118所产生的构件可以具有某些子构件,这些子构件被禁用,因此不再容易受攻击。例如,可利用或潜在可利用的子构件的禁用可以阻止以可能对软件构件所传送、接收或存储的软件构件和信息的保密性或完整性产生负面影响的方式来修改配置(如,建立与其他构件的单一关系的预配置或其他配置)。
构件产生子系统118可以被编程为禁用子构件,通过从构件中移除程序代码或提供维护或管理功能的指令、配置构件使得子构件不再可以进入,和/或使子构件不可进入(包含系统管理员和其他人均不可进入)来完成。这样,系统可以在构件级别保护构件,以通过移除某些可被利用的子构件来增强系统的保密性。
在一些实施方式中,无论其子构件的一个或多个是否已经被禁用,构件产生子系统118可以将所产生的构件存储到构件存储库114内。在这些实施方式中,系统100可以包含构件管理器子系统112,其被编程为从构件存储库114获得给定构件并在运行时环境内使得该给定构件可进入。
在一些实施方式中,系统100可以将在运行时环境中操作的构件替换为相应的已知良好的构件。例如,构件管理器子系统112可以被编程为将在运行时环境中操作的构件替换为相应的已知良好的构件,而不考虑该构件是否已经被泄密。相应的已知良好的构件可以由构件产生子系统118来产生。在一些实施方式中,如在此所描述的,相应的已知良好的构件的一个或多个子构件已经被禁用。在一些实施方式中,系统可以提供将构件的受限的界面与被替换为相应的已知良好的构件的构件相结合的保护措施。在其他实施方式中,相应的已知良好的构件的一个或多个子构件都没有被禁用。
在一些实施方式中,系统100可以执行对已经被替换的构件的分析。在这些实施方式中,系统100可以包含构件分析子系统116,其被编程为执行替换后分析。该系统可以利用这样的替换后分析来确定被替换的构件是否被泄密、泄密到什么程度,和/或如何被泄密的。因为该分析发生在替换之后,因此分析的结果不用于确定正在被分析的构件是否应该被替换。
在一些实施方式中,系统100可以通过网络安全地将信息传送到系统构件和/或从系统构件传送出来。例如,这样的信息可以包含文件、消息、文本、图像、数据和/或可以通过网络传送的信息的其他类型。例如,一个或多个发送构件108(图1中示出的发送构件108a、108b、108c)可以期望单独将相关信息传送至相应的接收构件110(图1中示出的接收构件110a、110b、110c).每个给定的发送构件108或给定的接收构件110可以包含应用、计算设备和/或可以产生或接收通过网络所提供的信息的其他构件。
在一些实施方式中,系统100可以包含发送计算机104,其被编程为将待发送的不同信息结合到数据包的不同片中,并利用不同加密方案对片进行加密以对信息的传送进行保密。通过实例,发送计算机104可以产生多个数据包,其中每个数据包包含与发送构件108a相关的信息的一部分、与发送构件108b相关的信息的一部分、以及与发送构件108c相关的信息的一部分。也可以使用发送构件108和相关信息的其他编号。信息的每个部分可以被表示为数据包内的加密的数据片,其中数据包内的每个数据片代表与发送构件108相关的信息的一部分,该发送构件108与另一个发送构件108不同,该另一个发送构件与信息的另一个数据片代表的部分相关,和/或其中数据包内的每个数据片可以利用加密方案被加密,该加密方案不同于另一个加密方案,该另一个加密方案用于对数据包内的另一个数据片进行加密。例如,不同加密方案可以包含不同加密类型和/或不同加密密钥的使用。加密类型的例子可以包含一次一密乱数本(OTP)、数据加密标准(DES)、高级加密标准(AES),和/或其他加密类型。如在此使用的,数据包可以涉及通信的单元。例如,数据包可以涉及数据报、段、块、信元、帧或通过网络被传送的通信的其他单元。
在一些实施方式中,接收计算机106可以被编程为处理数据包,该数据包具有与利用不同加密方案被加密的不同信息相关的数据片。通过实例,发送计算机104和接收计算机可以被预编程为通过数据包进行彼此通信,其中每个数据包包含数据片,数据片与不同信息相关,且利用不同加密方案进行加密。在一些情况下,发送计算机104和接收计算机106的预配置可以建立两个计算机104和106之间的单一关系。例如,两个计算机之间的关系可以限定为:(i)对两个计算机来说有用的策略;(ii)填充(pad)(如,OTP)或用来加密标头、数据片或其他数据包元件的其他加密方案的收集;(iii)关系的状态(如,下一个数据包的标头应该被放置在哪里,当前应该使用哪个填充,或其他状态信息);或(iv)关系的其他特性。如果发送计算机04可以与其他计算机具有其他关系,那么由于限定不同的策略、加密方案、关系状态或其他关系的其他关系,该其他计算机可以不处理由发送计算机104定向到接收计算机106的数据包。另一方面,接收计算机106可以处理来自发送计算机104的数据包,以获得与不同发送计算机108相关的信息的部分,并将所获得的部分结合起来形成随后被提供给合适的接收计算机110的信息。
可以注意到,每个给定的发送构件108、给定的接收构件110、发送计算机104和接收计算机106可以包含或不包含构件,如在此所描述的,该构件具有一个或多个禁用的界面,和/或被系统所替换而不考虑该构件是否已经被泄密。这样,系统可以通过单个的在此所述的保护措施或与结合一个或多个其他保护措施来对在此所述的通过网络传送的信息进行保密和/或混淆。
在一些实施方式中,构件管理器子系统112可以被编程为将与发送计算机104相关的软件构件和/或与接收计算机106相关的软件构件替换为相应的已知良好的软件构件,而不考虑软件构件是否已经被泄密或可能被泄密。通过实例,一旦经过了替换时间段,构件管理器子系统112就可以替换发送计算机104内的构件(如,信息传送子系统),该发送计算机104执行将待传送的不同信息结合到数据包的不同片内,且利用不同的加密方案对片进行加密。一旦经过了替换时间段,构件管理器子系统112也可以替换接收计算机106内的构件(如信息接收子系统),该接收计算机106执行对具有数据片的数据包的处理,该数据片与利用不同加密方案被加密的不同信息相关。
发送计算机104内的构件的替换构件和接收构件内的构件的替换构件可以分别被预编程为通过数据包进行彼此通信,其中每个数据包包含与不同的信息相关并利用不同加密方案进行加密的数据片。例如,替换构件的预配置可以建立与被替换的多个构件之间的关系相同的关系,或与多个替换构件之间的关系不同的单一关系。替换构件和/或其他已知良好的软件构件可以从构件存储库114获得,构件存储库114与运行时环境分离,发送计算机104、接收计算机106、它们各自的构件或其他构件正在运行时环境中运行。在一些情况下,可以执行将构件替换为具有预配置关系的已知良好的软件构件,致使策略、加密方案以及关系状态在常规基础上改变,并且由此提供构件和信息的进一步的保密性和完整性。
在一些实施方式中,构件管理器子系统112可以被编程为将被替换的构件移动都分析环境中,分析环境与运行时环境分离,被替换的构件之前正在运行时环境中运行。在被替换的构件被移动至分析环境中后,构件分析子系统116可以被编程为分析被替换的构件,来确定被替换的构件是否已经被泄密,和/或如何被泄密。以这样的方式,除了其他的优点,对泄密有更高的抵抗性的新版本的软件构件可以被开发来替换对泄密有较低抵抗性的相应的软件构件。
如图1所示,系统100可以还包括客户计算机120(或多个客户计算机120)。客户计算机120可以包括任何类型的移动终端、固定终端,或其他设备。通过实例,客户计算机120可以包括台式计算机、笔记本计算机、上网本计算机、平板电脑、智能手机、导航设备、电子书设备、游戏设备或其他客户计算机。例如,用户可以利用一个或多个客户计算机120与发送计算机104、接收计算机106、发送构件108、接收构件110或系统100的其他构件进行交互。通过其他的实例,客户计算机120可以包括发送计算机104、接收计算机106或系统100的其他构件。
在描述了多个系统构件及其全部功能后,注意力将转移到对每个保护措施的更详细描述。如在此所述的,系统可以单独利用这样的保护措施或结合一个或多个其他保护措施。
将构件替换为相应的已知良好的构件
图2是根据本发明的一个方面的环境102和与该环境相关的操作的流程图的示例性说明,在该环境中可以存在子系统、存储库或其他构件。如所示的,环境102可以包含构件管理器子系统112、构件存储库114、构件分析子系统116、构件产生子系统118或其他子系统、存储库或构件。尽管图2图示了单个的环境102,但是应该注意的是构件管理器子系统112、构件存储库114、构件分析子系统116和构件产生子系统118中的一个或多个可以存在在相同的环境或单独的环境中。如在此所述的,一个环境中的子系统或构件可以具有对另一个环境(如读访问限制、写访问限制、运行访问限制、删除访问限制、和/或其他访问限制)的有限的访问权或无法访问可能是有利的。
在一些实施方式中,可以通过将在运行时环境中运行的软件构件替换为相应的已知良好的软件构件来促进保密性和/或完整性。软件构件的替换可以不考虑在运行时环境中运行的软件构件是否已经被泄密或可能被泄密来完成。通过实例,与软件构件(如构件202a、202b或其他构件)的替换相关的操作可以包括操作204、206、208、210、212、214或其他操作中的一个或多个,这些操作在下面进行详细描述。
在一个实施方式中,构件管理器子系统112可以被编程为将软件构件替换为已知良好的软件构件。例如,构件管理器子系统112可以确定至少第一事件,第一事件显示在运行时环境102a内运行的至少第一软件构件应该被替换。构件管理器子系统11可以将第一软件构件替换为第二软件构件,基于第一事件,第二软件构件与第一软件构件相应。第一软件构件可以被替换为第二软件构件,使得第一事件后第二软件构件可以在运行时环境102a中使用,并且第一事件后第一软件构件在运行时环境102a中不可以使用。可以通过构件管理器子系统112从构件存储库114中获得第二软件构件,构件存储库114与运行时环境102a分离(如构件存储库114可以存在在于运行时环境102a分离的环境102c中)。
作为一个例子,根据第一软件构件和第二软件构件是相同软件构件的实例,第一软件构件和第二软件构件可以彼此相应,第二软件构件是第一软件构件的更新版本,或第二软件构件是第一软件构件的替换构件。在被放置到运行时环境102a和在其中运行之前,第一软件构件也可以作为已知良好的软件构件来存储在构件存储库114中。
在一些实施方式中,参考图2,第一软件构件可以是构件202a,以及第二软件构件可以是构件202b。构件202a和202b可以是由构件产生子系统118在构件产生环境102d中产生的相同的软件构件的相应的实例。在操作204和206,相应的构件202a和202n可以作为替换构件被添加到构件存储库114中。在操作208,构件202a可以通过构件管理器子系统112来获得,替换运行时环境102a中正在运行的另一个相应的构件,此后构件202a替代其他相应的构件在运行时环境102中运行。在操作210,构件202b可以通过构件管理器子系统112获得并作为正在运行时环境102a中运行的构件202a的替换构件被放置在运行时环境102a中。
第一事件(第一软件构件的替换是基于第一事件的)可以显示第一软件构件应该被替换而不考虑第一软件构件是否已经被泄密或可能已经被泄密。在一些实施方式中,第一事件可以包含一个或多个替换时间段的流逝、第一软件构件的多个使用达到或超过使用阈值、第一软件构件的更新版本是有效的、和/或其他事件。
在一些实施方式中,第一软件构件可以在一个或多个替换时间段流逝之后被替换,并且第二软件构件可以在一个或多个替换时间段的第二流逝之后被替换。作为一个例子,运行时环境102a中运行的软件构件可以在周期(如每天、每小时、每分钟、每秒钟等)基础上替换为已知良好的软件构件。在另一个使用实例中,第一软件构件可以在第一软件构件的多个使用达到或超过使用阈值后被替换。以这样的方式,除了其他的优点,运行时环境102a中运行的软件构件的完整性可以通过定期将软件构件替换为相应的已知良好的软件构件来维护。这样,尽管运行时环境102a中运行的软件构件被泄密,可以通过定期将软件构件替换为相应的已知良好的软件构件,而不考虑软件构件是否已经泄密或可能已经泄密来降低与泄密的软件构件相关的任何负面影响。
在另一个使用实例中,第一软件构件可以在第一软件构件的更新版本(如第二软件构件)变得有效之后被替换。因此,除了其他优点,运行时环境102a可以反映可获得的软件构件的最新版本,包括对恶意软件或其他保密问题有更高抵抗性的软件构件的版本。
在多种实施方式中,构件管理器子系统112可以被编程为在运行时环境102a中例示第二软件构件。例如,第二软件构件可以在非活跃路径中被例示,使得第二软件构件在运行时环境102a中不可以使用。将第一软件构件替换为第二软件构件可以包括构件管理器子系统112将第二软件构件放置在活跃路径中,使得第二软件构件在运行时环境102a中可以使用。第一软件构件的替换还可以包括构件管理器子系统112将第一软件构件从活跃路径中移出。
作为例子,运行时环境102a可以包括给定软件构件的一个或多个活跃实例以及软件构件的一个或多个非活跃实例。例如。软件构件的非活跃实例可以是软件构件的活跃实例的替换对象。这样,当一个活跃实例的替换发生时,活跃实例可以简单地替换为一个非活跃实例。软件构件的附加的相应的已知良好的实例可以从构件存储库114获得并在运行时环境102a中作为非活跃实例来例示,为运行时环境102a提供容易获得的替换实例。在一些实施方式中,第一软件构件可以是特殊软件构件的活跃实例,第二软件构件可以是软件构件的非活跃实例。第二软件构件可以循环进入活跃路径来替换活跃路径中的第一软件构件,并且第一软件构件可以循环移出活跃路径。这样,第二软件构件可以通过将第二软件构件循环进入活跃路径被激活,同时第一软件构件可以通过将第一软件构件循环移出活跃路径而退出工作。
在一些实施方式中。构件管理器子系统112可以被编程为在将第二软件构件放置在活跃路径中的同时或之后将第一软件构件移出活跃路径。在一个例子中,可以以无缝的方式执行将第一软件构件替换为第二软件构件,使得在替换前可能依赖第一软件构件所提供的连续平稳操作的其他构件或用户不会经历故障时间。
在一些实施方式中,第一软件构件可以被允许完成第一事件发生时第一软件构件正在处理的任务,第一事件显示第一软件构件应该被替换。然而,新的任务可以不分派给第一软件构件来处理,但可以被分派给予第一软件构件相应的其他活跃的软件构件(如,第一软件构件的其他活跃的实例),对于第一软件构件来说,替换-显示事件还没有发生。一旦在第一事件发生时第一软件构件正在处理的任务被完成,构件管理器子系统可以同时将第二软件构件放置在活跃路径中,并将第一软件构件移出活跃路径。那时,新任务可以被分派给第二软件构件以及与第二软件构件相应的其他活跃的软件构件(如,第一软件构件或第二软件构件的其他活跃的实例).
在特定的实施方式中,第一软件构件和第二软件构件均可以包含虚拟机。软件构件的定义还包含一个或多个磁盘镜像。运行时环境102a可以包含管理程序,在管理程序中,第一软件构件在替换前运行,且第二软件构件在替换后运行。活跃路径中第二软件构件的布置可以包括构件管理器子系统112,构件管理器子系统112更新与第二软件构件相关的网络配置,使得第二软件构件在运行时环境中可以使用。
在一些实施方式中,一个或多个外部IP地址可以被关联至一个或多个子网地址,使得定向到外部IP地址的请求被重定向到分派到活跃的子网地址的软件构件。分派到活跃的子网地址的软件构件在运行时环境102a中可以使用,但分派到非活跃的子网地址的软件构件在运行时环境102a中不可以使用。替换前第一软件构件可以被分派到一个活跃的子网地址,而替换前第二软件构件可以被分派到一个非活跃的子网地址。响应于第一事件显示第一软件构件应该被替换,分派到第二软件构件的非活跃的子网地址可以被激活,或者其他活跃的子网地址可以被分派到第二软件构件,使得指向外部IP地址的请求通过其分派的活跃的子网地址被重定向到第二软件构件。
在多个实施方式中,第一软件构件和第二软件构件均可以包含操作系统进程。活跃路径中第二软件构件的布置可以包括构件管理器子系统112,构件管理器子系统112通过进程间通信配置将第二软件构件移动到活跃路径中。
在一些实施方式中,第一软件构件和第二软件构件均可以包含可运行代码。活跃路径中第二软件构件的布置可以包括构件管理器子系统112,该构件管理器子系统112更新与第二软件构件相关的存储地址指针或查询表。作为例子,语言库可以利用与语言库中可利用的功能(如软件构件)相关的存储地址指针或查阅表来促进函数调用。例如,存储地址指针或查阅表可以在每次函数调用之后被更新,以指向存储器内存在替换可运行代码的不同位置。在一种情况下,第一软件构件可以是与第一存储位置上的给定功能相关的可运行代码,语言库内的存储地址指针或查阅表指向第一存储位置。语言库可以被配置为使得软件构件(如与功能相关的可运行代码)仅仅在将软件构件替换为替换软件构件(如功能的替换可运行代码)之前才可以被调用。这样,在第一软件构件被调用一次之后,指向第一存储位置的存储地址指针或查阅表可以被更新为指向第二存储位置,在第二存储位置存在与功能相关的替换可运行代码。
在特定的实施方式中,构件管理器子系统112可以被编程为获得与第二软件构件相关的完整性信息。第二软件构件可以基于完整性信息由构件管理器子系统112进行验证。例如,第二软件构件的验证可以在构件管理器子系统112利用第二软件构件替换第一软件构件之前被执行。在一些实施方式中,当第二软件构件是已知良好的软件构件时可以产生第二软件构件的完整性信息。作为例子,可以在第二软件构件准备分配之后、第二软件构件被分配到其产生环境的外部之前、或第二软件构件仍旧是已知良好的软件构件的其他情况下立即产生第二软件构件的完整性信息。例如,完整性信息可以用于确定第二软件构件是否已经从其已知良好的形式被修改。在一些情况下,可以通过在第二软件构件上执行无用信息操作(如单向无用信息或其他无用信息操作)来产生完整性信息。
在一些实施方式中,构件分析子系统116可以被编程为在第一软件构件被替换之后分析第一软件构件。构件分析子系统116可以被编程为基于分析来确定第一软件构件是否已经被泄密或如何被泄密。作为例子,在第一软件构件已经从活跃路径中移出后,构件管理器子系统112可以将第一软件构件移动到分析环境102e中。如前述,第一软件构件可以替换为第二软件构件,二不考虑第一软件构件是否已经被泄密或可能被泄密。然而,构件分析子系统116可以分析第一软件构件来驱动第一软件构件是否已经被泄密,以及如果已经泄密,第一软件构件是如何被泄密的。以这样的方式,除了其他优点,对泄密有更高的抵抗性的新版本的软件构件可以被开发来替换对泄密有较低抵抗性的相应的软件构件。
在一些实施方式中,参考图2,相应的构件202b替换运行环境102a中的构件202a后,在操作212,构件202a可以由构件管理器子系统112从运行时环境102移动至分析环境102e中。在另一个使用实例中,另一个相应的构件替换运行时环境102b中的构件202b后,在操作214,构件202b也可以由构件管理器子系统112从运行时环境102a移动至分析环境102e中。
如所讨论的,环境102可以包含一个或多个单个环境102a、102b、102c、102d、102e或其他环境。一个环境中的子系统或构件可以对另一个环境具有受限的访问权限(如,读访问限制、写访问限制、运行访问限制、删除访问限制、和/或其他访问限制)。
作为例子,(如位于环境102b中的)构件管理器子系统112可以具有对如位于环境102c中的)构件存储库114的读访问权限,以便从构件存储库114中获得第二软件构件。然而,环境102b、环境102c、构件存储库114、或构件管理器子系统112可以被配置为使得构件管理器子系统112对构件存储库114或环境102c没有写访问权限、运行访问权限或删除访问权限。这样,构件管理器子系统112可以不被利用来对构件存储库114内的已知良好的软件构件进行有意的或偶然的泄密。
作为另一个例子,(如位于环境102d中的)构件产生子系统118可以对(如位于环境102c中的)构件存储库114具有写访问权限,以便将第二软件构件或其他软件构件添加到构件存储库114内。
然而,环境102c、环境102d、构件产生子系统118、或构件存储库114可以被配置为使得构件产生子系统118对构件存储库114或环境102c没有读访问权限、运行访问权限或删除访问权限。在一些情况下,环境102b、102a、102c或102e中的子系统或其他构件可以不具有对构件产生子系统118或环境102d的写访问权限、读访问权限、运行访问权限或删除访问权限。例如,构件产生子系统118可以无法从运行时环境102a进入,使得构件产生子系统118不能从运行时环境102a被泄密。以这样的方式,构件产生子系统118可以在无泄密环境中产生软件构件,使得当产生的软件构件被放置在构件存储库114内时软件构件是已知良好的软件构件。
在一些实施方式中,通过在将软件构件放置在构件存储库(该构件存储库与构件产生环境相分离)中之前限制构件产生环境中所产生的软件构件中的可利用或潜在可利用的子构件来促进保密性和/或完整性。作为例子,构件产生子系统118可以被编程为在构件产生环境102d中产生软件构件,并在软件构件被移到构件产生环境102d的外部之前(例如,在软件构件被放置在构件存储库114之前、软件构件在运行时环境102a中被例示之前等)限制软件构件内的可利用或潜在可利用的子构件。
限制/禁用界面和其他子构件
在一个实施方式中,如图3所示,构件产生子系统118可以包括构件制作子系统302、构件封闭子系统304、构件输出子系统306、和/或其他子系统。
在一些实施方式中,构件封闭子系统304可以识别构件产生子系统102d中的至少第一软件构件。第一软件构件可以包含第一子构件,第一子构件提供了被利用或可能被利用的功能来泄密第一软件构件、第二子构件或其他构件。构件封闭子系统304可以识别和禁用第一子构件,使得第一软件构件被运行时第一子构件所提供的功能无法通过第一软件构件而被利用。在第一子构件被禁用后构件输出子系统306可以将第一软件构件放置在构件存储库内,使得第一软件构件被放置在构件存储库内而无法获得第一子构件所提供的功能。以这样的方式,通过消除来自第一软件构件的可利用或潜在可利用的功能的有效性,第一软件构件无法被用于进入可利用或潜在可利用的功能。除了其他优点以外,还可以降低与被泄密的软件构件相关的风险。
在一个实施方式中,第一子构件的禁用可以包括构件封闭子系统304将第一子构件从第一软件构件中移除。这样,当第一软件构件被放置在构件存储库114内时,第一软件构件可以不包含第一子构件。将第一子构件从第一软件构件中移除可以包括从第一软件构件中移除与第一子构件相关的源代码或可运行代码,使得使得第一软件构件不再包含与第一子构件相关的源代码或可运行代码。在一些实施方式中,第一软件构件可以是虚拟机,并且第一子构件可以是安全壳(SSH)程序。将第一子构件从第一软件构件中移除可以包括从虚拟机中移除构成了SSH程序的可运行代码。
在另一个实施方式中,第一子构件的禁用可以包括关闭第一子构件所提供的功能而不将第一子构件从第一软件构件中移除。这样,尽管构件存储库114内的第一软件构件的第一子构件可以被禁用,但是第一软件构件仍旧包含第一子构件。作为例子,第一子构件可以相对于第一软件构件被禁用而不将第一子构件从第一软件构件中移除,以避免第一软件构件的不稳定性。
在一些实施方式中,第一子构件的禁用可以包括将第一软件构件与禁用指令相关联。在一个实施方式中,第一软件构件可以被关联至禁用指令,使得第一子构件基于禁用指令而从第一软件构件被移除。作为例子,第一软件构件可以被关联至即将运行以在运行时环境中例示第一软件构件的脚本(如,Bash脚本或其他脚本)。当第一软件构件被例示时,脚本可以从第一软件构件中移除与第一子构件相关的代码。这样,当第一软件构件被运行时,第一软件构件可以包含与第一子构件相关的代码。作为另一个例子,可以在第一软件构件被放置在构件存储库中或在运行时环境中可以使用之前,禁用指令可以被插入第一软件构件中。一旦运行第一软件构件,禁用指令可以致使与第一子构件相关的代码从第一软件构件被移除。
在另一个实施方式中,第一软件构件可以与禁用指令相关联,使得第一子构件所提供的功能基于禁用指令而被关闭。作为例子,第一软件构件可以被关联至即将运行以在运行时环境中例示第一软件构件的脚本(如,Bash脚本或其他脚本)。当第一软件构件被例示时,脚本可以使第一子构件所提供的功能被关闭。这样,当第一软件构件被运行时,第一子构件所提供的功能不能通过第一软件构件来使用。作为另一个例子,可以在第一软件构件被放置在构件存储库中或在运行时环境中可以使用之前,禁用指令可以被插入第一软件构件中。一旦运行第一软件构件,禁用指令可以致使第一子构件所提供的功能被关闭。
在多个实施方式中,第一子构件所提供的功能可以包含用于维护第一软件构件的维护功能或管理功能。第一子构件可以基于由第一子构件所提供的维护功能或管理功能而被识别或禁用。作为例子,包含用于维护虚拟机的维护功能或管理功能的虚拟机的子构件可以包括远程通信网界面、SSH界面、远程桌面协议(RDP)界面、管理应用可编程界面(APIs)、管理网站或其他子构件。
在一些实施方式中,第一软件构件还可以包含可利用或潜在可利用的第二子构件。当第一软件构件的第一子构件可以被禁用时,第二子构件可以不被禁用。例如,第一子构件可以基于确定第一子构件对于第一软件构件的运行是不必要的而被禁用。第二子构件可以基于确定第二子构件对于第一软件构件的运行是不必要的而不被禁用。
在特定的实施方式中,尽管第二子构件可以不从第一软件构件中被移除或被禁用,但是构件封闭子系统304可以被编程为将与第二子构件相关的一个或多个代码组从第二子构件中移除,来消除或降低与第二子构件相关的风险。作为例子,构件封闭子系统可以被编程为识别与第二子构件关联的使第二子构件可利用或潜在可利用的代码组,并且将代码组从第二子构件中移除,使得第二子构件不再包含该代码组。当第一软件构件被放置在第二环境中时第一软件构件可以包含不具有代码组的第二子构件。
在一种情况下,软件构件可以是虚拟机。虚拟机的子构件可以是Bash。由于Bash是一种被要求使虚拟机的操作系统适合地操作的壳层,Bash可以不从虚拟机中被移除或禁用。但是,许多命令,诸如“"Is,”、“sed,”、“vi,”等,由于这些命令不被要求使虚拟机的操作系统适合地操作,这些命令可以被移除或禁用。例如,与那些不被要求的命令相关的代码组可以从Bash中被移除,使得虚拟机可以包含不具有代码组的Bash。
在一些实施方式中,构件制作子系统302可以被编程为在构件产生环境102d中产生第一软件构件。由构件制作子系统302所产生的第一软件构件可以包含第一子构件(提供可利用或潜在可利用的功能来泄密第一软件构件)、第二子构件、或其他子构件。
在一个实施方式中,构件制作子系统302可以将第一文件信息与第一软件构件进行关联。作为例子,第一文件信息用于确定给定的软件构件的给定子构件是否应该被禁用。第一子构件可以基于第一文件信息而被识别或禁用。作为例子,第一文件信息一包含通过移除而被禁用的信息指定子构件、无需移除而被禁用的信息指定子构件、不被禁用的信息指定子构件、或其他信息。在一种情况下,第一文件信息通常可以应用于限制软件构件内的可利用或潜在可利用的子构件。在另一种情况下,第一文件信息可以用于限制软件构件的一个或多个特定的类型中的可利用或潜在可利用的子构件、与特定的识别符相关的软件构件等。例如,第一文件信息可以被指定给具有第一软件构件的软件构件类型的软件构件、或指定给具有与第一软件构件的识别符相应的识别符的软件构件。
在多个实施方式中,构件制作子系统302可以被编程为在构件产生环境102d中产生第一软件构件,使得第一软件构件包含第一子构件和第二子构件。第一构件可以基于第一文件信息而被构件封闭子系统304禁用。第二构件可以基于第一文件信息而不被构件封闭子系统304禁用。
在一些实施方式中,构件输出子系统306可以被编程为为第一软件构件产生完整性信息。作为例子,当第一软件构件是已知良好的软件构件时,可以为第一软件构件产生完整性信息。作为例子,可以在第一软件构件准备分配之后、第一软件构件被分配到其产生环境(如环境102d)的外部之前、或第一软件构件仍旧是已知良好的软件构件的其他情况下立即产生第二软件构件的完整性信息。
在一些实施方式中,可以在第一子构件被禁用之后和第一软件构件被放置在构件存储库114内之前为第一软件构件产生完整性信息。完整性信息可以用于确定第一软件构件是否已经在为第一软件构件产生完整性信息之后被修改。在一些实施方式中,可以通过在第一软件构件上执行无用信息操作(如单向无用信息或其他无用信息操作)来产生完整性信息。
通过网络交叉和混淆待传送的信息
参考图4A,在一些实施方式中,发送计算机104可以被编程为将待发送的不同信息结合到数据包的不同片中,和/或利用不同加密方案对片进行加密以对信息的传送进行保密。通过实例,发送计算机104可以接收待传送的第一信息、待传送的第二信息、或待传送的其他信息。第一信息可以与第一发送构件相关。第二信息可以与第二发送构件相关,第二发送构件与第一发送构件不同。例如,发送构件108可以包括发送计算机104外部的构件、在发送计算机104内运行的构件、或其他构件。
发送计算机104可以被编程为产生代表第一信息的至少一部分的第一数据片、代表第二信息的至少一部分的第二数据或其他数据片。可以基于第一加密方案来产生第一数据片。可以基于第二加密方案来产生第二数据片,第二加密方案与第一加密方案不同。作为例子,基于第一加密方案产生第一数据片可以包括利用第一加密类型或第一加密密钥对第一信息的一部分进行加密。基于第二加密方案产生第二数据片可以包括利用第二加密类型或第二加密密钥对第二信息的一部分进行加密,该第二加密类型或第二加密密钥分别不同于第一加密类型或第一加密密钥。加密类型的例子可以包含一次一密乱数本(OTP)、数据加密标准(DES)、高级加密标准(AES),和/或其他加密类型。
发送计算机104可以被编程为产生为第一数据片指定第一加密方案,且为第二数据片指定第二加密方案,或其他信息的第一标头。发送计算机104可以被编程为产生第一数据包,第一数据包包含第一标头、第一数据片以及第二数据片、或其他数据包元件。然后第一数据包可以被传送至适合的接收计算机(如,接收计算机106或其他接收计算机)。
在一些实施方式中,参考图4A,发送计算机104可以包括发送构件108a-108n、信息传送子系统402、或其他构件。在另一个使用实例中,参考图4B,接收计算机106可以包括接收构件110a-110n、信息接收子系统404、或其他构件。应该注意的是,根据情况,给定发送构件108也可以是接收构件,以及给定接收构件110也可以是发送构件。还应该注意的是,根据情况,发送计算机104可以是接收计算机,并且接收计算机106可以是发送计算机。作为例子,发送计算机104也可以包括用于处理接收到的数据包的信息接收子系统404或其他构件,其中每个接收的数据包包含与利用不同的加密方案来加密的不同信息相关的数据片。作为另一个例子,接收计算机106可以包括信息传送子系统402或其他构件,其用于结合待传送至数据包的不同片的不同信息以及利用不同加密方案对所述片进行加密以确保信息的传送。
如所示的,在一些实施方式中,发送计算机104和接收计算机106可以被预编程为通过数据包进行彼此通信,其中每个数据包包含数据片,数据片与不同信息相关,且利用不同加密方案进行加密。例如,发送计算机104和接收计算机106的预配置可以建立两个计算机104和106之间的单一关系。两个计算机之间的关系可以限定为:(i)对两个计算机来说有用的策略;(ii)填充(pad)(如,OTP)或用来加密标头、数据片或其他数据包元件的其他加密方案的集合;(iii)关系的状态(如,下一个数据包的标头应该被放置在哪里,当前应该使用哪个填充,或其他状态信息);或(iv)关系的其他特性。如果发送计算机104可以与其他计算机具有其他关系,那么由于限定不同的策略、加密方案、关系状态或其他关系的其他关系,该其他计算机可以不处理由发送计算机104定向到接收计算机106的数据包。另一方面,接收计算机106可以处理来自发送计算机104的数据包,以获得与不同发送计算机108相关的信息的部分,并将所获得的部分结合起来形成随后被提供给合适的接收计算机110的信息。
在一些实施方式中,参考图5,发送计算机104可以分别从发送构件108a、108b和108c接收信息502、504和506。在一些实施方式中,发送构件108a、108b和108c可以包含虚拟机、应用软件、或发送计算机104内的其他构件。信息502、504和506可以包含从发送构件108a、108b和108c至接收构件110a、110b、和110c的待传送的通信。
发送计算机104可以产生代表信息502的至少单个部分502a-502n的数据片、代表信息504的至少单个部分504a-504n的数据片、代表信息506的至少单个部分506a-506n的数据片。数据包508a-508n可以被产生使得:(i)数据包508a包含标头510a、部分502a、504a和506a、或其他数据包元件;(ii)数据包508b包含标头510b、部分502b、504b和506b、或其他数据包元件;以及(iii)等等。标头510a可以指定用于对代表部分502a、504a和506a的数据片进行加密的加密方案。标头510b可以指定用于对代表部分502b、504b和506b的数据片进行加密的加密方案。作为例子,标头510可以通过指定应该被用来解释标头510的策略,以及指定与加密方案相应的策略的加密方案索引来指定加密方案。如下进行关于策略和加密方案索引的进一步描述。
现在参考图5,数据包508a-508n可以被传送至接收计算机106。接收计算机106可以处理数据包508a-508n,形成信息502、504、506,并将信息502、504、506提供给它们各自的接收构件110a、110b、和110c。作为例子,接收计算机106可以处理标头510a-510n,以识别对代表部分502a-502n的数据片进行加密的加密方案、对代表部分504a-504n的数据片进行加密的加密方案、代表部分506a-506n的数据片进行加密的加密方案。数据片可以利用被识别的加密方案进行解密,来获得部分502a-502n、504a-504n、506a-506n。然后相应的部分可以被结合起来形成信息502、504、506。
在一些实施方式中,发送计算机104可以被编程为产生第三数据片,第三数据片包含随机产生的填充符数据。第三数据片可以具有与第一数据片或第二数据片的尺寸不同的尺寸。第一数据包可以被产生使得第一数据包可以包含第三数据片。以这样的方式,除了其他优点之外,随机产生的填充符数据可以被交叉在数据包中,以提供对实际代表信息的部分的数据进行伪装的另一个层。包括随机产生的填充符数据的数据片可以利用加密方案被加密,进一步对无意识的收件人隐藏如下事实:包括随机产生的填充符数据的数据片不代表信息的部分。另外,或可替换地,包括随机产生的填充符数据的数据片的尺寸可以在数据包内变化,以隐藏代表信息的部分的数据片的起始位置和终止位置。
在非限制的例子中,参考图5,每个数据包508a-508n可以包含包括随机产生的填充符数据512的数据片。当数据包508a-508n被接收计算机106接收时,包括随机产生的填充符数据(与信息的部分相对比)的数据片可以被忽略。例如,代表信息的部分的数据片的起始位置和终止位置可以被识别。然后代表信息的部分的数据片可以被抽取出来,留下包括随机产生的填充符数据的数据片。可以通过对抽取出的数据片进行解密来获得信息的部分。
在一个实施方式中,第一标头可以指定第一数据包内的第一数据片的位置、第一数据包内的第二数据片的位置、第一数据包内的第三数据片的位置、或其他位置信息。作为例子,数据包标头可以通过指定应该被用于解释数据包标头的策略指定数据片的起始位置、数据片的终止位置、数据片的尺寸,这些数据片包括随机产生的填充符数据,或其他与数据包相关的信息。
在一些实施方式中,特殊策略的示例性策略限定可以是:{"Policy":{"Index":0,"Name":"Standard ODEP","SliceSizes":128,512,32,32,128,384,268,24,"TrafficModel":2,"DataTypes":{0:"rand",1:"otp",2:"des",3:"aes256"}}。数据包标头可以被指定为示例性策略应该被用于通过指定策略索引0来解释数据包。基于策略限定,与话务模型索引2相应的话务模型可以被用于确定数据包内的数据片的位置,其中数据片包括随机产生的填充符数据,或其他与数据包相关的信息。如所讨论的,在一些实施方式中,策略或其他与策略相关的信息可以通过在给定的发送计算机和给定的接收计算机之间建立的单一关系来限定。作为例子,与数据包标头所指定的策略索引相应的策略可以只被分享该单一关系的发送计算机和接收计算机知道。作为另一个例子,给定的发送计算机可以具有与给定的接收计算机之间的第一关系来对从发送计算机到接收计算机的信息的传送(如发送信道)进行保密,并具有第二关系来处理从接收计算机(如接收信道)接收的位于发送计算机的数据包。例如,每个关系可以限定对于关系或其他与数据包相关的信息来说可用的不同策略。
在一些实施方式中,参考图6,数据包标头600可以指定策略索引、加密方案索引、标头偏移量、反转连接的端口或其他与数据包相关的信息,该策略索引代表应该用于对在第一比特组内包含数据包标头600的数据包进行解释的策略,该加密方案索引代表用于对数据包内的数据片进行加密的加密方案,该标头偏移量显示下一个数据包内的标头的位置。
在一些实施方式中,发送计算机104可以被编程为基于第三加密方案产生第一标头。第三加密方案可以与第一或第二加密方案之一相同,或可以与第一和第二加密方案不同。在一个实施方式中,参考图6,特殊的填充可以被用于加密数据包标头600。例如,用于加密数据包标头600的填充可以是被预配置为给定的发送计算机和给定的接收计算机之间的单一关系的部分的填充的一个收集。
在多种实施方式中,发送计算机104可以被编程为基于第三加密方案产生第一信号交换请求。第一信号交换请求可以被传送到接收计算机106。发送计算机104可以接收来自接收计算机106的第一响应。可以基于第一响应确认使用第三加密方案来加密标头,而利用第三加密方案对第一标头进行加密。
在一些实施方式中,第一计时发送计算机104发起与接收计算机106的通信会话,将信息安全地传送到接收计算机106,发送计算机104传送带有信号交换标头的传送信号交换包。信号交换标头可以包括标准24比特标头,其不具有主体,并且标头的所有比特都设置为0,并且信号交换标头可以利用第一填充被加密,使得两个计算机之间建立的关系在索引0处被限定。如果信号交换标头被接收计算机106理解(如发生计算机104和接收计算机106的填充对齐排列),接收计算机106可以发送消息作为回复,该消息指定由所建立的关系所限定的一个预配置的策略,该关系应该被用来产生数据包以安全地传送信息,和/或处理数据包以从数据包获得信息的部分。
在一些实施方式中,发送计算机104可以基于在第一数据包正在被传送之前接收计算机106未对传送至接收计算机106的数据包进行处理,而接收复位请求。例如,第一信号交换请求基于复位请求而产生。从接收计算机106接收到的第一响应可以指定第一数据包内用于第一标头的第一位置。第一数据包可以被产生使得第一数据包可以包含第一数据包内的第一位置的第一标头。作为例子,如果接收计算机106丢失后续的标头的位置,不能解密标头、或未对从发送计算机104传送的数据包进行合适的处理,接收计算机106可以将复位请求传送到发送计算机104,来触发两个计算机之间的信号交换,以确定用于加密后续的数据包标头、下一个数据包标头的初始位置、用于产生/处理数据包的策略、或其他信息的的加密方案。
在特定的实施方式中,发送计算机104可以被编程为基于第四加密方案产生第一信号交换请求,第四加密方案与第三加密方案(第一标头基于第三加密方案产生)不同。第一信号交换请求可以被传送到接收计算机106。发送计算机104可以接收来自接收计算机106的第一响应。第一响应可以指定第三加密方案的使用。例如,第一响应可以通过指定标头索引来指定第三加密方案的使用。基于标头索引与第三加密方案相应,发送计算机104可以被编程为利用第三加密方案产生第二信号交换请求。第二信号交换请求可以被传送至接收计算机106。可以从第二计算机系统接收第二响应。例如,第二响应可以确认使用第三加密方案来加密标头。第三加密方案可以被用于基于第二响应确认使用第三加密方案而对第一标头进行加密。
如所讨论的,在一些实施方式中,第一时间发送计算机104发起与接收计算机106的通信会话,将信息安全地传送到接收计算机106,发送计算机104可以与信号交换标头传送信号交换包。信号交换标头可以利用第一填充被加密,使得两个计算机之间建立的关系在索引0处被限定。如果信号交换标头被接收计算机106理解(如填充对准),接收计算机106可以发送消息作为回复,该消息指定由所建立的关系所限定的一个预配置的策略,该关系应该被用来产生数据包以安全地传送信息,和/或处理数据包以从数据包获得信息的部分。
另一方面,如果接收计算机106不能读取标头(如由于填充不对准或其他原因),接收计算机106可以将待使用的下一个填充文件传送给发送计算机104。然后发送计算机104可以通过与利用和索引相应的填充所加密的信号交换标头进行传送信号交换包,来重新发起通信会话。在一些实施方式中,两个计算机之间的关系可以标记为无效,使得如果信号交换的预定数量的尝试失败,则未来的连接尝试可能被撤销。
在多个实施方式中,发送计算机104可以被编程为产生代表第一信息的至少第二部分的第三数据片、代表第二信息的至少第二部分的第四数据片、或其他数据片。发送计算机104可以被编程为产生第二数据包,第二数据包包含第二标头、第三数据片以及第四数据片、或其他数据包元件。然后,第二数据包可以被传送到适合的接收计算机(如接收计算机106或其他接收计算机)。
在一个实施方式中,可以基于第一加密方案产生第三数据片。可以基于第二加密方案产生第四数据片。发送计算机104可以被编程为产生第二标头,使得第二标头可以为第三数据片指定第一加密方案,且为第四数据片指定第二加密方案,或其他信息。
在一些实施方式中,可以基于与第一加密方案不同的加密方案产生第三数据片。可以基于与第二加密方案不同的加密方案产生第四数据片。发送计算机104可以被编程为产生第二标头,使得第二标头可以为第三数据片指定不同于第一加密方案的加密方案,且为第四数据片指定不同于第二加密方案的加密方案,或其他信息。
在一些实施方式中,第一标头可以位于第一数据包内的第一位置。第一标头可以为第二标头指定第二数据包内的第二位置。第二数据包可以被产生使得第二数据包可以包含位于第二数据包内的第二位置的第二标头,第二数据包由第一标头指定。第二标头可以在第二数据包内指定第三数据片的位置,以及在第二数据包内指定第四数据片的位置、或其他信息。以这样的方式,因为一个数据包和下一个数据包的标头位置可以不同,如果并非不可能,对于发送计算机104和接收计算机106之间所建立的关系外部的任何构件,加密方案的识别可能会及其困难,该加密方案用于对数据片和加密方案已经被应用于其的相应的数据片进行加密。
在特定的实施方式中,第一数据包和第二数据包可以在第一会话期间被接收或传送。第二标头可以为第三标头指定第三数据包内的第三位置。发送计算机104可以被编程为在第二会话期间接收待传送的第三信息,第三信息与第一发送构件相关,第二会话与第一会话不同。发送计算机104可以被编程为产生代表第三信息的至少一部分的第五数据片。发送计算机104可以被编程为产生第三数据包,使得第三数据包可以包含第三标头和第五数据片。然后第三数据包可以在第二会话期间被传送到适合的接收计算机(如接收计算机106或其他接收计算机)。这样,在一些情况下,数据包标头可以通过所建立的关系指定所传送的下一个(或后续)数据包内的标头的位置,甚至其中下一个数据包直到后续通信会话才能被产生。
在一个实施方式中,第五数据片可以基于第一加密方案产生。发送计算机104可以被编程为第三标头,使得第三标头可以为第五数据片指定第一加密方案。
在一些实施方式中,第五数据片可以基于不同于第一加密方案的加密方案产生。发送计算机104可以被编程为第三标头,使得第三标头可以指定不同于第一加密方案的加密方案。
在多种实施方式中,第一策略、第二策略、或其他策略可以存储在发送计算机104内或与发送计算机104相关。第一标头可以通过指定第一策略为第一数据片指定第一加密方案,且为第二数据片指定第二加密方案。
如所讨论的,在一些实施方式中,特殊策略的示例性策略限定可以是:{"Policy":{"Index":0,"Name":"Standard ODEP","SliceSizes":128,512,32,32,128,384,268,24,"TrafficModel":2,"DataTypes":{0:"rand",1:"otp",2:"des",3:"aes256"}}。数据包标头可以指定示例性策略应该被用于通过指定策略索引0来解释数据包。当策略索引0被指定,可以利用与策略索引0相应的策略的加密方案索引(如用于OTP的索引1、用于DES的索引2、用于AES256的索引3等)为数据片指定加密方案。
在一些实施方式中,发送计算机104可以被编程为从接收计算机106接收第二数据包。第二数据包可以包含第二标头、第三数据片、或其他数据包元件。第三数据片可以代表第三信息的一部分。第二标头可以指定第二策略。发送计算机104可以被编程为基于第二标头指定第二策略而将第一加密方案识别为用于加密第三数据片的加密方案。发送计算机104可以被编程为基于第一加密方案来处理第三数据片,以获得第三信息的一部分。这样,在一些实施方式中,由不同的策略所指定的加密方案仍然可以重叠。
如所讨论的,在一些实施方式中,策略或其他与策略相关的信息可以通过在给定的发送计算机和给定的接收计算机之间建立的单一关系来限定。作为例子,与数据包标头所指定的策略索引相应的策略可以只被分享该单一关系的发送计算机和接收计算机知道。作为另一个例子,给定的发送计算机可以具有与给定的接收计算机之间的第一关系来对从发送计算机到接收计算机的信息的传送进行保密,并具有第二关系来处理从接收计算机所接收的位于发送计算机的数据包。例如,每个关系可以限定对于关系或其他与数据包相关的信息来说可用的不同策略。
在一个实施方式中,第一策略可以指定第一加密方案索引与第一加密方案的关联、第二加密方案索引与第二加密方案的关联、或其他关联。第二策略可以指定第三加密方案索引与第一加密方案的关联、或其他关联。第一标头可以通过指定第一策略为第一数据片指定第一加密方案,且为第二数据片指定第二加密方案,为第一数据片指定第一加密方案索引,以及为第二数据片指定第二加密方案索引。第二标头可以通过指定第二策略为第三数据片指定第一加密方案,且为第三数据片指定第三加密方案索引。基于第二标头指定第二策略以及为第三数据片指定第三加密方案,第一加密方案可以被识别为用于加密第三数据片的加密方案。
在特定的实施方式中,接收计算机106可以被编程为处理数据包,该数据包具有与利用不同加密方案所加密的不同信息相关的数据片。通过实例,接收计算机106可以被编程为接收第一数据包,第一数据包包含第一标头、第一数据片以及第二数据片、或其他数据包元件,第一数据片代表第一信息的至少一部分,第二数据片代表第二信息的至少一部分。第一通信可以与第一发送构件相关。第二通信可以与第二发送构件相关,第二发送构件不同于第一发送构件。例如,接收构件可以包括接收计算机106外部的构件、在接收计算机106内运行的构件(如虚拟机、应用软件、或在发送计算机104内运行的其他构件)、或其他构件。
接收计算机106可以被编程为基于第一标头将第一加密方案识别为用于对第一数据片进行加密的加密方案,且将第二加密方案识别为用于对第二数据片进行加密的加密方案,或其他信息。作为例子,利用第一加密方案对第一数据片进行加密可以包括利用第一加密类型或第一加密密钥对第一信息的一部分进行加密。利用第二加密方案对第二数据片进行加密可以包括利用第二加密类型或第二加密密钥对第二信息的一部分进行加密,该第二加密类型或第二加密密钥分别不同于第一加密类型或第一加密密钥。如所讨论的,加密类型的例子可以包含OTP、DES、AES,和/或其他加密类型。
接收计算机106可以被编程为基于第一加密方案来处理第一数据片,以获得第一信息的一部分,并基于第二加密方案来处理第二数据片,以获得第二信息的一部分。
在一些实施方式中,接收计算机106可以被编程为接收第二数据包,第二数据包包含第二标头、第三数据片、第四数据片、或其他数据包元件,第三数据片代表第一信息的至少第二部分,第四数据片代表第二信息的至少第二部分。接收计算机106可以被编程为基于第二标头将第一加密方案识别为用于对第三数据片进行加密的加密方案,且将第二加密方案识别为用于对第四数据片进行加密的加密方案,或其他信息。接收计算机106可以被编程为基于第一加密方案来处理第三数据片,以获得第一信息的第二部分,并基于第二加密方案来处理第四数据片,以获得第二信息的第二部分。
接收计算机106可以被编程为结合第一信息的所述部分以及第一信息的第二部分,形成用于第一接收构件的第一信息,并结合第二信息的所述部分以及第二信息的第二部分,形成用于第二接收构件的第二信息。
例如,参考图5,由接收计算机106所接收的数据包508a-508n可以包括:(i)数据包508a具有标头510a、部分502a、504a和506a、或其他数据包元件;(ii)数据包508b具有标头510b、部分502b、504b和506b、或其他数据包元件;以及(iii)等等。标头510a可以指定用于对代表部分502a、504a和506a的数据片进行加密的加密方案。标头510b可以指定用于对代表部分502b、504b和506b的数据片进行加密的加密方案。
接收计算机106可以处理数据包508a-508n,形成信息502、504、506,并将信息502、504、506提供给它们各自的接收构件110a、110b、和110c。作为例子,接收计算机106可以处理标头510a-510n,以识别对代表部分502a-502n的数据片进行加密的加密方案、对代表部分504a-504n的数据片进行加密的加密方案、代表部分506a-506n的数据片进行加密的加密方案。数据片可以利用被识别的加密方案进行解密,来获得部分502a-502n、504a-504n、506a-506n。然后相应的部分可以被结合起来形成信息502、504、506。
在一些实施方式中,第一标头可以被放置在第一数据包内的第一位置。第一标头可以为第二标头指定第二数据包内的第二位置。第二数据包可以包含位于第二数据包内的第二位置的第二标头,第二数据包由第一标头指定。以这样的方式,因为一个数据包和下一个数据包的标头位置可以不同,如果并非不可能,对于发送计算机104和接收计算机106之间所建立的关系外部的任何构件,加密方案的识别可能会及其困难,该加密方案用于对数据片和加密方案已经被应用于其的相应的数据片进行加密。
在一些实施方式中,第一数据包和/或第二数据包可以包含随机产生的填充符数据。如所讨论的,随机产生的填充符数据可以被交叉在数据包中,以提供对实际代表信息的部分的数据进行伪装的另一个层。包括随机产生的填充符数据的数据片可以利用加密方案被加密,进一步对无意识的收件人隐藏如下事实:包括随机产生的填充符数据的数据片不代表信息的部分。另外,或可替换地,包括随机产生的填充符数据的数据片的尺寸可以在数据包内变化,以隐藏代表信息的部分的数据片的起始位置和终止位置。
如所示的,关于图5,每个数据包508a-508n可以包含包括随机产生的填充符数据512的数据片。当数据包508a-508n被接收计算机106接收时,包括随机产生的填充符数据(与信息的部分相对比)的数据片可以被忽略。例如,代表信息的部分的数据片的起始位置和终止位置可以被识别。然后代表信息的部分的数据片可以被抽取出来,留下包括随机产生的填充符数据的数据片。随后,可以通过对抽取出的数据片进行解密来获得信息的部分。
在多种实施方式中,接收计算机106可以被编程为利用第三加密方案处理第一标头,以将第一加密方案识别为用于对第一数据片进行加密的加密方案,且将第二加密方案识别为用于对第二数据片进行加密的加密方案,或其他标头信息。第三加密方案可以与第一或第二加密方案之一相同,或可以与第一和第二加密方案不同。在一种情况下,特殊的填充可以被用于加密数据包标头600(如图6所示)。例如,用于加密数据包标头600的填充可以是被预配置为给定的发送计算机和给定的接收计算机之间的单一关系的部分的填充的一个收集。
返回去参考图5,在一些实施方式中,第一数据包可以从发送计算机104接收。接收计算机106可以被编程为从发送计算机104接收第一信号交换请求。可以基于第三加密方案产生第一信号交换请求。接收计算机106可以被编程为产生第一响应,第一响应确认使用第三加密方案来产生标头。第一响应可以被传送至发送计算机104。例如,可以基于第一响应利用第三加密方案产生第一标头。
如说讨论的,在一些实施方式中,第一时间发送计算机104发起与接收计算机106的通信会话,将信息安全地传送到接收计算机106,发送计算机104可以与信号交换标头传送信号交换包。信号交换标头可以利用第一填充被加密,使得两个计算机之间建立的关系在索引0处被限定。如果信号交换标头被接收计算机106理解(如填充对准),接收计算机106可以发送消息作为回复,该消息指定由所建立的关系所限定的一个预配置的策略,该关系应该被用来产生数据包以安全地传送信息,和/或处理数据包以从数据包获得信息的部分。
在一个实施方式中,接收计算机106可以被编程为基于在第一数据包正在被接收之前未对所接收的数据包进行处理,而产生复位请求。复位请求可以被传送至发送计算机104。第一信号交换请求可以基于复位请求的传送而从发送计算机104被接收。被传送至发送计算机104的第一响应可以指定第一数据包内用于第一标头的第一位置。第一数据包可以被产生使得第一数据包可以包含第一数据包内的第一位置的第一标头。作为例子,如果接收计算机106丢失后续的标头的位置,不能解密标头、或未对从发送计算机104传送的数据包进行合适的处理,接收计算机106可以将复位请求传送到发送计算机104,来触发两个计算机之间的信号交换,以确定用于加密后续的数据包标头、下一个数据包标头的初始位置、用于产生/处理数据包的策略、或其他信息的的加密方案。
在特定的实施方式中,发送计算机104可以被编程为利用具有标头的数据包保密信息,该标头起始于数据包内的与其他数据包不同的位置。作为例子,发送计算机104可以被编程为接收待传送的第一信息。第一信息可以与第一发送构件相关。
发送计算机104可以被编程为产生代表第一信息的至少一部分的第一数据片、代表第二信息的至少一部分的第二数据或其他数据片。发送计算机104可以被编程为产生第一数据包,第一数据包包含第一标头、第一数据片、或其他数据包元件。第一数据包可以被产生使得第一标头可以位于第一数据包内的第一位置。第一数据包可以被产生使得第一标头可以为第二标头指定第二数据包内的第二位置。发送计算机104可以被编程为产生第二数据包,使得第二数据包可以包含第二标头、第二数据片、或其他数据包元件。第二数据包可以被产生使得第二数据包可以位于第二数据包内的第二位置,第二数据包由第一标头指定。第一数据包和第二数据包可以被传送至合适的接收计算机(如接收计算机106或其他接收计算机)。以这样的方式,因为一个数据包和下一个数据包的标头位置可以不同,如果并非不可能,对于发送计算机104和接收计算机106之间所建立的关系外部的任何构件,加密方案的识别可能会及其困难,该加密方案用于对数据片和加密方案已经被应用于其的相应的数据片进行加密。
在一些实施方式中,发送计算机104可以被编程为基于第一加密方案产生第一标头,且基于第一加密方案产生第二标头。第一数据片和第二数据片均可以基于第二加密方案被产生,第二加密方案不同于第一加密方案。
在一个实施方式中,可以在第一会话期间接收第一信息。第二标头可以为第三标头指定第三数据包内的第三位置。发送计算机104可以被编程为在第二会话期间接收第二信息,第二会话与第一会话不同。发送计算机104可以被编程为产生代表第二信息的至少一部分的第三数据片。发送计算机104可以被编程为产生第三数据包,使得第三数据包可以包含第三标头、第三数据片、或其他数据包元件。第三数据包可以被产生使得第三数据包可以位于第三数据包内的第三位置,第三数据包由第二标头指定。第三数据包可以被传送至合适的接收计算机(如接收计算机106或其他接收计算机)。这样,在一些情况下,数据包标头可以通过所建立的关系指定所传送的下一个(或后续)数据包内的标头的位置,甚至其中下一个数据包直到后续通信会话才能被产生。
在特定的实施方式中,接收计算机106可以被编程为处理具有标头的数据包,该标头起始于数据包内的与其他数据包不同的位置。作为例子,接收计算机106可以被编程为接收第一数据包、第二数据包、或其他数据包。第一数据包可以包含第一标头、代表第一信息的第一部分的第一数据片、或其他数据包元件。第二数据包可以包含第二标头、代表第一信息的第二部分的第二数据片、或其他数据包元件。
接收计算机106可以被编程为识别位于第一数据包内的第一位置的第一标头。接收计算机106可以被编程为基于第一标头为第二标头指定第二位置而识别位于第二数据包内的第二位置的第二标头。接收计算机106可以被编程为基于第一标头识别第一数据包内的第一数据片,且基于第二标头识别第二数据包内的第二数据片。
接收计算机106可以被编程为处理第一数据片,以获得第一信息的第一部分,并处理第二数据片,以获得第一信息的第二部分。接收计算机106可以被编程为结合第一信息的第一部分以及第一信息的第二部分,形成第一信息。
在一些实施方式中,接收计算机可以被编程为识别用于加密第一标头的第一加密方案。接收计算机106可以被编程为利用第一加密方案处理第一标头,来识别用于对第一数据片进行加密的第二加密方案。第二加密方案可以不同于第一加密方案。可以利用第二加密方案处理第一数据片,以获得第一信息的第一部分。可以利用第二加密方案处理第二数据片,以获得第一信息的第二部分。
图7是根据本发明的一个方面的以相应的已知良好的软件构件来替换在运行时环境中运行的软件构件的方法的流程图的示例性说明。如下呈现的方法700的操作意在示例。在一些实施方式中,可以利用未被描述的一个或多个附加操作、和/或在没有所讨论的一个或多个操作的情况下来完成方法700。另外,图7中所示的以及如下所述的方法700的操作的顺序并不意在限制。
在一些实施方式中,可以在一个或多个处理设备(如数字信息处理器、模拟处理器、设计为处理信息的数字电路、设计为处理信息的模拟电路、状态机、和/或用于电子地处理信息的其他机构)中执行方法700。该一个或多个处理设备可以包含响应于电子地存储在电子存储媒介上的指令而允许运行方法700的一些或所有操作的一个或多个设备。该一个或多个处理设备可以包含被配置为通过硬件、固件和/或软件的一个或多个设备,该硬件、固件和/或软件被特别设定为执行方法700的一个或多个操作。
在操作702,可以确定至少第一事件,第一事件显示在运行时环境中运行的第一软件构件应该被替换。例如,第一事件可以在不考虑第一软件构件是否已经被泄密或可能已经被泄密的情况下被确定。在一些实施方式中,第一事件可以包含一个或多个替换时间段的流逝、第一软件构件的多个使用达到或超过使用阈值、第一软件构件的更新版本是有效的、和/或其他事件。根据一个或多个实施方式,操作402可以通过构件管理器子系统来执行,该构件管理器子系统与构件管理器子系统112相同或相似。
在操作704,可以从构件存储库获得至少第二软件构件,该第二软件构件与第一软件构件相应,构件存储库与运行时环境分离。根据一个或多个实施方式,可以通过构件管理器子系统执行操作704,该构件管理器子系统与构件管理器子系统112相同或相似。
在操作706,可以获得与第二软件构件相关的完整性信息。根据一个或多个实施方式,可以通过构件管理器子系统执行操作706,该构件管理器子系统与构件管理器子系统112相同或相似。
在操作708,可以基于完整性信息验证第二软件构件。根据一个或多个实施方式,可以通过构件管理器子系统执行操作708,该构件管理器子系统与构件管理器子系统112相同或相似。
在操作710,可以在运行时环境中例示第二软件构件。可以在非活跃路径中例示第二软件构件,使得第二软件构件在运行时环境中不可以使用。在一些实施方式中,可以基于第二软件构件正在通过完整性信息被验证而被例示。根据一个或多个实施方式,可以通过构件管理器子系统执行操作710,该构件管理器子系统与构件管理器子系统112相同或相似。
在操作712,可以基于第一事件(显示至少第一软件构件应该被替换)将第一软件构件替换为第二软件构件。根据一个或多个实施方式,可以通过构件管理器子系统执行操作712,该构件管理器子系统与构件管理器子系统112相同或相似。
在特定的实施方式中,关于操作712,第一事件可以包含一个或多个替换时间段的流逝、第一软件构件的多个使用达到或超过使用阈值、第一软件构件的更新版本是有效的、和/或其他事件。作为例子,可以在一个或多个替换时间段的流逝之后替换第一软件构件。可以在一个或多个替换时间段的第二流逝之后替换第二软件构件。作为另一个例子,可以基于第一软件构件的多个使用达到或超过使用阈值来替换第一软件构件。作为另一个例子,可以基于第一软件构件的更新版本是有效的来替换第一软件构件。第二软件构件可以包括更新版本。
在多种实施方式中,关于操作712,将第一软件构件替换为第二软件构件可以包括将第二软件构件放置在活跃路径中,使得第二软件构件在运行时环境中可以使用。在一个实施方式中,第一软件构件和第二软件构件均可以包含虚拟机,并将第二软件构件放置在活跃路径中可以包括更新与第二软件构件有关的网络配置,使得第二软件构件在所述运行时环境中可以使用。在另一个实施方式中,第一软件构件和第二软件构件均可以包含操作系统进程,将第二软件构件放置在活跃路径中包括通过进程间通信配置将第二软件构件移动到活跃路径中。在另一个实施方式中,第一软件构件和第二软件构件均可以包含可运行代码,并且将第二软件构件放置在活跃路径中包括更新与第二软件构件相关的存储地址指针或查询表。
在一些实施方式中,关于操作712,将第一软件构件替换为第二软件构件也可以包括将第一软件构件移出活跃路径。在一个实施方式中,可以在将第二软件构件放置在活跃路径中之后将第一软件构件移出活跃路径。
在操作714,可以在第一软件构件已经被替换后分析第一软件构件。根据一个或多个实施方式,可以通过构件分析子系统执行操作714,该构件分析子系统与构件分析子系统116相同或相似。
在操作716,可以实行确定第一软件构件是否已经被泄密和/或如何被泄密。例如,可以基于第一软件构件的分析来实行确定第一软件构件是否已经被泄密和/或如何被泄密。根据一个或多个实施方式,可以通过构件管理器子系统执行操作710,该构件管理器子系统与构件管理器子系统112相同或相似。
图8是根据本发明的一个方面的限制软件构件中的可利用或潜在可利用的子构件的方法的流程图的示例性说明。如下呈现的方法800的操作意在示例。在一些实施方式中,可以利用未被描述的一个或多个附加操作、和/或在没有所讨论的一个或多个操作的情况下来完成方法800。另外,图8中所示的以及如下所述的方法800的操作的顺序并不意在限制。
在一些实施方式中,可以在一个或多个处理设备(如数字信息处理器、模拟处理器、设计为处理信息的数字电路、设计为处理信息的模拟电路、状态机、和/或用于电子地处理信息的其他机构)中执行方法800。该一个或多个处理设备可以包含响应于电子地存储在电子存储媒介上的指令而允许方法800的一些或所有操作运行的一个或多个设备。该一个或多个处理设备可以包含被配置为通过硬件、固件和/或软件的一个或多个设备,该硬件、固件和/或软件被特别设定为执行方法800的一个或多个操作。
在操作802,可以识别构件产生环境中的至少第一软件构件。第一软件构件可以包含第一子构件,第一子构件提供可利用或潜在可利用的功能来泄密第一软件构件。第一软件构件还可以包含第二子构件,第二子构件提供可利用或潜在可利用的功能来泄密第一软件构件。根据一个或多个实施方式,可以通过构件封闭子系统执行操作802,该构件封闭子系统与构件封闭子系统304相同或相似。
在操作804,可以识别第一软件构件的第一子构件。由第一子构件提供的功能可以包含用于维护第一软件构件的维护功能或管理功能。可以基于由第一子构件所提供的维护功能或管理功能来识别第一子构件。根据一个或多个实施方式,可以通过构件封闭子系统执行操作804,该构件封闭子系统与构件封闭子系统304相同或相似。
在操作806,可以禁用第一子构件。例如,第一子构件可以被禁用使得第一子构件被运行时第一子构件所提供的功能不可以使用。在特定的实施方式中,禁用第一子构件可以包括将第一子构件从第一软件构件中移出。在一些实施方式中,禁用第一子构件可以包括关闭第一子构件所提供的功能而不将第一子构件从第一软件构件中移除。在多种实施方式中,禁用第一子构件可以包括将第一软件构件与禁用指令进行关联。作为例子,禁用指令可以与第一软件构件进行关联,使得第一子构件基于禁用指令而从第一软件构件中被移除。作为另一个例子,禁用指令可以与第一软件构件进行关联,使得由第一子构件提供的功能基于禁用指令而被关闭。根据一个或多个实施方式,可以通过构件封闭子系统执行操作806,该构件封闭子系统与构件封闭子系统304相同或相似。
在特定的实施方式中,可以在构件产生环境中产生第一软件构件,使得第一子构件包含第一子构件、第二子构件或其他子构件。第一文件信息可以与第一软件构件进行关联。例如,第一文件信息可以用于确定给定的软件构件的给定子构件是否应该被禁用。可以基于第一文件信息来禁用第一子构件。可以基于第一文件信息来禁用第二子构件。根据一个或多个实施方式,第一软件构件的产生和第一文件信息与第一软件构件的管理可以通过构件制作子系统来执行,该构件制作子系统与构件制作子系统302相同或相似。
在操作808,可以识别第一软件构件的第二子构件。第二子构件可以被识别为可利用或潜在可利用的子构件。在一些实施方式中,可以基于确定基于确定第一子构件对于第一软件构件的运行是不必要的来禁用第一子构件。可以基于确定基于确定第二子构件对于第一软件构件的运行是不必要的来禁用第二子构件。根据一个或多个实施方式,可以通过构件封闭子系统执行操作808,该构件封闭子系统与构件封闭子系统304相同或相似。
在操作810,可以识别与第二子构件关联的代码组,该代码组致使第二子构件是可利用或潜在可利用的。根据一个或多个实施方式,可以通过构件封闭子系统执行操作810,该构件封闭子系统与构件封闭子系统304相同或相似。
在操作812,可以从第二子构件中移除代码组。例如,可以将代码组从第二子构件中移除,使得第二子构件不再包含代码组。根据一个或多个实施方式,可以通过构件封闭子系统执行操作812,该构件封闭子系统与构件封闭子系统304相同或相似。
在操作814,可以为第一软件构件产生完整性信息。例如,可以在第一子构件被禁用之后、将代码组从第二子构件中移除之后、以及将第一软件构件放置在构件存储库内之前为第一软件构件产生完整性信息,其中构件存储库与构件产生环境分离。例如,完整性信息可以用于确定在为第一软件构件产生完整性信息之后第一软件构件是否已经被修改。根据一个或多个实施方式,可以通过构件输出子系统执行操作814,该构件输出子系统与构件输出子系统306相同或相似。
在操作816,可以将第一软件构件和完整性信息放置在构件存储库中。根据一个或多个实施方式,可以通过构件输出子系统执行操作816,该构件输出子系统与构件输出子系统306相同或相似。
图9是根据本发明的一个方面的结合待传送至数据包的不同片的不同信息以及利用不同加密方案对所述片进行加密以确保信息的传送的方法的流程图的示例性说明。如下呈现的方法900的操作意在示例。在一些实施方式中,可以利用未被描述的一个或多个附加操作、和/或在没有所讨论的一个或多个操作的情况下来完成方法900。另外,图9中所示的以及如下所述的方法900的操作的顺序并不意在限制。
在一些实施方式中,可以在一个或多个处理设备(如数字信息处理器、模拟处理器、设计为处理信息的数字电路、设计为处理信息的模拟电路、状态机、和/或用于电子地处理信息的其他机构)中执行方法900。该一个或多个处理设备可以包含响应于电子地存储在电子存储媒介上的指令而允许方法900的一些或所有操作运行的一个或多个设备。该一个或多个处理设备可以包含被配置为通过硬件、固件和/或软件的一个或多个设备,该硬件、固件和/或软件被特别设定为执行方法900的一个或多个操作。
在操作902,可以接收待发送的第一信息和待发送的第二信息。第一信息可以与第一发送构件相关联。第二信息可以与第二发送构件相关联。根据一个或多个实施方式,可以通过通信子系统执行操作902,该通信子系统与通信子系统402相同或相似。
在操作904,可以基于第一加密方案产生第一数据片。可以产生第一数据片使得第一数据片代表第一信息的至少第一部分。例如,第一信息的第一部分可以利用第一加密方案来加密,以产生第一数据片。根据一个或多个实施方式,可以通过通信子系统执行操作904,该通信子系统与通信子系统402相同或相似。
在操作906,可以基于第二加密方案产生第二数据片。可以产生第二数据片使得第二数据片代表第二信息的至少第一部分。例如,第二信息的第一部分可以利用第二加密方案来加密,以产生第二数据片。根据一个或多个实施方式,可以通过通信子系统执行操作906,该通信子系统与通信子系统402相同或相似。
在操作908,可以基于第三加密方案产生第一标头。可以产生第一标头,使得第一标头为第一数据片指定第一加密方案,且为第二数据片指定第二加密方案。例如,第一标头可以利用第三加密方案来加密。根据一个或多个实施方式,可以通过通信子系统执行操作908,该通信子系统与通信子系统402相同或相似。
在一些实施方式中,关于操作908,可以产生第一标头,使得第一标头在数据包内指定第一数据片的位置,并在数据包内指定第二数据片的位置,或数据包内指定其他数据片的位置。
在特定的实施方式中,关于操作908,可以基于第三加密方案在第一计算机系统(第一标头在第一计算机系统中产生)中产生第一信号交换请求。第一响应可以从第二计算机系统被接收。例如,第一响应可以确认使用第三加密方案来产生标头。可以基于第一响应确认使用第三加密方案而利用第三加密方案来加密第一标头。在一些实施方式中,复位请求可以基于第二计算机系统未对传送至第二计算机系统(例如在产生第一标头之前)的数据包进行处理而被接收到第一计算机系统中。例如,第一信号交换请求可以基于复位信息而产生。根据一个或多个实施方式,可以通过通信子系统执行这些操作,该通信子系统与通信子系统402相同或相似。
在多种实施方式中,关于操作908,可以基于第四加密方案而在第一计算机系统(第一标头在第一计算机系统中产生)中产生第一信号交换请求。第一信号交换请求可以被传送至第二计算机系统。第一响应可以从第二计算机系统被接收。第一响应可以指定使用第三加密方案。例如,第一响应可以通过指定标头索引来指定使用第三加密方案。基于标头索引与第三加密方案相应,可以利用第三加密方案产生第二信号交换请求。第二信号交换请求可以被传送至第二计算机系统。可以从第二计算机系统接收第二响应。例如,第二响应可以确认使用第三加密方案来加密标头。第三加密方案可以被用于基于第二响应确认使用第三加密方案而对第一标头进行加密。根据一个或多个实施方式,可以通过通信子系统执行这些操作,该通信子系统与通信子系统402相同或相似。
在操作910,可以产生第一数据包。可以产生第一数据包,使得第一数据包包含第一标头、第一数据片、第二数据片、随机产生的填充符数据、或其他数据。在一些实施方式中,第一数据包可以被产生,使得第一数据包包含第一数据片、第二数据片或其他数据片,第一数据片、第二数据片或其他数据片位于第一数据包内由第一标头为第一数据片、第二数据片或其他数据片指定的位置上。根据一个或多个实施方式,可以通过通信子系统执行操作910,该通信子系统与通信子系统402相同或相似。
在操作912,可以基于第一加密方案产生第三数据片。第三数据片可以被产生使得第三数据片代表第一信息的至少第二部分。例如,第一信息的第二部分可以利用第一加密方案来加密,以产生第三数据片。根据一个或多个实施方式,可以通过通信子系统执行操作910,该通信子系统与通信子系统402相同或相似。
在操作914,可以基于第二加密方案产生第四数据片。第四数据片可以被产生使得第四数据片代表第二信息的至少第二部分。例如,第二信息的第二部分可以利用第二加密方案来加密,以产生第四数据片。根据一个或多个实施方式,可以通过通信子系统执行操作914,该通信子系统与通信子系统402相同或相似。
在操作916,可以基于第三加密方案产生第二标头。可以产生第二标头,使得第二标头为第三数据片指定第一加密方案,且为第四数据片指定第二加密方案。例如,第二标头可以利用第三加密方案来加密。根据一个或多个实施方式,可以通过通信子系统执行操作916,该通信子系统与通信子系统402相同或相似。
在操作918,可以产生第二数据包。可以产生第二数据包,使得第二数据包包含第二标头、第三数据片、第四数据片、随机产生的填充符数据、或其他数据。在一些实施方式中,第二数据包可以被产生,使得第二数据包包含第三数据片、第四数据片或其他数据片,第三数据片、第四数据片或其他数据片位于第第三数据片、第四数据片或其他数据片数据包内由第二标头为第三数据片、第四数据片或其他数据片指定的位置上。根据一个或多个实施方式,可以通过通信子系统执行操作918,该通信子系统与通信子系统402相同或相似。
在特定的实施方式中,关于操作908、910、918,第一数据包可以被产生使得第一数据包包含位于第一数据包内的第一位置的第一标头。第一标头可以被产生使得第一标头为待放置的第二标头指定第二数据包内的第二位置。第二数据包可以被产生使得第二数据包包含位于第二位置的第二标头,第二位置由第一标头指定。
在操作920,可以传送第一数据包和第二数据包。例如,第一数据包和第二数据包可以从第一计算机系统(第一数据包和第二数据包在第一计算机系统中产生)被传送至第二计算机系统。根据一个或多个实施方式,可以通过通信子系统执行操作920,该通信子系统与通信子系统402相同或相似。
图10是根据本发明的一个方面的处理数据包的方法的示例性说明,该数据包具有与不同的信息相关的数据片,该不同的信息利用不同的加密方案来加密。如下呈现的方法1000的操作意在示例。在一些实施方式中,可以利用未被描述的一个或多个附加操作、和/或在没有所讨论的一个或多个操作的情况下来完成方法1000。另外,图10中所示的以及如下所述的方法1000的操作的顺序并不意在限制。
在一些实施方式中,可以在一个或多个处理设备(如数字信息处理器、模拟处理器、设计为处理信息的数字电路、设计为处理信息的模拟电路、状态机、和/或用于电子地处理信息的其他机构)中执行方法1000。该一个或多个处理设备可以包含响应于电子地存储在电子存储媒介上的指令而允许方法1000的一些或所有操作运行的一个或多个设备。该一个或多个处理设备可以包含被配置为通过硬件、固件和/或软件的一个或多个设备,该硬件、固件和/或软件被特别设定为执行方法1000的一个或多个操作。
在操作1002,可以接收第一数据包。第一数据包数据包包含第一标头、第一数据片、第二数据片或其他数据。第一数据片可以代表第一信息的至少第一部分。第二数据片可以代表第二信息的至少第一部分。第一信息可以与第一发送构件相关。第二信息可以与第二发送构件相关。第二发送构件可以与第一发送构件不同。根据一个或多个实施方式,可以通过通信子系统执行操作1002,该通信子系统与信息接收子系统404相同或相似。
在操作1004,可以接收第二数据包。第二数据包数据包包含第二标头、第三数据片、第四数据片或其他数据。第三数据片可以代表第一信息的至少第二部分。第四数据片可以代表第二信息的至少第二部分。在一些实施方式中,第一标头可以放置在第一数据包内的第二位置。第一标头可以为待放置的第二标头指定第二数据包内的第二位置。根据一个或多个实施方式,可以通过通信子系统执行操作1004,该通信子系统与信息接收子系统404相同或相似。
在操作1006,可以将第一加密方案识别为用于加密第一数据片的加密方案。可以将第二加密方案识别为用于加密第二数据片的加密方案。第一加密方案的识别或第二加密方案的识别可以是基于第一标头的。根据一个或多个实施方式,可以通过通信子系统执行操作1006,该通信子系统与信息接收子系统404相同或相似。
在特定的实施方式,关于操作1006,可以利用第三加密方案处理第一标头,以将第一加密方案识别为用于对第一数据片进行加密的加密方案,且将第二加密方案识别为用于对第二数据片进行加密的加密方案,或识别用于加密其他数据片的加密方案。在一些实施方式中,复位请求可以基于第一数据包被接收之前未对所接收的数据包进行处理而在第一计算机系统(第一标头在第一计算机系统中被处理)中被产生。复位请求可以被传送至第二计算机系统,第一数据阿包从第二计算机系统被后续接收。可以基于复位请求的传送而将信号交换请求从第二计算机系统接收到第一计算机系统中。可以基于第三加密方案来产生信号交换请求。可以产生第一响应,第一响应确认使用第三加密方案来产后标头。例如,第一标头可以基于响应而利用第三加密方案来产生。根据一个或多个实施方式,可以通过通信子系统执行这些操作,该通信子系统与信息接收子系统404相同或相似。
在操作1008,可以基于第一加密方案来处理第一数据片,以获得第一信息的第一部分。根据一个或多个实施方式,可以通过通信子系统执行操作1008,该通信子系统与信息接收子系统404相同或相似。
在操作1010,可以基于第二加密方案来处理第二数据片,以获得第二信息的第一部分。根据一个或多个实施方式,可以通过通信子系统执行操作1010,该通信子系统与信息接收子系统404相同或相似。
在操作1012,可以将第一加密方案识别为用于加密第三数据片的加密方案。可以将第二加密方案识别为用于加密第四数据片的加密方案。第一加密方案的识别或第二加密方案的识别可以是基于第二标头的。根据一个或多个实施方式,可以通过通信子系统执行操作1012,该通信子系统与信息接收子系统404相同或相似。
在一些实施方式中,关于操作1012,可以利用第三加密方案处理第二标头,以将第一加密方案识别为用于对第三数据片进行加密的加密方案,且将第二加密方案识别为用于对第四数据片进行加密的加密方案,或识别用于加密其他数据片的加密方案。根据一个或多个实施方式,可以通过通信子系统执行这些操作,该通信子系统与信息接收子系统404相同或相似。
在操作1014,可以基于第一加密方案来处理第三数据片,以获得第一信息的第二部分。根据一个或多个实施方式,可以通过通信子系统执行操作1014,该通信子系统与信息接收子系统404相同或相似。
在操作1016,可以基于第二加密方案来处理第四数据片,以获得第二信息的第二部分。根据一个或多个实施方式,可以通过通信子系统执行操作1016,该通信子系统与信息接收子系统404相同或相似。
在操作1018,第一信息的第一部分和第一信息的第二部分可以被结合,形成用于第一接收构件的第一信息。根据一个或多个实施方式,可以通过通信子系统执行操作1018,该通信子系统与信息接收子系统404相同或相似。
在操作1020,第二信息的第一部分和第二信息的第二部分可以被结合,形成用于第二接收构件的第二信息。根据一个或多个实施方式,可以通过通信子系统执行操作1020,该通信子系统与信息接收子系统404相同或相似。
图11是根据本发明的一个方面的通过限制构件的子构件、将构件替换为相应的已知良好的软件构件、对通过网络传送到构件或从构件传送来的信息进行保密和混淆来促进构件和信息的保密性和完整性的方法的流程图的示例性说明。
如下呈现的方法1100的操作意在示例。在一些实施方式中,可以利用未被描述的一个或多个附加操作、和/或在没有所讨论的一个或多个操作的情况下来完成方法1100。另外,图11中所示的以及如下所述的方法1100的操作的顺序并不意在限制。
在一些实施方式中,可以在一个或多个处理设备(如数字信息处理器、模拟处理器、设计为处理信息的数字电路、设计为处理信息的模拟电路、状态机、和/或用于电子地处理信息的其他机构)中执行方法1100。该一个或多个处理设备可以包含响应于电子地存储在电子存储媒介上的指令而允许方法1100的一些或所有操作运行的一个或多个设备。该一个或多个处理设备可以包含被配置为通过硬件、固件和/或软件的一个或多个设备,该硬件、固件和/或软件被特别设定为执行方法1100的一个或多个操作。
在操作1102,可以在构件产生环境中产生软件构件。根据一个或多个实施方式,可以通过构件制作子系统执行操作1102,该通信子系统与构件制作子系统302相同或相似。
在操作1104,可以禁用软件构件的子构件,该子构件是可利用的或潜在可利用的,以对软件构件进行泄密。根据一个或多个实施方式,操作1104可以包括图8所示的方法800的操作802、804、806、808、810或812的一个或多个。
在操作1106,可以将软件构件存储在构件存储库内,构件存储库与运行时环境分离。例如,运行时环境可以是生产环境,相应的软件构件在该生产环境中运行。根据一个或多个实施方式,操作1106可以包括图8所示的方法800的操作814、816中的一个或多个。
在操作1108,可以基于第一事件而将运行时环境中运行的相应的软件构件替换为被存储的软件构件。在一些实施方式中,第一事件可以包含一个或多个替换时间段的流逝、第一软件构件的多个使用达到或超过使用阈值、第一软件构件的更新版本是有效的、和/或其他事件。根据一个或多个实施方式,操作1108可以包括图7所示的方法700的操作702、704、706、708、710、712、714或716中的一个或多个。
在操作1110,可以由软件构件产生数据包。每个所产生的数据包可以包含代表不同信息的部分的数据片,该不同信息与不同构件相关。在一些实施方式中,软件构件可以包含软件构件的实例,该实例包括信息传送子系统和/或信息接收子系统,该信息传送子系统和/或信息接收子系统与信息传送子系统402和/或信息接收子系统404相同或相似。根据一个或多个实施方式,操作1110可以包括图9所示的方法900的操作902、904、906、908、910、912、914、916或918中的一个或多个。
在操作1112,可以由软件构件处理所接收的数据包。每个所接收的数据包可以包含数据片,数据片代表与不同的构件相关的不同信息的部分。在一些实施方式,软件构件可以包含软件构件的实例,该实例包括信息传送子系统和/或信息接收子系统,该信息传送子系统和/或信息接收子系统与信息传送子系统402和/或信息接收子系统404相同或相似。根据一个或多个实施方式,操作1112可以包括图10所示的方法1000的操作1002、1004、1006、1008、1010、1012、1014、1016或1018中的一个或多个。
图12是根据本发明的一个方面的通过限制构件的子构件、将构件替换为相应的已知良好的软件构件来促进构件和信息的保密性和完整性的方法的流程图的示例性说明。
如下呈现的方法1200的操作意在示例。在一些实施方式中,可以利用未被描述的一个或多个附加操作、和/或在没有所讨论的一个或多个操作的情况下来完成方法1200。另外,图12中所示的以及如下所述的方法1200的操作的顺序并不意在限制。
在一些实施方式中,可以在一个或多个处理设备(如数字信息处理器、模拟处理器、设计为处理信息的数字电路、设计为处理信息的模拟电路、状态机、和/或用于电子地处理信息的其他机构)中执行方法1200。该一个或多个处理设备可以包含响应于电子地存储在电子存储媒介上的指令而允许方法1200的一些或所有操作运行的一个或多个设备。该一个或多个处理设备可以包含被配置为通过硬件、固件和/或软件的一个或多个设备,该硬件、固件和/或软件被特别设定为执行方法1100的一个或多个操作。
在操作1202,可以在构件产生环境中产生软件构件。根据一个或多个实施方式,操作1202可以由构件制作子系统来执行,该构件制作子系统与构件制作子系统302相同或相似。
在操作1204,可以禁用软件构件的子构件,该子构件是可利用的或潜在可利用的,以对软件构件进行泄密。根据一个或多个实施方式,操作1204可以包括图8所示的方法800的操作802、804、806、808、810或812的一个或多个。
在操作1206,可以将软件构件存储在构件存储库内,构件存储库与运行时环境分离。例如,运行时环境可以是生产环境,相应的软件构件在该生产环境中运行。根据一个或多个实施方式,操作1206可以包括图8所示的方法800的操作814、816中的一个或多个。
在操作1206,可以基于第一事件而将运行时环境中运行的相应的软件构件替换为被存储的软件构件。在一些实施方式中,第一事件可以包含一个或多个替换时间段的流逝、第一软件构件的多个使用达到或超过使用阈值、第一软件构件的更新版本是有效的、和/或其他事件。根据一个或多个实施方式,操作1208可以包括图7所示的方法700的操作702、704、706、708、710、712、714或716中的一个或多个。
图13是根据本发明的一个方面的通过将构件替换为相应的已知良好的软件构件以及对通过网络传送到构件或从构件传送来的信息进行保密和混淆来促进构件和信息的保密性和完整性的方法的流程图的示例性说明。
如下呈现的方法1300的操作意在示例。在一些实施方式中,可以利用未被描述的一个或多个附加操作、和/或在没有所讨论的一个或多个操作的情况下来完成方法1200。另外,图13中所示的以及如下所述的方法1300的操作的顺序并不意在限制。
在一些实施方式中,可以在一个或多个处理设备(如数字信息处理器、模拟处理器、设计为处理信息的数字电路、设计为处理信息的模拟电路、状态机、和/或用于电子地处理信息的其他机构)中执行方法1300。该一个或多个处理设备可以包含响应于电子地存储在电子存储媒介上的指令而允许方法1300的一些或所有操作运行的一个或多个设备。该一个或多个处理设备可以包含被配置为通过硬件、固件和/或软件的一个或多个设备,该硬件、固件和/或软件被特别设定为执行方法1300的一个或多个操作。
在操作1302,可以将运行时环境中运行的相应的软件构件替换为存储在内容存储库中的的软件构件,该内容存储库与运行时环境分离。相应的软件构件的替换可以基于第一事件。在一些实施方式中,第一事件可以包含一个或多个替换时间段的流逝、第一软件构件的多个使用达到或超过使用阈值、第一软件构件的更新版本是有效的、和/或其他事件。根据一个或多个实施方式,操作1302可以包括图7所示的方法700的操作702、704、706、708、710、712、714或716中的一个或多个。
在操作1304,可以由软件构件产生数据包。每个所产生的数据包可以包含代表不同信息的部分的数据片,该不同信息与不同构件相关。在一些实施方式中,软件构件可以包含软件构件的实例,该实例包括信息传送子系统和/或信息接收子系统,该信息传送子系统和/或信息接收子系统与信息传送子系统402和/或信息接收子系统404相同或相似。根据一个或多个实施方式,操作1304可以包括图9所示的方法900的操作902、904、906、908、910、912、914、916或918中的一个或多个。
在操作1306,可以由软件构件处理所接收的数据包。每个所接收的数据包可以包含数据片,数据片代表与不同的构件相关的不同信息的部分。在一些实施方式,软件构件可以包含软件构件的实例,该实例包括信息传送子系统和/或信息接收子系统,该信息传送子系统和/或信息接收子系统与信息传送子系统402和/或信息接收子系统404相同或相似。根据一个或多个实施方式,操作1306可以包括图10所示的方法1000的操作1002、1004、1006、1008、1010、1012、1014、1016或1018中的一个或多个。
图14是根据本发明的一个方面的通过限制构件的子构件以及对通过网络传送到构件或从构件传送来的信息进行保密和混淆来促进构件和信息的保密性和完整性的方法的流程图的示例性说明。
如下呈现的方法1400的操作意在示例。在一些实施方式中,可以利用未被描述的一个或多个附加操作、和/或在没有所讨论的一个或多个操作的情况下来完成方法1400。另外,图14中所示的以及如下所述的方法1400的操作的顺序并不意在限制。
在一些实施方式中,可以在一个或多个处理设备(如数字信息处理器、模拟处理器、设计为处理信息的数字电路、设计为处理信息的模拟电路、状态机、和/或用于电子地处理信息的其他机构)中执行方法1400。该一个或多个处理设备可以包含响应于电子地存储在电子存储媒介上的指令而允许方法1400的一些或所有操作运行的一个或多个设备。该一个或多个处理设备可以包含被配置为通过硬件、固件和/或软件的一个或多个设备,该硬件、固件和/或软件被特别设定为执行方法1400的一个或多个操作。
在操作1402,可以在构件产生环境中产生软件构件。根据一个或多个实施方式,操作1402可以由构件制作子系统来执行,该构件制作子系统与构件制作子系统302相同或相似。
在操作1404,可以禁用软件构件的子构件,该子构件是可利用的或潜在可利用的,以对软件构件进行泄密。根据一个或多个实施方式,操作1,404可以包括图8所示的方法800的操作802、804、806、808、810或812的一个或多个。
在操作1406,可以将软件构件存储在构件存储库内,构件存储库与运行时环境分离。例如,运行时环境可以是生产环境,相应的软件构件在该生产环境中运行。根据一个或多个实施方式,操作1406可以包括图8所示的方法800的操作814、816中的一个或多个。
在操作1408,可以在运行时环境中例示软件构件。例如,可以从构件存储库中获得软件构件,并然后在运行时环境中例示该软件构件。随后,可以由运行时运行子系统在运行时环境中运行该软件构件。根据一个或多个实施方式,操作1408可以由构件管理器子系统来执行,该构件管理器子系统与构件管理器子系统112相同或相似。
在操作1410,可以由软件构件产生数据包。每个所产生的数据包可以包含代表不同信息的部分的数据片,该不同信息与不同构件相关。在一些实施方式中,软件构件可以包含软件构件的实例,该实例包括信息传送子系统和/或信息接收子系统,该信息传送子系统和/或信息接收子系统与信息传送子系统402和/或信息接收子系统404相同或相似。根据一个或多个实施方式,操作1110可以包括图9所示的方法900的操作902、904、906、908、910、912、914、916或918中的一个或多个。
在操作1412,可以由软件构件处理所接收的数据包。每个所接收的数据包可以包含数据片,数据片代表与不同的构件相关的不同信息的部分。在一些实施方式,软件构件可以包含软件构件的实例,该实例包括信息传送子系统和/或信息接收子系统,该信息传送子系统和/或信息接收子系统与信息传送子系统402和/或信息接收子系统404相同或相似。根据一个或多个实施方式,操作1412可以包括图10所示的方法1000的操作1002、1004、1006、1008、1010、1012、1014、1016或1018中的一个或多个。
在一些实施方式中,图中所示的多个计算机和子系统可以包括被编程为执行在此所述的功能的一个或多个计算机设备。计算机设备可以包含一个或多个电子存储器、一个或多个物理处理器和/或其他构件,该处理器被编程为具有一个或多个计算机程序指令。计算机设备可以包含通信线路或接口,使得能够与其他计算机平台进行信息的交换。计算机设备可以包含一起操作的多个硬件、软件和/或固件构件,以提供在此归因于服务器的功能性。例如,可以通过一起操作以作为计算机设备的多个计算机平台来完成计算机设备。每个构件和子系统可以单独提供给定的保护措施,或可以与其他计算机和子系统结合来共同提供在此所述的保护措施的结合。
电子存储器可以包括非短暂的存储媒介来电子地存储信息。电子存储器的电子存储媒介可以包含系统存储器或可拆卸存储器的一者或两者,系统存储器整体(如,实质不可拆卸地)提供服务器,可拆卸存储器通过,例如,接口(如USB接口、火线接口等)或驱动器(如磁盘驱动器等)与服务器可拆卸连接。电子存储器可包含下述一个或多个:光可读存储媒体(例如光盘等)、磁可读存储媒体(例如磁带、硬盘、软盘等)、基于电荷的存储媒体(例如EEPROM、RAM等)、固态存储媒体(例如闪存驱动器等)及/或其他电子可读存储媒体。电子存储器可包含一个或多个虚拟存储器资源(例如云存储器、虚拟专用网络及/或其他虚拟存储器资源)。电子存储器可存储软件算法、处理器确定的信息、从服务器接收的信息、从客户计算机平台接收的信息、或能够使服务器具有在此所述的功能的其他信息。
处理器可以被编程为在服务器中提供信息处理能力。由此,处理器可包含以下处理器中的一个或多个:数字处理器、模拟处理器、设计用于处理信息的数字电路、设计用于处理信息的模拟电路、状态机及/或其他用于电子处理信息的机构。在某些实施方式中,处理器可包含多个处理单元。这些处理单元可以实际上位于相同设备内,或处理器可呈现多个协同运作的设备的处理功能。处理器可以被编程为运行计算机程序指令来执行在此所述的子系统112、116、118、302、304、306、402、404或其他子系统的功能。处理器可以被编程为通过以下各者运行模块:软件;硬件;固件;软件、硬件或固件的某种组合;及/或其他用于配置处理器上的处理能力的其他机构。
可以理解的是由在此所述的不同的子系统112、116、118、302、304、306、402或404所提供的功能的描述是出于示意的目的,并不意在限制,因为任何子系统112、116、118、302、304、306、402或404可以提供比所述的较多或较少的功能。例如,子系统112、116、118、302、304、306、402或404的一个或多个可以被撤销,且其一些或全部功能可以由其他子系统112、116、118、302、304、306、402或404的其他一个来提供。作为另一个例子,附加子系统可以被编程为执行归属于子系统112、116、118、302、304、306、402或404之一的一些或全部功能的。
尽管已经基于当下对最实际和最优选实施方式的考虑、出于示例目的而详细描述了本发明,但是应知,这些细节仅仅是为了示例的目的,本发明不限于所揭露的实施方式,反而应涵盖属于权利要求书精神和范围的更改和等效内容。例如,应理解本发明考虑到,在可能的范围内,任何实施方式的一个或多个特征都可以和任何其他实施方式的一个或多个特征相结合。
Claims (30)
1.一种以相应的已知良好的软件构件来替换在运行时环境中运行的软件构件而不考虑在运行时环境中运行的所述软件构件是否已经被泄密或可能已经被泄密的利用计算机执行的方法,所述方法由计算机系统执行,所述计算机系统包含由一个或多个计算机程序指令所编程的一个或多个处理器,所述方法包括:
由所述计算机系统确定至少第一事件,所述第一事件显示在运行时环境中运行的至少第一软件构件应该被替换,所述第一事件在不考虑所述第一软件构件是否已经被泄密或可能已经被泄密的情况下被确定;
由所述计算机系统从构件存储库中获得至少第二软件构件,所述第二软件构件与所述运行时环境分离,其中所述第二软件构件与所述第一软件构件对应;以及
通过所述计算机系统基于所述第一事件将所述第一软件构件替换为所述第二软件构件,使得所述第一事件后所述第二软件构件可以在所述运行时环境中使用,且所述第一事件后所述第一软件构件在所述运行时环境中不可用。
2.根据权利要求1所述的方法,还包括:
在运行时环境中由所述计算机系统例示所述第二软件构件,其中所述第二软件构件在非活跃路径中被例示,使得所述第二软件构件在所述运行时环境中不可用,并且其中将所述第一软件构件替换为所述第二软件构件包括:
由所述计算机系统将所述第二软件构件放置在活跃路径中,使得所述第二软件构件在所述运行时环境中可用;以及
由所述计算机系统将所述第一软件构件移出所述活跃路径。
3.根据权利要求2所述的方法,其中当所述第二软件构件被放置在所述活跃路径时所述第一软件构件被移出所述活跃路径。
4.根据权利要求2所述的方法,其中所述第一软件构件和所述第二软件构件均包含虚拟机,并且其中将所述第二软件构件放置在所述活跃路径中包括更新与所述第二软件构件有关的网络配置,使得所述第二软件构件在所述运行时环境中可用。
5.根据权利要求2所述的方法,其中所述第一软件构件和所述第二软件构件均包含操作系统进程,并且其中将所述第二软件构件放置在所述活跃路径中包括:通过进程间通信配置将所述第二软件构件移动到所述活跃路径中。
6.根据权利要求2所述的方法,其中所述第一软件构件和所述第二软件构件均包含可运行代码,并且其中将所述第二软件构件放置在所述活跃路径中包括:更新与所述第二软件构件相关的存储地址指针或查询表。
7.根据权利要求1所述的方法,还包括:
由所述计算机系统获得与所述第二软件构件相关的完整性信息;以及
由所述计算机系统基于所述完整性信息验证所述第二软件构件,其中基于所述第二软件构件的验证来替换所述第一软件构件。
8.根据权利要求1所述的方法,还包括:
在所述第一软件构件已经被替换后由构件分析子系统分析所述第一软件构件;以及
由所述构件分析子系统基于分析结果确定所述第一软件构件是否已经被泄密和/或怎样被泄密。
9.根据权利要求1所述的方法,其中所述第一事件可以包含一个或多个替换时间段的流逝,使得所述第一软件构件在所述一个或多个替换时间段的流逝之后被替换,并且其中第二事件显示所述第二软件构件应该被替换,所述第二事件可以包含所述一个或多个替换时间段的第二流逝,使得所述第二软件构件在所述一个或多个替换时间段的第二流逝之后被替换。
10.根据权利要求1所述的方法,其中所述第一事件是基于确定所述第一软件构件的多个使用已经达到或超过使用阈值的。
11.根据权利要求1所述的方法,其中所述第一事件是基于确定所述第一软件构件的更新版本是有效可用的,并且其中所述第二软件构件包括所述更新版本。
12.根据权利要求1所述的方法,还包括:
由构件产生子系统将所述第二软件构件增加到所述构件存储库,其中所述构件产生子系统不能从所述运行时环境进入,使得所述构件产生子系统不能从所述运行时环境中被泄密。
13.根据权利要求12所述的方法,其中所述构件产生子系统不具备对所述构件存储库的读取访问权限。
14.根据权利要求1所述的方法,其中从所述构件存储库获得所述第二软件构件包括由构件管理器子系统从所述构件存储库获得所述第二软件构件,并且其中所述构件管理器子系统不具备对所述构件存储库的写入访问权限。
15.根据权利要求1所述的方法,还包括:
由构件产生子系统将所述第二软件构件增加到所述构件存储库,其中所述构件产生子系统不能从所述运行时环境进入,使得所述构件产生子系统不能从所述运行时环境中被泄密,以及
其中从所述构件存储库获得所述第二软件构件包括:由构件管理器子系统从所述构件存储库获得所述第二软件构件,其中所述构件管理器子系统不具备对所述构件存储库的写入访问权限。
16.一种用于以相应的已知良好的软件构件来替换在运行时环境中运行的软件构件而不考虑在运行时环境中运行的所述软件构件是否已经被泄密或可能已经被泄密的系统,所述系统包括:
由一个或多个计算机程序指令所编程的一个或多个处理器,使得所述一个或多个处理器被编程为:
确定至少第一事件,所述第一事件显示在运行时环境中运行的至少第一软件构件应该被替换,所述第一事件在不考虑所述第一软件构件是否已经被泄密或可能已经被泄密的情况下被确定;
从构件存储库中获得至少第二软件构件,所述第二软件构件与所述运行时环境分离,其中所述第二软件构件与所述第一软件构件对应;以及
基于所述第一事件将所述第一软件构件替换为所述第二软件构件,使得所述第一事件后所述第二软件构件可以在所述运行时环境中使用,且所述第一事件后所述第一软件构件在所述运行时环境中不可用。
17.根据权利要求16所述的系统,其中所述一个或多个处理器被编程为:
在运行时环境中例示所述第二软件构件,其中所述第二软件构件在非活跃路径中被例示,使得所述第二软件构件在所述运行时环境中不可以使用,并且
其中将所述第一软件构件替换为所述第二软件构件包括:
将所述第二软件构件放置在活跃路径中,使得所述第二软件构件在所述运行时环境中可以使用;以及
将所述第一软件构件移出所述活跃路径。
18.根据权利要求17所述的系统,其中当所述第二软件构件被放置在所述活跃路径时所述第一软件构件被移出所述活跃路径。
19.根据权利要求17所述的系统,其中所述第一软件构件和所述第二软件构件均包含虚拟机,其中将所述第二软件构件放置在所述活跃路径中包括:更新与所述第二软件构件有关的网络配置,使得所述第二软件构件在所述运行时环境中可以使用。
20.根据权利要求17所述的系统,其中所述第一软件构件和所述第二软件构件均包含操作系统进程,并且其中将所述第二软件构件放置在所述活跃路径中包括:通过进程间通信配置将所述第二软件构件移动到所述活跃路径中。
21.根据权利要求17所述的系统,其中所述第一软件构件和所述第二软件构件均包含可运行代码,并且其中将所述第二软件构件放置在所述活跃路径中包括:更新与所述第二软件构件相关的存储地址指针或查询表。
22.根据权利要求16所述的系统,其中所述一个或多个处理器被编程为:
获得与所述第二软件构件相关的完整性信息;以及
基于所述完整性信息验证所述第二软件构件,其中基于所述第二软件构件的验证来替换所述第一软件构件。
23.根据权利要求16所述的系统,其中所述一个或多个处理器被编程为:
在所述第一软件构件已经被替换后分析所述第一软件构件;以及
基于分析结果确定所述第一软件构件是否已经被泄密和/或怎样被泄密。
24.根据权利要求16所述的系统,其中所述第一事件可以包含一个或多个替换时间段的流逝,使得所述第一软件构件在所述一个或多个替换时间段的流逝之后被替换,并且其中第二事件显示所述第二软件构件应该被替换,所述第二事件可以包含所述一个或多个替换时间段的第二流逝,使得所述第二软件构件在所述一个或多个替换时间段的第二流逝之后被替换。
25.根据权利要求16所述的系统,其中所述第一事件是基于确定所述第一软件构件的多个使用已经达到或超过使用阈值的。
26.根据权利要求16所述的系统,其中所述第一事件是基于确定所述第一软件构件的更新版本是有效可用的,并且其中所述第二软件构件包括所述更新版本。
27.根据权利要求16所述的系统,其中所述一个或多个处理器被编程为:
通过构件产生子系统将所述第二软件构件增加到所述构件存储库,其中所述构件产生子系统不能从所述运行时环境进入,使得所述构件产生子系统不能从所述运行时环境中被泄密。
28.根据权利要求27所述的系统,其中所述构件产生子系统不具备对所述构件存储库的读取访问权限。
29.根据权利要求16所述的系统,其中从所述构件存储库获得所述第二软件构件包括通过构件管理器子系统从所述构件存储库获得所述第二软件构件,并且其中所述构件管理器子系统不具备对所述构件存储库的写入访问权限。
30.根据权利要求16所述的系统,其中所述一个或多个处理器被编程为:
通过构件产生子系统将所述第二软件构件增加到所述构件存储库,其中所述构件产生子系统不能从所述运行时环境进入,使得所述构件产生子系统不能从所述运行时环境中被泄密,以及
其中从所述构件存储库获得所述第二软件构件包括通过构件管理器子系统从所述构件存储库获得所述第二软件构件,其中所述构件管理器子系统不具备对所述构件存储库的写入访问权限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711385266.2A CN107979612A (zh) | 2012-08-18 | 2013-08-16 | 提供安全的计算机环境的系统和方法 |
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261684746P | 2012-08-18 | 2012-08-18 | |
US201261684745P | 2012-08-18 | 2012-08-18 | |
US201261684743P | 2012-08-18 | 2012-08-18 | |
US201261684744P | 2012-08-18 | 2012-08-18 | |
US61/684,743 | 2012-08-18 | ||
US61/684,746 | 2012-08-18 | ||
US61/684,745 | 2012-08-18 | ||
US61/684,744 | 2012-08-18 | ||
PCT/US2013/055449 WO2014031494A2 (en) | 2012-08-18 | 2013-08-16 | System and method for providing a secure computational environment |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711385266.2A Division CN107979612A (zh) | 2012-08-18 | 2013-08-16 | 提供安全的计算机环境的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104769606A CN104769606A (zh) | 2015-07-08 |
CN104769606B true CN104769606B (zh) | 2018-01-26 |
Family
ID=50100946
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380049976.1A Active CN104769606B (zh) | 2012-08-18 | 2013-08-16 | 提供安全的计算机环境的系统和方法 |
CN201711385266.2A Pending CN107979612A (zh) | 2012-08-18 | 2013-08-16 | 提供安全的计算机环境的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711385266.2A Pending CN107979612A (zh) | 2012-08-18 | 2013-08-16 | 提供安全的计算机环境的系统和方法 |
Country Status (10)
Country | Link |
---|---|
US (8) | US9003372B2 (zh) |
EP (1) | EP2885739B1 (zh) |
JP (1) | JP6382196B2 (zh) |
KR (1) | KR20150070105A (zh) |
CN (2) | CN104769606B (zh) |
AU (2) | AU2013306094A1 (zh) |
CA (1) | CA2882136A1 (zh) |
IL (1) | IL237219B (zh) |
IN (1) | IN2015KN00455A (zh) |
WO (1) | WO2014031494A2 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL210169A0 (en) | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
WO2014031494A2 (en) | 2012-08-18 | 2014-02-27 | Luminal, Inc. | System and method for providing a secure computational environment |
US9231921B2 (en) * | 2013-08-20 | 2016-01-05 | Janus Technologies, Inc. | System and architecture for secure computer devices |
US9756074B2 (en) | 2013-12-26 | 2017-09-05 | Fireeye, Inc. | System and method for IPS and VM-based detection of suspicious objects |
US10084813B2 (en) * | 2014-06-24 | 2018-09-25 | Fireeye, Inc. | Intrusion prevention and remedy system |
US20160170739A1 (en) * | 2014-12-15 | 2016-06-16 | Dimitar Kapashikov | Alter application behaviour during runtime |
US9591022B2 (en) | 2014-12-17 | 2017-03-07 | The Boeing Company | Computer defenses and counterattacks |
US11651367B2 (en) * | 2015-09-18 | 2023-05-16 | International Business Machines Corporation | Security in a communication network |
US10341194B2 (en) | 2015-10-05 | 2019-07-02 | Fugue, Inc. | System and method for building, optimizing, and enforcing infrastructure on a cloud based computing environment |
WO2018022901A1 (en) * | 2016-07-27 | 2018-02-01 | Fugue, Inc. | Regeneration and generational mutation for security and fidelity in software defined networks |
US10666443B2 (en) * | 2016-10-18 | 2020-05-26 | Red Hat, Inc. | Continued verification and monitoring of application code in containerized execution environment |
US10691837B1 (en) * | 2017-06-02 | 2020-06-23 | Apple Inc. | Multi-user storage volume encryption via secure enclave |
US10346157B2 (en) * | 2017-07-31 | 2019-07-09 | Qualcomm Incorporated | Patch infrastructure for ROM firmware |
EP3547122B1 (en) * | 2018-03-27 | 2023-06-07 | CODESYS Holding GmbH | A method and system for replacing a software component of a runtime system |
US11297080B2 (en) | 2018-06-06 | 2022-04-05 | Reliaquest Holdings, Llc | Threat mitigation system and method |
US11709946B2 (en) | 2018-06-06 | 2023-07-25 | Reliaquest Holdings, Llc | Threat mitigation system and method |
WO2020014787A1 (en) * | 2018-07-17 | 2020-01-23 | Mergebase Software Inc. | Systems and methods for managing and securing computer systems |
US10872029B1 (en) | 2018-11-21 | 2020-12-22 | Candid Partners, LLC | System, apparatus and method for deploying infrastructure to the cloud |
US10785128B1 (en) | 2018-11-21 | 2020-09-22 | Candid Partners, LLC | System, apparatus and method for deploying infrastructure to the cloud |
US10990370B1 (en) | 2018-11-21 | 2021-04-27 | Candid Labs, Inc. | System, apparatus and method for deploying infrastructure to the cloud |
US11599644B2 (en) * | 2019-05-17 | 2023-03-07 | Walmart Apollo, Llc | Blocking insecure code with locking |
USD926809S1 (en) | 2019-06-05 | 2021-08-03 | Reliaquest Holdings, Llc | Display screen or portion thereof with a graphical user interface |
USD926810S1 (en) | 2019-06-05 | 2021-08-03 | Reliaquest Holdings, Llc | Display screen or portion thereof with a graphical user interface |
USD926782S1 (en) | 2019-06-06 | 2021-08-03 | Reliaquest Holdings, Llc | Display screen or portion thereof with a graphical user interface |
USD926811S1 (en) | 2019-06-06 | 2021-08-03 | Reliaquest Holdings, Llc | Display screen or portion thereof with a graphical user interface |
USD926200S1 (en) | 2019-06-06 | 2021-07-27 | Reliaquest Holdings, Llc | Display screen or portion thereof with a graphical user interface |
US11343089B2 (en) * | 2019-07-10 | 2022-05-24 | Tunnel VUE Inc. | Cryptography system and method |
CN112714097A (zh) * | 2019-10-25 | 2021-04-27 | 华为技术有限公司 | 一种安全通信方法、装置及系统 |
US11968187B2 (en) * | 2020-10-23 | 2024-04-23 | Secturion Systems, Inc. | Multi-independent level security for high performance computing and data storage systems |
US11921878B2 (en) * | 2021-01-21 | 2024-03-05 | Servicenow, Inc. | Database security through obfuscation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473333A (zh) * | 2006-06-21 | 2009-07-01 | 威步系统股份公司 | 入侵检测的方法和系统 |
CN101661399A (zh) * | 2008-08-25 | 2010-03-03 | 通用汽车环球科技运作公司 | 模块化软件移除方法 |
Family Cites Families (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5444850A (en) | 1993-08-04 | 1995-08-22 | Trend Micro Devices Incorporated | Method and apparatus for controlling network and workstation access prior to workstation boot |
US5832492A (en) | 1995-09-05 | 1998-11-03 | Compaq Computer Corporation | Method of scheduling interrupts to the linked lists of transfer descriptors scheduled at intervals on a serial bus |
US6199203B1 (en) * | 1998-07-21 | 2001-03-06 | Hewlett-Packard Company | Memory management techniques for on-line replaceable software |
US6501995B1 (en) | 1999-06-30 | 2002-12-31 | The Foxboro Company | Process control system and method with improved distribution, installation and validation of components |
US7284274B1 (en) | 2001-01-18 | 2007-10-16 | Cigital, Inc. | System and method for identifying and eliminating vulnerabilities in computer software applications |
US20020178375A1 (en) | 2001-01-31 | 2002-11-28 | Harris Corporation | Method and system for protecting against malicious mobile code |
US7350207B2 (en) | 2001-05-25 | 2008-03-25 | Tellabs Operations, Inc. | Rule-based system and method for downloading computer software over a network |
US8205193B2 (en) | 2001-06-11 | 2012-06-19 | Hewlett-Packard Development Company, L.P. | Runtime updating of virtual machine class files |
US7188163B2 (en) * | 2001-11-26 | 2007-03-06 | Sun Microsystems, Inc. | Dynamic reconfiguration of applications on a server |
US20030147369A1 (en) | 2001-12-24 | 2003-08-07 | Singh Ram Naresh | Secure wireless transfer of data between different computing devices |
US7292691B2 (en) | 2002-01-02 | 2007-11-06 | Sony Corporation | Progressive video refresh slice detection |
US7254586B2 (en) * | 2002-06-28 | 2007-08-07 | Microsoft Corporation | Secure and opaque type library providing secure data protection of variables |
US7486678B1 (en) | 2002-07-03 | 2009-02-03 | Greenfield Networks | Multi-slice network processor |
JP2004164351A (ja) * | 2002-11-14 | 2004-06-10 | Hitachi Ltd | コンピュータシステムの不正プログラム修正方法およびその装置 |
AU2003285634A1 (en) * | 2002-12-16 | 2004-07-09 | Koninklijke Philips Electronics N.V. | Method and apparatus to encrypt video data streams |
US7716736B2 (en) | 2003-04-17 | 2010-05-11 | Cybersoft, Inc. | Apparatus, methods and articles of manufacture for computer virus testing |
US7134121B2 (en) * | 2003-06-12 | 2006-11-07 | International Business Machines Corporation | Installing fixes based on usage |
US7149897B2 (en) | 2003-07-25 | 2006-12-12 | The United States Of America As Represented By The Secretary Of The Navy | Systems and methods for providing increased computer security |
US7275213B2 (en) * | 2003-08-11 | 2007-09-25 | Ricoh Company, Ltd. | Configuring a graphical user interface on a multifunction peripheral |
US7533377B2 (en) | 2003-09-29 | 2009-05-12 | International Business Machines Corporation | Achieving autonomic behavior in an operating system via a hot-swapping mechanism |
US7735078B1 (en) | 2003-10-30 | 2010-06-08 | Oracle America, Inc. | System and method for software patching for cross-platform products |
US8332943B2 (en) * | 2004-02-17 | 2012-12-11 | Microsoft Corporation | Tiered object-related trust decisions |
US7848332B2 (en) | 2004-11-15 | 2010-12-07 | Cisco Technology, Inc. | Method and apparatus for classifying a network protocol and aligning a network protocol header relative to cache line boundary |
US20060185018A1 (en) * | 2005-02-17 | 2006-08-17 | Microsoft Corporation | Systems and methods for shielding an identified vulnerability |
US7779399B2 (en) * | 2005-05-16 | 2010-08-17 | Armorize Technologies, Inc. | System and method for securing web application code and verifying correctness of software |
US8800042B2 (en) * | 2005-05-16 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Secure web application development and execution environment |
CN1881908A (zh) | 2005-06-13 | 2006-12-20 | 华为技术有限公司 | 测量mpls网络性能参数的方法 |
US20070016961A1 (en) * | 2005-07-11 | 2007-01-18 | Vogler Dean H | Application revocation using an application revocation list in a portable electronic device |
US7650492B2 (en) * | 2005-07-19 | 2010-01-19 | Microsoft Corporation | Automatic update of computer-readable components to support a trusted environment |
US20070074187A1 (en) * | 2005-09-29 | 2007-03-29 | O'brien Thomas E | Method and apparatus for inserting code fixes into applications at runtime |
US20070091926A1 (en) | 2005-10-21 | 2007-04-26 | Apostolopoulos John G | Method for optimizing portions of data from a plurality of data streams at a transcoding node |
US7756834B2 (en) * | 2005-11-03 | 2010-07-13 | I365 Inc. | Malware and spyware attack recovery system and method |
US7809670B2 (en) | 2005-12-09 | 2010-10-05 | Microsoft Corporation | Classification of malware using clustering that orders events in accordance with the time of occurance |
US7761503B2 (en) * | 2006-01-06 | 2010-07-20 | Microsoft Corporation | Peer distribution point feature for system management server |
US7697529B2 (en) | 2006-02-28 | 2010-04-13 | Cisco Technology, Inc. | Fabric channel control apparatus and method |
US20080022374A1 (en) * | 2006-06-29 | 2008-01-24 | Research In Motion Limited | System and method for securely communicating with a server |
US20090254900A1 (en) | 2006-07-13 | 2009-10-08 | Seiko Epson Corporation | Network system, computers, and method and program for providing and executing applications in network system |
IL177756A (en) | 2006-08-29 | 2014-11-30 | Lior Frenkel | Encryption-based protection against attacks |
US7809955B2 (en) | 2006-10-17 | 2010-10-05 | Blue Ridge Networks, Inc. | Trustable communities for a computer system |
US8234641B2 (en) * | 2006-10-17 | 2012-07-31 | Managelq, Inc. | Compliance-based adaptations in managed virtual systems |
US8218539B2 (en) | 2006-10-18 | 2012-07-10 | Broadcom Corporation | Flexible packet field processor |
EP2092424B1 (en) | 2006-10-19 | 2015-12-30 | Checkmarx Ltd. | Locating security vulnerabilities in source code |
IL180748A (en) * | 2007-01-16 | 2013-03-24 | Waterfall Security Solutions Ltd | Secure archive |
US8011010B2 (en) | 2007-04-17 | 2011-08-30 | Microsoft Corporation | Using antimalware technologies to perform offline scanning of virtual machine images |
US20090076628A1 (en) | 2007-09-18 | 2009-03-19 | David Mark Smith | Methods and apparatus to upgrade and provide control redundancy in process plants |
US8332838B2 (en) * | 2007-11-14 | 2012-12-11 | Continental Automotive Systems, Inc. | Systems and methods for updating device software |
EP2229625B1 (en) | 2007-12-13 | 2011-08-31 | Telefonaktiebolaget LM Ericsson (publ) | Updating firmware of an electronic device |
AU2009201191A1 (en) | 2008-03-26 | 2009-10-15 | Aristocrat Technologies Australia Pty Limited | A gaming machine |
US9189628B2 (en) | 2008-04-10 | 2015-11-17 | Adobe Systems Incorporated | Data driven system for responding to security vulnerability |
DE102008061480A1 (de) * | 2008-10-06 | 2010-04-08 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Austauschen einer Komponente eines Computersystems |
US8051287B2 (en) * | 2008-10-15 | 2011-11-01 | Adobe Systems Incorporated | Imparting real-time priority-based network communications in an encrypted communication session |
US8208494B2 (en) | 2008-12-03 | 2012-06-26 | Gigamon Llc | Intelligent packet slicing |
US9046995B2 (en) * | 2009-04-09 | 2015-06-02 | On24, Inc. | Editing of two dimensional software consumables within a complex three dimensional spatial application and method |
CN101625641A (zh) * | 2009-08-05 | 2010-01-13 | 天津大学 | 基于安全缺陷知识库的可信软件开发方法 |
US8407800B2 (en) * | 2009-11-24 | 2013-03-26 | Honeywell International Inc. | Method for software vulnerability flow analysis, generation of vulnerability-covering code, and multi-generation of functionally-equivalent code |
US9639347B2 (en) * | 2009-12-21 | 2017-05-02 | International Business Machines Corporation | Updating a firmware package |
US20120066672A1 (en) * | 2010-03-16 | 2012-03-15 | Salesforce.Com, Inc. | Systems and Methods for Implementing Upgradeable Subscriber-Controlled Managed Package Components in a Multi-Tenant Environment |
US20110258701A1 (en) | 2010-04-14 | 2011-10-20 | Raytheon Company | Protecting A Virtualization System Against Computer Attacks |
US8739150B2 (en) | 2010-05-28 | 2014-05-27 | Smartshift Gmbh | Systems and methods for dynamically replacing code objects via conditional pattern templates |
US9672022B2 (en) * | 2010-06-23 | 2017-06-06 | Microsoft Technology Licensing, Llc | Applications including multiple experience modules |
US8640206B2 (en) | 2010-08-20 | 2014-01-28 | Regis J. Betsch | System and method for controlling access to information stored at plurality of sites |
IL210169A0 (en) | 2010-12-22 | 2011-03-31 | Yehuda Binder | System and method for routing-based internet security |
WO2012108919A2 (en) | 2011-02-11 | 2012-08-16 | Intel Corporation | Media stream over pass through mechanism |
CN102073823A (zh) * | 2011-02-25 | 2011-05-25 | 天津大学 | 一种基于缺陷分析的软件可信性评价方法 |
CN202067259U (zh) * | 2011-04-18 | 2011-12-07 | 宁波天一职业技术学院 | 软件测试装置 |
US20130081007A1 (en) | 2011-09-27 | 2013-03-28 | International Business Machines Corporation | Providing continuous application availability during application update |
US8745746B1 (en) | 2012-03-07 | 2014-06-03 | Symantec Corporation | Systems and methods for addressing security vulnerabilities on computing devices |
US8756698B2 (en) | 2012-08-10 | 2014-06-17 | Nopsec Inc. | Method and system for managing computer system vulnerabilities |
WO2014031494A2 (en) | 2012-08-18 | 2014-02-27 | Luminal, Inc. | System and method for providing a secure computational environment |
-
2013
- 2013-08-16 WO PCT/US2013/055449 patent/WO2014031494A2/en active Application Filing
- 2013-08-16 CN CN201380049976.1A patent/CN104769606B/zh active Active
- 2013-08-16 CA CA2882136A patent/CA2882136A1/en not_active Abandoned
- 2013-08-16 JP JP2015527673A patent/JP6382196B2/ja active Active
- 2013-08-16 CN CN201711385266.2A patent/CN107979612A/zh active Pending
- 2013-08-16 KR KR1020157006867A patent/KR20150070105A/ko not_active Application Discontinuation
- 2013-08-16 US US13/969,181 patent/US9003372B2/en active Active
- 2013-08-16 EP EP13831764.9A patent/EP2885739B1/en active Active
- 2013-08-16 AU AU2013306094A patent/AU2013306094A1/en not_active Abandoned
- 2013-08-16 IN IN455KON2015 patent/IN2015KN00455A/en unknown
- 2013-08-16 US US13/969,216 patent/US8755522B2/en active Active
- 2013-08-16 US US13/969,158 patent/US8819836B2/en active Active
-
2014
- 2014-06-16 US US14/305,500 patent/US9014373B2/en active Active
- 2014-08-25 US US14/467,933 patent/US9003525B2/en active Active
-
2015
- 2015-02-12 IL IL237219A patent/IL237219B/en active IP Right Grant
- 2015-04-06 US US14/679,831 patent/US9461823B2/en active Active
- 2015-04-06 US US14/679,811 patent/US9385866B2/en active Active
- 2015-04-20 US US14/691,436 patent/US9847878B2/en active Active
-
2019
- 2019-04-12 AU AU2019202562A patent/AU2019202562A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473333A (zh) * | 2006-06-21 | 2009-07-01 | 威步系统股份公司 | 入侵检测的方法和系统 |
CN101661399A (zh) * | 2008-08-25 | 2010-03-03 | 通用汽车环球科技运作公司 | 模块化软件移除方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150213271A1 (en) | 2015-07-30 |
US9014373B2 (en) | 2015-04-21 |
US20140053274A1 (en) | 2014-02-20 |
US9003525B2 (en) | 2015-04-07 |
KR20150070105A (ko) | 2015-06-24 |
US20140053273A1 (en) | 2014-02-20 |
CA2882136A1 (en) | 2014-02-27 |
EP2885739B1 (en) | 2019-10-02 |
JP6382196B2 (ja) | 2018-08-29 |
WO2014031494A3 (en) | 2014-06-19 |
IN2015KN00455A (zh) | 2015-07-17 |
US8755522B2 (en) | 2014-06-17 |
US9461823B2 (en) | 2016-10-04 |
AU2019202562A1 (en) | 2019-05-02 |
EP2885739A2 (en) | 2015-06-24 |
US8819836B2 (en) | 2014-08-26 |
US20140052979A1 (en) | 2014-02-20 |
IL237219A0 (en) | 2015-04-30 |
CN104769606A (zh) | 2015-07-08 |
JP2015531928A (ja) | 2015-11-05 |
US9003372B2 (en) | 2015-04-07 |
US9847878B2 (en) | 2017-12-19 |
CN107979612A (zh) | 2018-05-01 |
US20140380043A1 (en) | 2014-12-25 |
US9385866B2 (en) | 2016-07-05 |
AU2013306094A1 (en) | 2015-03-05 |
EP2885739A4 (en) | 2016-08-10 |
US20150229474A1 (en) | 2015-08-13 |
US20150213270A1 (en) | 2015-07-30 |
IL237219B (en) | 2018-08-30 |
WO2014031494A2 (en) | 2014-02-27 |
US20140380487A1 (en) | 2014-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104769606B (zh) | 提供安全的计算机环境的系统和方法 | |
Chu et al. | Security and privacy analyses of internet of things children’s toys | |
CN105184147B (zh) | 云计算平台中的用户安全管理方法 | |
CN105450620B (zh) | 一种信息处理方法及装置 | |
CN108429719A (zh) | 密钥保护方法及装置 | |
JP4790793B2 (ja) | 安全な仮想プロジェクトルームを作るための方法及びシステム | |
CN103107994B (zh) | 一种虚拟化环境数据安全隔离方法和系统 | |
CN111934879A (zh) | 一种内外网系统数据传输加密方法、装置、设备和介质 | |
CN103002445A (zh) | 一种安全的提供应用服务的移动电子设备 | |
CN103023657B (zh) | 一种基于分布式的网络交易安全验证系统 | |
EP3780484A1 (en) | Cryptographic operation and working key creation method and cryptographic service platform and device | |
CN103763313A (zh) | 一种文档保护方法和系统 | |
CN103310161A (zh) | 一种用于数据库系统的防护方法及系统 | |
CN104717212B (zh) | 一种云端虚拟网络安全的防护方法与系统 | |
CN109284585A (zh) | 一种脚本加密方法、脚本解密运行方法和相关装置 | |
CN102609643A (zh) | 一种对虚拟机作动态密码学保护与所需的密钥管理方法 | |
CN104618096A (zh) | 保护密钥授权数据的方法、设备和tpm密钥管理中心 | |
CN106682521A (zh) | 基于驱动层的文件透明加解密系统及方法 | |
CN107391232A (zh) | 一种系统级芯片soc及soc系统 | |
CN106100834A (zh) | 一种算法密钥库的生成和更新方法 | |
Wu et al. | Exploring dynamic task loading in SGX-based distributed computing | |
Gupta et al. | A light weight centralized file monitoring approach for securing files in cloud environment | |
CN105184119B (zh) | 一种软件的安全保护方法 | |
CN109033882A (zh) | 一种可追溯的大数据安全发布方法及系统 | |
Hall et al. | An assured deletion technique for cloud-based IoT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: American Maryland Applicant after: Fugue Limited Address before: American Maryland Applicant before: Lu meter Nuo company limited |
|
GR01 | Patent grant | ||
GR01 | Patent grant |