菜鸟学Linux 第043篇笔记 加密协议

简介:

菜鸟学Linux 第043篇笔记 加密协议




数据在互联网上加密传输原理

TCP/IP 安全

A-->B

机密性:明文传输(ftp, http, smtp, telnet)

完整性

身份验证

机密性:plaintext --> 转换规则 --> ciphertext 加密

ciphertext --> 转换规则 --> plaintext 解密

转换算法: 密钥

对称加密: 算法计算速度快 密钥相同

数据完整性 A-->B

Eve

单向加密算法:提取数据特征码

输入一样: 输出必然相同

雪崩效应: 输入的微小改变,将会引起结果的巨大改变

定长输出: 无论原始数据是多大,结果大小都是相同的

不可逆:   无法根据特征码还原成原来的数据

A: plaintext:footprint --> B

协商生成密码:密钥交换(Internet Key Exchange, IKE)

Diffie-Hellman协议

A --> B

P, g (大素数, 生成数)

A:x

B: y

A: g^x%p --> B

A: g^y%p --> A

互联网传输数据: g, p, g^x%p, g^y%p

A: (g^y%p)^x=g^yx%p

B: (g^x%p)^y=g^xy%p

公钥加密算法:  非对称加密算法

密钥对:

公钥:p

私钥:s

发送方用自己的私钥加密数据,可以实现身份验证

发送方用对方的公钥加密数据,可以保证数据机密性

公钥加密算法很少用来加密数据:速度太慢

CA 专用的认证发证机构

PKI (Public Key Infrastructure)

CA

分析数据加密传输步骤

A发送加密数据给B

1.A先将原数据用单向加密生成特征码

2.A将特征码用自己的私钥加密放在原数据包后

3.A使用对称加密算法随机生成一个随机数将原数据包和

 用私钥加密的特征码打包起来再加密

4.A再用B的公钥将此随机数加密, 并将上一步的加密数据包,

 和随机加密数据包传输给B

以上的第4步则为数据机密(密文)传输


B解密A发来的数据包

1. B用自己的私钥将随机加密数据包解密,解出随机数(机密传输解密)

2. B用解出的随机数再将打包的加密数据解密(打开密文数据包)

3. B再用A的公钥将特征码解出(身份验证)

4. B再用数据单向加密算法将A所发的原数据再进行一次

  单向加密得出的特征码和A所发的特征码做比较(即数据的完整性校验)

以上所讲的都关乎于非对称加密的私钥和公钥,所以这个很重要,也要进行验证即CA机构

CA机构首先产生的是自己的证书,然后就可以为别人做公钥证书

A、B双方要验证对方的公钥即需要CA机构,

A要和B发送数据之前,互相传送对方的公钥,然后将得到的公钥和CA机构给的公钥做对比验证

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1881552如需转载请自行联系原作者


Winthcloud

相关文章
|
1月前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
8月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
400 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
8月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
268 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
10月前
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
272 2
linux笔记 diff及patch的制作与使用
|
9月前
|
存储 NoSQL Java
|
10月前
|
存储 算法 Linux
在Linux中,如何理解加密工具?如GnuPG和OpenSSL。
在Linux中,如何理解加密工具?如GnuPG和OpenSSL。
|
10月前
|
数据采集 Linux
Linux源码阅读笔记20-PCI设备驱动详解
Linux源码阅读笔记20-PCI设备驱动详解
|
10月前
|
Ubuntu Linux Shell
【linux】PetaLinux 2024.1安装笔记
【linux】PetaLinux 2024.1安装笔记
770 0
|
1月前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
119 32
|
1月前
|
监控 Linux
Linux命令大全:echo与tail实现输出重定向。
这样,我们实现了使用echo和tail命令进行输出重定向的目的。在实际应用中,输出重定向技巧可节省时间,提高工作效率。希望本文内容对您了解和掌握Linux系统中echo与tail命令以及输出重定向的操作有所帮助。
100 27