这来自FIPS 140-2标准:
存储在密码模块中的密码密钥应以明文形式或加密形式存储。明文密钥和私钥不应从密码模块外部对未经授权的操作员访问。加密模块应将存储在该模块中的加密密钥(秘密、私有或公共)与分配密钥的正确实体(例如个人、组或进程)相关联。文件应具体说明密码模块使用的密钥存储方法。
我不确定我能不能正确地解释它。
如果密钥可以以明文形式存储,是否意味着FIPS对密钥存储(作为一种结构)没有安全期望?
或者逆转这个问题:如果密钥是以加密形式存储的,用于加密密钥的算法是否需要经过FIPS认证?如果是的话,原因是,因为它们可以以明文形式存储,而且仍然可以被标准接受。
我对此的解释是,您可以以您想要的方式存储密钥,只需确保没有未经授权的用户可以访问它们。将它们存储在纯文本中,并“屏蔽”拥有纯文本的PC。因此,不需要使用FIPS加密算法。
对此的任何投入都将受到高度赞赏。
谢谢!
发布于 2011-06-03 01:08:38
我认为这意味着,如果您将密钥以明文形式存储在加密模块中,则必须确保没有其他人能够访问密钥存储在加密模块中的位置。例如,需要将其存储在只有加密模块才能访问的私有内存中,并且阻止其他模块访问。这意味着对密钥存储存在安全期望。
我认为让您感到困惑的部分是在密码模块的内部内存中存储密钥(其他人无法访问)与将密钥导出到外部世界的区别。应该在密码模块周围设置一个安全边界,以防止其他人篡改或检查其内部内存。如果密钥未经加密存储在内部内存中,那么内部内存的设计必须使任何人/任何东西都不能访问它,只能访问密码模块的代码。
我不认为这是完全正确的说,密钥可以存储在明文,但仍然是可以接受的标准。特别是,我不认为说你可以储存任何你想要的钥匙是不准确的。据我所知,FIPS不允许您在任何地方以明文存储密钥;将未加密的密钥放置在不受保护的存储中将是一种安全风险。
https://security.stackexchange.com/questions/4290
复制相似问题