安全环境内工具的安全访问管理的制作方法

文档序号:20708836发布日期:2020-05-12 16:50阅读:135来源:国知局
安全环境内工具的安全访问管理的制作方法

本发明涉及安全访问管理,尤其涉及安全环境内的工具的安全访问管理。



背景技术:

安全环境可以具有防火墙形式的安全周界,防火墙基于预定的安全规则防止未授权的访问。安全环境可以是云系统、联网系统、企业系统等。安全周界可以以无限数量的配置来保护环境,这些配置包括例如云基础设施即服务(iaas)或平台即服务(paas)以及企业网络的组合。

防火墙检查传入和传出的数据包,以根据访问策略进行过滤并阻止恶意流量,并在受信任的安全内部网络与假定不安全或不受信任的另一个外部网络之间建立屏障。通过安全环境的防火墙进行的用户访问可以使用计算机或虚拟专用网(vpn)访问。

现代安全机制包括多因素认证(mfa),它是一种访问控制的方法,其中仅在成功地向认证机制提供若干单独的证据之后才准许用户访问。通常,使用以下证据类别中的至少两种证据类别:知识(用户知晓的东西);拥有(用户具有的东西);以及内在性(用户自身)。

现代安全机制还包括硬件安全模块(hsm),其是保护和管理用于强认证的数字密钥并提供密码处理的物理计算设备。hsm通常是直接连接到计算机或网络服务器的插入式卡或外部设备的形式。

尽管诸如mfa和hsm的现代安全机制易于被采纳用于通过安全环境的周界的用户访问,但是它们更难在安全环境内使用。诸如安全环境内的各个系统、服务或应用程序等工具可能需要执行不同级别的认证和访问控制,这就添加了多种不同的认证机制、工具的不一致支持、以及其他挑战。

具体地,通常需要将某些证书作为文件存储在纯文本中,这削弱了安全性并使管理复杂化。

有些工具在其使用现代安全机制方面具有局限性。例如,某工具可支持使用证书来认证,但可能要求该证书的私钥要以文件的形式提供并且不能用密码短语来加密。这种做法在开发和操作(devops)工具之间是非常常见的。这实际上意味着,为了执行该工具,私钥必须在文件系统中暴露并在用户会话之间存储。这导致不可接受的安全风险。

因此,通常在安全环境的边界内对系统的访问是用较弱的机制来保护的,并且需要额外的管理。



技术实现要素:

本发明的一个实施例提供一种用于安全环境内的工具的安全访问管理的计算机实现的方法,其中安全环境具有安全周界,该方法在安全环境中的服务器处执行,包括:作为包括由用户发起的用户命令的经认证的用户会话的一部分,访问安全环境中的服务器侧的存储器中的用户的虚拟文件系统。该方法还包括在虚拟文件系统处获得存储在安全环境中的加密文件,其中该文件保存敏感数据并且是使用用户的公钥加密的。该方法还包括由处理器拦截在虚拟文件系统处对加密文件的读取操作,并且通过安全连接将加密文件发送到在安全环境外部的用户系统处的客户端,以便由用户系统的远程密码设备使用用户的私钥来解密。此外,该方法包括由处理器在虚拟文件系统处接收解密的文件,使得用户能够运行所需的用户命令。

上述方法的实施例的其它形式是系统形式和计算机程序产品形式。

根据一个方面,提供了一种用于安全环境内的工具的安全访问管理的计算机程序产品,该计算机程序产品包括具有随其体现的程序代码的计算机可读存储介质,该程序代码包括用于以下操作的编程指令:作为包括由用户发起的用户命令的经认证的用户会话的一部分,访问安全环境中的服务器侧的存储器中的用户的虚拟文件系统;在所述虚拟文件系统处获得存储在所述安全环境中的加密文件,其中所述文件保存敏感数据并且是使用所述用户的公钥加密的;拦截在虚拟文件系统处对加密文件的读取操作,并且通过安全连接将加密文件发送到在安全环境外部的用户系统处的客户端,以便由用户系统的远程密码设备使用用户的私钥来解密;以及在虚拟文件系统处接收解密的文件,使得用户能够运行所需的用户命令。

根据另一方面,提供了一种系统,其包括:存储器单元,用于存储用于安全环境中的工具的安全访问管理的计算机程序;以及耦合到存储器单元的处理器,其中处理器被配置为执行计算机程序的程序指令,所述程序指令包括:作为包括由用户发起的用户命令的经认证的用户会话的一部分,访问安全环境中的服务器侧的存储器中的用户的虚拟文件系统;在所述虚拟文件系统处获得存储在所述安全环境中的加密文件,其中所述文件保存敏感数据并且是使用所述用户的公钥加密的;拦截在虚拟文件系统处对加密文件的读取操作,并且通过安全连接将加密文件发送到在安全环境外部的用户系统处的客户端,以便由用户系统的远程密码设备使用用户的私钥来解密;以及在虚拟文件系统处接收解密的文件,使得用户能够运行所需的用户命令。

