首页 . 理学 . 计算机科学技术 . 信息安全 . 密码学 . 密码协议

密码协议设计

/cryptographic protocol design/
条目作者张振峰

张振峰

最后更新 2022-01-20
浏览 138
最后更新 2022-01-20
浏览 138
0 意见反馈 条目引用

根据所使用的密码算法和共享秘密方式的不同所进行的设计。

英文名称
cryptographic protocol design
所属学科
计算机科学与技术

密码协议可以划分为基于对称密钥的密码协议、基于证书的密码协议、基于身份的密码协议、基于口令的密码协议,以及混合的密码协议;根据参与方的个数,密码协议包括两方的密码协议和多方的密码协议。

在密码协议的设计过程中,很容易出现各种各样的逻辑漏洞,研究人员在密码协议的设计实践中总结了大量的失败教训,得到了若干设计原则。在设计密码协议时,一般遵循一些默认的假设和原则。下面的这些设计准则是由Abadi和Needham归纳出的。需要说明的是,准则本身是一种非形式化的指导方针,独立于任何逻辑。尽管准则可以使协议的设计者避免一些错误,却不能保证完全符合这些准则一定得到安全的密码协议;相反,不遵守这些准则,就有可能导致漏洞的出现。

准则一:每个消息应该精确、完全地表达所要表达的意义,即对于消息的解释仅仅取决于消息本身,而不必借助上下文来推断。

准则二:对于一个消息采取行动的先决条件应该明确无疑,以便任何使用者都可以根据条件来判断是否采用该协议。

准则三:如果主体的身份对于某个消息的意义来说是必要的,那么应该谨慎处理主体的身份信息,如在消息中明确地提到主体的名字。

准则四:应该清楚地知道协议中使用加密的目的,因为加密不是一种简单的运算,它需要的计算量较大,不清楚加密的目的可能会导致冗余,而不正确的使用加密将导致协议的错误。

准则五:如果主体对已加密的消息进行了签名操作,那么不能由此推断出主体知晓该消息的内容。反之,如果主体对消息先签名然后再加密,那么可以推断出主体知道该消息的内容。

准则六:要清楚地知道协议中所使用的临时值的特性。临时值可以用于确保时间上的连续性,也可以用于确保关联性,还可以通过其他方式建立关联性。

准则七:在挑战—响应交换中可以使用可预测的值(如计数器的值)来保证新鲜性,但是如果这一可预测的值对协议的影响很大,那么就应该对该值进行保护,这样入侵者就不能模拟挑战、以后再重放响应。

准则八:如果时间戳是根据绝对时间来保证其新鲜性的,那么不同机器的本地时钟差别需要小于消息允许的有效范围。而且,所有地方的时间维护机制需要成为可信计算基的一部分。

准则九:一个密钥可能在最近使用过,如果用来加密一次性随机数,很可能是相当旧的,甚至已经被泄露。

准则十:如果用一种编码来表达消息的意义,那么应能区分使用的是哪一种编码。通常情况下,编码是与协议相关的。经过某种编码以后,应能推出消息是属于某个协议,进一步说是属于协议的某一次特定运行,而且知道该消息是协议中的第几条消息。

准则十一:协议设计者应该知道他所设计的协议依赖于哪种信任关系,以及为何这种依赖是必不可少的。

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!