Space Data Link Security Protocol — Extended Procedures

CCSDS 355.1-B-1 · Issue 1, February 2020

The Extended Procedures manage SDLS in flight: keys, Security Associations, and monitoring and control. Each procedure is a PDU with a 3-octet header, identified by its Service Group and Procedure Identification.

Open the interactive diagram, Frame Builder and Frame Decoder

Extended Procedures PDU Header

BITS 0–23 · 3 OCTETS · 24 BITS · MANDATORY · § 5.3.2.2 · Open in the viewer

The mandatory 24-bit header of every Extended Procedures PDU. It carries the Extended Procedures Tag — which identifies the procedure — followed by the Data Field Length.

The format of the Extended Procedures PDU is shown in figure 5-2 of the Standard.

Extended Procedures Tag

BITS 0–7 · 8 BITS · MANDATORY · § 5.3.2.2.1.2 · Open in the viewer

The 8-bit tag that uniquely identifies the procedure. Four sub-fields: Procedure Type, User Flag, Service Group and the Procedure Identification.

Procedure Type FlagPT

BIT 0 · 1 BIT · MANDATORY · § 5.3.2.2.2 · Open in the viewer

Identifies whether the PDU is a command (Initiator → Recipient) or a reply (Recipient → Initiator).

ValueMeaningClause
‘0’Command§ 5.3.2.2.2.1.2
‘1’Reply§ 5.3.2.2.2.1.3

User FlagUF

BIT 1 · 1 BIT · MANDATORY · § 5.3.2.2.2.2 · Open in the viewer

Identifies whether the PDU carries a CCSDS-defined procedure or a user-defined (proprietary) procedure.

ValueMeaningClause
‘0’CCSDS defined procedure§ 5.3.2.2.2.2.2
‘1’User defined procedure§ 5.3.2.2.2.2.3

Thanks to the TLV format, proprietary (user-defined) messages are simply skipped by a Recipient that does not recognize them.

Service Group FieldSG

BITS 2–3 · 2 BITS · MANDATORY · § 5.3.2.2.2.3 · Open in the viewer

Identifies the Extended Procedures Service the PDU belongs to — and, for SA Management, the direction of the SAs targeted.

ValueMeaningClause
‘00’Key Management procedure§ 5.3.2.2.2.3.2
‘01’SA Management — SAs handling Initiator → Recipient traffic§ 5.3.2.2.2.3.3
‘10’SA Management — SAs handling Recipient → Initiator traffic§ 5.3.2.2.2.3.4
‘11’Security Monitoring & Control procedure§ 5.3.2.2.2.3.5

Procedure Identification FieldPI

BITS 4–7 · 4 BITS · MANDATORY · § 5.3.2.2.2.4 · Open in the viewer

Identifies the specific procedure being communicated. Interpreted together with the Service Group (see table 5-1).

ValueMeaningClause
‘0001’ · SG ‘00’OTARTABLE 5-1
‘0010’ · SG ‘00’Key ActivationTABLE 5-1
‘0011’ · SG ‘00’Key DeactivationTABLE 5-1
‘0100’ · SG ‘00’Key VerificationTABLE 5-1
‘0110’ · SG ‘00’Key DestructionTABLE 5-1
‘0111’ · SG ‘00’Key InventoryTABLE 5-1

The same Procedure Identification value can denote different procedures under different Service Groups — always read it together with the Service Group field.

Extended Procedures Data Field LengthLEN

BITS 8–23 · 16 BITS · MANDATORY · § 5.3.2.3 · Open in the viewer

Signals the length of the PDU Data Field, in bits, octet-aligned. When zero, the Data Field is not present.

Key management

OTAR Command

Procedure Identification ‘0001’ · § 5.4.2.1 · Open in the viewer