以上相当概括地概述了本发明的一个或多个实施例的特征和技术优点,以便可以更好地理解以下本发明的详细描述。本发明的其它特征和优点将在下文中描述,其可以构成本发明权利要求的主题。

附图说明

现在将仅通过示例并参考以下附图来描述本发明的优选实施例:

图1是包括其中可实现本发明的安全环境的系统的实施例的示意图;

图2a是在安全环境中执行的根据本发明的方法的一个方面的示例实施例的流程图;

图2b是在安全环境外部的用户处执行的根据本发明的方法的一个方面的示例实施例的流程图;

图3a是根据本发明的方法的一方面的示例实施例的泳道流程图;

图3b是根据本发明的方法的另一方面的示例实施例的流程图;

图4a是在安全环境处的根据本发明的系统的示例实施例的框图;

图4b是在安全环境外部的用户系统处的根据本发明的系统的示例实施例的框图;

图5是其中可以实现本发明的计算机系统或云服务器的实施例的框图;

图6是其中可以实现本发明的云计算环境的示意图;以及

图7是其中可实现本发明的云计算环境的抽象模型层的图。

具体实施方式

根据本发明的实施例,提供了一种用于安全环境内的工具的安全访问管理的计算机实现的方法,其中安全环境具有安全周界,在安全环境内的服务器处执行的所述方法包括:作为包括由用户发起的用户命令的经认证的用户会话的一部分,访问安全环境中的服务器侧的存储器中的用户的虚拟文件系统;在所述虚拟文件系统处获得存储在所述安全环境中的加密文件,其中所述文件保存敏感数据并且是使用所述用户的公钥加密的;拦截在虚拟文件系统处对加密文件的读取操作,并且通过安全连接将加密文件发送到在安全环境外部的用户系统处的客户端,以便由用户系统的远程密码设备使用用户的私钥来解密;以及在虚拟文件系统处接收解密的文件,使得用户能够运行所需的用户命令。

该方法提供了一种虚拟文件系统,该虚拟文件系统接合在被存储的加密敏感数据与对安全环境中的工具的用户命令之间。可以生成用于认证或其他用途的敏感数据,并且利用不离开用户的密码设备的用户私钥来安全地用于每个用户。

虚拟文件系统可以针对每个用户会话生成,或者可以是用户知晓的中央虚拟文件系统,并且可以由用于计算机操作系统在用户空间中创建虚拟文件系统的软件接口来提供。

该方法可以包括从安全环境外部的用户系统接收用以执行加密文件的读取操作的用户命令,并且可以将该用户命令从该命令所指向的工具定向到服务器。

该方法可以包括根据安全环境中存储的访问许可来验证用户是否有访问许可,其中可以与加密文件相关联地存储和访问针对加密文件的访问许可。

该方法可包括为安全环境中的多个工具将加密文件存储在加密文件中央储存库中。在一个实施例中,该方法可以包括在用户会话之前从中央储存库下载加密文件到用户的虚拟文件系统。在另一个实施例中,该方法可包括响应于指向工具的用户命令将加密文件从中央储存库同步到虚拟文件系统,并通过由工具重定向来定位该加密文件。

拦截读取操作可以激活一个到用户系统的安全通道,诸如使用套接字转发(socketforwarding)的安全外壳(ssh)加密网络协议。

该方法可以包括将解密文件在虚拟文件系统中缓存预定的临时时段,并且还可以包括在将加密文件发送到在安全环境外部的用户系统处的客户端之前检查缓存的解密文件。

该方法可以包括管理存储在安全环境中的加密文件,包括代表工具生成加密文件,更新所述文件,和/或审核所述文件的使用。

根据本发明的另一实施例,提供了一种用于安全环境内的工具的安全访问管理的计算机实现的方法,其中该安全环境具有安全周界,该方法在该安全环境外部的客户端处执行,包括:请求在所述安全环境中的服务器处执行命令,作为所述用户的认证的会话的一部分,其中所述请求发起对所述安全环境中的服务器侧的存储器中的用户的虚拟文件系统的访问,作为所述认证的用户会话的一部分;通过安全连接从所述安全环境中的所述虚拟文件系统接收存储在所述安全环境中的加密文件,其中所述文件保存敏感数据并且是使用所述用户的公钥加密的;利用安全环境外部的用户的密码设备使用用户的私钥来解密加密文件;将解密后的文件转发给虚拟文件系统,使用户能运行所需的用户命令。

