CN109643281A - 数据加密和解密的系统和方法 - Google Patents
数据加密和解密的系统和方法 Download PDFInfo
- Publication number
- CN109643281A CN109643281A CN201780016728.5A CN201780016728A CN109643281A CN 109643281 A CN109643281 A CN 109643281A CN 201780016728 A CN201780016728 A CN 201780016728A CN 109643281 A CN109643281 A CN 109643281A
- Authority
- CN
- China
- Prior art keywords
- equipment
- data
- group
- encryption
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/32—User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
-
- 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/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/32—Cryptographic 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/3226—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
Abstract
一种示例方法包括:在确认一个设备连接到第二计算设备时做出响应,访问虚拟存储区域,所述虚拟存储区域对应于所述第二计算设备上的存储空间;在检测到第二计算设备用户的第一个请求时做出响应,第一个请求是读取第一组存储在虚拟存储区域中数据,将第一组数据发送到所述设备;解密第一组数据以产生第一组解密数据;将第一组解密数据从所述设备发送到第二计算设备;检测第二计算设备用户的第二个请求,第二个请求为将第二组数据写入虚拟存储区域;在检测到第二个请求时做出响应;将第二组数据发送到所述设备;加密第二组数据以产生第二组加密数据;将第二组加密数据从所述设备传输到第二计算设备。
Description
相关申请的交叉引用
本申请要求2016年3月11日提交的美国临时专利申请序列号为62/307,208的权益。上述专利申请在此整体引用纳入。
技术领域
本公开涉及加密和解密设备。
背景技术
对数据安全性的需求已随着时间增长。特别是当敏感数据存储在移动设备上的时候。例如,用户可以在她的智能手机上存储私人照片或聊天记录。另一个例子,企业主管可能会在她的笔记本电脑上存储敏感的企业邮件
然而,确保数据安全的困难比比皆是。由于以下原因,在移动设备上安装加密软件应用程序来加密移动设备上的数据并不是理想方案。首先,加密和解密软件程序占用其他应用程序的CPU时间和其他计算资源。其次,由于其计算成本高昂的特性,加密和解密软件程序甚至不能在某些移动设备上执行,例如,智能手机或平板电脑,与台式计算机或计算服务器相比,它们通常配备较低的计算能力。本公开中的系统和方法可以减少或消除上述技术问题带来的影响。
附图说明
图1-3是加密和解密系统和设备示例的示意图。
图4是加密和解密设备以及主机模块示例的示意图。
图5A-5D和图6-7是数据加密和解密方法示例的流程图。
图8和图9加密和解密系统示例的示意图。
图10A-10C是对存储在移动设备上的数据加密和解密方法示例的流程图。
图11-12是使用小工具来加密存储在移动设备上的数据的方法示例的流程图。
图13是使用无线网络进行数据加密和解密的方法示例的流程图。
图14是加密和解密设备示例的示意图。
图15A-15C是数据加密和解密方法示例的流程图。
图16是加密和解密系统示例的示意图。
图17是加密和解密服务器计算机示例的示意图。
图18和19A-19D是客户端主机与加密和解密服务器之间交互示例的流程图。
图20是涉及客户端主机和加密和解密服务器数据访问监视操作示例的流程图。
图21是安装在移动用户设备上的加密和解密应用示例的示意图。
图22是安装在移动用户设备上的加密和解密应用与安装在移动用户设备上的其他应用之间的交互示例的示意图。
通过参考下面的详细描述可以最好地理解本公开的实施例及其优点。需要注意的是,相同的附图标记用于表示在一个或多个附图中示出的相似组成部分;其中的示图用于阐明本公开的实施例,而不是限制本公开。
详细描述
本公开提供独立于主机以外的数据加密和解密的系统和方法。本公开中描述的技术可以提供以下技术优点。首先,主机不需要将大量的计算资源转移到数据加密和解密活动中去。其次,数据加密和解密活动受主机限制较少,例如,不需要在主机上安装重量级加密和解密软件的许可。第三,用户数据以加密格式存储在主机上,与其他小工具相比,主机通常配备有更多的存储空间。第四,数据安全性得到增强,因为甚至主机的超级用户(例如系统管理员)可能也无法访问存储在主机上的数据。第五,数据加密和加密对于访问数据的用户来说可以是透明的,从而减少用户管理和控制数据安全性所需的努力。其他具体实施方式细节结合附图具体阐述。
图1是基于一些具体实施方式的加密和解密系统示例的示意图。在一些具体实施方式中,具有自己的专用CPU和存储器的移动计算设备(在本公开中也称为小工具)可以通过有线或无线连接来连接到主机上(例如笔记本电脑)。当用户想要将数据写入主机时,数据被传送给小工具并由其加密;该小工具然后将加密的数据发送回主机进行存储。当用户想要读取先前由小工具加密并存储在主机上的数据时,加密数据被传送到小工具并由其解密;该小工具然后将解密的数据发送回主机以供用户访问。在一些具体实施方式中,小工具包括配备有适当处理能力和存储器的智能手机。在另一些具体实施方式中,主计算机(在本公开中也被称为主机)包括台式计算机,笔记本电脑,智能手机或平板电脑。在一些具体实施方式中,小工具和主机之间的连接是无线连接,例如无线USB连接,Wi-Fi连接,蓝牙连接和NFC连接。在其它具体实施方式中,小工具与主机之间的连接则是有线连接,例如USB连接,串行电缆连接,并行电缆连接,HDMI连接,以太网电缆连接,数据电缆连接以及电力电缆连接。
图2是基于一些具体实施方式的加密和解密系统示例的示意图。如图2所示,主机10可以是台式或笔记本电脑。小工具(例如,数据加密和解密设备)可以是能够通过USB连接连接到主机的USB设备20或30。
小工具20或30(例如,具有或不具有专用CPU的USB装置)可包括用于存储加密和解密软件程序的非暂时性存储介质。运行在小工具上的软件程序可以(1)允许用户指定主机10或小工具20或30上的存储空间用于存储加密的用户数据,以及(2)认证用户对指定存储空间的访问。
图3是加密和解密设备300示例的示意图。设备300在一些具体实施方式中包括一个或多个处理单元CPU100(也称为处理器),一个或多个网络接口,一个用户接口,一个存储器120,以及用于互连这些组件的一个或多个通信总线110。通信总线110可选择地包括电路(有时称为芯片组),通信总线连接并控制系统组件之间的通信。存储器120通常包括高速随机存取存储器,诸如DRAM,SRAM,DDR RAM或其他随机存取固态存储设备;并且可选择地包括非易失性存储器130,诸如一个或多个磁盘存储设备,光盘存储设备,闪存设备或其他非易失性固态存储设备。存储器120可选择地包括一个或多个远离CPU 100的存储设备。存储器120,或存储器120内的非易失性存储设备,包括非暂时性计算机可读存储介质。在一些具体实施方式中,存储器120或者非暂时性计算机可读存储介质存储以下程序,模块和数据结构,或其子集:
●操作系统(例如嵌入式Linux操作系统),包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
●虚拟CD(VCD)模块105,用于仿真主机上的磁盘驱动器;
●网络通信模块(或指令),用于经由一个或多个网络接口(有线或无线)连接设备300与其他设备(例如主机);
●用户界面模块,用于向用户显示用户界面的组件或控件(例如,文本框,按钮,单选按钮,下拉列表)
●USB从属设备控制器140用于控制设备300的各种功能(例如,数据存储和访问),例如,当设备300与主设备连接时;
●USB主控制器150,用于访问存储在外部USB设备上的数据(例如,不同于设备300的设备);和
●Wi-Fi控制器160(在本公开中也被称为Wi-Fi直连控制器)用于建立两个设备(例如,图1中的设备300和主机10)直接和对等的Wi-Fi连接,而不需要无线路由器。
设备300的操作系统可以被编程为:在检测到到与主机连接170时,将设备300作为给主机提供以太网和大容量存储接口的USB多功能复合小工具设备。例如,VCD模块105可以包括“usbnet”驱动程序和MICROSOFT远程网络驱动程序接口规范(RNDIS)驱动程序用以连接运行LINUX操作系统和WINDOWS操作系统的主机。在一些具体实施方式中,设备300的大容量存储接口可以实现USB大容量存储设备协议,使主机可以将该设备识别为虚拟SCSI磁盘驱动器。
图4是加密和解密设备以及主机模块示例的示意图。在一些具体实施方式中,主机包括用于互连这些组件的一个或多个处理单元CPU(也称为处理器),一个或多个网络接口,一个用户接口,一个存储器以及一个或多个用于连接这些组件的通信总线。通信总线可选择地包括电路(有时称为芯片组),通信总线连接并控制系统组件之间的通信。存储器通常包括高速随机存取存储器,例如DRAM,SRAM,DDR RAM或其他随机存取固态存储器设备;并且可选地包括非易失性存储器,诸如一个或多个磁盘存储设备,光盘存储设备,闪存设备或其他非易失性固态存储设备。存储器可选择地包括一个或多个远离CPU的存储设备。存储器或者存储器内的非易失性存储器设备包括非暂时性计算机可读存储介质。在一些具体实施方式中,存储器或者非暂时性计算机可读存储介质存储以下程序,模块和数据结构或其子集:
●操作系统(例如MICROSOFT WINDOWS操作系统),其包括用于处理各种基本系统服务和用于执行依赖于硬件的任务的程序;
●主机USB大容量存储驱动程序200,用于使主机能够访问USB存储设备或其仿真(例如,由小工具模拟的SCSI磁盘驱动器)
●主机网络块设备(NBD)服务器210,用于使小工具经由TCP/IP连接来访问主机上的存储空间;和
●用户界面模块,用于向用户呈现信息(例如,提示用户将文件存储在特定磁盘驱动器上的弹出窗口。
用于附加或是替代图3的所述内容,存储器或者小工具的非暂时性计算机可读存储介质还可以存储以下程序,模块和数据结构或其子集:
●外围USB大容量存储驱动程序300,用于执行USB协议操作,提供从属端USB存储设备功能,并且通过USB连接使用SCSI协议与主机USB大容量存储驱动程序200(在主机上运行)进行通信;
●加密设备映射器310(例如,LINUX内核驱动程序),用于加密/解密从主机接收的数据;和
●网络块设备(NBD)客户端320(例如,LINUX内核模块)用于将小工具请求(例如使用TCP/IP)转发到NBD服务器210,用来在小工具和主机之间传输数据。
一个或多个上述组件可以被存储在一个或多个之陈述的储器设备中,并且对应于用于执行上述功能的一组指令。以上识别的模块或程序(例如指令集)不需要被实施为单独的软件程序,过程或模块,因此这些模块的各种子集可以在各种具体实施方式中被组合或以其他方式重新布置。在一些具体实施方式中,存储器可选择地存储以上标识的模块和数据结构的子集。此外,存储器可以存储上面未描述的附加模块和数据结构。
这些技术使得主机能够访问其本地存储设备,就好像它们是由小工具提供的USB驱动器一样。例如,用户可以在台式电脑的硬盘驱动器上创建分区“E”,并使用分区E存储加密文件。
在连接到主机时,小工具可以在主机上创建虚拟USB驱动器,例如驱动器F,其用作分区E的密码通道。当用户将数据写入密码卷时,写入操作针对驱动器F执行,数据在写入分区E之前在小工具上加密。当用户从加密卷读取数据时,读取操作针对驱动器F执行,数据从分区E读取,由小工具解密并提供给主机。
当用户直接访问分区E时,用户可能被告知分区E尚未被格式化并因此不能被访问(例如,读取或写入)-尽管分区E实际上已被格式化,文件系统信息已被加密。从用户的角度来看,虚拟USB驱动器F是分区E的未加密版本,应该是文件操作的目标存储分区。
尽管图3和图4分别示出了“小工具”和“主机”,但图3和图4更多地作为可能存在于计算机系统中的各种特征的功能描述,而不是作为具体实施方式的结构示意图在此描述。在实践中,本领域普通技术人员可以认识到,单独示出的组件可以被组合,并且一些组件可以被分开。
图5A-5D是小工具与主机之间的数据加密和解密方法示例的流程图。在图5A中,主机被开启(401),并且在使用不同于主机的电源时,小工具可以单独开启(501)。
小工具可以插入(502)到主机的USB端口中。该小工具可以以其他方式连接到主机,例如通过Wi-Fi连接。在开机之后,小工具可以从其非暂时性存储器存储介质设备130加载LINUX OS,并执行系统初始化脚本以创建(504)虚拟驱动器(例如,虚拟CD驱动器)。虚拟驱动器可以存储用于主机10的软件应用程序和配置程序。
小工具可以使用小工具的存储器的一部分(例如,图2中示出的RAM 120)来实例化虚拟CD驱动器,并且使虚拟CD驱动器作为CD驱动器出现在主机上。作为实例的一部分,小工具可以将一个或多个文件复制到虚拟CD驱动器,例如主机客户端程序和主机usbnet网络接口配置程序。该小工具可以使用系统初始化脚本来创建虚拟CD驱动器,该系统初始化脚本包括以下编程指令中的一个或多个:
#dd if=/dev/zero of=/root/vcd_file bs=1M count=64
#mkdosfs/root/vcd_file
#mount-o loop/root/vcd_file/mnt
#cp<non-volatile-memory>/host_client.exe/mnt
#cp<non-volatile-memory>/config_host_usbnet.exe/mnt
#umount/mnt
#modprobe g_multi file=/root/vcd_file
“modprobe”命令可加载LINUX内核g_multi模块并实现USB多功能复合小工具,其中一个大容量存储设备是虚拟CD驱动器。虚拟光驱备份在“vcd_file”文件中,该文件存储在小工具的RAM中。
作为初始化的一部分,小工具可以在没有用户干预的情况下自动引导客户端程序在主机上执行(在本公开中也被称为主客户端程序)。例如,小工具可以执行主机客户端程序(例如,“host_client.exe”文件)和网络接口配置程序(例如,“config_host_usbnet.exe”文件),用以在与小工具usbnet网络接口相同的网络中(例如专用网络),向主机usbnet网络接口分配一个静态IP地址。在其他具体实施方式中,用户可以手动执行主机客户端程序。类似地,小工具可以执行和维护服务器程序(在本公开中也被称为小工具服务器程序)通过专用IP网络中的TCP连接与主客户端程序交互。
主机客户端程序可以请求用户(1)选择主机计算机存储器的一部分用于转换成密码存储卷,并且(2)提供用于访问加密数据的用户密码短语(例如,密码)。主机客户端程序可以使用本地或远程存储器(或其一部分)来创建主机可访问的密码存储卷,如物理磁盘驱动器,逻辑分区,卷或云存储。例如,如图1所示,连接到主机10的USB驱动器30可以被转换成密码卷。在一些具体实施方式中,可以配置两个或更多个不同的主机存储空间以产生单个密码卷;在其他具体实施方式中,主机可以包括从不同的主机存储空间创建的两个或更多个不同的密码卷。
小工具服务器程序可以通过对比用户提供的密码和先前接受的用户密码来认证用户。在一些具体实施方式中,下列验证方式可以作为密码验证的附加或者替代,通过例如指纹比较,用户手势比较或语音比较等生物测量比较来认证用户。
一旦认证成功,小工具可以通过配置(505)小工具服务器程序和主客户端程序之间的专用网络来建立与主机的数据连接。在一些具体实施方式中,为了建立小工具与主机之间的连接,小工具使用例如LINUX实用程序“ifconfig usb0<gadget_IP_addr>”来配置(505)本地usbnet网络接口与静态IP地址,其中gadget_IP_addr是由小工具服务器程序和主客户端程序先前同意的专用网络。
一旦建立了小工具服务器程序和主客户端程序之间的连接,存储在虚拟CD驱动器上的数据可以供主机访问。主机可以可选择地显示(402)可访问的虚拟CD驱动器,例如显示表示虚拟CD驱动器的图标。主机可以包括两个或更多个密码设备。在一些具体实施方式中,每个密码设备都具有主客户端程序的对应实例;主机客户端的多个实例可以同时连接到单个小工具服务器。
如上所述,尽管小工具和主机之间的物理连接可以通过USB端口,但小工具和主机之间的数据连接可以是IP连接。因此,小工具和主机之间的连接也称为IP-over-USB链接。
使用IP-over-USB链接,主机客户端可以请求(406)与小工具服务器TCP连接。小工具服务器接受(508)TCP连接请求。一旦检测到主机和小工具之间建立TCP连接,主机客户端可以可选择地请求(407)用户为存储设备提供名称(例如,“驱动器F”)。主机客户端可以创建(408)用于访问指定的存储设备的网络块设备(NBD)服务器线程。NBD服务器是一种软件程序,用于通过网络与远程LINUX系统在主机上共享文件系统或磁盘分区的映像。
这些技术可以使小工具能够访问主机的存储空间(例如,目录,逻辑分区和物理盘),就好像存储空间是由小工具提供的一样。这些技术在本公开中也被称为存储仿真。
一旦创建了NBD服务器线程,主机客户端程序就可以将NBD服务器的TCP端口号发送(409)到小工具服务器并等待来自小工具服务器的响应。响应可以包括主机存储设备的加密头文件信息,该信息可指示设备是否先前已被转换为密码卷。
小工具服务器接收(509)主机NBD服务器TCP端口号并开始运行(510)NBD客户端程序,用以建立小工具和主机存储空间之间的数据传输。以下编程指令示例将启动一个连接到NBD服务器的NBD客户端实例,该实例使用主机的TCP端口号9000,小工具上的本地块设备名称为/dev/nbd0
#nbd-client<host_IP_address>9000/dev/nbd0.
通过NBD服务器-客户端连接,小工具服务器可以从主机存储空间(511)指示主机存储空间是否已经被加密的信息。在一些具体实施方式中,小工具服务器检索所选主机存储空间的前两个扇区,当主机存储空间已经是加密卷时,这两个扇区则包含LINUX统一密钥设置(LUKS)头文件。LUKS为磁盘加密指定了与平台无关的标准磁盘格式。
LUKS头文件可以指示存储空间是否已被加密。小工具服务器可以向主机客户端发送(512)指示所选主机存储空间是否已经被加密的信息(例如,LUKS头文件)。
基于所选主机空间是否已经被加密(410),主机客户端可以采取不同的行动。在一些具体实施方式中,响应于确定所选主机空间未被加密,主机客户端可提示(412)用户加密所选主机存储空间并提供用于未来用户认证的密码以访问加密存储空间。在一些具体实施方式中,加密存储空间可能导致存储空间上的数据被删除。
可选择地,主机客户端可以例如通过提供密码重置问题的答案来请求用户启用密码重置功能。主机客户端然后将密码和可选地密码重置信息传送(414)到小工具服务器。
如果所选主机存储空间未被加密,则在接收到用户提供的密码短语时,小工具服务器对所选主机存储空间进行加密(516)。以下示例编程指令可以在NBD块设备上设置LUKS设备头文件,并使用默认加密选项(例如默认加密算法)对主密钥进行加密:
#cryptsetup-y luksFormat/dev/nbd0.
小工具服务器可以通过将加密空间与USB从设备接口相关联(518)来准备提供主机访问的加密主机存储空间,这使得用户对小工具(例如USB驱动器)的访问将被重新定向到加密空间。
在一些具体实施方式中,加密空间与USB从属设备接口相关联通过将设备/dev/mapper/<crypted_container_name>添加到USB大容量存储设备的列表下的Linux内核USB
g_multi模块中来完成。响应于确定所选主机空间被加密,主机客户端可以认证用户访问所选主机空间。例如,主机客户端可以请求用户提供密码并请求小工具服务器根据密码对用户进行认证。在成功认证(例如,密码匹配)之后,小工具服务器可以提供(517)用于用户访问加密存储空间。以下示例编程指令可以对用户进行身份验证,并为用户提供对加密存储空间的访问权限:
/dev/mapper/<crypted_container_name>.
这些指令可以进一步创建映射到本地NBD设备的dm-crypt设备/dev/nbd0来连接到主机的存储设备:
#cryptsetup luksOpen/dev/nbd0<crypted_container_name>
主机客户端可以在主机上显示(415)USB驱动器图标以指示加密存储空间可供用户访问。主机的用户可以在虚拟驱动器(例如,虚拟USB驱动器)上执行各种文件操作,例如磁盘格式化,文件创建,编辑,复制和移除。写入虚拟USB驱动器的数据被加密,并且从虚拟USB驱动器读取的数据被自动解密。
值得注意的是与使用在主机上运行的软件应用程序来加密/解密数据相反,上述技术使用小工具-不仅与主机分离且具有自己的专用计算资源的设备-来加密/解密数据。这些技术至少有以下几个优点:首先,LINUX内核支持的任何加密密码都可用于数据加密和解密,包括自定义加密库。其次,加密和解密操作可以通过小工具进行计算处理,减少了从主机计算资源的需求。
当用户断开(417)虚拟驱动器时,小工具关闭虚拟驱动器。例如,当用户“弹出”虚拟USB驱动器时,小工具上的LINUX USB大容量存储小工具驱动程序接收“弹出”命令并关闭(520)供用户访问的主机存储空间,例如使用以下编程指令:
#cryptsetup luksClose<crypted_container_name>.
小工具服务器可以与NBD服务器断开连接并终止运行(418),例如使用以下编程指令:
#nbd-client-d/dev/nbd0.
图6是用于加密数据的示例方法的流程图。当主机向虚拟磁盘驱动器写入(430)(例如,使用SCSI WRITE命令)数据时,主机通过例如IP-over-USB链接将明文(例如,未加密的文字)数据发送到小工具。
在工具上运行的LINUX USB大容量存储小工具驱动程序可以接收(530)明文数据。LINUX内核加密驱动程序可以加密(540)明文数据,并将写入命令和加密数据传递给Linux内核NBD客户端线程。NBD客户端线程根据主机的IP地址和NBD服务器的TCP端口号,将写入命令和加密数据转发(550)到在主机上运行的NBD服务器。在从小工具接收到写入命令和加密数据之后,在主机上运行的NBD服务器可以将加密数据写入(440)到相应的主机存储空间。
图7是解密数据方法示例的流程图。当主机从虚拟磁盘驱动器读取(450)(例如,使用SCSI READ命令)数据时,读取请求被转发到在小工具(560)上运行的LINUX USB大容量存储小工具驱动程序。基于主机的IP地址和NBD服务器的TCP端口号,NBD客户端线程可以进一步将读取命令转发(570)到在主机上运行的NBD服务器。在收到读取读命令后,NBD服务器可以从加密的主机存储空间读取指定的数据。然后,NBD服务器可以将数据(如加密的数据)返回(470)到在小工具上运行的NBD客户端。在小工具上运行的内核加密驱动程序可以解密(580)数据,并且Linux USB大容量存储小工具驱动程序可以将明文格式的数据传输(590)回到主机,然后主机可以提供明文数据到相应的用户应用程序。
图8是加密和解密系统示例的示意图。参照图5A-5D和图6-7,类似加密和解密技术可以应用于图8所示的系统。在一些具体实施方式中,小工具50经由USB电缆45连接到智能手机40;小工具50同时连接到可移除的USB闪存驱动器60上。智能手机40可以作为主机;小工具50可以加密存储在智能手机40上的文件并将加密的文件存储在USB闪存驱动器60上。智能手机40的用户可以以明文格式查看或下载存储在USB闪存驱动器60上并由小工具解密的加密文件。
图9是加密和解密系统示例的示意图。如图9所示,在智能手机40上运行的网页浏览器42可以提供用于管理和访问加密存储空间(例如,文件浏览)的用户界面。运行在小工具上的网页服务器52可以处理用户请求并对存储在智能手机上的文件和加密存储空间的进行访问。
在一些具体实施方式中,网页浏览器42和网络服务器52通过使用TCP/IP的Wi-Fi直连网络连接。Wi-Fi直连网络使网络内的设备能够在没有无线接入点的情况下相互连接。小工具上的主机USB存储驱动程序52提供对智能手机的访问。在智能手机上运行的外围USB存储驱动程序44执行USB协议操作并提供从属端USB存储设备功能。外围USB存储驱动程序44可以通过使用SCSI协议的USB连接与小工具主机USB存储驱动器52通信。
LINUX密码设备映射器模块56可以把加密和解密的数据读写到与该小工具连接的USB闪存驱动器60(例如,通过USB端口)。在一些替代实施方式中,USB闪存驱动器60可以与智能手机40直接连接(例如通过数据电缆)。智能手机闪存驱动程序46可以管理对智能手机40中配备的闪存存储介质48的访问。
这些技术的优点在于用户不需要在智能手机上安装任何应用程序(或app)。这是非常重要的,因为它减少或消除了对批准请求的需求,例如在智能手机上安装软件应用程序时来自智能手机制造商或智能手机上运行的操作系统的批准请求。
图10A-10C是基于一些具体实施方式对存储在移动设备上的数据加密和解密方法示例的流程图。
在检测到与主机(例如,智能手机)(700,702和600)的连接后,连接USB闪存驱动器60的小工具可以从其非易失性存储器加载(704)LINUX OS并创建(706)Wi-Fi直连网络。小工具可以启动一个网页服务器来处理来自智能手机上运行的一个或多个网页浏览器的连接。智能手机可以用预定义的小工具IP地址加入(604)由该小工具创建的Wi-Fi直连网络。智能手机可以为用户提供网页浏览器来浏览文件。
一旦从在智能手机上运行的网页浏览器接收到连接,小工具网页服务器读取(710)USB闪存驱动器的前两个扇区以确定闪存驱动器是否已经被加密(例如,使用该公开提供的技术)。基于该确定的结果,小工具网页服务器可以将不同的网页返回(712)到网页浏览器。
如果USB驱动器尚未被加密,则网页浏览器可以请求用户指令来加密USB驱动器并提供密码。小工具网页服务器可以基于用户提供的密码在USB驱动器上创建(720)加密的存储空间,例如,使用用户提供的密码作为加密密钥。以下示例可以在USB闪存驱动器上设置LUKS设备头文件,并使用默认加密选项(/dev/sdb是USB闪存驱动器60的Linux设备名称)加密主密钥:
#cryptsetup-y luksFormat/dev/sdb.
默认密码选项可以指定要使用哪种算法加密。如果使用本公开中描述的技术已经对USB驱动器进行了加密,则智能手机可以使用例如密码验证来认证(718)用户对USB驱动器的访问。一旦用户提供的密码被验证,小工具服务器可以提供用户对USB驱动器的访问。以下示例可以验证密码,允许用户访问USB存储设备,并创建一个dm-crypt设备,
/dev/mapper/<crypted_container_name>
crypted_container_name映射到USB闪存设备/dev/sdb
#cryptsetup luksOpen/dev/sdb<crypted_container_name>
小工具网页服务器可以将网页返回给智能手机,通知用户该USB驱动器已被加密并可以使用。该网页可以进一步为用户提供选项来浏览密码卷内容或智能手机上的加密数据。如果用户发布浏览请求(624),小工具网页服务器可以调用(728)网页浏览处理程序。或者,调用加密处理程序例程(726)以加密数据并将加密的数据存储在USB驱动器上。在用户请求时,小工具网页服务器可以关闭USB驱动器,关闭用户访问,例如使用命令“cryptsetupluksClose”。小工具服务器可以在智能手机上提供安全弹出确认页面以通知(628)用户从智能手机上拔下小工具。
图11是使用小工具来加密存储在移动设备上的数据的方法示例的流程图。如图11所示,在接收(800)加密请求时,小工具网页服务器可以读取(810)存储在智能手机上的数据,例如使用IP-over-USB链接。Linux内核dm-crypt设备可以加密(820)从智能手机接收到的数据并将加密的数据存储(830)在USB设备上。
图12是使用小工具来解密数据并将解密的数据提供给移动设备的方法示例的流程图。如图12所示,在智能手机接收到用于访问加密数据的用户请求时,小工具网页服务器可以(例如,从USB驱动器)检索加密数据,使用Linux内核对加密数据进行解密(910),并将解密的数据提供(920)到智能手机以供用户访问。
图13是使用无线局域网LAN进行数据加密和解密的方法示例的流程图。主机和小工具可以通过无线局域网LAN连接。这些技术的优势在于单个小工具可以同时向多个主机提供数据加密和解密服务,例如在企业环境下应用。
图14是加密和解密设备示例的示意图。主机可以使用通用Internet文件系统(CIFS)客户端访问由小工具加密或解密的CIFS数据。例如,主机网络块设备(NBD)服务器1020可以使小工具能够访问主机的物理存储空间160,例如通过使用主机存储驱动程序1040。小工具CIFS服务器1010可以与主机CIFS客户端通信并且提供对CIFS份额1030的访问。CIFS份额可以以各种文件格式创建和组织,例如,VFAT格式或Ext 4格式1050。小工具密码设备映射器1070可以是用以加密和解密数据LINUX内核驱动程序。小工具网络块设备(NBD)客户端1090可以是将小工具请求转发给主NBD服务器1020的LINUX内核模块。
这些技术是的优势在于它们可以使主机访问本地存储空间,就好像它是由小工具提供的网络存储空间一样。当主机将数据写入“网络”存储空间时,小工具可以加密数据并将加密数据本地存储在主机上,同时向主机显示数据存储在远程网络存储器上(例如,远程数据服务器)。当主机从“网络”存储空间读取数据时,小工具可以解密主机上本地存储的数据,并将解密后的数据提供给主机。这些技术可以为通过无线局域网与小工具连接的设备提供加密和解密服务,这在企业环境中很常见。
图15A-15C是数据加密和解密方法示例的流程图。一旦通电(1200),小工具可以从其非易失性存储器加载(1202)LINUX OS并创建Wi-Fi直连网络(1204)。小工具网页服务器被创建(1206)并且可以处理来自主机的连接。小工具网页服务器的主页可以包含HTML链接,以使主机网页客户端可以下载NBD服务器可执行文件用以在主机上执行。
一旦通电(1100),主机可以通过Wi-Fi直连网络与小工具交互。主机可以用预定义的小工具IP地址加入Wi-Fi直连网络(1102)并调用网页浏览器(1104)。主机可以进一步从小工具下载NBD服务器可执行文件。主机可以提示用户提供存储设备名称(1108)并选择主机存储上已经加密或将要被加密的空间。
主机网页客户端可以创建用于在主机上运行NBD服务器的线程,以访问选定的存储空间。NBD服务器可以是一个软件程序,通过网络远程系统提供对主机上的文件系统或磁盘分区的映像的访问。NBD服务器还可以使小工具可以用像访问本地存储一样访问主机存储空间。一旦创建了NBD服务器线程,主机网页客户端就可以将NBD服务器的TCP端口号发送到小工具网页服务器(1110)。主机网页客户端可以从小工具网页服务器接收主机存储空间的加密头文件信息,该信息指示主机存储空间是否先前已被加密。
如果主机存储空间未被加密,则小工具可以使用参照图5A-5C在本公开中描述的技术来加密主机存储空间。小工具可以用文件系统格式化新的加密空间,例如,VFAT或Ext4。如果主机存储空间已经被加密,则小工具可以使用参考图5A-5C描述的技术来认证用户对主机存储空间的访问。小工具网页服务器可以启动网络文件服务器,例如,CIFS或NFS服务器,并通知主机客户端网页服务器已可以访问。
网页客户端在检测到小工具网页服务器准备就绪时可以启动相应的网页文件系统客户端(1122),其创建的主机网络驱动器映射到小工具上的网络文件系统服务器。主机计算机(1124)对网络文件系统服务器的访问可以由小工具的dm-crypt设备(1228)来管理,该设备对写入加密空间的数据进行加密并对从加密空间读取的数据进行解密。
当用户请求终止对网络文件系统服务器的访问时,主机客户端可以将该请求发送到小工具(1126)。作为响应,小工具网页服务器可停止网络文件服务器程序(1230),关闭对加密主机存储空间(1232)的访问,并退出网页服务器(1234),由此终止小工具和主机之间的连接。
图16是加密和解密系统示例的示意图。示例加密和解密系统可以在局域网(LAN)中实现,从而向局域网LAN内的计算设备提供数据加密和解密服务。在一些具体实施方案中,加密/解密服务器1600经由局域网LAN 1610连接到网络文件服务器1620,第一计算设备(例如,计算机A 1650)和第二计算设备(例如,计算机B 1640)。
计算机A 1650可以使用一个或多个数据共享协议1650(如虚线所示)经由局域网LAN 1610访问存储在网络文件服务器1620上的文件或其他数据,例如网络文件系统(NFS)或通用Internet文件系统(CIFS)协议。计算机B 1040可以在本地存储其数据。存储在网络文件服务器1620和计算机B 1640上的数据可以被加密并存储在它们各自的本地存储设备上;加密服务器1600可以(1)对正被写入的数据进行加密,以及(2)对从网络文件服务器1620和计算机B 1640的本地存储器读取的数据进行解密。该具体实施方式为在企业数据处理环境中对数据加密/解密提供了一种经济高效的安全数据存储解决方案。因为单一但专用且高性能的加密/解密服务器可同时向位于相同网络中的大量计算机提供加密/解密服务。
图17是加密和解密服务器计算机示例的示意图,例如加密/解密服务器1600。示例加密和解密服务器可以包括运行Linux服务器操作系统(OS)的计算机系统,在图17中,可以包括一个中央处理器(CPU)1702,一个随机存取存储器(RAM)1706,一个用于存储软件程序及其相关数据的非易失性存储设备1708,一个局域网LAN(例如,以太网或
Wi-Fi网络)控制器1710以及一个连接这些组件的系统总线1704。在一些具体实施方式中,除了CPU 1702之外,还可以加入一个专用硬件加密加速控制器1712来实现流畅的高数据传输。
图18和19A-D是加密客户端主机和加密服务器之间交互示例的流程图。如图18所示,NFS/CIFS客户端模块1810可以提供主机对在加密服务器上运行的NFS/CIFS服务器模块1812的访问。主机网络块设备(NBD)服务器1818可以使加密服务器经由TCP/IP连接来访问主机存储设备,并且可以在访问主机存储介质1822时调用主机存储驱动程序1820。NFS/CIFS服务器1812可以实现分布式文件访问系统,该系统允许客户端计算机上的用户以类似于访问客户端计算机上本地存储的数据的方式访问远程存储在不同计算机上的数据。
加密服务器可以包括密码设备映射器1814,该密码设备映射器1814可以使用加密/解密传递数据(例如客户端1810和物理存储介质1822之间的数据流)的Linux内核驱动程序来实现。加密服务器还可以包括一个主机网络块设备(NBD)客户端1816,例如,Linux内核模块将加密服务器的请求转发给主NBD服务器1818以访问存储在物理存储介质1822上的数据。NBD通信(例如,在客户端1810和服务器1812之间以及在客户端1616和服务器1818之间)可以通过局域网LAN链接上的TCP/IP连接来实现。
该具体实施方式使加密客户端主机能够访问本地存储设备,就好像这些存储设备是位于加密服务器上的网络驱动器一样。例如,用户可以在主机硬盘上创建一个磁盘分区P来存储加密数据。加密服务器一旦与客户端主机连接,就可以在客户端主机上创建虚拟网络驱动器(例如,网络硬盘驱动器V),并将虚拟硬盘驱动器V上的所有数据操作映射到本地磁盘分区P。例如,写入虚拟网络驱动器V的数据可以由加密服务器远程加密并保存在本地客户端主机的分区P上;从分区P读取的数据可以由解密服务器远程解密并提供给客户端1810。
从用户的角度来看,虚拟网络驱动器V看起来是分区P的未加密版本并且是数据读取和写入的目标。换句话说,加密服务器使客户端设备能够使用自己的本地存储作为加密卷。
如图19A所示,在通电(1902)之后,加密客户端主机启动(1904)其上存储的操作系统并配置(1906)局域网LAN连接。在加密服务器一侧,在通电(1950)之后,服务器可以将非易失性存储设备1708上的Linux操作系统引导到RAM 1706中,由CPU 1702执行。加密服务器然后配置(1954)它的局域网连接LAN。在客户端主机和服务器上运行的软件模块可以通过局域网LAN连接使用TCP协议相互交互。服务器加密/解密模块可以同时与多个客户端数据访问模块进行交互。客户端数据访问模块可以使客户端主机的用户能够指定一个或多个主机存储设备用于转换成密码存储卷并且用于收集数据加密/解密以及访问认证所需的用户密码。主机存储设备可以包括原始磁盘驱动器,分区,卷或云块存储。一个加密客户端主机上可以同时创建和访问多个加密卷。
加密服务器模块可以使客户端主机能够执行加密操作并且用于认证用户对主机密码卷的访问,主机密码卷可以作为客户端主机可访问的网络驱动器出现在客户端主机上。在服务器配置局域网LAN连接并等待客户端主机上运行的加密客户端程序启动并建立与加密客户端程序的TCP连接之后,加密服务器模块被执行(1956)。
在加密客户端主机上,用户可以执行(1910)加密客户端程序以提供加密存储设备用于访问。加密客户端程序可以创建(1960)用于运行网络块设备(NBD)服务器程序的新线程。NBD服务器程序可以通过网络使用远程Linux系统提供对主机上的文件系统或磁盘分区的共享映像的访问。
如图19B所示,在创建NBD服务器线程之后,加密客户端程序在步骤4050中将NBD服务器的TCP端口号发送给小工具服务器。接下来在步骤4060中,加密客户端程序询问用户是否新建一个加密卷。如果是,则加密客户端程序在步骤4070中提示用户输入存储设备名称,指定要转换成密码卷的设备。接下来在步骤4100中,加密客户端主机上的指定存储设备名称或标签被发送到加密服务器程序。
如果用户不打算创建新密码卷,则在步骤4080中,加密客户端程序显示先前在客户端计算机上创建的所有密码卷。一旦用户在步骤4090中从可用密码卷中选择了目标设备,则加密客户端程序在步骤4100中将目标密码设备名称发送到加密服务器程序。
然后,加密客户端程序等待,直到加密服务器回复加密客户端主机存储设备的加密头文件信息,该加密客户端主机存储设备的加密头文件信息指示设备是否先前已经被转换为密码卷。
在加密服务器一侧,在步骤5050中,加密服务器程序接收加密客户端主机NBD服务器TCP端口号,并且随后在步骤5060中启动NBD客户端程序,该程序建立加密服务器与加密客户端存储设备之间的数据转发。以下编程指令示例将启动一个连接到NBD服务器的NBD客户端实例,该实例使用加密客户端主机的TCP端口号9000,小工具上的本地块设备名称为/dev/nbd0
#nbd-client<host_IP_address>9000/dev/nbd0
在NBD服务器/客户端连接可操作的情况下,加密服务器程序首先在步骤5070中从加密客户端接收目标加密设备名称,并在步骤5080中继续读取目标加密设备的前两个扇区。如果目标设备已经是加密卷,则两个扇区应包含Linux统一密钥设置(LUKS)头文件。LUKS为磁盘加密指定了与平台无关的标准磁盘格式。LUKS存在的指示随后在步骤5090中由加密服务器程序发送给加密客户端程序。
在步骤4110中,加密客户端接收加密服务器消息,并且在步骤4120中确认指定的加密客户端存储设备是否已经是密码卷。如果不是,则在步骤4130,加密客户端程序将提示用户确认加密卷配置,加密卷配置将删除设备上的所以数据,并且在用户确认时提示用户输入密码。可选择地,在步骤4130中,加密客户端程序可以要求用户设置质询/响应密码重置机制:在忘记密码的情况下,质询-响应选项将帮助用户重置密码。如果存储设备已经是密码卷,则在步骤4140中,加密客户端程序只需提示用户输入在首次配置卷时已被接受的密码。接下来,密码和潜在的质询/响应信息将在步骤4150中发送到加密服务器。
在加密服务器一侧,在步骤5100中,加密服务器程序接收加密客户端用户密码。基于在步骤5110中确定的加密客户端存储设备是否已经具有加密头文件的结果,加密服务器程序将在此处采取不同的行动。如果存储设备没有密码头文件,则加密服务器将在步骤5120中启动密码卷配置。以下示例将在NBD块设备上设置LUKS设备头文件并使用默认密码选项加密主密钥:
#cryptsetup-y luksFormat/dev/nbd0
另一方面,如果加密客户端存储设备确实具有加密头文件,则在步骤5130,加密服务器程序在解锁密码卷之前验证用户密码。一旦密码被验证,在步骤5140中,加密服务器打开密码卷供用户访问。以下示例将验证密码并打开在步骤5120中创建的密码卷。另外,它还创建dm-crypt设备/dev/mapper/<crypted_container_name>,其映射到与加密客户端计算机上的远程存储设备所链接的本地NBD设备/dev/nbd0。
#cryptsetup luksOpen/dev/nbd0<crypted_container_name>
接下来,密码卷需要与NFS/CIFS服务器相关联,使得对加密客户端计算机上的网络驱动器的所有用户访问都将被转发到加密服务器上的密码卷。这可以在步骤5150中通过在NFS/CIFS服务器配置过程之后挂载dm-crypt设备<crypted_container_name>来完成的。同样在步骤5150中,加密服务器程序将加密卷的NFS/CIFS目录名称发送到加密客户端程序。
如步骤4160所示,在加密客户端主机计算机上,加密客户端程序接收NFS/CIFS目录名并将其挂载到加密客户端主机上的本地文件系统,例如使用命令“mount<encryption_server_IP>:<encryption_server_directory_name>”。如步骤4170所示,加密客户端计算机上的用户可以在NFS/CIFS服务器上允许的网络驱动器上执行文件操作,例如文件夹/文件创建,编辑,复制和删除。要写入网络驱动器的数据可能会被加密,并且要从网络驱动器读取的数据可能会被自动解密。基于软件的数据加密和解密技术通常依靠主机CPU执行复杂的加密操作。与基于软件的数据加密和解密技术相比,本公开所述的资源密集型数据操作可以由加密服务器使用Linux内核加密API执行。这些技术至少有一下几点优势。首先,Linux内核支持的加密密码可用于磁盘数据加密/解密,包括自定义加密库。其次,可以使用专用硬件加速器执行加密操作,从而降低CPU利用率并提高加密操作性能。
在步骤4180中,当在加密客户端主机计算机上卸载NFS/CIFS网络驱动器时,例如在加密卷访问结束时,加密服务器程序可以在步骤5170中使用以下指令关闭加密卷:
#cryptsetup luksClose<crypted_container_name>
最后,在步骤5180中,加密服务器程序与加密客户端主机上的NBD服务器断开连接,从而在步骤4190中终止用于相应加密客户端主机存储设备的NBD服务器。可以用如下指令删除NBD客户端,断开NBD服务器/客户端:
#nbd-client-d/dev/nbd0
图20是涉及客户端主机和加密和解密服务器数据访问监视操作示例的流程图。数据访问监视的功能可以通过要求所有用户在对加密存储设备进行数据访问时都要通过加密服务器来实现。加密客户端程序可以提示用户为了数据访问监控目的而选择(2004)目录中的一个或多个文件夹或单个文件(例如,NFS/CIFS导向器)。例如,用户可以在观察列表中添加需要被监视或控制的文件或文件夹。加密服务器程序可以按照预定的时间表查看(2054)以访问所选择的文件或文件夹。在检测到的访问匹配(2056)之后,加密服务器可以生成包括目标文件/文件夹名称的命中事件消息,并将该事件消息发送(2058)到加密客户端。在接收(2006)命中事件消息之后,加密客户端可以生成(2008)对用户或客户端主机的系统管理员的警报,例如报告潜在的数据泄露或未授权的访问企图。该警报可以是弹出式窗口或文本/SMS消息。客户端主机还可以基于生成的警报,实时识别嫌疑程序或恶意软件。这些功能可以为数据泄露提供积极防御,而不是被动地阻止或拒绝可疑的数据访问。
图21安装在移动用户设备2100上的加密和解密应用示例的示意图。如图所示,移动用户设备可能已经安装了多个应用或多个app,例如,照片应用2102,消息应用2104,地图应用2106,打车应用2108以及加密和解密应用2120。如本公开中所描述的,加密和解密应用2120可以实现客户端主机和加密服务器的软件模块的功能。加密和解密应用2120因此可以加密在其他应用(例如,照片应用2102)中使用的数据以存储在移动用户装置上,并且将加密的数据解密提供用户访问,例如,照片应用2102,消息应用2104,地图应用2106或打车应用2108。换句话说,加密和解密应用2120可以为安装在移动用户装置上的应用提供接口,以加密用户数据并访问这些应用内的加密数据。
例如,如图22中所示,当消息应用2104接收到传入电子邮件时,加密和解密应用2120可以加密传入的电子邮件以便在移动设备的加密分区上进行本地存储。当用户请求访问传入的电子邮件时,消息应用程序2104可请求加密和解密应用程序2120解密加密电子邮件并以用户可读格式呈现解密电子邮件。注意,在一些具体实施方式中,加密和解密应用2120可以防止用户应用(例如,照片应用2102,消息应用2104,地图应用2106,打车应用2108)直接访问彼此的数据。例如,加密和解密应用程序2120可以阻止用户将来自消息应用2104的照片附件保存到照片应用程序2102中。用户可能被要求预先或即时启用加密和解密应用程序2120以管理和协调不同用户应用程序之间的数据访问操作。例如,来自消息应用2104的照片附件需要先由加密和解密应用2120加密之后,照片附件才可以在照片应用2102中被访问(在适当的解密之后)。
在此描述的组件,操作或结构的单个实例可能有多个实例。并且,各种组件,操作和数据存储之间的边界有些随意,特定操作在特定说明性配置的上下文中进行说明。其他功能分配是预想并可实现的。通常,在示例配置中作为单独组件呈现的结构和功能可以作为组合结构或组件而实现。相类似地,呈现为单个组件的结构和功能可以由多个分开的组件而实现。这些变化,修改,增加和改进均在具体实施方式范围的范围之内。
虽然术语“第一”,“第二”等可在本文中用于描述各种元件,但这些元件不应受这些术语的限制。这些术语仅用于区分一个元素和另一个元素。例如,第一设备可以被称为第二设备,并且类似地,第二设备可以被称为第一设备,而不改变描述的含义,只要所有出现的“第一设备”被一致地重命名并且所有出现的“第二设备”都会一致地重命名。第一个设备和第二个设备都是设备,但它们不是同一个设备。
这里使用的术语仅用于描述特定实施方式的目的,而不旨在限制权利要求。如在实施方式和所附权利要求的描述中所使用,除非上下文另外清楚地指出,否则单数形式“一”,“一个”和“该”也包括复数形式。本文所使用的术语“和/或”是指包含一个或多个相关所列项目的任何和所有可能的组合。当在本说明书中使用时,术语“包括”和/或“包含”指定所陈述的特征,整体,步骤,操作,组成元素,和/或,部件,但不排除存在或添加一个或多个其他特征,整体,步骤,操作,组成元素,部件,和/或,其组合。
如本文所使用的,术语“如果”可以被解释为意指“何时”或“之上”或“在确定时响应”或“根据确定”或“响应于检测”,用于表述先决条件是真实的,取决于上下文。类似地,短语“如果确定(所陈述的先决条件是真的)”或“如果(所陈述的先决条件是真的)”或“何时(所陈述的先决条件是真的)”可以被解释为根据上下文确定“在确定时响应”或“根据确定”或“根据检测”或“响应于检测到”,用于表述所陈述的先决条件是真实的。
前面的描述包括示例系统,方法,技术,指令序列和计算机器程序产品都体现了说明性的具体实施方式。为了做出解释,许多具体细节都被阐述以提供对本发明主题的各种实施方式的理解。然而,这些对于本领域技术人员来说是显而易见,可以在没有这些具体细节的情况下对本发明主题进行具体实施方式。总体而言,众所周知的指令实例,协议,结构和技术并未详细显示。
为了做出解释,上述描述参照了具体实施方式。然而,上述的说明性讨论并非旨在穷举或将具体实施方式限制于所公开的精确形式。对以上描述可以做出许多修改和变化。具体实施方式的选择和描述是为了最好地解释其原理及其实际应用,从而使得本领域的其他技术人员能够根据预期,最佳的利用该具体实施方式和各种修改过的具体实施方式。
Claims (20)
1.一种计算服务器,包括:
一个非暂时性存储器;还有
一个或多个硬件处理器,可执行指令使所述计算服务器执行操作,包括:
确认所述计算服务器连接到第二计算设备;
在确认所述计算服务器连接到第二计算设备时做出响应
访问虚拟存储区域,所述虚拟存储区域作为所述计算服务器上的存储空间的一部分被显示给第二计算设备的用户,其中所述虚拟存储区域将针对所述虚拟存储的读取或写入请求重定向到第二计算设备的对应存储空间上;
检测第二计算设备用户的第一个请求,第一个请求是读取第一组对该用户显示为存储在虚拟存储区域中数据;
在检测到第一个请求时做出响应,
将第一组数据由第二计算设备上的存储区域发送到所述计算服务器;
使用计算服务器解密第一组数据以产生第一组解密数据;
将第一组解密数据从计算服务器传输到第二计算设备;
通过第一个请求在第二计算设备上提供第一组解密数据的访问;
检测第二计算设备用户的第二个请求,第二个请求为将第二组数据写入虚拟存储区域;
在检测到第二个请求时做出响应,
将第二组数据第二计算设备上的存储区域发送到所述计算服务器;
使用计算服务器加密第二组数据以产生第二组加密数据;
将第二组加密数据从计算服务器传输到第二计算设备;并且
将第二组加密数据存储在第二计算设备上。
2.权利要求1所述的计算服务器是一个网络数据加密和解密服务器,并经由LAN连接到第二计算设备。
3.权利要求1或2所述的计算服务器,其中所述操作进一步包含使用有线或无线数据连接启用所述计算服务器与所述第二计算设备之间的通信。
4.权利要求1或2或3所述的计算服务器,其中所述操作进一步包括:在所述计算服务器与所述第二计算设备之间建立LAN连接;以及使用LAN连接在计算服务器和第二计算设备之间传输第一组数据,第一组解密数据,第二组数据和第二组加密数据。
5.一种移动用户设备,包括:
一个非暂时性存储器;还有
一个或多个硬件处理器,可执行指令使所述计算服务器执行操作,包括:
确认所述移动用户设备连接到第二计算设备;
在确认所述移动用户设备连接到第二计算设备时做出响应,访问虚拟存储区域,所述虚拟存储区域作为所述移动用户设备上的存储空间的一部分被显示给第二计算设备的用户,其中所述虚拟存储区域将针对所述虚拟存储的读取或写入请求重定向到第二计算设备的对应存储空间上;
检测第二计算设备用户的第一个请求,第一个请求是读取第一组对该用户显示为存储在虚拟存储区域中数据;
在检测到第一个请求时做出响应,将第一组数据由第二计算设备上的存储区域发送到所述移动用户设备;
使用移动用户设备解密第一组数据以产生第一组解密数据;
将第一组解密数据从移动用户设备传输到第二计算设备;
通过第一个请求在第二计算设备上提供第一组解密数据的访问;
检测第二计算设备用户的第二个请求,第二个请求为将第二组数据写入虚拟存储区域;
在检测到第二个请求时做出响应,将第二组数据第二计算设备上的存储区域发送到所述移动用户设备;
使用移动用户设备加密第二组数据以产生第二组加密数据;
将第二组加密数据从移动用户设备传输到第二计算设备;并且
将第二组加密数据存储在第二计算设备上。
6.权利要求5的移动用户设备包括USB设备,智能手机和平板电脑中的任一个;并且其中所述第二计算设备包括:智能手机,台式电脑和平板电脑中的任一个。
7.权利要求5或6所述的移动用户设备的电源有别与第二计算设备的电源。
8.权利要求5或6或7所述的移动用户设备,其中所述操作进一步包括:在检测到所述第一请求时做出相应,用以下任一方式来认证所述第二计算设备的用户:生物测对比,密码对比,语音对比以及指纹对比。
9.权利要求5或6或7或8所述的移动用户设备,其中所述操作进一步包含:使用有线或无线数据连接启用所述移动用户设备与所述第二计算设备之间的通信。
10.权利要求5或6或7或8或9所述的移动用户设备,其中所述操作进一步包括:在所述移动用户设备与所述第二计算设备之间建立无线数据连接;以及使用无线数据连接在移动用户设备和第二计算设备之间传输第一组数据,第一组解密数据,第二组数据和第二组加密数据。
11.权利要求5或6或7或8或9或10所述的移动用户设备,其中,所述无线数据连接包括以下任一连接方式:Wi-Fi连接,蓝牙连接,蜂窝(手机信号)连接和NFC连接。
12.一种第一设备,包括:
一个非暂时性存储器;还有
一个或多个硬件处理器,可执行指令使所述计算服务器执行操作,包括:
确认所述第一设备连接到第二计算设备;
在确认所述第一设备连接到第二计算设备时做出响应,访问虚拟存储区域,所述虚拟存储区域作为所述第一设备上的存储空间的一部分被显示给第二计算设备的用户,其中所述虚拟存储区域将针对所述虚拟存储的读取或写入请求重定向到第三计算设备的对应存储空间上,第三计算设备有别于第一设备和第二计算设备;
检测第二计算设备用户的第一个请求,第一个请求是读取第一组对该用户显示为存储在虚拟存储区域中数据;
在检测到第一个请求时做出响应,将第一组数据由第三计算设备上的存储区域发送到所述第一设备;
使用第一设备解密第一组数据以产生第一组解密数据;
将第一组解密数据从第一设备传输到第二计算设备;
通过第一个请求在第二计算设备上提供第一组解密数据的访问;
检测第二计算设备用户的第二个请求,第二个请求为将第二组数据写入虚拟存储区域;
在检测到第二个请求时做出响应,将第二组数据第二计算设备上的存储区域发送到所述第一设备;
使用第一设备加密第二组数据以产生第二组加密数据;
将第二组加密数据从第一设备传输到第三计算设备;并且
将第二组加密数据存储在第二计算设备上。
13.权利要求12所述的第一设备,其中所述第三计算设备是与所述第一设备连接的USB驱动器。
14.权利要求12或13所述的第一设备,其中所述第三计算设备是与所述第二计算设备连接的USB驱动器。
15.权利要求12或13或14所述的第一设备,包括以下之一:智能手机,台式计算机和平板电脑;并且其中所述第二计算设备包括以下中的一个:智能手机,台式计算机和平板电脑。
16.权利要求12或13或14或15所述的第一设备的电源有别与第二计算设备的电源。
17.权利要求12或13或14或15或16所述的第一设备,其中所述操作进一步包括:在检测到所述第一请求时做出响应,用以下任一方式来认证所述第二计算设备的用户:生物测对比,密码对比,语音对比以及指纹对比。
18.权利要求12或13或14或15或16或17所述的第一设备,其中所述操作进一步包含:使用有线或无线数据连接启用所述第一设备与所述第二计算设备之间的通信。
19.权利要求12或13或14或15或16或17或18所述的第一设备,其中所述操作进一步包括:在所述第一设备与所述第二计算设备之间建立无线数据连接;以及使用无线数据连接在第一设备和第二计算设备之间传输第一组数据,第一组解密数据,第二组数据和第二组加密数据。
20.权利要求12或13或14或15或16或17或18或19所述的第一设备,其中,所述无线数据连接包括以下任一连接方式:Wi-Fi连接,蓝牙连接,蜂窝(手机信号)连接和NFC连接。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662307208P | 2016-03-11 | 2016-03-11 | |
US62/307,208 | 2016-03-11 | ||
PCT/US2017/021831 WO2017156417A1 (en) | 2016-03-11 | 2017-03-10 | Systems and methods for data encryption and decryption |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109643281A true CN109643281A (zh) | 2019-04-16 |
Family
ID=59789729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780016728.5A Pending CN109643281A (zh) | 2016-03-11 | 2017-03-10 | 数据加密和解密的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10212139B2 (zh) |
CN (1) | CN109643281A (zh) |
WO (1) | WO2017156417A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457920A (zh) * | 2019-07-30 | 2019-11-15 | 苏州赛器信息安全科技有限公司 | 一种数据加密方法及加密装置 |
CN111866868A (zh) * | 2020-07-03 | 2020-10-30 | 上海世麦智能科技有限公司 | 一种通过硬件加密联系人的方法及系统 |
CN114943091A (zh) * | 2022-07-27 | 2022-08-26 | 成都中科合迅科技有限公司 | 基于linux内核块设备加密功能的Elasticsearch加密搜索方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10826875B1 (en) * | 2016-07-22 | 2020-11-03 | Servicenow, Inc. | System and method for securely communicating requests |
US10489600B2 (en) * | 2017-04-28 | 2019-11-26 | Dell Products L.P. | Access path redirection for encrypted files |
US10728025B2 (en) | 2018-04-13 | 2020-07-28 | Amazon Technologies, Inc. | Encryption by default in an elastic computing system |
US11194923B2 (en) * | 2018-07-27 | 2021-12-07 | Interactive Media Corp. | Systems and methods for providing secure database interface systems within an encrypted device system |
US10867052B1 (en) * | 2018-09-25 | 2020-12-15 | Amazon Technologies, Inc. | Encryption intermediary for volume creation |
US11363028B2 (en) * | 2018-09-27 | 2022-06-14 | The Toronto-Dominion Bank | Systems and methods for delegating access to a protected resource |
IT201900007476A1 (it) * | 2019-05-29 | 2020-11-29 | Kai D S R L | Apparato per l’anonimizzazione e la gestione di dati nativi provenienti da apparati informatici |
US11201856B2 (en) | 2019-08-20 | 2021-12-14 | International Business Machines Corporation | Message security |
KR102325986B1 (ko) * | 2020-01-22 | 2021-11-12 | 네이버클라우드 주식회사 | 스토리지 암호화의 동적 적용을 위한 방법 및 시스템 |
US11115213B1 (en) * | 2020-01-28 | 2021-09-07 | NortonLifeLock Inc. | Thwarting one-time password theft |
CN111695166B (zh) * | 2020-06-11 | 2023-06-06 | 阿波罗智联(北京)科技有限公司 | 磁盘加密保护方法及装置 |
CN111800418B (zh) * | 2020-07-06 | 2022-10-11 | 雅生活智慧城市服务股份有限公司 | 一种cds数据安全加密系统的使用方法 |
KR102411028B1 (ko) * | 2020-09-21 | 2022-06-20 | 한화솔루션 주식회사 | 에너지 저장 시스템의 초기 설정 방법 및 시스템 |
CN112560041B (zh) * | 2021-02-25 | 2021-05-25 | 北京微步在线科技有限公司 | 质量自动化验证检测的方法、设备及计算机存储介质 |
US11556659B1 (en) | 2021-03-03 | 2023-01-17 | Amazon Technologies, Inc. | Partially encrypted snapshots |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020152295A1 (en) * | 2001-04-06 | 2002-10-17 | International Business Machines Corporation | Method for controlling multiple storage devices from a single software entity |
CN101374146A (zh) * | 2007-08-24 | 2009-02-25 | 赛门铁克公司 | 对物理计算机系统的虚拟表示的按需访问 |
CN101442525A (zh) * | 2007-11-19 | 2009-05-27 | 国际商业机器公司 | 用于执行电子事务的系统和方法 |
CN102460393A (zh) * | 2009-05-01 | 2012-05-16 | 思杰系统有限公司 | 用于在虚拟存储资源之间建立云桥的系统和方法 |
CN104067287A (zh) * | 2012-08-31 | 2014-09-24 | 英特尔公司 | 用于促进计算系统处的存储数据的无加密完整性保护的机制 |
US20160062918A1 (en) * | 2014-08-27 | 2016-03-03 | International Business Machines Corporation | Receipt, Data Reduction, and Storage of Encrypted Data |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058696B1 (en) * | 1996-11-22 | 2006-06-06 | Mangosoft Corporation | Internet-based shared file service with native PC client access and semantics |
US7143288B2 (en) * | 2002-10-16 | 2006-11-28 | Vormetric, Inc. | Secure file system server architecture and methods |
WO2004064350A2 (en) * | 2003-01-13 | 2004-07-29 | Cloverleaf Communication Co. | System and method for secure network data storage |
US9384149B2 (en) * | 2005-01-31 | 2016-07-05 | Unisys Corporation | Block-level data storage security system |
JP5073308B2 (ja) * | 2007-02-08 | 2012-11-14 | 株式会社エヌ・ティ・ティ・ドコモ | コンテンツ取引管理サーバ装置、コンテンツ提供サーバ装置、端末装置及びそのプログラム |
US8300823B2 (en) * | 2008-01-28 | 2012-10-30 | Netapp, Inc. | Encryption and compression of data for storage |
US8676710B2 (en) * | 2010-11-22 | 2014-03-18 | Netapp, Inc. | Providing security in a cloud storage environment |
US8966287B2 (en) * | 2012-03-26 | 2015-02-24 | Symantec Corporation | Systems and methods for secure third-party data storage |
-
2017
- 2017-03-10 CN CN201780016728.5A patent/CN109643281A/zh active Pending
- 2017-03-10 WO PCT/US2017/021831 patent/WO2017156417A1/en active Application Filing
-
2018
- 2018-06-02 US US15/996,446 patent/US10212139B2/en not_active Expired - Fee Related
-
2019
- 2019-02-13 US US16/275,147 patent/US10721216B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020152295A1 (en) * | 2001-04-06 | 2002-10-17 | International Business Machines Corporation | Method for controlling multiple storage devices from a single software entity |
CN101374146A (zh) * | 2007-08-24 | 2009-02-25 | 赛门铁克公司 | 对物理计算机系统的虚拟表示的按需访问 |
CN101442525A (zh) * | 2007-11-19 | 2009-05-27 | 国际商业机器公司 | 用于执行电子事务的系统和方法 |
CN102460393A (zh) * | 2009-05-01 | 2012-05-16 | 思杰系统有限公司 | 用于在虚拟存储资源之间建立云桥的系统和方法 |
CN104067287A (zh) * | 2012-08-31 | 2014-09-24 | 英特尔公司 | 用于促进计算系统处的存储数据的无加密完整性保护的机制 |
US20160062918A1 (en) * | 2014-08-27 | 2016-03-03 | International Business Machines Corporation | Receipt, Data Reduction, and Storage of Encrypted Data |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457920A (zh) * | 2019-07-30 | 2019-11-15 | 苏州赛器信息安全科技有限公司 | 一种数据加密方法及加密装置 |
CN111866868A (zh) * | 2020-07-03 | 2020-10-30 | 上海世麦智能科技有限公司 | 一种通过硬件加密联系人的方法及系统 |
CN111866868B (zh) * | 2020-07-03 | 2021-07-27 | 上海世麦智能科技有限公司 | 一种通过硬件加密联系人的方法及系统 |
CN114943091A (zh) * | 2022-07-27 | 2022-08-26 | 成都中科合迅科技有限公司 | 基于linux内核块设备加密功能的Elasticsearch加密搜索方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017156417A1 (en) | 2017-09-14 |
US20180295105A1 (en) | 2018-10-11 |
US10212139B2 (en) | 2019-02-19 |
US10721216B2 (en) | 2020-07-21 |
US20190182224A1 (en) | 2019-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109643281A (zh) | 数据加密和解密的系统和方法 | |
JP6821857B2 (ja) | 連携ログオンプロバイダの依存パーティへのシングルサインオンの拡張 | |
CN109558721B (zh) | 客户端应用程序的安全单点登录和条件访问的方法和系统 | |
US11501057B2 (en) | Enabling file attachments in calendar events | |
JP6775603B2 (ja) | 仮想ブラウザ統合 | |
CN105637523B (zh) | 安全客户端驱动映射和文件存储系统 | |
CN104903910B (zh) | 控制移动装置对安全数据的访问 | |
CN105393524B (zh) | 图像分析和管理 | |
EP3268889B1 (en) | Enforcing licensing policies using an application wrapper | |
CN106031128B (zh) | 移动设备管理的方法和装置 | |
CN105340309A (zh) | 具有多个操作模式的应用 | |
CN113419799A (zh) | 使用云同步数据提供本机桌面 | |
JP2021515342A (ja) | 仮想アプリケーションの即時起動 | |
CN111066307B (zh) | 包装延续令牌以支持跨不同地理位置的多个服务器的分页 | |
US11770454B2 (en) | Native application integration for enhanced remote desktop experiences | |
JP2021535521A (ja) | 仮想デスクトップでのローカルマップアカウント | |
US20220043662A1 (en) | Application Publishing In A Virtualized Environment | |
CN113574837A (zh) | 跟踪客户端设备上的图像发送者 | |
US11385946B2 (en) | Real-time file system event mapping to cloud events | |
AU2020268350A1 (en) | Distributed file locking for a network file share | |
JP2021521574A (ja) | ヘルパを介したクライアントデバイスの匿名セッションへの接続 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190416 |