高安全级数据库隐通道:主键约束下的用户名口令传输策略

需积分: 10 2 下载量 115 浏览量 更新于2024-08-26 收藏 1.33MB PPT 举报
在本文档中,主要讨论的是在数据库管理系统(DBMS)中如何利用多级安全机制中的隐通道(hidden channel)来实现高安全级用户与低安全级用户之间的信息传输。隐通道是指系统中正常操作功能所未明确揭示的通信路径,这里通过利用数据库表上的主关键字唯一性约束来构造。 目标要求是高安全级用户通过以下步骤将用户名和口令以隐秘的方式传递给低安全级用户: 1. **环境准备**:使用达梦数据库安全版作为基础平台,确保系统的安全性。 2. **同步机制**:高安全级用户准备好数据后,通过引用完整性的触发,如数据插入和删除操作,来暗示低安全级用户准备就绪。这利用了数据库的事务处理逻辑,间接地发送信号。 3. **数据传输方式**:利用主关键字唯一性约束作为数据传输的载体。通过插入和删除操作,通过数据的有效或无效插入(成功或失败)来表示0或1的二进制信息。 4. **编码方式**:使用UTF-8字符集转换为二进制,进一步加密数据,使得传输的内容不易被察觉。 **具体操作流程**: - 在`EmployeeA`和`PayrollA`表中进行操作: - 高级用户L先在`EmployeeA`插入数据,然后删除,直到遇到引用标记(tag=1),表示数据已被其他表引用。此时,L继续删除操作,直到数据不再被引用。 - L尝试向`EmployeeB`插入数据,成功则表示接收0,失败则表示接收1。 - L进入一个循环,每次循环结束时,计数器`term`递增。 - 高级用户H尝试插入对`EmployeeA`的引用,当成功时,表示数据传输开始。 - H插入`EmployeeB`数据,并根据结果进行删除操作,以传递0或1的信息。 - H检查`PayrollA`中的引用,如果`EmployeeA`的tag=1,H删除数据,通知L数据已接收。H还会读取`EmployeeA`的`term`字段,确认数据是否完整。 - 当H完成数据传输后,读取`EmployeeA`,如果`term`值增加,表明L已经读取完毕,否则继续操作。 **注意事项**: - 为了防止数据丢失,引入`term`字段跟踪数据传输轮次,避免因L的操作速度不同导致信息混乱。 - 低安全级用户不能直接访问`Payroll`表,这符合多级安全模型的设计,确保数据的隔离性。 本文提供了关于如何在严格的数据库安全环境中利用隐通道进行信息交换的详细步骤,展现了在IT领域中对安全性和效率之间巧妙平衡的设计策略。