导航:首页 > 文档加密 > 基于口令的数据加密

基于口令的数据加密

发布时间:2023-07-26 13:59:07

‘壹’ 密码技术(十一)之密钥

  ——秘密的精华

 在使用对称密码、公钥密码、消息认证码、数字签名等密码技术使用,都需要一个称为 密钥 的巨大数字。然而,数字本身的大小并不重要,重要的是 密钥空间的大小 ,也就是可能出现的密钥的总数量,因为密钥空间越大,进行暴力破解就越困难。密钥空间的大小是由 密钥长度 决定的。

 对称密码DES的密钥的实质长度为56比特(7个字节)。
例如,
一个DES密钥用二进制可以表示为:
01010001 11101100 01001011 00010010 00111101 01000010 00000011
用十六进制则可以表示为:
51 EC 4B 12 3D 42 03
而用十进制则可以表示为:
2305928028626269955

 在对称密码三重DES中,包括使用两个DES密钥的DES-EDE2和使用三个DES密钥的DES-EDE3这两种方式。
DES-EDE2的密钥长度实质长度为112比特(14字节),比如:
51 EC 4B 12 3D 42 03 30 04 D8 98 95 93 3F
DES-EDE3的密钥的实质长度为168比特(21字节),比如:
51 EC 4B 12 3D 42 03 30 04 D8 98 95 93 3F 24 9F 61 2A 2F D9 96

 对称密码AES的密钥长度可以从128、192和256比特中进行选择,当密钥长度为256比特时,比如:
51 EC 4B 12 3D 42 03 30 04 D8 98 95 93 3F 24 9F 61 2A 2F D9 96
B9 42 DC FD A0 AE F4 5D 60 51 F1

密钥和明文是等价的 。假设明文具有100万的价值,那么用来加密这段明文的密钥也就是具有100万元的价值;如果明文值1亿元,密钥也就值1亿元;如果明文的内容是生死攸关的,那么密钥也同样是生死攸关的。

 在对称密码中,加密和解密使用同一个密钥。由于发送者和接收者需要共享密钥,因此对称密码又称为共享密钥密码。对称密码中所使用的密钥必须对发送者和接收者以外的人保密,否则第三方就能够解密了。

 在消息认证码中,发送者和接收者使用共享的密钥来进行认证。消息认证码只能由持有合法密钥的人计算出来。将消息认证码附加在通信报文后面,就可以识别通信内容是否被篡改或伪装,由于“持有合法的密钥”就是发送者和接收者合法身份的证明,因此消息认证码的密钥必须对发送者以外的人保密,否则就会产生篡改和伪装的风险。

 在数字签名中,签名生成和验证使用不同的密钥,只有持有私钥的本人才能够生成签名,但由于验证签名使用的是公钥,因此任何人都能够验证签名。

 对称密码和公钥密码的密钥都是用于确保机密性的密钥。如果不知道用于解密的合法密钥,就无法得知明文的内容。
 相对地,消息认证码和数字签名所使用的密钥,则是用于认证的密钥。如果不知道合法的密钥,就无法篡改数据,也无法伪装本人的身份。

 当我们访问以https://开头的网页时,Web服务器和浏览器之间会进行基于SSL/TLS的加密通信。在这样的通信中所使用的密钥是仅限于本次通信的一次密钥,下次通信时就不能使用了,想这样每次通信只能使用一次的密钥称为 会话密钥
 由于会话密钥只在本次通信中有效,万一窃听者获取了本次通信的会话密钥,也只能破译本次通信的内容。
 虽然每次通信都会更换会话密钥,但如果用来生成密钥的伪随机数生成器品质不好,窃听者就有可能预测出下次生成会话密钥,这样就会产生通信内容被破译的风险。
 相对于每次通信更换的会话密钥,一直被重复使用的密钥称为 主密钥

 一般来说,加密的对象是用户直接使用的信息,这样的情况下所使用的密钥称为CEK(Contents Encryting Key,内容加密密钥);相对地,用于加密密钥的密钥则称为KEK(Key Encryting Key,密钥加密密钥)。

 在很多情况下,之前提到的会话密钥都是被作为CEK使用的,而主密钥则是被作为KEK使用的。

 生成密钥的最好方法就是使用随机数,因为米哟啊需要具备不易被他人推测的性质。在可能的情况下最好使用能够生成密码学上的随机数的硬件设备,但一般我们都是使用伪随机数生成器这一专门为密码学用途设计的软件。
 在生成密钥时,不能自己随便写出一些像“3F 23 52 28 E3....”这样的数字。因为尽管你想生成的是随机的数字,但无论如何都无法避免人为偏差,而这就会成为攻击者的目标。
 尽管生成伪随机数的算法有很多种,但密码学用途伪随机生成器必须是专门针对密码学用途而设计的。例如,有一些伪随机数生成器可以用于游戏和模拟算法,尽管这些伪随机数生成器所生成的数列看起也是随机的,但只要不是专门为密码学用途设计的,就不能用来生成密钥,因为这些伪随机数生成器不具备不可预测性这一性质。

 有时候我们也会使用人类的可以记住的口令(pasword或passphrase)来生成密钥。口令指的是一种由多个单词组成的较长的password。
 严格来说,我们很少直接使用口令来作为密钥使用,一般都是将口令输入单向散列函数,然后将得到的散列值作为密钥使用。
 在使用口令生成密钥时,为了防止字典攻击,需要在口令上附加一串称为盐(salt)的随机数,然后在将其输入单向散列函数。这种方法称为“基于口令的密码(Password Based Encryption,PBE)”。

 在使用对称密码时,如何在发送者和接收者之间共享密钥是一个重要的问题,要解决密钥配送问题,可以采用事先共享密钥,使用密钥分配中心,使用公钥密码等方法,除了上述方法,之前还提到一种解决密钥配送的问题的方法称为Diffie-Hellman密钥交换。

 有一种提供通信机密性的技术称为 密钥更新 (key updating),这种方法就是在使用共享密钥进行通信的过程中,定期更改密钥。当然,发送者和接收者必须同时用同样的方法来改变密钥才行。
 在更新密钥时,发送者和接收者使用单向散列函数计算当前密钥的散列值,并将这个散列值用作新的密钥。简单说,就是 用当前密钥散列值作为下一个密钥
 我们假设在通信过程中的某个时间点上,密钥被窃听者获取了,那么窃听者就可以用这个密钥将之后的通信内容全部解密。但是,窃听者却无法解密更新密钥这个时间点之前的内容,因为这需要用单向散列函数的输出反算出单向散列函数的输入。由于单向散列函数具有单向性,因此就保证了这样的反算是非常困难的。
 这种防止破译过去的通信内容机制,称为 后向安全 (backward security)。

 由于会话密钥在通信过程中仅限于一次,因此我们不需要保存这种秘密。然而,当密钥需要重复使用时,就必须要考虑保存密钥的问题了。

 人类是 无法记住具有实用长度的密钥 的。例如,像下面这样一个AES的128比特的密钥,一般人是很难记住的。
