数据安全解决方案.docx
数据安全解决方案名目数据安全解决方案11. 数据安全与防泄密保护系统模型31.1. 数据威逼模型32. 数据安全与防泄密系统模型形式化描述53. 数据加密与封装技术73.1. 数据加密保护机制73.2. 数据加密策略73.3. 数据加密保护流程84. 密钥治理技术114.1. 密胡治理模型115. 数字证书125.1. 签名和加密125.2. 一个加密通信过程的演化125.2.1. 第一阶段135.2.2. 其次阶段135.2.3. 第三阶段145.2.4. 第四阶段155.2.5. 第五阶段175.2.6. 完整过程175.3. 数字证书原理186. 内容安全191. 数据安全与防泄密保护系统模型1.1. 数据威逼模型数据的安全技术主要建立在保密性(Confidentiality)、完整性(Integrity)和可用性(Availability)三个安全原则根底之上。实际上,数据面临着严峻的威逼(如以下图所示),主要受到通信因素、存储因素、身份认证、访问掌握、数据公布、审计因素、制度因素和人员问题八大因素,具体因素内容在图 2-1 中具体的列举出来。数据威逼模型(1) 通信威逼通信威逼指数据在网络通信和传输过程中所面临的威逼因素,主要包括数据截获算改、盗窃和监听、蠕虫和拒绝效劳攻击。(2) 存储因素存储因素是指数据在存储过程中由于物理安全所面临的威逼,包括自然因素或者人为因素导致的数据破坏、盗窃或者丧失。(3) 身份认证身份认证因素是指数据面临的各种与身份认证有关的威逼,包括外部认证效劳患病攻击、通过非法方式(如使用特洛伊木马、网络探等)猎取用户认证信息、身份抵赖。(4) 访问掌握因素访问掌握因素是指数据面临的全部对用户授权和访问掌握的威逼因素,主要包括未经授权的数据访问、用户错误操作或滥用权限、通过推理通道猎取一些无权猎取的信息。(5) 数据公布因素数据公布因素是指在开放式环境下,数据公布过程中所患病的隐私侵害、数据盗版等威逼因素。(6) 审计因素审计因素是指在审计过程中所面临的威逼因素,如审计记录无法分析、审计记录不全面、审计攻能被攻击者或治理员恶意关闭。(7) 法律制度因素法律制度因素是指由于法律制度相关缘由而使数据面临威逼,主要缘由包括信息安全保障法律制度不健全、对攻击者的法律责任追究不够。(8) 内部人员因素人员因素是指由于内部人士的疏忽或其它因素导致数据面临威逼,如治理员滥用权力、用户滥用权限、治理员的安全意识不强等。2. 数据安全与防泄密系统模型形式化描述一个安全的数据防泄密信任模型包括主体、客体、数据内容加密保护、权限许可状态治理等四局部。其中,数据内容瞬态加密保护是最为核心也最为根底的阶段,而权限许可状态打算了数据使用掌握的安全许可粒度。数据安全与防泄密系统模型(1) 主体数据安全与防泄密信任模型中主体是指数据使用主体、分发主体、创立主体、治理主体。其中,前两者是数据用户,而后两者则是用于治理数据的主体。(2) 客体客体是指授权主体执行权限的对象,包括一切形式的电子数据作品。(3) 数据内容加密保护数据内容瞬态加密保护模型本质上是在内核态安全执行环境(Kemel environment, KE)下,对原始明文内容在特定的密钥治理组件掌握下实施瞬态同步(SYN)加解密(Crypto),生成受保护内 容 C 的一个复合模型。涉及到相关加解密(对称加解密、非对称加解密)、摘要和签名等根本操作,而对称加密涉及到 ECB、CBC、OFB、CFB 等加密模式密钥包括密胡的生成、分发、撤消、更等环节。(4) 权限许可状态治理权限许可状态治理模型通过不同的授权方式(比方用户授权、使用时间、设备授权、环境授权、文件授权等)对文件设置不同的操作权限,细化到阅读次数、使用有效期限、使用地点等权限,防止用户非法拷贝、复制、打印、下载文件、通过电子邮件、移动硬盘等传输介质泄 密。3. 数据加密与封装技术3.1. 数据加密保护机制数据加密保护基于如下机制:(1) 过滤驱动文件透亮加解密:承受系统指定的加解密策略(如加解密算法、密钥和文件类型等),在数据创立、存储、传输的瞬态进展自动加密,整个过程完全不需要用户的参与,用户无法干预数据在创立、存储、传输、 分发过程中的安全状态和安全属性。(2) 内容加密:系统对数据使用对称加密密钥加密,然后打包封装。数据可以在分发前预先加密打包存储,也可以在分发时即时加密打包。(3) 内容完整性:内容发送方向接收方发送数据时,数据包包含数据的 Hash 值,接收方收到数据包解密后获得数据明文,计算 Hash 值,并与对应数据包中携带的Hash 值作比较,两者一样表示该数据信息未在传输过程中被修改。(4) 身份认证:全部的用户都各自拥有自己唯一的数字证书和公私钥对,发送方和接收方通过 PKI 证书认证机制,相互确认对方身份的合法性。(5) 牢靠与完整性:为保证数据包的牢靠性和完整性,数据包中携带的重要信息(如内容加密密钥)承受接收方的 公钢进展加密封装,从而将数据包绑定到该接收方,确保仅有指定的接收方才能正确解密该数据包,使用其私钥提取内容加密密钢。另外,发送方向接收方发送数据包前,先用其私钥对封装后的数据包进展数字签名。接收方对收到的数据包承受发送方的公朗对数字签名进展验证, 从而确认数据包是否来自于发送方,且在传输过程中未被修改。3.2. 数据加密策略数据加解密系统承受系统指定的加解密策略(如加解密算法、密钥和文件类型等)自动的对数据进展加解密操作,从而对数据安全便利有效的进展保护。针对不同的文件类型,系统将自动承受不同的密钥以及算法对数据文件进展加密,实时动态的对数据进展保护。数据加密策略主要包括加解密算法、密钥生成算法、密钥保护算法、密钥类型以及文件类型等。本模型主要承受的密码学算法列表如下:数据加解密策略列表3.3. 数据加密保护流程开放络环境下数据加密保护流程包括:开放网络环境下数据加密保护流程图l 数据创立者创立电子文档,客户端承受过滤驱动透亮加解密技术对电子文档进展加密,数据以密文形式存储在终端中l 创立者设置数据消息安全属性 Leve/ (如密级)以及相关权限信息 Metedata.不同的等级对应不同的权限操作l 创立者将内容加密密钥以效劳端的公钥进展加密l 创立者将数据明文作 Hash 计算,并将数据密文、明文 Hash 值、密钥加密密钥以及权限信息进展打包封装l 创立者通过私钥对数据包进展签名以保证数据包的牢靠性和完整性,发送给效劳端备份存储l 效劳端收到数据包后,用创立者的公钥验证数据签名以确认数据包的牢靠性和完整性,并利用自己的私钥提取内容加密密钥以及数据的相关安全属性l 效劳端通过提取出来的内容加密密钥对数据密文进展解密后,将得到的数据明文做 Hash计算与数据包中提取出来的 Hash 值做比较,假设比较全都,则依据相关安全属性对数据进展备份存储场景描述:A:发送方 B:接收方A 要发送一段消息给 B,但是又不想以明文发送,所以就需要对消息进展加密.假设承受对称加密技术,那么加密与解密用的是同一把秘钥.除非 B 事先就知道 A 的秘钥,并且保存好.这样才可以解密A 发来的消息.由于对称技术只有一把秘钥,所以秘钥的治理是一个很麻烦的问题.而非对称技术的诞生就解决了这个问题.非对称加密与解密使用的是不同的秘钥,并且秘钥对是一一对应的,即用 A 的私钥加密的密文只有用A 的公钥才能解密.这样的话,每个人都有两把秘钥,私钥和公钥,私钥是只有自己才知道的,不能告知别人,而公钥是公开的,大家都可以知道.这样,当 A 想要发送消息给B 的时候,只需要用 B 的公钥对消息进展加密就可以了,由于B 的私钥只有B 才拥有,所以A 用B 的公钥加密的消息只有B 才能解开.而 B 想更换自己的密钥时也很便利,只须把公钥告知大家就可以了.那么,既然非对称加密如此之好,对称加密就没有存在的必要了啊,其实不然,由于非对称加密算法的开销很大,所以假设直接以非对称技术来加密发送的消息效率会很差.那么怎么办呢?解决的方法也很简洁,就是把对称加密技术与非对称加密技术结合起来使用.A 要发送一个消息给 Bl A 先生成一个对称秘钥,这个秘钥可以是随机生成的,l A 用B 的公钥加密第一步生成的这个对称秘钥l A 把加密过的对称秘钥发给Bl A 用第一步生成的这个对称秘钥加密实际要发的消息l A 把用对称秘钥加密的消息发给B 对于Bl 他先收到A 发来的对称秘钥,这个秘钥是用B 的公钥加密过的,所以B 需要用自己的私钥来解密这个秘钥然后B 又收到A 发来的密文,这时候用刚刚解密出来的秘钥来解密密文这样子的整个过程既保证了安全,又保证了效率.4. 密钥治理技术4.1. 密胡治理模型在一个安全系统中,总体安全性依靠于很多不同的因素,例如算法的强度、密钥的大小、口令的选择、协议的安全性等 ,其中对密钥或口令的保护是尤其重要的。依据柯克霍夫假设(KerckhoffsAssumption),密码系统的安全完全取决于可随时转变的密钥。即使密码算法公开 , 也不会危及密码体制的安全性,但是,当密钥丧失时,非法用户将有可能窃取保密信息。另外, 有预谋的修改密钥和对密钥进展其他形式的非法操作,将涉及到整个安全系统的安全性。因此,密钥治理在整个密码系统中是极其重要的。密钥治理包括密钥的产生、装入、存储、备 份、安排、更、撤消和销毁等环节,是供给数据保密性、数据完整性、可用性、可审查性 和不行抵赖性等安全技术的根底。5. 数字证书5.1. 签名和加密我们说加密,是指对某个内容加密,加密后的内容还可以通过解密进展复原。比方我们把一封邮件进展加密,加密后的内容在网络上进展传输,接收者在收到后,通过解密可以复原邮件的真实内容。这里主要解释一下签名,签名就是在信息的后面再加上一段内容,可以证明信息没有被修改正,怎么样可以到达这个效果呢?一般是对信息做一个hash 计算得到一个 hash 值,留意,这个过程是不行逆的,也就是说无法通过 hash 值得出原来的信息内容。在把信息发送出去时,把这个 hash 值加密后做为一个签名和信息一起发出去。接收方在收到信息后,会重计算信息的 hash 值,并和信息所附带的 hash 值(解密后)进展比照,假设全都,就说明信息的内容没有被修改正,由于这里hash 计算可以保证不同的内容肯定会得到不同的hash 值,所以只要内容一被修改,依据信息内容计算的 hash 值就会变化。固然,不怀好意的人也可以修改信息内容的同时也修改 hash 值,从而让它们可以相匹配,为了防止这种状况, hash 值一般都会加密后(也就是签名)再和信息一起发送,以保证这个 hash 值不被修改。至于如何让别人可以解密这个签名,这个过程涉及到数字证书等概念,我们后面在说到数字证书时再具体说明,这里您先只需先理解签名的这个概念。5.2. 一个加密通信过程的演化我们来看一个例子,现在假设“效劳器”和“客户”要在网络上通信,并且他们打算使用 RSA(参看前面的 RSA 简介)来对通信进展加密以保证谈话内容的安全。由于是使用RSA 这种公钥密码体制,“效劳器”需要对外公布公钥(算法不需要公布,RSA 的算法大家都知道),自己留着私钥。“客户”通过某些途径拿到了“效劳器”公布的公钥,客户并不知道私钥。 “客户”具体是通过什么途径猎取公钥的,我们后面再来说明,下面看一下双方如何进展保 密的通信。5.2.1. 第一阶段l “客户”->“效劳器”:你好l “效劳器”->“客户”:你好,我是效劳器l “客户”->“效劳器”:?由于消息是在网络上传输的,有人可以冒充自己是“效劳器”来向客户发送信息。黑客 在“客户”和“效劳器”之间的某个路由器上截获“客户”发给效劳器的信息,然后自己冒充“效劳器”。例如上面的消息可以被黑客截获如下:l “客户”->“黑客”:你好l “黑客”->“客户”:你好,我是效劳器因此“客户”在接到消息后,并不能确定这个消息就是由“效劳器”发出的,某些“黑客”也 可以冒充“效劳器”发出这个消息。如何确定信息是由“效劳器”发过来的呢?有一个解决方法, 由于只有效劳器有私钥,所以假设只要能够确认对方有私钥,那么对方就是“效劳器”。因此 通信过程可以改进为如下:5.2.2. 其次阶段l “客户”->“效劳器”:你好l “效劳器”->“客户”:你好,我是效劳器l “客户”->“效劳器”:向我证明你就是效劳器l “效劳器”->“客户”:你好,我是效劳器 你好,我是效劳器私钥|RSA留意:这里商定一下, 表示 RSA 加密后的内容, | 表示用什么密钥和算法进展加密,后面的例如中都用这种表示方式,例如上面的 你好,我是效劳器私钥|RSA 就表示用私钥对“你好,我是效劳器”进展加密后的结果。为了向“客户”证明自己是“效劳器”,“效劳器”把一个字符串用自己的私钥加密,把明文和加密后的密文一起发给“客户”。对于这里的例子来说,就是把字符串“你好,我是 效劳器”和这个字符串用私钥加密后的内容 你好,我是效劳器私钥|RSA 发给客户。“客户”收到信息后,她用自己持有的公钥解密密文,和明文进展比照,假设全都,说明信息确实是由效劳器发过来的。也就是说“客户”把 你好,我是效劳器私钥|RSA 这个内容用公钥进展解密,然后和“你好,我是效劳器”比照。由于由“效劳器”用私钥加密后的内容,由并且只能由公钥进展解密,私钥只有“效劳器”持有,所以假设解密出来的内容是能够对得上的,那说明信息肯定是从“效劳器”发过来的。假设“黑客”想冒充“效劳器”:l “黑客”->“客户”:你好,我是效劳器l “客户”->“黑客”:向我证明你就是效劳器l “黑客”->“客户”:你好,我是效劳器 你好,我是效劳器?|RSAl “客户”->“黑客”:?这里黑客无法冒充,由于他不知道私钥,无法用私钥加密某个字符串后发送给客户去验证。由于“黑客”没有“效劳器”的私钥,因此它发送过去的内容,“客户”是无法通过效劳器的公钥解密的,因此可以认定对方是个冒牌货!到这里为止,“客户”就可以确认“效劳器”的身份了,可以放心和“效劳器”进展通信,但是这里有一个问题,通信的内容在网络上还是无法保密。为什么无法保密呢?通信过程不是可以用公钥、私钥加密吗?其有用 RSA 的私钥和公钥是不行的,我们来具体分析下过程,看下面的演示:5.2.3. 第三阶段l “客户”->“效劳器”:你好l “效劳器”->“客户”:你好,我是效劳器l “客户”->“效劳器”:向我证明你就是效劳器l “效劳器”->“客户”:你好,我是效劳器 你好,我是效劳器私钥|RSAl “客户”->“效劳器”:我的帐号是 aaa,密码是 123,把我的余额的信息发给我看看公钥|RSAl “效劳器”->“客户”:你的余额是 100 元私钥|RSA留意上面的的信息 你的余额是 100 元私钥,这个是“效劳器”用私钥加密后的内容, 但是我们之前说了,公钥是公布出去的,因此全部的人都知道公钥,所以除了“客户”,其它的人也可以用公钥对你的余额是 100 元私钥进展解密。所以假设“效劳器”用私钥加密发给“客户”,这个信息是无法保密的,由于只要有公钥就可以解密这内容。然而“效劳器”也不能用公钥对发送的内容进展加密,由于“客户”没有私钥,发送给“客户”也解密不了。这样问题就又来了,那又如何解决呢?在实际的应用过程,一般是通过引入对称加密来解决这个问题,看下面的演示:5.2.4. 第四阶段l “客户”->“效劳器”:你好l “效劳器”->“客户”:你好,我是效劳器l “客户”->“效劳器”:向我证明你就是效劳器l “效劳器”->“客户”:你好,我是效劳器 你好,我是效劳器私钥|RSAl “客户”->“效劳器”:我们后面的通信过程,用对称加密来进展,这里是对称加密算法和密钥公钥|RSAl “效劳器”->“客户”:OK,收到!密钥|对称加密算法l “客户”->“效劳器”:我的帐号是 aaa,密码是 123,把我的余额的信息发给我看看密钥|对称加密算法l “效劳器”->“客户”:你的余额是 100 元密钥|对称加密算法在上面的通信过程中,“客户”在确认了“效劳器”的身份后,“客户”自己选择一个对称加密算法和一个密钥,把这个对称加密算法和密钥一起用公钥加密后发送给“效劳器”。 留意,由于对称加密算法和密钥是用公钥加密的,就算这个加密后的内容被“黑客”截获了, 由于没有私钥,“黑客”也无从知道对称加密算法和密钥的内容。由于是用公钥加密的,只有私钥能够解密,这样就可以保证只有效劳器可以知道对称加密算法和密钥,而其它人不行能知道(这个对称加密算法和密钥是“客户”自己选择的,所 以“客户”自己固然知道如何解密加密)。这样“效劳器”和“客户”就可以用对称加密算 法和密钥来加密通信的内容了。到这里,“客户”就可以确认“效劳器”的身份,并且双方的通信内容可以进展加密,其他人就算截获了通信内容,也无法解密。确实,似乎通信的过程是比较安全了。但是这里还留有一个问题,在最开头我们就说过,“效劳器”要对外公布公钥,那“效劳器”如何把公钥发送给“客户”呢?我们第一反响可能会想到以下的两个方法:l A:把公钥放到互联网的某个地方的一个下载地址,事先给“客户”去下载。l B:每次和“客户”开头通信时,“效劳器”把公钥发给“客户”。但是这个两个方法都有肯定的问题,对于A 方法,“客户”无法确定这个下载地址是不是“效劳器”公布的,你凭什么就信任这个地址下载的东西就是“效劳器”公布的而不是别人伪造的呢,万一下载到一个假的怎 么办?另外要全部的“客户”都在通信前事先去下载公钥也很不现实。对于B 方法,也有问题,由于任何人都可以自己生成一对公钥和私钥,他只要向“客户” 发送他自己的私钥就可以冒充“效劳器”了。示意如下:l “客户”->“黑客”:你好/黑客截获“客户”发给“效劳器”的消息l “黑客”->“客户”:你好,我是效劳器,这个是我的公钥/黑客自己生成一对公钥和私钥,把公钥发给“客户”,自己保存私钥l “客户”->“黑客”:向我证明你就是效劳器l “黑客”->“客户”:你好,我是效劳器 你好,我是效劳器黑客自己的私钥|RSA/客户收到“黑客”用私钥加密的信息后,是可以用“黑客”发给自己的公钥解密的,从而会误认为“黑客”是“效劳器”因此“黑客”只需要自己生成一对公钥和私钥,然后把公钥发送给“客户”,自己保存私钥,这样由于“客户”可以用黑客的公钥解密黑客的私钥加密的内容,“客户”就会信任 “黑客”是“效劳器”,从而导致了安全问题。这里问题的根源就在于,大家都可以生成公钥、私钥对,无法确认公钥对到底是谁的。假设能够确定公钥到底是谁的,就不会有这个问 题了。例如,假设收到“黑客”冒充“效劳器”发过来的公钥,经过某种检查,假设能够觉察这个公钥不是“效劳器”的就好了。为了解决这个问题,数字证书消灭了,它可以解决我们上面的问题。先或许看下什么是数字证书,一个证书包含下面的具体内容:l 证书的公布机构l 证书的有效期l 公钥l 证书全部者Subjectl 签名所使用的算法l 指纹以及指纹算法证书的内容的具体解释会在后面具体解释,这里先只需要搞清楚一点,数字证书可以保证数字证书里的公钥确实是这个证书的全部者(Subject)的,或者证书可以用来确认对方的身份。也就是说,我们拿到一个数字证书,我们可以推断出这个数字证书到底是谁的。至于是如何推断的,后面会在具体争论数字证书时具体解释。现在把前面的通信过程使用数字证书 修改为如下:5.2.5. 第五阶段l “客户”->“效劳器”:你好l “效劳器”->“客户”:你好,我是效劳器,这里是我的数字证书/这里用证书代替了公钥l “客户”->“效劳器”:向我证明你就是效劳器l “效劳器”->“客户”:你好,我是效劳器 你好,我是效劳器私钥|RSA留意:上面其次次通信,“效劳器”把自己的证书发给了“客户”,而不是发送公钥。“客户”可以依据证书校验这个证书到底是不是“效劳器”的,也就是能校验这个证书的全部者是不是“效劳器”,从而确认这个证书中的公钥确实是“效劳器”的。后面的过程和以前是一样,“客户”让“效劳器”证明自己的身份,“效劳器”用私钥加密一段内容连同明文一起发给“客户”,“客户”把加密内容用数字证书中的公钥解密后和明文比照,假设全都,那么对方就确实是“效劳器”,然后双方协商一个对称加密来保证通信过程的安全。到这里,整个过程就完整了,我们回忆一下:5.2.6. 完整过程l “客户”->“效劳器”:你好l “效劳器”->“客户”:你好,我是效劳器,这里是我的数字证书l “客户”->“效劳器”:向我证明你就是效劳器,这是一个随机字符串/前面的例子中为了便利解释,用的是“你好”等内容,实际状况下一般是随机生成的一个字符串。l “效劳器”->“客户”:一个随机字符串私钥|RSAl “客户”->“效劳器”:我们后面的通信过程,用对称加密来进展,这里是对称加密算法和密钥公钥|RSAl “效劳器”->“客户”:OK,已经收到你发来的对称加密算法和密钥!有什么可以帮到你的?密钥|对称加密算法l “客户”->“效劳器”:我的帐号是 aaa,密码是 123,把我的余额的信息发给我看看密钥|对称加密算法l “效劳器”->“客户”:你好,你的余额是 100 元密钥|对称加密算法l /连续其它的通信5.3. 数字证书原理为了保证安全,在证书的公布机构公布证书时,证书的指纹和指纹算法,都会加密后再和证书放到一起公布,以防有人修改指纹后伪造相应的数字证书。这里问题又来了,证书的指纹和指纹算法用什么加密呢?他们是用证书公布机构的私钥进展加密的。可以用证书公布机构的公钥对指纹和指纹算法解密,也就是说证书公布机构除了给别人公布证书外,他自己本身也有自己的证书。证书公布机构的证书是哪里来的呢?这个证书公布机构的数字证书 (一般由他自己生成)在我们的操作系统刚安装好时(例如 windows xp 等操作系统),这些证书公布机构的数字证书就已经被微软(或者其它操作系统的开发机构)安装在操作系统中了,微软等公司会依据一些权威安全机构的评估选取一些信誉很好并且通过肯定的安全认证的证 书公布机构,把这些证书公布机构的证书默认就安装在操作系统里面了,并且设置为操作系统信任的数字证书。这些证书公布机构自己持有与他自己的数字证书对应的私钥,他会用这个私钥加密全部他公布的证书的指纹作为数字签名。6. 内容安全内容安全主要是直接保护在系统中传输和存储的数据信息。在做内容安全工作中, 主要是对信息和内容本身做一些变形和变换,或者对具体的内容进展检查。我们也可以将内容安全理解为在内容和应用的层次上进展的安全工作,一些系统层次的安全功能在这个层次都有对应和类似的功能。可以归结到内容安全类型的典型技术包括:序号技术技术说明1加密保密性、完是一个格外传统,但又始终是一个格外有效的技术整性、抗抵赖等2内容过滤对于企业关心的一些主题进展内容检查和过滤,技术可能用关键字技术,也可能使用基于学问库语义识别过滤系统。3防病毒计算机病毒一般都隐蔽在程序和文档中。目前典型的防病毒技术就是对信息中的病毒特征代码进展识别和查杀。4VPN 加密通道虚拟专用网 VPN 需要通过不行信的公用网络来建立自己的安全信道,因此加密技术是重要的选择。5水印技术水印技术是信息隐蔽技术的一种。一般信息都是要隐蔽在有肯定冗余量的媒体中,比方图像、声音、录像等多媒体信息,在文本中进展隐蔽比较少。水印技术是可以替代一般密码技术的保密方法。