The OTAR (Over-The-Air-Rekeying) Command realizes the secure — encrypted and authenticated — transmission of new session keys from the Initiator to the Recipient. Its PDU Data Field carries the Master Key ID, an optional Initialization Vector, an Upload Key Block of N (Encrypted Key ID, Encrypted Key) pairs, and a MAC over the authenticated-encrypted block.

FieldLengthMeaning
Master Key IDMANAGEDSignals the Key ID of the master key used for the encrypted authentication of the Upload Key Block.
Initialization VectorMANAGEDSignals, if applicable, the Initialization Vector required by the cryptographic algorithm used for the authenticated encryption of the Upload Key Block.
Encrypted Key IDMANAGEDSignals, in encrypted format, the identifiers of the session keys to be uploaded. Paired with an Encrypted Key and repeated N times within the Upload Key Block.
Encrypted KeyMANAGEDSignals, in encrypted format, the cryptographic keys to be uploaded to the Recipient. Paired with an Encrypted Key ID and repeated N times.
Message Authentication CodeMANAGEDSignals the Message Authentication Code computed by the cryptographic algorithm used for the authenticated encryption of the Upload Key Block.

Key Activation Command

Procedure Identification ‘0010’ · § 5.4.2.2 · Open in the viewer

The Key Activation Command transitions a set of pre-loaded keys from the Pre-Active State to the Active State at both ends of the link, so they can subsequently be used for cryptographic operations. Its PDU Data Field is simply a Key ID field, repeated one to N times — one entry per key to activate.

FieldLengthMeaning
Key IDMANAGEDSignals the identifiers of the cryptographic keys to be activated on the Recipient. Repeated one to N times — one Key ID per key.

Key Deactivation Command

Procedure Identification ‘0011’ · § 5.4.2.3 · Open in the viewer

The Key Deactivation Command transitions a set of keys from the Active State to the Deactivated State at both ends of the link. A deactivated key can no longer be used for cryptographic operations. Its PDU Data Field is a Key ID field, repeated one to N times — one entry per key to deactivate.

FieldLengthMeaning
Key IDMANAGEDSignals the identifiers of the cryptographic keys to be deactivated on the Recipient. Repeated one to N times — one Key ID per key.

Key Destruction Command

Procedure Identification ‘0110’ · § 5.4.2.4 · Open in the viewer

The Key Destruction Command transitions a set of keys from the Deactivated State to the Destroyed State at both ends of the link — the terminal, irreversible state of the key lifecycle. Its PDU Data Field is a Key ID field, repeated one to N times — one entry per key to destroy.

FieldLengthMeaning
Key IDMANAGEDSignals the identifiers of the cryptographic keys to be destroyed on the Recipient. Repeated one to N times — one Key ID per key.

Key Verification Command

Procedure Identification ‘0100’ · § 5.4.2.5 · Open in the viewer

The Key Verification Command lets the Initiator confirm that a set of active keys at the Recipient are not corrupted or modified and are fully operational. Its PDU Data Field carries (Key ID, Challenge) pairs, repeated one to N times — one pair per key to be verified.

FieldLengthMeaning
Key IDMANAGEDSignals the identifiers of the keys to be verified at the Recipient. Paired with a Challenge and repeated one to N times.
ChallengeMANAGEDSignals the challenges to be used for verification of the keys at the Recipient. Paired with a Key ID and repeated one to N times.

Key Verification Reply

Procedure Identification ‘0100’ · § 5.4.2.5 · Open in the viewer

The Key Verification Reply returns the Recipient’s response to a Key Verification Command. For each verified key it carries, in encrypted and authenticated form, the response to the challenge. Its PDU Data Field carries (Key ID, IV, Encrypted Challenge, Challenge MAC) quadruples, repeated one to N times.

FieldLengthMeaning
Key IDMANAGEDSignals the identifiers of the keys that were verified. First field of each quadruple, repeated one to N times.
Initialization VectorMANAGEDSignals, if applicable, the Initialization Vector required by the cryptographic algorithm used for the authenticated encryption of the challenge response.
Encrypted ChallengeMANAGEDSignals, in encrypted format, the responses to the challenges sent in the Key Verification Command.
Challenge MACMANAGEDSignals the Message Authentication Code computed by the cryptographic algorithm used for the authenticated encryption of the challenge response.

