IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> java数据安全 -> 正文阅读

[网络协议]java数据安全

数据安全

保证数据安全

需要解决三个问题:

机密性、完整性、身份验证(抗抵赖性)

  • 机密性:传输内容非明文,即使数据被外界截获,也不能被他人解释或破解
  • 完整性:传输过程中内容不能够被篡改,若信息被篡改或不完整,接收方能够得知
  • 身份验证(抗抵赖性):接收方能够验证数据的实际发送方,确保数据不是被人“冒名顶替”而伪造的

举例

  • 甲、乙双方军队攻打丙方,丙方比较强大,因此甲乙双方必须使用合理的配合战术,并且一起进攻,才能取胜,而甲乙双方不再一个地方,他们必须秘密通信

  • 当甲方军师研究好配合战术并确定了进攻时间,于是给乙方军师写了封信。现在问题来了,那这封信怎么才能保证安全

  • 信中内容必须以加密的形式传输,只有乙方军师才能看得懂。否则万一这个信件被丙方所截获,那丙方就知道了甲乙双方的战术安排,这就是机密性

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oi5g0ehN-1635041318138)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1635040735735.png)]

  • 这个信件若真被丙方截获,丙方若想将计就计把信中内容偷偷修改,再发给乙方,那乙方必须知道这个信中途已被篡改,这就是完整性

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ODdg3c7m-1635041318143)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1635040770116.png)]
  • 当乙方军师收到这个信件时,必须确认是甲方军师写的,而不是丙方伪造的信件,这就是身份验证

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zyHdWUnY-1635041318145)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1635040816589.png)]

机密性

  • 机密性可通过加密算法保证,加密算法定义了明文、密文之间如何转换,也就是加解密的过程。加密算法分为:对称加密非对称加密

对称加密算法

  • 对称加密指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密秘钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送 或接收的消息解密,所以密钥的保密性对通信性至关重要。常见的对称加密算法主要有DES,AES,3DES、RC2、RC4和RC5等

非对称加密算法

  • 非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密; 如果用私有密钥对数据进行加 密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法
  • 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。常见的非对称加密算法:RSA、DSA、ECC等

完整性

  • 信息完整性可通过提取并对比消息摘要的方式来实现。消息摘要就是根据一定的运算规则对原始数据进行某种形式的信息提取,通过消息摘要后的消息摘要的长度总是固定的,它也叫做数据指纹,因为它可以唯一的标识一段数据。常见的摘要算法有:sha1、sha256、md5、crc32等

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3G228EdX-1635041318148)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1635040980214.png)]

身份验证

  • 即使我们保证了数据的机密性和完整性,这里面仍然存在一些问题:

    • 接收方若要验证消息完整性,必须得到发送方对消息产生的摘要,若第三方得知摘要算法,那摘要也是可以被伪造的,因此摘要本身也需要被加密
    • 消息发送来源如何确定,怎么确定不是第三方伪造的?
  • 发送方将消息原文使用摘要算法生成摘要,再用私钥对摘要进行加密,生成数字签名,然后将内容附上数字签名一起传输

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k8uaB8su-1635041318149)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1635041072162.png)]
  • 接收方收到消息后,用发送方的公钥对数字签名进行解密(能解密成功就完成了对发送方的身份验证),得到摘要A,然后再对原文使用摘要算法生成摘要B,比对摘要A和B是否相同,相同则说明内容没有被篡改

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2uPWrBeP-1635041318150)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1635041143117.png)]

总结

  • 通过加密算法对数据原文的加密、解密,我们能保证数据传输过程中的机密性

  • 通过数字签名机制,我们既可以保证数据完整性,也可以对数据来源进行身份验证

  • 针对非对称加密技术的应用,我们通常使用两种方式:

    • 传输过程中的数据加密,我们使用接收方公钥加密,接收方私钥解密,保证数据在传输过程中是密文
    • 接收方对信息来源的确认,发送方会使用私钥对数据签名,接收方使用发送方公钥进行验签
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:47:40  更:2021-10-25 12:47:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:48:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码