一、前言
本系列文章旨在复习计算机网络核心知识,进一步夯实基础,为以后 参与物联网、音视频、直播、即时通讯等领域的项目做一定的知识储备。
- 很多开发人员经常听说加解密,但对其中原理不太了解,本文主要关注常用的加密原理。
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
二、对称加密
在对称加密中(也叫对称密码),加密和解密使用的是同一个密钥。
常见的对称加密算法:
- DES
- 3DES
- AES
2.1. DES(Data Encryption Standard)
DES是一种将64bit明文加密成64bit密文的对称加密算法,密钥长度是56bit。
规格上来说,密钥长度是64bit,但每隔7bit会设置一个用于错误检查的bit,因此密钥长度实质上是56bit。由于DES每次只能加密64bit的数据,遇到比较大的数据,需要对DES加密进行迭代(反复)。目前已经可以在短时间内被破解,所以不建议使用。
2.2. 3DES(Triple Data Encryption Algorithm)
3DES,是将DES重复3次所得到的的一种密码算法,也叫做3重DES。
三重DES并不是进行三次DES加密(加密 -> 加密 -> 加密
),而是加密 -> 解密 -> 加密
的过程。目前还被一些银行等机构使用,但处理速度不高,安全性逐渐暴露出问题。
3个密钥都是不同的,也称为DES-EDE3。EDE是Encryption Decryption Encryption的缩写。
如果所有密钥都使用同一个,则结果与普通的DES是等价的。
如果密钥1、密钥3相同,密钥2不同,称为DES-EDE2。
2.3. AES(Advanced Encryption Standard)
AES是取代DES成为新标准的一种对称加密算法,又称为Rijndael加密法(算法发明人叫做Rijndael)。
AES的密钥长度有128、192、256bit三种。目前AES已经逐步取代DES、3DES,成为首选的对称加密算法。
一般来说,我们也不应该去使用任何自制的密码算法,而是应该使用AES。因为它经过了全世界密码学家所进行的高品质验证工作。
2.4. 密钥配送问题
在使用对称加密时,一定会遇到密钥配送问题。
如果Alice将使用对称加密过的消息发给了Bob,只有将密钥发送给Bob,Bob才能完成解密。在发送密钥过程中,可能会被Eve窃取密钥,最后Eve也能完成解密。
如何解决密钥配送问题? 有以下几种解决密钥配送的方法:
- 事先共享密钥(比如私下共享)
- 密钥分配中心(Key Distribution Center,简称KDC)
- Diffie-Hellman密钥交换
- 非对称加密
三、非对称加密
在非对称加密(Asymmetric Cryptography)中,密钥分为加密密钥、解密密钥2种,它们并不是同一个密钥。
加密密钥:一般是公开的,因此该密钥称为公钥(public key)。因此,非对称加密也被称为公钥密码(Public-key Cryptography)。
解密密钥:由消息接收者自己保管的,不能公开,因此也称为私钥(private key)。
3.1. 公钥和私钥
公钥和私钥是一一对应的,不能单独生成。一对公钥和私钥统称为密钥对(key pair)。
由公钥加密的密文,必须使用与该公钥对应的私钥才能解密。
由私钥加密的密文,必须使用与该私钥对应的公钥才能解密。
因为非对称加密算法更加复杂(安全),所以加密解密速度会比较慢(效率低)。相反而言,对称加密简单(不安全),所以加密解密速度更快(效率高)。
3.2. 解决密钥配送问题
由消息的接收者生成一对公钥和私钥。将公钥发给消息的发送者,消息的发送者使用公钥加密消息。
3.3. RSA
RSA的名字由它的3位开发者姓氏首字母组成(Rivest、Adi Shamir、Leonard Adleman),也是目前使用最广泛的非对称加密算法。
3.4. 混合密码系统(Hybrid Cryptosystem)
对称加密的缺点:不能很好地解决密钥配送问题(密钥会被窃取)。
非对称加密的缺点:加密解密速度比较慢。
混合密码系统:是将对称加密和非对称加密的优势相结合的方法。解决了非对称加密速度慢的问题,并通过非对称加密解决了对称加密的密钥配送问题。
网络上的密码通信所用的SSL/TLS都运用了混合密码系统。
3.4.1. 混合密码-加密
会话密钥(session key):
- 为本次通信随机生成的临时密钥
- 作为对称加密的密钥,用于加密消息,提高速度
加密步骤(发送消息):
- 首先,消息发送者要拥有消息接收者的公钥
- 生成会话密钥,作为对称加密的密钥,加密消息
- 用消息接收者的公钥,加密会话密钥
- 将前2步生成的加密结果,一并发给消息接收者
发送出去的内容包括:
- 用会话密钥加密的消息(加密方法:对称加密)
- 用公钥加密的会话密钥(加密方法:非对称加密)
3.4.2. 混合密码-解密
解密步骤(收到消息):
- 消息接收者用自己的私钥解密出会话密钥
- 再用第一步解密出来的会话密钥解密消息
3.4.2. 混合密码-加密解密流程
场景:Alice发送消息给Bob。
发送过程(加密过程):
- Bob先生成一对公钥和私钥
- Bob把公钥共享给Alice
- Alice随机生成一个会话密钥(临时密钥)
- Alice用会话密钥加密需要发送的消息(使用的是对称加密)
- Alice用Bob的公钥加密会话密钥(使用的是非对称加密)
- Alice把第4、5步的加密结果一并发送给Bob
接收过程(解密过程):
- Bob利用自己的私钥解密会话密钥(使用的是非对称加密算法进行解密)
- Bob利用会话密钥解密发送过来的消息(使用的是对称加密算法进行解密)
四、数字签名
例如,Alice发送内容给Bob(明文)。Alice发的内容有可能是被篡改的,或者有人伪装成Alice发消息,或者就是Alice发的,但她可以否认。
问题来了:Bob如何确定这段消息的真实性?如何识别篡改、伪装、否认?
解决方案:数字签名。
4.1. 数字签名过程
在数字签名技术中,有以下2种行为:
- 生成签名
- 由消息的发送者完成,通过“签名密钥”生成
- 验证签名
- 由消息的接收者完成,通过“验证密钥”验证
如何能保证这个签名是消息发送者自己签的?用消息发送者的私钥进行签名。
签名过程:
由于非对称加密速度比较慢,当消息体量比较大时效率就会下降,所以可以利用单向散列函数对其过程进行改进(对散列值进行加密解密,然后比较散列值):
消息发送者生成密钥对是为了防止密钥被篡改。消息接收者生成密钥对是不想消息被其他人看到。
- 如果有人篡改了消息内容或签名内容,会是什么结果?
- 签名验证失败,证明内容被篡改了。
- 数字签名不能保证机密性?
- 数字签名的作用不是为了保证机密性,仅仅是为了能够识别内容有没有被篡改。
- 数字签名的作用
- 确认消息的完整性
- 识别消息是否被篡改
- 防止消息发送人否认
4.2. 非对称加密和数字签名对比
在非对称加密中,任何人都可以使用公钥进行加密。
在数字签名中,任何人都可以使用公钥验证签名。
数字签名,其实就是将非对称加密反过来使用。
非对称加密:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密。公钥负责加密,私钥负责解密。
数字签名:既然是签名,肯定是不希望有人冒充我发消息,所以只有我才能签名。 私钥负责签名,公钥负责验签。
4.3. 公钥的合法性
如果遭遇了中间人攻击,那么公钥将可能是伪造的。
对称加密无法保证密钥的安全,后面有了非对称加密。但是非对称加密也有公钥被窃取的风险(混合加密和签名也是一样的,只要有传输公钥这一步骤,就会有窃取风险),所以如何才能验证公钥的合法性呢?使用证书。
五、证书
说到证书,首先联想到的是驾驶证、毕业证、英语四六级证等,这些都是由权威机构认证的。
密码学中的证书,全程叫公钥证书(Public-key Certificate,PKC),跟驾驶证类似,里面有姓名、邮箱等个人信息,以及此人的公钥。并由认证机构(Certificate Authority,CA)进行数字签名。
CA就是能够认定“公钥确实属于此人”并能够生成数字签名的个人或者组织。
CA可以是有国际性的组织、政府设立的组织、通过提供认证服务来盈利的企业,个人也可以成立认证机构。
5.1. 注册和下载
5.2. 证书的使用
第4步和第5步只要被篡改,就会认证失败。因为证书签名始终都是围绕CA认证机构验证的。
各大CA的公钥,默认已经内置在浏览器和操作系统中。
5.3. 查看证书
5.3.1. Windows
Windows + R
-> 输入mmc
- 文件 -> 添加/删除管理单元
- 证书 -> 添加 -> 我的用户账户 -> 完成 -> 确定
5.3.2. Mac
Mac系统的证书统一在钥匙串
中管理。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,如果你对网络安全入门感兴趣,需要的话可以在下方
