数据安全解决处理方案总结.docx
《数据安全解决处理方案总结.docx》由会员分享,可在线阅读,更多相关《数据安全解决处理方案总结.docx(20页珍藏版)》请在冰豆网上搜索。
数据安全解决处理方案总结
数据安全解决方案
数据安全解决方案1
1.数据安全与防泄密保护系统模型2
1.1.数据威胁模型2
2.数据安全与防泄密系统模型形式化描述4
3.数据加密与封装技术6
3.1.数据加密保护机制6
3.2.数据加密策略6
3.3.数据加密保护流程7
4.密钥管理技术10
4.1.密胡管理模型10
5.数字证书11
5.1.签名和加密11
5.2.一个加密通信过程的演化11
5.2.1.第一阶段12
5.2.2.第二阶段12
5.2.3.第三阶段13
5.2.4.第四阶段14
5.2.5.第五阶段16
5.2.6.完整过程16
5.3.数字证书原理17
6.内容安全18
1.数据安全与防泄密保护系统模型
1.1.数据威胁模型
数据的安全技术主要建立在保密性(Confidentiality)、完整性(Integrity)和可用性
Mr
】3项硒故搦截狭
U面部歆撕菌诺韧和监听
旧网和拒场旌羿;
\\
X
2」原辑姓威集没Hl砚坏
L2纵斌股据傍心训
2.3也魂哉苏去尖
n
更攻击
”托取用户认诚瘩足
$34令抵顿
完鹳性
81,理员溢用检h
82U户皤获找作、温用铅a*3评理航粗限谊于您中
K4皆埋切KJ虫垒意识不兢.安全知识有限
4」外部投权我务M受攻击
42未经投权的景群i访倒
43用户梢误株作滥用极限
4.4inurbH
X
4、
7」侣必雀垒保哗法撒皿度不窟善
7三楠墟法曲岐懈数担卫击者木回冗法律u任
5/故电绎日
7豚口涕咔障十怡F
生产「谛不泌六制W仁
b.l'ihit■记录无在,,机
&2甲计记录不全面抑计功虎制
(Availability)三个安全原则基础之上。
实际上,数据面临着严重的威胁(如下图所示),主要受到通信因素、存储因素、身份认证、访问控制、数据发布、审计因素、制度因素和人员问题八大因素,具体因素内容在图2-1中详细的列举出来。
数据威胁模型
,主要包括数据截获算改、盗窃
包括自然因素或者人为因素导
,包括外部认证服务遭受攻击、通
(1)通信威胁通信威胁指数据在网络通信和传输过程中所面临的威胁因素和监听、蠕虫和拒绝服务攻击。
(2)存储因素存储因素是指数据在存储过程中由于物理安全所面临的威胁致的数据破坏、盗窃或者丢失。
(3)身份认证身份认证因素是指数据面临的各种与身份认证有关的威胁
过非法方式(如使用特洛伊木马、网络探等)获取用户认证信息、身份抵赖。
(4)访问控制因素
访问控制因素是指数据面临的所有对用户授权和访问控制的威胁因素,主要包括XX的数据访问、用户错误操作或滥用权限、通过推理通道获取一些无权获取的信息。
(5)数据发布因素
数据发布因素是指在开放式环境下,数据发布过程中所遭受的隐私侵犯、数据盗版等威胁因
素。
⑹审计因素
审计因素是指在审计过程中所面临的威胁因素,如审计记录无法分析、审计记录不全面、审
计攻能被攻击者或管理员恶意关闭。
(7)法律制度因素
法律制度因素是指由于法律制度相关原因而使数据面临威胁,主要原因包括信息安全保障法
律制度不健全、对攻击者的法律责任追究不够。
(8)内部人员因素
人员因素是指因为内部人士的疏忽或其它因素导致数据面临威胁,如管理员滥用权力、用户
滥用权限、管理员的安全意识不强等。
2.数据安全与防泄密系统模型形式化描述
一个安全的数据防泄密信任模型包括主体、客体、数据内容加密保护、权限许可状态管理等四部分。
其中,数据内容瞬态加密保护是最为核心也最为基础的阶段,而权限许可状态决定了数据使用控制的安全许可粒度。
波恩她扼安全•与防泄毒管理区型
fa..可态理
厂加密/J•权许状管
/J—^1—-
一-
y
-体•
A客•
一:
】L
数据安全与防泄密系统模型
(1)主体
数据安全与防泄密信任模型中主体是指数据使用主体、分发主体、创建主体、管理主体。
其
中,前两者是数据用户,而后两者则是用于管理数据的主体。
(2)客体
客体是指授权主体执行权限的对象,包括一切形式的电子数据作品。
(3)数据内容加密保护
数据内容瞬态加密保护模型本质上是在内核态安全执行环境(Kemelenvironment,KE)下,
对原始明文内容在特定的密钥管理组件控制下实施瞬态同步(SYN)加解密(Crypto),生成受
保护内容C的一个复合模型。
涉及到相关加解密(对称加解密、非对称加解密)、摘要和签名等基本操作,而对称加密涉及到ECB、CBC、OFB、CFB等加密模式密钥包括密胡的生成、分发、吊销、更新等环节。
(4)权限许可状态管理
(比如用户授权、使用时间、设备授权、环境授
权限许可状态管理模型通过不同的授权方式
权、文件授权等)对文件设置不同的操作权限,细化到阅读次数、使用有效期限、使用地点等权限,防止用户非法拷贝、复制、打印、下载文件、通过电子邮件、移动硬盘等传输介质泄密。
3.数据加密与封装技术
3.1.数据加密保护机制
数据加密保护基于如下机制:
(1)过滤驱动文件透明加解密:
采用系统指定的加解密策略(如加解密算法、密钥和文件类型等),在数据创建、存储、传输的瞬态进行自动加密,整个过程完全不需要用户的参与,用户无法干预数据在创建、存储、传输、分发过程中的安全状态和安全属性。
⑵内容加密:
系统对数据使用对称加密密钥加密,然后打包封装。
数据可以在分发前预先加密打包存储,也
可以在分发时即时加密打包。
⑶内容完整性:
内容发送方向接收方发送数据时,数据包包含数据的Hash值,接收方收到数据包解密后获得数据明文,计算Hash值,并与对应数据包中携带的Hash值作比较,两者相同表示该数据信息未在传输过程中被修改。
(4)身份认证:
所有的用户都各自拥有自己唯一的数字证书和公私钥对,发送方和接收方通过PKI证书认证
机制,相互确认对方身份的合法性。
(5)可靠与完整性:
为保证数据包的可靠性和完整性,数据包中携带的重要彳息(如内容加密密钥)采用接收方的
公钢进行加密封装,从而将数据包绑定到该接收方,确保仅有指定的接收方才能正确解密该数据包,使用其私钥提取内容加密密钢。
另外,发送方向接收方发送数据包前,先用其私钥对封装后的数据包进行数字签名。
接收方对收到的数据包采用发送方的公朗对数字签名进行验证
从而确认数据包是否来自于发送方,且在传输过程中未被修改。
3.2.数据加密策略
数据加解密系统采用系统指定的加解密策略(如加解密算法、密钥和文件类型等)自动的对数据进行加解密操作,从而对数据安全方便有效的进行保护。
针对不同的文件类型,系统将自动
采用不同的密钥以及算法对数据文件进行加密,实时动态的对数据进行保护。
数据加密策略
主要包括加解密算法、密钥生成算法、密钥保护算法、密钥类型以及文件类型等。
本模型主要采用的密码学算法列表如下:
数据加解密策略列表
算法名称
功用
使用容钥
密钥要求
敏感数据文件加
密弃法(AES>
用,时敏蜡数据
文件的的加解密
分蛆密码算法
内禅件福寄V!
■ContentIrtcryjHKty,CFK)
分组长挨;128比特密钥长推;】2S比特
敏密感据文件加
用于对敏膀数据
分徂帝码律注
内耗加藉密VI
分鲍长度,64比特
密官沽CDESJ
文件的的加解置
'CcatentEjtcj-ypt
Kcy.CEK>
咨钥氏度;56比特
敦据密乂加唯至算法(RSA)
用于时疑建数书文件分发时进行
公宙密码算法
接收方公刨
发送方机钥
寄钮长度:
密钥棋长M1024位
数据密苴加旅密并法CECCJ
用于对敏感裁据文件分发时进行
加解密
公钥密眄算窿
接收方公钥
吱送方私切
密钥长度[俺钥模
长言】92位
非对群密码罪名;验证舞液(RSA)
名皿证
北对称密政算
法
签E省用自己的
私钥签窍,接收者
用阳方公明沧证
密研襟惶毒1924位
密钥生一成0注
曜钥种于以及所议中的机致绪生
成_
的随机序对生成算法
牛『玄讪密锡应姓廷内如符普性怜孙;
密倒保护算礼
CAES)
用于生成内舀浏
密密钥CEK,
分组密码算泣
密切种十Key
Seed
分组长厘128比德雷明长度=128比待
Hash函数
CSHA1)
11
别交互的M密敖据或一些概感信息作完整性呆护.在签名如行|笠名的数据收Hash遥算.
单向rush算法
F心结果:
160bit
3.3.数据加密保护流程
开放络环境下数据加密保护流程包括
1开放网绯环境下敏感泾据加密保饷、
接收方公钥
_IftSh
I|.=n:
k
发送方T常文一*A密文-——■A教据包
}MSH
内容加密密引―^内容■充钮——
溺剧S要V一¥消息摘耍■.
「「L/
开放网络环境下数据加密保护流程图
数据创建者创建电子文档,客户端采用过滤驱动透明加解密技术对电子文档进行加密,
数据以密文形式存储在终端中
创建者设置数据消息安全属性Leve/(如密级)以及相关权限信息Metedata.不同
的等级对应不同的权限操作
创建者将内容加密密钥以服务端的公钥进行加密
创建者将数据明文作Hash计算,并将数据密文、明文Hash值、密钥加密密钥以及权限
信息进行打包封装
创建者通过私钥对数据包进行签名以保证数据包的可靠性和完整性,发送给服务端备份
存储
服务端收到数据包后,用创建者的公钥验证数据签名以确认数据包的可靠性和完整性,
并利用自己的私钥提取内容加密密钥以及数据的相关安全属性
服务端通过提取出来的内容加密密钥对数据密文进行解密后,将得到的数据明文做
Hash计算与数据包中提取出来的Hash值做比较,若比较一致,则根据相关安全属性对
数据进行备份存储
场景描述:
A:
发送方B:
接收方
A要发送一段消息给B,但是又不想以明文发送,所以就需要对消息进行加密.如果采用对称加密技术,那么加密与解密用的是同一把秘钥.除非B事先就知道A的秘钥,并且保存好.这
样才可以解密A发来的消息.
由于对称技术只有一把秘钥,所以秘钥的管理是一个很麻烦的问题.而非对称技术的诞
生就解决了这个问题.非对称加密与解密使用的是不同的秘钥,并且秘钥对是一一对应的,即
用A的私钥加密的密文只有用A的公钥才能解密.
这样的话,每个人都有两把秘钥,私钥和公钥,私钥是只有自己才知道的,不能告诉别人,而公钥是公开的,大家都可以知道.这样,当A想要发送消息给B的时候,只需要用B的公钥对消息进行加密就可以了,由于B的私钥只有B才拥有,所以A用B的公钥加密的消息只有B才能解开.而B想更换自己的密钥时也很方便,只须把公钥告诉大家就可以了.
那么,既然非对称加密如此之好,对称加密就没有存在的必要了啊,其实不然,由于非对称
加密算法的开销很大,所以如果直接以非对称技术来加密发送的消息效率会很差.那么怎么
办呢?
解决的办法也很简单,就是把对称加密技术与非对称加密技术结合起来使用^
A要发送一个消息给B
A先生成一个对称秘钥,这个秘钥可以是随机生成的,
A用B的公钥加密第一步生成的这个对称秘钥
A把加密过的对称秘钥发给B
A用第一步生成的这个对称秘钥加密实际要发的消息
A把用对称秘钥加密的消息发给B
对于B
他先收到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.第一阶段
“客户”->“服务器”:
你好
“服务器”->“客户”:
你好,我是服务器
“客户”->“服务器”:
?
?
?
?
因为消息是在网络上传输的,有人可以冒充自己是“服务器”来向客户发送信息。
黑客
在“客户”和“服务器”之间的某个路由器上截获“客户”发给服务器的信息,然后自己冒充“服务器”。
例如上面的消息可以被黑客截获如下:
“客户,,->“黑客,,:
你好
“黑客”->“客户”:
你好,我是服务器
因此“客户”在接到消息后,并不能肯定这个消息就是由“服务器”发出的,某些“黑
客”也可以冒充“服务器”发出这个消息。
如何确定信息是由“服务器”发过来的呢?
有一
个解决方法,因为只有服务器有私钥,所以如果只要能够确认对方有私钥,那么对方就是“服
务器”。
因此通信过程可以改进为如下:
“客户”->“服务器”:
你好
“服务器”->“客户”:
你好,我是服务器
“客户”->“服务器”:
向我证明你就是服务器
“服务器”->“客户”:
你好,我是服务器{你好,我是服务器}[私钥|RSA]
注意:
这里约定一下,{}表示RSA加密后的内容,[|]表示用什么密钥和算法进行加
密,后面的示例中都用这种表示方式,例如上面的{你好,我是服务器}[私钥|RSA]就表
示用私钥对“你好,我是服务器”进行加密后的结果。
为了向“客户”证明自己是“服务器”,“服务器”把一个字符串用自己的私钥加密,
把明文和加密后的密文一起发给“客户”。
对于这里的例子来说,就是把字符串“你好,我
是服务器”和这个字符串用私钥加密后的内容{你好,我是服务器}[私钥|RSA]发给客户。
“客户”收到信息后,她用自己持有的公钥解密密文,和明文进行对比,如果一致,说
明信息的确是由服务器发过来的。
也就是说“客户”把{你好,我是服务器}[私钥|RSA]这
个内容用公钥进行解密,然后和“你好,我是服务器”对比。
因为由“服务器”用私钥加密后的内容,由并且只能由公钥进行解密,私钥只有“服务器”持有,所以如果解密出来的内容是能够对得上的,那说明信息一定是从“服务器”发过来的。
假设“黑客”想冒充“服务器”:
“黑客”->“客户”:
你好,我是服务器
“客户,,->“黑客,,:
向我证明你就是服务器
“黑客”->“客户”:
你好,我是服务器{你好,我是服务器}[?
?
?
|RSA]
这里黑客无法冒充,因为他不知道私钥,无法用私钥加密某个字符串后发送给客户去验证。
由于“黑客”没有“服务器”的私钥,因此它发送过去的内容,“客户”是无法通过服
务器的公钥解密的,因此可以认定对方是个冒牌货!
到这里为止,“客户”就可以确认“服务器”的身份了,可以放心和“服务器”进行通
信,但是这里有一个问题,通信的内容在网络上还是无法保密。
为什么无法保密呢?
通信过
程不是可以用公钥、私钥加密吗?
其实用RSA的私钥和公钥是不行的,我们来具体分析下
过程,看下面的演示:
5.2.3.第三阶段
“客户”->“服务器”:
你好
“服务器”->“客户”:
你好,我是服务器
“客户”->“服务器”:
向我证明你就是服务器
“服务器”->“客户”:
你好,我是服务器{你好,我是服务器}[私钥|RSA]
“客户”-〉“服务器”:
{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[公钥|RSA]
“服务器”->“客户”:
{你的余额是100元}[私钥|RSA]
注意上面的的信息{你的余额是100元}[私钥],这个是“服务器”用私钥加密后的内
容,但是我们之前说了,公钥是发布出去的,因此所有的人都知道公钥,所以除了“客户”,
其它的人也可以用公钥对{你的余额是100元}[私钥]进行解密。
所以如果“服务器”用私钥加密发给“客户”,这个信息是无法保密的,因为只要有公钥就可以解密这内容。
然而“服务器”也不能用公钥对发送的内容进行加密,因为“客户”没有私钥,发送给“客户”也解
密不了。
这样问题就又来了,那又如何解决呢?
在实际的应用过程,一般是通过引入对称加密来
解决这个问题,看下面的演示:
“客户”->“服务器”:
你好
“服务器”->“客户”:
你好,我是服务器
“客户”->“服务器”:
向我证明你就是服务器
“服务器”->“客户”:
你好,我是服务器{你好,我是服务器}[私钥|RSA]
“客户”->“服务器”:
{我们后面的通信过程,用对称加密来进行,这里是对称加密算
法和密钥}[公钥|RSA]
“服务器”->“客户”:
{OK,收到!
}[密钥|对称加密算法]
“客户”-〉“服务器”:
{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[密钥|对称加密算法]
“服务器”->“客户”:
{你的余额是100元}[密钥|对称加密算法]
在上面的通信过程中,“客户”在确认了“服务器”的身份后,“客户”自己选择一个对
称加密算法和一个密钥,把这个对称加密算法和密钥一起用公钥加密后发送给“服务器”。
注意,由于对称加密算法和密钥是用公钥加密的,就算这个加密后的内容被“黑客”截获了,
由于没有私钥,“黑客”也无从知道对称加密算法和密钥的内容。
由于是用公钥加密的,只有私钥能够解密,这样就可以保证只有服务器可以知道对称加
密算法和密钥,而其它人不可能知道(这个对称加密算法和密钥是“客户”自己选择的,所以“客户”自己当然知道如何解密加密)。
这样“服务器”和“客户”就可以用对称加密算法和密钥来加密通信的内容了。
到这里,“客户”就可以确认“服务器”的身份,并且双方的通信内容可以进行加密,
其他人就算截获了通信内容,也无法解密。
的确,好像通信的过程是比较安全了。
但是这里
还留有一个问题,在最开始我们就说过,“服务器”要对外发布公钥,那“服务器”如何把
公钥发送给“客户”呢?
我们第一反应可能会想到以下的两个方法:
“服务器”把公钥发给“客户
A:
把公钥放到互联网的某个地方的一个下载地址,事先给“客户”去下载。
B:
每次和“客户”开始通信时,
但是这个两个方法都有一定的问题,
对于A方法,“客户”无法确定这个下载地址是不是“服务器”发布的,你凭什么就相信这个地址下载的东西就是“服务器”发布的而不是别人伪造的呢,万一下载到一个假的怎
么办?
另外要所有的“客户”都在通信前事先去下载公钥也很不现实。
对于B方法,也有问题,因为任何人都可以自己生成一对公钥和私钥,他只要向“客
户”发送他自己的私钥就可以冒充“服务器”了。
示意如下:
“客户,,->“黑客,,:
你好
〃黑客截获“客户”发给“服务器”的消息
“黑客”->“客户”:
你好,我是服务器,这个是我的公钥
〃黑客自己生成一对公钥和私钥,把公钥发给“客户”,自己保留私钥
“客户,,->“黑客,,:
向我证明你就是服务器
“黑客”-〉“客户”:
你好,我是服务器{你好,我是服务器}[黑客自己的私钥|RSA]〃客户收到“黑客”用私钥加密的信息后,是可以用“黑客”发给自己的公钥解密
的,从而会误认为“黑客”是“服务器”
因此“黑客”只需要自己生成一对公钥和私钥,然后把公钥发送给“客户”,自己保留
私钥,这样由于“客户”可以用黑客的公钥解密黑客的私钥加密的内容,“客户”就会相信
“黑客”是“服务器”,从而导致了安全问题。
这里问题的根源就在于,大家都可以生成公
钥、私钥对,无法确认公钥对到底是谁的。
如果能够确定公钥到底是谁的,就不会有这个
问题了。
例如,如果收到“黑客”冒充“服务器”发过来的公钥,经过某种检查,如果能够发现这个公钥不是“服务器”的就好了。
为了解决这个问题,数字证书出现了,它可以解决我们上面的问题。
先大概看下什么是
数字证书,一个证书包含下面的具体内容:
证书的发布机构
证书的有效期
公钥
证书所有者(Subject)
签名所使用的算法
指纹以及指纹算法
证书的内容的详细解释会在后面详细解释,这里先只需要搞清楚一点,数字证书可以保
证数字证书里的公钥确实是这个证书的所有者(Subject)的,或者证书可以用来确认对方的
word版整理
身份。
也就是说,我们拿到一个数字证书,我们可以判断出这个数字证书到底是谁的。
至于
是如何判断的,后面会在详细讨论数字证书时详细解释。
现在把前面的通信过程使用数字证
书修改为如下:
5.2.5.第五阶段
“客户”->“服务器”:
你好
“服务器”->“客户”:
你好,我是服务器,这里是我的数字证书
//这里用证书代替了公钥
“客户”->“服务器”:
向我证明你就是服务器
“服