Key Inventory Command

Procedure Identification ‘0111’ · § 5.4.2.6 · Open in the viewer

The Key Inventory Command requests the status of a contiguous range of keys held in the Recipient key data base. Its PDU Data Field carries just two fields — the First and Last Key ID of the range to be scanned.

FieldLengthMeaning
First Key ID in RangeMANAGEDSignals the first Key ID of the range to be scanned in the Recipient Key Data Base to extract available keys and their status.
Last Key ID in RangeMANAGEDSignals the last Key ID of the range to be scanned in the Recipient Key Data Base to extract available keys and their status.

Key Inventory Reply

Procedure Identification ‘0111’ · § 5.4.2.6 · Open in the viewer

The Key Inventory Reply returns the inventory for the range requested by a Key Inventory Command. It opens with the total number of Key IDs returned, followed by that many (Key ID, Key State) pairs — one per key found in the range.

FieldLengthMeaning
Total Number of Key IDs Returned16 BITSSignals the number of keys in the Recipient key data base for the range of Key IDs specified in the Key Inventory Command PDU. Sets N — the number of (Key ID, Key State) pairs that follow.
Key IDMANAGEDSignals the identifier of a key found in the requested range. Paired with its Key State and repeated N times.
Key StateMANAGEDSignals the state of the paired key within the cryptographic key lifecycle. Paired with a Key ID and repeated N times.

Security association mgmt

Start SA

Procedure Identification ‘1011’ · § 5.5.1.2 · Open in the viewer

The Start SA directive begins using a particular Security Association on a channel. Its PDU Data Field carries the 16-bit SPI of the applicable SA, followed by one to N GVC ID/GMAP ID fields naming the Global Virtual Channel(s)/Global MAP(s) the SA is to be used with.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the applicable Security Association to be started. The SPI uniquely identifies the SA within the Recipient SA database.
GVC ID / GMAP IDMANAGED (32-bit units)Signals the Global Virtual Channel(s)/Global MAP(s) with which the Security Association is to be used. Each ID is encoded into a unique 32-bit field; repeated one to N times.

Stop SA

Procedure Identification ‘1110’ · § 5.5.1.3 · Open in the viewer

The Stop SA directive stops using a particular Security Association on a channel. Its PDU Data Field consists of a single field — the 16-bit SPI of the applicable SA, which must be in the ‘Operational’ state.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the applicable Security Association to be stopped. The SPI uniquely identifies the SA within the Recipient SA database.

Rekey SA

Procedure Identification ‘0110’ · § 5.5.1.4 · Open in the viewer

The Rekey SA directive changes the keys and ARSN of a particular Security Association. Its PDU Data Field carries the 16-bit SPI, then — optionally — a new encryption key ID and a new authentication key ID, followed by a mandatory new ARSN and, if needed, a new IV for the encryption key.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the SPI of the Security Association to be rekeyed. Uniquely identifies the SA within the Recipient SA database.
New Encryption Key IDMANAGEDSignals the new encryption key for the Security Association. Optional — present only when the encryption key is being changed.
New Authentication Key IDMANAGEDSignals the new authentication key for the Security Association. If the SA service type is Authenticated Encryption using a combined single-key algorithm, this field signals the new key.
New Anti-Replay Sequence NumberMANAGEDSignals the new value of the Anti-Replay Sequence Number (ARSN) to be used with the new key.
New Initialization Vector (IV)MANAGEDSignals the new value of the IV to be used with the encryption key. Present only if an IV is needed for the encryption key.

Expire SA

Procedure Identification ‘1001’ · § 5.5.1.5 · Open in the viewer

