校招后端面经——网络安全

校招后端面经--网络安全

        • 1. HTTPS
          • 1. 过程
          • 2. 对称加密和非对称加密
        • 2. 流量劫持
          • 1. 域名劫持
          • 2. 直接流量修改
          • 3. 流量劫持的原因

1. HTTPS

https在传输数据之前需要客户端与服务端之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息,基于TLS/SSL协议,使用了对称加密,非对称加密和hash算法

1. 过程
  1. 客户端将自己支持的一套加密规则发送给服务端
  2. 服务端从中选出一组加密算法和hash算法,并将自己的身份信息以证书的形式发回给客户端。证书里面包含了服务端的地址,加密公钥,以及证书的颁发机构
  3. 客户端获得网站的证书后,先验证证书的合法性,如果证书时受信任的,或者用户自己接收了不受信任的证书,客户端会生成一串随机数的密码,并用证书中提供的公钥加密
  4. 客户端使用约定好的hash算法计算握手信息,并使用生成的随机数对握手信息进行加密,最后将之前生成的所有信息发送给服务端
  5. 服务端接收到数据后,先用自己家的私钥将信息解密,把随机数密码取出来,用这个随机数密码去解密握手信息,将握手信息进行hash,验证其是否与发过来的hash值一样
  6. 然后使用密码加密一段握手信息,发送回客户端
  7. 客户端解密计算握手信息的hash,如果与服务端发过来的hash是一样的,握手过程结束,连接建立,之后的所有通信数据都由之前的随机数密码并使用对称加密算法进行加密,然后传输

其中非对称加密算法用于在握手过程中加密生成的密码,对称加密算法用于对真正传输的数据进行加密,而HASH算法用于验证数据的完整性。

2. 对称加密和非对称加密

对称加密:加密和解密使用同样的密钥,应用于加密数据

非对称加密:公钥加密,私钥解密,应用于数字签名及加密

对称加密的算法有:AES,RC4,3DES

非对称加密算法有:RSA,DSA/DSS

HASH算法:MD5, SHA1, SHA256

2. 流量劫持

1. 域名劫持

通过劫持掉域名的DNS解析结果,将HTTP请求劫持到特定的IP上,使得客户端和攻击者的服务器建立TCP连接,而不是和目标服务器直接连接,这样攻击者可以对内容进行篡改或窃取。在极端情况下甚至可能攻击者可能伪造目标网站网页进行钓鱼攻击

2. 直接流量修改

在数据通路对页面进行固定的内容插入,比如广告弹窗等。这种情况下,虽然客户端和服务器是直接建立的连接,但是数据内容依然可能遭到野蛮破环

3. 流量劫持的原因

根本原因是HTTP协议没有办法对通信对方的身份进行校验以及对数据完整性进行校验。使用HTTPS可解决这个问题。

你可能感兴趣的:(面经)