zoukankan      html  css  js  c++  java
  • [Web] 网络安全(SSH SSL HTTPS)

    概念

    • SSH(Secure Shell)
      • 一种安全通信协议
      • 为shell提供加密通信服务
      • 使用了非对称加密和对称加密
        • 对称加密(Symmetric-Key Encryption):只用一个密钥来进行加密和解密
        • 非对称加密(Asymmetric-Key Encryption):用一个密钥来进行加密(公钥),用另一个密钥来解密(私钥)
      • 用于远程登录会话和其他网络服务
      • SSH=SSL+用户登录功能等应用层协议
      • 只有SSH客户端,和SSH服务器端之间的通信才能使用SSH协议,其他软件服务无法使用
      • 传统网络通信服务(FTP、Telnet)采用明文传输很不安全
      • 位于传输层和应用层
      • 过程
        • A、B之间建立TCP连接
        • B生成一对公私密钥
        • B把公钥发送给A
        • A生成一个用于加密数据的密钥K
        • A把K用公钥加密发给B,B解密(非对称加密)
        • A、B之间的通信数据都用K进行加密和解密(对称加密)
      • 中间人攻击
        • 黑客H埋伏在A、B之间的某个路由器上
        • 假冒B生成一对公私密钥,把密钥发送给A
        • H假冒B与A进行通信
        • SSH通过判断公钥的fingerprint(如本机MAC地址)是否可信来防止
      • 公钥登录(免密码登录)
        • 客户端将自己的公钥储存在远程服务器上
        • 客户端登录时,服务器发送一个经过公钥加密的随机数据给客户端
        • 客户端用私钥解密信息,并发还给服务器
        • 服务器验证正确后,即确认客户端是可信任的,从而建立起一条安全的信息通道,允许客户端不用输入密码直接登录 Shell
    • SSL(Secure Socket Layer 安全套接字层)
      • 一种安全通信协议
      • 位于传输层和应用层之间(比SSH范围小)
      • 为互联网上的所有客户端与服务器连接提供加密通信服务(比SSH范围广)
      • 常用的加密算法是RSA
      • 基本思想是先用公钥加密法,得到对话密钥,再用对称加密通信
      • 公钥加密法(非对称加密)
        • 客户端先向服务器端索要公钥,然后用公钥加密信息
        • 服务器收到密文后,用自己的私钥解密
      • 传统非对称加密的问题
        • 如何保证公钥不被篡改
          • 将公钥放在数字证书中
        • 如何减少公钥加密的计算量
          • 每次对话(session),客户端和服务端都生成一个对话密钥(session key)
          • 服务器公钥只用于加密对话密钥
      • 数字签名(Digital Signature)
        • 指出一个文件的所有者或创作者
        • 用Hash函数生成信件摘要,再使用私钥对摘要加密,生成数字签名
        • 公钥认证:证实一个公钥属于某个特定实体
      • 数字证书(Digital Certification)
        • 用于证实一个实体的真实身份
        • 将一个将实体身份标识信息(如IP,数字签名等)和实体公钥绑定起来
        • CA(Certification Authority 数字证书认证机构)
        • CA用自己的私钥,对实体的公钥和相关信息进行加密,生成数字证书
        • 收到实体信息的人,用CA的公钥解开数字证书,拿到实体的公钥
      • 使用过程  
        • 服务端用Hash函数生成信件摘要,再使用私钥对摘要加密,生成数字签名
        • 服务端将数字签名和数字证书一起附在信件中发给客户端
        • 客户端收到信件后,取下数字签名,用公钥解密得到摘要(公钥认证)
        • 客户端对信件本身使用Hash函数,将得到的结果与上一步一样(未篡改)
        • 客户端用CA的公钥解开证书,拿到服务端的公钥(未冒充)
      • 通信过程
        • 客户端向服务端索要并验证公钥
        • 双方协商生成对话密钥
          • 客户端发出请求:一个随机数
          • 服务端回应:一个随机数;服务器证书
          • 客户端回应:一个随机数(用服务端公钥加密);握手结束通知
          • 服务端回应:用三个随机数生成session key;握手结束通知
        • 双方采用对话密钥进行加密通信
    • RSA
      • 一种非对称加密算法
      • 原理:对两个大质数乘积进行分解十分困难
    • HTTPS(Hypertext Transfer Protocol Secure)
      • SSL+HTTP
      • HTTP通信的风险
        • 窃听:第三方可以获知通信内容
        • 篡改:第三方可以修改通信内容
        • 冒充:第三方可以冒充他人身份参与通信
      • SSL协议
        • 所有信息都是加密传播,第三方无法窃听
        • 提供数字签名,一旦被篡改,通信双方会立刻发现
        • 配备数字证书,防止身份被冒充
      • 为网站申请数字证书
        • 为服务器生成一对公私密钥
        • 把你网站的信息连同你的公钥一起发送给某个权威的CA
        • CA通过某种方式认证申请人是否是网站的所有人(比如让你在网站的指定路径上传他指定的特殊文字序列)
        • 验证通过得到证书

    参考

    SSH和SSL的区别—基于原理和协议

    http://news.west.cn/52031.html

    SSH、SSL与HTTPS

    https://blog.csdn.net/m0_37402140/article/details/78568583

    数字签名是什么?

    http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html

    Linux ssh命令详解

    https://www.cnblogs.com/ftl1012/p/ssh.html

    SSL和SSH有什么区别(写得有点乱)

    https://blog.csdn.net/box_kun/article/details/79209031

    OpenSSH下载

    https://www.mls-software.com/opensshd.html

    Linux使用ssh公钥实现免密码登录另外一台Linux

    http://php-note.com/article/1464.html

  • 相关阅读:
    Docker Weave 命令整理
    Docker Weave 介绍 or 工作原理
    Docker Macvlan 应用部署
    Docker Macvlan 介绍 or 工作原理
    Linux Centos 7.4 内核升级
    Docker Overlay 应用部署
    Docker Overlay 工作原理
    Docker Overlay 介绍
    Openfire:安装指南
    Android WebRTC 音视频开发总结(一)
  • 原文地址:https://www.cnblogs.com/cxc1357/p/12638632.html
Copyright © 2011-2022 走看看