菜鸟学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

相关文章
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
790 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
8月前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
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开发知识可参考相关书籍。
501 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
618 2
linux笔记 diff及patch的制作与使用
|
存储 NoSQL Java
|
存储 算法 Linux
在Linux中,如何理解加密工具?如GnuPG和OpenSSL。
在Linux中,如何理解加密工具?如GnuPG和OpenSSL。
|
数据采集 Linux
Linux源码阅读笔记20-PCI设备驱动详解
Linux源码阅读笔记20-PCI设备驱动详解
|
Ubuntu Linux Shell
【linux】PetaLinux 2024.1安装笔记
【linux】PetaLinux 2024.1安装笔记
1800 0
|
4月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
490 1
二、Linux文本处理与文件操作核心命令
|
4月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
336 137