OWASP / OWASP/ASVS

Feedback about recommended AES modes

Open
#2,509 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

_5.0 - Not blocker 1) Discussion ongoing AppendixV
Dominant language
HTML
Stars
3.6k
Forks
831
Avg merge
7h 55m
Merged PRs (30d)
4

Description

Feedback from Bart Preneel related to AES modes (other aspects are discussed in #2495):

I am not sure that it is a good idea to separate encryption from data authentication. I would thus call this section Authenticated Encryption algorithms and say that for the encryption component you only allow AES and Chacha-20 (I would not add Salsa20).

[...]
The only AES-based authenticated encryption algorithms that can are recommended for general use are: GCM, CCM, CCM-8, OCB (OCB has been added here – make sure you use the right version).

Add a warning that AES-GCM is particularly vulnerable to a nonce reuse attack that such vulnerabilities have already been identified earlier in some libraries.

Some notes/questions:

  • CCM-8 is listed here (see #2413), so maybe it makese sense to keep this.

  • OCB is not listed. We should probably add it.

  • CBC is not mentioned in this feedback but is currently approved in the document. Shall we do something about it? For what it's worth, it is still allowed by NIST / FIPS. Should we list it are "approved but discouraged / legacy" ? (see https://github.com/OWASP/ASVS/issues/2398#issuecomment-2513823401)

  • Shall we explicitly talk about nonce reuse in AES-GCM somewhere ? We already have:

    [MODIFIED, MOVED FROM 6.2.6, LEVEL L2 > L3] Verify that nonces, initialization vectors, and other single-use numbers are not used for more than one encryption key/data-element pair. The method of generation must be appropriate for the algorithm being used.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the AES modes section in the ASVS document and review the existing CCM-8 entry, the omitted OCB option, and the current CBC guidance. Read the related discussions in #2413 and #2398, plus the cited nonce-reuse requirement moved from 6.2.6. Done requires maintainer decisions on algorithm recommendations, CBC status, and where to document AES-GCM nonce reuse.

Written by the indexing model from the issue text.

Assessment

Domain
cryptography, documentation, security
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.