首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不使用OpenPGP中的关键子包

不使用OpenPGP中的关键子包
EN

Security用户
提问于 2016-03-13 13:23:44
回答 1查看 749关注 0票数 1

OpenPGP in RFC4880允许通过设置数据包类型中的高位7将签名子数据包标记为“关键”。我检查了用GnuPG2生成的几个密钥,所有的子包都不是关键的,即使是"9键过期时间“。

所以我想知道:

  • 在使用GnuPG CLI创建密钥签名时,我可以控制哪个数据包被标记为关键包吗?
  • 是否需要互用性问题?
  • 是否有协议不对众所周知的(即在RFC中指定)数据包使用关键?
EN

回答 1

Security用户

回答已采纳

发布于 2016-03-13 13:57:46

关键位

OpenPGP in RFC4880允许通过设置数据包类型中的高位7将签名子数据包标记为“关键”。我检查了用GnuPG2生成的几个密钥,所有的子包都不是关键的,即使是"9键过期时间“。

OpenPGP,RFC 4880,5.2.3.1。签名子分组规范定义了关键位。可以将其设置为通知OpenPGP的旧实现,如果它们不理解子包,则应将整个签名视为无效。

第7位的子包类型是“关键”位。如果设置了,则表示子数据包对于签名的评估器识别至关重要。如果遇到标记为关键但评估软件不知道的子数据包,评估者应该认为签名是错误的。

因此,如果OpenPGP的新版本定义了新类型的签名,并且某个签名受到了旧实现无法理解的某种限制,那么您可以让更新的OpenPGP实现设置关键位来表示“如果您不理解签名子包,则将整个签名视为无效”。

由于所有这些子包都是在定义关键位的同时定义的,所以成熟的实现无论如何都应该支持这些子包。

是否有协议不对众所周知的(即在RFC中指定的)数据包使用关键?

与OpenPGP相关的RFCs (特别是4880)没有提到何时不使用它的细节。

在GnuPG

中设置关键位

在使用GnuPG CLI创建密钥签名时,我可以控制哪个数据包被标记为关键数据包吗?

man gpg2展示了一些用例,在这些用例中,您可以通过前缀!来设置符号和密钥服务器/策略URI的关键位:

--sig-keyserver-url string使用字符串作为数据签名的首选密钥服务器URL。如果在其前缀加上感叹号(!),则键服务器URL数据包将被标记为“关键”。

Interoperability

是否期望出现互操作性问题?

当旧的实现没有实现重要的新特性时,关键的bit是为了防止“损坏”的互操作性。因此,在某种程度上,它阻碍了可操作性,但同时,这也是为什么它被设定下来。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/117303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档