DDBMS - 数据库安全与加密



在本章中,我们将深入了解数据库系统面临的威胁以及控制措施。我们还将研究密码学作为一种安全工具。

数据库安全与威胁

数据安全是任何数据库系统中一个必不可少的部分。由于用户数量众多、数据碎片化和复制、多个站点以及分布式控制,它在分布式系统中尤其重要。

数据库中的威胁

  • 可用性损失 - 可用性损失是指合法用户无法访问数据库对象。

  • 完整性损失 - 完整性损失发生在对数据库执行不可接受的操作时,无论是意外还是恶意。这可能发生在创建、插入、更新或删除数据时。它会导致数据损坏,从而导致错误的决策。

  • 机密性损失 - 机密性损失是由于未经授权或意外泄露机密信息造成的。这可能导致非法行为、安全威胁和公众信任的丧失。

控制措施

控制措施可以大致分为以下几类:

  • 访问控制 - 访问控制包括数据库管理系统中的安全机制,以防止未经授权的访问。用户只有通过有效的用户帐户完成登录过程后才能访问数据库。每个用户帐户都受密码保护。

  • 流控制 - 分布式系统包含大量数据从一个站点到另一个站点以及站点内部的数据流。流控制防止数据以未经授权的代理可以访问的方式传输。流策略列出了信息可以流经的通道。它还为数据和事务定义安全类别。

  • 数据加密 - 数据加密是指在敏感数据需要通过公共通道通信时对数据进行编码。即使未经授权的代理访问了数据,他也无法理解它,因为它处于不可理解的格式。

什么是密码学?

密码学是编码信息并在发送到不可靠的通信路径之前发送的科学,以便只有授权接收者才能解码和使用它。

编码后的消息称为密文,原始消息称为明文。发送方使用加密算法和秘密密钥副本将明文转换为密文的流程称为编码或加密。接收方使用相应的解密算法和相同的秘密密钥将密文转换为明文的流程称为解码或解密

使用密码学的整个通信过程可以通过以下图表来说明:

Cryptography

传统加密方法

在传统密码学中,加密和解密使用相同的密钥进行。在这里,发送方使用加密算法和秘密密钥的副本对消息进行加密。然后,加密后的消息通过公共通信通道发送。接收方在收到加密的消息后,使用相同的密钥和相应的解密算法对其进行解密。

传统密码学中的安全性取决于两个因素:

  • 一种对所有人已知的健全算法。

  • 一个随机生成的、最好是长的秘密密钥,只有发送方和接收方知道。

最著名的传统密码学算法是数据加密标准DES

这种方法的优点是易于应用。但是,传统密码学最大的问题是在通信双方之间共享密钥。发送密钥的方法既麻烦又极易被窃听。

公钥密码学

与传统密码学相比,公钥密码学使用两个不同的密钥,称为公钥和私钥。每个用户生成一对公钥和私钥。然后,用户将公钥放在一个可访问的位置。当发送方想要发送消息时,他使用接收方的公钥对其进行加密。接收方在收到加密的消息后,使用他的私钥对其进行解密。由于私钥除了接收方之外无人知晓,因此接收消息的其他任何人均无法对其进行解密。

最流行的公钥密码学算法是RSA算法和Diffie-Hellman算法。此方法对于发送私人消息非常安全。但是,问题在于,它涉及大量的计算,因此对于长消息而言效率低下。

解决方案是结合使用传统密码学和公钥密码学。在通信双方之间共享之前,使用公钥密码学对密钥进行加密。然后,使用共享密钥和传统密码学发送消息。

数字签名

数字签名 (DS) 是一种基于公钥密码学的身份验证技术,用于电子商务应用程序。它将唯一的标记与个人在其消息正文中相关联。这有助于其他人验证消息的有效发送者。

通常,用户的数字签名因消息而异,以防止伪造。方法如下:

  • 发送方获取消息,计算消息的摘要并使用私钥对其摘要进行签名。

  • 然后,发送方将签名的摘要与明文消息一起附加。

  • 消息通过通信通道发送。

  • 接收方删除附加的签名摘要,并使用相应的公钥验证摘要。

  • 然后,接收方获取明文消息并将其通过相同的摘要算法运行。

  • 如果步骤 4 和步骤 5 的结果匹配,则接收方知道该消息具有完整性和真实性。

广告