51 EC 4B 12 3D 42 03 30 04 DB 98 95 93 3F 24 9F
就算勉强记住了,也只过不是记住一个密钥而已。但如果要记住多个像这样的密钥并且保证不忘记,实际上是非常困难的。

 我们记不住密钥,但如果将密钥保存下来又可能会被窃取。这真是一个头疼的问题。这个问题很难得到彻底解决,但我们可以考虑一些合理的解决方法。
 将密钥保存生文件,并将这个文件保存在保险柜等安全地方。但是放在保险柜里的话,出门就无法使用了。这种情况,出门时就需要随身携带密钥。而如果将密钥放在存储卡随身携带的话,就会产生存储卡丢失、被盗等风险。
 万一密钥被盗,为了能够让攻击者花更多的时间才能真正使用这个密钥,我们可以使用将密钥加密后保存的方法,当然,要将密钥加密,必须需要另一个密钥。像这样用于密码加密的密钥,一般称为KEK。
 对密钥进行加密的方法虽然没有完全解决机密性的问题,但在现实中却是一个非常有效地方法,因为这样做可以减少需要保管密钥的数量。
 假设计算机上有100万个文件,分别使用不同的密钥进行加密生成100万个密文,结果我们手上就产生了100万个密钥,而要保管100万个密钥是很困难的。
 于是,我们用一个密钥(KEK)将这100万个密钥进行加密,那么现在我们只要保管者一个KEK就可以了,这一个KEK的价值相当于签名的100万个密钥的价值的总和。
 用1个密钥来代替多个密钥进行保管的方法,和认证机构的层级化非常相似。在后者中,我们不需要信任多个认证机构,而只需要信任一个根CA就可以了。同样的,我们也不需要确保多个密钥的机密性,而只需要确保一个KEK的机密性就可以了。

 密钥的作废和生成是同等重要的,这是因为密钥和明文是等价的。

 假设Alice向Bob发送了一封加密邮件。Bob在解密之后阅读了邮件的内容,这时本次通信所使用的密钥对于Alice和Bob来说就不需要了。不在需要的密钥必须妥善删除,因为如果被窃听者Eve获取,之前发送的加密邮件就会被解密。

 如果密钥是计算机上的一个文件,那么仅仅删除这个文件是不足以删除密钥的,因为有一些技术能够让删除的文件“恢复”。此外,很多情况下文件的内容还会残留在计算机的内存中,因此必须将这些痕迹完全抹去。简而言之,要完全删除密钥,不但要用到密码软件,还需要在设计计算机系统时对信息安全进行充分的考虑

 如果包含密钥的文件被误删或者保管密钥的笔记本电脑损坏了,会怎么样?
 如果丢失了对称密钥密码的共享密钥,就无法解密密文了。如果丢失了消息认证码的密钥,就无法向通信对象证明自己的身份了。
 公钥密码中,一般不太会发送丢失公钥的情况,因为公钥是完全公开的,很有可能在其他电脑上存在副本。
 最大的问题是丢失公钥密码的私钥。如果丢失了公钥密码的私钥,就无法解密用公钥密码加密的密文了。此外,如果丢失了数字签名的私钥,就无法生成数字签名了。

 Diffie-Hellman密钥交换(Diffie-Hellman key exchange)是1976年由Whitfield Diffie和Martin Hellman共同发明的一种算法。使用这种算法,通信双方仅通过交换一些可以公开的信息就能够生成共享秘密数字,而这一秘密数字就可以被用作对称密码的密钥。IPsec 中就使用了经过改良的Diffie-Hellman密钥交换。

2 Alice 生成一个随机数A
 A是一个1 ~ P-2之间的整数。这个数是一个只有Alice知道的密码数字,没有必要告诉Bob,也不能让Eve知道。

Alice计算出的密钥=Bob计算出的密钥

  在步骤1-7中,双方交换数字一共有4个,P、G、G A mod P 和 G B mod P。根据这4个数字计算出Alice和Bob的共享密钥是非常困难的。
 如果Eve能欧知道A和B的任意一个数,那么计算G A*B 就很容易了,然而仅仅根据上面的4个数字很难求出A和B的。
 根据G A mod P 计算出A的有效算法到现在还没有出现,这问题成为有限域(finite field) 的 离散对数问题

 Diffie-Hellman密钥交换是利用了“离散对数问题”的复杂度来实现密钥的安全交换的,如果将“离散对数问题”改为“椭圆曲线上离散对数问题”,这样的算法就称为 椭圆曲线Diffie-Hellman 密钥交换。
 椭圆曲线Diffie-Hellman密钥交换在总体流程上是不变的,只是所利用的数学问题不同而已。椭圆曲线Diffie-Hellman密钥交换能够用较短的密钥长度实现较高的安全性。

 基于口令密码(password based encryption,PBE)就是一种根据口令生成密钥并用该密钥进行加密的方法。其中加密和解密使用同一个密钥。
 PBE有很多种实现方法。例如RFC2898和RFC7292 等规范中所描述的PBE就通过java的javax.crypto包等进行了实现。此外,在通过密码软件PGP保存密钥时,也会使用PBE。
PBE的意义可以按照下面的逻辑来理解。

想确保重要消息的机制性。
  ↓
将消息直接保存到磁盘上的话,可能被别人看到。
  ↓
用密钥(CEK)对消息进行加密吧。
  ↓
但是这次又需要确保密钥(CEK)的机密性了。
  ↓
将密钥(CEK)直接保存在磁盘上好像很危险。
  ↓
用另一个密钥(KEK)对密钥进行加密(CEK)吧。
  ↓
等等!这次又需要确保密钥(KEK)的机密性了。进入死循环了。
  ↓
既然如此,那就用口令来生成密钥(KEK)吧。
  ↓
但只用口令容易遭到字典攻击
  ↓
那么就用口令和盐共同生成密钥(KEK)吧。
  ↓
盐可以和加密后的密钥(CEK)一切保存在磁盘上,而密钥(KEK)可以直接丢弃。
  ↓
口令就记在自己的脑子里吧。

PBE加密包括下列3个步骤:

  盐是由伪随机数生成器生成的随机数,在生成密钥(KEK)时会和口令一起被输入单向散列函数。
 密钥(KEK)是根据秘密的口令生成的,加盐好像没有什么意义,那么盐到底起到什么作用呢?
