SSH
密码学基础
在网络通信中,对信息的保密是十分重要的,密码学为信息的保密传输奠定了基础。在信息传输中有三件事尤为重要:
- 防泄漏:这是保密传输最重要的一个环节,如果信息以明文的方式传输,那么只要有人有心在线路上监听,就必定能获得传输的所有内容。解决方法:加密算法
- 防篡改:包括不可预期的和认为的篡改:无论我们的技术如何升级,在传输中也永远不可能做到百分百可靠,不排除可能会出现数据损坏的情况;若在传输过程中信息被人恶意篡改了,导致通信双方接收到的内容并不是原来应收到的信息,这也是需要预防的。解决方法:数字摘要、数字签名
- 防伪造:如果无法验证信息发送来源,就算有数字签名,就算做了信息摘要,中间人只要在修改信息的同时吧摘要和签名换掉,我们一样无法确认信息是否被人篡改过。解决方法:数字证书
加密算法
加密算法分为对称加密和非对称加密
对称加密
-
特点:加密密钥和解密密钥是相同的
-
优点:简单、速度快、运算耗费小
-
缺点:由于加密和解密密钥相同,一旦密钥泄漏出去,那么所有人都可以获取信息原文
-
用途:用于信息的加密传输
-
常用算法:DES、AES、3DES等
非对称加密
- 特点:加密密钥和解密密钥成对存在,且两个密钥是数学无关的,即无法用一个密钥推出另一个密钥
- 优点:保密性好、安全性高
- 缺点:算法强度复杂,加解密速度慢
- 用途:对对称密钥的加密传输、身份认证
- 常用算法:RSA、Elgamal、D-H、背包算法、Rabin、ECC(椭圆曲线加密算法)
哈希加密
- 特点:单向加密、不可逆运算、对不同数据加密的结果都是定长的、很难找到两个不同的数据具有同一哈希值
- 用途:生成数字摘要、存储明文密码
- 常用算法:MD5、SHA-1、SHA-128、SHA-256等
数字摘要
由哈希函数的特点,数字摘要可以将任意长度的消息变成固定长度的短消息,这样比对数字摘要是否相同就可以确定原文是否是相同的。
数字签名
由非对称加密的特点,由私钥加密的数据可以被公钥打开,这样就可以确定数据发送方身份。但非对称加密通常是用来处理短消息的,对较长的消息则显得有些吃力,且单单使用非对称加密无法验证数据是否被篡改,所以一般会先对数据进行数字摘要,再对摘要做数字签名。这样既可以验证发送方的身份,同时也只要有人对原文或摘要的任意部分进行修改都可以发现。