Android程序员面试必须要掌握的:Https加密原理、中间人攻击到底是怎么回事

前言–阅读本文你将收获

1.https加密的基本原理与过程,https为什么是安全的?
2.什么是中间人攻击,中间人攻击的基本原理
3.如何防止中间人攻击

作者:RicardoMJiang
链接:https://juejin.im/post/6880024440143347719

https加密的基本原理

https要完成的目的

1.Client必须要能确定,它要访问的Server确实是正确的Server

2.Client和Server交流的信息不能被其它第三方窃听

3.当然,针对第1点,反过来,Server也可以要求,必须确认Client是它想通信的正确的Client,不过道理和1一样,这里不展开

通过HTTPS握手建立加密信道来保证上述要求

https三次握手

三次握手过程如下:

image

看了上述三次握手过程,可以知道,handshake主要完成的事情:

1.客户端&服务端通信,协商加密方式

2.客户端(Client)和服务端(Server)互相确认身份

3.双方安全地交换https通信使用的密钥(Session Key)

第一阶段:C&S协商加密方式

客户端向服务端发送ClientHello信息,信息主要包括客户端支持的加密方式、客户端支持的SSL版本等;服务端接收到ClientHello信息后,向客户端发送一个ServerHello信息,主要是告诉客户端它将使用什么加密方式和SSL版本。

第二阶段:身份校验

阶段2主要是,客户端&服务端互相校验对方身份

客户端与服务端之间验证身份是通过证书完成的

1.关于证书:

服务端向客户端下发自己的证书,通常是CA认证的证书。证书包括了很多信息,主要有“公钥信息”、“签名”、“组织机构地区等信息”、“证书颁发机构”,关联的中级证书(medium certificate)、根证书(root certificate)等。

X.509 应该是比较流行的 SSL 数字证书标准,包含(但不限于)以下的字段:

字段 值说明
对象名称(Subject Name) 用于识别该数字证书的信息
共有名称(Common Name) 对于客户证书,通常是相应的域名
证书颁发者(Issuer Name) 发布并签署该证书的实体的信息
签名算法(Signature Algorithm) 签名所使用的算法
序列号(Serial Number) 数字证书机构(Certificate Authority, CA)给证书的唯一整数,一个数字证书一个序列号
生效期(Not Valid Before) (`・ω・´)
失效期(Not Valid After) (╯°口°)╯(┴—┴
公钥(Public Key) 可公开的密钥
签名(Signature) 通过签名算法计算证书内容后
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值