由于互联网早期并没有考虑到数据报文安全的问题,早期的理念都是基于进行通信的。现在随着网络兴起,互联网上慢慢有很多“犯罪团体”,用较低的犯罪成本通常是基于一个网络通信协议的一个小的漏洞来完成窃取、篡改、重播其他人的数据报文。

而往往计算机网络安全维护者和那些恶意攻击者玩的就是一个类似猫鼠游戏,网络安全维护者处处考虑对计算机的安全负责,而恶意攻击者处处找安全的漏洞。而对于那些恶意攻击方式大体分两种。

一种叫被动攻击,大体上来说就是窃听,攻击者获得传输信息,捕获了数据流量。而另外一种叫做主动攻击,即伪装,冒名顶替数据接受者。重播,把窃取的消息一遍遍的发送给接收方。修改、把其他人的信息截取下来篡改一番。而针对那些恶意的攻击者,我们的网络安全机制就规定了,至少要保证在安全的网络通信下,这两点是必备的,

一、保证数据完整性,保证是发送方发送的信息没有被非授权修改 插入删除重复发送。

二、安全认证,为了验证发送者的身份,要求发送者做数字签名,证明是他自己的身份。

为了下面更好的讲述,现在引入几个概念:

明文  指的是传送方想要接收方获得的可读信息,说白了,就是大家都能看懂的信息啦。

密文  把明文经过一些加密算法后生成的一堆正常的地球人无法直接读懂的字符串。

密钥  就是在同一种算法内明文、密文之间相互转换需要输入的数据,如果输错了,就无非获得正确的明文信息啦。

算法(计算机) 无非就是利用一些数学公式算法的方式。

在计算机加密方式有以下几种:

一、对称加密方式:(AES、DES)

在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

该算法的缺点是,如果一旦密钥泄漏,那么加密的内容将都不可信了。

发送方和接收方都使用同一个密钥对信息进行加密、解密。这里举个例子就好理解了,假设XX村有个寡妇叫小翠,跟隔壁的二狗有“交流”,小翠要和二狗通信,通常都是写一些大家都能理解的语句“月上柳梢头,人约黄昏后。”一类的吧,万一“信”让不怀好意的大牛截取了,张大牛打开信就看到了秘密了。这个似乎就很尴尬了,于是小翠和二狗商量好了,采取用他俩人的“暗号”对信加密呀。

这样,小翠和二狗两个人都拥有同一个密钥,就可以情意绵绵的通信啦,对于大牛来说,他没有密钥,就算截取了信,也是只能看到一堆乱码。但是,万一小翠要是脚踩N只船,和不同的人都有“交流”,岂不是小翠要记得好多密钥?万一大牛利用一些手段,截取了信息,破解了密钥,这样的加密就毫无意义了,再设想一下,大牛截取了,破解不了,但是他又一次生成了不一样的信息发给二狗,二狗也并不知道小翠要表达什么,这样岂不是曲解了原意了么?还有最重要的,如果小翠和二狗并没有办法相见,小翠加密以后,怎么把密钥告诉二狗呢???

这样,对称加密的缺陷就显现出来了:

密钥真的是过多,身份也无法认证,更不用提数据完整性可靠了,同理,密钥交换就很困难。

但是本质上说,对称加密的速度还是蛮快的。

二、非对称加密方式

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密(这个过程可以做数字签名)。

非对称加密主要使用的是RSA算法。

W.Diffie和M.Hellman 1976年在IEEE Trans.on Information刊物上发表了文章,提出了“非对称密码体制即公开密钥密码体制”的概念,开创了密码学研究的新方向。该加密方式规定了密钥需要有一对儿

一个公钥(Public Key)和 一个私钥(Private Key/Security Key),如果用公钥加密信息,就需要用相同配对的私钥才能解密,反之亦然。

让我们看看非对称加密的过程是什么样子的:

Tom如果想跟Jerry通信:

Tom再获得了Jerry的公钥以后用Jerry的公钥加密了一段小的“数据”,放到要传输的信息后面,一并发给Jerry,假设信道传输时没有被别人窃听破坏,Jerry拿到这个数据,想读取内容,只能通过它自己的私钥才能开启那小段数据。此外因为Tom用Jerry的公钥加密,也能够保证获取到正确信息的一定是Jerry本人(Jerry的私钥没有泄露),这样Jerry不仅拿到了数据也保证了Jerry本人拿到的。非对称加密方式在很大程序上保证了数据的安全性。但是没有一种办法能保证万无一失,假设这个数据不幸被第三方的Dog拿到了,Dog虽然不知道Jerry的私钥是什么,但是Dog恶意破坏数据,随便用一个私钥就解密数据,得到一种错误的信息。
非对称加密的算法:

RSA