盐是用来防御字典攻击的 。字典攻击是一种事先进行计算并准备好候选密钥列表的方法。
 我们假设在生成KEK的时候没有加盐。那么主动攻击者Mallory就可以根据字典数据事先生成大量的候选KEK。
 在这里,事先是很重要的一点。这意味着Mallory可以在窃取到加密会话的密钥之前,就准备好了大量的候选KEK。当Mallory窃取加密的会话密钥后,就需要尝试将它解密,这是准备好了大量事先生成的候选KEK,就能够大幅度缩短尝试的时间,这就是 字典攻击 (dictionary attack)。
 如果在生成KEK时加盐,则盐的长度越大,候选KEK的数量也会随之增大,事先生成的的候选KEK就会变得非常困难。只要Mallory还没有得到盐,就无法生成候选KEK。这是因为加盐之后,候选KEK的数量会变得非常巨大。

 具有充足长度的密钥是无法用人脑记忆的。口令也是一样,我们也无法记住具有充足比特数的口令。
 在PBE中,我们通过口令生成密钥(KEK),在用这个密钥来加密会话密钥(CEK)。由于通过口令生成的密钥(KEK)强度不如由伪随机数生成器生成的会话密钥(CEK),这就好像是将一个牢固的保险柜的钥匙放在了一个不怎么牢固的保险柜保管,因此在使用基于口令的密钥时,需要将盐和加密后的CEK通过物理方法进行保护。例如将盐和加密后的CEK保存到存储卡随身携带。

 在生成KEK时,通过多次使用单向散列函数就可以提高安全性。例如,将盐和口令输入单向散列函数,进行1000次的散列函数所得到的散列值作为KEK来使用,是一个不错的方法。
 像这样将单向散列函数进行多次迭代的方法称为 拉伸 (stretching)。

该系列的主要内容来自《图解密码技术第三版》
我只是知识的搬运工
文章中的插图来源于原着

‘贰’ 什么是数据加密

数据加密,最常见的就是对文件文档进行加密处理,如最常见的如AES256,512,SM2、SM3等高强度加密算法,或现在最常用的透明加密技术,一般分为驱动层及应用层透明加密,通过这些加密技术的结合,并开发出的透明加密软件,如红线防泄密系统,就完成了数据加密!

‘叁’ 密码技术

密码算法的特性
1、是否需要事先配送私钥:对称密码需要考虑
2、是否会遭到中间人攻击:非对称密码分发公钥时需要考虑
3、不可抵赖(可被双方 和 第三方 用原理证明):非对称密码分发公钥时需要考虑
4、能否保证消息的机密性:即不可破译
5、能否保证消息的完整性(一致性):即不可篡改
6、不可冒充(伪造)

总结:对称密码(解决456)--非对称密码之单向通信--> 混合密码(解决1) --非对称密码之数字签名--> 公钥证书(解决23)

概念
密码算法:加密算法 + 密钥 + 解密算法,简称密码
密钥空间:密钥的所有取值
隐蔽式安全性:以密码算法不为人所知,来保证机密性
分组密码:对明文进行分组加密,而非以全文作为输入
流密码:不分组,整体加密

破解密文的方法
1、窃听 + 破译
2、社会工程学
破解密钥的方法
1、暴力破解(密钥穷举),例如破译凯撒密码
2、频率分析,例如破译简单替换密码
3、选择明文攻击(对分组进行明文穷举)

加密系统的可选技术
隐写术:将消息藏在更大的数据中,例如藏头诗
伪随机数生成器
散列值(摘要,哈希值,指纹):原文经过散列函数(摘要函数,哈希函数,杂凑函数,单向加密)计算出来的值
对称密码(共享密钥密码):加密和解密用同一个私钥
非对称密码(公钥密码):公钥加密,私钥解密
消息认证码
数字签名
公钥证书

碰撞:两个消息的散列值相同
弱抗碰撞性:给定一条消息,很难找到另一条消息与其散列值相同。防止以下情形,Bob持有一个消息A,计算其摘要;Alice找到与A散列值相同的另一条消息B,用B将A调包;由于摘要不变,不被Bob发觉
强抗碰撞性:很难找到两条散列值相同的消息。防止以下情形,Alice拿两个摘要相同的消息A和B,将A发给Bob;Bob计算其摘要;Alice再用B将A调包;由于摘要不变,不被Bob发觉
MD5(Message Digest 5)
历史:1991年Ronald Rivest 设计出MD5
现状:2004年王小云提出了MD5碰撞攻击算法
SHA
历史:1993年NIST发布SHA,1995年发布SHA-1,2002年发布SHA-2
现状:2004年王小云提出了SHA-0的碰撞攻击算法;2005年王小云提出了SHA-1的碰撞攻击算法
SHA-3
历史:2007年NIST发起选拔SHA-3,2012年Joan Daemen等人设计的Keccak算法被选定为SHA-3

弱伪随机数:随机性
强伪随机数:不可预测性
真随机数:不可重现性

随机数生成器:硬件可以通过热噪声实现真随机数
伪随机数生成器:软件只能生成伪随机数,需要一种子seed来初始化

伪随机数算法:线性同余法、散列法、密码法等

好的对称密码解决:不可破译
缺点:需要事先配送密钥
凯撒密码
加密算法:字母平移
密钥:平移位数
解密算法:逆向平移
破解密钥:穷举可能的密钥
简单替换密码
加密算法:一个字母替换成另一个字母
密钥:替换表
解密算法:逆向替换
破解密钥:对密文的字母 和 字母组合进行频率分析,与通用频率表对比;用破译出来的明文字母,代入密文,循环分析
Enigma密码
发明者:德国人Arthur Sherbius
加密算法:双重加密,每日密钥作为密钥1,想一个密钥2;用密钥1加密密钥2,得到密钥2密文;用密钥2加密消息;将密钥2密文和消息密文一起发出
密钥:密钥册子记录的每天不同的密钥
解密算法:用每日密钥解密密钥2密文,得到密钥2;用密钥2解密消息密文
破译者:Alan Turing 图灵

DES密码(Data Encryption Standard)
历史:1974年IBM公司的Horst Feistel开发出了Lucifer密码,1977年被美国国家标准学会(American National Standards Institute,ANSI)确定为DES标准
加密算法:以64比特为一组,进行16轮运算。在一轮中,把一组分为左侧和右侧,并从密钥中提取子密钥;轮函数用一侧和子密钥生成一个比特序列,用这个比特序列对另一侧进行异或运算(XOR)
密钥:长度56位
破译:可在现实时间内被暴力破解

三重DES密码(triple-DES,TDEA,3DES)
加密算法:将DES重复三次
密钥:长度 56 * 3