The Expire SA directive expires the key of a particular Security Association. Its PDU Data Field consists of a single mandatory field — the 16-bit SPI of the applicable SA whose key is to be expired.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the SPI of the Security Association whose key is to be expired.

Create SA

Procedure Identification ‘0001’ · § 5.5.1.6 · Open in the viewer

The Create SA directive creates a new Security Association and fully specifies its cryptographic configuration. Its PDU Data Field carries a managed number of contiguous fields: the SPI, service-type flags, the security header/trailer field lengths, and the cipher suite, IV, authentication bit mask and ARSN descriptors — each length field followed by its optional managed-length value.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the SPI of the Security Association to be created.
SA Service Type — Encryption1 BITSA Service Type flag for Encryption — signals whether the Security Association to be created provides an encryption service.
SA Service Type — Authentication1 BITSA Service Type flag for Authentication — signals whether the Security Association to be created provides an authentication service.
Security Header IV Field Length6 BITSSignals the length of the Initialization Vector field in the SDLS Security Header for this SA.
Security Header SN Field Length6 BITSSignals the length of the Sequence Number field in the SDLS Security Header for this SA.
Security Header PL Field Length2 BITSSignals the length of the Pad Length field in the SDLS Security Header for this SA.
Security Trailer MAC Field Length8 BITSSignals the length of the Message Authentication Code field in the SDLS Security Trailer for this SA.
Encryption Cipher Suite Length8 BITSSignals the length in octets of the Encryption cipher suite identifier field that follows.
Encryption Cipher Suite IdentifierMANAGEDSignals the identifier of the encryption cipher suite to be used with the SA. Present only when the length field above is non-zero.
Initialization Vector Length8 BITSSignals the length in octets of the IV value field that follows.
Initialization Vector ValueMANAGEDSignals the initial Initialization Vector value for the SA. Present only when the IV length field above is non-zero.
Authentication Cipher Suite Length8 BITSSignals the length in octets of the Authentication cipher suite identifier field that follows.
Authentication Cipher Suite IdentifierMANAGEDSignals the identifier of the authentication cipher suite to be used with the SA. Present only when the length field above is non-zero.
Authentication Bit Mask Length8 BITSSignals the length in octets of the Authentication bit mask value field that follows.
Authentication Bit Mask ValueMANAGEDSignals the bit mask that selects which bits of the frame are covered by authentication. Present only when the length field above is non-zero.
ARSN Length8 BITSSignals the length in octets of the ARSN value field that follows.
ARSN ValueMANAGEDSignals the initial Anti-Replay Sequence Number value for the SA. Present only when the ARSN length field above is non-zero.
ARSN Window Length8 BITSSignals the length in octets of the Anti-Replay Sequence Number Window value field that follows.
ARSN Window ValueMANAGEDSignals the Anti-Replay Sequence Number window — the tolerance within which out-of-order sequence numbers are accepted. Present only when the length field above is non-zero.

Delete SA

Procedure Identification ‘0100’ · § 5.5.1.7 · Open in the viewer

The Delete SA directive removes a Security Association entirely, returning it to the null (‘No SA’) state and erasing all its managed parameters. The SA must be in the ‘Unkeyed’ state. Its PDU Data Field consists of a single mandatory field — the 16-bit SPI of the SA to be deleted.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the SPI of the Security Association to be deleted.

Set ARSN

Procedure Identification ‘1010’ · § 5.5.1.8 · Open in the viewer

The Set Anti-Replay Sequence Number directive sets a new ARSN value for a particular Security Association. Its PDU Data Field carries the 16-bit SPI of the applicable SA, followed by the new ARSN value of managed length.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the SPI of the Security Association whose Anti-Replay Sequence Number is to be modified.
New Anti-Replay Sequence NumberMANAGEDSignals the new Anti-Replay Sequence Number value to be set for the Security Association.

Set ARSN Window

Procedure Identification ‘0101’ · § 5.5.1.9 · Open in the viewer

The Set Anti-Replay Sequence Number Window directive sets a new ARSN window — the tolerance within which out-of-order sequence numbers are accepted — for a particular Security Association. Its PDU Data Field carries the 16-bit SPI of the applicable SA, followed by the new ARSN window value of managed length.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the SPI of the Security Association whose Anti-Replay Sequence Number window is to be modified.
New Anti-Replay Sequence Number WindowMANAGEDSignals the new Anti-Replay Sequence Number window value — the tolerance within which out-of-order sequence numbers are accepted — to be set for the Security Association.

SA Status Request

Procedure Identification ‘1111’ · § 5.5.1.10 · Open in the viewer

The SA Status Request directive queries the current status of a particular Security Association. Its PDU Data Field consists of a single mandatory field — the 16-bit SPI of the SA to be queried. The Recipient answers with an SA Status Request Reply.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the SPI of the Security Association to be queried.

SA Status Request Reply

Procedure Identification ‘1111’ · § 5.5.1.10 · Open in the viewer

The SA Status Request Reply returns the Recipient’s response to an SA Status Request. Its PDU Data Field carries two contiguous mandatory fields — the 16-bit SPI of the queried SA, and the 8-bit Procedure Identification of the last executed state-transition directive for that SA.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the SPI of the Security Association that was queried.
State Transition Directive8 BITSSignals the Procedure Identification of the last executed state transition directive for the applicable Security Association; or, if no previous state transition for the SA is known, the current state of the SA. Within the Procedure Identification, the previous (exited) state of the SA is the leftmost two bits and the current (entered) state is the rightmost two bits.

Read ARSN Command

Procedure Identification ‘0000’ · § 5.5.1.11 · Open in the viewer

The Read Anti-Replay Sequence Number Command reads the current ARSN value associated with a given Security Association. Its PDU Data Field consists of a single mandatory field — the 16-bit SPI of the SA whose ARSN is to be read. The Recipient answers with a Read ARSN Reply.

FieldLengthMeaning
Security Parameter Index (SPI)16 BITSSignals the SPI of the Security Association whose Anti-Replay Sequence Number is to be read.

Read ARSN Reply

Procedure Identification ‘0000’ · § 5.5.1.11 · Open in the viewer

The Read Anti-Replay Sequence Number Reply returns the Recipient’s response to a Read ARSN Command. Its PDU Data Field consists of a single mandatory field — the current ARSN value of the queried SA, of managed length, carried in full without truncation.

FieldLengthMeaning
Anti-Replay Sequence Number ValueMANAGEDSignals the current Anti-Replay Sequence Number value associated with the queried Security Association. Carried in full, without truncation.

Monitoring & control

Ping Command

Procedure Identification ‘0001’ · § 5.6.1.1 · Open in the viewer

The Ping Command verifies that the SDLS Security Function on the Recipient is present and responsive. It belongs to the Security Monitoring & Control service group and has no PDU Data Field — the PDU Header alone carries the directive. The Recipient answers with a Ping Reply.

Ping Reply

Procedure Identification ‘0001’ · § 5.6.1.1 · Open in the viewer

The Ping Reply is the Recipient’s response to a Ping Command; its receipt confirms the SDLS Security Function is present and responsive. Like the command, it has no PDU Data Field — the PDU Header alone carries the reply.

Log Status Command

Procedure Identification ‘0010’ · § 5.6.1.2 · Open in the viewer

The Log Status Command requests a summary of the on-board Security Log. It belongs to the Security Monitoring & Control service group and has no PDU Data Field — the PDU Header alone carries the directive. The Recipient answers with a Log Status Reply.

Log Status Reply

Procedure Identification ‘0010’ · § 5.6.1.2 · Open in the viewer

The Log Status Reply returns the Recipient’s summary of the Security Log. Its PDU Data Field carries two contiguous mandatory fields of managed length — the number of events currently held in the Security Log and the remaining space still available in it.

FieldLengthMeaning
Number of Events in the Security LogMANAGEDSignals the number of Security Event Messages currently held in the on-board Security Log.
Remaining Space in the Security LogMANAGEDSignals the space still available in the on-board Security Log for further Security Event Messages.

Dump Log Command

Procedure Identification ‘0011’ · § 5.6.1.3 · Open in the viewer

The Dump Log Command requests that the Recipient send the entire content of the on-board Security Log to the ground. It does not erase the log. It belongs to the Security Monitoring & Control service group and has no PDU Data Field — the PDU Header alone carries the directive. The Recipient answers with a Dump Log Reply.

Dump Log Reply

Procedure Identification ‘0011’ · § 5.6.1.3 · Open in the viewer

The Dump Log Reply returns the full content of the on-board Security Log. Its PDU Data Field is a variable number of contiguous Security Event Messages in TLV (Tag–Length–Value) format — an Event Message Tag, an Event Message Length, then the variable-length Event Message itself — repeated one to N times, one triple per logged event. The Tag and Length field sizes are Managed Parameters.

FieldLengthMeaning
Event Message TagMANAGEDThe Tag (T) of a TLV-formatted Security Event Message — identifies the type of the logged event. First field of each triple; its length is a managed parameter.
Event Message LengthMANAGEDThe Length (L) of a TLV-formatted Security Event Message — signals the size in octets of the Event Message value that follows. Its length is a managed parameter.
Event MessageVARIABLE (managed by L)The Value (V) of a TLV-formatted Security Event Message — the variable-length body of a single logged security event. Its length is given by the preceding Event Message Length field.

Erase Log Command

Procedure Identification ‘0100’ · § 5.6.1.4 · Open in the viewer

The Erase Log Command requests that the Recipient erase the entire content of the on-board Security Log. It belongs to the Security Monitoring & Control service group and has no PDU Data Field — the PDU Header alone carries the directive. The Recipient answers with an Erase Log Reply giving the log status after erasure.

Erase Log Reply

Procedure Identification ‘0100’ · § 5.6.1.4 · Open in the viewer

The Erase Log Reply returns the status of the Security Log after erasure. Its PDU Data Field carries two contiguous mandatory fields of managed length — the number of events still in the log after erasure, and the remaining space now available.

FieldLengthMeaning
Number of Events After ErasureMANAGEDSignals the number of Security Event Messages remaining in the on-board Security Log after erasure of the log.
Remaining Space After ErasureMANAGEDSignals the space still available in the on-board Security Log for further Security Event Messages after erasure of the log.

Self-Test Command

Procedure Identification ‘0101’ · § 5.6.1.5 · Open in the viewer

The Self-Test Command requests that the Recipient run a self-test of its SDLS Security Function. It belongs to the Security Monitoring & Control service group and has no PDU Data Field — the PDU Header alone carries the directive. The Recipient answers with a Self-Test Reply carrying the result.

Self-Test Reply

Procedure Identification ‘0101’ · § 5.6.1.5 · Open in the viewer

The Self-Test Reply returns the outcome of the Recipient’s self-test. Its PDU Data Field is a single mandatory 8-bit Self-Test Result field: the most significant bit signals the outcome — 0 = Self-Test OK, 1 = Self-Test not OK — while the remaining seven bits are left to the implementer.

FieldLengthMeaning
Self-Test Result8 BITSSignals the outcome of the Recipient self-test. The most significant bit carries the result; the low seven bits (‘X’) are not used by CCSDS and their values are left to the implementer.

Alarm Flag Reset Command

Procedure Identification ‘0111’ · § 5.6.1.6 · Open in the viewer

The Alarm Flag Reset Command requests that the Recipient clear the security alarm flag raised by its SDLS Security Function. The Alarm Flag Reset Procedure supports a single PDU data field structure — the command only — and it has no PDU Data Field, so the PDU Header alone carries the directive.

Rules