D-H

Elgamal

等等

但是这里有个很大的问题,Tom和Jerry双方怎么取得各自的公钥呢??是不是双方需要一个可靠的机构或者是第三方个人来担保双方获得的公钥是正规途径得来的。而且公钥加密本身生成的密码就很长,意味着解密时间也就很长。

非对称加密算法

优点:数据可靠性相当强,很大程序上保证了身份认证。

缺点:生成大量字串故解密速度较慢,若用公钥加密,公钥传输的渠道成问题。

三、单向加密(MD5)

单向加密,它自己无法进行解密过程,不能用作直接进行加密数据信息。它采用两种MD5和SHA算法方式,把一段数据进行加密处理,获得一个叫做“特征码”的东西。

这段“特征码”跟原数据信息半毛钱关系没有。假设现在有人采用高科技手段篡改了文件内容,此时文件内容做了改动,哪怕是微小改动,被修改过以后的文件再次提取“特征码”。结果也会发生翻天覆地的变化,加密学里称之为雪崩效应(avalanche effect)。这种对于数据内容的识别很直接,一眼就能辨别数据内容有无修改。“特征码”识别过程我们好比照妖镜一样,伪装的再好的妖精也会被识别出来。

就让我们采取md5方式在linux上做个小实例:

1
2
3
4
5
6
7
8
9
10
11
[root@localhost tmp] # cat 1.txt 
I have a dream.
[root@localhost tmp] # md5sum 1.txt 
431ee9fa1c63997e59586b118905d32d  1.txt
[root@localhost tmp] # cat > 1.txt << EOF
> i have a dream.
> EOF
[root@localhost tmp] # md5sum 1.txt 
10734d2b3be4151b61faea8a7cc622af  1.txt
本来1.txt的文档内容是I have a dream,我们把它进行md5算法加密,获得一个
431ee9fa1c63997e59586b118905d32d这就是原数据1.txt的长度为256bits的“特征码”

1
而我们一旦对原文件的数据内容进行个微小的修改把“I ”改成“i”结果又偷偷写回到原文件之中

结果确发现大相径庭,10734d2b3be4151b61faea8a7cc622af变成这个“特征码”了。用它来甄别数据是否被人偷偷的改过是不是很有效?

让我们对上述的做个总结,

我仅仅是想快速的对数据进行加密对其他人发送的时候,我可以采取对称加密的办法。

我们要验证发送接收双方的身份真伪,可以用“非对称加密”办法。

我们想知道数据内容有没有被人非法篡改过,就用“单向加密”方式。

所以大致上

对称加密:快速

非对称加密:认证身份

单向加密:验证数据内容

这里就有个好的意见,如果我们想跟另一个机构或个人通信,不妨把上述三点都揉在一起,这样任何都会照顾到了。这样就大致诞生了PKI里面叫做“公钥基础通信设施模型”。

模型大体上步骤是这样的,还是以Tom和Jerry为例:

Tom想跟Jerry通信,Tom会采取加密步骤,步骤如下

此时我们的Jerry收到信息,它的解密步骤如下:

这样是不是就能够保证通信双方万无一失了呢??看着很是天衣无缝,但是其实仔细想想,似乎哪里还有蹊跷。

Tom想跟Jerry通信,Tom是怎么获得Jerry的公钥的呢????

看看,原来是如此缜密的通信机制里还有遗漏,我们仍无法保证数据够保密的。Tom和Jerry如何可靠的获得真正属于本人的公钥的?看来得找一个牢靠的第三方,一个能够保障双方身份都可靠的仲裁机构了。对,这就是CA的诞生了。

==================================CA(Certification Authority)==========================

CA就是认证身份的中心,用它来确认公钥拥有者的真实身份!!它会给Tom和Jerry每个人发给类似***一样的“数字证书”。而且对于这个CA的第三方几乎没人敢怀疑它是“冒牌货”。那么CA是如何进行认证的呢?

CA会利用它自己的私钥为数字证书附加上数字签名,类似于上公安局盖上大印了一样。

通常我们的CA采取x.509格式信息的数字证书

·证书的版本信息;

·证书的序列号,每个证书都有一个唯一的证书序列号;

·证书所使用的签名算法;

·证书的发行机构名称,命名规则一般采用X.500格式;

·证书的有效期,现在通用的证书一般采用UTC时间格式;

·证书所有人的名称,命名规则一般采用X.500格式;(这里必须要写真实的主机名)!!!

·证书所有人的公钥。

·证书发行者对证书的签名。

但如果Tom想申请一个证明自己公钥所有权的CA的数字证书并不是那么容易,Tom需要填写一个类似“入党申请书”一样的东西交给CA,CA进行实地考察,看看Tom三代是否有不合法的,看看Tom是不是一个品德高尚的人等等,核实成功了,CA才会签署表示同意。

