CN111656348B - 经掩码处理的密钥跳跃 - Google Patents

经掩码处理的密钥跳跃 Download PDF

Info

Publication number
CN111656348B
CN111656348B CN201980010367.2A CN201980010367A CN111656348B CN 111656348 B CN111656348 B CN 111656348B CN 201980010367 A CN201980010367 A CN 201980010367A CN 111656348 B CN111656348 B CN 111656348B
Authority
CN
China
Prior art keywords
key
memory
location
computer
location address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980010367.2A
Other languages
English (en)
Other versions
CN111656348A (zh
Inventor
迈克尔·J·T·钱
德雷克·查莫罗
文卡塔·西瓦·维贾延德拉·巴米蒂帕提
格伦·G·莱巴姆费思尔
拉尔夫·斯科特·福赛思
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.)
eBay Inc
Original Assignee
eBay Inc
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 eBay Inc filed Critical eBay Inc
Publication of CN111656348A publication Critical patent/CN111656348A/zh
Application granted granted Critical
Publication of CN111656348B publication Critical patent/CN111656348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

公开了用于增强计算机安全和安全性能的方法、系统和介质。在一个示例中,计算机安全系统包括密钥管理监控器和两个密钥元素,所述两个密钥元素包括第一密钥元素和第二密钥元素。第一密钥元素被存储在计算机存储器内的第一位置地址处,且第二密钥元素被存储在第二位置地址处。密钥管理监控器被配置为确定或接收用于执行计算机存储器的内容的数据转储的持续时间。在一个示例中,密钥管理监控器还被配置为控制第一密钥元素在计算机存储器内的位置,其中,第一密钥元素的位置地址在小于用于执行计算机存储器的内容的数据转储的持续时间的时间段内改变。

Description

