Internet-Draft SMVF January 2026
Keskilammi Expires 7 July 2026 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-voyager-smv-specification-00
Published:
Intended Status:
Informational
Expires:
Author:
O. Keskilammi
Self-published

Secure Mobile Vault Format

Abstract

The Secure Mobile Vault Format (SMVF) defines a binary container format for storing encrypted password vaults on mobile devices. The format is designed to be offline-first, zero-knowledge, cryptographically robust, and forward-compatible. SMVF specifies strict structural layout, authenticated encryption, and deterministic metadata handling suitable for constrained mobile environments.

Discussion Venues

This note is to be removed before publishing as an RFC.

Source for this draft and an issue tracker can be found at https://github.com/voyager-2021/smv-specification.

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 7 July 2026.

Table of Contents

1. 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.

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".

3. Introduction

The Secure Mobile Vault Format (SMVF) defines a binary container format for storing encrypted password vaults on mobile devices. The format is designed to be offline-first, zero-knowledge, cryptographically robust, and forward-compatible.

SMVF follows strict principles including explicit headers, typed sections, cryptographic framing, and strict versioning, while remaining minimal and suitable for mobile environments.

4. 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 [RFC2119].

5. Design Goals

The format is designed to meet the following goals:

  1. Provide zero-knowledge encryption where vault contents cannot be recovered without the master password.

  2. Support offline-only operation with no network dependencies.

  3. Be safe for mobile storage, including crash-safe atomic updates.

  4. Use authenticated encryption to ensure confidentiality and integrity.

  5. Allow future evolution without breaking existing vaults.

  6. Remain auditable and deterministic in layout.

6. File Overview

An SMVF file consists of the following components, in order:

All multi-octet integer fields are encoded in network byte order (big-endian). The file is tightly packed and contains no padding.

The standard file extension is ".smvf".

7. File Header

The file header is a fixed-size structure of 32 octets.

The header contains the following fields:

The following header flags are defined:

8. Section Model

Sections follow a typed-length-value (TLV) model.

Each section consists of:

The section length specifies the length of the section value only.

Unknown section types MUST be skipped using the length field. The section order defined in this specification MUST be preserved.

9. Section Types

The following section types are defined:

No section identifier may be reused for a different purpose.

10. KDF Parameters Section

This section defines how the encryption key is derived from the master password.

The section value contains the following fields:

The following KDF Algorithm identifiers are defined:

The salt is not secret and MUST be generated randomly per vault.

For Argon2id, the parameters are defined as follows:

For scrypt, the parameters are defined as follows:

Implementations SHOULD tune parameters for mobile hardware while maintaining resistance to offline attacks.

11. Crypto Parameters Section

This section defines the encryption algorithm and parameters used to protect the vault payload.

The section value contains the following fields:

The following Cipher Algorithm identifiers are defined:

For AES-256-GCM and ChaCha20-Poly1305, the Key Length MUST be 32 octets.

Implementations MUST ensure that a nonce is never reused with the same derived key. The authentication tag is embedded in the AEAD ciphertext and is not stored separately.

12. Encrypted Vault Section

This section contains the encrypted vault payload.

The payload is produced using an AEAD construction with the following inputs:

All metadata is authenticated but not encrypted. Any modification to these components MUST cause decryption failure.

The AAD input MUST be the exact serialized octet sequence of the File Header followed by the serialized KDF Parameters Section and the serialized Crypto Parameters Section, in file order.

13. Vault Payload Structure

Before encryption, the vault payload is serialized JSON as defined in [RFC8259]. All JSON strings MUST be encoded in UTF-8.

No canonicalization of the JSON payload is required, as integrity is provided by the enclosing AEAD construction.

The top-level object contains the following fields:

14. Vault Entry Structure

Each vault entry is a [RFC8259] JSON object containing the following fields:

The type field allows future extension to support non-password secrets.

15. Authentication and Integrity

The format relies exclusively on AEAD for security guarantees.

The following properties are provided:

No separate MAC or digital signature is required.

16. Atomic Update Requirements

Implementations MUST perform updates atomically to prevent vault corruption.

A recommended procedure is as follows:

  1. Write the updated vault to a temporary file.

  2. Flush and synchronize the file.

  3. Atomically rename the temporary file over the existing vault.

  4. Optionally retain a backup copy.

Mobile operating systems guarantee atomic rename operations within the same filesystem.

17. Memory Handling Requirements

Implementations MUST enforce the following requirements:

18. Forward Compatibility Rules

Readers MUST reject files with unsupported major versions.

Readers MUST ignore unknown section types.

Writers MUST preserve section ordering and MUST NOT reuse section identifiers.

19. Explicit Non-Goals

The format intentionally excludes:

20. Threat Model Summary

The format mitigates:

The format does not mitigate:

21. IANA Considerations

This document has no IANA actions.

22. Security Considerations

This document specifies a cryptographic container format intended to protect sensitive data at rest. Security properties and assumptions are discussed throughout the document, including key derivation, authenticated encryption, and memory handling requirements.

The format assumes a trusted execution environment and does not protect against compromised operating systems, runtime memory disclosure, or malicious software with sufficient privileges. Implementers are responsible for selecting appropriate cryptographic parameters and ensuring correct use of underlying cryptographic primitives.

23. References

23.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC3339]
Klyne, G. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, DOI 10.17487/RFC3339, , <https://www.rfc-editor.org/rfc/rfc3339>.
[RFC4106]
Viega, J. and D. McGrew, "The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP)", RFC 4106, DOI 10.17487/RFC4106, , <https://www.rfc-editor.org/rfc/rfc4106>.
[RFC7914]
Percival, C. and S. Josefsson, "The scrypt Password-Based Key Derivation Function", RFC 7914, DOI 10.17487/RFC7914, , <https://www.rfc-editor.org/rfc/rfc7914>.
[RFC8439]
Nir, Y. and A. Langley, "ChaCha20 and Poly1305 for IETF Protocols", RFC 8439, DOI 10.17487/RFC8439, , <https://www.rfc-editor.org/rfc/rfc8439>.
[RFC9106]
Biryukov, A., Dinu, D., Khovratovich, D., and S. Josefsson, "Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications", RFC 9106, DOI 10.17487/RFC9106, , <https://www.rfc-editor.org/rfc/rfc9106>.

23.2. Informative References

[RFC8259]
Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, , <https://www.rfc-editor.org/rfc/rfc8259>.
[RFC9562]
Davis, K., Peabody, B., and P. Leach, "Universally Unique IDentifiers (UUIDs)", RFC 9562, DOI 10.17487/RFC9562, , <https://www.rfc-editor.org/rfc/rfc9562>.

Acknowledgments

Authors' Addresses

Ohto Keskilammi Email: voyager-2019@outlook.com