根据本发明的另一实施例,提供了一种用于安全环境内的工具的安全访问管理的系统,其中该安全环境具有安全周界,该系统在安全环境内被提供并且包括:处理器和存储器,所述存储器被配置为向所述处理器提供计算机程序指令以执行各组件的功能;用于用户的虚拟文件系统,所述虚拟文件系统在安全环境中的服务器侧的存储器中被访问,作为包括由用户发起的用户命令的经认证的用户会话的一部分;文件请求组件,用于在所述虚拟文件系统处获得存储在所述安全环境中的加密文件,其中所述文件保存敏感数据并且是使用所述用户的公钥加密的;文件读取拦截组件,用于拦截在虚拟文件系统处对加密文件的读取操作;文件导出组件,用于通过安全连接将加密文件发送到在安全环境外部的用户系统处的客户端,以便由用户系统的远程密码设备使用用户的私钥来解密;以及文件返回组件,用于在虚拟文件系统处接收解密的文件,使得用户能运行所需的用户命令。

虚拟文件系统可以由用于计算机操作系统在用户空间中创建虚拟文件系统的软件接口来提供,并且可以针对每个用户会话生成,或者可以是用户知晓的中央虚拟文件系统。

该系统可以包括用户命令接收组件,用于从安全环境外部的用户系统接收用以执行对加密文件的读取操作的用户命令,其中将该用户命令从该命令所指向的工具定向到服务器。

该系统可以包括文件访问策略组件,用于在安全环境中验证用户访问存储的访问许可,其中与加密文件相关联地存储和访问加密文件的访问许可。

该系统可以包括用于安全环境内的多个工具的加密文件中央储存库。

该系统可包括文件定位组件,用于接收对安全环境中的工具的用户命令,并通过由该工具重定向来定位相关的加密文件。

用于拦截读取操作的文件读取拦截组件可激活到用户系统的安全通道。

该系统可以包括文件缓存组件,用于将解密文件在虚拟文件系统中缓存预定的临时时段,以及高速缓存检查组件,用于在激活文件导出组件以将加密文件发送到安全环境外部的用户系统处的客户端之前检查缓存的解密文件。

该系统可以包括敏感数据文件管理系统,用于在安全环境中存储和管理加密文件和访问许可,包括代表工具生成加密文件,周期性地更新所述文件和/或审核所述文件的使用。

安全环境可以由云基础设施形成或包括云基础设施。

根据本发明的另一实施例,提供了一种用于安全环境内的工具的安全访问管理的系统,其中该安全环境具有安全周界,该系统在该安全环境外部被提供并且包括:用户系统,包括处理器和存储器,所述存储器被配置为向所述处理器提供计算机程序指令以执行各组件的功能;命令组件,其请求在所述安全环境中的服务器处执行命令,作为所述经认证的用户会话的一部分,其中所述请求发起对所述安全环境中的服务器侧的存储器中的用户的虚拟文件系统的访问,作为所述经认证的用户会话的一部分;加密文件接收组件,用于通过安全连接从所述安全环境中的所述虚拟文件系统接收存储在所述安全环境中的加密文件,其中所述文件保存敏感数据并且是使用所述用户的公钥加密的;密码设备访问组件,用于使用所述用户的私钥利用所述安全环境外部的所述用户的密码设备对所述加密文件进行解密;以及解密文件返回组件,用于将解密文件转发到虚拟文件系统,以使用户运行所需的用户命令。

根据本发明的另一实施例,提供了一种用于安全环境内的工具的安全访问管理的计算机程序产品,其中安全环境具有安全周界,该计算机程序产品包括其上包含有程序指令的计算机可读存储介质,该程序指令可由处理器执行以使该处理器:作为包括由用户发起的用户命令的经认证的用户会话的一部分,访问所述安全环境中的服务器侧的存储器中的用户的虚拟文件系统;在所述虚拟文件系统处获得存储在所述安全环境中的加密文件,其中所述文件保存敏感数据并且是使用所述用户的公钥加密的;在虚拟文件系统处拦截对加密文件的读取操作,并通过安全连接将加密文件发送到安全环境外部的用户系统处的客户端,以便由用户系统的远程密码设备使用用户的私钥来解密;以及在虚拟文件系统处接收解密的文件,使得用户能够运行所需的用户命令。

提供了一种方法和系统,用于通过使用用户的公钥将敏感数据仅以加密形式存储在安全环境中,并将用户的私钥保存在安全环境外部的远程密码设备中,来控制存储在安全环境中使用工具所需的文件中的敏感数据。

敏感数据可以是诸如密钥、用户凭证(credentials)或密码的访问秘密。其他类型的敏感数据可以是文档或可存储在文件中的任何形式的数据。

公钥密码术,或非对称密码术,是使用密钥对的任何密码系统:可能广泛传播的公钥;以及仅为所有者知晓的私钥。这实现了两个功能:认证(authentication),此时使用公钥来验证配对的私钥的持有者是否发送了消息;以及加密,由此只有配对的私钥的持有者才能解密用公钥加密的消息。

安全环境可以是具有诸如基于预定安全规则来防止未授权访问的防火墙等网络安全系统形式的安全周界的任何一组计算机系统。安全环境可以包括互连系统,包括云系统、联网系统、企业系统等或其组合。计算机系统可以是服务器、存储系统等。

安全环境内的受保护工具可包括在服务器或其它联网计算机系统上运行的应用程序、服务、系统、实用程序、分布式应用程序集群等,这些应用程序、服务、系统、实用程序、分布式应用程序集群可能需要用户凭证以访问和使用这些工具。

在所描述的方法和系统中,提供了一种安全访问系统,包括在安全环境中的服务器上提供的虚拟文件系统,其将文件访问与用户所拥有的私钥链接。敏感数据的文件在安全环境中生成,并且仅以使用用户的公钥的加密形式存储以实现加密。使用远离安全环境的密码装置在用户系统上执行私钥操作。在安全环境内托管(hosting)虚拟文件系统的服务器永远无法访问私钥。

提供安全访问系统,其部署在安全环境中的服务器上,并且由用户经由他们的在安全环境外部的计算机系统经由通过安全环境的防火墙的安全连接而连接到安全环境。

可以在安全访问系统的服务器侧的存储器中创建虚拟文件系统,作为由安全环境中的服务器提供的受保护的工具的经认证的用户会话的一部分。为每个用户创建一个虚拟文件系统,因为用户特定的解密密钥是针对每个虚拟文件系统。这可防止用户接触虚拟文件系统中彼此的数据。

经认证的用户要在安全环境中的服务器上运行命令,就必须成功进行授权(authorization)检查,而授权检查必须能够访问该用户的解密形式的文件。

在安全环境中为提供所需工具的服务器存储加密文件,并在用户需要时将其复制到虚拟文件系统。授权检查尝试读取该加密文件并验证许可。从虚拟文件系统的读取操作被拦截。可以通过套接字转发(例如,gnu隐私保护(gpg))进行拦截。

被访问的加密文件在安全连接上被发送到安全访问系统的客户端,以便由远程密码设备使用用户的私钥进行解密。解密的文件被发送回虚拟文件系统,并且被用于检查授权,以允许用户运行所需的命令。解密的文件只是临时保存在虚拟文件系统中,而私钥则从不离开远程密码设备。

所描述的方法和系统为用于管理安全环境内的服务器的低级命令和程序提供了一种有效且安全的授权机制。它允许在安全环境内(例如,在云系统内)的文件系统访问的环境中使用在安全环境之外保存的私钥。

图1是其中可以实现所描述的安全访问管理系统的系统100的示意图。系统100包括具有由防火墙提供的安全边界104的安全环境102。安全环境可以包括多个互连的服务器110、120、130和可以在本地环境中提供的或者可以跨远程位置分布的其他系统。在一个示例中,安全环境102是云环境;然而,网络化环境、企业环境、云环境的其它组合的其组合可包括安全环境102。

用户系统108可以在安全周界104之外提供,并且可以经由安全连接或通道106访问安全环境。在一个实施例中,安全通道是使用转发gpg代理的套接字转发的安全外壳(ssh)密码网络协议。然而,可以使用允许远程系统访问用户在其工作站上的私钥的任何其他安全通道。

用户系统108可以包括或可以访问密码设备150,以存储和管理用户的密钥对,该密钥对的形式为基于安全环境102内的服务器而被分发给工具120的公钥151和不离开密码设备150的私钥152。

hsm是一种物理计算设备,其保护和管理用于强认证的数字密钥,并提供密码处理。hsm通常是直接连接到计算机或网络服务器的插入式卡或外部设备的形式。hsms的功能包括:机载安全密钥生成;机载安全密钥存储和管理;使用加密和敏感数据材料;卸载应用服务器以用于完全不对称和对称密码。

安全环境102中的基于服务器的工具120可以需要文件的安全数据来认证由服务器120提供的服务或应用的用户。工具120可以生成敏感数据的文件122,其可以使用加密组件121利用用户的公钥151来加密。可以用单独的安全供应工作站来集中进行每个工具的秘密生成和加密。

文件分发服务器110可以在安全环境102中提供,用于集中存储由安全环境102内的多个基于服务器的工具120生成的加密文件112。文件分发服务器110可以是网络附连存储(nas)、轻量级目录访问协议(ldap)或在云上托管的文件存储器的形式。文件分发服务器110还可以存储定义可以访问工具120的用户或用户组的访问控制列表(acl)策略111。

提供了访问控制系统130、140,包括在安全环境102中提供的服务器访问控制系统130和在安全环境外部的用户系统108处提供的客户端访问控制系统140。当用户试图访问安全环境102中的提供用户所需的服务或应用的服务器120时,用户会话132激活。

访问控制系统130、140包括虚拟文件系统131,其在具有利用用户的公钥加密的集中存储的文件分发服务器110与在用户的密码设备150上存储的用户的私钥之间进行接合。虚拟文件系统131可以通过钩入操作系统所展示的底层功能来实现。例如,filesysteminuserspace(fuse)是一种像unix(unix是开放组的商标)的计算机操作系统,其使得用户无需编辑内核代码就能创建他们自己的文件系统。这是通过在用户空间中运行文件系统代码而实现的,其中fuse模块提供到实际内核接口的桥接器。

虚拟文件系统131可以实现这样的接口,以拦截对特定文件的读取操作,注入对文件进行解密的逻辑,并作为正常文件去消费。虚拟文件系统131和用户的密码设备150之间的通信使用安全通道106来执行。

参考图2a,流程图200示出了用于安全环境内的系统的安全访问管理的方法的示例实施例,其中安全环境具有安全防火墙周界。流程图200的方法在安全环境中的托管访问控制系统中的托管服务器130处执行。

文件形式的用户凭证,可以被提供用于由安全环境中的服务器托管的、例如服务、应用程序等形式的各种工具,并且可以利用用户的密钥对的公钥来加密。加密的文件可以被传送并存储到安全环境中的文件分发服务器。

可以用单独的安全供应工作站来集中进行每个工具的秘密生成和加密,并将加密的数据上传到文件分发服务器,诸如网络附连存储(nas)、轻量级目录访问协议(ldap)或在云上托管文件存储器。所有数据在传输之前都被加密。

该方法可以访问201安全环境中的服务器侧的存储器中的虚拟文件系统,作为包括由用户发起的用户命令的经认证的用户会话的一部分。虚拟文件系统可以针对每个用户会话启动,或者可以是用户知晓的中央虚拟文件系统。

用户命令可以是向安全环境中的提供用户所需的服务或应用等的工具的登录(login)。用户会话可能通过对文件的内容进行请求来尝试通过虚拟文件系统访问敏感信息或凭证。可以通过安全环境中的工具向服务器访问控制系统进行出站通信(例如,超文本传输协议安全(https)请求),将用户命令定向到访问控制系统。

获得存储在安全环境中的加密文件并将其复制202到虚拟文件系统。可以将加密文件存储在加密文件中央储存库中,用于在安全环境中的多个系统上的认证。使用用户的公钥来加密文件。

验证203用户的访问许可可以通过参考访问控制许可来执行,所述访问控制许可可以存储在安全环境中与加密文件的相同的中央储存库中,或者存储在单独的访问控制许可储存库中。

该方法可以拦截204从虚拟文件系统读取加密文件的操作,并且可以通过安全连接将加密文件发送205到安全环境外部的客户端,以便由用户的远程密码设备使用用户的私钥来解密。

在一个实施例中,该安全连接可以使用具有gpg套接字转发的ssh。虚拟文件系统可以调用在其运行所在服务器上的gpg程序,该gpg程序可以访问用户系统处的gpg代理。这种通信是由gpg程序访问服务器系统的文件系统中的特定unix套接字来完成的。使用ssh套接字转发功能来转发该套接字。这意味着服务器系统上的套接字镜像(mirroring)用户系统上的套接字。这又意味着通过套接字转发,服务器系统上的gpg访问用户系统上的gpg代理。

通过该安全通道,服务器系统上的gpg程序可以执行私钥操作,诸如解密206,其中私钥被存储在用户的系统上而不被暴露给远程服务器系统。

该方法可以在虚拟文件系统处接收207解密的文件,以用于授权用户运行所需的用户命令。解密的文件可以由虚拟文件系统在高速缓存中保持临时的一段时间,以使得解密的文件能在经认证的用户会话中被重复使用。

参考图2b,流程图210示出了用于安全环境内的系统的安全访问管理的方法的示例实施例,其中该安全环境具有安全防火墙周界。流程图210的方法在安全环境外部的客户端即用户系统108处执行。

在211,用户系统处的命令行界面可以请求211在安全环境中的服务器处执行一个命令,作为经认证的用户会话的一部分。该请求可以发起对安全环境中的服务器侧的存储器中的虚拟文件系统的访问,作为如关于图2a所描述的经认证的用户会话的一部分。

作为认证的一部分,用户系统可以通过安全连接从安全环境中的虚拟文件系统接收212存储在安全环境中的加密文件。该文件是用该用户的公钥来加密的。

用户系统可以使用安全环境外部的用户密码设备并使用用户的私钥来解密213加密文件。可以将解密的文件转发214到虚拟文件系统,用于对用户运行所需的用户命令的授权。

参考图3a,泳道流程图300示出了在安全环境中的服务器访问控制系统130与用户系统108之间执行的所述方法的示例实施例。

用户系统108处的命令行界面可以请求311在安全环境中的服务器处的工具处执行一个命令,作为经认证的用户会话的一部分。安全环境中的工具可以向服务器访问控制系统130作出出站通信(例如,超文本传输协议安全(https)请求)。服务器访问控制系统130可以具有或创建一个活动用户会话320,其具有与接收331该用户命令的虚拟文件系统131。

该命令可能试图从安全环境中的访问控制系统130读取332文件x中的敏感数据。

该方法可以定位333文件e(x)的加密版本和文件x的访问策略。

该文件的加密版本和访问策略可能为多个服务器被保存在安全环境中的一个中央储存库中。加密的敏感数据可以从诸如文件分发服务器110的一个中央储存库预下载到用户的虚拟文件系统330。或者,可以通过由该命令所指向的工具重定向到该中央储存库来定位。该命令总是在安全环境中执行。文件的加密版本和访问策略可以直接引用到中央储存库,或者从中央储存库向下同步到安全环境。

服务器访问控制系统130可以执行策略检查334,以确保该命令所源自的用户具有访问该文件或执行所请求的命令的许可。服务器访问控制系统130还可以在服务器访问控制系统130处执行对缓存的解密文件的检查335。如果所请求的文件是以其解密形式被缓存的,则该方法可以使用该缓存的文件。该实施例的进一步细节将参考图3b来描述。

如果用户具有访问文件的许可并且没有找到缓存的解密版本,则服务器访问控制系统130可以拦截336对加密文件e(x)的读取,并且建立到发起命令311的用户系统108的安全连接337。该安全连接可以连接到用户系统108处的客户端访问控制系统140。

服务器访问控制系统130可以将加密文件e(x)发送338到客户端访问控制系统140,在那里可以由用户的密码设备利用用户的私钥对其进行解密351。例如hsm的密码设备可以是用户系统108的一部分,或者可作为附加硬件设备可附接到用户系统108。可以将解密的文件x发送回352服务器访问控制系统130,在那里它可以被接收339并且用于执行用户命令311。

参考图3b,流程图360提供了当处理针对文件x的命令时使用虚拟文件系统在服务器访问控制系统130处执行的功能的示例实施例的进一步细节。

命令行工具试图通过使用存储在文件x中的凭证来向服务器处的工具认证。在安全环境中的永久存储设备上仅存储加密形式的文件x。

该方法可以开始361,并且可以通过在特定路径请求读取362文件x的内容来触发。可以定位363并验证相应的加密文件e(x)。

下一步骤是应用文件x的使用的策略。例如,可以允许为了获得该文件的内容的读取操作,同时可以拒绝对该文件的复制或修改。可以确定364该读取是否通过了针对该文件的访问策略。如果访问策略不通过,则拒绝365该读取对文件x的访问。

如果访问策略通过,则可以确定366文件x是否被缓存在虚拟文件系统的高速缓存中,并且可以在高速缓存中执行查找。高速缓存保存解密文件的列表以及它们的到期时间。如果找到文件x的缓存副本,则可以响应于该读取而立即返回367文件x的内容,然后该方法可以结束368。

如果没有文件x的缓存副本,则该方法可以请求使用远程私钥369,如关于图3a所描述的那样。

对加密文件e(x)进行解密需要解密密钥,该解密密钥是私有的并且仅可用于与命令行工具交互的用户。

一旦在虚拟文件系统处接收到解密的文件x,则将文件x缓存370预定的临时时段以供消费,以供该用户会话中的其它读取操作使用,然后该方法可以结束368。

虚拟文件系统可以限制或隐藏对高速缓存中文件x的明文版本的访问。

在一个示例实施例中,命令行界面针对在物理机器集群上运行的应用容器的群集应用程序接口(api)服务器来运行命令。该集群可通过一组有组织的工作器节点来提供计算能力、联网和存储,保持应用程序以高度可用的方式运行。该集群例如可以是具有kubernetesapi服务器的kubernetes,并且命令行界面可以是kubectl(kubernetes是linux基金会的商标)。

用户工作站的命令行界面可能需要认证,包括例如一对证书和秘密凭证,以便向远程群集api服务器进行认证。证书和秘密凭证都可以以文件系统的形式存在,并且通过命令行界面的配置来引用。

用户可以向命令行界面发出命令。命令行界面可能试图读取秘密凭证。虚拟文件系统可以拦截对秘密凭证的读取操作,并且经由gpg将秘密凭证的加密形式发送到用户工作站。该秘密凭证可以在用户工作站上被解密并被发送回虚拟文件系统。虚拟文件系统可以将该秘密凭证返回给命令行界面,命令行界面可以向api服务器发出该有该秘密凭证的https请求,并且将结果返回给用户。

用户凭证可以以对用户透明的方式周期性地更新,更新的加密文件可以存储在安全环境中的中央储存库中。

访问策略可包括与文件相关的规则的任何组合,包括为其生成存储在文件中的凭证的系统、可访问文件的进程、一天中的时间、用户远程位置等。

虚拟文件系统可以提供注册凭证的任何用途的审核能力,从而简化对需要凭证访问的服务的审核或填补审核中的空白。最后,通过将审核与凭证用途绑定,可以提供对特权操作的审核。