经掩码处理的密钥跳跃
相关申请的交叉引用
本申请要求在2018年2月21日提交的美国申请序列号15/901,455的优先权,其全部内容通过引用并入本文中。
技术领域
本公开的实施例总体上涉及数据加密,并且更具体地但并非限制性地涉及用于计算机、基于云的代理和域中的经掩码处理的密钥跳跃的系统和方法。在其他方面中,本公开涉及云环境中没有高安全性模块的加密密钥保护。
背景技术
云计算通常是指具有动态可扩缩且经常虚拟化的资源的计算环境,这些资源通常作为互联网上的服务来提供。例如,云计算环境经常采用虚拟化的概念,作为将工作负载托管在任何适当硬件上的便捷范例。对于许多企业而言,由于各种原因,云计算模型已经变得越来越可行,各种原因包括云基础架构可以允许将信息技术资源视为可以按需自动提供的实用程序,同时还将服务成本限制为实际资源消耗。此外,云计算环境中提供的资源的消费者可以利用原本可能不可用的技术。因此,随着云计算和云存储变得越来越普遍,许多企业将发现将数据中心迁移到云提供商可以产生规模经济。但是,在减少成本的同时增强速度和可扩缩性会给云环境带来巨大的技术和安全挑战。
出于安全原因,可以在云应用中部署高安全性模块(“HSM”),例如用于存储和处理私钥。但是,HSM非常昂贵,而且可能不是随处可用的。在分配的存储器具有弹性并且可以重新分配存储器的公共云环境中,这些挑战尤其困难。在这样的云环境中,不熟练或经验不足的计算机用户可能没有意识到:将秘密数据(例如加密密钥或其他证书)例如存储在存储器中(特别是纯文本格式)可能非常危险。如果密钥是静态存储或留在重新分配的存储器中,则风险会加剧。
在这些基于云的情况下或其他计算情况下,可能会出现高级持续性威胁(“APT”)。恶意黑客尝试(例如“注入”攻击、“堆栈”或“缓冲区”溢出、或“心脏出血”式的攻击)可以使计算机存储器被“转储输出(dumped out)”,并且可以找到存储在其中的密钥或证书。攻击者还可能引起存储器数据在短时间内改变,并且其中识别出的任何静态数据都可以被识别为可能被破解或攻击的密钥或其他证书的可能来源。这种自动攻击可以包括密钥搜索能力,其可以在很短的时间内根据转储的存储器来识别出密钥并窃取密钥。
本发明人设法处理这些和其他技术问题,并设法提供如下文更全面地描述的加密和计算机安全系统、方法和介质作为针对这些和其他技术问题的技术解决方案。
附图说明
在所附附图中通过示例而非限制的方式示出了本公开的一些实施例,在附图中相似的附图标记指示类似的元素。
图1是示出了根据示例实施例的联网系统的框图。
图2是示出了根据一些示例实施例的与云环境中的代理和域一起工作的示例加密系统的架构细节的框图。
图3是示出了代表性软件架构的框图,该代表性软件架构可以结合本文所描述的各种硬件架构一起使用。
图4是示出了根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)中读取指令并执行本文所讨论的方法中的任何一个或多个方法的机器的组件的框图。
图5描绘了根据一些示例实施例的随机存储器区域选择的示例表示。
图6是描绘了根据示例实施例的加密方法中的一些操作的流程图。
具体实施方式
以下描述包括具体实现说明性实施例的说明性的系统、方法、技术、指令序列和计算机器程序产品。在以下的描述中,出于解释的目的,阐述了很多具体细节以提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员来说将显而易见的是,本发明主题的实施例可以在没有这些具体细节的情况下实践。一般而言,对公知的指令实例、协议、结构和技术不进行详细说明。本公开提供了用于在云或其他计算环境中优化和增强加密和安全性的技术解决方案。本文公开了用于部署优化的系统、方法和架构。
本上下文中的“载波信号”指能够存储、编码或携带用于由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或用于促进这种指令的传送的其它无形介质。可以经由网络接口设备使用传输介质并使用多种已知传输协议中的任何一种传输协议来通过网络发送或接收指令。
本上下文中的“客户端设备”指与通信网络对接以从一个或多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是(但不限于):移动电话、台式计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器的或可编程的消费电子产品、游戏机、机顶盒或用户可以用来接入网络的任何其他通信设备。
本上下文中的“通信网络”指网络的一个或多个部分,该网络可以是自组织(adhoc)网络、内联网、外联网、虚拟专用网(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网、互联网的一部分、公共交换电话网络(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另一类型的网络、或两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线或蜂窝网络,并且客户端设备到网络的耦接可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一种类型的蜂窝或无线耦接。在该示例中,该耦接可以实现各种类型的数据传输技术中的任何一种数据传输技术,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、GSM演进增强数据速率(EDGE)技术、包括3G在内的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术。
本上下文中的“组件”指具有边界的设备、物理实体或逻辑,该边界由功能、方法、属性、对象或子例程调用、分支点、应用程序接口(API)、或提供特定处理或控制功能的划分或模块化的其他技术来限定。组件可以经由其接口与其他组件进行组合,以实施机器处理。组件可以是封装功能性硬件单元,其被设计与其他组件和程序中通常执行相关功能中的特定功能的部分一起使用。组件可以构成软件组件(例如,机器可读介质上体现的代码)或硬件组件。
“硬件组件”是能够执行特定操作的有形单元,并且可以按照特定的物理方式来配置或布置。在各种示例实施例中,一个或多个计算机系统(例如独立的计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或多个硬件组件(例如处理器或处理器组)可以由软件(例如应用或应用部分)配置为进行操作以执行本文中描述的特定操作的硬件组件。也可以机械地、电性地或用其任何合适的组合来实现硬件组件。例如,硬件组件可以包括被永久配置为执行特定操作的专用电路或逻辑。硬件组件可以是专用处理器,例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件组件还可以包括由软件临时配置为执行特定操作的可编程逻辑或电路。例如,硬件组件可以包括由通用处理器或其他可编程处理器执行的软件。一旦由这样的软件配置,硬件组件就变成特定机器(或机器的特定组件),其被专门定制为执行所配置的功能,而不再是通用处理器。
应理解,以机械方式、以专用和永久配置的电路或以临时配置的电路(例如由软件配置)实现硬件组件的决定可以出于成本和时间的考虑。因此,短语“硬件组件”(或“硬件实现的组件”)应被理解为涵盖有形实体,其是在物理上构造、永久配置(例如硬线连接)或临时配置(例如编程)为以特定方式操作或执行本文中描述的特定操作的实体。考虑临时配置(例如编程)硬件组件的实施例,无需在任一时刻配置或实例化硬件组件中的每一个硬件组件。例如,在硬件组件包括被软件配置成为专用处理器的通用处理器的情况下,该通用处理器可以在不同时间被配置为分别不同的专用处理器(例如包括不同的硬件组件)。因此,软件将特定的一个或多个处理器例如配置为在一个时刻构成特定硬件组件并且在不同的时刻构成不同的硬件组件。硬件组件可以向其他硬件组件提供信息并从其他硬件组件接收信息。因此,所描述的硬件组件可以被看作通信地耦接。如果同时存在多个硬件组件,则可以通过两个或更多个硬件组件之间的信号传输(例如通过适当的电路和总线)实现通信。在多个硬件组件在不同时间被配置或实例化的实施例中,可以例如通过存储并获取多个硬件组件可访问的存储器结构中的信息来实现这样的硬件组件之间的通信。例如,一个硬件组件可以执行操作并在与其通信耦接的存储器设备中存储该操作的输出。另一硬件组件接着可以稍后访问存储器设备,以获取并处理所存储的输出。硬件组件还可以发起与输入或输出设备的通信,并且能够对资源(例如信息的集合)进行操作。
本文描述的示例方法的各种操作可以至少部分地由临时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时还是永久配置,这样的处理器可以构成进行操作以执行本文描述的一个或多个操作或功能的处理器实现的组件。如本文所使用的,“处理器实现的组件”指使用一个或多个处理器实现的硬件组件。类似地,本文描述的方法可以至少部分地由处理器实现,其中特定处理器或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或多个处理器或处理器实现的组件来执行。此外,一个或多个处理器还可操作以支持在“云计算”环境中或作为“软件即服务”(SaaS)执行相关操作。例如,至少一些操作可以由一组计算机(作为包括处理器在内的机器的示例)执行,这些操作是可经由网络(例如,互联网)并经由一个或多个适当的接口(例如,API)来访问的。某些操作的执行可以分布在各处理器中,并不只驻留在单个机器内,而是跨多个机器来部署。在一些示例实施例中,处理器或处理器实现的组件可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群中)。在其他示例实施例中,处理器或处理器实现的组件可以跨多个地理位置来分布。
本上下文中的“机器可读介质”是指能够暂时或永久地存储指令和数据的组件、设备或其他有形介质,并且可以包括(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪速存储器、光学介质、磁性介质、高速缓存存储器、其它类型的存储设备(例如,可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“机器可读介质”应被视为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库、或相关联的缓存和服务器)。术语“机器可读介质”还将被视为包括能够存储被机器执行的指令(例如,代码)的任何介质或多个介质的组合,使得指令在被机器的一个或多个处理器执行时,使机器执行本文中所描述的方法中的任何一个或多个方法。因此,“机器可读介质”指单个存储装置或设备、以及包括多个存储装置或设备在内的“基于云”的存储系统或存储网络。术语“机器可读介质”不包括信号本身。
本上下文中的“处理器”指根据控制信号(例如,“命令”、“op代码”、“机器代码”等)来操纵数据值并且产生被用来操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑来仿真的物理电路)。处理器可以是例如中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、ASIC、射频集成电路(RFIC)、或其任何组合。处理器还可以是具有两个或更多个独立处理器(有时也称为“核”)的多核处理器,该两个或更多个独立处理器可以同时执行指令。
本专利文档的公开的一部分包含受到版权保护的内容。当本专利文档或专利公开在专利和商标局的专利文件或记录中出现时,版权所有人不反对任何人对专利文档或专利公开进行复制再现,但是在其他情况下版权所有人保留所有版权。以下注意适用于如下文中和形成本文档一部分的附图中描述的软件和数据:版权所有2018,eBay Inc.保留所有权利。
参考图1,示出了高级SaaS网络架构100的示例实施例。联网系统116经由网络110(例如,互联网或WAN)向客户端设备108提供服务器侧功能。在客户端设备108上托管并执行应用(或代理或域)104的示例形式的web客户端102和编程客户端。联网系统116包括云域应用服务器122,云域应用服务器122进而托管加密系统106(在本文中也被称为计算机安全系统),加密系统106向访问联网系统116的应用104提供多种功能和服务。应用104还提供本文中所描述的多个交互式用户接口,该多个交互式用户接口向客户端设备108的用户呈现跟踪和分析操作的输出。
客户端设备108使用户能够访问联网系统116并与联网系统116交互。例如,用户向客户端设备108提供输入(例如,触摸屏输入或字母数字输入),并且经由网络110向联网系统116传输该输入。在该实例中,响应于从用户接收到输入,联网系统116经由网络110向客户端设备108传回信息以向用户呈现。
应用程序接口(API)服务器118和web服务器120耦接到云应用和域服务器122,并分别向云应用和域服务器122提供编程接口和web接口。云应用和域服务器122进而被示为耦接到云数据库服务器124,云数据库服务器124促进对信息存储库(例如,云数据库126)的访问。在示例实施例中,云数据库126包括存储由加密系统106访问和生成的信息的存储设备。云数据库126还可存储由在客户端设备108上执行的应用104或在第三方服务器112上执行的第三方应用114访问或使用的基于云的数据。例如,云数据库126可以包括若干远程或现场数据库。其他配置也是可能的。
在第三方服务器112上执行的第三方应用114被示为具有经由API服务器118提供的编程接口对联网系统116的编程访问。例如,使用从联网系统116获取的信息,第三方应用114可以支持由第三方托管的网站上的一个或多个特征或功能。如上所述,在这样的云环境中的计算机用户可以在诸如云数据库126之类的基于云的数据库或例如可以在公共云环境中重新分配的其他存储器中存储秘密或机密数据,例如加密密钥或其他证书。
诸如“注入”攻击、“堆栈”或“缓冲区”溢出或“心脏出血”式的攻击之类的计算机黑客尝试都可能使存储器被“转储输出”,并且其中任何存储密钥或证书都可以被揭示。恶意攻击者还可能引起存储器数据在短时间内改变,并且其中识别出的任何静态数据都可以被识别为可能被破解或攻击的密钥或其他证书的可能来源。这种自动攻击可以包括密钥搜索能力,该密钥搜索能力可以在很短的时间内根据转储的存储器来识别密钥并窃取密钥。
现在将具体地参见由客户端设备108托管的应用104,web客户端102可以经由web服务器120支持的web接口来访问各种系统(例如,加密系统106)。类似地,应用104(例如,“app”)经由API服务器118提供的编程接口来访问由加密系统106提供的各种服务和功能。例如,应用104可以是在客户端设备108上执行的“app”,例如IOSTM或ANDROIDTM OS应用,以使用户能够以离线方式访问联网系统116的数据和在联网系统116上输入数据,并执行应用104与联网系统116之间的批处理模式通信。
此外,虽然图1所示出的SaaS网络架构100采用客户端-服务器架构,但是本发明主题不限于此种架构,而是可以同样良好地应用于例如分布式或对等架构系统。加密系统106还可以被实现为独立的软件程序,其不一定具有联网能力。
图2是示出了根据一些示例实施例的加密系统106的架构细节的框图。在视图中,这是非抽象系统,包括计算机处理器和组件,以及在205处可以看到硬连接的引脚。电源按钮在204处示出。该系统被专门配置及技术增强以实现以下更全面描述的方法。
更具体地,加密系统106被示为包括接口组件210,加密系统106通过该接口组件210(例如,通过网络211)与SaaS网络架构100内的其他系统进行通信。
在一个示例中,接口组件210共同耦接到与至少三个密钥元素相关联的密钥管理监控器206,该至少三个密钥元素包括一个密钥(或多个密钥)208、一个密钥掩码(或多个掩码)209以及一个密钥置乱索引(或多个索引)212,均存储在计算机存储器中(例如,在客户端设备108的存储器中,或在基于云的数据库(例如远离客户端设备108的云数据库126,但可访问它)中)的相应位置地址处。在示例加密系统106和方法中利用的其他密钥元素可以包括一个置乱索引掩码(或多个掩码)214和存储跳跃存储器地址216的存储器位置。这些元素如以下更全面地描述的那样进行交互。
在一个示例中,密钥管理监控器206可以可选地被配置为确定或接收持续时间,该持续时间用于执行对存储有密钥208的适用计算机存储器(例如云数据库126)的内容的外部数据转储。密钥管理监控器206还被配置为控制三个密钥元素208、209和212中的至少一个密钥元素在计算机存储器(例如数据库126)中的位置,并周期性地或随机地改变至少一个密钥元素208、209和212在存储器中的位置地址。在一个示例实施例中,至少一个密钥元素208、209和212的位置地址在小于持续时间的时间段内改变,该持续时间用于执行所识别的或接收到的用于执行计算机存储器的内容的外部数据转储的时间。换句话说,外部数据转储可能如上所述例如被恶意计算机攻击“强制执行”,但是此操作仍然需要一定时间才能执行或完成。密钥管理监控器206在可能是随机(但无论如何要短于执行上述数据转储所花费的时间)的时间段内连续改变(或跳跃)密钥208、密钥掩码209或密钥置乱索引212的存储器位置。
在一些示例中,密钥掩码将敏感的密钥信息替换为伪造的值,以保护实际数据。换句话说,密钥掩码是通过使用看上去真实但无用的数据的保护层隐藏实际数据来混淆入侵者的方法。在一些示例中,密钥置乱索引应用诸如覆盖、高速缓存和置乱之类的技术的组合以确保密钥数据和对其的查询的机密性,从而保护单个访问实例及其序列。
在一个示例中,密钥被拆分在密钥208、密钥掩码209和密钥置乱索引212之间。可以以其他方式拆分密钥,并将密钥的相应部分存储在计算机存储器中。以下关于交换密钥的各部分的位置的描述仍然可以有利地用于密钥的任何部分或其他关键信息。
在一些示例中,用于改变至少一个密钥元素208、209和212的位置地址的时间段是基于该位置地址与至少三个密钥元素208至212中的至少另一个密钥元素的位置地址之间的距离的。例如,该时间段可以被配置为小于为了转储包括两个密钥元素的位置地址在内并在两个密钥元素的位置地址之间的存储器内容所需的时间。这样的技术优势在于:转储存储器内容的恶意程序将无法转储两个或更多个密钥,因为在转储能够完成之前至少一个密钥元素将被改变位置。因此,技术优势是增强了计算机的安全性以保护密钥元素。在一些示例中,密钥元素208至212的相应位置地址之间的距离在随机或伪随机地连续改变。
在一些示例中,至少三个密钥元素208至212中的每一个密钥元素的位置地址之间的距离以及每个位置地址的值随机地连续改变。随机或伪随机时间可以被配置为等于或高于为了切换一个密钥的位置所需的时间,并且小于用于转储两个密钥元素之间的存储器内容的时间。同样,由于改变密钥的位置会对性能产生影响,因此组件也可以被配置为高于用于转储密钥之间的存储器的时间,但仍然被确定为频繁。如前所述,可以在小于用于执行对计算机存储器的内容的外部数据转储的持续时间的时间段内改变每个距离和值。
图3是示出了示例软件架构306的框图,示例软件架构306可以结合本文中所描述的各种硬件架构来使用。图3是软件架构306的非限制性示例,并且应该理解,可以实现许多其他架构以促进实现本文中所描述的功能。
软件架构306可以在诸如图4的机器400的硬件上执行,所述机器400包括处理器404、存储器/存储设备406和I/O组件418等。代表性的硬件层352被示出,并且可以表示例如图4的机器400。代表性的硬件层352包括具有相关联的可执行指令304的处理单元354。可执行指令304表示软件架构306的可执行指令304,包括对本文中所描述的方法、组件等的实现。硬件层352还包括存储器和/或存储模块作为存储器/存储设备356,该存储器/存储设备356也具有可执行指令304。硬件层352还可以包括其他硬件358。
在图3的示例架构中,软件架构306可以被概念化为层的堆栈,其中,每层提供特定的功能。例如,软件架构306可以包括诸如操作系统302、库320、框架/中间件318、应用316和表示层314之类的层。在操作上,应用316和/或各层内的其它组件可以通过软件堆栈来调用应用编程接口(API)API调用308,并且响应于API调用308来接收消息312。所示出的层在本质上具有代表性,并不是所有的软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件318,而其它操作系统可以提供这样的层。其它软件架构可以包括附加层或不同层。
操作系统302可以管理硬件资源并提供公共服务。操作系统302可以包括例如内核322、服务324和驱动程序326。内核322可以用作硬件和其他软件层之间的抽象层。例如,内核322可以负责存储器管理、处理器管理(例如调度)、组件管理、联网、安全设置等。服务324可以为其它软件层提供其他公共服务。驱动程序326负责控制底层硬件或与底层硬件接口对接。例如,取决于硬件配置,驱动程序326包括显示器驱动程序、相机驱动程序、驱动程序、闪存驱动程序、串行通信驱动程序(例如通用串行总线(USB)驱动程序)、/>驱动程序、音频驱动程序、电源管理驱动程序等等。
库320提供由应用316和/或其它组件和/或层使用的公共基础设施。库320提供允许其他软件组件以与底层操作系统302功能(例如,内核322、服务324和/或驱动程序326)直接对接相比更容易的方式来执行任务的功能。库320可以包括可以系统库344(例如,C标准库),系统库344可提供诸如存储器分配函数、字符串操纵函数、数学函数之类的函数。另外,库320可以包括API库346,例如媒体库(例如,用于支持各种媒体格式(诸如MPEG4、H.264、MP3、AAC、AMR、JPG和PNG)的呈现和操纵的库)、图形库(例如,可以用于在显示器上渲染2D和3D图形内容的OpenGL框架)、数据库的库(例如,可以提供各种关系型数据库功能的SQLite)、web库(例如,可以提供网络浏览功能的WebKit)等。库320还可以包括各种各样的其它库348,以提供针对应用316和其它软件组件或模块的许多其他API。
框架/中间件318(有时也称为中间件)提供可以由应用316和/或其它软件组件/模块使用的更高级的公共基础设施。例如,框架/中间件318可以提供各种图形用户接口(GUI)功能342、高级资源管理、高级位置服务等。框架/中间件318可以提供可以由应用316和/或其它软件组件/模块利用的广泛范围的其它API,其中一些可以特定于特定操作系统302或平台。
应用316包括内置应用338和/或第三方应用340。代表性的内置应用338的示例可以包括(但不限于)联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用340可以包括由与特定平台的供应商不同的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)而开发的任何应用,并且可以是在移动操作系统(例如IOSTM、ANDROIDTMPhone或其他移动操作系统)上运行的移动软件。第三方应用340可以调用由移动操作系统(例如操作系统302)提供的API调用308,以促进本文中所描述的功能。
应用316可以使用内置操作系统功能(例如,内核322、服务324和/或驱动程序326)、库320和框架/中间件318来创建用户接口以与系统的用户交互。备选地或附加地,在一些系统中,与用户的交互可以通过表示层(例如,表示层314)发生。在这些系统中,应用/组件“逻辑”可以与和用户交互的应用/组件的各个方面分开。
一些软件架构使用虚拟机。在图3的示例中,这由虚拟机310示出。虚拟机310创建软件环境,在该软件环境中,应用/组件可以像它们在硬件机器(例如图4的机器400)上执行一样执行。虚拟机310由主机操作系统(图3中的操作系统302)托管,并且通常(尽管并不总是)具有虚拟机监控器360,该虚拟机监控器360管理虚拟机310的操作和与主机操作系统(即,操作系统302)对接的接口。软件架构在虚拟机310(例如,操作系统(OS)336、库334、框架332、应用330和/或表示层328)内执行。在虚拟机310内执行的软件架构的这些层可以与先前描述的对应层相同,或者可以不同。
图4是示出了根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)中读取指令304并执行本文所讨论的方法中的任何一个或多个方法的机器400的组件的框图。具体地,图4示出了具有计算机系统的示例形式的机器400的示意图,其中可以执行指令410(例如,软件、程序、应用316、小应用、app或其他可执行代码)以使机器400执行本文中所讨论的方法中的任何一种或多种方法。因此,指令410可以被用来实现本文中所描述的模块或组件。指令410将通用的未编程的机器转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器400。在备选实施例中,机器400作为独立设备操作或可以耦接(例如,联网)到其他机器。在联网部署中,机器400可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器400可以包括(但不限于)服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、PDA、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家居设备(例如智能家电)、其它智能设备、web电器、网络路由器、网络交换机、网桥、或能够顺序地或以其它方式执行指定机器400要采取的动作的指令410的任何机器。此外,尽管仅示出了单个机器400,但是术语“机器”也将被视为包括机器的集合,其单独地或联合地执行指令410以执行本文中所讨论的方法中的任何一种或多种方法。
机器400可以包括可被配置为例如经由总线402彼此通信的处理器404、存储器/存储设备406和I/O组件418。存储器/存储设备406可以包括存储器414(例如,主存储器或其它存储器存储设备)、以及存储单元416,存储器414和存储单元416两者都可例如经由总线402由处理器404访问。存储单元416和存储器414存储体现本文中所描述的方法或功能中的任何一种或多种方法或功能的指令410。在机器400执行指令410期间,指令410还可以完全地或部分地驻留在存储器414内、存储单元416内、各处理器404中的至少一个处理器内(例如,处理器的高速缓存存储器内)、或其任何合适的组合内。因此,存储器414、存储单元416和处理器404的存储器是机器可读介质的示例。
I/O组件418可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕捉测量等的各种各样的组件。特定机器400中包括的特定I/O组件418将取决于机器的类型。例如,诸如移动电话之类的便携式机器将可能包括触摸输入设备或其他这样的输入机构,而无头(headless)服务器机器将可能不包括这样的触摸输入设备。应理解,I/O组件418可以包括图4中未示出的许多其他组件。I/O组件418根据功能被分组,仅用于简化以下讨论,并且该分组不以任何方式进行限制。在各种示例实施例中,I/O组件418可以包括输出组件426和输入组件428。输出组件426可以包括视觉组件(例如,显示器,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学组件(例如扬声器)、触觉组件(例如振动电机、阻力机构)、其他信号发生器等。输入组件428可以包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光-光学键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指点仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏、或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
在另一些示例实施例中,I/O组件418可以包括生物特征组件430、运动组件434、环境组件436或位置组件438、以及许多其他组件。例如,生物特征组件430可以包括用于检测表现(例如,手表现、面部表现、语音表现、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件434可以包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件436可以包括例如照明传感器组件(例如光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或测量大气中污染物的气体检测传感器)或可以提供与周围物理环境相对应的指示、测量或信号的其他组件。位置组件438可以包括位置传感器组件(例如,全球定位系统(GPS)接收机组件)、高度传感器组件(例如,高度计或检测气压的气压计(根据气压可以导出高度))、取向传感器组件(例如,磁力计)等。
可以使用各种各样的技术来实现通信。I/O组件418可以包括通信组件440,通信组件440可操作以分别经由耦接424和耦接422将机器400耦接到网络432或设备420。例如,通信组件440可以包括网络接口组件或与网络432对接的另一合适设备。在另一些示例中,通信组件440可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、组件(例如/>低能耗)、/>组件、以及经由其他模态来提供通信的其他通信组件。设备420可以是另一机器或各种外围设备中的任一种外围设备(例如,经由USB耦接的外围设备)。
此外,通信组件440可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件440可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,用于检测以下各项的光学传感器:一维条形码(例如通用产品代码(UPC)条形码)、多维条形码(例如快速响应(QR)码)、阿兹台克码、数据矩阵、Dataglyph、MaxiCode、PDF417、超码、UCC RSS-2D条形码和其他光学码)、或声学检测组件(例如,用于识别带标记的音频信号的麦克风)。此外,可以经由通信组件440导出各种信息,诸如经由网际协议(IP)地理定位的位置、经由信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
再次参考加密系统106,在一些示例中,由该系统部署的加密技术还使用基于混淆技术的方法。因此,在一个示例中,即使密钥208可被存储在计算机存储器或数据库(例如,云数据库126)中,并且即使如上所述将存储器“转储”,攻击者在所转储的内容中搜索并找到密钥208时仍将面临很大的困难。
为此,在一个示例中,密钥208和密钥掩码209“跳跃”,其意义是使他们连续改变其在存储器中的位置。更具体地,在一个示例中,经掩码处理的临时密钥(在以下示例算法中称为“a”,例如图2中的密钥208)、密钥掩码(在算法中类似地称为“b”,例如密钥掩码209)、经掩码处理的经置乱的索引(算法中的“c”或密钥置乱索引212)、置乱索引掩码(算法中的“d”,例如密钥置乱索引掩码214)与存储改变的或跳跃的存储器地址的存储器位置(算法中的“e”,例如图2中的密钥元素216)之间保持了相当大的距离。
这些地址以下称为{a,b,c,d,e}。与虚拟存储器相反,地址{d}在物理存储器中可以具有静态或移位位置,并且加密系统106可以包括防止系统或存储器编译器重新安排存储器分配的保护措施,诸如,密钥管理监控器206。在一个示例中,密钥管理监控器206分配易失性存储器中存储的防御代码。也可以执行存储器移位。
在一个示例中,{a,b,c}的存储器位置是静态存储的,但是它们是随机跳跃的,且因此存储器值会改变。在一些实例中,在接受随机数据以供使用之前测试系统熵。在一些示例中,假设{a,b,c,d,e}的熵和{a,b,c,d,e}的存储器位置跳跃空间是均匀的或足够大的,例如64比特。在一些示例中,在生成地址{a,b,c,d,e}时使用随机数据。
在图5中描绘了随机存储器区域选择的示例表示。在该视图中,一系列的十二个面板(每行六个)示出了二维维恩域(Venn fields)。浅阴影区域示出了针对本文中所描述的方法的随机改变的存储器区域选择。第一完全马赛克面板代表用于本文中所描述的密钥掩码处理和跳跃操作的完整存储器。如果需要保存存储器,则可以预留其他面板中示例识别的较小存储器区域。
例如,图5中描绘的示例存储器区域位置可以存在于一个机器存储器或数据库中,或跨联网或分布式系统中的若干机器存储器(或数据库)存在。本文中所描述和要求保护的方法可以以这种分布式布置来应用。因此,在一些示例中,密钥管理监控器可以被配置为确定或接收用于执行在分布式系统中布置的多个计算机存储器中的一个或多个计算机存储器的内容的外部数据转储的持续时间,并且还可以被配置为控制至少一个密钥元素在分布式计算机存储器内的位置,并周期性地或随机地改变该至少一个密钥元素在分布式存储器之一内的位置地址,其中,该至少一个密钥元素的位置地址是在小于用于执行计算机存储器之一的内容的外部数据转储的持续时间的时间段内改变的。此外,可以跨分布式计算机存储器或数据库来存储相应密钥元素的存储器位置。
在一些示例中,出于测试或设计目的,可以导出对假设的攻击者成功率的估计。在一个示例中,加密系统中的防御机制基于以下方式来工作:猜测用于重建密钥的材料的存储器位置的概率非常低。攻击者必须尝试所有可能的存储器位置,以便在密钥仍然有效的给定的时间纪元(time epoch)时找到为了重建密钥所需的所有密钥参数。也可以说:为让密钥有效而设置的时间纪元被限制在比完成合法交易(例如数据转储)所需的时间短的时间内,在一些示例中要短得多。其他交易是可能的。
另一个因素是要确保攻击者无法在给定的时间纪元内对每个参数进行存储器转储,因此,将流量的速率限制器设置为低于密钥参数中的每一个密钥参数之间的存储器距离。这意味着,当攻击者尝试下一个存储器转储以达到为了重建密钥所需的下一个密钥参数时,密钥有效性已结束。因此,技术优势在于:通过限制时间和空间,可以将攻击尝试成功的概率最小化到可以忽略的水平。
在一些示例中,给定N是与熵空间相对应的以比特为单位的存储器空间,则在一次试验中,攻击者猜测密钥材料的参数之一的位置的概率为:
由于重建密钥需要多于一个参数,因此需要考虑另一些参数。假设A={a,b,c,d,e},其中αi表示每个参数的比特长度。这里有五个参数,因此i为1到5。
如果攻击者还要继续尝试在密钥仍然有效的时间纪元内获取密钥参数,则在进行i次尝试后,攻击者在第i次尝试中猜测密钥材料的参数之一的位置的概率为:攻击者需要“暴力”猜测密钥参数的所有位置,因为将需要收集所有部分以进行密钥重建。
因此,为了使攻击者成功猜测所有五个参数,概率为:
且这里的J是5。
由于我们可以假设成功的尝试是在密钥或密钥参数仍然有效的时间纪元内完成的,因此在此计算中,我们可以忽略数据输出(outgress)速率限制器所限制的时序。
为了考虑可以为让密钥有效所设置的时间纪元,该纪元时间长度被限制在完成合法交易所需的时间长度之内。这里,我们用ΔtlegitimateTraffic表示该时间长度。因此,给定PattookSucccss在tattookSucccss之内,它必须满足tattookSucccss<<ΔtlegitimateTraffic。这意味着即使攻击者能够最大化攻击成功的概率(PattookSucccss),攻击者也没有足够的时间完成攻击。在一个示例中,密钥有效的时间长度等于比合法交易时间短得多的时间,因此我们可以定义攻击成功可以忽略的时间长度,即ΔtlegitimateTraffic的ε=tσ,其中tσ<<ΔtlegitimateTraffic
即使在不同的机器中存在复制(例如K个复制),但由于独特的掩码,获得复制也无济于事,因为它们与一次一密密码本(One-time Pad(OTP))是无法区分的。
在其他方面,高级持续性攻击(APT)仍可以执行核心存储器转储并在复合攻击中搜寻密钥208,例如,使用渗透恶意软件进行监控并强制进行内部密钥转储,然后对核心转储进行渗出(exfiltration)。包含存储器位置{a,b,c,d,e}在内的存储器仍可以是静态的。虽然已最小化,但代码转储仍可能带来安全风险。但是这里,用于执行内部存储器转储和外部存储器转储的可防御的时间纪元可以不同。更具体地,可以识别恶意软件执行内部转储并进行非法流量进行渗出的时间tmatuare。只要tmatuare与为了处理合法流量所需的时间ΔtltlegitimateTraffic是无法区分的或不可区分的,即使隐藏在关联的噪声增量内,即 可应用所描述的方法。
因此,在一个示例中,提供了一种加密(或计算机安全)系统,其包括密钥管理监控器以及至少三个密钥元素,该至少三个密钥元素包括均存储在计算机存储器内的相应位置地址处的密钥、密钥掩码和密钥置乱索引。密钥管理监控器可以被配置为确定或接收用于执行计算机存储器的内容的外部数据转储的持续时间,并且还可以被配置为控制三个密钥元素中的至少一个密钥元素在计算机存储器内的位置,以及周期性地或随机地改变存储器内至少一个密钥元素的位置地址,其中,该至少一个密钥元素的位置地址在小于用于执行计算机存储器的内容的外部数据转储的持续时间的时间段内改变。
在一些示例中,用于改变至少一个密钥元素的位置地址的时间段可以基于该位置地址与至少三个密钥元素中的至少另一个密钥元素的位置地址之间的距离,并且相应位置地址之间的距离可以随机地连续改变。
在一些示例中,至少三个密钥元素中的每一个密钥元素的位置地址之间的距离以及位置地址中的每一个位置地址的值随机地连续改变,并且每个距离和值可以在小于用于执行计算机存储器的内容的外部数据转储的持续时间的时间段内改变。
在一些示例中,密钥监控器还被配置为在用于控制计算机存储器内的三个密钥元素中的至少一个密钥元素的位置的范例被接受以供使用之前,测试包括计算机存储器在内的系统的熵。在一些示例中,至少三个密钥元素还包括以下各项之一或两者:密钥置乱索引掩码和存储改变的存储器位置地址的存储器位置。
在一些示例中,计算机安全系统包括密钥管理监控器以及包括第一密钥元素和第二密钥元素在内的两个密钥元素,第一密钥元素被存储在计算机存储器内的第一位置地址处,且第二密钥元素被存储在第二位置地址处。密钥管理监控器可以被配置为确定或接收用于执行计算机存储器的内容的数据转储的持续时间。密钥管理监控器还可以被配置为控制第一密钥元素在计算机存储器内的位置,其中,第一密钥元素的位置地址在小于用于执行计算机存储器的内容的数据转储的持续时间的时间段内改变。
在一些示例中,该时间段小于用于执行第一位置地址与第二位置地址之间的计算机存储器的内容的数据转储的持续时间。用于改变第一密钥元素的位置地址的时间段可以基于第一位置地址和第二位置地址之间的距离,并且第一位置地址和第二位置地址之间的距离可以随机地连续改变。
在一些示例中,第一位置地址与第二位置地址之间的距离随机地连续改变,并且每个距离和值在小于用于执行计算机存储器的内容的数据转储的持续时间的时间段内改变。
在一些示例中,密钥监控器还被配置为在用于控制计算机存储器内的第一密钥元素的位置的范例被接受以供使用之前,测试包括计算机存储器在内的系统的熵。
在一些示例中,两个密钥元素包括密钥置乱索引掩码,并且可以包括存储改变的存储器地址的存储器位置。
本公开还包括示例方法。在一个示例中,参考图6,加密方法600包括在602处识别至少三个密钥元素,该至少三个密钥元素包括均被存储在计算机存储器内的相应位置地址处的密钥、密钥掩码和密钥置乱索引;在604处,确定或接收用于在包括计算机存储器在内的计算机系统内执行交易的持续时间;在606处,控制三个密钥元素中的至少一个密钥元素在计算机存储器内的位置,并周期性地或随机地改变该至少一个密钥元素在存储器内的位置地址,包括在小于用于在包括计算机存储器在内的计算机系统内执行交易的持续时间的时间段内改变至少一个密钥元素的位置地址。在一个示例中,在608处,在包括计算机存储器在内的计算机系统内的交易包括执行计算机存储器的内容的外部数据转储。
加密方法600还可以包括:基于该位置地址与至少三个密钥元素中的至少另一个密钥元素的位置地址之间的距离,来识别用于改变至少一个密钥元素的位置地址的时间段;以及随机地连续改变相应位置地址之间的距离。
在一些示例中,加密方法600还包括:随机地连续改变至少三个密钥元素中的每一个密钥元素的位置地址之间的距离以及位置地址中的每一个位置地址的值;以及在小于用于执行计算机存储器的内容的外部数据转储的持续时间的时间段内改变每个距离和值。
在一些示例中,加密方法600还包括:配置密钥监控器,以在用于控制计算机存储器内的三个密钥元素中的至少一个密钥元素的位置的范例被接受以供使用之前,测试包括计算机存储器在内的计算机系统的熵。在另一些示例中,至少三个密钥元素还包括以下各项之一或两者:密钥置乱索引掩码和存储改变的存储器位置地址的存储器位置。
在一些示例中,一种计算机安全方法包括:识别两个密钥元素,该两个密钥元素包括第一密钥元素和第二密钥元素,第一密钥元素被存储在计算机存储器内的第一位置地址处,且第二密钥元素被存储在计算机存储器内的第二位置地址处;确定或接收用于在包括所述计算机存储器在内的计算机系统内执行交易的持续时间;控制所述两个密钥元素中的至少一个密钥元素在所述计算机存储器中的位置,以及周期性地或随机地改变所述至少一个密钥元素在所述存储器中的位置地址,包括在小于用于在包括所述计算机存储器在内的所述计算机系统内执行所述交易的持续时间的时间段内改变所述至少一个密钥元素的位置地址。在一些示例中,交易包括执行计算机存储器的内容的数据转储。
该计算机安全方法还可以包括:基于第一位置地址和第二位置地址之间的距离来识别用于改变至少一个密钥元素的位置地址的时间段;以及随机地连续改变相应位置地址之间的距离。
在一些示例中,该计算机安全方法还包括:随机地连续改变两个密钥元素中的每一个密钥元素的位置地址之间的距离、以及位置地址中的每一个位置地址的值;以及在小于用于执行计算机存储器的内容的数据转储的持续时间的时间段内改变每个距离和值。
在一些示例中,该计算机安全方法还包括:在用于控制计算机存储器中的两个密钥元素中的至少一个密钥元素的位置的范例被接受以供使用之前,配置密钥监控器以测试包括计算机存储器在内的计算机系统的熵。在一些示例中,两个密钥元素还包括以下各项之一或两者:密钥置乱索引掩码和存储改变的存储器位置地址的存储器位置。
在一些示例中,非暂时性机器可读介质包括指令410,当该指令410被机器400读取时使机器400执行至少包括以上概述的非限制性示例操作在内的操作。
尽管已经参考一些特定示例实施例描述了本主题,将显而易见的是:可以在不脱离所公开主题的更宽泛的范围的情况下对这些实施例做出各种修改和改变。因此,说明书和附图应被认为是说明性的而不是限制性的。形成可以实践主题的具体实施例的一部分的附图是通过说明而不是限制的方式示出的。充分详细地描述了所示出的实施例,以使得本领域技术人员能够实践本文中所公开的教导。可以利用并得出其他实施例,从而可以在不脱离本公开的范围的情况下做出结构和逻辑上的替换和改变。因此,该说明书不应被视为是限制意义,并且各种实施例的范围仅通过任何所附权利要求以及权利要求的等同物的全部范围来限定。
本发明主题的这些实施例被单独地和/或统一地由术语“发明”来指代,其仅是为了方便,而不是旨在主动将本申请的范围限制为任意单个发明或发明构思(如果实际上不止一个被公开的话)。因此,尽管本文示出并描述了特定实施例,应当理解,适于实现相同目的的任意设置都可以用于替换所示出的特定实施例。本公开旨在覆盖各种实施例的任意和所有适应或变化。通过回顾上述描述,上述实施例的组合以及本文中没有具体描述的其它实施例对于本领域技术人员来说将是明显的。

Claims (17)

1.一种计算机安全系统,包括:
密钥管理监控器以及两个密钥元素,所述两个密钥元素包括第一密钥元素和第二密钥元素,所述第一密钥元素被存储在计算机存储器内的第一位置地址处,且所述第二密钥元素被存储在第二位置地址处;
所述密钥管理监控器被配置为确定或接收用于执行所述计算机存储器的内容的数据转储的持续时间;
所述密钥管理监控器还被配置为控制所述第一密钥元素在所述计算机存储器内的位置,其中,所述第一密钥元素的位置地址在小于用于执行所述计算机存储器的内容的数据转储的持续时间的时间段内改变。
2.根据权利要求1所述的计算机安全系统,其中,所述时间段小于用于执行所述计算机存储器的在所述第一位置地址和与所述第二位置地址之间的内容的数据转储的所述持续时间。
3.根据权利要求1所述的计算机安全系统,其中,用于改变所述第一密钥元素的位置地址的时间段基于所述第一位置地址与所述第二位置地址之间的距离,以及其中,所述第一位置地址与所述第二位置地址之间的所述距离随机地连续改变。
4.根据权利要求2所述的计算机安全系统,其中,所述第一位置地址与所述第二位置地址之间的距离随机地连续改变,以及其中,每个距离和值在小于用于执行所述计算机存储器的内容的数据转储的持续时间的时间段内改变。
5.根据权利要求1所述的计算机安全系统,其中,所述两个密钥元素包括密钥置乱索引掩码。
6.根据权利要求1所述的计算机安全系统,其中,所述两个密钥元素包括存储改变的存储器地址的存储器位置。
7.一种计算机安全方法,包括:
识别两个密钥元素,所述两个密钥元素包括第一密钥元素和第二密钥元素,所述第一密钥元素被存储在计算机存储器内的第一位置地址处,且所述第二密钥元素被存储在所述计算机存储器内的第二位置地址处;
确定或接收用于在包括所述计算机存储器在内的计算机系统内执行交易的持续时间;
控制所述两个密钥元素中的至少一个密钥元素在所述计算机存储器中的位置,以及周期性地或随机地改变所述至少一个密钥元素在所述存储器中的位置地址,包括在小于用于在包括所述计算机存储器在内的所述计算机系统内执行所述交易的持续时间的时间段内改变所述至少一个密钥元素的位置地址。
8.根据权利要求7所述的计算机安全方法,其中,所述交易包括执行所述计算机存储器的内容的数据转储。
9.根据权利要求8所述的计算机安全方法,还包括:
基于所述第一位置地址与所述第二位置地址之间的距离来识别用于改变所述至少一个密钥元素的位置地址的时间段;以及
随机地连续改变相应位置地址之间的距离。
10.根据权利要求9所述的计算机安全方法,还包括:
随机地连续改变所述两个密钥元素中的每一个密钥元素的位置地址之间的距离以及所述位置地址中的每一个位置地址的值;以及
在小于用于执行所述计算机存储器的内容的数据转储的持续时间的时间段内改变每个距离和值。
11.根据权利要求7所述的计算机安全方法,其中,所述两个密钥元素还包括以下各项之一或两者:密钥置乱索引掩码和存储改变的存储器位置地址的存储器位置。
12.一种包括指令在内的非暂时性机器可读介质,所述指令当由计算机安全系统中的机器读取时,使所述机器执行至少包括以下各项在内的方法的操作:
识别两个密钥元素,所述两个密钥元素包括第一密钥元素和第二密钥元素,所述第一密钥元素被存储在计算机存储器内的第一位置地址处,且所述第二密钥元素被存储在所述计算机存储器内的第二位置地址处;
确定或接收用于在包括所述计算机存储器在内的计算机系统内执行交易的持续时间;
控制所述两个密钥元素中的至少一个密钥元素在所述计算机存储器中的位置,以及周期性地或随机地改变所述至少一个密钥元素在所述存储器中的位置地址,包括在小于用于在包括所述计算机存储器在内的所述计算机系统内执行所述交易的持续时间的时间段内改变所述至少一个密钥元素的位置地址。
13.根据权利要求12所述的介质,其中,所述交易包括执行所述计算机存储器的内容的数据转储。
14.根据权利要求13所述的介质,其中,所述操作还包括:
基于所述第一位置地址与所述第二位置地址之间的距离来识别用于改变所述至少一个密钥元素的位置地址的时间段;以及
以随机或伪随机时间间隔来改变相应位置地址之间的距离。
15.根据权利要求14所述的介质,其中,所述操作还包括:
随机地连续改变所述两个密钥元素中的每一个密钥元素的位置地址之间的距离以及所述位置地址中的每一个位置地址的值;以及
在小于用于执行所述计算机存储器的内容的数据转储的持续时间的时间段内改变每个距离和值。
16.根据权利要求12所述的介质,其中,所述两个密钥元素还包括以下各项之一或两者:密钥置乱索引掩码和存储改变的存储器位置地址的存储器位置。
17.根据权利要求12所述的介质,其中,所述两个密钥元素包括密钥和密钥掩码,并且操作还包括存储密钥置乱索引、密钥置乱索引掩码以及存储改变的存储器地址的存储器位置。
CN201980010367.2A 2018-02-21 2019-02-19 经掩码处理的密钥跳跃 Active CN111656348B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/901,455 2018-02-21
US15/901,455 US11070373B2 (en) 2018-02-21 2018-02-21 Masked key hopping
PCT/US2019/018474 WO2019164796A1 (en) 2018-02-21 2019-02-19 Masked key hopping

Publications (2)

Publication Number Publication Date
CN111656348A CN111656348A (zh) 2020-09-11
CN111656348B true CN111656348B (zh) 2023-09-01

Family

ID=65686940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980010367.2A Active CN111656348B (zh) 2018-02-21 2019-02-19 经掩码处理的密钥跳跃

Country Status (4)

Country Link
US (2) US11070373B2 (zh)
EP (1) EP3756119B1 (zh)
CN (1) CN111656348B (zh)
WO (1) WO2019164796A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11070373B2 (en) 2018-02-21 2021-07-20 Ebay Inc. Masked key hopping
AU2020353720A1 (en) * 2019-09-25 2022-03-31 Commonwealth Scientific And Industrial Research Organisation Cryptographic services for browser applications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449276A (zh) * 2006-06-13 2009-06-03 国际商业机器公司 用于安全地存储数据的方法、系统和计算机程序
CN107113292A (zh) * 2014-11-14 2017-08-29 微软技术许可有限责任公司 以增强的安全性存储加密的数据

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7906416A (nl) * 1979-08-27 1981-03-03 Philips Nv Rekenmachinesysteem, waarbij het programmageheugen geschikt is om doorlopen te worden waarbij niet tot een instruktie behorende gegevens apart gedetekteerd worden.
US5050207A (en) 1989-11-03 1991-09-17 National Transaction Network, Inc. Portable automated teller machine
KR100636162B1 (ko) 2004-08-25 2006-10-18 삼성전자주식회사 소프트웨어 보호 방법 및 그 장치
US9209967B2 (en) 2007-03-12 2015-12-08 Exelis, Inc. Precalculated encryption key
US8151333B2 (en) 2008-11-24 2012-04-03 Microsoft Corporation Distributed single sign on technologies including privacy protection and proactive updating
US8379857B1 (en) * 2011-03-30 2013-02-19 Google Inc. Secure key distribution for private communication in an unsecured communication channel
US8494154B2 (en) 2011-06-20 2013-07-23 Bae Systems Information And Electronic Systems Integration Inc. Cryptographic ignition key system
US8839001B2 (en) * 2011-07-06 2014-09-16 The Boeing Company Infinite key memory transaction unit
US9705674B2 (en) 2013-02-12 2017-07-11 Amazon Technologies, Inc. Federated key management
US20160085955A1 (en) 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets
US20150052616A1 (en) * 2013-08-14 2015-02-19 L-3 Communications Corporation Protected mode for securing computing devices
US10013554B2 (en) * 2016-03-31 2018-07-03 Qualcomm Incorporated Time varying address space layout randomization
US11012235B2 (en) * 2017-09-11 2021-05-18 Mx Technologies. Inc. Securing data based on randomization
US11070373B2 (en) 2018-02-21 2021-07-20 Ebay Inc. Masked key hopping

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449276A (zh) * 2006-06-13 2009-06-03 国际商业机器公司 用于安全地存储数据的方法、系统和计算机程序
CN107113292A (zh) * 2014-11-14 2017-08-29 微软技术许可有限责任公司 以增强的安全性存储加密的数据

Also Published As

Publication number Publication date
EP3756119B1 (en) 2021-11-10
WO2019164796A1 (en) 2019-08-29
CN111656348A (zh) 2020-09-11
US20210297249A1 (en) 2021-09-23
US20190260584A1 (en) 2019-08-22
EP3756119A1 (en) 2020-12-30
US11070373B2 (en) 2021-07-20
US11683169B2 (en) 2023-06-20

Similar Documents

Publication Publication Date Title
US20200193002A1 (en) Computing asset access control
US11394551B2 (en) Secure authentication using puncturing
US20200076786A1 (en) Systems, methods and apparatuses To Perform Self-Authentication
US20140098141A1 (en) Method and Apparatus for Securing Input of Information via Software Keyboards
WO2022115176A1 (en) User permission in a multi-tenant environment
US11683169B2 (en) Masked key hopping
US20170230184A1 (en) Granting access through app instance-specific cryptography
EP4038489B1 (en) Automated software generation through mutation and artificial selection
US20170322859A1 (en) Cpu performance profiling
US10839066B1 (en) Distinguishing human from machine input using an animation
US11792148B2 (en) Communication of messages of an application in an unlaunched state
US20220255759A1 (en) Verification push notifications through web-browser
US10798129B2 (en) Constraint-based multiuse certificates
KR101748116B1 (ko) 클라우드 모바일 환경에서의 스미싱 차단장치
US11777710B2 (en) Cryptography using varying sized symbol sets
US20230421563A1 (en) Managing access control using policy evaluation mode
US20240143735A1 (en) Data management using secure browsers
US20210209217A1 (en) Method and system for authentication using mobile device id based two factor authentication
US20230262082A1 (en) Machine learning powered authentication challenges
EP4138338A1 (en) Application self-defense through deceptive message transmission
US12003539B2 (en) Application self-defense through deceptive message transmission
US10630313B1 (en) High efficiency data decoder
US10666291B1 (en) High efficiency data decoder
WO2023244303A1 (en) Method and system of securing sensitive information
Niu et al. AI-Based Android Malware Detection Methods

Legal Events

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