如何通过可能不受保护的渠道安全地交换密钥?这个问题的答案是“密钥块”。密钥块是一种基本的加密密钥格式,允许用户在各种环境中安全地交换和使用密钥。
仅使用密钥加密密钥 (KEK) 加密密钥是不够的,因为可能存在多个未知数,例如:
加密密钥代表什么?
已加密并已传输的密钥的 ID 是什么?
应该怎么用,等等...
如果缺少此类信息,则该密钥不能用于存在多个加密密钥的系统。如果我们以明文形式添加信息,那么密钥可能会在潜在不受保护的通道上被篡改。这会产生安全风险,例如拒绝服务 (DoS) 攻击或其他攻击系统的尝试。如果信息与密钥一起加密,这意味着只有拥有解密密钥的用户才能知道密钥的用途。但是,在复杂、安全、分布式的密码系统中,这并不方便。
另一个需要考虑的问题是,任何格式错误但符合特定填充的字节流都可能被发送到系统并被系统误解并导致危险的结果。
创建密钥块是为了保护加密系统并缓解上述漏洞。
密钥块遵循特定结构以确保数据安全。他们必须保护接收受保护密钥的系统免受差分密码攻击。
密钥块必须防止恶意中间人截取数据和重新排列加密密钥组件。这通过使用身份验证部分(MAC 部分)非常简单有效地完成。
在标准密钥块中,有两个加密密钥。一、密钥块加密密钥(KBEC),用于对密钥组件进行加密。另一个是密钥块认证密钥 (KBAC),用于计算 MAC 部分,位于头部 + 未加密密钥部分。
这是两个密钥实现的标准如图示:
这两个密钥通常源自单个主密钥。
显然,密钥块仅与用于它的加密算法和 MAC 算法一样安全。如果攻击者可以形成碰撞或使用表格(如彩虹表)来破解 MAC,那么密钥块的安全性就会很弱。
此外,KBAC 和 KBEC 密钥都必须具有良好的熵。理想情况下,它们必须由8 bits(Shannon)的熵来生成。
如果密码使用的填充具有已知漏洞,例如 CBC,那么这将影响密钥块方案的安全性。
通常,如果遵守所有安全约束,密钥块将提供出色的安全性并能够抵抗已知的攻击。
虽然这个概念非常简单,但已经发现密钥块可以显着增强加密密钥的保护——不仅仅是使用密钥加密密钥进行分发。如果正确实施,它们将确保密钥在通过潜在不安全渠道传输期间的机密性和完整性。
联系揽阁信息,您可以获取到更多满足全球合规性要求的信息安全产品资料,以及相关的整体解决方案的相关资料。如:
数据库访问控制:揽阁LGPAC系统
通用HSM:Luna HSM、ProtectServer HSM
支付HSM:payShield 10K
您还可以得到揽阁信息所提供的优质服务。
揽阁信息 · 值得您信赖的信息安全顾问!