加密存储系统中的数据的制作方法

文档序号:6454408阅读:219来源:国知局
专利名称:加密存储系统中的数据的制作方法
技术领域
本发明涉^口密存储系统中的数据。
背景技术
在许多计算环境中,将数据存储在可由主机和其他计算设备通过一个 或多个网络访问的 一个或多个数据中心内。主机可以对存储在数据中心内 的数据进行读取、写入以及执行其他操作。
数据安全性在数据中心内外都是必需的,并且在许多情况下可以通过 加密数据来提供数据安全性。例如,可以加密数据中心内包含的存储子系 统中存储的数据。另外,数据中心内包含的存储子系统可以在通过网络将 数据从数据中心传输至主机时加密数据。此外,当主机与包含在数据中心 内的存储子系统通信时,可由主机上的软件加密从主机传输至数据中心的 数据。

发明内容
本发明提供了一种方法、系统和计算机程序产品,其中接收来自请求
方的访问数据的请求。判定所述请求方是否#:授权访问所述数据。响应于 判定已授权所述请求方访问所述数据,判定所述数据是否被加密。请求来 自所述请求方的加密密钥,以响应判定所述数据未^皮加密。
在特定实施例中,接收来自所述请求方的所述加密密钥。使用所述加 密密钥来加密所述数据。允许所述请求方访问所述数据。
在特定实施例中,请求解密密钥,以响应访问所述数据的后续请求。 在其他实施例中,通过对逻辑单元、文件、字节、记录、块、巻或包括所述数据的整个子系统进行寻址来做出访问所述数据的请求。
在其他实施例中,所述数据是存储在存储单元中的遗留数据,其中至 少到尝试访问所述遗留数据时为止,所述遗留数据被保持在未加密状态, 并且其中不是遗留数据的数据在所述存储单元内被保持在加密状态。


