CN109923548B - 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品 - Google Patents

通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品 Download PDF

Info

Publication number
CN109923548B
CN109923548B CN201780062120.6A CN201780062120A CN109923548B CN 109923548 B CN109923548 B CN 109923548B CN 201780062120 A CN201780062120 A CN 201780062120A CN 109923548 B CN109923548 B CN 109923548B
Authority
CN
China
Prior art keywords
file
access
data
data file
process instance
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
CN201780062120.6A
Other languages
English (en)
Other versions
CN109923548A (zh
Inventor
杨恩辉
余祥
孟进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baizhuo Information Technology Co ltd
Original Assignee
Baizhuo Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Baizhuo Information Technology Co ltd filed Critical Baizhuo Information Technology Co ltd
Publication of CN109923548A publication Critical patent/CN109923548A/zh
Application granted granted Critical
Publication of CN109923548B publication Critical patent/CN109923548B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/602Providing cryptographic facilities or services
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2125Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

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

Abstract

本文提供的实施方式涉及数据保护的方法、系统和计算机程序产品。基于加密数据文件管理、进程认证及授权,针对已授权进程的木马检测、加密密钥生成和缓存以及加密文件缓存管理方法而提出了基于进程的加密数据访问监管系统。所述基于进程的加密数据访问监管系统可以实现为一种内核级别文件系统过滤器和一种用户模式过滤配套应用,它监管着服务器系统或者终端计算机中的加密数据的读/写,并保护数据免受数据泄露和已知或未知攻击,包括勒索软件和/或网络钓鱼攻击。

Description

通过监管进程访问加密数据实现数据保护的方法、系统及计 算机程序产品
技术领域
本发明涉及数据访问管理技术领域,尤其涉及一种用于管理运行在计算机系统上的进程对数据访问的系统、方法和计算机程序产品。
背景技术
随着社会变得更加数字化,敏感信息的存储和传输也越来越电子化。因此,在当今数字社会,网络安全的重要性也日益变得十分重要。
为了解决网络安全问题,人们已经提出了许多计算机安全技术。这些计算机安全技术其中包括防火墙、基于角色的访问控制、数据备份服务以及数据加密等。上述这些技术通常采用不同的方式来保护用户数据。例如,防火墙技术主要用于防止恶意软(malicioussoftware恶意软件)件获得计算机的访问权限。基于角色的访问控制根据分配给各种用户的角色和特权来限制已授权用户的系统访问权限。数据备份根据预定的时间表来存档数据以防止数据丢失。加密编码是将一份明文文件转换成为一份格式无法识别的文件,除非使用对应的解密密钥来解码。
虽然上述技术为用户数据提供了一些保护措施,但是这些技术都容易受到复杂的攻击,并有证据表明越来越多的大型机构遭遇数据泄露和/或被勒索赎金。随着计算机-物理-人类网络和系统之间的相互关联变得越来越紧密,整个系统的强壮性更趋向于体现在最薄弱环节和时刻。
发明内容
下面将更加详细地介绍本文要讨论的内容。该介绍并非旨在限制或者限定任何已经申请或尚未申请的发明。包括权利要求和附图在内的本文的任何部分所披露的元素或过程步骤的任何组合或者子组合中均可能包括一项或多项发明。
本文描述的实施方式可以包括用于管理计算机系统中的数据访问的方法和系统。这里描述的实施方式,可以用于防止数据泄露和防止已知的和未知的攻击,包括,例如勒索软件和网络钓鱼攻击。本文描述的系统和方法的实施方式可以基于进程验证和授权方法,监管那些尝试访问加密数据文件的进程。可以拒绝未经授权的进程,例如恶意软件进程,访问加密数据。
本文描述的方法和系统的实施方式提供可以被称为内核级别文件系统过滤器的数据保护模块。该数据保护模块可以实现用于进程认证和/或进程授权的方法,以便于监管(即,以管理数据访问)尝试访问计算机系统上的数据(加密数据和/或未加密数据)的进程。
从广义上来说,本文提供了一种安装在计算机系统上的数据保护模块管理访问多个数据文件的方法,多个数据文件存储在计算机系统中的至少一个数据模块上,所述方法包括:所述数据保护模块识别存储在所述至少一个数据模块上的所述多个数据文件中的多个受保护的数据文件,其中存储在所述至少一个数据模块上的所述多个数据文件包括所述多个受保护的数据文件和多个未受保护的数据文件,并且其中所述多个受保护的数据文件中的每个受保护的数据文件以加密格式存储在所述至少一个存储模块中;将存储在所述至少一个存储模块上的每个受保护的数据文件关联一个受保护文件标识符;所述数据保护模块接收来自运行在计算机系统上的请求进程实例的文件访问请求,其中文件访问请求包括与所述多个数据文件中的特定数据文件相对应的文件识别信息;所述数据保护模块从所述文件识别信息中识别出特定数据文件;所述数据保护模块通过识别关联的受保护文件标识符确定所述特定数据文件为受保护的数据文件之一;所述数据保护模块根据对应进程的进程授权级别确定请求进程实例的授权级别,所述对应进程的进程授权级别由通过访问存储在所述至少一个存储模块上的定义多个进程的授权级别的配置图确定;以及根据确定的请求进程实例的授权级别向请求进程实例提供特定数据文件的访问级别。
在一些实施方式中,所述配置图用于根据具有明文授权级别的多个进程定义第一组进程,以及用于根据具有密文授权级别的多个进程定义第二组进程。
在一些实施方式中,将特定数据文件的对应进程的进程授权级别确定为明文授权级别;以及向请求进程实例提供特定数据文件的访问级别包括:解密特定数据文件获得已解密数据文件;将所述已解密数据文件暂存至计算机系统的缓存中;以及向请求进程实例提供对所述已解密数据文件的明文访问。
在一些实施方式中,将特定数据文件对应进程的进程授权级别确定为密文授权级别;以及向请求进程实例提供特定数据文件的访问级别包括向请求进程实例提供对特定数据文件的加密格式访问。
在一些实施方式中,将特定数据文件对应进程的进程授权级别确定为既非明文授权级别也非密文授权级别;以及向请求进程实例提供特定数据文件的访问级别包括拒绝请求进程实例访问特定数据文件。
在一些实施方式中,对于至少一个受保护的数据文件中的每一个,将受保护的数据文件关联受保护文件标识符包括将受保护的数据文件存储在所述至少一个存储模块上的预定义文件目录区的文件位置中;以及所述受保护的数据文件的受保护文件标识符为预定义文件目录区。
在一些实施方式中,对于至少一个受保护的数据文件中的每一个,将受保护的数据文件关联受保护文件标识符包括修改与加密数据文件相关的数据以包含受保护文件标识符。
在一些实施方式中,在向请求进程实例提供访问级别之前,通过以下方式验证请求进程实例:确定与所述对应进程相关的应用程序;确定请求进程实例包括与所述已知应用程序不对应的附加进程指令;以及修改所确定的授权级别,以便向请求进程实例提供特定数据文件的访问级别包括拒绝请求进程实例访问特定数据文件。
在一些实施方式中,所述配置图通过以下方式定义:
识别允许访问明文格式文件的第一种多个应用程序;
将与第一种多个应用程序对应的多个进程中的进程定义为第一组进程;识别允许访问密文格式文件的第二种多个应用程序;以及将与第二种多个应用程序对应的多个进程中的进程定义为第二组进程。
在一些实施方式中,在接收文件访问请求之前,固定所述配置图。
在一些实施方式中,该方法可包括:所述数据保护模块通过访问所述配置图确定对应进程的初始进程授权级别,其中,所述初始授权级别拒绝对应进程访问特定数据文件;通过安装在计算机系统上的用户应用程序显示拒绝通知;通过用户应用程序接收修改输入以响应所述拒绝通知;以及所述数据保护模块基于修改输入,更新所述配置图,以改变对应进程的初始授权级别。
在一些实施方式中,该方法可包括:所述数据保护模块通过访问配置图获得的对应进程的进程授权类型确定请求进程实例的授权类型,所述授权类型用于定义请求进程实例允许执行的至少一个文件操作;以及向请求进程实例提供特定数据文件的访问级别包括允许请求进程实例对特定数据文件执行与已确定的授权类型一致的操作并且阻止请求进程执行授权类型之外的操作。
在一些实施方式中,该方法可包括:所述数据保护模块接收来自运行在计算机系统上的第二进程实例的第二文件访问请求,同时请求进程实例具有对特定数据文件的访问级别,其中所述第二文件访问请求包括与特定数据文件对应的文件识别信息;确定与第二进程实例对应的进程的授权级别不同于向与请求进程实例对应的进程提供的访问级别;以及拒绝第二进程实例访问特定数据文件。
在一些实施方式中,该方法可包括:所述数据保护模块接收来自运行在计算机系统上的第二进程实例的第二文件访问请求,同时请求进程实例具有对特定数据文件的访问级别,其中所述第二文件访问请求包括与特定数据文件对应的文件识别信息;确定与第二进程实例对应的进程的授权级别不同于向与请求进程实例对应的进程提供的访问级别;生成特定数据文件的副本;以及向第二进程实例提供特定数据文件的副本的第二访问级别。
从广义上来说,本文提供了一种用于管理访问多个数据文件的系统。所述系统包括:处理器;与所述处理器连接的至少一个存储模块,所述至少一个存储模块存储数据保护模块和所述多个数据文件;其中,所述数据保护模块将处理器配置为:识别存储在所述至少一个数据模块上的所述多个数据文件中的多个受保护的数据文件,其中存储在所述至少一个数据模块上的所述多个数据文件包括所述多个受保护的数据文件和多个未受保护的数据文件,并且其中所述多个受保护的数据文件中的每个受保护的数据文件以加密格式存储在所述至少一个存储模块中;将存储在所述至少一个存储模块上的每个受保护的数据文件关联一个受保护文件标识符;拦截来自运行在处理器上的请求进程实例的文件访问请求,其中,所述文件访问请求包括与所述多个数据文件中的特定数据文件对应的文件识别信息;从所述文件识别信息中识别出特定数据文件;通过识别关联的受保护文件标识符确定所述特定数据文件为受保护的数据文件之一;根据对应进程的进程授权级别确定请进程实例的授权级别,所述对应进程的进程授权级别由通过访问存储在所述至少一个存储模块上的定义多个进程的授权级别的配置图确定;以及根据确定的请求进程实例的授权级别向请求进程实例提供特定数据文件的访问级别。
在一些实施方式中,所述配置图用于根据具有明文授权级别的多个进程定义第一组进程,以及用于根据具有密文授权级别的多个进程定义第二组进程。
在一些实施方式中,将特定数据文件的对应进程的进程授权级别确定为明文授权级别;以及所述处理器被所述数据保护模块配置成为通过以下方式向请求进程实例提供特定数据文件的访问级别:解密特定数据文件获得已解密数据文件;将所述已解密数据文件暂存至计算机系统的缓存中;以及向请求进程实例提供对所述已解密数据文件的明文访问。
在一些实施方式中,将特定数据文件对应进程的进程授权级别确定为密文授权级别;以及所述处理器被所述数据保护模块配置成为通过向请求进程实例提供对特定数据文件的加密格式访问来向请求进程实例提供特定数据文件的访问级别。
在一些实施方式中,将特定数据文件对应进程的进程授权级别确定为既非明文授权级别也非密文授权级别;以及所述处理器被所述数据保护模块配置成为通过拒绝请求进程实例访问特定数据文件来向请求进程实例提供特定数据文件的访问级别。
在一些实施方式中,对于至少一个受保护数据文件中的每一个,所述处理器被所述数据保护模块配置成为:通过把受保护的数据文件存储在所述至少一个存储模块上的预定义文件目录区的文件位置中,将受保护的数据文件关联受保护文件标识符;其中所述受保护的数据文件的受保护文件标识符包括预定义文件目录区。
在一些实施方式中,对于至少一个受保护数据文件中的每一个,所述处理器被所述数据保护模块配置成为:通过修改与加密数据文件相关的数据以包含受保护文件标识符,将受保护的数据文件关联受保护文件标识符。
在一些实施方式中,所述处理器被所述数据保护模块配置成为,在向请求进程实例提供访问级别之前,通过以下方式验证请求进程实例:确定与对应进程相关的应用程序;确定请求进程实例包括与所述已知应用程序不对应的附加进程指令;以及修改所确定的授权级别,以便向请求进程实例提供特定数据文件的访问级别包括拒绝请求进程实例访问特定数据文件。
在一些实施方式中,所述处理器被所述数据保护模块配置成为通过以下方式定义配置图:识别允许访问明文格式文件的第一种多个应用程序;将与第一种多个应用程序对应的多个进程中的进程定义为第一组进程;识别允许访问密文格式文件的第二种多个应用程序;以及将与第二种多个应用程序对应的多个进程中的进程定义为第二组进程。
在一些实施方式中,在接收文件访问请求之前,固定所述配置图。
在一些实施方式中,所述处理器被所述数据保护模块配置成为:通过访问所述配置图确定对应进程的初始进程授权级别,其中,所述初始授权级别拒绝对应进程访问特定数据文件;通过安装在计算机系统上的用户应用程序显示拒绝通知;通过用户应用程序接收修改输入以响应所述拒绝通知;以及基于修改输入,更新所述配置图,以改变对应进程的初始授权级别。
在一些实施方式中,所述处理器被所述数据保护模块配置成为:通过访问配置图获得的对应进程的进程授权类型确定请求进程实例的授权类型,所述授权类型用于定义请求进程实例允许执行的至少一个文件操作;以及通过允许请求进程实例对特定数据文件执行与已确定的授权类型一致的操作并且阻止请求进程执行授权类型之外的操作来向请求进程实例提供特定数据文件的访问级别。
在一些实施方式中,所述处理器被所述数据保护模块配置成为:接收来自运行在计算机系统上的第二进程实例的第二文件访问请求,同时请求进程实例具有对特定数据文件的访问级别,其中所述第二文件访问请求包括与特定数据文件对应的文件识别信息;确定与第二进程实例对应的进程的授权级别不同于向与请求进程实例对应的进程提供的访问级别;以及拒绝第二进程实例访问特定数据文件。
在一些实施方式中,所述处理器被所述数据保护模块配置成为:接收来自运行在计算机系统上的第二进程实例的第二文件访问请求,同时请求进程实例具有对特定数据文件的访问级别,其中所述第二文件访问请求包括与特定数据文件对应的文件识别信息;确定与第二进程实例对应的进程的授权级别不同于向与请求进程实例对应的进程提供的访问级别;生成特定数据文件的副本;以及向第二进程实例提供特定数据文件的副本的第二访问级别。
从广义上来说,本文提供了一种用于管理访问存储在计算机系统中的至少一个存储模块上的多个数据文件的计算机程序产品,所述计算机程序产品包括存储有计算机可执行指令的非暂时性计算机可读介质,该指令用于配置处理器以执行:识别存储在所述至少一个数据模块上的所述多个数据文件中的多个受保护的数据文件,其中存储在所述至少一个数据模块上的所述多个数据文件包括所述多个受保护的数据文件和多个未受保护的数据文件,并且其中所述多个受保护的数据文件中的每个受保护的数据文件以加密格式存储在所述至少一个存储模块中;将存储在所述至少一个存储模块上的每个受保护的数据文件关联一个受保护文件标识符;接收来自运行在计算机系统上的请求进程实例的文件访问请求,其中文件访问请求包括与所述多个数据文件中的特定数据文件相对应的文件识别信息;从所述文件识别信息中识别出特定数据文件;通过识别关联的受保护文件标识符确定所述特定数据文件为受保护的数据文件之一;根据对应进程的进程授权级别确定请求进程实例的授权级别,所述对应进程的进程授权级别由通过访问存储在所述至少一个存储模块上的定义多个进程的授权级别的配置图确定;以及根据确定的请求进程实例的授权级别向请求进程实例提供特定数据文件的访问级别。
在一些实施方式中,所述计算机程序产品可以进一步包括用于配置处理器以执行本文描述的用于管理访问多个数据文件的方法的各种实施方式的指令。
下面将更加详细地描述各种实施方式的各个方面及各个特征。
附图说明
为了更好地理解所描述的实施方式,以及更清楚地示出它们如何实施,附图作为例子将被用来作为参考,其中:
图1示出了用于管理访问多个数据文件的示例实施方式的系统框图。
图2示出了用于管理访问多个数据文件的示例方法的实施方式的流程图;
图3示出了用于管理读取数据文件的请求的示例方法的实施方式的流程图;
图4示出了用于管理将数据写入数据文件的请求的示例方法的实施方式的流程图;以及
图5示出了用于管理访问多个数据文件的另一示例方法的示例实施方式的流程图。
本文提供的附图中的各种示例的方面和特征是为了说明而非限制本文描述的实施方式。为了说明的简单和清楚,附图中所示的元件没有必要按比例绘制。为了清楚起见,一些元件的尺寸可能相对于其他元件被夸大。应当理解,为了说明的简单和清楚,在认为合适的情况下,附图标记可以在附图之间重复以指示对应或类似的元件或步骤。
具体实施方式
下面将描述各种系统或方法以提供所要求保护的主题的实施方式的示例。以下描述的实施方式不限制任何所要求保护的主题,并且任何所要求保护的主题可以涵盖与下面描述不同的方法或系统。所要求保护的主题不限于具有下面描述的任何一个系统或方法的所有特征的系统或方法,或者对于下面描述的多个或所有装置或方法共有的特征。以下描述的系统或方法可能不是在任何要求保护的主题中叙述的实施方式。以下描述的系统或方法中公开的而未在本文档中要求保护的任何主题可以是另一保护装置的主题,例如,系列专利申请,并且申请人、发明人或专利权人不打算放弃、放弃权利或通过本文件中的披露将任何此类主题事项公之于众。
此外,应当理解,为了说明的简单和清楚,在认为合适的情况下,可以在各附图之间重复附图标记以指示对应或类似的元件。另外,本文阐述了许多具体细节以便提供对本文所述实施方式的透彻理解。然而,本领域普通技术人员应当理解,可以在没有这些具体细节的情况下实践本文描述的实施方式。在其他情况下,没有详细描述众所周知的方法、进程和组件,以免模糊这里描述的实施方式。而且,附图和描述不应被视为限制本文描述的实施方式的范围。
还应注意,如本文所使用的,措词“和/或”旨在表示包含性的或。也就是说,“X和/或Y”旨在表示例如X或Y或两者。作为另一个实例,“X,Y和/或Z”旨在表示X或Y或Z或其任何组合。
应当注意,术语“应用程序”意味着较短形式的应用程序,其指的是被设计为实现终端用户的特定功能的程序(即一组计算机指令)。从终端用户的角度来看,计算机系统中的程序通常被称为应用程序。例如,终端用户可以将Microsoft Windows Word称为文字处理应用程序,而在操作系统中,Microsoft Windows Word被识别为程序winword.exe。
在下文中,术语“应用程序”用于指代终端用户眼中的应用程序。例如,一应用程序可以指代终端用户与之交互的程序,以便建立(即定义)授权一个或多个应用程序访问加密数据的配置图。术语“程序”可以用于指代操作系统眼中的程序,它作为一个或多个进程在处理器上执行,以提供相应应用程序。例如,术语“程序”可用于描述内核级文件系统过滤器在使用配置图监管正在执行程序的进程时的操作。
黑客技术和恶意软件程序不断发展并适应安全技术。即使有适当的安全系统,恶意软件仍然可以使用已知或未知的入侵形式,例如网络钓鱼攻击,绕过许多现有的安全技术(例如,由于人为错误)。这些攻击通常利用最薄弱的环节和时刻(人类和/或技术)来访问计算机网络和系统。一旦恶意软件在计算机网络/系统内,许多现有的安全技术就无法防止恶意软件传播和/或访问重要和敏感的数据文件。
本文描述的实施方式可以提供即使在恶意软件侵入计算机系统或网络并且在其上运行之后也可以保护数据文件的方法,系统和计算机程序产品。这样的实施方式可以包括用于管理访问加密数据文件以通过对请求数据文件的进程认证和授权来防止数据泄露的方法和系统。
诸如Windows、Linux、UNIX和Mac OS之类的计算机操作系统通常具有两种执行模式:内核模式和用户模式。内核模式指的是CPU的特权状态,持有该特权以执行任何指令和引用任何内存地址。
用户模式是用户程序的非特权状态。在用户模式中,执行代码(即当前正在执行的用户模式进程)无法直接访问硬件或引用内存地址。当CPU在用户模式下操作时,可以假定所有用户模式进程都是不可信的,因此必须通过系统调用的方式请求使用内核。
在计算机系统中,当一进程想要访问一文件时,该进程向该文件系统发出获取对该文件的引用(被称为文件句柄)的请求。根据请求的属性以及所请求的文件是否存在,可以创建新文件或可以打开现有文件。在请求进程获得文件的文件句柄之后,该进程可以通过将文件句柄和要写入的数据传递给文件系统来将数据写入文件。类似地,该进程通过把传递文件句柄和保存要读取到的数据的位置传递给文件系统来从文件中读取数据。当进程不再需要访问该文件时,该进程可以向文件系统发出请求,关文件句柄。在本文描述的实施方式中,所有用于获得文件句柄、写入和读取数据以及关闭文件句柄的那些由进程(即,任何非内核模式进程)发出的请求,在其被传输到文件系统之前,都可以被数据保护模块路由通过或截获。
这里描述的实施方式可以使用由内核级文件系统过滤器(这里也称为数据保护模块)实现的基于进程的访问监管来管理对加密数据文件的访问。在这样的实施方式中,授权进程可被授权访问所请求的数据文件(例如,已加密的数据文件),而未授权的进程可被拒绝访问所请求的数据文件(即,被阻止访问所请求的数据文件或对数据文件的访问受限或减少)。
在某些情况下,进程可能会请求对数据文件的特定级别的访问。例如,第一进程可以请求访问数据文件的明文文本内容,而第二个进程可能只请求访问数据文件的密文文本内容。数据保护模块可以随后确定请求进程的授权访问级别。基于已经确定的授权访问级别,数据保护模块可以向请求进程提供所请求的访问级别、降低的访问级别、甚至可以拒绝访问请求数据文件。
本文描述的实施方式可提供对于加密数据采用基于进程的访问监管的数据保护方法。例如,可以提供数据保护模块以便在计算设备上安装;数据保护模块可以配置为确定或识别受保护的数据文件(即那些将要受保护和加密的数据文件)的群组或区域;然后,数据保护模块可以操作验证那些尝试向受保护的(和加密的)数据文件写入数据或从受保护的数据中读取数据的进程;数据保护模块可以随后向所述进程提供的权限级别。该权限级别可以定义所述进程对数据文件的访问级别。例如,经过身份验证的进程可以被授予访问明文数据文件的权限,经过身份验证的进程可以被授予访问数据文件的密文的权限,或数据保护模块可能拒绝未经验证的进程甚至是经过验证的进程(例如,如果该进程无权访问所请求的数据文件)。
数据保护模块还可以定义请求进程的权限类型。权限类型可以定义所述进程针对所请求的数据文件被授权执行的操作类型。例如,授予的权限类型可以是以下权限类型之一:授权/允许将数据写入加密文件、授权/允许读取加密文件。数据保护模块可以配置为对每一个尝试向受保护和加密的文件写入数据或从受保护和加密的文件读取数据的进程进行身份验证。
这里描述的实施方式可以提供内核模式下的对于加密数据文件的文件管理方案。在操作中,数据保护模块(即内核级文件系统过滤器)可以响应所有来自用户模式进程的要求访问计算机系统中的任何和所有数据文件的请求。该数据保护模块可以有效地为受保护的数据群组或区域中的数据文件提供文件管理。在一些实施方式中,受保护的数据文件可以存储在计算机系统的文件目录中的已定义区域内。或者,数据保护模块可以确定基于受保护的数据文件的存储位置而定义的目录树。然后数据保护模块可以执行基于文件系统路径字符串的树结构的快速字符串搜索算法,以便于确定所请求的数据文件是否为受保护的数据文件。
例如,数据保护模块当其在内核中加载时可以启动搜索树。然后,通过对每个存储在与计算机系统相关联的存储器上的数据文件,检测其是否是加密的,数据保护模块可以定义搜索树。在一些情况下,数据保护模块可以动态地定义搜索树,例如,当内核过滤第一次访问数据文件时,这可能是响应于来自在计算机系统上运行的任何进程或应用程序的请求。
本文描述的实施方式可以使用受保护文件标识符来确定数据文件是否受到保护(以及它们是否是加密的,如果在实施方式中所有受保护的文件都是加密的)。在一些例子中,当数据文件存储在存储模块上时(例如,物理存储介质,如硬盘或USB磁盘),受保护文件标识符可以是附加到受保护的数据文件的文件扩展名。然后,数据保护模块可以通过识别受保护文件扩展名的存在来确定文件是受保护的文件。在某些情况下,受保护文件扩展名对用户模式进程可以是不可见的,以便于提供对用户应用程序的透明性操作(例如,加密的Windows Word文件将向Word进程仅显示其原始扩展名,例如.doc)。相应地,对于受保护的数据文件,数据保护模块可以在不含受保护文件扩展名的用户侧文件名和含受保护文件扩展名的过滤器侧文件名之间,定义一个文件名映射。
附加地或替代地,数据保护模块可以将受保护文件标识符嵌入到受保护的数据文件中。例如,受保护文件标识符可以被作为嵌入到加密数据文件的文件头中的加密令牌。然后,数据保护模块可以访问文件头中的加密令牌,以便于确定特定数据文件是加密数据文件。
附加地或替代地,数据保护模块可以在计算机文件系统的文件属性域中记录受保护文件标识符。数据保护模块可以为加密数据文件,在文件属性域中记录加密标志或加密指示符。然后,该数据保护模块可以识别特定数据文件的文件属性中的符号,以便于确定特定数据文件是加密数据文件。
这里描述的实施方式可以为加密数据提供基于进程的访问监管系统。该系统可包括:包括物理存储介质的一个或多个存储模块,数据保护模块(内核级文件系统过滤器),以及可选的用户模式过滤器配套应用。一个或多个存储模块中可以存储多个数据文件。至少有一些存储在存储模块中的数据文件可以是加密的(例如,使用随机加密密钥)。数据保护模块可以提供存储在计算机系统中的数据文件和试图访问存储在那些数据文件中的数据的各种应用程序之间的接口。数据保护模块可以在计算机系统上执行各种与数据文件管理有关的操作,例如加密数据,解密数据,监管尝试访问数据的应用程序进程(例如,拦截来自在计算机系统上运行的进程的数据请求),认证进程,和授权进程访问数据。
在通用计算系统中,进程是指令集合(通常被称为程序)的执行。在类Unix系统中,程序作为程序文件存储在文件系统中。可以通过计算机内核级别的系统调用来加载程序以启动进程(即,启动程序指令的执行)。一旦启动,内核就可以使用进程ID来识别进程。
在本文描述的实施方式中,当当前加载的进程试图访问存储在计算机系统中的数据时,数据请求可能被数据保护模块拦截。然后,数据保护模块可以基于与所请求的文件和所述请求进程相关联的信息来确定是否授权所请求的访问。在允许进程访问受保护的数据(例如,加密数据)的明文或者密文之前,数据保护模块可以对所述进程启用认证和授权程序。
在某些情况下,数据保护模块可以实现涉及3个阶段的数据访问管理步操:
1.配置阶段:可以为每个正在计算机系统上运行的或者随后在计算机系统上运行的进程定义授权级别(例如,访问权限级别)。在某些情况下,配置图可能只包括授权访问存储在计算机系统上受保护的数据的进程。该配置图还可以包括每个授权程序的授权类型。配置图被提供给数据保护模块。
2.进程认证阶段:数据保护模块可以评估请求数据访问的进程的真实身份。数据保护模块也可以将该身份信息与配置图上标识的进程进行比较。
3.进程授权阶段:数据保护模块可以使用配置图确定请求进程的授权级别(以及,在某些情况下,授权类型)。然后,数据保护模块可以允许该进程根据所确定的授权级别和/或授权类型来访问所请求的数据。
在一些实施方式中,配置图可以基于相应的程序来标识执行进程实例。因此,可以向每个执行相应程序实例的进程提供相同的授权级别/类型。
在某些情况下,本文描述的系统还可以包括用户模式过滤器配套应用。所述系统可以在用户模式过滤器配套应用和数据保护模块之间提供双工信道。用户模式过滤器配套应用可以允许计算机系统的用户定义和/或修改一个或多个进程的授权级别和/或类型。
在某些情况下,数据保护模块(或配置图)可以被配置为最初阻止所有进程访问任何受保护的数据并将所有被阻止的事件报告给用户模式过滤器配套应用。用户模式过滤器配套应用可以为每个被阻止事件向用户提供指示(例如弹出消息)。用户模式过滤器配套应用可以提供界面,以便于用户修改执行与被阻止事件相关联的程序的进程的权限。
例如,用户模式过滤器配套应用可以提供访问权限列表,以供用户选择。访问权限选项可以包括,例如,(1)访问加密数据文件的明文内容的授权;(2)访问加密数据文件的密文内容的授权;以及(3)拒绝进程访问任何加密数据文件。用户模式过滤器配套应用使用专用双工通道向数据保护模块发送修改后的访问权限。响应于用户的选择,数据保护模块可以随后更新配置图。
在一些实施方式中,数据保护模块可以具有包括第一组应用程序和第二组应用程序的初始配置图,所述第一组应用程序的相应进程被允许访问加密数据的明文内容,所述第二组应用程序的相应进程被允许访问加密数据的密文内容。终端用户可以使用用户模式过滤器配套应用来修改配置图。
在一些实施方式中,可以使用链接列表数据结构来定义配置图。第一链接列表数据结构可以包括那些合法的应用程序,其相应进程被允许访问加密数据的明文内容。第二链接列表数据结构可包括那些合法的应用程序,其相应进程被允许访问加密数据的密文内容,以及有权访问密文内容的所有程序名称的列表。与这些链接列表中未标识的程序相对应的所有进程可以被拒绝访问加密数据。
在一些实施方式中,用户端应用程序可以被省略。例如,对于安装在特定计算机系统上的数据保护模块,配置图可以固定。在这种情况下,可能不允许本地计算机用户修改配置图。这在多个用户可以访问相同数据文件(例如,在服务器应用程序中)的实现中可能特别有用。
如上所述,本文描述的一些实施方式可以在提供对所请求的数据文件的访问之前验证请求进程。在这样的实施方式中,数据保护模块可以使用系统调用将请求进程的进程ID映射到其对应的程序文件路径。数据保护模块可以使用该程序文件路径映射以及所述程序的数字签名(存储在配置图内)以验证请求进程。
在某些情况下,数据保护模块可以通过分析请求进程来确定请求进程内是否存在特洛伊木马指令。如这里所使用的,术语“特洛伊木马”指的是一组被加载到进程中的指令,该组指令来源于相应程序(即相应的真实程序,其数字签名可用于识别该进程)和受保护的数据文件以外的信源,其中该组指令作为该进程的一部分而被执行。如果数据保护模块确定特洛伊木马指令存在于请求进程,请求进程的授权级别可以被修改为如拒绝访问所请求的数据文件。这可能会阻止未经授权的指令依附在真实进程的授权级别上,进而导致数据泄露。例如,数据保护模块可以修改请求进程的授权级别,以拒绝访问所请求的数据;否则,所述请求进程将被允许访问加密数据的明文内容。
可以使用各种方法来检测特洛伊木马指令。例如,数据保护模块可以分析以特定脚本语言编写的未受保护的数据文件中的脚本语言模式,所述未受保护的数据文件将被加载到请求访问以特定脚本语言编写的文件的进程中。也就是说,当进程尝试访问不受保护的数据文件中的数据时,数据保护模块可以分析数据文件以便于确定特洛伊木马指令是否存在,(并且是否会被加载到请求进程中)。
例如,考虑这样一种实现,数据保护模块被用于保护在网络服务器上运行的php脚本,其中php解释器进程被授权访问预定义的php文件列表。在这个实现中,当php解释器进程尝试访问不受保护的php脚本文件时,数据保护模块可以分析正在被访问的文件,检测php脚本模式,如'<?php',如果找到这样的脚本模式则阻止进程访问该不受保护的数据文件。类似的过程可能应用于其他类型的脚本文件保护,例如,Ruby,Python,Perl,Node-JS,Jscript,HTML等等。
在一些实施方式中,数据保护模块可以通过检测进程中的插件或加载项来确定是否存在特洛伊木马指令;所述进程否则已被授权访问受保护数的据文件(即受保护的数据文件的明文文本内容)。例如,与Windows Word相应的进程可以被授权访问.doc文件的预定义列表。在这种情况下,数据保护模块可以分析所有Windows Word插件或加载项,并且仅对插件或加载项的子集授予访问权限。例如,数据保护模块可以仅对由终端用户授权的插件授予访问权限。
例如,当要加密或解密数据时,可以首先生成加密密钥和/或解密密钥。可以应用生成的密钥来加密/解密文件读/写缓冲区中的数据。在使用对称加密的实施方式中,加密密钥和相应的解密密钥是相同的。
为了生成加密密钥,数据保护模块可以接收输入数据,并根据输入数据以确定的方式生成/输出加密密钥,即只要输入数据相同,其输出(加密密钥)可以是相同的。生成密钥的示例方法在本申请人于2016年6月10日提交的第15/178,680号美国专利申请中有更详细地描述,其题目为“用于加密密钥生成和管理的方法和计算机程序产品”,现已作为美国专利第9,703,979号被公告,其全部内容为在此引入作为参考。在一些示例(如那些在美国专利No.9,703,979中描述的示例)中,输入数据可以包括以下输入部分:第一部分,包括唯一的密钥库种子标识符;和第二部分,包括被称为密钥材料或密钥信息的辅助信息。给定唯一的密钥库种子标识符和密钥材料,该标识符可用于确定密钥库种子,然后密钥库种子和密钥材料可以组合生成加密密钥。
在一些实施方案中,本文描述的系统可以使用加密密钥缓存,以方便加密和解密受保护的数据文件。文件标识符和相应的加密密钥之间的加密密钥哈希映射(也称为加密密钥缓存)可以保存在计算机系统的易失性存储器中。这可以允许数据保护模块在加密或解密文件时有效地记录或检索与所述数据文件对应的加密密钥。当数据保护模块被加载时(例如,在系统启动时),数据保护模块可以启动哈希映射。然后,哈希映射可以通过在为文件生成加密密钥时记录包括文件标识符和相应加密密钥的文件加密对来定义。
在一些实施方式中,利用其间的双工信道,使用用户模式过滤器配套应用和数据保护模块之间的协作步操可以生成并缓存加密密钥。响应于接收来自进程的用于生成新的加密数据文件的文件句柄请求,数据保护模块可以检索新加密数据文件的新文件属性(例如,在文件系统中将要生成数据文件的位置),并将新文件属性传输到用户模式过滤器配套应用。用户模式过滤器配套应用可以使用新文件属性来确定密钥库种子(具有唯一标识符),(随机)生成密钥材料,并使用确定的密钥库种子和密钥材料为新加密文件生成加密密钥。用户模式过滤器配套应用可以将唯一的密钥库种子标识符、密钥材料和加密密钥发送至数据保护模块。为了新加密数据文件,数据保护模块可以将密钥材料与所选密钥库种子的唯一标识符一起存储。数据保护模块也可以将加密的文件数据对存储在包含唯一文件标识符和相应的加密密钥的加密密钥缓存中。
响应于接收到获取现有加密数据文件的文件句柄的请求,数据保护模块还可以访问加密密钥缓存。数据保护模块可以从所请求的文件中识别唯一文件标识符,并尝试使用唯一标识符来检索在加密密钥缓存中的相应加密密钥。如果加密密钥缓存不包含所请求的文件的加密密钥,数据保护模块可以从加密数据文件中检索密钥库种子标识符和密钥材料。然后,数据保护模块可以将密钥库种子标识符和密钥材料发送到用户模式过滤器配套应用。
用户模式过滤器配套应用可以使用密钥库种子标识符以确定密钥库种子,使用密钥库种子和密钥材料生成加密数据文件的加密密钥,并将加密密钥发送到数据保护模块。该数据保护模块可以将文件密钥数据存储至加密密钥缓存中,该文件密钥数据代表所请求的加密数据文件的密钥材料及其所选密钥库种子的唯一标识符。
在一些实施方式中,加密密钥生成和缓存可以在没有用户模式过滤器配套应用的情况下执行(或者不需要与用户模式应用程序通信)。响应于文件的文件句柄请求,所述请求将导致创建新的加密数据文件,数据保护模块可以确定具有唯一标识符的密钥库种子。数据保护模块可以(随机)生成密钥材料,使用密钥库种子和密钥材料而生成加密密钥,并将密钥材料与密钥库种子标识符一起存储至加密数据文件中。该数据保护模块可以将文件密钥数据存储至加密密钥缓存中,该文件密钥数据代表加密数据文件的密钥材料及其所选密钥库种子的唯一标识符。
在一些实施方式中,在接收到获取现有加密数据文件的文件句柄的请求时,数据保护模块可以从加密数据文件中确定文件标识符并尝试使用该文件标识符在加密缓存中检索相应的加密密钥。如果加密密钥缓存不包含所请求的文件的加密密钥,数据保护模块可以检索存储在加密数据文件中的密钥库种子标识符和密钥材料,使用密钥库种子标识符来检索密钥库种子,并使用密钥库种子和密钥材料生成加密密钥。该数据保护模块可以将文件密钥数据存储至加密密钥缓存中,该文件密钥数据代表加密数据文件的密钥材料及其所选密钥库种子的唯一标识符。
响应于将数据写入文件或从加密数据文件中读取数据的请求,数据保护模块可检索对应于该文件的唯一文件标识符,使用该文件标识符识别加密密钥缓存中的相应加密密钥,并在发出所述请求的授权进程读取数据或将数据被写入文件系统之前,使用加密密钥解密或加密数据。
在某些情况下,在关闭文件的所有文件句柄之后,可以从加密密钥缓存中清除此文件的加密密钥。响应于文件句柄被关闭,可以清除加密密钥。这可以阻止加密密钥在授权进程不再访问加密数据文件中的数据之后被访问。
在一些实施方式中,当加载数据保护模块时,单个密钥库种子(及其相应的密钥库种子标识符)可以加载到计算机系统的易失性存储器中。数据保护模块可以始终使用此密钥库种子以及随机密钥材料为将要创建或打开的文件生成加密密钥(即在授权进程读取数据之前解密数据)。然而,密钥材料可以为了将要创建的文件而随机生成或者从将要打开的文件读取;对于每个文件,密钥材料可能不同(以及可以为每个文件而生成,或者为每个文件而被随机选择)。
例如,考虑可以由微软SQL服务器访问的加密文件。通常,微软SQL服务器创建和/或访问有限数量的文件,每个文件都非常大。在这样的场景中,一个加密密钥可能足够安全来加密所有由微软SQL服务器访问的文件。每当微软SQL服务器将数据写入文件时,数据保护模块可以使用加密密钥缓存中的单个加密密钥,在数据被写入文件系统之前加密数据。同样,每当微软SQL服务器尝试从文件中读取数据时,数据保护模块可以使用加密密钥缓存中相同的加密密钥,在微软SQL服务器读取数据之前解密数据。
本文描述的实施方式还可以包含加密密钥生成和缓存技术。一般来说,在计算机系统中,文件缓存是指用于存储数据文件中的数据的易失性存储器的已定义部分。当进程最初访问数据文件时,来自数据文件的一些数据可以存储在文件缓存中。随后,当其他进程打开所述文件的文件句柄并从所述文件中读取数据时,数据可以直接从文件缓存中复制,在这种情况下,不需要发送读取请求到文件系统。类似地,当其他进程打开所述文件的文件句柄并将数据写入所述文件时,数据可直接复制到文件缓存,在这种情况下,不需要发送写入请求到文件系统。如果数据已经被改变且尚未写入计算机系统的非易失性存储器(例如硬盘),则称文件缓存中的数据是“脏的”。定期或按需,可以发出系统请求以将脏数据从文件缓存刷新到非易失性存储器。在此描述的数据访问管理系统的实施方式中,加密数据文件的文件缓存管理可以更复杂,因为某些进程可能被授权访问加密数据文件的明文,而其他进程可能只是被授权访问加密数据文件的密文。因此,这里描述的实施方式可以监视存储在缓存中的数据以确保不允许请求进程访问未经授权的文件缓存中数据。
数据保护模块可以跟踪各个数据文件的打开的文件句柄。如果进程在获得数据文件的文件句柄后尚未关闭所述文件句柄,则该进程被称为持有所述数据文件的打开的文件句柄。数据保护模块可以分别跟踪由授权访问加密数据文件的明文的进程所持有的文件句柄和由授权仅访问加密数据文件的密文的进程所持有的文件句柄。例如,为了跟踪加密数据文件的打开的文件句柄,数据保护模块可以为所述数据文件分配一对文件缓存计数器。
如果某个进程持有文件的至少一个打开的文件句柄,则可以为该文件分配一对文件缓存计数器。第一缓存计数器可以跟踪由授权访问加密数据文件的明文的进程所持有的该文件的打开的文件句柄的数量。第二个缓存计数器可以跟踪由授权访问加密数据文件的密文的进程所持有的该文件的打开的文件句柄的数量。用于跟踪打开的文件句柄的数据结构的示例性实施方式,可以构造为在唯一文件标识符和对应于该文件的文件缓存计数器的一对整数之间的哈希映射。在某些情况下,当分配给加密数据文件的两计数器的值之和从0增加到1,数据保护模块可以向系统发出请求以清除文件的所有脏数据到非易失性存储器,然后清除存储在文件缓存中的该文件的所有数据。
响应于来自进程的加密数据文件的文件句柄请求,数据保护模块可以确定该进程是否被授权访问加密数据文件的明文或加密数据文件的密文。数据保护模块也可以确定对该文件是否有任何打开的文件句柄。如果有,数据保护模块可以确定持有打开的文件句柄的一个进程或多个进程的授权级别。如果授权级别与请求进程的授权级别相同,则请求进程可以根据其授权级别访问加密数据文件。
在某些情况下,如果请求进程的授权级别不同于持有打开的文件句柄的一个进程或多个进程的授权级别,该请求进程可能被拒绝访问数据文件。例如,如果请求进程被授权访问文件的明文,但文件句柄由仅被授权访问密文的第一进程所持有,请求进程可能会被拒绝访问所请求的文件。这可能会阻止第一进程访问文件的明文,如果所述明文真的被加载到缓存中。类似地,如果请求进程仅被授权访问文件的密文,但是文件句柄由被授权访问明文的第一进程所持有,请求进程可能会被拒绝访问所请求的文件。
在某些情况下,数据保护模块可以生成所请求的加密数据文件的卷影副本。在某些情况下,数据保护模块可以为存储在计算机系统上的每个加密数据文件生成卷影副本(例如,当存在足够的存储空间时)。响应于获取加密数据文件的文件句柄的请求,数据保护模块可以向请求进程提供加密数据文件的文件句柄,如果所述进程有权访问文件的明文;如果进程仅被授权访问文件的密文文本内容(反之亦然),向请求进程提供卷影副本的文件句柄,如果所述进程仅被授权访问文件的密文。(反之亦然。)这可以确保被授权访问文件的明文文本内容的进程和被授权仅仅访问文件的密文文本内容的进程始终可以访问文件的不同副本,因此可以访问文件缓存中的不同数据。该数据保护模块可以按照定期、按需或响应于对文件的操作(如写入操作)的方式来同步加密数据文件及其卷影副本,以确保加密数据文件及其卷影副本保持相同。
参考图1所示,图1中示出了系统100的一示例实施方式,其可用于管理对多个数据文件的访问。系统100是一示例的系统,可以对加密数据进行基于进程的访问监管。系统100可以作为计算机系统的一部分实现,包括处理器、易失性存储器和非易失性存储器,例如存储组件103。系统100可以包括图1中未示出的各种其他组件,例如网络接口、如键盘或触控板的输入设备、以及如显示器和扬声器输出设备。
在一些实施方式中,系统100可以实现对数据文件的访问管理,所述数据文件存储在一个或多个服务器的存储组件103上或者终端用户计算机的存储组件103上。物理存储器103可以指一个或多个使用各种形式的存储介质来存储文件的存储模块,例如硬盘、网络磁盘、USB驱动器、CD驱动器、SD卡等等。
一般来说,系统100可以管理对由用户生成的受保护的数据文件的访问,所述受保护的数据文件与来自内核的受保护的代码形成对比。也就是说,这里所提到的受保护的数据文件(和加密的数据文件)对应于受保护的用户生成的数据,而不是用于执行内核操作的系统文件。
在某些情况下,受保护的数据文件可以始终以加密格式被存储在存储组件103中。也就是说,每当受保护的数据文件是长期存储的,它可能采用加密格式被存储。当被授权进程访问时,受保护的数据文件的明文文本仅临时存储在系统100的易失性存储器中,例如在文件缓存中。一旦明文文本内容不再被授权的进程访问,受保护的数据文件明文文本内容就可以从缓存中清除。这可以最小化受保护的数据文件的明文文本可用时间。
系统100可以被配置为防止数据泄露和/或已知或未知的攻击,如网络钓鱼和勒索软件攻击。系统100还可以与各种类型的服务器系统集成,如SharePoint、Exchange、SQL、Perforce、网络服务器等,以便透明地管理对加密和受保护的数据的访问。在其他情况下,系统100可以在端点计算机上管理对文件系统级别的数据文件的访问。
一般来说,计算机系统的内核120包括加载到受保护的内存区域中的关键代码。这些关键代码用于资源管理,如内存和CPU,用于设备管理,如硬盘文件管理和系统调用管理。
数据保护模块,此处(图1)显示为内核级文件系统过滤器102,可以集成到文件管理系统中,该文件管理系统管理存储在物理存储组件103中的数据文件。例如,数据保护模块可以作为插件安装到内核120中。过滤器102可以接收和处理来自所有用户模式应用程序101A-101D的所有用户模式进程的文件访问请求,并执行进程身份验证和授权等功能。
计算机系统中的用户空间110通常指的是不在内核中的所有进程。这些进程对系统资源的访问可能有限。具体地,所有用户模式进程可能被要求向内核发出系统调用才能访问系统资源,例如文件读/写。
每个应用程序101可以具有相应的进程,该相应的进程在系统100中具有不同的授权级别。例如,对应于应用程序101A的进程可以被授权访问特定加密数据文件的明文,对应于应用程序10B的进程可以被授权仅访问特定加密数据文件的密文,以及与应用程序101C相对应的进程可以未被授权访问特定加密数据文件。
在某些情况下,特定应用程序101A的授权级别(及其相应的进程)可能取决于正在被请求的文件。例如,与Windows Word应用程序对应的进程可以被授权访问.doc文件的明文,与Acrobat Reader/Writer应用程序对应的进程可能被授权访问.pdf文件的明文,与Notepad应用程序对应的进程可以被授权访问文本文件的明文,对应于Virtual Studio应用程序的进程可能被授权访问C/C++文件的明文,等等。
第二类进程的示例包括文件同步应用程序101B,如Dropbox、OneDrive、GoogleDrive等。为了防止加密数据文件的明文内容传输到云端,这些文件同步应用程序101B仅被授权访问受保护的数据文件的密文文本内容,如此只有加密数据文件的密文才会同步到云端。
第三类进程(对应于应用程序101C)可以包括被阻止访问任何加密数据文件的所有进程。这些可能包括尚未经过终端用户检查的进程或尚未经过服务器系统管理员检查的进程。
在一些实施方式中,用户模式过滤器配套应用101D可以用来提供让终端用户配置内核级文件系统过滤器102的方法。当使用系统100在端点计算机上提供数据保护时,这可能特别有用。附加地或替代地,用户模式过滤器配套应用101D可以与文件系统过滤器102通信以记录文件访问信息数据,以便对数据使用监控和治理。
在这种情况下,可以在用户模式过滤器配套应用101D和内核级别文件系统过滤器102之间建立通信信道。文件系统过滤器102可以收集/报告诸如过程被拒绝访问加密数据文件之类的信息,并把信息返回至应用程序101D;如果需要,应用程序101D又可以提供接口,让终端用户更改进程的访问权限。在这样的实施方式中,当应用程序101D用于配置文件系统过滤器102时,应用程序101D可能不需要被授权访问任何受保护的文件,因为应用程序101D可能不需要访问来自任何加密数据文件的数据。
在使用系统100对服务器计算机上的数据进行保护的一些实施方式中,文件系统过滤器102可以配置固定的配置图。因此,用户模式过滤器配套应用101D可能不需要,并可以省掉。
在服务器计算机中,内核级文件系统过滤器102可以根据服务信息预先配置,例如哪些进程被授权访问特定的加密数据文件。例如,当在公共网络主机上部署网络服务时,网站开发人员可以实现系统100来保护php源代码。在这种情况下,网络服务器可以调用php解释器来执行php代码。因此,php解释器可以授予访问所有加密的php文件的明码文本内容的权限,而所有其他进程可以被拒绝访问任何加密的PHP文件。这个配置可以由网络开发人员预定义并硬编码到内核级文件系统过滤器102。
参考图2所示,图2示出了用于根据示例实施方式管理访问多个数据文件的示例方法200的流程图。方法200是管理访问存储在计算机系统(例如系统100)中的一个或多个存储模块上的数据文件的方法一个示例。
方法200的步骤可以使用安装在计算机系统100上的数据保护模块102来实现。即,数据保护模块102可以配置计算机系统100的处理器来执行方法200中描述的步骤。
在步骤210处,数据保护模块可以识别存储在至少一个存储模块上的数据文件中的多个受保护的数据文件。存储在(一个或多个)存储模块上的数据文件可以包括受保护的数据文件和未受保护的数据文件。每个受保护的数据文件可以以加密数据格式存储在(一个或多个)存储模块上。这可以防止受保护的数据文件中的数据被泄密,除非使用适当的解密密钥对其解密。在某些情况下,数据保护模块最初可以通过识别存储在计算机系统中的加密数据文件来识别受保护的数据文件。数据保护模块还可以基于识别要保护的特定数据文件的用户输入来识别受保护的数据文件。
在步骤220处,数据保护模块可以将每个受保护的数据文件关联一个受保护文件标识符。数据保护模块随后可以使用受保护文件标识符将受保护的数据文件与未受保护的数据文件区分开来。
在某些情况下,受保护文件标识符可能是文件存储位置的形式。例如,数据保护模块可以将受保护的文件和受保护文件标识符关联,方法是将受保护的数据文件存储在与受保护的文件区域相对应的预定义文件目录区域内的文件位置中。
在其他情况下,通过修改与受保护的数据文件相关联的数据,受保护文件标识符可以与受保护的数据文件关联。例如,受保护文件标识符可以是附加到受保护的数据文件的受保护文件扩展名。附加地或替代地,受保护文件标识符可以嵌入到文件头数据中和/或被包括在与受保护的数据文件关联的文件属性内。
在步骤230处,可以接收来自运行在计算机系统上的请求进程实例的文件访问请求。一般来说,请求进程可以是除内核模式进程之外的进程,例如用户模式进程。数据保护模块可以在文件访问请求被执行之前接收文件访问请求,例如,拦截所有用户模式的文件访问请求。文件访问请求可以包括与特定数据文件对应的标识信息,该特定数据文件的数据内容由请求进程请求。
在步骤240处,数据保护模块可以使用文件识别信息识别特定的数据文件。数据保护模块还可以确定特定数据文件是受保护的数据文件还是不受保护的数据文件。例如,数据保护模块可以通过识别相关联的受保护文件标识符来标识受保护的数据文件。
在步骤250处,数据保护模块可以确定请求进程实例的授权级别。授权级别可以指示允许请求进程对所请求的文件的访问级别(例如,没有访问,密码访问或明文访问)。
数据保护模块可以通过访问存储在计算机系统中的配置图来确定授权级别。该配置图可以为多个进程定义授权级别,这些进程可能包括与请求进程实例相对应的进程。在某些情况下,配置图上可能不包括相应的进程(或者可能没有指定给特定文件的授权级别)。这可能表示请求进程实例没有被授权访问所请求的文件。
配置图可以基于进程本身的特征定义进程的授权级别。也就是说,进程实例的授权级别是基于其相应进程(例如,而不是访问进程的特定用户)的授权等级而确定的。
配置图可以定义为包括具有(一般的或针对特定数据文件的)明文授权等级的第一组进程和具有(一般的或针对特定数据文件的)密文授权级别的第二组进程。在某些情况下,配置图可以包括第三组进程,其授权级别指示不提供访问权限(一般的或针对特定数据文件的)。替代地,第三组进程可以从配置图中省略,可以将此省略用于确定应该拒绝的访问。
在某些情况下,配置图可以在接收文件访问请求之前被固定。这在企业或基于服务器实现中可能是理想的,其中,多个终端用户的进程可能会从相同数据文件请求数据。
或者,配置图可以由数据保护模块修改。数据保护模块可以确定(即,配置图最初可以定义)与请求进程实例对应的进程的初始授权级别。如果初始授权级别指示拒绝访问,则数据保护模块可以通过安装在计算机系统上的用户配套应用向用户显示拒绝通知。用户然后可以通过用户应用程序提供输入,修改相应进程的授权级别。数据保护模块可以通过修改输入更新配置图。
在某些情况下,数据保护模块可以在提供对所请求的数据的访问之前验证请求进程实例。例如,配置图可以包括程序的数字签名,所述程序应该与请求进程实例对应。数据保护模块可以访问该数字签名信息以确保请求进程实例是可信的。
在某些情况下,数据保护模块也可以确定请求进程实例中是否存在额外特洛伊木马指令。数据保护模块还可以通过确定该请求进程实例包含与已知的应用程序不对应的附加进程指令来实现这一点。如果检测到特洛伊木马指令,数据保护模块可以修改授权级别。这可能会拒绝原已经授权的进程访问所请求的数据。这可以阻止特洛伊木马指附带上授权给真实进程的访问权限。
在步骤260处,可以根据在步骤250处所确定的相应进程的授权级别,向请求进程实例提供对所请求的数据文件的访问级别。
例如,数据保护模块可以确定相应的进程具有所请求的数据文件的明文授权级别。通过解密特定数据文件来提供解密后的数据文件,然后临时存储解密后的数据文件到计算机系统缓存,可以向请求进程实例提供数据文件的明文访问。然后,请求进程实例可以访问缓存中的解密数据。
在某些情况下,相应进程的授权级别可以被确定为密文授权级别。然后可以向请求进程实例提供对特定数据文件的加密格式访问。
在某些情况下,如果相应的进程未经授权,向请求进程实例提供的访问级别可能包括拒绝访问所请求的数据文件。例如,对于特定数据文件,相应进程的授权级别可以被确定为既不是明文授权级别也不是密文授权级别。向请求进程实例提供对特定数据文件的访问级别,可以包括拒绝请求进程实例访问特定数据文件。
在某些情况下,数据保护模块也可以确定请求进程实例的授权类型。例如,配置图可以定义一个或多个进程的授权类型。授权类型可以定义允许请求进程对所请求的数据文件执行一个或多个文件操作(例如,读、写入、读/写)。向请求进程实例提供所请求的数据文件的访问,可以包括允许请求进程实例执行与确定的授权类型相关的文件操作,并阻止请求进程实例执行授权类型之外的操作。
在某些情况下,受保护的数据文件可能只采用加密格式存储在系统内。也就是说,受保护的数据文件可能只是在计算机系统缓存中临时解密。一旦获得授权的进程不再需要访问解密的数据文件,数据保护模块可以从缓存中清除解密数据以防止越权访问。
在某些情况下,数据保护模块可以接收特定数据文件的第二文件访问请求。在向第一请求进程提供对特定数据文件的第一级访问的同时,来自运行在计算机系统上的第二进程的第二文件访问请求可以被接受。数据保护模块然后可以以类似于第一进程的方式确定第二进程的授权级别。
在某些情况下,如果数据保护模块确定第二进程的授权级别与提供给第一进程的访问级别不同,则可以拒绝第二进程对特定数据文件的访问。
在其他情况下,如果数据保护模块确定第二进程的授权级别与提供给第一进程的访问级别不同,数据保护模块可以生成被请求的特定数据文件的副本。然后,数据保护模块可以向第二进程提供对数据文件副本的相应的访问级别。
参考图3所示,其中示出了用于管理从存储在系统100上的数据文件中读取数据的请求的示例方法300。使用数据保护模块102,方法300可以被实现为,例如,方法200的实现的子进程。
在步骤302处,接收来自具有相应进程ID的请求进程P的读请求。所述读请求还包括文件识别信息,使数据保护模块能够识别正在被请求的数据文件F(例如,通过识别数据文件的文件路径)。该数据保护模块还可以从正在被进程P所请求的文件F中识别所请求的数据D。如附图3所示,请求进程P可以是当前在计算机系统中运行的任何进程,而所请求的文件F可以是存储在计算机系统100中的存储模块103上的任何数据文件。
一般来说,取决于进程P的授权级别,以及文件F是否是受保护的数据文件,方法300的输出可以是一个有效的数据缓冲区(包含目标文件的明文内容或目标文件的密文文本内容)或一个访问拒绝(及可能的拒绝用户指示)。
在步骤304处,数据保护模块可以确定所请求的文件是否是受保护的数据文件。在某些情况下,数据保护模块可以根据文件路径来确定所请求的文件是否受到保护。当所有加密的数据文件存储在一个已知的“受保护”的目录位置时,情况就是这样。因此,可以通过确定所请求的文件的文件路径位于“受保护”目录位置中来识别受保护的文件。
附加地或替代地,数据保护模块可以识别对与所请求的文件相关联的数据的修改。例如,可以将受保护的文件扩展名附加到每个受保护的数据文件中,并用于标识受保护的数据文件。
附加地或替代地,受保护的令牌可以存储在文件头中,也可以存储于在文件系统中与受保护文件相伴的任何边数据。数据保护模块可以识别受保护令牌的存在,以确定所请求的文件是受保护的文件。在一些实施例中,特别是当所有受保护的文件先前已经被识别时,数据保护模块可以存储所有受保护文件的文件路径。数据保护模块然后可以使用所请求的文件的文件路径来确定它是否是受保护的文件。
如果确定所请求的文件是受保护的文件(即,当F处于“保护区”内时),则方法300继续执行步骤306。在步骤306处,数据保护模块可以通过访问配置图330来确定请求进程是否是被授权访问所请求文件的明文内容。如果请求进程被授权,则数据保护模块可以在步骤308处解密文件F,并向请求进程返回所请求数据的明文内容。
为了解密所请求的文件,数据保护模块可以使用示例加密密钥生成方法,例如本文(以及美国专利申请第15/178,680号)中描述的方法,以获得文件加密密钥并解密文件。然后,通过数据缓冲区D将所获得的明文内容返回给调用进程。
如上所述,在一些实施方式中文件加密密钥可以被缓存。因此,当打开加密数据文件时,加密密钥的生成方法可以只使用一次,以获取加密密钥,所述加密密钥可以多次用于文件读取操作。这可以方便对同一数据文件的多次读取操作。
如果数据保护模块在步骤306处确定该请求进程未被授权访问明文内容,方法可以执行到310。在步骤310处,数据保护模块可以通过访问配置图330确定请求进程是否被授权访问所请求文件的密文文本内容。如果请求进程被授权访问密文文本,数据保护模块可以在步骤312处将文件F中所请求的数据以加密格式返回给请求进程。
如果数据保护模块在步骤310处确定该请求进程无权访问密文文本内容,方法可以在步骤314处拒绝请求进程访问所请求的文件。在某些情况下(例如,在使用用户端配套应用程序的情况下),数据保护模块可以向用户提供请求进程被拒绝访问的指示。在某些情况下,用户可能被允许使用用户端配套应用程序来修改请求进程的授权级别。
这可以使配置图能够通过数据保护模块和用户模式过滤器配套应用之间的通道实时或即时更新。在其他情况下,配置图可以是固定的和硬编码的,例如,当系统中所有要被授权访问加密数据的程序是已知的时候。
在某些情况下,在确定请求进程的授权级别之前,数据保护模块可以对请求进程进行身份验证以确保它没有被任何恶意指令(如特洛伊木马)破坏。首先请求进程P可以通过本实施例中描述的进程认证过程进行标识,例如,使用可以存储在配置图中的真实进程的数字签名。一旦请求进程经过身份验证,数据保护模块可以确定该进程的授权级别。如果确定该进程不是真实的,或包含木马指令,则可以修改其授权级别以拒绝访问所请求的数据。
在某些情况下,如果请求的文件不是受保护的文件(即F不在保护区内),数据保护模块可以向请求进程返回请求的文件内容。然而,在某些情况下,例如当确定请求进程被授权访问其他受保护文件的明文时(如在步骤318处),如果不受保护的文件不包含恶意代码,数据保护模块可以在向请求进程提供(在步骤324处)未受保护文件的访问之前分析未受保护的文件(如在步骤320处)。这可能会阻止请求进程被破坏,例如可能是通过包含在未受保护的文件中的特洛伊木马程序被破坏。例如,数据保护模块在步骤322处拒绝请求进程访问所请求的文件,如果那个请求进程被授权访问加密数据的明文内容并且数据保护模块在步骤320处确定所请求的文件是一个包含特洛伊木马代码的未加密数据文件。
本领域技术人员应当理解的是,方法300中所示步骤的顺序可以在不同的实施方式中变化。例如,确定请求进程的授权级别可以发生在确定所请求的文件是否是受保护的文件之前。一般来说,数据保护模块可以评估两个标准测(进程授权级别和文件保护状态),并管理这些准测的各种组合。方法300是使用这些准测管理数据访问的方法的一个示例。
参考图4所示,其中示出了用于管理来自进程P的把数据D写入所请求文件F的请求的示例方法400。方法400是可以由系统100中的数据保护模块102来实现的过程的示例。
在步骤402处,可以接收来自请求进程的把数据写入所请求的文件的请求。该请求可以包括所请求的文件的文件识别信息。在步骤404处,数据保护模块可以确定所请求的文件是否是受保护的文件。一般来说,方法400可以按照类似于上文描述的方法200和300的方式确定所请求的文件是否是受保护的文件。如果文件不受保护,那么方法400可以进行执行到步骤418,在步骤418中允许该进程将数据写入到不受保护的文件。然后可以将更新后的文件提供给请求进程。
按照与上文所述的相同方式,例如,参考方法200和300,方法400还可以对读写操作执行进程认证和授权。如同方法300,方法400可以在步骤406处使用配置图330来确定请求进程是否被授权访问受保护的数据文件的明文文本内容。
如果该进程被授权明文访问,则该数据保护模块可以允许对来自进程中的数据进行加密,并将其作为存储在存储组件103上的受保护文件的一部分,以密文形式存储。如果该进程未被授权进行明文访问,但是在步骤410处被确定授权进行密文访问,数据保护模块可以在步骤412处允许请求进程以密文形式接收文件,并且将数据写入所述密文形式的文件。如果该进程也未被授权进行密文访问,数据保护模块可以在步骤414处拒绝访问并且可以在步骤416处提供拒绝访问的指示。
换句话说,授权进程访问文件的明文内容可以导致该进程的读取和写入操作都是用明文格式的数据执行(该进程可以从读取操作中获取明文,并送出明文用于写入)。与此相反,授权进程仅访问文件的密文文本内容可以导致该进程的读取和写入操作都是用密文格式的数据执行(该进程可以从读取操作获得密文文本,并送出密文文本以供写入)。
方法400与方法300的不同之处在于,在步骤402处来自进程P的数据D将被写入数据文件F,而在方法300中,数据D将要从文件F中读取并返回给进程P。在某些情况下,方法400中的数据D可以已经是加密格式,例如,当P是被授权访问加密数据文件的密文文本内容的进程,并且通过读取加密数据文件来获取D。一个示例可以是同步一些加密数据文件的云应用程序。在这种情况下,来自云应用程序的数据D可以是加密格式,可以直接被写入磁盘。
当被授权访问明文内容的进程请求写入受保护的数据文件时,数据保护模块可以使用本文描述的各种用于为现有加密数据文件(如果文件已存在)生成加密密钥的方法,或用于为新创建的加密数据文件(如果文件没有已经存在)生成加密密钥的方法。得到的密钥可以用于加密来自进程P的输入数据D,所生成的密文文本可以被写入物理存储模块103中的文件F内。
在某些情况下,为了提高文件的写入效率,可以按照上文的描述缓存文件加密密钥。因此,当加密数据文件被打开或新创建时,加密密钥生成方法可以仅被使用一次,以获取加密密钥,所述加密密钥可以重复用于写操作。
数据保护模块还可以实现上文所述的加密文件缓存管理方法,以管理缓存冲突和潜在的缓存冲突。例如,当被授权访问受保护文件的明文内容的进程访问该加密数据文件时,该文件的明文内容可以存储在文件缓存中。或者,当被授权访问受保护文件的密文文本内容的进程访问该加密数据文件时,文件缓存可以用加密数据文件的密文文本内容填充。因此,缓存管理技术(例如,使用计数器和/或卷影副本)可用于管理和防止未经授权的进程访问与加密数据文件相关的数据。
在某些情况下,数据保护模块可以通过双层设计实现。例如,包括加密文件管理、进程认证和授权以及授权进程的特洛伊木马检测在内的基于进程的访问监管系统,可以在第一上层实现,同时包括加密密钥生成和缓存以及加密文件缓存管理在内的加密和解密功能,可以在顶层下面的第二较低层上实现。
此外,本领域技术人员应当理解的是,在特定数据保护模块中实现的功能组合可能取决于一些因素,诸如,将要加密和受保护的数据文件的类型、将要按各种授权级别授权的进程的类型、计算机系统的类型,例如服务器计算机或终端电脑等等。
例如,数据保护模块可以被配置为保护存储在服务器计算机上的特定文件子集(多个受保护文件),并且只允许某些进程访问这些受保护的文件。参考附图5所示,其中示出了方法500的示例,该方法500可以由数据保护模块来实现,以保护存储在服务器计算机上的数据文件。例如,为了保护服务器计算机上的脚本代码文件,可以实现方法500,以提供源代码保护。在向公共主机或不受信任的主机上部署使用脚本语言的服务的时候,可以提供这样的实现;在这种情况下保护脚本源代码文件是期待的。
在某些情况下,数据保护模块可能只处理文件读取操作,因为受保护的文件可能已经事前加密,而且当服务器系统使用它们时不需要被更改。因此,可能不需要数据保护模块来管理文件写入操作。
附加地或替代地,要授权的进程可能已经事先确定,并且可能不需要与任何用户模式过滤器配套应用进行通信,或者报告一些拒绝访问或者更新配置图。也就是说,配置图可能是固定的。
数据保护模块可以响应在步骤502处接收的每个文件访问请求。例如,该请求可以包括进程ID P、文件F的文件识别信息,其包括相应的文件路径,和数据缓冲器D,其后者作为自数据保护模块响应请求进程时的一个可能输出。
在步骤504处,数据保护模块可以确定所请求的文件F是否是受保护的数据文件。在用于保护脚本源代码文件的示例系统中,所有文件都可以加密并存储在固定的目录中。因此,数据保护模块可以通过确定所请求的文件是否存储在这个固定的目录中确定所请求的文件是受保护的文件。在另一种情况下,加密数据文件可能存储在不同的位置,但文件的数量很少,另一种检测文件F是否是受保护文件的方法可以是把所有源代码文件的固定文件路径硬编码到数据保护模块的一个列表中,然后确定F是否在列表中。
如果所请求的文件是受保护的文件,并且保护数据模块在步骤506处确定请求进程被授权访问明文内容,则数据保护模块可以在步骤508处解密文件F,并将明文内容返回给请求进程。如果请求进程无权访问所请求文件的明文文本内容,数据保护模块可以在步骤510处拒绝访问所请求的文件。
当请求的文件F不是受保护的数据文件时,如果在步骤512处确定请求进程已经被授权访问加密数据文件的明文文本内容,则数据保护模块可以在步骤514处进行特洛伊木马检测。如果在步骤514处检测到特洛伊木马指令,可以在步骤516处拒绝访问未受保护的文件。如果没有检测到特洛伊木马和/或请求进程未被授权访问加密数据文件的明文内容,则数据保护模块可以允许请求进程访问未受保护的文件。
在脚本源代码文件保护系统的实施方式中,只有脚本解释器可以被授权访问任何加密数据文件的明文内容。因此,可以在数据保护模块中硬编码解释程序路径及其数字签名,以便于进程认证和授权。
如上述实施方式所述的特洛伊木马检测方法可以应用于防止授权进程P执行任何未加密的脚本代码,从而使得不能使用此类脚本代码滥用进程P的授权级别来破坏受保护的文件的明文内容。在这种情况下,所有合法的脚本代码文件都可以被加密并被存储为受保护的文件。然后,数据保护模块可以防止解释器访问任何其他脚本代码文件,以防止执行可能会危害加密数据文件的安全的有害的脚本代码。
另一示例实现可以是保护这样的存储在服务器计算机上的数据,例如SQL数据。例如,用于SQL文件保护系统的实现可能包括以下功能:
数据保护模块可以管理加密数据文件的文件写操作,以便修改和重新加密SQL文件。因此,可以使用现有的加密数据文件的加密密钥生成方法和新创建的加密数据文件的加密密钥生成方法。
数据保护模块还可以保护已定义的目录位置中的所有受保护文件。这可能很容易,因为在SQL服务器中,通常指定一个特点位置来存储SQL数据文件。
数据保护模块还可以硬编码进程认证和授权数据,只授权两个进程访问数据文件的明文内容,即,SQL进程访问明文内容和备份服务进程访问明文内容。由于文件缓存中可能存在明文和密文文本之间的切换,因此可以使用本文所述的加密文件缓存管理方法。如果进程认证和授权数据是硬编码的,则可以固定配置图,因此无需包含更新配置图的功能。尽管如此,仍然可以包括数据保护模块和用户模式过滤器配套应用之间的通道以用来报告拒绝访问事件。这可能有助于在日志文件中的记录非法尝试,以便于对数据使用进行监视和审计。
本领域技术人员应当理解,类似于上面的系统可以用于保护共享点服务器、Perforce服务器、邮件服务器(如Exchange)等上的数据。在这些服务器中,可以授权特定进程访问一些特定数据文件的明文内容。因此,可以使用类似于此处针对SQL服务器所描述的实现。
如本文所述的用于终端计算机数据保护系统的示例实现可包括以下内容功能:
数据保护模块可以实现加密数据文件的文件读取管理和文件写入管理方法。因此,可以使用现有的加密数据文件的加密密钥生成方法和新创建的加密数据文件的加密密钥生成方法。
数据保护模块还可以允许终端用户将其受保护的文件存储在任何位置,而不是限制在某些特定文件夹中。然后,数据保护模块可以生成目录树来识别受保护的数据文件。
数据保护模块可以允许用户更新和/或修改配置图。例如,可以提供数据保护模块和用户模式过滤器配套应用程序之间的双工信道以允许终端用户更改配置图。
数据保护模块在一个时刻可允许一个进程访问加密数据文件的明文内容,而在另一时刻允许另一个进程访问此加密数据文件的密文文本内容。因此,数据保护模块可以使用上述的加密文件缓存管理方法管理文件缓存。例如,终端用户可能具有在云应用程序(例如Dropbox,GoogleDrive或OneDrive)中的加密数据文件。对于那些加密的数据文件,可以授权云应用程序访问密文,以便于云应用程序可以将加密的数据文件以加密方式同步到云端中。明文内容授权可以授予其他应用程序,例如用于本地处理这些类型文件的应用程序(例如,pdf文件的Acrobat),以便于终端用户可以像往常一样与这些文件进行交互。
本文描述的实施方式可以实现为使用基于进程的加密数据访问监管来提供数据保护的系统、方法、设备和计算机程序产品。
本文已经描述了用于数据保护的方法的各种实施方式。这些包括加密文件管理、进程身份验证和授权、授权进程的木马检测、加密密钥生成和缓存、以及加密文件缓存管理。基于这些方法,描述了一些基于进程的加密数据监管系统,用于数据保护防止数据泄露和已知或未知的攻击,包括针对服务器系统或计算机的勒索软件或网络钓鱼攻击。
本文描述了许多示例实施方式。然而,本领域技术人员应当理解的是,在不脱离本发明的范围的情况下,可以对权利要求所限定的实施方式进行变化和修改。

Claims (28)

1.一种通过安装在计算机系统上的数据保护模块管理访问多个数据文件的方法,所述多个数据文件存储在所述计算机系统中的至少一个存储模块上,所述方法包括:
所述数据保护模块识别存储在所述至少一个存储模块上的所述多个数据文件中的多个受保护的数据文件,其中存储在所述至少一个存储模块上的所述多个数据文件包括所述多个受保护的数据文件和多个未受保护的数据文件,并且其中所述多个受保护的数据文件中的每个受保护的数据文件以加密格式存储在所述至少一个存储模块中;
将存储在所述至少一个存储模块上的每个受保护的数据文件关联一个受保护文件标识符;
所述数据保护模块接收来自运行在计算机系统上的请求进程实例的文件访问请求,其中文件访问请求包括与所述多个数据文件中的预定数据文件相对应的文件识别信息;
所述数据保护模块从所述文件识别信息中识别出预定数据文件;
所述数据保护模块通过识别关联的受保护文件标识符确定所述预定数据文件为受保护的数据文件之一;
所述数据保护模块根据对应进程的进程授权级别确定请求进程实例的授权级别,所述对应进程的进程授权级别由通过访问存储在所述至少一个存储模块上的定义多个进程的授权级别的配置图确定;
所述数据保护模块对请求进程实例进行认证,其中,所述对请求进程实例进行认证包括判断请求进程实例是否为与应用程序对应且未被修改的进程实例;以及
根据确定的请求进程实例的授权级别向请求进程实例提供预定数据文件的访问级别,其中对预定数据文件的访问级别仅授予经过认证的请求进程实例;
在向请求进程实例提供访问级别之前,通过以下方式验证请求进程实例:
确定与所述对应进程相关的应用程序;
确定请求进程实例包括与已知应用程序不对应的附加进程指令;以及
修改所确定的授权级别,以便向请求进程实例提供预定数据文件的访问级别包括拒绝请求进程实例访问预定数据文件。
2.根据权利要求1所述的方法,其中,所述配置图用于根据具有明文授权级别的多个进程定义第一组进程,以及用于根据具有密文授权级别的多个进程定义第二组进程。
3.根据权利要求1或2所述的方法,其中,
将预定数据文件的对应进程的进程授权级别确定为明文授权级别;以及向请求进程实例提供预定数据文件的访问级别包括:
解密预定数据文件获得已解密数据文件;
将所述已解密数据文件暂存至计算机系统的缓存中;以及
向请求进程实例提供对所述已解密数据文件的明文访问。
4.根据权利要求1或2所述的方法,其中,
将预定数据文件对应进程的进程授权级别确定为密文授权级别;以及
向请求进程实例提供预定数据文件的访问级别包括向请求进程实例提供对预定数据文件的加密格式访问。
5.根据权利要求1或2所述的方法,其中,
将预定数据文件对应进程的进程授权级别确定为既非明文授权级别也非密文授权级别;以及
向请求进程实例提供预定数据文件的访问级别包括拒绝请求进程实例访问预定数据文件。
6.根据权利要求1或2所述的方法,其中,对于至少一个受保护的数据文件中的每一个,
将受保护的数据文件关联受保护文件标识符包括将受保护的数据文件存储在所述至少一个存储模块上的预定义文件目录区的文件位置中;以及
所述受保护的数据文件的受保护文件标识符为预定义文件目录区。
7.根据权利要求1或2所述的方法,其中,对于至少一个受保护的数据文件中的每一个,
将受保护的数据文件关联受保护文件标识符包括修改与加密数据文件相关的数据以包含受保护文件标识符。
8.根据权利要求2所述的方法,其中,所述配置图通过以下方式定义:
识别允许访问明文格式文件的第一种多个应用程序;
将与第一种多个应用程序对应的多个进程中的进程定义为第一组进程;
识别允许访问密文格式文件的第二种多个应用程序;以及
将与第二种多个应用程序对应的多个进程中的进程定义为第二组进程。
9.根据权利要求2或8所述的方法,其中,在接收文件访问请求之前,固定所述配置图。
10.根据权利要求2或8所述的方法,进一步包括:
所述数据保护模块通过访问所述配置图确定对应进程的初始进程授权级别,其中,所述初始进程授权级别拒绝对应进程访问预定数据文件;
通过安装在计算机系统上的用户应用程序显示拒绝通知;
通过用户应用程序接收修改输入以响应所述拒绝通知;以及
所述数据保护模块基于修改输入,更新所述配置图,以改变对应进程的初始进程授权级别。
11.根据权利要求1、2和8中任意一项所述的方法,进一步包括:
所述数据保护模块通过访问配置图获得的对应进程的进程授权类型确定请求进程实例的授权类型,所述授权类型用于定义请求进程实例允许执行的至少一个文件操作;
其中向请求进程实例提供预定数据文件的访问级别包括允许请求进程实例对预定数据文件执行与已确定的授权类型一致的操作并且阻止请求进程执行授权类型之外的操作。
12.根据权利要求1、2和8中任意一项所述的方法,进一步包括:
所述数据保护模块接收来自运行在计算机系统上的第二进程实例的第二文件访问请求,同时请求进程实例具有对预定数据文件的访问级别,其中所述第二文件访问请求包括与预定数据文件对应的文件识别信息;
确定与第二进程实例对应的进程的授权级别不同于向与请求进程实例对应的进程提供的访问级别;以及
拒绝第二进程实例访问预定数据文件。
13.根据权利要求1、2和8中任意一项所述的方法,进一步包括:
所述数据保护模块接收来自运行在计算机系统上的第二进程实例的第二文件访问请求,同时请求进程实例具有对预定数据文件的访问级别,其中所述第二文件访问请求包括与预定数据文件对应的文件识别信息;
确定与第二进程实例对应的进程的授权级别不同于向与请求进程实例对应的进程提供的访问级别;
生成预定数据文件的副本;以及
向第二进程实例提供预定数据文件的副本的第二访问级别。
14.一种用于管理访问多个数据文件的系统,所述系统包括:
处理器;
与所述处理器连接的至少一个存储模块,所述至少一个存储模块存储数据保护模块和所述多个数据文件;
其中,所述数据保护模块将处理器配置为:
识别存储在所述至少一个存储模块上的所述多个数据文件中的多个受保护的数据文件,其中存储在所述至少一个存储模块上的所述多个数据文件包括所述多个受保护的数据文件和多个未受保护的数据文件,并且其中所述多个受保护的数据文件中的每个受保护的数据文件以加密格式存储在所述至少一个存储模块中;
将存储在所述至少一个存储模块上的每个受保护的数据文件关联一个受保护文件标识符;
拦截来自运行在处理器上的请求进程实例的文件访问请求,其中,所述文件访问请求包括与所述多个数据文件中的预定数据文件对应的文件识别信息;
从所述文件识别信息中识别出预定数据文件;
通过识别关联的受保护文件标识符确定所述预定数据文件为受保护的数据文件之一;
根据对应进程的进程授权级别确定请求进程实例的授权级别,所述对应进程的进程授权级别由通过访问存储在所述至少一个存储模块上的定义多个进程的授权级别的配置图确定;
所述数据保护模块对请求进程实例进行认证,其中,所述对请求进程实例进行认证包括判断请求进程实例是否为与应用程序对应且未被修改的进程实例;以及
根据确定的请求进程实例的授权级别向请求进程实例提供预定数据文件的访问级别,其中对预定数据文件的访问级别仅授予经过认证的请求进程实例;
所述处理器被所述数据保护模块配置成为,在向请求进程实例提供访问级别之前,通过以下方式验证请求进程实例:
确定与对应进程相关的应用程序;
确定请求进程实例包括与已知应用程序不对应的附加进程指令;以及
修改所确定的授权级别,以便向请求进程实例提供预定数据文件的访问级别包括拒绝请求进程实例访问预定数据文件。
15.根据权利要求14所述的系统,其中,所述配置图用于根据具有明文授权级别的多个进程定义第一组进程,以及用于根据具有密文授权级别的多个进程定义第二组进程。
16.根据权利要求14或15所述的系统,其中:
将预定数据文件的对应进程的进程授权级别确定为明文授权级别;以及
所述处理器被所述数据保护模块配置成为通过以下方式向请求进程实例提供预定数据文件的访问级别:
解密预定数据文件获得已解密数据文件;
将所述已解密数据文件暂存至计算机系统的缓存中;以及
向请求进程实例提供对所述已解密数据文件的明文访问。
17.根据权利要求14或15所述的系统,其中:
将预定数据文件对应进程的进程授权级别确定为密文授权级别;以及
所述处理器被所述数据保护模块配置成为通过向请求进程实例提供对预定数据文件的加密格式访问来向请求进程实例提供预定数据文件的访问级别。
18.根据权利要求14或15所述的系统,其中:
将预定数据文件对应进程的进程授权级别确定为既非明文授权级别也非密文授权级别;以及
所述处理器被所述数据保护模块配置成为通过拒绝请求进程实例访问预定数据文件来向请求进程实例提供预定数据文件的访问级别。
19.根据权利要求14或15所述的系统,其中,对于至少一个受保护数据文件中的每一个,所述处理器被所述数据保护模块配置成为:
通过把受保护的数据文件存储在所述至少一个存储模块上的预定义文件目录区的文件位置中,将受保护的数据文件关联受保护文件标识符;
其中所述受保护数据文件的受保护文件标识符为预定义文件目录区。
20.根据权利要求14或15所述的系统,其中,对于至少一个受保护数据文件中的每一个,所述处理器被所述数据保护模块配置成为:
通过修改与加密数据文件相关的数据以包含受保护文件标识符,将受保护的数据文件关联受保护文件标识符。
21.根据权利要求15所述的系统,其中,所述处理器被所述数据保护模块配置成为通过以下方式定义配置图:
识别允许访问明文格式文件的第一种多个应用程序;
将与第一种多个应用程序对应的多个进程中的进程定义为第一组进程;
识别允许访问密文格式文件的第二种多个应用程序;以及
将与第二种多个应用程序对应的多个进程中的进程定义为第二组进程。
22.根据权利要求15或21所述的系统,其中,在接收文件访问请求之前,固定所述配置图。
23.根据权利要求15或21所述的系统,其中,所述处理器被所述数据保护模块配置成为:
通过访问所述配置图确定对应进程的初始进程授权级别,其中,所述初始进程授权级别拒绝对应进程访问预定数据文件;
通过安装在计算机系统上的用户应用程序显示拒绝通知;
通过用户应用程序接收修改输入以响应所述拒绝通知;以及
基于修改输入,更新所述配置图,以改变对应进程的初始进程授权级别。
24.根据权利要求14、15和21中任意一项所述的系统,其中,所述处理器被所述数据保护模块配置成为:
通过访问配置图获得的对应进程的进程授权类型确定请求进程实例的授权类型,所述授权类型用于定义请求进程实例允许执行的至少一个文件操作;以及
通过允许请求进程实例对预定数据文件执行与已确定的授权类型一致的操作并且阻止请求进程执行授权类型之外的操作来向请求进程实例提供预定数据文件的访问级别。
25.根据权利要求14、15和21中任意一项所述的系统,其中,所述处理器被所述数据保护模块配置成为:
接收来自运行在计算机系统上的第二进程实例的第二文件访问请求,同时请求进程实例具有对预定数据文件的访问级别,其中所述第二文件访问请求包括与预定数据文件对应的文件识别信息;
确定与第二进程实例对应的进程的授权级别不同于向与请求进程实例对应的进程提供的访问级别;以及
拒绝第二进程实例访问预定数据文件。
26.根据权利要求14、15和21中任意一项所述的系统,其中,所述处理器被所述数据保护模块配置成为:
接收来自运行在计算机系统上的第二进程实例的第二文件访问请求,同时请求进程实例具有对预定数据文件的访问级别,其中所述第二文件访问请求包括与预定数据文件对应的文件识别信息;
确定与第二进程实例对应的进程的授权级别不同于向与请求进程实例对应的进程提供的访问级别;
生成预定数据文件的副本;以及
向第二进程实例提供预定数据文件的副本的第二访问级别。
27.一种用于管理访问存储在计算机系统中的至少一个存储模块上的多个数据文件的装置,所述装置包括存储有计算机可执行指令的非暂时性计算机可读介质,该指令用于配置处理器以执行:
识别存储在所述至少一个存储模块上的所述多个数据文件中的多个受保护的数据文件,其中存储在所述至少一个存储模块上的所述多个数据文件包括所述多个受保护的数据文件和多个未受保护的数据文件,并且其中所述多个受保护的数据文件中的每个受保护的数据文件以加密格式存储在所述至少一个存储模块中;
将存储在所述至少一个存储模块上的每个受保护的数据文件关联一个受保护文件标识符;
接收来自运行在计算机系统上的请求进程实例的文件访问请求,其中文件访问请求包括与所述多个数据文件中的预定数据文件相对应的文件识别信息;
从所述文件识别信息中识别出预定数据文件;
通过识别关联的受保护文件标识符确定所述预定数据文件为受保护的数据文件之一;
根据对应进程的进程授权级别确定请求进程实例的授权级别,所述对应进程的进程授权级别由通过访问存储在所述至少一个存储模块上的定义多个进程的授权级别的配置图确定;
数据保护模块对请求进程实例进行认证,其中,所述对请求进程实例进行认证包括判断请求进程实例是否为与应用程序对应且未被修改的进程实例;以及
根据确定的请求进程实例的授权级别向请求进程实例提供预定数据文件的访问级别,其中对预定数据文件的访问级别仅授予经过认证的请求进程实例;
在向请求进程实例提供访问级别之前,通过以下方式验证请求进程实例:
确定与所述对应进程相关的应用程序;
确定请求进程实例包括与已知应用程序不对应的附加进程指令;以及
修改所确定的授权级别,以便向请求进程实例提供预定数据文件的访问级别包括拒绝请求进程实例访问预定数据文件。
28.根据权利要求27所述的装置,其中,进一步包括用于配置处理器以执行权利要求2至13中任意一项所述的方法的指令。
CN201780062120.6A 2016-10-11 2017-10-10 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品 Active CN109923548B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662406482P 2016-10-11 2016-10-11
US62/406482 2016-10-11
PCT/CA2017/051202 WO2018068133A1 (en) 2016-10-11 2017-10-10 Methods, systems and computer program products for data protection by policing processes accessing encrypted data

Publications (2)

Publication Number Publication Date
CN109923548A CN109923548A (zh) 2019-06-21
CN109923548B true CN109923548B (zh) 2022-06-10

Family

ID=61830153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780062120.6A Active CN109923548B (zh) 2016-10-11 2017-10-10 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品

Country Status (3)

Country Link
US (1) US11528142B2 (zh)
CN (1) CN109923548B (zh)
WO (1) WO2018068133A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592470B2 (en) * 2016-08-10 2020-03-17 Microsoft Technology Licensing, Llc Discovery of calling application for control of file hydration behavior
US10262135B1 (en) * 2016-12-13 2019-04-16 Symantec Corporation Systems and methods for detecting and addressing suspicious file restore activities
US10289844B2 (en) 2017-01-19 2019-05-14 International Business Machines Corporation Protecting backup files from malware
US10503904B1 (en) * 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
JP6700337B2 (ja) * 2018-05-30 2020-05-27 日本電信電話株式会社 保護装置及び保護方法
US10204236B1 (en) 2018-05-30 2019-02-12 Drfirst.Com, Inc. Self-consistent structures for secure transmission and temporary storage of sensitive data
US10635825B2 (en) * 2018-07-11 2020-04-28 International Business Machines Corporation Data privacy awareness in workload provisioning
JP7195796B2 (ja) * 2018-07-23 2022-12-26 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
US11080416B2 (en) 2018-10-08 2021-08-03 Microsoft Technology Licensing, Llc Protecting selected disks on a computer system
US11151273B2 (en) * 2018-10-08 2021-10-19 Microsoft Technology Licensing, Llc Controlling installation of unauthorized drivers on a computer system
US11087012B2 (en) 2018-10-22 2021-08-10 Cibecs International Ltd. Data protection system and method
CN110059499A (zh) * 2019-03-22 2019-07-26 华为技术有限公司 一种文件访问权限认证方法及电子设备
US11218307B1 (en) 2019-04-24 2022-01-04 Wells Fargo Bank, N.A. Systems and methods for generation of the last obfuscated secret using a seed
CN110457870A (zh) * 2019-08-01 2019-11-15 浙江大华技术股份有限公司 可执行文件的处理方法及装置、嵌入式设备和存储介质
CN114365128A (zh) * 2019-09-09 2022-04-15 百可德罗德公司 用于数据自保护的方法和系统
CN111865891B (zh) * 2019-12-31 2023-08-15 北京嘀嘀无限科技发展有限公司 一种数据传输方法、用户端、电子设备及可读存储介质
CN113382029B (zh) * 2020-03-10 2024-09-06 阿里巴巴集团控股有限公司 文件数据处理方法及装置
CN111756698B (zh) * 2020-05-27 2022-11-18 浪潮电子信息产业股份有限公司 一种消息传递方法、装置、设备和计算机可读存储介质
US11513941B2 (en) 2020-09-02 2022-11-29 Ge Aviation Systems Llc Systems and method for flexible write- and read-access of a regulated system
CN112187750B (zh) * 2020-09-17 2022-09-20 深圳小步奔跑科技有限公司 一种基于互联网的信息加密方法及系统
CN112579107A (zh) * 2020-12-24 2021-03-30 深圳须弥云图空间科技有限公司 数据的隐藏及调用方法、装置、电子设备、可读存储介质
WO2022208045A1 (en) * 2021-03-31 2022-10-06 Sophos Limited Encrypted cache protection
US11929992B2 (en) * 2021-03-31 2024-03-12 Sophos Limited Encrypted cache protection
CN113111398A (zh) * 2021-04-19 2021-07-13 龙应斌 一种防止被非法窃取的数据安全存储方法和装置
CN113312650B (zh) * 2021-06-23 2023-07-04 中国农业银行股份有限公司 交易日志隐私保护方法及装置
CN113656248B (zh) * 2021-08-17 2024-08-13 江南造船(集团)有限责任公司 Pdm系统文件上传进程监控捕获方法、系统、介质及装置
CN114201233B (zh) * 2021-11-18 2024-07-16 成都网思科平科技有限公司 一种基于快照参照的减少进程模块加载数据存储的方法
US11336685B1 (en) * 2021-12-22 2022-05-17 Nasuni Corporation Cloud-native global file system with rapid ransomware recovery
TWI805438B (zh) * 2022-07-08 2023-06-11 中華電信股份有限公司 電子文件的存取權限的管理系統和管理方法
CN116522369B (zh) * 2023-07-03 2023-09-19 湖南马栏山视频先进技术研究院有限公司 一种数据保护方法和数据围栏系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104680075A (zh) * 2013-11-27 2015-06-03 通用汽车环球科技运作有限责任公司 用于来自高级别应用程序许可的细粒度访问控制的框架

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699428A (en) * 1996-01-16 1997-12-16 Symantec Corporation System for automatic decryption of file data on a per-use basis and automatic re-encryption within context of multi-threaded operating system under which applications run in real-time
US20010044901A1 (en) 1998-03-24 2001-11-22 Symantec Corporation Bubble-protected system for automatic decryption of file data on a per-use basis and automatic re-encryption
JP2007041631A (ja) 2005-07-29 2007-02-15 Fujitsu Ltd 情報処理装置、アプリケーション起動制御プログラムおよびアプリケーション起動制御方法
US8171310B2 (en) * 2007-12-24 2012-05-01 Sandisk Technologies Inc. File system filter authentication
US20110035783A1 (en) 2008-03-03 2011-02-10 Hiroshi Terasaki Confidential information leak prevention system and confidential information leak prevention method
US8683554B2 (en) * 2009-03-27 2014-03-25 Wavemarket, Inc. System and method for managing third party application program access to user information via a native application program interface (API)
US20110213971A1 (en) * 2010-03-01 2011-09-01 Nokia Corporation Method and apparatus for providing rights management at file system level
US9306737B2 (en) * 2011-05-18 2016-04-05 Citrix Systems, Inc. Systems and methods for secure handling of data
EP2710500B1 (en) 2011-05-20 2019-09-18 Citrix Systems Inc. Providing multiple layers of security to file storage by an external storage provider
US9594921B2 (en) * 2012-03-02 2017-03-14 International Business Machines Corporation System and method to provide server control for access to mobile client data
US20140281519A1 (en) * 2013-03-12 2014-09-18 Commvault Systems, Inc. Encrypted file backup
US9703979B1 (en) 2014-06-13 2017-07-11 BicDroid Inc. Methods and computer program products for encryption key generation and management
US9825945B2 (en) 2014-09-09 2017-11-21 Microsoft Technology Licensing, Llc Preserving data protection with policy
US10073791B2 (en) * 2015-03-25 2018-09-11 Vera Securing files
US20170185790A1 (en) * 2015-12-23 2017-06-29 ThinAir Labs, Inc. Dynamic management of protected file access

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104680075A (zh) * 2013-11-27 2015-06-03 通用汽车环球科技运作有限责任公司 用于来自高级别应用程序许可的细粒度访问控制的框架

Also Published As

Publication number Publication date
US20180102902A1 (en) 2018-04-12
WO2018068133A1 (en) 2018-04-19
CN109923548A (zh) 2019-06-21
US11528142B2 (en) 2022-12-13

Similar Documents

Publication Publication Date Title
CN109923548B (zh) 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品
JP7545419B2 (ja) 統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減
US11947688B2 (en) Secure computing system
US10162975B2 (en) Secure computing system
US9075984B2 (en) Secure system for allowing the execution of authorized computer program code
CN112513857A (zh) 可信执行环境中的个性化密码安全访问控制
US7712135B2 (en) Pre-emptive anti-virus protection of computing systems
US10037429B1 (en) Copy protection for secured files
KR20190063264A (ko) 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
JP2002318719A (ja) 高信頼計算機システム
US10164980B1 (en) Method and apparatus for sharing data from a secured environment
WU et al. A survey on cloud security
Seltzer Securing your private keys as best practice for code signing certificates
US11841970B1 (en) Systems and methods for preventing information leakage
Yang et al. A Design of Code Protection Scheme Based on the Combination of OPTEE and Encrypted File System
van Dijk et al. Using Sensitive Information on Android 6 Based Smartphones

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