AES密码(Advanced Encryption Standard)
历史:1997年,美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)公开募集AES,2000年比利时密码学家Joan Daemen 和 Vincent Rijmen提交的Rijndael方案,被选为标准
加密算法:以128比特为一组,进行多轮的替换、平移、矩阵运算
密钥:有128,192,256三种长度

分组密码的迭代模式
ECB模式:Electronic CodeBook mode,电子密码本模式;明文分组 和 密文分组 顺序对应。主动攻击者可以改变密文分组的顺序,复制 或 删除密文分组,使得接受者解密后得到错误的明文
CBC模式:Cipher Block Chaining mode,密码分组链接模式;将本组明文 和 上组密文 进行异或运算后,在进行加密;如果被篡改,则不能正常解密
CFB模式:Cipher Feedback mode,密文反馈模式;将本组明文 和 上组密文 进行异或运算后,就得到本组的密文
OFB模式:Output Feedback mode,输出反馈模式;用随机比特序列作为初始化组(初始化向量);用初始化组的密文和 明文分组 异或运算,得到密文分组;再次对初始化组密文进行加密运算,得到新的初始化组密文,跟下组明文进行异或运算,以此类推
CTR模式:CounTeR mode,计数器模式;用随机比特序列作为计数器的初始值,加密后与明文分组进行异或操作,得到密文分组;计数器加一,对下组明文进行加密

对称密码中,发送方发送密文时,带上消息的MAC值A;接收方用相同方法计算出MAC值B;对比A和B,确保消息不被篡改
Encrypt-then-MAC:MAC值为消息密文的散列值
Encrypt-and-MAC:MAC值为消息明文的散列值
MAC-then-Encrypt:MAC值为明文散列值的密文

重放攻击:攻击者窃听到Alice给Bob发送的消息后,重复给Bob发送,Bob以为都是Alice发的
预防重放攻击:消息里带有一个id

比对称密码:不可篡改、不可伪造
缺点:需要实现配送私钥

基于口令的密码:Password Based Encryption,PBE
解决:密钥(会话密钥)保存问题
CEK:会话密钥
KEK:用来加密CEK的密钥
方案
1、随机数作为盐salt,口令 + 盐 的散列值作为KEK
2、用KEK加密CEK,得到CEK密文
3、只保存盐和CEK密文,人脑记住口令,丢弃KEK

字典攻击:如果没有盐参与生成KEK,那么口令决定了KEK,常用的口令对应一个常用KEK字典,攻击者直接拿常用KEK去解密CEK密文
盐的作用:KEK由盐参与形成,不可能有KEK字典包含这样的KEK

非对称密码单向通信,不能单独用于通信,只用在混合密码中
方案:Alice 给 Bob 分发加密密钥(公钥);Bob用公钥加密消息,发送给Alice;Alice用解密密钥(私钥)解密
总结:消息接收者是密钥对主人,即私钥持有人;公钥用于加密,私钥用于解密

RSA密码
历史:1978年,Ron Rivest、Adi Shamir、Reonard Adleman共同发表了RSA
加密算法:密文 = 明文 E mode N
公钥:E 和 N的组合
解密算法:明文 = 密文 D mode N
私钥:D 和 N的组合

生成密钥对
生成质数:用伪随机数生成随机数,通过Miller-Rabin测试法测试它是不是质数,直到得到质数
求最大公约数:欧几里得的辗转相除法
1、求N
生成两个512位的质数p和q,N = p * q
2、求L
L是p-1 和 q-1 的最小公倍数
3、求E
用伪随机数生成(1,L)范围内的随机数,直到满足E和L的最大公约数为1
4、求D
用伪随机数生成(1,L)范围内的随机数,直到满足(E * D) mod L = 1

破解:对N进行质因数分解,得到p和q,从而求出D。但是对大数的质因数分解,未有快速有效的方法

首次通信为混合密码,后续通信为对称密码
比消息认证码:无需事先配送私钥
总体思路:Bob 用会话密钥加密消息,用Alice的公钥加密会话密钥,一起发给Alice;Alice用私钥解密会话密钥,用会话密钥解密消息
会话密钥:用来加密消息的 对称密码的密钥
1、Alice 给 Bob 发送公钥
2、Bob随机生成会话密钥,用会话密钥加密消息,得到消息密文
3、Bob用公钥加密会话密钥,得到会话密钥密文
4、Bob将会话密钥密文和消息密文一起发给Alice
5、Alice用私钥解密会话密钥,再用会话密钥解密消息
6、双方都有了会话密钥,从此以后,可以用对称密码通信了,带上消息认证码

缺点:分发公钥时,可能遭受中间人攻击;Alice可能对给Bob发送公钥这件事进行抵赖
中间人攻击:中间人从一开始Alice向Bob发放公钥时,就拦截了消息,得到Alice的公钥;然后伪装成Alice,向Bob发送自己的公钥;从而Bob打算发给Alice的消息,能被中间人解密

不能单独用于通信,只用在公钥证书中
明文签名:Alice用签名密钥(私钥)加密消息的摘要,把摘要密文和消息明文一起发给Bob;Bob解密摘要密文,得到摘要A;算出明文摘要B,对比A和B
总结:私钥用于加密,公钥用于解密,与 非对称加密之单向通信,刚好反过来

公钥证书:Public-Key Certificate,PKC,简称证书
认证机构:Certification Authority,CA
证书标准:国际电信联盟ITU 和 国际标准化组织ISO指定的X.509标准
流程:
1、Alice在CA登记
2、CA生成Alice的证书明文,包含Alice登记的信息、Alice的公钥、CA信息
3、CA用自己的私钥加密证书明文部分,得到数字签名
4、证书明文部分 和 数字签名 组成PKC,颁发给Alice
5、Bob向Alice获取这个PKC,拿本地已有的CA公钥去验证证书,就得到了可信的Alice的公钥
6、从此Alice 和 Bob之间可以进行混合密码通信

首次通信为从CA获取PKC,后续通信为混合密码
比混合密码:防止了中间人攻击;CA不能抵赖自己的证书

历史:1994年网景公司设计出SSL,2014年SSL 3.0被发现安全漏洞,1999年IEIF发布TLS
TLS(Transport Layer Security)是SSL(Secure Socket Layer)的后续版本,在tcp和http之间加一层TLS,就是https
OpenSSL:OpenSSL是实现SSL/TLS协议的工具包
以https为例
0、浏览器安装时,存有几个CA公钥;服务器在CA登记,拿到证书
1、浏览器访问一个https地址,服务器返回自己的证书
2、浏览器根据证书上的CA信息,拿对应的CA公钥验证证书,得到可信的服务器公钥
3、浏览器生成对称密码的密钥(会话密钥),用服务器公钥加密后发给服务器
4、服务器解密后得到会话密钥,从此用对称密码通信,带上消息认证码