现在将仅通过实例的方式并参考附图来描述本发明的实施例,这些附
图是
图1示出了根据特定实施例的包含具有已加密遗留数据和未加密非遗 留数据的存储系统的计算环境的方块构;
图3示出了才艮据特定实施例的用于加密未加密遗留数据以响应访问所
述数据的请求的流程图4示出了根据特定实施例的用于加密存储系统中的数据的流程以及
图5示出了计算系统的体系结构,其中在特定实施例中,可以根据所
述计算系统的体系结构实现图1的计算环境的存储系统或计算设备。
具体实施例方式
在以下说明中,参考了形成本文一部分并示出了若干实施例的附图。 应当理解,可以采用其他实施例并且可以做出结构和操作更改。
在许多情况下,必须为计算环境(其中已使用包含在数据中心内的存 储子系统,并且所述存储子系统已存储未加密数据)中的数据提供安全性。
例如,在数万帕字节(petabytes)的数据未加密地存储在盘、磁带、只读 光盘和存储子系统的其他存储介质上的情况下,将可能存在安全问题。预 先存在的未加密地存储在数据中心的存储子系统内的数据可被称为遗留数据。加密并重写所有未加密地存储在数据中心的存储子系统内的遗留数据 将花费大量的时间(几天,几个星期,几个月,几年)。在特定情况下, 在加密所有未加密的遗留数据的操作完成之前,安全性问题可能一直存在。
特定实施例为存储在存储子系统内的未加密遗留数据提供了 "立即加 密",即使当预先存在的未加密遗留数据尚未被转换成存储子系统内的已 加密数据时也是如此。通过在尝试访问数据的应用与提供数据的存储子系 统之间提供逻辑加密层,针对在存储子系统之后配置的所有数据向存储子 系统提供了立即加密。立即加密通过允许存储子系统在一段扩展的时间加 密所有未加密数据,同时在从存储子系统访问数据时立即提供许多加密好 处,来允许具有存储在存储子系统内的未加密数据的客户执行迁移步骤。
图1示出了根据特定实施例的计算环境100的方框图。至少一个存储 系统102通过网络104与一个或多个主机106相连,其中主机106可以包
含计算设备。
存储系统102可以包括任何存储系统,包括那些本领域当前公知的存 储系统,例如存储控制器、控制器、存储设备、存储子系统、存储单元, 包括或控制存储装置的计算设备等。可以将数据存储在存储系统102内的 盘、磁带、只读光盘或任何其他存储介质(包括那些本领域当前公知的存
储介质)中。
主机106和存储系统102还可以包括任何适当的计算平台,包括那些 本领域当前公知的计算平台,例如,个人计算机、工作站、大型机、小型 机、网络家电、掌上型计算机、电话设备、刀片计算机、膝上型计算机等。 可以在基于客户机-服务器范例的计算环境100中实现各实施例。可以在对 等联网环境中实现备选实施例。主机106至存储系统102的连接可以是直 接的或可以通过任何本领域公知的网络104,例如,存储区域网络(SAN)、 局域网(LAN)、广域网(WAN)、因特网、企业内部互联网等。
存储系统102包括未加密数据108,已加密数据110和加密管理应用 112。未加密数据108还可被称为遗留数据。在各实施例的实现用于向计算 环境100提供数据安全性之前,已将未加密数据108存储在存储系统102中。已加密数据110还可被称为非遗留数据,并且可以由加密管理应用112 从未加密数据108生成已加密数据110。尽管示出了单个加密管理应用112, 但是在备选实施例中,可以由多个应用执行加密管理应用112执行的操作。
主机106包括至少一个可以通过网络104与存储系统102交互的主机 应用114。主机应用114可以尝试访问存储在存储系统102内的未加密数 据108或已加密数据110。主机应用114还可以尝试将数据写入或更新至 存储系统102。主机应用114还可以与存储系统102交互以执行其他操作。 与主机应用114关联的是加密密钥116和解密密钥118,其中加密密钥116 可用于加密存储在存储系统102内的未加密数据108,而解密密钥118可 用于解密存储在存储系统102内的已加密数据110。在备选实施例中,可 以在主机106的外部存储加密密钥116和解密密钥118。
在图l所示的特定实施例中,加密管理应用112将一直避免加密未加 密遗留数据108,至少直到加密管理应用112接收到访问未加密遗留数据 108的请求时为止。
图2示出了才艮据特定实施例的表示存储在存储系统102内的数据的数 据结构。在备选实施例中,可以使用其他数据结构来表示存储在存储系统 102内的数据。
未加密数据108可以存储在多个可寻址数据单元200a…20011内,其中 可寻址数据单元200a…200n可以是逻辑单元、文件、巻或任何其他可寻址 单元,并且其中可寻址单元是可由应用寻址的任何数据单元。可寻址数据 单元200a...200n可以包括未加密数据202a…202n和加密指示器 204a…204n,其中可以将加密指示器204a…204n设置为"假,,以指示可寻 址数据单元200a…200n存储未加密数据。例如,可寻址数据单元200a可 以包括未加密数据202a和对应的加密指示器204a,后者被设置为"假" 以指示存储在可寻址数据单元200a中的数据是未加密的。
已加密数据110可以存储在多个可寻址数据单元206a,,.206m内,其中 可寻址数据单元M6a…Z(^m可以是逻辑单元、文件、巻或任何其他可寻址 数据单元。例如,在特定实施例中,多个可寻址数据单元200a...200n,"6a…206m是逻辑巻,其中逻辑巻是与连接到存储系统102的物理存储对 应的物理巻的逻辑表示。尽管数据被物理地存储在包含物理存储的物理巻 内,但是在存储系统102上执行的应用以及主机106可以对逻辑巻进行寻址。
可寻址数据单元206a…206m可以包括已加密数据208a…208m和加密 指示器210a…210m,其中可以将加密指示器210a…210m设置为"真,,以 指示可寻址数据单元206a…206m存储已加密数据。例如,可寻址数据单元 206a可以包括已加密数据208a和对应的加密指示器210a,后者^皮i殳置为 "真"以指示存储在可寻址数据单元206a内的数据是已加密的。
在图2中,尽管将加密指示器204a…204n,210a…210m示为包括在未 加密数据108和已加密数据110内,但是在其他实施例中,加密指示器 204a…204n, 210a…210m可以与未加密数据108和已加密数据110分离地 存储。在特定实施例中,可以将加密指示器204a…204n,210a…210m存储 在位图中,所述位图指示可寻址数据单元200a…200n, 206a…206m中的哪 些单元存储未加密数据,并且可寻址数据单元200a...200n, 206a...206m 中的哪些单元存储已加密数据。
在图2示出的特定实施例中,加密管理应用112可以通过将未加密数 据202a.,.202n从未加密更改为已加密,以及通过更新关联的加密指示器 204a...204n,来更改^f壬何可寻址数据单元200a…200n的状态。例如,在特 定实施例中,当主才几应用114尝试通过对可寻址数据单元200a进行寻址来 访问未加密数据202a时,加密管理应用112可以加密未加密数据202a并 将关联的加密指示器204a更改为"真"。
图3示出了根据特定实施例的用于加密未加密遗留数据108以响应访 问数据的请求的流程图。可以由存储系统102的加密管理应用112实现图 3中示出的操作。
控制始于方块300,其中存储系统102的加密管理应用112接收到来 自主机应用114的访问存储在存储系统102内的数据的请求。来自主机应 用114的请求可以是读取、写入、更新或以其他方式访问存储在存储系统102内的数据的请求,其中存储在存储系统102内的数据可以是加密数据 110,也可以是未加密遗留数据108。
加密管理应用112判定(方块302 )是否已授权请求方(即,主机应 用114)访问正在被请求的数据。例如,加密管理应用112可以从主机应 用114所寻址的可寻址数据单元200a…200n, 206a…206m的加密指示器 204a…204n,210a…210ffl来判定存储在可寻址数据单元200a…200n, 206a…206m内的数据是否已#^口密。
如果加密管理应用112判定(方块302 )未授;f又请求方(即,主才几应 用114)访问正在^L请求的数据,则加密管理应用112将阻止(方块304 ) 主机应用114访问被请求的数据。
如果加密管理应用112判定(方块302 )已授权请求方(即,主机应 用114)访问被请求的数据,则加密管理应用112通过读取与所请求数据 对应的加密指示器204a…204n,210a…210m的值,来判定(方块306 )所
请求数据是否已被加密。
如果加密管理应用112判定(方块306 )所请求数据未,皮加密,则在 特定实施例中,加密管理应用112将请求加密密钥116以侵力口密由主机应 用114请求的未加密数据202a...202n。
加密管理应用112接收(方块310)来自主机应用114的加密密钥116, 使用加密密钥116加密(方块312)未加密数据,并且更新与先前未加密 数据对应的现在已被加密为"真,,的加密指示器。随后,加密管理应用112 允许(方块314)主机应用114访问被请求数据。因此,在本发明的特定 实施例中,当主才几应用114请求未加密遗留数据时,加密管理应用112将 先加密被请求的未加密遗留数据,然后才向主机应用114提供对被请求数 据的访问。在特定备选实施例中,可以从不同于主机应用114的应用获得 加密密钥116。
如果加密管理应用112判定(方块306 )祐L请求数据已4皮加密,则在 特定实施例中,加密管理应用112请求(方块316)解密密钥118,以便解 密主机应用114请求的未加密数据202a…202n。在接收到来自主机应用114的对解密密钥118的请求的响应时,加密管理应用112判定(方块318 ) 是否已提供正确的解密密钥118。如果是,则加密管理应用112通过使用 所提供的解密密钥118解密已加密的数据,来允许(方块314)主机应用 114访问被请求的数据。如果加密管理应用112判定(方块318 )未提供正 确的解密密钥118,则加密管理应用将阻止(方块304 )访问净皮请求的数据。
因此,图3示出了其中存储系统102在存储系统102中维护未加密遗 留数据的特定实施例。当来自已授权实体的对未加密遗留数据的请求到达 存储系统102时,加密管理应用112在允许访问被请求数据之前加密未加 密数据。在各实施例中实现了数据的立即加密,尽管在存储系统102中仍 维护未加密遗留数据108。
图4示出了才艮据特定实施例的用于加密存储系统102内的数据的流程 图。可以由存储系统102的加密管理应用112实现图4中示出的操作。
控制始于方块400,其中加密管理应用112接收来自请求方114的访 问存储在存储系统102内的数据的请求。加密管理应用112判定(方块402 ) 请求方114是否^皮授权访问所请求的数据。加密管理应用112判定(方块 404 )所请求的数据是否已净M口密,以响应判定请求方114 ^皮授权访问所请 求的数据。
在方块406,加密管理应用112从请求方1M请求加密密钥116,以响 应判定所请求的数据未被加密。加密管理应用ll2接收(方块408 )来自 请求方114的加密密钥116并使用所接收的加密密钥116加密(方块410) 所请求的数据。加密管理应用112允许(方块412 )请求方114访问现在 已被加密的所请求数据,其中现在已#>密的数据被称为已加密数据110。
响应于访问已加密数据110的后续请求,加密管理应用ll2请求(方 块414)解密密钥118并且如果提供了正确的解密密钥118,将允许访问现 在已加密的数据110。
因此,图4示出了其中在存储系统102上一直维护未加密遗留数据的 可寻址单元,至少直到在存储系统102处接收到访问未加密遗留数据的可 寻址单元的请求时为止的特定实施例。在接收到访问未加密遗留数据的可寻址单元的请求时,将加密该未加密遗留数据的可寻址单元。
在特定实施例中,可以在到数据级别的公共访问点处提供立即数据加 密。在特定实施例中,可以在存储子系统内针对位于此存储子系统内的所 有数据在多个粒度级别处(例如,在整个子系统、逻辑子系统、巻、范围、 记录/块,或字节级别处)提供此类立即数据加密。在特定实施例中,所有 对存储子系统内数据的访问都可以通过存储子系统加密机制的上层接口 。 随着时间的过去,将重写此子系统内的所有数据。在特定实施例中,由所 述存储子系统表示的公共访问点还可以位于可在特定客户配置中配置的其 他"公共"访问点内。例如,位于存储区域网络内的交换机或设备、虚拟 化层、通道/光纤或逻辑巻管理器等可用于实现立即数据加密。
在特定备选实施例中,可以在各个层(整个子系统,LSS,巻,记录/ 块或甚至字节)通过到存储子系统102的安全接口 (例如,存储维护控制 台)建立加密密钥116。还可以以此方式建立具有不同加密"访问"密钥 的多个加密层。此类实施例可以为特定存储子系统之后的数据、然后在特 定逻辑存储子系统内的数据、然后在特定巻或逻辑单元内的数据、然后在 特定磁道/扇区、记录/块内的数据或甚至数据字节提供多层安全访问。然 后可以根据外部用户的安全简档修改现有软件安全包以便提供加密密钥。 所述软件安全包可以使用现有安全编程接口 ,且扩展这些接口以提供适当 的加密密钥。
其他实施例详细信息
所述技术可以实现为包括软件、固件、微码、硬件和/或它们的任意组 合的方法、装置或制品。在此使用的术语"制品"指在介质中实现的代码 或逻辑,其中此类介质可以包括硬件逻辑[例如,集成电路芯片、可编程门 阵列(PGA)、专用集成电路(ASIC)等]或计算机可读介质,如磁存储介 质(例如,硬盘驱动器、软盘、磁带等)、光存储(CD-R0M、光盘等)、 易失性和非易失性存储器器件[例如,电可擦除可编程只读存储器 (EEPR0M)、只读存储器(ROM)、可编程只读存储器(PR0M)、随机存取存储器(RAM)、动态随^取存储器(DRAM)、静态随^取存储器(SRAM)、 闪存、固件、可编程逻辑等]。由处理器来存取和执行所述计算机可读介质 中的代码。其中编码所述代码或逻辑的介质还可以包括通过空间传播的传 输信号或诸如光纤、铜线之类的传输介质。其中编码所述代码或逻辑的传 输信号还可以包括无线信号、卫星传输、无线电波、红外线信号、蓝牙等。 其中编码所述代码或逻辑的传输信号能够通过发射站发射并且通过接收站 接收,其中在传输信号中编码的代码或逻辑可以被解码并存储在硬件或接 收和发射站或设备处的计算机可读介质中。此外,"制品,,可以包括其中 包含、处理和执行代码的硬件和软件组件的组合。当然,本领域的技术人 员将认识到,可以做出许多修改而不偏离实施例的范围,并且所述制品可 以包括任何信息承载介质。例如,所述制品包括其中存储有指令的存储介 质,当由机器执行时,所述指令将导致操作被执行。
特定实施例可以采取完全硬件实施例、完全软件实施例或包含硬件和 软件元素两者的实施例的形式。在一个优选实施例中,本发明以软件实现, 所述软件包括但不限于固件、驻留软件、微代码等。
此外,特定实施例可以采取可从计算机可用或计算机可读介质访问的 计算机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被 计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合的程 序代码。出于此描述的目的,计算机可用或计算机可读介质可以是任何能 够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与 所述指令执行系统、装置或设备结合的程序的装置。所述介质可以是电、 磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算 机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随 机存取存储器(MM)、只读存储器(R0M)、硬磁盘和光盘。光盘的当前实例 包括光盘-只读存储器(CD-ROM)、光盘-读/写(CR-R/W)和DVD。
术语"特定实施例"、"一个实施例"、"实施例"、"多个实施例"、 "所述实施例,,、"所述多个实施例"、"一个或多个实施例"、"某些 实施例,,和"某一实施例"指一个或多个(但不是所有)实施例,除非另外明确指出。术语"包含"、"包括"、"具有,,及其变型指"包括但不 限于",除非另外明确指出。列举的项目的列表并非暗示任何或所有的项 目互相排斥,除非另外明确指出。术语"一,,、"所述"指"一个或多个,,, 除非另外明确指出。
相互通信的i殳备不必持续地相互通信,除非另外明确指出。此外,相 互通信的设备可以通过一个或多个媒介直接或间接地通信。此外,具有若 干相互通信的组件的实施例的描述并非暗示所有此类组件都是必需的。相 反,描述了多种可选的组件以说明更多可能的实施例。
此外,尽管可以按照连续的顺序来描述处理步骤、方法步骤、算法或 类似步骤,但是此类处理、方法和算法可以,皮配置为以替代顺序工作。换 句话说,所描述的步骤的任何序列或顺序并不一定指示要求按此顺序执行 步骤。实际可以按4壬何顺序执行在此描述的处理的步骤。此外,可以同时、
并行或并发地执行某些步骤。
当在此描述单个设备或物品时,将显而易见的是,可以使用多个设备/ 物品(无论它们是否协作)来代替单个设备/物品。同样,当在此描述了多 个设备或物品(无论它们是否协作)的情况下,将显而易见的是,可以使 用单个设备或物品来代替多个设备或物品。设备的功能和/或特性可以备选 地由一个或多个其他未明确描述为具有此类功能/特性的设备来体现。因 此,其他实施例不必包括^殳备本身。
图5示出了其中可以实现特定实施例的系统500体系结构的方框图。 在特定实施例中,可以根据系统500实现图1所示的存储系统102和主机 106。系统500可以包括电路502,后者在特定实施例中可以包括处理器504。 系统500还可以包括存储器506 (例如,易失性存储器设备)和存储装置 508。系统500的特定元素可以或不能在存储系统102和主机106内找到。 存储装置508可以包括非易失性存储设备(例如,EEPROM、 ROM、 PROM、 RAM、 DARM、 SRAM、闪存、固件、可编程逻辑等),磁盘驱 动器,光盘驱动器,磁带驱动器等。存储装置508可以包括内部存储设备, 附加存储设备和/或可访问网络的存储设备。系统500可以包括程序逻辑510,程序逻辑510包括可以加载到存储器506中并由处理器504或电路 502执行的代码512。在特定实施例中,包括代码512的程序逻辑510可以 被存储在存储装置508中。在其他特定实施例中,可以在电路502中实现 程序逻辑510。因此,虽然图5示出了程序逻辑510与其他元素分离,但 是程序逻辑510可以在存储器506和/或电路502中实现。
特定实施例可以涉及用于由个人或集成计算机可读代码的自动处理将 计算指令部署到计算系统中的方法,其中所述代码结合所迷计算系统被使 能执行所描述的实施例的操作。
至少可以并行以及顺序执行图3和4中示出的某些操作。在备选实施 例中,可以以不同的顺序执行、修改或删除某些操作。
此外,出于说明的目的在单独的模块中描述了许多软件和硬件组件。 此类组件可以集成到更少数量的组件中或者分成更多数量的组件。另外, 所描述的由特定组件执行的某些操作可以由其他组件来执行。
图1-5中示出或指出的数据结构和组件被描述为具有特定类型的信 息。在备选实施例中,可以不同地构造所述数据结构和组件,并且与图中 示出或指出的数据结构和组件相比,可以具有更少的、更多的或不同的字 段或不同的功能。
因此,出于说明和描迷目的提供了以上实施例的描述。其并非旨在是 穷举的或将所迷实施例限于已披露的精确形式。根据上述教导,可以做出 许多修改和变型。
权利要求
1.一种方法,所述方法包括接收来自请求方的访问数据的请求;判定所述请求方是否被授权访问所述数据;判定所述数据是否被加密,以响应判定已授权所述请求方访问所述数据;以及请求来自所述请求方的加密密钥,以响应判定所述数据未被加密。
2. 根据权利要求1的方法,还包括 接收来自所述请求方的所述加密密钥; 使用所述加密密钥来加密所述数据;以及 允许所述请求方访问所述数据。
3. 根据权利要求2的方法,还包括 请求解密密钥,以响应访问所述数据的后续请求。
4. 根据权利要求l的方法,其中通过对逻辑单元、文件、字节、记录、 块、巻或包括所述数据的整个子系统进行寻址来做出访问所述数据的请求。
5. 根据权利要求l的方法,其中所述数据是存储在存储单元中的遗留 数据,其中至少到尝试访问所述遗留数据时为止,所述遗留数据被保持在 未加密状态,并且其中不是遗留数据的数据在所述存储单元内被保持在加 密状态。
6. —种系统,所述系统包括 存储器;以及与所述存储器相连的处理器,其中所迷处理器可操作以执行权利要求 1至5中的任一4又利要求的步骤。
7. —种系统,所述系统包括 主机;以及存储子系统,其中所述存储子系统接收来自所述主机的访问数据的请 求,其中所述存储子系统判定所述主机是否被授权访问所述数据,其中所述存储子系统判定所述数据是否净b口密,以响应判定已授权所述主机访问 所述数据,并且其中所述存储子系统请求加密密钥,以响应判定所述数据 未被力口密。
8. —种包括计算机可读代码的计算机产品,所述计算机可读代码在计 算机上运行时,将执行根据权利要求1至5中的任一权利要求的步骤。
9. 一种部署计算基础结构的方法,所述方法包括将计算机可读代码 集成到控制器中,其中与所述控制器结合的所述代码能够执行根据权利要 求1至5中的任一权利要求的步骤。
全文摘要
在数据加密方法中,接收来自请求方的访问数据的请求。判定所述请求方是否被授权访问所述数据。响应于判定已授权所述请求方访问所述数据,判定所述数据是否被加密。请求来自所述请求方的加密密钥,以响应判定所述数据未被加密。
文档编号G06F21/24GK101410850SQ200780011519
公开日2009年4月15日 申请日期2007年3月28日 优先权日2006年4月18日
发明者M·H·哈通, R·F·科恩, 许育诚 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1