密码学基础知识
网络安全三要素
- 机密性
- 完整性
- 可用性
古典加密
替换:
摩斯密码,凯斯密码
移位:
栅栏密码
替换+移位:
凯撒+栅栏
近现代加密
流加密:
- 将明文按字符逐位(逐比特)地、对应地进行加密。
- 如RC系列
分组加密:
- 将明文分成固定长度的分组,如64bit或128bit一组,用同一密钥和算法对每个分组加密。
- 如DES、3DES、AES、IDEA
对称式加密
- 对称加密是指通信双方对信息的加密和解密都使用相同的密钥
- 对称加密机制的安全性取决于密钥的保密性,而不是算法的安全性。即便知道了密文以及加密算法的原理,也无法解密。
- 不需要对算法保密,只需要对密钥进行保密
- 对称式加密的优缺点:
- 优点:效率高,适合对大数据块的加密
- 缺点:密钥管理困难,密钥维护的工作量大
非对称式加密(公钥加密)
- 每个用户拥有一对密钥:一个私钥和一个公钥
- 私钥由用户严密保管,公钥发布出去,所以人都可以自由获得
- 用公钥加密的信息只能用相应的私钥解密
- 根据私钥,可以计算出公钥,但是根据公钥,却无法计算出私钥
- 非对称式加密的优缺点:
- 优点:密钥管理简单,密钥维护的工作量比较小
- 缺点:加密效率不高,相比对称式加密要慢三个数量级,主要用于小数据块的加密。
对称式加密与非对称式加密的结合使用
- 数据加密采用对称式加密
- 非对称式加密专用于传送对称加密的密钥
数字签名
认证
- 身份认证,验证信息的发送者是真实的,而不是冒充的
- 一致性验证,保证信息在传送过程中未被篡改或重放等。
数字签名是指发送方使用私钥加密要发送的数据,接受方使用发送方的公钥解密数据。
- 通过数字签名可以使接收方确认发送方的身份
- 发送方也不能对发送出去的数据抵赖
- 在发送方用私钥将明文加密的操作称为签名
- 在接收方,用公钥将密文解密的过程称为认证
非对称加密的主要用途:密钥交换、数字签名
消息摘要算法(Hash 算法、散列算法 )
Hash算法的特点:Message Digest
- 定长输出,无论原始数据多大,其结果大小一样
- 不可逆,加密后的数据无法被解密
- 输入一样,输出必定一样
- 雪崩效应,输入发生微小改变,将引起结果发生巨大改变
常用的Hash算法:MD5、SHA
- md5sum /etc/passwd sha1sum /etc/passwd
- openssl dgst -md5 /etc/passwd
Hash算法与数字签名的结合使用
- Hash算法不适合数据加密,主要用于数据完整性校验和身份验证
- 先用Hash算法对要进行数字签名的数据计算得到的Hash值,再用私钥对Hash值加密
- 接收方先用公钥解密得到Hash值,然后对原始数据也进行同样的Hash运算,最终对结果进行比较
- 通过这种方式还可以防止伪造Hash值,如果发送方不采用数字签名,那么如果数据在传输过程中被黑客截获,然后修改原始数据并生成新的Hash值再发送给接收方,这样对于接收方也无法判断数据所接收的数据和Hash值是否被篡改过。
- 将数字签名与消息摘要结合使用,既可提高效率又可保证安全性。
利用Hash值存放密码
Hash算法还被用来对数据进行单向加密(Hash具有不可逆性)
- 在Windows、Linux系统以及互联网的大多数应用中,都是采用了Hash算法对用户的密码进行加密之后再进行存储
- 对于系统中存放的用户密码,只需验证其是否正确,而无需知道其明文是什么
安全技术综合应用
- PGP(Pretty Good privacy)协议
- 主要为电子邮件提供身份认证和机密性服务
发送方过程:
接收方过程:
数字证书和CA
- 目前主要采用数字证书来分发公钥
- 数字证书由可信任的第三方权威机构CA(Cerfiticate Authority)颁发,CA负责证书的有效性
- CA负责注册证书、颁发证书,并当证书包含的信息变得无效之后撤销证书
- 用户向CA出具公钥并得到证书,然后就可以公开这个证书。任何需要用户公钥的人都可以得到这个证书,并通过CA的签名来验证证书的有效性
数字证书的格式
- 数字证书将用户身份信息与他的公钥绑定在一起,并要有CA的数字签名。
- 数字证书要求具有统一的格式,目前所使用的证书大都遵循由国际电信联盟指定的x.509数字证书标准,符合该标准的证书主要包含以下内容:
- 序号:由CA分配的本证书的唯一标识符
- 签名算法:本证书所使的数字签名算法
- 颁发者:CA的相关信息。
- 有效期:证书的有效时间段
- 使用者:证书拥有者的相关信息
- 公钥:公钥信息以及所使用的加密算法
- 指纹:CA的数字签名
CA认证中心
- 通过CA来管理和确认公钥的合法性。自签发
- CA必须要得到用户的信任。
在Windows或linux中会自带一些信任的CA证书
公钥基础设施PKI
- PKI(Public Key Infrastructure),主要由以下四部分组成:
- 证书颁发机构CA,负责颁发证书
- 证书注册机构RA,可以接受用户的证书注册申请
- 证书吊销列表CRL,用于存放作废的证书
- 证书存取库,用于存放证书,供用户获取
- PKI所能提供的三大功能:加密、签名、认证
- PKI中最基本的元素是数字证书,安全操作主要通过证书来实现
- PKI中最重要得到设备是CA,负责颁发并管理证书
- PKI的核心技术是公钥加密技术(非对称式加密)
SSL协议
- SSL(Secure Sockets Layer,安全套接字层)协议,由Netscape公司研发,可以提供数据加密、数字签名、消息摘要等安全功能,被放置在应用层和传输层之间,可供应用层的程序任意调用。
- HTTP和SSL结合在一起就称为HTTPS(基于SSL的HTTP)的协议,端口号也随之变成了TCP443。
TLS协议
- TLS(Transport Layer Security,传输层安全)协议,被视为SSL的升级版和继任者,由国际互联网工程任务组IETF仿照SSl开发
- TLS和SSL,两种协议的运行基址基本相同,由于SSL协议不断曝出各种漏洞,因而TLS协议应用越来越广泛,逐渐成为事实标准。
- OpenSSL是用于实现SSL/TLS协议的最知名得到开源软件
TLS和SSL像是一种理论,OpenSSL更像是一种实现理论的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 z0yuan's Blog!