Skip to content

Conversation

@antonyantony
Copy link
Collaborator

Elaborating Sub SA. As problem statement and solution.

Valery 2/10

eesp-ikev2.org Outdated
while introducing new capabilities to enhance IPsec’s performance
and versatility in modern use cases.

EESP Sub SAs provide a unidirectional SA instead of conventional
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

THis part could be argued by others. Conventional Child SAs are unidirectional too, they are just always creted in pairs by IKEv2. But this is not EESP limitation - this is IKEv2 limitation. More accurate wording is needed.

eesp-ikev2.org Outdated
monotonically increasing order to meet cryptographic requirements.
* Sub SA
Existing mechanisms for establishing Child SAs, as described in
[[RFC7296]], yield bidirectional SAs. When using
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See above about "bidirectionalness".

eesp-ikev2.org Outdated
same traffic selectors [[RFC7296]], [[RFC9611]].

Each Sub SA is identified by a Sub SA ID, which MUST be carried in
each EESP packet—either in the Session ID field or in the Flow ID
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a bit complicated. Can we choose a single place to Sub SA ID (e.g. Session ID)? If not, then a justification would be needed.

on large IKE windows [[RFC7296]]. This allows rapid provisioning
of extra flows without introducing round-trip delays.

- Simplified Lifecycle Management**: Sub SAs are more efficient
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This text is not clear for me. I've been thinking that Sub SAs live only in the context of their parent SA. Thus, they cannot be individually rekeyed or deleted. They can be created "on demand" but only if "parent" SA were created with support for Sub SAs and only up to the limit that was set when "parent" SA was created. So, in my opinion, the lifecycle management is not a good term here.

narrow scope streamlines both key management and policy
enforcement.

- On-the-Fly Key Derivation: Implementations using hierarchical
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this implies PSP-like use of EESP. But in PSP per-packet keys are derived from IV and not from Sub SA ID (that is limited in size). If keys are derived from Sub SA ID, then what is IV for? It can be fixed then :-) Perhaps I'm missing something here.

add the negotation part using Sub SA notifier.
@antonyantony antonyantony force-pushed the antony/edit-2-sub-sa-rewrite branch from 2d7fb7f to 040a621 Compare February 11, 2025 15:11
Sub SAs are negotiated during the creation of an EESP Child SA, such
as in the IKE_AUTH or CREATE_CHILD_SA new SA exchanges. To propose
Sub SA support, the initiator MUST include a USE_EESP_SUB_SA
notification, which specifies the "Minimum Number of Sub SAs"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't it the maximum number this particular peer accepts as well?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be maximum number. Each side indicates the upper limit for Sub SAs it can handle as a receiver. THere is no negotiation, just announcement. The actual number of Sub SAs may differ in different directions.

Comment on lines +303 to +304
of Sub SAs for the Child SA MUST be the minimum value between
these two numbers.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So the peers have to agree on the maximum number of Sub SAs? So an asymmetric configuration isn't possible? (As suggested by some other text that mentions the directionality and such a possibility.) Definitely possible that that would be too complex anyway.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see my comment to the other PR. There seems to be some misunderstanding. I believed that the concept of Sub SAs is close to the concept of STREAMs in QUIC - any peer is free to create as many Sub SAs as it wants (as a sender), but not more than the maximum number, the other side announced during Child SA establishment. THere is no negotiation, the maximum numbers can be different and the actual number of Sub SAs can differ in different directions.
Are we on the same page?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that was my understanding as well.

Comment on lines +307 to +309
complies with the negotiated limit. If at any point a peer attempts
to exceed the agreed number, the implementation MUST reject such an
attempt and log an appropriate error.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How would that attempt look like? An out-of-bounds Session ID?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe so. If the Session ID is sequential (as we seemed to agree, but now I am not sure :-)), then it is very easy to check.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, agreed.

attempt and log an appropriate error.

If the response does not include USE_EESP_SUB_SA or the responder
indicates a lower "Maximum Number of Sub SAs" than proposed, the
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't lower be fine? (And this seems to indicate that the initiator also sent it's maximum number of Sub SAs it can handle.)

- Minimum number of Sub SAs (2 octets). MUST be greater than 0.
- Notify Status Message Type (2 octets) - set to [TBD1]
- Minimum number of Sub SAs (2 octets). MUST be greater than 0,
If 0 is received, it MUST be interpreted as 1.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is good idea to treat 0 as 1. But let us first synchronize our understanding of Sub SAs :-)

@antonyantony
Copy link
Collaborator Author

after restructuring this mostly addressed.

@antonyantony antonyantony deleted the antony/edit-2-sub-sa-rewrite branch February 27, 2025 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants