1.4 安全云存储系统
围绕云存储系统的安全需求,本书提出一种安全云存储系统的框架,通过引入云安全服务的新模式,能够解决云存储系统普遍存在的云存储服务商主动窥探用户数据和云存储系统遭受攻击被动泄露用户数据等主要安全问题,可为用户提供安全可靠的云存储服务。
1.4.1 系统功能分析
为了实现表1.4中列出的安全云存储系统建设需求,安全云存储系统应具备的功能如表1.5所示。
表1.5 安全云存储系统需求与功能映射表
续表
续表
综上所述,一个安全云存储系统应具备用户标识、用户管理、用户鉴别、访问控制、安全审计等用户安全管控功能,以及数据元信息管理、数据脱敏、数据加密、密钥管理、密文检索、数据传输管理、数据备份与恢复、数据共享、数据使用审计等数据安全管理功能。
1.4.2 系统总体框架
为了实现表1.5列出的安全云存储系统应具备的功能,本书提出了如图1.3所示的安全云存储系统总体框架,共包含三部分,分别为云存储系统、云存储服务和云安全服务。
图1.3 安全云存储系统总体框架
(1)云存储系统。包括客户端和服务端,客户端直接面向用户,通过与服务端交互,完成用户登录认证、访问鉴权和数据管理等功能;服务端是云存储系统的中心,负责与客户端、云安全服务和云存储服务进行对接。服务端的功能有:首先,通过实现用户管理、权限管理、数据管理等功能,与客户端进行交互,响应用户登录认证、访问鉴权和数据管理等请求;其次,通过与云安全服务的对接获取数据加/解密、密钥管理、密文检索等安全能力,实现数据安全功能;然后,通过与云存储服务的对接获取数据上传、检索、访问、下载等云存储能力,实现云存储功能。
(2)云安全服务。通过将数据加/解密、密钥管理、密文检索等安全技术以云服务的方式提供给云存储系统的服务端,使其在不需要了解技术原理、功能逻辑的情况下,便能通过相应的云安全服务接口快速获得专业的数据加/解密、密钥管理、密文检索等数据安全能力,为其免去实现复杂性的同时节省时间和维护成本。
(3)云存储服务。以接口的形式为云存储系统提供海量数据存储、检索、访问、下载等能力,可支持Amazon S3、阿里云等公有云存储,以及OpenStack Swift等私有云存储。在进行数据存储或访问操作时,用户还可采用临时授权凭证的方式,使客户端和云存储服务直接进行数据通信。首先,由客户端向服务端发送获取云存储服务临时授权的请求;然后,由服务端使用云存储服务接入凭证获得云存储服务的临时授权凭证,并将其传送给客户端;这样,客户端便可使用临时授权凭证直接与云存储服务进行数据通信。这种方式能够减轻服务端的传输和计算压力,特别是在客户端向云存储平台上传大文件时,网络传输速率不会受制于服务端租用的带宽,传输速率可达到客户端和云存储平台之间通信的最大带宽。
1.4.3 系统功能架构
根据安全云存储系统的总体框架设计,安全云存储系统的用户标识、用户管理、用户鉴别、访问控制、安全审计等用户安全管控功能,以及数据元信息管理、数据传输管理、数据备份与恢复、数据共享等数据安全管理功能需通过系统开发实现,而数据加密、密钥管理、密文检索等数据安全管理功能则可直接调用云安全服务的服务接口来快速实现。安全云存储系统的详细功能架构如图1.4所示。
1.4.3.1 客户端
客户端是安全云存储系统中直接与用户交互的终端应用,功能包括可视化用户界面、用户注册、用户认证、用户管理、数据上传、数据展示、数据下载、数据检索、数据加/解密、密钥管理、密文检索、数据分享等。
(1)用户界面:为用户提供简洁、友好、易操作的客户端可视化界面,包括用户注册界面、登录认证界面、用户管理界面、数据上传界面、数据展示界面、数据下载界面、数据检索界面、数据分享界面等。
(2)用户注册:为用户提供注册功能,获取用户的账户名及口令,向服务端提交用户注册请求。
(3)用户认证:为用户提供登录认证入口,向服务端提交用户登录认证请求,确保只有合法的用户在认证成功后才能进入安全云存储系统,保障用户数据的安全。
(4)用户管理:为普通用户提供用户信息修改功能,为管理员提供用户查看、用户新建、用户删除等功能,向服务端提交相应的用户管理请求。
(5)数据上传:为用户提供数据上传操作界面,将用户数据上传至服务端,并实时展示数据上传的进度和结果。
(6)数据展示:为用户提供数据展示界面,向服务端提交数据列出请求,并展示用户全部数据信息。
图1.4 安全云存储系统的详细功能架构
(7)数据下载:为用户提供数据下载操作界面,向服务端提交数据下载请求,并实时展示数据下载的进度和结果。
(8)数据检索:为用户提供普通检索和高级检索两种检索方式,向服务端提交数据检索请求,并展示数据检索的结果。
(9)数据加/解密:为用户提供数据透明加/解密功能,保证用户在客户端本地即可使用密钥对数据进行加/解密操作,解决云存储服务商不可信带来的数据安全问题。
(10)密钥管理:为用户提供数据加/解密密钥管理功能,包括密钥生成、密钥上传和密钥获取,向服务端提交相应的密钥管理请求并接收返回的结果。
(11)密文检索:为用户提供密文检索功能,包括密文索引生成、密文索引上传和密文索引检索,向服务端提交密文上传请求或密文检索请求,并接收检索的结果,保证用户在无须解密全部数据的情况下即可直接对密文进行快速检索。
(12)数据分享:为用户提供数据分享功能,向服务端提交数据分享操作请求,并接收处理的结果,将密文数据安全地分享给其他用户。
此外,为便于管理员进行管理,根据“三权分立”的原则,客户端还包括系统管理员客户端、安全保密管理员客户端、安全审计员客户端三种类型,不同客户端根据管理员权限实现不同功能。其中,系统管理员客户端主要包括系统常规配置管理、系统状态查看、数据备份恢复等功能;安全保密管理员客户端主要包括系统安全配置、用户权限管理、安全事件分析和处理等功能;安全审计员客户端主要包括安全审计日志浏览、查询、分析等功能。
1.4.3.2 服务端
服务端是安全云存储系统的核心模块,向上响应客户端的各项请求,提供相应的服务调用,同时为管理员提供管理员操作界面;向下负责云存储服务和云安全服务的对接与调度,获取云存储服务和云安全服务。服务端的功能分为四类:系统基本功能、基础安全服务、数据管理功能和数据安全服务。
(1)系统基本功能。系统基本功能包括安全云存储系统需要具备的基本功能模块,包括用户管理、用户信息存储、系统配置、系统监控。
①用户管理:对用户进行新建、删除、修改、查询等基本管理操作。
②用户信息存储:建立用户信息数据库,存储用户信息。
③系统配置:对系统相关参数进行配置,包括服务器参数配置、数据库参数配置等。
④系统监控:对系统运行状态进行监控,包括服务器运行状态、数据库运行状态、磁盘使用情况、内存占用情况等。
(2)基础安全服务。基础安全服务以安全云存储系统的用户安全为核心,包括用户标识、用户鉴别、访问控制和安全审计等功能模块。
①用户标识:响应客户端的用户注册请求,标识用户所有信息,包括账户名、口令、注册时间等信息,并保存至用户信息数据库中。
②用户鉴别:响应客户端的用户认证请求,鉴别用户的身份信息,并将鉴别结果返回至客户端。
③访问控制:采用基于角色的访问控制机制,将用户分为普通用户、系统管理员、安全保密管理员和安全审计员,根据角色类型分配相应的权限。当用户通过鉴别后进入系统进行访问或操作时,通过获取用户角色信息判断其是否具备相应的访问或操作权限。
④安全审计:对用户的所有操作行为进行日志记录,包括主体、客体、行为、时间、行为结果等内容,同时提供日志查询和日志分析功能。
(3)数据管理功能。数据管理功能包括安全云存储系统需要具备的数据管理功能模块,包括数据存储、数据元信息存储、数据列出、数据下载、数据检索和云存储服务对接。
①数据存储:响应客户端的数据上传请求,接收用户数据并存储至云存储平台中。
②数据元信息存储:建立数据元信息数据库,存储数据元信息,包括数据名称、数据大小、数据创建时间、数据修改时间、数据存储位置等内容。
③数据列出:响应客户端的数据列出请求,查询、获取请求用户的所有数据元信息,并发送至客户端。
④数据下载:响应客户端的数据下载请求,从云存储平台中下载指定数据,并发送至客户端。
⑤数据检索:响应客户端的数据检索请求,根据检索条件对数据元信息或密文索引信息进行检索,并将检索结果返回至客户端。
⑥云存储服务对接:采用标准接口获取公有云存储服务或私有云存储服务,将数据上传至云存储平台中或从云存储平台中下载数据。
(4)数据安全服务。数据安全服务以安全云存储系统的数据安全为核心,包括数据加/解密、密钥管理、密文检索、数据分享和云安全服务对接等功能模块。
①数据加/解密:响应客户端的数据加/解密请求,调用云安全服务对接模块的数据加/解密组件,并返回至客户端。
②密钥管理:响应客户端的密钥管理请求,调用云安全服务对接模块的密钥管理服务进行密钥管理操作,包括密钥上传、密钥获取和密钥删除。
③密文检索:响应客户端的密文检索请求,调用云安全服务对接模块的密文检索服务进行密文索引管理操作,包括密文索引上传、密文索引检索和密文索引删除。
④数据分享:响应客户端的数据分享请求,进行数据分享管理操作,包括分享数据、获取分享列表、取消分享、获取被分享列表、下载打开被分享的数据等。被分享的数据均为密文数据,被分享者在打开时需申请获取解密密钥,没有密钥则无法打开数据,从而保证数据的安全性。
⑤云安全服务对接:采用标准接口获取云安全服务中的各项功能,包括数据加/解密、密钥管理、密文检索等。
1.4.4 云安全服务
云安全服务作为网络安全服务的最新服务形式,将云计算技术和业务模式应用于网络安全领域,以云的方式交付安全能力,已经成为安全服务行业新的竞争领域,各种云安全服务产品竞相推出,目前常见的主要有主机安全类、网络安全类、数据安全类、应用安全类和安全运营类等产品。本书安全云存储系统提供的是数据安全类云安全服务,以规范化、易集成、跨平台的接口调用形式对外提供数据安全能力,包括数据加密、密钥管理、密文检索等。安全云存储系统建设者不必了解相关密码学知识,不必构建纷繁复杂的密钥管理系统,不必关心数据安全功能的内部实现逻辑,只需调用开放接口即可获得专业、强大的数据安全能力,免去了密码定制开发的工作。
云安全服务基于云计算平台实现,包括安全组件和安全服务端两部分,系统架构如图1.5所示。其中,安全组件以一种易集成的、标准API的形式对外提供服务,使用多种编程语言实现,兼容目前主流的桌面和移动操作系统,便于用户简单、快速地将安全组件集成到自身应用中,调用安全组件提供的开放接口即可实现数据加/解密、密钥管理、密文检索等功能。安全服务端为安全组件的各个功能接口提供配套服务,并存放用户认证信息、密钥信息、密文索引信息等。安全组件和安全服务端之间使用安全传输信道进行通信。
使用云安全服务的用户首先需使用接入凭证进行用户认证,认证通过后便可获取数据加/解密、数据同步、密钥管理和密文检索等安全服务。
(1)数据加/解密:以安全组件的形式为用户提供基于国际密码标准和国产密码算法的统一加/解密功能,用户只需获取该安全组件并调用相应接口,即可获取数据加/解密能力。数据加/解密服务采用“一文一密”的加密方式,支持用户自定义加/解密配置和加/解密算法,支持的密码算法包括且不限于SM1、SM4、3DES、AES-128、AES-196、AES-258等。其中,SM1算法和SM4算法是我国自主设计的分组对称密码算法,均可用于实现数据的加/解密运算,以保证数据和信息的机密性。
图1.5 云安全服务的系统架构
(2)数据同步:通过安全组件中的数据同步接口对外提供数据同步服务,将用户上传的数据密文索引信息发送至安全服务端进行存储。
(3)密钥管理:通过安全组件中的密钥管理接口对外提供密钥管理服务,采用主密钥、密钥加密密钥、会话密钥、文件加密密钥等多级密钥管理方法,实现多级密钥生成、使用、更新、备份和恢复等全生命周期管理方案,根据密钥管理策略对用户授予多级密钥的使用权限。通过密钥备份功能对主密钥、密钥加密密钥和文件加密密钥等进行备份,防止密钥丢失带来的安全问题。备份的数据也包括和加密密钥有关的其他数据库文件(如加密密钥和文件的对应关系表、用户表)等。
(4)密文检索:通过安全组件中的密文检索接口对外提供密文检索服务,采用倒排表或聚类数据结构建立良好的密文索引模型,支持针对txt、pdf、word等非结构化数据的密文快速检索,支持多关键词可排序密文全文检索,同时不泄露检索内容。
此外,云安全服务还具备安全审计功能,可对获取云安全服务的用户操作行为进行日志记录,日志信息包括操作主体、客体、行为、时间、行为结果等内容,同时提供日志浏览查询和系统行为分析等审计功能。
1.4.5 系统优势特色
通过引入灵活、便捷、专业的云安全服务,安全云存储系统能够提供安全、可靠的云存储服务,具有安全自主可控、用户隐私保护、密文高效检索等优势特色。
(1)安全自主可控。在目前常用的典型云存储案例中,用户数据的安全性完全依赖于云存储服务商的安全、可信,从而存在云存储服务商主动或被动泄露用户数据的隐患。安全云存储系统实现所有数据安全功能,脱离了对云存储服务商的依赖,可解决由于云存储服务商不可信造成的用户数据泄露问题,从而为用户提供安全的数据存储服务。
(2)用户隐私保护。在大多云存储系统中,用户数据普遍以明文形式保存,存在用户隐私数据被云端管理员或其他用户窥探、窃取的风险。安全云存储系统通过获取云安全服务中的数据加密能力,实现了用户数据上传之前的加密功能,且采用“一文一密”的加密方式、多级密钥管理模式、密钥和密文分离存储的管理方式,可解决云存储服务商浏览、窥探用户数据的安全隐患,保护用户隐私数据。
(3)密文高效检索。数据加密存储后将不再具备明文数据的一些特征,传统的明文内容检索技术将无法应用在密文上,给实际应用带来很大的局限性。安全云存储系统通过获取云安全服务中的密文检索能力可提供密文检索服务,使得用户在无须解密数据的情况下就能够直接对密文内容进行高效检索,便捷、安全且快速。