所述系统集成了凭证管理、个人加密密钥和虚拟文件系统。它允许加密文件在系统中安全地分发,同时将诸如私钥的凭证数据作为文件保存在用户系统上。

这种方法大大简化了凭证管理。凭证可在没有用户参与的情况下生成,使用已知的用户公钥加密,并作为加密文件存储在中央位置。这意味着所有凭证都存储在安全周界内,不需要额外的机制来保护其机密性。整个生成和使用流程中的唯一外部值是可以安全地存储在硬件密码设备上的用户私钥。

参考图4a,框图示出了可以在服务器400上提供的服务器访问控制系统130的示例实施例,其包括至少一个处理器401、硬件模块、或者用于执行所描述的组件的功能的电路,所述组件可以是在至少一个处理器上执行的软件单元。可以提供运行并行处理线程的多个处理器,以使得能够并行处理组件的一些或全部功能。存储器402可以被配置为向至少一个处理器401提供计算机指令403以执行所描述的组件的功能。

服务器访问控制系统130包括或能够访问作为经认证的用户会话的一部分在存储器中被访问的虚拟文件系统131,并且可以包括在用户发起的用户命令之后被激活的活动用户会话组件431。

服务器访问控制系统130可以包括用户命令接收组件414,用于从安全环境外部的用户系统接收用户命令以执行对加密文件的读取操作,该用户命令已经从该命令所指向的工具被定向到服务器访问控制系统130。

服务器访问控制系统130可以包括文件请求组件411,用于获得并向虚拟文件系统131复制存储在安全环境内的多个工具的加密文件中央储存库中的安全环境中的加密文件。加密文件可以保存敏感数据,并且使用用户的公钥来加密。

文件请求组件411可以使用文件定位组件413,通过由托管命令指向的工具的服务器将加密文件重定向到中央储存库,来在中央储存库处定位加密文件。

可以提供文件访问策略组件412,用于根据安全环境中存储的访问许可来验证用户是否有访问许可。对加密文件的访问许可也可以存储在中央储存库。

虚拟文件系统131可以具有与虚拟文件系统131中的操作协同操作的组件,包括用于拦截从虚拟文件系统131对加密文件的读取操作的文件读取拦截组件432。文件读取拦截组件432可使用安全连接组件419,例如使用套接字转发来激活安全通道。

虚拟文件系统131可以包括文件导出组件434,用于通过安全通道将加密文件发送到安全环境外部的客户端系统108,以便由用户的远程密码设备使用用户的私钥进行解密。虚拟文件系统131可以包括文件返回组件435,用于在虚拟文件系统131处从客户端系统108接收解密文件,以用于授权用户运行所需的用户命令。

虚拟文件系统131可以包括文件缓存组件436,用于将解密文件在虚拟文件系统131的高速缓存438中缓存预定的临时时段,该预定的临时时段可以由文件期满组件437来管理。虚拟文件系统131可以包括缓存检查组件433,用于在激活文件导出组件434以将加密文件发送到安全环境外部的客户端之前,检查缓存的解密文件。

服务器访问控制系统130可以包括敏感数据文件管理系统420,用于在安全环境中存储和管理加密文件和访问许可。管理系统420可包括用于代表工具生成加密文件的文件加密组件421、用于周期性地更新文件的文件更新组件422、以及用于审核用户对文件的使用的文件审核组件423。

参考图4b,框图示出了可以在用户系统108上提供的客户端访问控制系统140的示例实施例,其包括至少一个处理器441、硬件模块或者用于执行所描述的组件的功能的电路,所述组件可以是在至少一个处理器上执行的软件单元。可以提供运行并行处理线程的多个处理器,以使得能够并行处理组件的一些或全部功能。存储器442可以被配置为向至少一个处理器441提供计算机指令443以执行所描述的组件的功能。客户端系统108可以包括或具有连接到其的密码设备150,例如hsm。

客户端访问控制系统140可以包括命令组件461,用于请求在安全环境中的服务器处执行命令,作为经认证的用户会话的一部分,其中该请求发起对安全环境中的服务器侧的存储器中的虚拟文件系统的访问,作为经认证的用户会话的一部分。

客户端访问控制系统140可以包括安全连接组件450,用于建立从安全环境中的服务器访问控制系统130和虚拟文件系统131到客户端系统108的安全通道。客户端访问控制系统140可以包括加密文件接收组件462,用于经由安全通道来接收保存敏感数据并用用户的公钥加密的加密文件。

客户端访问控制系统140可以包括密码设备访问组件463,用于访问密码设备150并且使用用户的私钥来解密所接收的加密文件。

客户端访问控制系统140可以包括解密文件返回组件464,用于将解密文件转发到服务器访问控制系统130和虚拟文件系统131,用于对用户运行所需的用户命令进行授权。

