文档章节

网络传输数据的加密过程详解

商者
 商者
发布于 2016/05/19 17:55
字数 1265
阅读 230
收藏 8

常见的明文传输协议有:http,smtp,dns,pop3,imap4。
常见的攻击方式有:窃听,数据注入,会话劫持
为了保证互联网上的数据传输的安全性,于是各种的加密方式和加密算法诞生了:

数据加密方式:对称加密、公钥加密、单向加密。
1.对称加密:加密方和解密方使用同一个密钥,其优点是:加密解密的速度快,适合于大量数据的加密。缺点是:无法进行密钥交换。
2.公钥加密:使用接受方的公钥进行加密,接收方在使用自己的密钥进行解密。缺点是:加密效率低,一般不用在数据加密上,通常是用在数据加密的密钥交换上的加密。
3.单向加密:获取数据的特征码,其特点是:定长的输出,加密过程不可逆,具有雪崩效应也称作蝴蝶效应。

由上面的加密方式可以得知,每一种加密方式都具有缺点,要想在互联网上传输数据既要保证数据的完整性和数据的保密性,以及数据发送者的身份验证 ,显然使用一种加密方式是远远不够的。

单说要完成数据发送者的身份验证:

发送者使用自己的私钥对某一数据的特征码或其他进行加密,当接受者收到数据时在使用发送者的公钥进行解密,这一过程就可以完成发送者的什么验证,该过程又称作"数字签名"。

在既保证数据的完整性,保密性以及实现发送者的身份验证的数据传送过程:


首先发送者对自己要发送的数据进行单行加密,计算出数据的特征码,并且使用自己的私钥讲该段特征码进行加密,并且将其特征码附加至数据的尾部,之后在使用对称加密,随机生成一个加密密码,使用该密码对包含有特征码和数据这一整块进行加密,之后在使用接受者的公钥对随机生成的这个密码进行加密,附加至所有数据之后发送给接受者!

整个加密过程如图所示:


在这个传送过程中,为保证数据的完整性,首先使用了单向加密,计算出数据的特征码。
又为实现数据的保密性,使用对称加密,随机生成加密密码对数据和特征码加密。
其次实现发送者的身份验证:使用公钥加密方式,使用发送者的私钥对密码进行加密。
最后为保证所有的数据的保密性,再次的使用公钥加密方式,使用接收者的公钥进行加密。


在这个过程看似完美,但是有个细节,接受者如何获取发送者的公钥,以及发送者如何获取接收者的公钥?这时就要借住一个第三方CA。

CA:证书办法机构。
PKI:公钥基础设施。
PKI的核心就是CA
CA的组成:    1.证书的持有者;
        2.CA的相关信息;
        3.证书的使用方法;
        4.持有者的公钥;
        5.证书的有效日期。

下面就来说,接收者如何确认发送者的公钥:

首先:CA是一个接收者和发送者共同信任的第三方,也可以说是中间人。
其次:CA为了保证自己的权威性,在颁发证书之前一定回去实地考查申请证书的用户或主机的真实情况,一切属实才会为其办法证书。
再而:CA为了保证证书确实是由自己颁发,并且证书内容没有被篡改过,这里就要CA进行数字签名。


首先:CA使用单向加密方式计算出真个证书的特征码;
之后:使用公钥加密方式,使用CA自己的私钥对特征码进行加密,并且附加在证书的后面。


当接受者或发送者收到对方的证书后,首先使用CA的公钥进行解密出特征码,然后使用单行加密方式计算出证书的特征码,相比较两个特征码,如果相同,则表示证书中的公钥确实是对方的公钥。于是获得了对方的公钥。

而此时CA的公钥又从何而来呢?在操作系统的制作时,就会植入一部分权威的CA机构的公钥,也就是本机自带喽!而如果你所需要的CA并没有在系统中,那么你就需要到这家CA获得其公钥,然后导入到您的服务器中。

本文转载自:

共有 人打赏支持
商者

商者

粉丝 42
博文 142
码字总数 43255
作品 0
海淀
架构师
私信 提问
Https协议详解

Https 介绍 什么是Https HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是S...

li_wen01
2017/08/20
0
0
从让 HTTPS 更安全出发,聊聊 HTTPS

随着公众对网络安全的日益关注,各种网络安全防护手段层出不穷。HTTPS Everywhere作为提升HTTPS安全性的有效手段,日前安全性与实用性再次得到了加强。 HTTPS虽然可以有效提升用户浏览网页的...

又拍云
2018/04/16
0
0
迈向高阶:优秀Android程序员必知必会的网络基础

1、前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用的工具类,到后来Goo...

首席大胸器
2018/09/17
190
0
ssh服务认证---基于密钥的认证过程讲解

系统信息 ssh分发公钥,进行远程免密登陆过程详解 1)客户端创建密钥对 2)客户端分发公钥到服务端 从上面可知,客户端分发公钥到服务端时,会接收到服务端的rsa公钥,并将此公钥保存到文件/...

Linux_yk
2018/03/12
0
0
如何选择即时通讯应用的数据传输格式

前言 即时通讯应用(包括IM聊天应用、实时消息推送应用等)开发的前期技术选型时,关于数据传输格式的选择,在即时通讯开发者同行的眼里,是个极富争议话题。 精略分析一下,大概的原因在于:...

JackJiang-
2016/08/04
462
1

没有更多内容

加载失败,请刷新页面

加载更多

matlab-自控原理 step、impulse 阶跃、脉冲响应 已知传递函数

  matlab : R2018a 64bit     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   已知传递函数,求其阶跃响应......

志成就
15分钟前
0
0
JDBC事务操作

事务特点:ACID 原子性(Atomicity):事务管理的系列操作必须全部完成,否则就算失败(类似操作系统的PV原语、信号量) 一致性(Consistency):同一个事务只要起始条件一致最终执行的结果一致 隔...

ZeroneLove
17分钟前
0
0
【scala】3.数组相关操作

简介 在本章中,我们将会学到如何在scala中操作数组。 1、定长数组 // 初始化长度为10的定长数组,每一个元素的值为0val nums = new Array[Int](10)// nums: Array[Int] = Array(0, 0, 0, ...

Areya
18分钟前
0
0
教你零基础如何快速入门大数据技巧

现在是大数据时代,很多人都想要学习大数据,因为不管是就业前景还是薪资都非常的不错,不少人纷纷从其他行业转型到大数据行业,那么零基础的人也想要学习大数据怎么办呢?下面一起探讨下零基...

董黎明
26分钟前
1
0
Nginx 配置 root目录、虚拟目录alias

Nginx是通过 alias 设置虚拟目录,在Nginx的配置中,alias目录和root目录是有区别的。 alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的; root指定...

Yue_Chen
43分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部