10. 应用剖面考虑事项
- 应用剖面考虑事项
本文档旨在提供一组安全服务, 但不为特定用途强加算法实现要求. 互操作性要求说明了各个单独服务如何使用, 以及算法应如何用于互操作. 至于需要哪些算法和哪些服务, 则留给各个应用自行决定.
[RFC8613] 中可以找到一个剖面示例, 其中为结合 CoAP header 携带内容开发了一个剖面.
本文档预期会创建相应剖面, 用于定义特定应用的互操作性要求. 本节给出在对本文档进行剖面化时需要考虑的一组指南和主题.
-
应用需要确定它们将使用本文档中定义的哪组消息. 这组消息与所需的安全服务集合和安全级别相当直接地对应.
-
应用可以为特定目的定义新的 header 参数. 应用通常会选择使用或不使用特定 header 参数. 例如, 应用通常会声明偏好使用 IV 或 Partial IV header 参数. 如果指定了 Partial IV header 参数, 应用还需要定义如何确定 IV 的固定部分.
-
当应用使用外部定义的认证数据时, 它们需要定义该数据如何编码. 本文档假定该数据将作为字节串提供. 更多信息见 Section 4.3.
-
应用需要确定要使用的安全算法集合. 在选择强制实现算法集合时, 如果为某个特定目的选择两个算法, 应考虑选择不同类型的算法. 一个例子是选择 HMAC-SHA512 和 AES-CMAC (Cipher-Based Message Authentication Code) 作为不同的 MAC 算法; 这两个算法的构造差异很大. 这意味着削弱其中一个算法不太可能导致其他算法也被削弱. 当然, 这些算法并不提供相同的安全级别, 因而对于期望的安全功能可能并不可比. 其他指南见 [BCP201].
-
如果允许多个算法或消息结构, 应用可能需要提供某种协商或发现方法. 该方法可以从简单地要求预先配置算法集合, 到提供内置于协议中的发现方法不等. S/MIME 提供了多种处理此问题的方式, 应用可以仿照:
-
在消息中通告 (S/MIME capabilities) [RFC8551].
-
在证书中通告 (capabilities extension) [RFC4262].
-
S/MIME 的最低要求, 这些要求随时间已有更新 [RFC2633] [RFC3851] [RFC5751] [RFC8551]. (注意, [RFC2633] 已被 [RFC3851] 废止, [RFC3851] 已被 [RFC5751] 废止, [RFC5751] 已被 [RFC8551] 废止.)
-