可以部署该系统以支持在防火墙背后的云供应的基础设施。服务器访问控制系统130和虚拟文件系统131可以部署在云基础设施内部的管理控制台机器上。操作人员可以从他们被提供的工作站经由客户端访问控制系统140而连接到管理控制台机器,并且访问控制系统可以同时在两个机器上操作。

当为操作人员提供基础设施接入时,期望对于devops人员可以使用的系统的每个元件使用单个多因素和硬件支持的认证机制。然而,难以保护对人员可在远程机器上的系统内部使用的特权工具的访问。通常,简化访问管理,例如证书的使用,需要在远程系统上存储访问凭证,例如私钥。使用诸如口令等较弱的认证使管理变得复杂。所描述的方法和系统解决了这些问题。

现在参考图5,示出了计算机系统或服务器形式的系统500的示例的示意图。

计算机系统/服务器512可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器512一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。

计算机系统/服务器512可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器512可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

如图5所示,计算机系统/服务器512以通用计算设备的形式表现。计算机系统/服务器512的组件可以包括但不限于:一个或者多个处理器或者处理单元516,系统存储器528,连接不同系统组件(包括系统存储器528和处理单元516)的总线518。

总线518表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机系统/服务器512典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器512访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)530和/或高速缓存存储器532。计算机系统/服务器512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统534可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。存储器528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块542的程序/实用工具540,可以存储在存储器528中,这样的程序模块542包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块542通常执行本发明所描述的实施例中的功能和/或方法。

计算机系统/服务器512也可以与一个或多个外部设备514(例如键盘、指向设备、显示器524等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器512交互的设备通信,和/或与使得该计算机系统/服务器512能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口522进行。并且,计算机系统/服务器512还可以通过网络适配器520与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器520通过总线518与计算机系统/服务器512的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器512一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

云计算

应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。

云计算是一种服务交付模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用程序、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。

特征如下:

按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。

广泛的网络接入:能力通过网络可用,并且通过促进由异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机和pda)使用的标准机制来访问。

资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的感觉,因为消费者通常既不控制也不知晓所提供的资源的确切位置,但是可能能够指定更高抽象级别的位置(例如国家、州或数据中心)。

快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。

测量服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户帐户)某种抽象水平上利用计量功能来自动控制和优化资源使用。可以监视、控制和报告资源使用情况,从而为所使用服务的提供者和使用者提供透明度。

服务模型如下:

软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用程序可通过诸如网络浏览器(例如,基于网络的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。

平台即服务(paas):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。

基础设施即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。

部署模型如下:

私有云:云基础架构仅为组织运营。它可以由组织或第三方管理,并且可以存在于内部或外部。

社区云:云基础架构由多个组织共享,并支持具有共同关注点(例如,任务,安全要求,策略和合规性注意事项)的特定社区。它可以由组织或第三方管理,并且可以存在于内部或外部。。

公有云:云基础结构可供公众或大型行业团体使用,并由销售云服务的组织所有。

混合云:云基础架构是由两个或更多云(私有,社区或公共)组成的,它们仍然是唯一的实体,但通过标准化或专有技术绑定在一起,从而实现数据和应用程序的可移植性(例如,用于云之间的负载平衡的云突发)

云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。

现在参考图6,描绘了说明性云计算环境650。如图所示,云计算环境650包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点610,本地计算设备例如是个人数字助理(pda)或蜂窝电话654a、台式计算机654b、膝上型计算机654c和/或汽车计算机系统654n。节点610可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境650提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图6中所示的计算设备654a-n的类型仅旨在说明,并且计算节点610和云计算环境650可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。

现在参考图7,示出了由云计算环境650(图6)提供的一组功能抽象层。应当预先理解,图7中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:

硬件和软件层760包括硬件和软件组件。硬件组件的示例包括:主机761;基于risc(精简指令集计算机)架构的服务器762;服务器763;刀片服务器764;存储装置765;以及网络和联网组件766。在一些实施例中,软件组件包括网络应用服务器软件767和数据库软件768。

虚拟化层770提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器771;虚拟存储772;虚拟网络773,包括虚拟专用网络;虚拟应用和操作系统774;以及虚拟客户机775。

在一个示例中,管理层780可以提供以下描述的功能。资源供应781提供对被用来在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价782提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的记账或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户783为消费者和系统管理员提供对云计算环境的访问。服务级别管理784提供云计算资源分配和管理,以便满足所需的服务级别。服务水平协议(sla)的计划和实现785为根据sla预期未来需求的云计算资源提供预先安排和采购。

工作负载层790提供了云计算环境可以被用于的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航791;软件开发和生命周期管理792;虚拟课堂教育传送793;数据分析处理794;事务处理795;以及安全访问管理处理和敏感信息的管理796。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

在不背离本发明的范围的情况下,可以对前述内容进行改进和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1