网络传输的加密与解密相关推荐

  1. Oracle 加密配置,【学习笔记】Oracle sqlnet设置网络传输加密案例

    天萃荷净 Database Advanced Security,Oracle研究中心学习笔记:分享一篇关于Oracle数据库网络传输加密笔记,通过配置SQLNET.ora文件使网络传输加密即将客户端也 ...

  2. Android网络传输中必用的两个加密算法:MD5 和 RSA 及Base64加密总结

    (1)commons-codec包简介 包含一些通用的编码解码算法.包括一些语音编码器,Hex,Base64.MD5 一.md5.base64.commons-codec包 commons-codec ...

  3. 网络与计算机加密解密驱动,嵌入RSA加密算法网络加密卡驱动程序的实现

    摘要: 网络加密卡是一种带有网络接口并且能够对信息进行加解密的硬件卡.通过DM9000网卡实现网络接口,通过FPGA电路实现加解密核,利用VHDL编程实现了高速硬件加密传输,增强了信息的安全性. WD ...

  4. 北风网--网络安全系列课程之网络攻防全面实战(涉及加密、解密)

    讲师简单介绍:讲师龙飞为北风网网络安全领域讲师,讲师曾经先后在国内各大网站,如黑鹰.甲壳虫之类的黑客网站从事网络安全教育!本系列课程由龙飞讲师主讲,共60课时,全面讲述网络安全方面各大知识,是一个不错 ...

  5. RSA加密web前端用户名密码加密传输至后台并解密

    RSA加密web前端用户名密码加密传输至后台并解密 编写加解密公共方法类RSAUtils import org.apache.commons.codec.binary.Base64; import j ...

  6. 数字证书应用综合揭秘(包括证书生成、加密、解密、签名、验签)

    引言 数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件.为现实网络安全化标准如今大部分的 B2B.B2C.P2P.O2O 等商业网站含有重要企业资料个人资料的信息资信网站 ...

  7. Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)

    MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. 一.MD5算法 首先MD5是不可逆的,只能加密而不能解密.比如明 ...

  8. 加密、解密、摘要、签名、证书一文搞懂

    概念 是否可逆 意思 算法举例 说明 能力 可逆 加密过后的数据可以解密出来 AES,DES,3DES等 对称加密 快 RSA,RSA2等 非对称,公钥加密私钥解密或者反过来,用于验签 加密的数据越多 ...

  9. Windows中EFS加密及解密应用

    Windows中EFS加密及解密应用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&q ...

最新文章

  1. Objetive-C +load方法研究
  2. 恭贺微软技术俱乐部苏州站正式成立
  3. kswapd0 挖矿_bioset linux_linux bioset 进程 腾讯云
  4. android于src和background差额
  5. 桌面桌面虚拟化-Vmware horizon 7相关文件共享
  6. CSDN Markdown编辑器帮助文档
  7. PyTorch 1.0 中文文档:torch.sparse
  8. 关于golden gate director client的一点点使用总结
  9. 记一次open-falcon手动push数据
  10. pfSesne 使用IPv6与隧道代理
  11. Windows中使用包管理器(类似于apt/yum的) - Chocolatey
  12. paip. 'QObject::QObject(const QObject)' is private问题的解决.
  13. 并发编程常见面试题总结三
  14. POJ 3083 dfs + bfs
  15. 电脑通过网口共享网络(WIFI)给其他设备
  16. 第一天的学习内容----Excel自动化处理
  17. java 微信分享朋友圈 链接显示图片_【微信开发】-- 微信分享功能(分享到朋友和朋友圈显示图片和简介)...
  18. 国外计算机cpu排行,台式计算机CPU排行榜,看看你的CPU排第几.doc
  19. android多边形图片,android – 按多边形区域裁剪图像
  20. 第九章 思科IOS与华为VRP系统及命令行配置

热门文章

  1. OpenSUSE安装配置TeXLive2015.iso、前端软件Kile、Lyx、TeXstudio及TeX的更新管理界面的使用
  2. 初几学的计算机二进制,说说二进制与计算机的那些事儿
  3. Vue3必会技巧-自定义Hooks
  4. 应用服务器的作用是,应用服务器是什么_应用服务器分类_应用服务器作用-与非网...
  5. html表格左右布局,css table布局大法,解决你大部分居中、多列等高、左右布局的问题...
  6. 2020年最新可用的谷歌镜像站
  7. AUTOSAR——MBD应用之NM模块Stateflow实现
  8. 破圈、增长、被加码,集合店能创造美妆行业新风口?
  9. Neokylin7安装gedit
  10. 计算机win7卡顿如何解决方法,电脑win7系统出现卡顿怎么处理