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

相关文章
|
3天前
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
3天前
|
运维 Linux Docker
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
Docker笔记(个人向) 简述,最新高频Linux运维面试题目分享
|
1天前
|
编解码 Linux 5G
FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器
AVS3,中国制定的第三代音视频标准,是首个针对8K和5G的视频编码标准,相比AVS2和HEVC性能提升约30%。uavs3d是AVS3的解码器,支持8K/60P实时解码,且在各平台有优秀表现。要为FFmpeg集成AVS3解码器libuavs3d,需从GitHub下载最新源码,解压后配置、编译和安装。之后,重新配置FFmpeg,启用libuavs3d并编译安装,通过`ffmpeg -version`确认成功集成。
10 0
FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器
|
5天前
|
NoSQL Java Linux
linux笔记
linux笔记
11 0
|
5天前
|
安全 Linux 网络安全
|
5天前
|
存储 运维 Java
Linux笔记02 —— Shell补充
Linux笔记02 —— Shell补充
35 2
|
5天前
|
安全 Linux Shell
Linux笔记01 —— Linux初识与Shell汇总(请配合另一篇《Linux笔记02》一起使用)
Linux笔记01 —— Linux初识与Shell汇总(请配合另一篇《Linux笔记02》一起使用)
20 1
|
5天前
|
安全 网络协议 Linux
linux必学的60个命令
Linux是一个功能强大的操作系统,提供了许多常用的命令行工具,用于管理文件、目录、进程、网络和系统配置等。以下是Linux必学的60个命令的概览,但请注意,这里可能无法列出所有命令的完整语法和选项,仅作为参考
281 2
|
1天前
|
安全 网络协议 Linux
linux必学的60个命令
Linux是强大操作系统,提供众多命令行工具,如安装登录(login, shutdown, install)、文件处理(file, mkdir, grep)和系统管理(df, top, kill)。此外,还包括网络操作(ifconfig, ping, telnet)和安全相关(passwd, su, chmod)命令。了解这些基础命令对于有效管理Linux系统至关重要。详细信息和特定用法可能因版本差异而变化,建议查阅相关文档。
113 2