Internet DRAFT - draft-kario-pkcs12-pbmac1
draft-kario-pkcs12-pbmac1
Internet Engineering Task Force H. Kario, Ed.
Internet-Draft Red Hat, Inc.
Updates: RFC7292 (if approved) 21 June 2022
Intended status: Informational
Expires: 23 December 2022
Use of Password Based Message Authentication Code 1 (PBMAC1) in PKCS #12
Syntax
draft-kario-pkcs12-pbmac1-00
Abstract
This document specifies additions and amendments to RFC 7292
[RFC7292]. It defines a way to use the Password Based Message
Authentication Code 1, defined in RFC 8018 [RFC8018], inside the PKCS
#12 syntax. The purpose of this specification is to permit use of
more modern PBKDFs and allow for regulatory compliance.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 23 December 2022.
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved.
Kario Expires 23 December 2022 [Page 1]
Internet-Draft PBMAC1 in PKCS#12 June 2022
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Requirements Language . . . . . . . . . . . . . . . . . . . . 3
4. Embedding PBMAC1 in PKCS #12 . . . . . . . . . . . . . . . . 3
5. Recommended parameters . . . . . . . . . . . . . . . . . . . 3
6. Deprecated Algorithms . . . . . . . . . . . . . . . . . . . . 3
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4
8. Security Considerations . . . . . . . . . . . . . . . . . . . 4
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 4
9.1. Normative References . . . . . . . . . . . . . . . . . . 4
9.2. Informative References . . . . . . . . . . . . . . . . . 4
Appendix A. Additional Stuff . . . . . . . . . . . . . . . . . . 4
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5
1. Introduction
The PKCS #12 [RFC7292] format is widely used for interoperable
transfer of certificate, key, and other miscellaneous secrets between
machines, applications, browsers, etc. Unfortunately, the original
specification mandates the use of a specific password based key
derivation function, allowing only for change of the underlying
message digest function.
2. Rationale
Due to security concerns with PBKDF1 and much higher extensibility of
PBMAC1, we propose the use of PBMAC1 for integrity protection of PKCS
#12 structures. The new syntax is designed to allow legacy
applications to still be able to decrypt the key material, even if
they are unable to interpret the new integrity protection, provided
that they can ignore failures in MAC verification. Use of the
extensible PBMAC1 mechanism also allows for greater flexibility and
alignment to different government regulations.
Kario Expires 23 December 2022 [Page 2]
Internet-Draft PBMAC1 in PKCS#12 June 2022
As recommended methods for key protection require both encryption and
integrity protection, we've decided to amend the PKCS #12 format to
support different key derivation functions rather than extending the
PKCS #5 by a new field allowing integrity protection.
3. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
4. Embedding PBMAC1 in PKCS #12
The MacData structure in the PFX object is changed as follows:
1. the id-PBMAC1 object identifier is permitted as a valid type for
the DigestAlgorithmIdentifier inside the DigestInfo object. If
the algorithm field of the DigestAlgorithmIdentifier is id-
PBMAC1, then the parameters field MUST be present and have the
value consistent with PBMAC1-params
2. if the PBMAC1 algorithm is used, the digest value of the
DigestInfo object MUST be the result of the PBMAC1 calculation
over the authSafe field using the PBMAC1-params parameters
3. if the PBMAC1 algorithm is used, the macSalt value MUST be
ignored, for backwards compatibility it SHOULD NOT be empty
4. if the PBMAC1 algorithm is used, the iteration value MUST be
ignored, for backwards compatibility it SHOULD have a non-zero
positive value
5. Recommended parameters
To provide interoperability between different implementations, all
implementations of this specification MUST support the PBKDF2 key
derivation function paired with SHA-256 HMAC. It's RECOMMENDED for
implementations to support other SHA-2 based HMACs. Implementations
MAY use other KDF methods, like the scrypt PBKDF RFC 7914 [RFC7914].
6. Deprecated Algorithms
While attacks against SHA-1 HMACs are not considered practical
[RFC6194] to limit the number of algorithms needed for
interoperatbility, implementations of this specification SHOULD NOT
use PBKDF2 with the SHA-1 HMAC. Additionally the implementation MUST
NOT use any other message digest functions with output of 160 bits or
smaller.
Kario Expires 23 December 2022 [Page 3]
Internet-Draft PBMAC1 in PKCS#12 June 2022
7. IANA Considerations
This memo includes no request to IANA.
8. Security Considerations
Except for use of different key derivation functions, this document
doesn't change how the integrity protection on PKCS #12 objects is
computed; therefore all the original security considerations from RFC
7292 [RFC7292] apply.
Use of PBMAC1 and PBKDF2 is unchanged from RFC 8018 [RFC8018];
therefore all the original security considerations apply.
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC6194] Polk, T., Chen, L., Turner, S., and P. Hoffman, "Security
Considerations for the SHA-0 and SHA-1 Message-Digest
Algorithms", RFC 6194, DOI 10.17487/RFC6194, March 2011,
<https://www.rfc-editor.org/info/rfc6194>.
[RFC7292] Moriarty, K., Ed., Nystrom, M., Parkinson, S., Rusch, A.,
and M. Scott, "PKCS #12: Personal Information Exchange
Syntax v1.1", RFC 7292, DOI 10.17487/RFC7292, July 2014,
<https://www.rfc-editor.org/info/rfc7292>.
[RFC8018] Moriarty, K., Ed., Kaliski, B., and A. Rusch, "PKCS #5:
Password-Based Cryptography Specification Version 2.1",
RFC 8018, DOI 10.17487/RFC8018, January 2017,
<https://www.rfc-editor.org/info/rfc8018>.
9.2. Informative References
[RFC7914] Percival, C. and S. Josefsson, "The scrypt Password-Based
Key Derivation Function", RFC 7914, DOI 10.17487/RFC7914,
August 2016, <https://www.rfc-editor.org/info/rfc7914>.
Appendix A. Additional Stuff
This becomes an Appendix.
Kario Expires 23 December 2022 [Page 4]
Internet-Draft PBMAC1 in PKCS#12 June 2022
Author's Address
Hubert Kario (editor)
Red Hat, Inc.
Purkynova 115
61200 Brno
Czech Republic
Email: hkario@redhat.com
Kario Expires 23 December 2022 [Page 5]