持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天
安全和算法
一、互联网中不可或缺的安全技术
通过互联网交换数据时,数据要经过各种各样的网络和设备才能传到对方那里。数据在传输过程中有可能会经过某些恶意用户的设备,从而导致内容被盗取。
因此,要想安全地使用互联网,安全技术是不可或缺的。本章将要学习的就是保障安全的各种算法和利用了这些算法的机制。
二、传输数据时的四个问题
首先,介绍一下用互联网传输数据时可能会发生的四个主要问题。
窃听
A向B发送的消息可能会在传输途中被X偷看如图。这就是“窃听”。
假冒
A以为向B发送了消息,然而B有可能是X冒充的如下图;反过来,B以为从A那里收到了消息,然而A也有可能是X冒充的。
这种问题就叫作“假冒”
篡改
即便B确实收到了A发送的消息,但也有可能像下图这样,该消息的内容在途中就被X更改了。
这种行为就叫作“篡改”。除了被第三者篡改外,通信故障导致的数据损坏也可能会使消息内容发生变化。
事后否认
B从A那里收到了消息,但作为消息发送者的A可能对B抱有恶意,并在事后声称“这不是我发送的消息” (参考下图)
这种情况会导致互联网上的商业交易或合同签署无法成立。这种行为便是“事后否认”
以上四个四个主要问题不光发生在用户之间交流的时候,也有可能发生在用户浏览网页的时候。
三、解决这些问题的安全技术
为了解决这些问题,来了解一下每个问题的应对方法
为了应对第一个问题“窃听”,我们会使用“加密”技术。
为了应对第二个问题“假冒”,我们会使用“消息认证码”(下图左)或“数字签名”(下图右)技术。
为了应对第三个问题“篡改”,我们同样会使用“消息认证码”或“数字签名”技术。其中“数字签名”技术还可以用于预防第四个问题“事后否认”
问题和相应的解决方法可总结成如下页表格