安全和密码学的要素
章节大纲
-
加密学的基本目标和应用
在网络上下文中,安全机制的基本目标是:
- 端点认证;
- 数据完整性:我们希望确保数据在从源到目的地的路径中没有被篡改;
- 机密性:我们希望确保数据不会被任何未经授权的人读取。
这些目标是通过使用加密机制来实现的。加密机制在两个不同的上下文中应用,即执行两种不同的操作:
- 加密:它包括对交换的数据进行加密,即改变数据包的内容,使得只有授权的人能够恢复原始内容;
- 签名:它用于保证数据的完整性和发送者的认证,操作是通过将一个小的字节序列附加到消息中,这个字节序列取决于数据本身以及发送者所拥有的一些信息:
- 端点可以通过重新计算这个字节序列来检查数据是否被修改;
- 这个操作类似于错误检测代码,但不同的是,字节序列是基于一个秘密密钥的。
密钥类型
有两种类型的密钥:
- 共享(或对称)密钥:相同的密钥,作为一个字节序列,被用来加密/签名和解密/认证数据。该密钥必须在通信的两个站点之间保密,这带来了一个困难,因为用于协商密钥的通信本身应该是安全的;
- 非对称密钥:使用两个不同的密钥来加密/签名和解密/认证数据。两个密钥中,称为公钥的一个,用来解密源主机通过其私钥加密的数据包,可以公开共享;另一个密钥必须保密。这两个密钥是成对的,意味着通过一个密钥加密的内容只能通过另一个密钥解密。
例如,如果你想安全地发送一个文件,你可以使用私钥应用加密算法,然后传播公钥:这样,任何想与该主机安全通信的人都可以使用该公钥加密消息,因为只有该主机拥有私钥,能够解码该消息。
为了验证发送者的身份,机制类似:如果你想确保用户能验证消息来自特定的发送者,他们只需要使用发送者的公钥解密发送的消息。
密钥类型的优缺点
非对称密钥比对称密钥更不稳定,并且在使用它们的算法中需要更多的计算资源。
在许多情况下,非对称密钥用于安全通信并协商对称密钥:
- 主机发送它打算用于单向通信的公钥;
- 目标主机选择一个对称密钥,并通过先前收到的公钥加密后转发它;
- 源主机使用私钥解密消息,从那时起它将使用其中包含的对称密钥。
关键点:当某人收到与某个实体相关的公钥时,必须确认该实体的身份,即它确实是它声称的那个实体:为此,我们使用证书。
证书
证书是用于验证公钥属于某个实体的文件。数字证书包含:
- 关于密钥的信息;
- 关于所有者身份的信息;
- 经过认证机构验证证书内容的数字签名。
签名实际上是一个字节序列,一种摘要,使用认证机构的私钥进行加密。验证签名意味着检查证书是否已由认证机构验证,因此你只需使用它的证书,该证书将包含公钥,用来解密签名。认证机构的证书可能已经为主机所知,例如它已经存在于操作系统或Web浏览器中,或者可能需要下载并以相同的方式进行验证。根CA证书必须以可靠的方式获得。