View Issue Details

IDProjectCategoryView StatusLast Update
000526510000-006: MappingsSpecpublic2020-06-30 16:40
ReporterBernd Edlinger Assigned ToRandy Armstrong  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionreopened 
Summary0005265: Sequence number erratum incompatible to previous
Description

The text in the OPC UA Specification Errata 1.04.3 is suggesting an incompatible
change to the existing Stacks:

"The SequenceNumber shall start at 1 023 and monotonically increase for all
Messages and shall wrap around when it is equal to 4 294 966 271
(UInt32.MaxValue – 1 024). The first number after the wrap around shall be
1 023. Note that this requirement means that a SequenceNumber does not
reset when a new TokenId is issued. The SequenceNumber shall be
incremented by exactly one for each MessageChunk sent. For backward
compatibility, receivers shall accept SequenceNumbers less than 1 023 and
greater than 4 294 966 271 provided they are in sequence. Administrators
shall be able to disable this backward compatibility. Receivers shall log a
warning when a rollover does not conform to the current specification."

This implies the server send 4 294 966 271 --> 1 023

But that will not be accepted by the previous wording and I think .NET and
AnsiC stacks agree in requiring 4 294 966 271 --> 4 294 966 272 --> 1 023.

Previous wording was:

"The SequenceNumber shall also monotonically increase for all Messages and shall
not wrap around until it is greater than 4 294 966 271 (UInt32.MaxValue –1 024). The first number after
the wrap around shall be less than 1 024."
Therefor the check is "prevSequenceNumber > 4294966271 && nextSequenceNumber < 1024".

I am not sure if that is intentional, but if it is the sentence with "For backward compatibility..."
makes no sense since the other side will terminate the connection at this point anyway.

TagsNo tags attached.
Commit Version
Fix Due Date

Relationships

has duplicate 0005643 closedRandy Armstrong 10000-006: Mappings Changes to SequenceNumber handling needs to be reverted. 
related to 0004745 assignedPaul Hunkar CTT UA Test Case Section 6.7.2.4: SequenceNumber starting value is not defined. 
related to 0005434 closedRandy Armstrong 10000-006: Mappings Sequence number erratum incompatible to existing stacks 

Activities

Randy Armstrong

2019-11-20 16:11

administrator   ~0011247

Last edited: 2019-11-20 16:11

Reviewed and fixed errata and specification in Security WG call on 2019-11-20.

Matthias Damm

2020-04-15 10:43

developer   ~0011926

Based on the discussions we need to revert the errata.

Based on input from Randy, this is the latest proposal:

A SequenceNumber may not be reused for any TokenId. The SecurityToken lifetime shall be short enough to ensure that this never happens; however, if it does the receiver shall treat it as a transport error and force a reconnect. The SequenceNumber does not reset when a new TokenId is issued and it shall be incremented by exactly one for each MessageChunk sent.

SecurityPolicies with ZeroBasedSequenceNumbers set to FALSE, the SequenceNumber shall monotonically increase for all Messages and shall not wrap around until it is greater than 4 294 966 271 (UInt32.MaxValue – 1 024). The first number after the wrap around shall be less than 1 024.

SecurityPolicies with ZeroBasedSequenceNumbers set to TRUE, the SequenceNumber shall start at 0 and monotonically increase for all Messages and shall not wrap around until it is equal to 4 294 967 295 (UInt32.MaxValue). The first number after the wrap around shall be 0.

Randy Armstrong

2020-06-17 02:52

administrator   ~0012363

Text fixed as suggested.

Jim Luth

2020-06-18 17:11

administrator   ~0012433

Agreed to changes in virtual F2F.

Issue History

Date Modified Username Field Change
2019-11-19 11:46 Bernd Edlinger New Issue
2019-11-20 16:11 Randy Armstrong Assigned To => Randy Armstrong
2019-11-20 16:11 Randy Armstrong Status new => resolved
2019-11-20 16:11 Randy Armstrong Resolution open => fixed
2019-11-20 16:11 Randy Armstrong Note Added: 0011247
2019-11-20 16:11 Randy Armstrong Note Edited: 0011247
2020-04-15 10:40 Matthias Damm Relationship added related to 0004745
2020-04-15 10:43 Matthias Damm Status resolved => feedback
2020-04-15 10:43 Matthias Damm Resolution fixed => reopened
2020-04-15 10:43 Matthias Damm Note Added: 0011926
2020-05-13 12:53 Randy Armstrong Relationship added related to 0005643
2020-06-02 15:57 Jim Luth Status feedback => assigned
2020-06-17 02:52 Randy Armstrong Status assigned => resolved
2020-06-17 02:52 Randy Armstrong Note Added: 0012363
2020-06-17 03:38 Randy Armstrong Relationship replaced has duplicate 0005643
2020-06-18 17:11 Jim Luth Status resolved => closed
2020-06-18 17:11 Jim Luth Fixed in Version => 1.05
2020-06-18 17:11 Jim Luth Note Added: 0012433
2020-06-30 16:40 Randy Armstrong Relationship added related to 0005434