网络安全与加密

网络传输安全

网络传输安全的要求

机密性 -> 明文传输有风险
完整性 -> 被篡改,或在传输过程中损坏
身份验证 -> 会不会伪装成被访问的主机

加密算法

  • 单向加密
    MD4 MD5 SHA1 SHA192 SHA256 SHA256384 CRC-32:循环冗余校验码

    单向加密的特点
    输入一样:输出必然一样
    雪崩效应:输入的一点改变,将会引起特征码的巨大改变
    定长输出:无论原始数据多少,结果大小都是相同的
    不可逆

  • 对称加密
    DES(数据加密标准 56bit) 3DES AES(高级数据加密标准 128bit秘钥长度->还有192,256,512) Blowfish

  • 非对称加密/公钥加密(加密/签名)-> 身份认证(数字签名),数据加密,密钥交换
    RSA DSA ElGamal

秘钥成对:公钥§ 私钥(S)
公钥加密的,只能用成对的私钥解密,但公钥很少用来加密数据,因为速度太慢,一般是私钥加密公钥解密

网络密钥交换协议

  • 网络密钥交换协议(Internet Key Exchange,IKE)
    Diffie-Hellman协议

    需要在网络中传输四个数:p大素数,g生成数,g^x %p,g^y %p 最终秘钥:g^xy%p
    x,y是双方分别生成,不在网络中传输的随机数

数字证书

  • 数字证书
    在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。

  • 证书颁发机构(CA)
    是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

  • 公钥基础设施(Public Key Infrastructure)PKI
    PKI体系是计算机软硬件、权威机构及应用系统的结合。用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。

  • 证书保存格式
    x509 pkcs12

    主要包含的信息:公钥及其过期时间,证书的合法拥有者,证书该如何被使用,CA的信息,CA签名的校验码等

实现PKI的协议

TLS/SSL,OpenPGP

SSL

  • SSL->TLS (TLSv1 = SSLv3)
    安全套接字协议

  • HTTPS
    HTTPS = HTTP+SSL
    FTPS = FTP+SSL

    笔者这里把SSL理解成位于网络的4.5层的协议,与上层的应用层协议组合,就有了各种应用层安全服务协议

OpenSSL

SSL的开源实现

libcrypto->通用加密库
libssl->TLS/SSL的实现
openssl->多用途命令行工具

如何保证网络传输安全

机密性

  • 用加密算法给数据加密
    明文 --加密(转换规则)–> 密文
    明文 <–解密(转换规则)-- 密文
  • 对称加密与非对称加密
    加密算法(较固定)+秘钥(保证了机密)
    对称加密(加密和解密用同一个秘钥)
    ->安全性能低
    ->需要为每个会话维护一个秘钥
    非对称加密
    安全性能高、只需要维护一组秘钥

完整性

  • 用单向加密提取数据特征码
    -> 为避免被篡改 ->加密特征码 -> 如何约定该密码(防止被第三方获取密码)-> 秘钥交换(Internet Key Exchange,IKE)

身份验证

  • 采用非对称加密,发送方用自己的私钥加密,对方用公钥能解密,就能验证发送方的身份
  • 非对称加密,无法避免一开始发送方就是冒充的
    通过第三方发证机构(CA),获取数字证书
    站点将相关信息提交给CA (站点信息,服务器地址,站点的公钥)-> 提取特征码 -> CA用自己的私钥加密特征码(即数字签名) -> 即:数字证书=数据+数字签名

最终解决方案(即SSL的解决方案)

A是发送方,B是接收方
CA是彼此双方都信任的证书颁发机构,即都有CA的机构数字证书

  1. A将自己的公钥等信息提交给CA
  2. 该信息会被提取特征码 -> 保证数据的完整性
  3. CA用自己的私钥加密特征码
  4. CA生成数字证书
  5. A拿到CA为自己做的数字证书
  6. 通信时,B接收到对方的数字证书
  7. B通过CA机构证书上的公钥解密A的数字证书的数字签名,能解密,说明该证书确实是认同的机构颁发的 -> 实现了对A的身份验证
  8. B从A的数字证书中获取到A的公钥
  9. A生成要发送的业务数据->通过数据提取特征码->用自己的私钥给特征码加密
  10. A生成一段随机数,作为对称加密的密钥,B通过IKE协议获取对称加密的密钥
  11. A用该随机数作为对称秘钥加密包含特征码的整个数据
  12. A用B的公钥为该随机数加密
  13. B拿到数据->用自己的私钥解密对称秘钥->用获取到的对称秘钥解密剩下的数据->在这些数据中,用A公钥获取特征码 -> 从业务数据中提取特征码并做验证

结合到HTTPS:TCP三次握手->客户端发起请求到服务器端->协商建立SSL会话 -> 上述过程
HTTPS服务器可选择使用单向验证还是双向验证,一般都是单向验证

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值