网络通信笔记
窃听指A,B两者通信时被第三方窃听。例如:美国如何窃听海底光缆这类事件
这种情况也很好解决,信息加密就行
假冒是指第三方,冒充A(发送者)或B(接受者),与另外一方进行消息通信。类似盗号的操作
这种情况一般用,数据签名,和消息认证的方式解决
篡改是指A,B两者通信时,第三方拦击A(发送方)消息,然后修改消息内容。
这种情况一般也用,数据签名,和消息认证的方式解决
时候否认是指,A与B通信后,A不承认(物理网络上)与B通信,或者说B怎么证明通信的信息是A发过来的
这种情况可以用数字签名的方式解决
对称加密: 通信双方都使用约定好的密钥对信息进行加密或解密。
优点: 算法公开,计算量小,加/解密速度快,加密效率高
具体操作: 双方约定相同的密钥,然后A(发送者)将通信内容(明文,未加密内容)使用密钥,通过加密算法(AES算法),生成密文,然后将其发送给B(接收者),B然后用密钥解密。
缺点:双方在通信前就需要约定好密钥
适用场景: 固定的双方通信,可以在通过物理手段约定好密文(在代码,芯片等工具中定义好密钥,不通过网络发送定义)。例如:配套系统(服务端,和C端都齐全)
其它: 当然,A可以将密钥发送B,从而解决,只能固定通信问题。但是这样就会造成,密钥被窃听风险,加密的需求就达不到了。
非对称加密:通信双方用公钥加密信息内容,私钥解密,公钥通过互联网传输,私钥自己保存
优点:解决了对称加密,只能固定通信的问题。
具体操作:双方约定好私钥之后,A发送公钥给B,然后A(发送者)将通信内容(明文,未加密内容)使用公钥,通过加密算法(RSA算法),生成密文,然后将其发送给B(接收者),然后B用私钥解密。
适用场景: 互联网A,B相互通信。例如,阿里平台服务对接,短信平台对接等操作
缺点: 虽然防范了被窃听问题,但是可能会被第三方适用篡改的方式,获得明文信息。
篡改具体操作: A在发送公钥给B的时候,被第三方窃听到了,并且将公钥替换为自己的公钥,然后将其发送给B,B再发送消息给A时,使用被替换的公钥进行加密通信内容,然后第三方就能通过自己的私钥将其解密,获取明文的通信内容了,然后第三方再通过假冒将窃听到的A的公钥,将明文的通信内容,加密发送给A。
混合加密: 就是在非对称加密的基础上,用对称加密的方法,对公钥进行加密。
优点:在非对称加密的基础上,增加了一层加密方式,让中间人攻击付出更多代价
适用场景: 类似非对称加密使用场景
缺点:通信效率肯定不如非对称加密,成本也大于非对称加密。
消息码认证: A使用非对称加密的方式将公钥发送给B,然后使用公钥加密发送内容,再使用私钥(salt)与公钥加密好的发送内容,经过哈希计算得出消息认证码。B获取到数据之后使用,私钥(salt)对与接受到的内容(公钥加密好的发送内容),经过哈希计算得出消息认证码,然后比对消息认证码。
优点:在解决窃听问题的基础上,还解决攻击人篡改问题。
缺点: 重放攻击(第三方)
具体操作:
重放攻击(假冒):
重放攻击(假冒)解决办法:
数字签名: 使用私钥加密,公钥解密。因为私钥的唯一性所有能代表发送者。
优点:解决事后否认问题
缺点:
- 当哈希碰撞率高时,可能被第三方利用,然后篡改消息内容(降低哈希的碰撞率,让攻击成本变高)。
- 公钥可能被篡改,不能确定公钥来源(CA证书可以解决)
具体操作方法:
数字签名攻击:
AC证书:由电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等组成,由CA签发。
优点: 解决公钥的来源不明问题(公钥可能被篡改问题)
缺点: AC认证中心可能被篡改,导致证书也有可能被篡改(可以用证书链增加攻击者成本)
通信流程:
认证机构冒充:
CA证书链:防止CA认证中心被冒充,每个CA都有一个签约,最顶部则有RCA,RCA之间又相互签约
优点: 证书链的出现,几乎杜绝了(成本巨大),第三方冒充CA的问题。
通信流程: