通信加密和解密基础

数据加密和解密概述

传输层协议:TCP,UDP,SCTP
port:进程地址,进程向内核注册使用某端口(独占)

同一主机上的进程间通信:IPC, message queue, shm, semerphor
不同主上的进程间通信:socket
client ip:port <-- --> service ip:port
clentip:55673 <-- --> service ip:80
监听模式:LISTEN (ip:port)

安全的目标:

  • 保密性:confidentiality,确保通信信息不被任何无关的人看到
  • 完整性:integrity,实现通信双方的报文不会产生信息丢失
  • 可用性:availability,通信任何一方产生的信息应当对授权实体可用

攻击类型:

  • 威胁保密性的攻击:窃听、通信量分析;
  • 威胁完整性的攻击:更改、伪装、重放、否认
  • 威胁可用性的攻击:拒绝服务(DoS)

解决方案

技术(加密和解密)、服务(用于抵御攻击的服务,也即是为了上述安全目标而特地设计的安全服务)

加密和解密
  • 传统加密方法:替代加密方法、置换加密方法
  • 现代加密方法:现代块加密方法
服务
  • 认证机制
  • 访问控制机制

密钥算法和协议

  • 对称加密
  • 公钥加密
  • 单向加密
  • 密钥交换

Linux系统上述功能解决方案:OpenSSL(ssl),GPG(pgp)
GPG是gpg协议的实现,OpenSSL是ssl协议和加密加密库的实现

加密算法和协议:

对称加密:

加密和解密使用同一个密钥


DES:Data Encryption Standard,数据加密标准
3DES:Triple DES,DES的增强版,比DES多3个数量级
AES:Advanced Encryption Standard,高级加密标准 (128bits, 192bits, 256bits, 384bits)
商业:Blowfish,Twofish,IDEA,RC6,CAST5

特性:

  • 加密、解密使用同一个密钥
  • 将原始数据分割成为固定大小的块,逐个进行加密

缺陷:

  • 密钥过多
  • 密钥分发困难
公钥加密

密钥分成公钥和与之配对的私钥


公钥:从私钥中提取产生;可公开给所有人;pubkey
私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key;
特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;

用途:

  • 数字签名:主要在于让接收方确认发送方的身份
  • 密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方
  • 数据加密:这种直接使用公钥加密算法来实现通信时数据的保密性的方式并不常用,因为这种方式要比使用对称加密慢上3个数量级,不推荐。

算法:

RSA:名称由RSA三个提出者(Ron Rivest, AdiShamir, Leonard Adleman)的姓氏首字母组合而成,这种算法的可靠性由对极大整数做因数分解的难度决定;RSA既能实现数字签名,又能实现加解密。

DSA:Digital Signature Algorithm,即数字签名算法,又称DSS(Digital Signature Standard, 数字签名标准);DSA仅能实现数字签名,不能用于加解密。

单向加密

即提出数据指纹,只能加密,不能解密

特性:
定长输出:提取出来的数据量是定长的,与进行加密的数据的量无关
雪崩效应:初识条件的微小改变会引起加密结果的巨大变化

功能:用于实现数据完整性的验证

算法:

md5:Message Digest 5,即信息摘要,'5'是版本号;取出的特征码定长为128bits
sha1:Secure Hash Algorithm 1,即安全哈希算法,'1'是版本号;取出的特征码定长为160bits
sha224:secure hash algorithm,224bits
sha256:secure hash algorithm,256bits
sha384:secure hash algorithm,384bits
sha512:secure hash algorithm,512bits

注意:CentOS 5用户密码加密使用的是md5,CentOS 6/7用户密码加密使用的是sha512.

密钥交换: IKE(Internet Key Exchange)
  • 公钥加密:常见的算法有RSA等
  • DH(Deffie-Hellman):Deffie-Hellman(迪菲-赫尔曼)算法
  • 其他用于实现密钥交换的算法有:ECDH(椭圆曲线DH)、ECDHE(临时椭圆曲线DH)等
DH算法的工作原理图

一般的过程:
1.Alice生成随机自然数a、随机大质数p和原根g;
2.Alice计算,计算结果为A,并把p,g,A发送给Bob;
3.Bob生成随机自然数b,根据Alice发过来的p,g,计算,计算结果为B;
4.Bob把B发送给Alice,并计算,计算结果为K;而Alice计算,计算结果也为K;
5.Alice和Bob以K值作为密钥进行通信。

一次加密通信的过程

加密和发送过程:

1、当发送方Alice有数据要发送给Bob时,为了确保数据能够完整地发送至Bob,首先需要使用单向加密算法去计算出这段要发送的数据的特征码;
2、为了便于Bob收到数据之后可验证身份,发送方Alice使用本地私钥加密这段特征码,并将加密后的特征码附加在数据后面;
3、为了确保通信过程是保密的,发送方Alice生成一个临时的对称密钥,并使用这个对称密钥加密整段数据;
4、发送方Alice获取Bob的公钥,再使用Bob的公钥加密来加密刚才生成的临时的对称密钥,并把加密后的对称密钥附加在整段加密数据后面,而后发送给Bob。

接收和解密过程:

1、接收方Bob收到数据之后,先使用自己的私钥去解密这段加密过的对称密钥(由Alice生成);
2、接收方Bob用解密得到的对称密钥去解密整段(发送方用对称密钥)加密的内容;此时接收方Bob得到Alice发送给自己的数据和加密后的特征码;
3、接收方Bob用对方Alice的公钥去解密这段特征码,如果能解密出来,则发送方的身份得到验证(没错,就是Alice发送的);
4、接收方Bob再用同样的单向加密算法去计算这段数据的特征码,与解密得到的特征码进行比较,如果相同,则数据完整性得到验证,否则说明数据有可能被篡改或被破坏。

PKI:Public Key Infrastructure(公钥基础设施)

  • 签证机构:CA,负责签署证书
  • 注册机构:RA,负责接收签署证书的申请
  • 证书吊销列表:CRL,负责公开所有已经吊销的证书
  • 证书存取库:CR,负责将公开所有已申请的证书的相关信息
证书

为了统一数字证书的格式,国际电信联盟(ITU-T)制定了数字证书标准--X.509,即数字证书的格式遵循X.509标准。在X.509v3版本中,定了数字证书的结构以及认证协议标准。

版本号,序列号,签名算法ID,发行者名称,有效期限,主体名称,主体公钥,
发行者的惟一标识,主体的惟一标识,发行者的签名

数字证书授权机构--CA

前面的加密通信过程中能够保证通信过程的保密性、通信数据的完整性,但这是以双方(Alice和Bob)能够在此之前可靠地获取对方的公钥为前提的。如果不能保证能够可靠获取对方公钥,那么就有可能出现中间人攻击(Man-in-the-middleattack,缩写:MITM)。假设这个中间人是Eve,Eve就可以分别与Alice和Bob建立联系,而这时Alice获取的是“假的”Bob公钥,而Bob获取的是“假的”Alice公钥;这时候Alice和Bob在毫不知情的情况下进行通信,但其实他们之间数据包的转发是经由Eve的。

上述的通信过程中缺失的一环在于通信双方不能保证可靠地获取对方的公钥,因此,为了保证可靠地获取通信对方的公钥,于是就有了数字证书认证机构(CertificateAuthority,缩写:CA)。CA就是为了能够保证通信双方能够可靠获取对方的公钥,而特地设定的一个双方公信的第三方可信机构。

为了避免出现上述一环的缺失,Alice和Bob可向公信的CA申请有效的证书,并由CA分别颁发给Alice和Bob,其中这个证书中的信息包括了证书拥有者的名称、公钥、证书的有效期等信息,而CA还会提取证书中信息的特征码,并用CA自己的私钥进行加密,再把加密后的特征码附加在证书中最后面。此后,当双方通信时,Alice和Bob双方都把自己的证书发给对方,并都分别使用CA的公钥去解密证书中的特征码,如果能解密,则说明证书的确由他们所信任的CA机构所颁发;接着使用同样的单向加密算法去提取证书中信息的特征码,与解密出来的特征码进行比较,如果两者相同,说明证书内容完整,没有被篡改或破坏,而对方的证书中就有对方的公钥。

但这又引入了一个问题,Alice和Bob如何可靠地获取CA的呢?显然,不能基于网络通信的方式获取CA的公钥(一切基于网络的传输都是不可靠的),而应该当面交易。全球有多个CA机构,这些CA的数量是有限、基本固定的;它们彼此之间存在互信链,也就是说CA的信任关系是可以传递的。为了管理方便,全球有一个根CA,它与其他CA是从属关系。

为了解决通信主机能够可靠获取CA的公钥,CA需要自签一份证书,就是CA自签名证书,在证书信息中包括了CA的名称、CA的公钥等,通信主机(这里是Alice和Bob)需要获取CA证书,这样才能获取CA公钥以及其他的CA信息,并能通过CA证书来验证其他通信主机的证书是否可靠。CA证书的获取需要通过当面交易来实现,而微软公司直接在windows操作系统上集成了在全球具有公信力的CA证书,但在Linux中一般不内置CA证书,需要自己通过可靠手段获取。

虽然通过上述手段可以极大地保证通信过程的安全性,但仍然存在问题,例如在这整个通信过程中使用的某种算法出现漏洞依然不够安全。

上述的通信过程中缺失的一环在于通信双方不能保证可靠地获取对方的公钥,因此,为了保证可靠地获取通信对方的公钥,于是就有了数字证书认证机构(CertificateAuthority,缩写:CA)。CA就是为了能够保证通信双方能够可靠获取对方的公钥,而特地设定的一个双方公信的第三方可信机构。

CA如何在A和B通信之间发挥作用?

基本过程:

1、首先,在A和B通信之前需要互相发送证书;

2、A和B之间协商通信过程中要使用的加密算法(对称加密、公钥加密、单向加密、密钥交换);

3、开始验证证书
1)用CA的公钥去解密CA的签名,如果能解密,则说明证书来源可靠;
2)用同样的单向加密算法计算出证书中信息的特征码,与解密得到的特征码进行比较;如果两者相同,则说明证书完整性可靠;
3)检查证书的有效日期是否在当前时间的合理范围内;如果证书过期了则不会被认可;
4)检查证书的主体名称与期望通信的对方是否一致;如果不一致则不会被认可;
5)检查证书是否被吊销过;如果没有吊销则可使用该证书,否则证书不会被认可。

本博客参考:https://blog.csdn.net/qq_22030347/article/details/69573207

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352