1、生成JKS证书:keytool -genkeypair -alias "别名" -keyalg "RSA" -keystore "D:app.jks"
2、将JKS转换成PKCS12:keytool -importkeystore -srckeystore D:app.jks -destkeystore D:app.p12 -deststoretype pkcs12
3、将PKCS12转成pem:openssl pkcs12 -in ./app.p12 -out app.pem
4、提取加密后的私钥:将pem中 “—–BEGIN ENCRYPTED PRIVATE KEY—–” 至 “—–END ENCRYPTED PRIVATE KEY—–” 的内容拷贝出来,保存为ciphertext.key
5、将密文私钥转成明文私钥:openssl rsa -in ciphertext.key -out plaintext.key

.jks(Java Key Storage):二进制格式,包含证书和私钥,有密码保护
.pfx 或 .p12(Predecessor of PKCS#12):二进制格式,包含证书和私钥,有密码保护
.pem(Privacy Enhanced Mail):文本格式,包含证书,可包含私钥,私钥有密码保护
.der 或 .cer:二进制格式,只包含证书
.crt(Certificate):可以是der格式,也可以是pem格式,只包含证书

SSL证书:SSL证书必须绑定域名,不能绑定IP
加密服务、密钥管理服务

‘肆’ 数据库加密的实现技术

对数据进行加密,主要有三种方式:系统中加密、客户端(DBMS外层)加密、服务器端(DBMS内核层)加密。客户端加密的好处是不会加重数据库服务器的负载,并且可实现网上的传输加密,这种加密方式通常利用数据库外层工具实现。而服务器端的加密需要对数据库管理系统本身进行操作,属核心层加密,如果没有数据库开发商的配合,其实现难度相对较大。此外,对那些希望通过ASP获得服务的企业来说,只有在客户端实现加解密,才能保证其数据的安全可靠。
1.常用数据库加密技术
信息安全主要指三个方面。一是数据安全,二是系统安全,三是电子商务的安全。核心是数据库的安全,将数据库的数据加密就抓住了信息安全的核心问题。
对数据库中数据加密是为增强普通关系数据库管理系统的安全性,提供一个安全适用的数据库加密平台,对数据库存储的内容实施有效保护。它通过数据库存储加密等安全方法实现了数据库数据存储保密和完整性要求,使得数据库以密文方式存储并在密态方式下工作,确保了数据安全。
1.1数据库加密技术的功能和特性
经过近几年的研究,我国数据库加密技术已经比较成熟。
一般而言,一个行之有效的数据库加密技术主要有以下6个方面的功能和特性。
(1)身份认证:
用户除提供用户名、口令外,还必须按照系统安全要求提供其它相关安全凭证。如使用终端密钥。
(2) 通信加密与完整性保护:
有关数据库的访问在网络传输中都被加密,通信一次一密的意义在于防重放、防篡改。
(3) 数据库数据存储加密与完整性保护:
数据库系统采用数据项级存储加密,即数据库中不同的记录、每条记录的不同字段都采用不同的密钥加密,辅以校验措施来保证数据库数据存储的保密性和完整性,防止数据的非授权访问和修改。
(4)数据库加密设置:
系统中可以选择需要加密的数据库列,以便于用户选择那些敏感信息进行加密而不是全部数据都加密。只对用户的敏感数据加密可以提高数据库访问速度。这样有利于用户在效率与安全性之间进行自主选择。
(5)多级密钥管理模式:
主密钥和主密钥变量保存在安全区域,二级密钥受主密钥变量加密保护,数据加密的密钥存储或传输时利用二级密钥加密保护,使用时受主密钥保护。
(6) 安全备份:
系统提供数据库明文备份功能和密钥备份功能。
1.2对数据库加密系统基本要求
(1) 字段加密;
(2) 密钥动态管理;
(3) 合理处理数据;
(4) 不影响合法用户的操作;
(5) 防止非法拷贝;
1.3数据库数据加密的实现
使用数据库安全保密中间件对数据库进行加密是最简便直接的方法。主要是通过系统中加密、DBMS内核层(服务器端)加密和DBMS外层(客户端)加密。
在系统中加密,在系统中无法辨认数据库文件中的数据关系,将数据先在内存中进行加密,然后文件系统把每次加密后的内存数据写入到数据库文件中去,读入时再逆方面进行解密就,这种加密方法相对简单,只要妥善管理密钥就可以了。缺点对数据库的读写都比较麻烦,每次都要进行加解密的工作,对程序的编写和读写数据库的速度都会有影响。
在DBMS内核层实现加密需要对数据库管理系统本身进行操作。这种加密是指数据在物理存取之前完成加解密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。
在DBMS外层实现加密的好处是不会加重数据库服务器的负载,并且可实现网上的传输,加密比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加解密处理。
采用这种加密方式进行加密,加解密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统之间的耦合性稍差。
数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加解密引擎。数据库加密系统将用户对数据库信息具体的加密要求以及基础信息保存在加密字典中,通过调用数据加解密引擎实现对数据库表的加密、解密及数据转换等功能。数据库信息的加解密处理是在后台完成的,对数据库服务器是透明的。
按以上方式实现的数据库加密系统具有很多优点:首先,系统对数据库的最终用户是完全透明的,管理员可以根据需要进行明文和密文的转换工作;其次,加密系统完全独立于数据库应用系统,无须改动数据库应用系统就能实现数据加密功能;第三,加解密处理在客户端进行,不会影响数据库服务器的效率。
数据库加解密引擎是数据库加密系统的核心部件,它位于应用程序与数据库服务器之间,负责在后台完成数据库信息的加解密处理,对应用开发人员和操作人员来说是透明的。数据加解密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中,通过内部接口与加密字典管理程序和用户应用程序通讯。数据库加解密引擎由三大模块组成:加解密处理模块、用户接口模块和数据库接口模块。

‘伍’ 如何应对被公开的Oracle口令加密算法

由于Oracle数据库被广泛应用,其口令加密算法也是备受关注。最早在1993年comp.databases.oracle.server新闻组中有人披露了加密算法的大部分细节。十年后,一本名为《Special Ops Host and Network Security for Microsoft, Unix and Oracle》的书中补全了算法最重要的一个环节——DES算法的KEY。至此,口令加密算法已无秘密可言。接踵而来的是互联网上出现多个了Oracle口令破解工具。Oracle在2007年推出的最新版本11g中,使用了新的更安全的加密算法,但是新算法的细节很快又在互联网上被公开。为提供兼容,11g版本保留了11g以前版本使用的加密口令,利用这一漏洞仍然可以对11g版本的加密口令进行破解。

到底怎样才能保证数据库口令的安全呢?本文首先介绍Oracle数据库各版本口令加密算法的内容,然后针对算法重点介绍加强数据库安全性的应对措施。

口令加密算法
从Oracle7到Oracle 10gR2,使用DES算法对口令进行加密。对算法进行分析,可以得出如下结论:口令不区分大小写,任意大小写组合均可登录;由于只使用固定KEY,只要用户名和口令相同,在任一DB中存放的加密口令都相同;由于采用了用户名和口令串接的方式,所以用户aaa、口令bbbccc的加密值与用户aaabbb、口令ccc完全相同。

Oracle 11g版本的加密口令存放在SYS.USER$表中的SPARE4列中,而PASSWORD列中仍保留以前版本加密口令。由于客户端计算加密口令需要用到SALT,在建立连接时,服务器端将SALT明文传送给客户端程序。Oracle 11g中新的口令加密算法中区分大小写;由于加入了随机数SALT,两个不同用户的口令即便完全相同,计算得到的SHA1的散列值也不同;不同DB中相同用户相同口令,SHA1散列值也可能不同。

目前,大多数破解工具的工作方式是得到加密口令后,对每一个可能的口令进行加密计算,比较计算结果而确定是否正确。由此,抵御口令破解可以从三个方面着手:防止加密口令外泄;在加密口令落入黑客手中后,口令也是不可破解的,或尽量增加破解的时间;即便是口令被破解,也是无用的,不能存取数据库。

防止加密口令泄露
1.应用“最少权限”原则,尽量限制可存取加密口令用户的人数

在数据库中检查具有存取SYS.USER$或DBA_USERS权限的用户,并从不需要的用户中收回权限。但是操作并不简单,这也是数据库管理工作的特点。每一厂商的软件中都实现了SQL标准之外的扩充,并且每一版本都有差异。限于篇幅,不可能对所有本文中建议的措施进行详细的解释说明,仅以此处检查权限为例展示DBA工作的复杂性。本文中如未说明,则默认版本为11g。应用于11g以前版本时,请读者确认是否需要修改。

检查权限主要的工具是数据字典视图(也可以直接存取SYS用户的基表,但基表的定义没有公布,官方不提供技术支持)。视图DBA_TAB_PRIVS存放了数据库中数据对象上的授权信息。假定用户A1和A2可以存取SYS.USER$表,检查在SYS用户USER$上有存取权限的用户,可执行如下语句:

SELECT GRANTEE FROM DBA_TAB_PRIVS WHERE TABLE_NAME=‘USER$’;

我们已经知道用户A1和A2,都可以存取SYS.USER$表,但为什么在上面查询结果中没有出现呢?这是因为在Oracle的权限管理中,对一个表的存取权限还可以通过系统权限或角色赋予,而DBA_TAB_PRIVS中仅列出了直接的对象权限的授予信息。对于SYS.USER$表而言,系统权限SELECT ANY DICTIONARY和角色DBA都包含了这一表的存取权限。所以完整列出所有可存取这一表的用户应增加下面两条查询语句的结果:

SELECT GRANTEE FROM DBA_SYS_PRIVS WHERE PRIVILEGE=‘SELECT ANY DICTIONARY’;
SELECT GRANTEE FROM DBA_ROLE_PRIVS WHERE GRANTED_ROLE=‘DBA’;

通过上面的查询语句,还是会遗漏某些用户。如果把DBA角色授权给另一角色Admin,然后又将Admin角色授权给另一用户NEWU,则此用户可存取SYS.USER$表,但在上述三个查询中并没有直接列出NEWU的名字(角色Admin会出现在第三个查询语句的结果中)。

显然,Oracle的授权构成了一棵树,完整的信息需要一段PL/SQL程序来完成。(对于11g以前版本,还需要检查对DBA_USERS视图有存取权限的用户和角色。SELECT_CATALOG_ROLE角色如被授权,则可以存取所有数据字典视图,但不能存取SYS的基表。)

2.设定对加密口令存取的审计

如果当前系统中只有SYSDBA可以存取USER$,则一个变通办法是审计SYSDBA的所有操作,其中也包括对USER$的存取。设置初始化参数audit_sys_operations =TRUE,重新启动数据库后激活对SYSDBA操作的审计。

审计文件的存放位置为:
11g版本中为:$ORACLE_BASE/admin/SID/ amp/ *.aud
11g以前版本为: $ORACLE_HOME/rdbms/audit/ *.aud。
严格限制和监视SYSDBA用户活动的最好办法是使用Oracle Database Vault组件。

3.在操作系统级限制对数据库数据文件的存取
SYSDBA用户的加密口令存放在$ORACLE_HOME/dbs下的口令文件orapw〈SID〉中。SYS.USER$表同样需要在数据文件中存放,多数为SYSTEM表空间的第一个数据文件中。此外,EXPORT文件、REDOLOG文件以及TRACE文件中都可能出现加密口令。需要严格限制上述文件的存取权限。

4.防止网络窃听

在建立连接时,客户端需要向服务器端传送用户名和口令,并且服务器端与客户端需要相互发送这次会话使用的SESSION KEY。Oracle采用Diffie-Hellman KEY交换算法和自己开发的O3LOGON协议完成上述任务。算法的细节同样已在互联网上被公开。建立连接时上述信息如果被截获,同样可以被用来破解口令。更为严重的是,如果黑客事先已经获得加密口令,结合SESSION KEY的信息,则不需要任何破解,执行简单还原运算就可算出口令明文。

另外,设计SID时不要使用如ORCL、TEST、PROD等常用名字,设定PORT号为远远大于1521的数,都可以增加黑客SID扫描的难度和时间。

5. 删除旧版的加密口令

存放在Oracle 11g数据库中的以前版本的加密口令是口令破解工具的一个突破口。在没有兼容性限制的系统中,可以考虑从系统中删除旧版口令,从而增加破解难度。

具体操作如下:

在SQLNET.ORA中增加一行:SQLNET.ALLOWED_LOGON_VERSION=11(Oracle手册中格式介绍有错误,不能加括号:…=(11)),指定最低版本。
以SYSDBA登录后,执行以下语句,删除旧版口令。
update sys.user$ set password=NULL;
delete from user_history$;
commit;

设置修改后,基于OCI的工具如SQLPLUS、10gR1和10gR2版本都可以正常登录,而JDBC type-4 则只有11g版本才允许登录。

提高口令强度
1.禁止使用缺省口令,禁止与用户名同名的口令,禁止字典词汇的口令

Oracle 11g中提供一个视图DBA_USERS_WITH_DEFPWD,可以方便地查出系统中使用缺省口令的所有用户,不足的是还有不少遗漏。读者可以在互联网找到缺省口令的列表,虽然是非官方的,但是比DBA_USERS_WITH_DEFPWD使用的官方的列表更全。破解工具附带的词汇表有的包括了大型英文词典中全部词汇,并支持词汇与“123”之类的常用后缀进行组合。需要注意的是,有的词汇表中已经出现了“zhongguo”这样的字符串,所以汉语拼音组成的口令也是不安全的。检查系统中是否存在弱口令的最常用方法就是使用前述口令破解工具进行攻击。

2.规定口令最小字符集和口令最短长度

口令字符集最小应包括字母、数字和特殊符号,口令长度最短应不少于8位,对于安全性要求高的系统,最短长度应为12位以上。同样,问题的关键在于DBA指定初始口令以及用户修改口令时保证不违反上述这些规定。每一用户都对应一个Profile,如在Profile中指定口令验证函数,则每当创建或修改口令时,会自动检查是否满足验证程序中所设定的条件,如果不满足,则口令修改失败。对口令明文进行检查,显然要比对加密口令破解效率高。此外,口令创建之时进行检查可以及时封杀弱口令,不给黑客留下破解的窗口。

指定口令验证函数的语句为:

ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION 口令验证函数名;

上例中,为“DEFAULT” Profile指定了验证函数。对用户进行分类后,应当为每一类用户分别创建自己的Profile,而不是全部使用DEFAULT。关闭口令验证函数的语句为:

ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL;

在$ORACLE_HOME/rdbms/admin/下,脚本文件UTLPWDMG.SQL提供了示例的口令验证函数,执行这一脚本,将创建一名为VERIFY_FUNCTION的函数( Oracle 11g中,增加新函数verify_function_11G )。这一函数可以对口令长度是否同时出现了字母数字符号进行检查,检查是否与用户名同名,也检查口令是否是几个最常用的词汇,如welcome、database1、account1等。最后,口令修改时检查新旧口令是否过于相似。读者实际使用时应该根据系统需要对这一函数进行必要的修改和扩充。

3.使用易记忆的随机口令限定口令长度后,如果口令没有规律很难记忆,则用户会采用他们自己的方式记住口令,大大增加了遭受社会工程攻击的可能性。DBA需要帮助用户设计一个容易记忆而又不易破解的口令。一个简单易行的方法是找用户非常熟悉的一个句子,如One world One dream,然后将每一个空格替换为数字或符号:One3world2One1dream#。

定期更换口令

抵御口令破解要从多方面着手


数据库中存在多种权限用户,各种授权用户构成一棵树

应对口令泄露或被破解的措施是强制定期更换口令,设定口令重复使用限制,规定封锁口令的错误次数上限及封锁时间。即便是加密口令落入黑客手中,在被破解之前或入侵之前,修改了口令,则口令破解变得毫无意义。为了方便记忆,一般用户有重新使用之前过期口令的倾向,如果对重用不加控制,则定期更换口令将失去意义。上述对口令的管理仍然是通过Profile完成:

ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 30
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME 365
PASSWORD_REUSE_MAX 0
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION my_verify_function;

上面语句制定的口令管理政策为:口令的有效期为30天,随后有7天的宽限期,宽限期后口令“过期”,必须更改口令后才能登录。只有经过365天后才能重新使用以前的口令。在连续10次输入口令错误后,账号被封锁,设定不自动解锁,必须由DBA手动解除封锁。口令验证函数为my_verify_function。

Oracle 11g以前版本,缺省设置中没有设定口令的有效期,而在Oracle 11g中缺省设置有效期为180天。程序中直接写入口令的应用在升级到11g时一定要注意有效期问题,避免半年后应用突然无法自动运行。另外,口令的有效期对SYS用户不起作用,DBA一定要主动定期更换口令。

另外一个措施是对登录数据库服务器的主机进行限定,如指定网段或指定IP地址。进一步限定客户端允许执行的程序,如对非本地登录禁止使用SQLPLUS,只允许执行某特定应用。

认真实施本文中给出的措施后,可以很有效地防止口令被破解。然而我们的目的是提高数据库系统的安全性,而不仅仅是保证口令不被破解。数据库系统安全的任何一个环节出现问题,都会导致前功尽弃。黑客的目的是入侵系统盗窃数据,是不会按常理出牌的,会尝试各种手段方式,如社会工程、安全漏洞、物理入侵等等,而不会执着地在口令破解上与我们较劲。这一点需要我们经常提醒自己,从而切实保证数据库系统安全。

TechTarget中国原创内容

‘陆’ 数据加密方式总结

程序开发过程中一般会遇到客户端与服务端进行数据通信,不可避免的会遇到数据安全问题。为了防止数据在网络传输中发生数据泄露,我们常常会用到数据加密。常规的数据加密方式主要有:对称加密和非对称加密。

对称加密主要有3种加密方式:DES加密、3DES加密及AES加密

如上图所述,对称加密使用同一个秘钥,先用秘钥对需要传输的明文数据进行加密,已加密的密文数据经过网络传输后,数据接收方通过同一个秘钥进行解密,将密文数据再转化成明文数据,完成数据传输过程。
但DES加密算法的安全性不够好,DES 被证明是可以破解的,明文+密钥=密文,这个公式只要知道任何两个,就可以推导出第三个在已经知道明文和对应密文的情况下,通过穷举和暴力破解是可以破解DES的。

顾名思义,3DES加密就是使用DES算法加密解密3次,由于DES加密缺乏安全性,3DES加密3次后安全性大大提高,但损失了一定的速度性能,所以慢慢被更优异的AES加密算法所取代,3DES算法可以说是DES加密和AES加密中间的过度品。

AES加解密过程和DES加解密过程类似,AES标准支持可变分组长度,分组长度可设定为32 比特的任意倍数,最小值为128 比特,最大值为256 比特,安全性大大增加,加解密速度也还可以。

RSA的安全基于大数分解的难度。其公钥和私钥是一对大素数(100到200位十进制数或更大)的函数。从一个公钥和密文恢复出明文的难度,等价于分解两个大素数之积(这是公认的数学难题)。
同时由于RSA的私钥不用在网络上传输,避免了秘钥泄露,因此安全性能大大提高。
RSA加解密速度测试:

通过上表可以发现,RSA加密速度还比较快,但解密速度会随着加密数据的大小慢很多,加密6KB大小的数据用时0秒,解密用时1秒还可以接受。但对1M左右的数据进行解密,花费了5分多钟的时间,在实际开发过程中就会显得很慢,所以RSA算法一般用于加密数据量较小的应用场景。

‘柒’ 计算机网络安全数据加密技术的运用

计算机网络安全数据加密技术的运用

在计算机网络的运行过程中,应用系统离不开数据的传输,不论是各种服务还是最基础的运行都要通过数据的传输,所以,保证数据传输的安全是保证计算机网络安全的核心。认证认证技术的应用能有效的核实用户的身信息,保障网络安全,其中最为常见的认证方式是数字签名技术。

摘要: 随着信息化普及范围越来越大,网络安全问题也逐渐凸显,导致网络外部与内部均面临这多项威胁,而加密技术则是保障网络安全的关键性技术,在网络安全防护中起到了决定性作用。本文基于上述背景,从计算机网络安全现状和加密技术应用现状出发进行分析,并以此为依据,本文主要探讨了数据加密技术在网络安全中的具体应用。

关键词: 计算机网络安全;数据加密;应用

随着计算机网络普及范围越来越大,网络安全事件也越来越多,因此,用户对网络的安全性能要求越发严格,尤其是信息数据的保密性能。有效保障网络安全是目前面临的巨大挑战,一方面,老式的防病毒技术已无法满足现在的加密标准要求,另一方面,网络上的恶意攻击事件层出不穷。加密技术则是解决网络安全问题的主要技术,目前在计算机网络中应用广泛,从一定程度上起到了提高信息数据传输的安全性。

1计算机网络安全受到威胁的主要因素

1.1操作系统存在漏洞

计算机的操作系统是所有程序运行的环境,作为整个电脑的支撑软件,操作系统如果存在隐患,入侵者就有可能通过窃取用户口令进一步操作整个计算机的操作系统,得到用户个人残留在各个程序中的个人信息;如果系统的CPU程序、系统掌管内存存在隐患,入侵者就可以利用漏洞导致计算机或服务器瘫痪;如果系统在网络安装程序、上传文件等地方出现安全漏洞,在用户的传输过程中入侵者就可以利用间谍程序进行监视,这些隐患都是通过不安全的程序进入操作系统,所以在日常操作的过程中,要尽量避免使用陌生软件。

1.2网络安全隐患

网络是获取和发布各类信息十分自由的平台,这种自由也导致了网络面临的威胁较多。网络安全攻击有传输线攻击、计算机软件的硬件攻击、网络协议攻击等,其中网络协议不安全因素最为关键。计算机协议主要有TCP/IP协议,FTPNFS等协议,如果入侵者利用协议中存在的漏洞,就能通过搜索用户名得到机器的密码口令,对计算机的防火墙进行攻击。

2数据加密技术的原理

在计算机网络的运行过程中,应用系统离不开数据的传输,不论是各种服务还是最基础的运行都要通过数据的传输,所以,保证数据传输的安全是保证计算机网络安全的核心。数据加密技术是按照某种算法,将原来的文件或数据进行处理,使与原来的“明文”变为一段不可读的代码的“密文”,这种代码只有通过相应的密钥才能被读取,显示其原来的内容,通过这种方式达到保护数据不被入侵者窃取、阅读的目的。

3数据加密技术在计算机网络安全中的应用

3.1数据加密

按照确定的密码算法将敏感的明文数据转换成难以识别的密文数据,通过使用不同密钥,可用同一种算法把相同的明文加密为不同密文的数据保护方法叫做数据加密。数据加密的方式主要有节点加密,链路加密和端到端加密。在“网上银行”兴起的前提下,银行网络系统的安全问题十分重要,数据加密系统作为新的安全措施显现出许多优点,得到了各大银行中采用,通过数据加密技术和网络交换设备的联动,即在交换机或防火墙在运行过程中,各种数据流信息会上报安全设备,数字加密系统对上报的信息和数据流进行检测。在发现网络安全隐患时进行针对性的动作,并将安全事件的.反应动作发送给防火墙。通过交换机或防火墙精确地关闭或断开端口,取得了很好的安全效果

3.2密钥技术

密钥的作用是加密和解码数据,分私人和公用两种。私人密钥的安全性现对较高,因为得到了使用双方的认可,但当目的不同所需的密钥不同时会出现麻烦和错误,而公用密钥操作简单,可以弥补这个缺点。在操作时传输方用公用密钥,接收方用私人密钥,就很好的解决了问题,并且数据安全性较高。例如:使用信用卡时,商家的终端解密密钥能解开并读取用户信息,再将信息发送到发行信用卡的公司,能确定用户使用权限但不能获取用户信息,达到方便且安全的效果。

3.3数总签名

认证认证技术的应用能有效的核实用户的身信息,保障网络安全,其中最为常见的认证方式是数字签名技术。此技术以加密技术为基础,对加密解密技术方式进行核实,采用最多的应用是公用密钥的数字签名和私人密钥的数字签名。如上文所述,私人密钥的数字签名是通过双方认证的,可能会存在一方篡改信息的情况,此时要引入第三方认证,公用密钥就避免了这种麻烦。例如在国内税务行业中,数字签名认证为网上税务业务的办理提供了安全保障。

4结语

综上,随着经济的发展,信息时代的更新十分迅速,网络恶意攻击和木马病毒等也层出不穷,操作系统技术再高还是会有安全漏洞。所以,建立完善的防护体系,注重管理网络安全应用才能有效的保护信息安全,因此,技术人员要跟随网络发展的脚步,不断完善安全防护系统,才能更好的保护用户信息安全。

参考文献

[1]郭其标.基于同态加密的无线传感器网络安全数据融合分析[J].网络安全技术与应用,2015,(5):76-79.

[2]于海龙.网络安全中的信息加密[J].青春岁月,2015,(4):574-575.

[3]李帅.浅析加密技术在网络安全中的应用[J].电脑知识与技术,2015,11(18):23-24,28.

;

‘捌’ 数据加密方式有哪些

对称加密:三重DES、AES、SM4等
非对称加密:RSA、SM2等
其他的保护数据隐私的方法还有同态加密、差分隐私、安全多方计算等
目前我们公司一直和上海安策信息合作的,安策信息研发了好几种数据加密工具,包括加密狗、加密机、动态口令、加密工具等网络也有很多相关资料。

阅读全文

与基于口令的数据加密相关的资料

热点内容
app网课视频怎么拷贝到电脑上 浏览:708
安卓国服光遇小王子季节什么时候结束 浏览:537
恢复的音乐在哪个文件夹 浏览:595
qq传输文件夹压缩包 浏览:911
sha1加密算法java 浏览:232
单片机ds1302程序 浏览:738
杜比压缩开还是关怎样判断 浏览:366
对象类型转换java编译和运行 浏览:284
行政命令是什么 浏览:371
android调用系统邮件 浏览:33
测温软件app是如何实现的 浏览:585
江苏服务器机房按需定制云主机 浏览:639
c程序员笔试 浏览:694
excel怎么引用统一文件夹 浏览:249
怎么把微信抖音加密 浏览:304
android滑动进度条 浏览:836
javagmt转换 浏览:827
linux查看snmp 浏览:26
ug80车床编程 浏览:518
怎么加速python计算素数 浏览:243