iOS 逆向工程 app安全 网络安全网络与信息安全

如何建立安全的传输通道

2019-03-04  本文已影响1人  Franchen

0x00 完整思路

大家都知道,在客户端与服务器数据传输的过程中,采用明文进行传输,是不安全的。那么如何建立安全的传输通道进行传输数据呢?

1.添加时间戳 => 防止重放 √
2.用对称加密传输数据内容 => 通道加密 √
3.用非对称加密传输对称加密的密钥 => 加密传输密钥 √
4.用数字证书传输非对称加密的公钥 => 防伪造 √


0x01 时间戳:防止重放攻击

重放攻击是计算机世界黑客常用的攻击方式之一,所谓重放攻击就是攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程。为了确保每次请求都是一次性的,可采用timestamp + nonce的模式。

实现方法

安全风险:传输的内容易被窃取或篡改。


0x02 对称加密:加密传输的数据

通过对传输的数据内容进行加密,使得中间人无法解析数据内容,就可以提升数据传输的安全性。

加密的方法

安全风险:初次交互需要交换密钥,若交换过程中无保护措施,可能会泄露密钥。


0x03 非对称加密:传输对称加密的密钥

非对称加密存在公钥和密钥,用公钥加密的数据,只有对应的私钥才能解密;用私钥加密的数据,只有对应的公钥才能解密。因此,A传输密钥给B的过程中,A先用B的公钥加密密钥,B收到后再用自己的私钥解密得到密钥。反之亦然,这样双方可安全地传输密钥。

加密方法

为何不用RSA直接传输数据:RSA的解密速度太慢

安全风险:公钥不可信,无法保证公钥就是对方发送的。


0x04 数字证书:传输可信公钥

数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。

加密方法
1.把公钥和识别信息用Hash算法生成消息摘要;
2.为防止冒充,用认证中心(CA)提供的私钥加密消息摘要,生成数字签名;
3.将公钥、识别信息、数字签名合在一起形成数字证书;

验证方法
1.用认证中心(CA)提供的公钥解密数字证书中的数字签名,得到消息摘要A;
2.用Hash算法,生成数字证书中公钥和识别信息的消息摘要B;
3.校验消息摘要A和消息摘要B是否一致;

流程图如下

数字证书
上一篇 下一篇

猜你喜欢

热点阅读