TCG Storage Opal SSC v2p02 r0p22 - 5sept2021
TCG Storage Opal SSC v2p02 r0p22 - 5sept2021
TCG Storage Opal SSC v2p02 r0p22 - 5sept2021
P
E TCG Storage Security
Subsystem Class: Opal
C
I Version 2.02
Revision 0.22
F June 29, 2021
I Contact: [email protected]
C DRAFT
A
T WORK IN PROGRESS
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT © TCG 2020
TCG Storage Security Subsystem Class: Opal
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 1 © TCG 2021
TCG Storage Security Subsystem Class: Opal
CHANGE HISTORY
REVISION DATE DESCRIPTION
03 April 28, 2020 • Add new table of tables and modified table of content
• Add new discovery bit for Hardware Reset for LockOnReset and DoneOnReset
05 July 29, 2020 Supported
• Aligned with Ruby SSC on Geometry Descriptor section
• Add the Block SID Authentication Feature Set in the “Mandatory Feature Sets”
15 April 2, 2021 section
• Moving Manufactured-Inactive state to be Mandatory for the Locking SP
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 2 © TCG 2021
TCG Storage Security Subsystem Class: Opal
CONTENTS
DISCLAIMERS, NOTICES, AND LICENSE TERMS ................................................................................................... 1
CHANGE HISTORY .................................................................................................................................................... 2
TABLES....................................................................................................................................................................... 6
1 Introduction .......................................................................................................................................................... 7
1.1 Document Purpose ...................................................................................................................................... 7
1.2 Scope and Intended Audience ..................................................................................................................... 7
1.3 Key Words ................................................................................................................................................... 7
1.3.1 Fonts Names of methods and SP tables are in Courier New font (e.g., the Set method, the Locking
table). This convention does not apply to method and table names appearing in headings or captions. ..... 7
1.4 Statement Type ............................................................................................................................................ 7
1.5 Document References ................................................................................................................................. 8
1.6 Document Precedence ................................................................................................................................. 8
1.7 Opal SSC Terminology ................................................................................................................................ 8
1.8 Legend ......................................................................................................................................................... 9
2 Opal SSC Overview ........................................................................................................................................... 10
2.1 Opal SSC Use Cases and Threats............................................................................................................. 10
2.2 Security Providers (SPs) ............................................................................................................................ 10
2.3 Interface Communication Protocol ............................................................................................................. 10
2.4 Cryptographic Features .............................................................................................................................. 10
2.5 Authentication ............................................................................................................................................ 10
2.6 Table Management .................................................................................................................................... 11
2.7 Access Control & Personalization .............................................................................................................. 11
2.8 Issuance ..................................................................................................................................................... 11
2.9 SSC Discovery ........................................................................................................................................... 11
2.10 Mandatory Feature Sets ....................................................................................................... 11
3 Opal SSC Features ............................................................................................................................................ 12
3.1 Security Protocol 1 Support ....................................................................................................................... 12
3.1.1 Level 0 Discovery (M) ....................................................................................................................... 12
3.2 Security Protocol 2 Support ....................................................................................................................... 23
3.2.1 ComID Management ......................................................................................................................... 23
3.2.2 Stack Protocol Reset (M) .................................................................................................................. 23
3.2.3 TPER_RESET command (M) ........................................................................................................... 23
3.3 Communications ........................................................................................................................................ 24
3.3.1 Communication Properties ................................................................................................................ 24
3.3.2 Supported Security Protocols............................................................................................................ 24
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 3 © TCG 2021
TCG Storage Security Subsystem Class: Opal
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 4 © TCG 2021
TCG Storage Security Subsystem Class: Opal
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 5 © TCG 2021
TCG Storage Security Subsystem Class: Opal
TABLES
Table 1 Opal SSC Terminology .............................................................................................................................................. 8
Table 2 SP Tables Legend...................................................................................................................................................... 9
Table 3 Level 0 Discovery Header ........................................................................................................................................ 12
Table 4 Level 0 Discovery - TPer Feature Descriptor ........................................................................................................... 13
Table 5 Level 0 Discovery - Locking Feature Descriptor ...................................................................................................... 14
Table 6 Level 0 Discovery - Geometry Reporting Feature Descriptor .................................................................................. 15
Table 7 Level 0 Discovery - Opal SSC V2 Feature Descriptor ............................................................................................. 17
Table 8 - SSC Minor Versions............................................................................................................................................... 18
Table 9 Level 0 Discovery – Supported Data Removal Mechanism Feature Descriptor...................................................... 19
Table 10 Parameter explanation ........................................................................................................................................... 20
Table 11 Supported Data Removal Mechanism ................................................................................................................... 22
Table 12 Data Removal Time (Data Removal Time Format bit= 0) ..................................................................................... 23
Table 13 Data Removal Time (Data Removal Time Format bit= 1) ..................................................................................... 23
Table 14 TPER_RESET Command ...................................................................................................................................... 24
Table 15 ComID Assignments .............................................................................................................................................. 25
Table 16 Supported Tokens .................................................................................................................................................. 25
Table 17 reset_types ............................................................................................................................................................. 27
Table 18 Properties Requirements ....................................................................................................................................... 28
Table 19 Admin SP - SPInfo Table Preconfiguration ............................................................................................................ 30
Table 20 Admin SP - SPTemplates Table Preconfiguration ................................................................................................. 30
Table 21 Admin SP - Table Table Preconfiguration.............................................................................................................. 30
Table 22 Admin SP - MethodID Table Preconfiguration ....................................................................................................... 32
Table 23 Admin SP - AccessControl Table Preconfiguration ............................................................................................... 33
Table 24 Admin SP - ACE Table Preconfiguration ............................................................................................................... 40
Table 25 Admin SP - Authority Table Preconfiguration ........................................................................................................ 41
Table 26 Admin SP - C_PIN Table Preconfiguration ............................................................................................................ 41
Table 27 Admin SP – TPerInfo Columns .............................................................................................................................. 42
Table 28 Admin SP - TPerInfo Table Preconfiguration ......................................................................................................... 43
Table 29 Admin SP - Template Table Preconfiguration ....................................................................................................... 43
Table 30 Admin SP - SP Table Preconfiguration .................................................................................................................. 43
Table 31 data_removal_mechanism Type Table Addition .................................................................................................... 44
Table 32 data_removal_mechanism Enumeration Values ................................................................................................... 44
Table 33 DataRemovalMechansim Table Description .......................................................................................................... 44
Table 34 Admin SP – DataRemovalMechansim Table Preconfiguration ............................................................................. 45
Table 35 Locking SP - SPInfo Table Preconfiguration ......................................................................................................... 45
Table 36 Locking SP - SPTemplates Table Preconfiguration............................................................................................... 46
Table 37 Locking SP - Table Table Preconfiguration ........................................................................................................... 46
Table 38 Locking SP - MethodID Table Preconfiguration ..................................................................................................... 47
Table 39 Locking SP - AccessControl Table Preconfiguration ............................................................................................. 49
Table 40 Locking SP - ACE Table Preconfiguration ............................................................................................................. 71
Table 41 Locking SP - Authority Table Preconfiguration ...................................................................................................... 75
Table 42 Locking SP - C_PIN Table Preconfiguration .......................................................................................................... 76
Table 43 Locking SP - SecretProtect Table Preconfiguration .............................................................................................. 77
Table 44 Locking SP – LockingInfo Columns ....................................................................................................................... 78
Table 45 Locking SP - LockingInfo Table Preconfiguration .................................................................................................. 78
Table 46 Locking SP - Locking Table Preconfiguration ........................................................................................................ 79
Table 47 Locking SP - MBRControl Table Preconfiguration................................................................................................. 81
Table 48 Locking SP - K_AES_128 Table Preconfiguration................................................................................................. 81
Table 49 Locking SP - K_AES_256 Table Preconfiguration................................................................................................. 82
Table 50 LifeCycle Type Table Modification ......................................................................................................................... 89
Table 51 Table Table Additional Columns ............................................................................................................................ 90
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 6 © TCG 2021
TCG Storage Security Subsystem Class: Opal
1 Introduction
1.1 Document Purpose
Storage Workgroup specifications provide a comprehensive architecture for putting Storage Devices under policy
control as determined by the trusted platform host, the capabilities of the Storage Device to conform to the policies of
the trusted platform, and the lifecycle state of the Storage Device as a Trusted Peripheral.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 7 © TCG 2021
TCG Storage Security Subsystem Class: Opal
SD Storage Device
SP Security Provider
TPer Trusted Peripheral
A Manufactured SP is an SP that was created and preconfigured
Manufactured SP
during the SD manufacturing process
N/A Not Applicable.
The original state of an SP when it was created in manufacturing,
including its table data, access control settings, and life cycle
Original Factory State
(OFS) state. Each Manufactured SP has its own Original Factory State.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 8 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Term Definition
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 9 © TCG 2021
TCG Storage Security Subsystem Class: Opal
The combination of the host's communication properties and the TPer's communication properties (see section
4.1.1.1).
2.5 Authentication
An Opal SSC compliant SD SHALL support password authorities and authentication.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 10 © TCG 2021
TCG Storage Security Subsystem Class: Opal
2.8 Issuance
The Locking SP MAY be present in the SD when the SD leaves the manufacturer. The issuance of SPs is outside
the scope of this specification.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 11 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Additionally, an Opal SSC compliant SD MAY return the following Level 0 response:
• Geometry Reporting Feature (see Table 6)
• Supported Data Removal Mechanism Feature Descriptor (see Table 9)
Bit 7 6 5 4 3 2 1 0
Byte
0 (MSB)
1
Length of Parameter Data
2
3 (LSB)
4 (MSB)
5
Data structure revision
6
7 (LSB)
8 (MSB)
… Reserved
15 (LSB)
16 (MSB)
… Vendor Specific
47 (LSB)
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 12 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Bit 7 6 5 4 3 2 1 0
Byte
0 (MSB)
Feature Code (0x0001)
1 (LSB)
2 Version Reserved
3 Length
5 - 15 Reserved
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 13 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Bit 7 6 5 4 3 2 1 0
Byte
0 (MSB)
Feature Code (0x0002)
1 (LSB)
2 Version Reserved
3 Length
5 - 15 Reserved
3.1.1.4.1 Overview
This information indicates support for logical block and physical block geometry. This feature MAY be returned in the
Level 0 Discovery response. See [2] for additional information.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 14 © TCG 2021
TCG Storage Security Subsystem Class: Opal
0 (MSB)
Feature Code (0x0003)
1 (LSB)
2 Version Reserved
3 Length
4 Reserved ALIGN
8 Reserved
10
11
12 (MSB)
13
LogicalBlockSize
14
15 (LSB)
16 (MSB)
17
18
19 AlignmentGranularity
20
21
22
23 (LSB)
24 (MSB)
25 LowestAlignedLBA
26
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 15 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Bit
7 6 5 4 3 2 1 0
Byte
27
28
29
30
31 (LSB)
3.1.1.4.2 ALIGN
If the value of the AlignmentRequired column of the LockingInfo table is TRUE, then the ALIGN bit shall be set to
one. If the value of the AlignmentRequired column of the LockingInfo table is FALSE, then the ALIGN bit shall be
cleared to zero.
3.1.1.4.3 LogicalBlockSize
LogicalBlockSize SHALL be set to the value of the LogicalBlockSize column in the LockingInfo table.
3.1.1.4.4 AlignmentGranularity
AlignmentGranularity SHALL be set to the value of the AlignmentGranularity column in the LockingInfo table.
3.1.1.4.5 LowestAlignedLBA
LowestAlignedLBA SHALL be set to the value of the LowestAlignedLBA column in the LockingInfo table.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 16 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Bit
7 6 5 4 3 2 1 0
Byte
0 (MSB)
Feature Code (0x0203)
1 (LSB)
3 Length
4 (MSB)
Base ComID
5 (LSB)
6 (MSB)
Number of ComIDs
7 (LSB)
Range
8 Reserved for future common SSC parameters Crossing
Behavior
9 (MSB)
Number of Locking SP Admin Authorities Supported
10 (LSB)
11 (MSB)
Number of Locking SP User Authorities Supported
12 (LSB)
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 17 © TCG 2021
TCG Storage Security Subsystem Class: Opal
o 0x00 = The initial C_PIN_SID PIN value is equal to the C_PIN_MSID PIN value
o 0xFF = The initial C_PIN_SID PIN value is VU, and MAY not be equal to the C_PIN_MSID PIN value
o 0x01 – 0xFE = Reserved
• Behavior of C_PIN_SID PIN upon TPer Revert = VU
o 0x00 = The C_PIN_SID PIN value becomes the value of the C_PIN_MSID PIN column after successful
invocation of Revert on the Admin SP’s object in the SP table
o 0xFF = The C_PIN_SID PIN value changes to a VU value after successful invocation of Revert on the
Admin SP’s object in the SP table, and MAY not be equal to the C_PIN_MSID PIN value
o 0x01 – 0xFE = Reserved
If an Opal v2.00 SSC implementation is backward compatible with Opal v1.00, then the SD SHALL also report the
Opal SSC Feature Descriptor as defined in [5].
Start of Informative Comment
An Opal v2.00 implementation is backward compatible to Opal v1.00 only if the geometry reported by the Geometry
Reporting Feature does not specify any alignment restrictions (i.e. ALIGN = FALSE, see section Error! Reference
source not found.) , and if the TPer does not specify any granularity restrictions for byte tables (i.e.
MandatoryWriteGranularity = 1 for all byte tables, see section 5.3.1.1), and if the “Initial C_PIN_SID PIN Indicator”
and “Behavior of C_PIN_SID PIN upon TPer Revert” fields are both 0x00.
End of Informative Comment
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 18 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Bit
7 6 5 4 3 2 1 0
Byte
0 (MSB)
Feature Code (0x0404)
1 (LSB)
2 Version Reserved
3 Length
4 Reserved
Data Data
Removal Removal
5 Reserved
Operation Operation
Interrupted Processing
6 Supported Data Removal Mechanism
10-11 Data Removal Time for Supported Data Removal Mechanism Bit 1
12-13 Data Removal Time for Supported Data Removal Mechanism Bit 2
14-17 Reserved
18-19 Data Removal Time for Supported Data Removal Mechanism Bit 5
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 19 © TCG 2021
TCG Storage Security Subsystem Class: Opal
• Revert,
• RevertSP, or
• GenKey.
Otherwise, the Data Removal Operation Processing bit SHALL be set to zero. If the operation is in progress, the
security transport commands such as the security send, and the security receive SHALL be processed by the SD.
The Data Removal Operation Processing bit SHALL be set to zero upon a successful completion of a data removal
operation.
The Data Removal Operation Processing bit SHALL be set to one if the data removal operation is restarted after a
Power Cycle (see Table 17).
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 20 © TCG 2021
TCG Storage Security Subsystem Class: Opal
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 21 © TCG 2021
TCG Storage Security Subsystem Class: Opal
2 The Cryptographic Erase bit may be used by the Revert or the RevertSP or the GenKey
operations (band erase). Any subsequent operation(s) such as Deallocate, or Unmap, or
Trim, that is part of the implementation of the data removal operation SHALL be accounted
for in the time reported for this operation (see section 3.1.1.6.4). The time value reported
SHALL correspond to the estimated completion time of the Cryptographic Erase. For the
erase (GenKey) operation, the reported estimated time value will correspond to the
estimated completion time of the erase operation, regardless of the extent of the range
being erased.
3 If a SD supports more than one vendor proprietary method of data removal, then the
associated estimated time value will represent the completion time for the longest vendor
specific erase mechanism of data removal, then the associated estimated time value will
represent the completion time for the longest of the vendor specific mechanisms.
3.1.1.6.4 Data Removal Time Format and Data Removal Time Definition
Each Data Removal Time field provides the worst case estimate of the time required to perform the erasure
corresponding to each Data Removal Mechanism defined in the Supported Data Removal Mechanism field. The
Data Removal Time Format bit identifies the format used to express the time as follows:
a) if the Data Removal Time Format bit is set to zero, then the estimated time is defined in Table 12; and
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 22 © TCG 2021
TCG Storage Security Subsystem Class: Opal
b) if the Data Removal Time Format bit is set to one, then the estimated time is defined in Table 13.
The Data Removal Time Format bit and Data Removal Time Format field are defined in Table 12 and Table 13.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 23 © TCG 2021
TCG Storage Security Subsystem Class: Opal
g) The TPer’s knowledge of the host’s communications capabilities, on all ComIDs, SHALL be reset to the
initial minimum assumptions defined in [2] or the TPer’s SSC definition;
h) the values of the ReadLocked and WriteLocked columns SHALL be set to True for all Locking SP’s Locking
objects that contain the Programmatic enumeration value in the LockedOnReset column;
i) the value of the Done column of the Locking SP’s MBRControl table SHALL be set to False, if the
DoneOnReset column contains the Programmatic enumeration value.
The TPER_RESET command is delivered by the transport IF-SEND command. If the TPER_RESET command is
enabled, the TPer SHALL accept and acknowledge it at the interface level. If the TPER_RESET command is disabled,
the TPer SHALL abort it at the interface level with the “Other Invalid Command Parameter” status (see [4]). There is
no IF-RECV response to the TPER_RESET command.
The TPER_RESET command is defined in Table 14.
The Transfer Length SHALL be non-zero. All data transferred SHALL be ignored.
3.3 Communications
3.3.1 Communication Properties
The TPer SHALL support the minimum communication buffer size as defined in section 4.1.1.1. For each ComID, the
physical buffer size SHALL be reported to the host via the Properties method.
The TPer SHALL terminate any IF-SEND command whose transfer length is greater than the reported
MaxComPacketSize size for the corresponding ComID. For details, refer to “Invalid Transfer Length parameter on IF-
SEND” in [4].
Data generated in response to methods contained within an IF-SEND command payload subpacket (including the
required ComPacket / Packet / Subpacket overhead data) SHALL fit entirely within the response buffer. If the
method response and its associated protocol overhead do not fit completely within the response buffer, the TPer
1) SHALL terminate processing of the IF-SEND command payload,
2) SHALL NOT return any part of the method response if the Sync Protocol is being used, and
3) SHALL return an empty response list with a TCG status code of RESPONSE_OVERFLOW in that method’s
response status list.
3.3.3 ComIDs
For the purpose of communication using Security Protocol 0x01, the TPer SHALL:
• support at least one statically allocated ComID for Synchronous Protocol communication.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 24 © TCG 2021
TCG Storage Security Subsystem Class: Opal
• have the ComID Extension values = 0x0000 for all statically allocated ComIDs.
• keep all statically allocated ComIDs in the Active state.
When the TPer receives an IF-SEND or IF-RECV with an inactive or unsupported ComID, the TPer SHALL either:
• terminate the command as defined in [4] with “Other Invalid Command Parameter”, or
• follow the requirements defined in [2] for “IF-SEND to Inactive or Unsupported Reserved ComID” or “IF-RECV
to Inactive or Unsupported Reserved ComID”.
ComIDs SHALL be assigned based on the allocation presented in Table 15.
Table 15 ComID Assignments
ComID Description
0x0000 Reserved
0x0001 Level 0 Device Discovery
0x0002-0x0003 Reserved for TCG
0x0004 TPER_RESET command
0x0005-0x07FF Reserved for TCG
0x0800-0x0FFF Vendor Unique
0x1000-0xFFFF ComID management (Protocol ID=0x01 and 0x02)
Start List SL
End List EL
Start Name SN
End Name EN
Call CALL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 25 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Start transaction ST
End of transaction ET
Empty atom MT
The TPer SHALL support the above token atoms with the B bit set to zero or one and the S bit set to zero.
• If the error is on Session Manager or is such that the TPer cannot resolve a valid session ID from the payload
(i.e. errors in the ComPacket header or Packet header), then the TPer SHALL discard the payload and
immediately transition to the “Awaiting IF-SEND” state.
• If the error occurs after the TPer has resolved the session ID, then the TPer SHALL abort the session and MAY
prepare a CloseSession method for retrieval by the host.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 26 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Table 17 reset_types
Enumeration value Associated Value
0 Power Cycle
1 Hardware
2 HotPlug
3 Programmatic
4-15 Reserved
16-31 Vendor Unique
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 27 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Maximum allowed: VU
Maximum allowed: VU
Maximum allowed: VU
Maximum allowed: VU
1 minimum
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 28 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Initial Assumption: 1
Minimum allowed: 1
Maximum allowed: VU
Maximum allowed: VU
1 minimum
2 minimum
1 minimum
VU
For an Opal-compliant SD, a value of “True” for the Write parameter SHALL be supported.
For an Opal-compliant SD, a value of “False” (i.e. read only session) for the Write parameter may or may not be
supported.
4.2 Admin SP
The Admin SP includes the Base Template and the Admin Template.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 29 © TCG 2021
TCG Storage Security Subsystem Class: Opal
SPSessionTimeout
SizeInUse
Enabled
Name
SPID
Size
UID
00 00 00 02 00 00 02 05
“Admin” T
00 00 00 01 00 00 00 01
00 00 00 03 00 00 00 02
00 00 02 04 00 00 00 01 “Base”
00 00 00 01 *ST1
00 00 00 03 00 00 00 02
00 00 02 04 00 00 00 02 “Admin”
00 00 00 02 *ST1
NumColumns
TemplateID
Granularity
Granularity
RowBytes
RowsFree
MaxSize
Column
MinSize
LastID
Name
Rows
Kind
UID
00 00 00
01 00 00 “Table” Object 0 0
00 01
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 30 © TCG 2021
TCG Storage Security Subsystem Class: Opal
RecommendedAcces
MandatoryWrite
CommonName
NumColumns
TemplateID
Granularity
Granularity
RowBytes
RowsFree
MaxSize
Column
MinSize
LastID
Name
Rows
Kind
UID
s
00 00 00
01 00 00 “SPInfo” Object 0 0
00 02
00 00 00
01 00 00 “SPTemplates” Object 0 0
00 03
00 00 00
01 00 00 "MethodID" Object 0 0
00 06
00 00 00
01 00 00 "AccessControl" Object 0 0
00 07
00 00 00
01 00 00 "ACE" Object 0 0
00 08
00 00 00
01 00 00 "Authority" Object 0 0
00 09
00 00 00
01 00 00 "C_PIN" Object 0 0
00 0B
00 00 00
01 00 00 "TPerInfo" Object 0 0
02 01
00 00 00
01 00 00 "Template" Object 0 0
02 04
00 00 00
01 00 00 "SP" Object 0 0
02 05
00 00 00
“DataRemovalMech
01 00 00 Object 0 0
anism”
11 01
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 31 © TCG 2021
TCG Storage Security Subsystem Class: Opal
[2] states, “The Table table in the Admin SP includes a row for each table that the TPer supports, in addition to a row
for each table that exists in the Admin SP.” However, the Opal SSC requires only the tables from the Admin SP to be
included in the Admin SP’s Table table, as indicated in Table 21.
End of Informative Comment
4.2.1.4 MethodID (M)
The MethodID Table is defined in [2], and Table 22 defines the Preconfiguration Data for the MethodID Table.
*MT1: refer to section 5.1.2 for details on the requirements for supporting Revert.
*MT2: refer to section 5.1.1 for details on the requirements for supporting Activate.
.
Table 22 Admin SP - MethodID Table Preconfiguration
UID Name CommonName TemplateID
00 00 00 06
"Next"
00 00 00 08
00 00 00 06
"GetACL"
00 00 00 0D
00 00 00 06
"Get"
00 00 00 16
00 00 00 06
"Set"
00 00 00 17
00 00 00 06
"Authenticate"
00 00 00 1C
00 00 00 06
00 00 02 02 "Revert"
*MT1
00 00 00 06
00 00 02 03 "Activate"
*MT2
00 00 00 06
“Random”
00 00 06 01
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 32 © TCG 2021
TCG Storage Security Subsystem Class: Opal
*AC5: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the Authority object UIDs
*AC6: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the Template object UIDs
*AC7: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the SP object UIDs
Start of Informative Comment
*AC8: refer to section 5.1.2 for details on the requirements for supporting Revert
*AC9: refer to section 5.1.1 for details on the requirements for supporting Activate
End of Informative Comment
The InvokingID, MethodID and GetACLACL columns are a special case. Although they are marked as Read-Only
with fixed access control, the access control for invocation of the Get method is (N).
DeleteMethodACL
Table association
DeleteMethodLog
RemoveACEACL
RemoveACELog
InvokingID Name
- informative text
CommonName
AddACEACL
AddACELog
GetACLACL
GetACLLog
InvokingID
MethodID
LogTo
ACL
Log
UID
Table
ACE_Anybody ACE_Anybody
ACE_Anybody ACE_Anybody
00 00 00 01
00 00 00 00
Table
Next
TT TT TT TT
00 00 00 01
TableObj
*AC1
Get
SPInfo
ACE_Anybody
ACE_Anybody
00 00 00 02
00 00 00 01
SPInfoObj
Get
SPTemplates
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 33 © TCG 2021
ACE
Table association
Authority
MethodID
- Informative text
UID
00 00 00 08 00 00 00 06 00 00 00 03
00 00 00 09 00 00 00 08 00 00 00 06 00 00 00 03
TT TT TT TT TT TT TT TT TT TT TT TT InvokingID
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*AC4 *AC3 *AC2
TCG Storage Security Subsystem Class: Opal
- informative text
Next Get Next Get Next Get Next MethodID
CommonName
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 34
RemoveACELog
GetACLLog
DeleteMethodLog
© TCG 2021
LogTo
Table association
- Informative text
UID
00 00 00 09 00 00 00 09
00 00 00 09 00 00 00 09
00 00 02 00 TT TT TT TT InvokingID
00 00 02 01 00 00 00 03
(+XX)
*AC5
TCG Storage Security Subsystem Class: Opal
CommonName
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 35
RemoveACELog
GetACLLog
DeleteMethodLog
© TCG 2021
LogTo
Table association
C_PIN
- Informative text
UID
00 00 00 0B 00 00 00 0B 00 00 00 0B 00 00 00 0B 00 00 00 0B
00 00 02 01 00 00 84 02 00 00 00 01 00 00 00 01 00 00 00 00 InvokingID
TCG Storage Security Subsystem Class: Opal
- informative text
Get Get Set Get Next MethodID
CommonName
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 36
RemoveACELog
GetACLLog
DeleteMethodLog
© TCG 2021
LogTo
Table association
TPerInfo
- Informative text
UID
00 00 02 01 00 00 00 0B 00 00 00 0B
00 00 00 0B
00 00 02 00 00 00 02 00 InvokingID
00 03 00 01 00 00 02 01
(+XX) (+XX)
TCG Storage Security Subsystem Class: Opal
- informative text
Get Set Set Get MethodID
CommonName
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 37
RemoveACELog
GetACLLog
DeleteMethodLog
© TCG 2021
LogTo
SP
Table association
Template
- Informative text
UID
00 00 02 04 00 00 02 01
00 00 02 05 00 00 00 00 00 00 00 00 00 00 02 04
TT TT TT InvokingID
00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 03 00 01
TT
*AC6
TCG Storage Security Subsystem Class: Opal
- informative text
Next Random Authenticate Get Next Set MethodID
CommonName
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 38
RemoveACELog
GetACLLog
DeleteMethodLog
© TCG 2021
LogTo
Table association
*AC9
*AC8
- Informative text
echanism
DataRemovalM
00 00 02 05 00 00 02 05 00 00 02 05
00 00 11 01 00 00 11 01
TT TT TT TT TT TT TT TT TT TT TT TT InvokingID
00 00 00 01 00 00 00 01
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
*ACE1 means that row is (M) if the TPer supports either Activate or Revert, and (N) otherwise.
Page 39
RemoveACELog
GetACLLog
DeleteMethodLog
© TCG 2021
LogTo
TCG Storage Security Subsystem Class: Opal
CommonName
- Informative
BooleanExpr
Association
Columns
Name
Table
text
UID
BaseACEs
00 00 00 08
"ACE_Anybody" Anybody All
00 00 00 01
00 00 00 08
"ACE_Admin" Admins All
00 00 00 02
Authority
00 00 00 08
"ACE_Set_Enabled" SID Enabled
00 03 00 01
C_PIN
00 00 00 08
"ACE_C_PIN_SID_Set_PIN" SID PIN
00 00 8C 03
00 00 00 08
"ACE_C_PIN_MSID_Get_PIN" Anybody UID, PIN
00 00 8C 04
00 00 00 08 Admins
"ACE_C_PIN_Admins_Set_PIN" PIN
00 03 A0 01 OR SID
TPerInfo
00 00 00 08 "ACE_TPerInfo_Set_Programmati
SID ProgrammaticResetEnable
00 03 00 03 cResetEnable"
SP
00 00 00 08
*ACE1 "ACE_SP_SID" SID All
00 03 00 02
DataRemovalM
echanism
"ACE_DataRemovalMechanism_S
00 00 00 08 Admins ActiveDataRemoval
*ACE1 et_ActiveDataRemovalMechanism
00 05 00 01 OR SID Mechanism
"
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 40 © TCG 2021
TCG Storage Security Subsystem Class: Opal
PresentCertificat
ResponseExch
CommonName
ResponseSign
HashAndSign
ClockStart
Credential
Operation
ClockEnd
Enabled
IsClass
Secure
LogTo
"Anybody" Name
Class
Limit
Uses
Log
UID
e
00 00 00 09
F T None F
None
None
Null
Null
Null
Null
00 00 00 01
"Admins"
00 00 00 09
T T F
None
None
None
Null
Null
Null
Null
00 00 00 02
"Makers"
00 00 00 09
T T F
None
None
None
Null
Null
Null
Null
00 00 00 03
C_PIN_AdminXX C_PIN_Admin C_PIN_SID
Password
00 00 00 09
F T F
None
None
"SID"
Null
Null
Null
00 00 00 06
Password
"Admin1"
00 00 00 09
Admins
F F F
None
None
Null
Null
00 00 02 01
1
00 00 00 09
"AdminXX"
00 00 02 00
Password
Admins
F F F
None
None
(+XX)1
Null
Null
(O)
00 00 00 0B
"C_PIN_SID" VU Null VU VU FALSE
00 00 00 01
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 41 © TCG 2021
TCG Storage Security Subsystem Class: Opal
00 00 00 0B
"C_PIN_MSID" MSID
00 00 84 02
00 00 00 0B
"C_PIN_Admin1" “” Null 0 0 FALSE
00 00 02 01
00 00 00 0B
00 00 02 00
(+XX) "C_PIN_AdminXX" “” Null 0 0 FALSE
(O)
For SDs that will be used in environments where an automated take ownership process is required, the initial PIN
column value of C_PIN_SID SHALL be set to the PIN column value of C_PIN_MSID. In order to allow for alternative
take ownership processes, the initial PIN column value of C_PIN_SID MAY be Vendor Unique (VU).
Start of Informative Comment
Several activation / take ownership models are possible. The simplest model, which is the only model supported by
Opal v1.00, is a process whereby the host discovers the initial C_PIN_SID PIN value by performing a Get operation
on the C_PIN_MSID object. This model requires that the initial C_PIN_SID PIN be the value of the C_PIN_MSID PIN.
Opal v2.00 allows the initial C_PIN_SID PIN value to be vendor unique in order to allow for alternative activation /
take ownership models. Such models require that the C_PIN_SID PIN be retrieved in a way that is beyond the scope
of this specification.
Before a device vendor chooses to implement an activation / take ownership model based on a vendor unique SID
PIN, the SD vendor must undertake due diligence to ensure that the ecosystem exists to support such an activation /
take ownership model. Having a C_PIN_SID PIN value that is different from the C_PIN_MSID PIN value may have
serious ramifications, such as the inability to take ownership of the SD.
See section 5.1.2.2.1 for an explanation of how Revert affects the value of the C_PIN_SID PIN column.
End of Informative Comment
• ProgrammaticResetEnable
This column indicates whether support for programmatic resets is enabled or not. If
ProgrammaticResetEnable is TRUE, then the TPER_RESET command is enabled. If
ProgrammaticResetEnable is FALSE, then the TPER_RESET command is not enabled.
This column is readable by Anybody and modifiable by the SID authority.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 42 © TCG 2021
TCG Storage Security Subsystem Class: Opal
*TP1 means that the value in the GUDID column SHALL comply with the format defined in [2].
*TP2 means that this version or any version that supports the defined features in this SSC.
*TP3 means that the SSC column is a list of names and SHALL have “Opal” as one of the list elements.
ProgrammaticResetEnable
SpaceForIssuance
Firmware Version
ProtocolVersion
Generation
GUDID
Bytes
SSC
UID
00 00 02 01 VU 1 [“Opal”]
FALSE
00 03 00 01 *TP1 *TP2 *TP3
00 00 02 04 00 00 00 01 "Base" 1 VU VU
00 00 02 04 00 00 00 02 "Admin" 1 1 1
00 00 02 04 00 00 00 06 "Locking" 1 1 1
4.2.3.3 SP (M)
The SP Table is defined in [2], and Table 30 defines the Preconfiguration Data for the SP Table.
*SP1 means that this row only exists in the Admin SP's OFS when the Locking SP is created by the manufacturer.
Table 30 Admin SP - SP Table Preconfiguration
EffectiveAuth
DateOfIssue
LifeCycle
Frozen
Name
Bytes
ORG
UID
00 00 02 05 00 00 00 02 Manufactured-
"Locking" FALSE
*SP1 Inactive
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 43 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Table 32 defines the enumeration values. The mechanisms associated with each Enumeration Value are defined in
Table 11.
4.2.6.1.1 UID
This is the unique identifier of this row in the DataRemovalMechanism table.
This column SHALL NOT be modifiable by the host.
4.2.6.1.2 ActiveDataRemovalMechanism
This column value selects which Data Removal Mechanism in the Supported Data Removal Mechanism field in the
Supported Data Removal Mechanism feature descriptor is active and will be used to remove data upon execution of
the Revert method or the RevertSP method or the GenKey method. If an attempt is made to set the
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 44 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Attempts to use unsupported parameters SHALL result in a method failure response with TCG status
INVALID_PARAMETER. The TPer SHALL support Count parameter values less than or equal to 32.
4.3 Locking SP
4.3.1 Base Template Tables
All tables defined with (M) in section titles are Mandatory.
4.3.1.1 SPInfo (M)
The SPInfo Table is defined in [2], and Table 35 defines the Preconfiguration Data for the SPInfo Table.
Table 35 Locking SP - SPInfo Table Preconfiguration
SPSessionTimeout
SizeInUse
Enabled
Name
SPID
Size
UID
00 00 00 02 00 00 02 05
"Locking" T
00 00 00 01 00 00 00 02
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 45 © TCG 2021
TCG Storage Security Subsystem Class: Opal
*SP1 means that this version number or any number that supports the defined features in this SSC
Table 36 Locking SP - SPTemplates Table Preconfiguration
UID TemplateID Name Version
00 00 00 02
00 00 02 04 00 00 00 01 "Base"
00 00 00 03 00 00 00 01 *SP1
00 00 00 02
00 00 02 04 00 00 00 06 "Locking"
00 00 00 03 00 00 00 02 *SP1
RecommendedAcces
MandatoryWrite
CommonName
NumColumns
TemplateID
Granularity
Granularity
RowBytes
RowsFree
MaxSize
Column
MinSize
LastID
Name
Rows
Kind
UID
s
00 00 00 01
"Table" Object 0 0
00 00 00 01
00 00 00 01
"SPInfo" Object 0 0
00 00 00 02
00 00 00 01
"SPTemplates" Object 0 0
00 00 00 03
00 00 00 01
"MethodID" Object 0 0
00 00 00 06
00 00 00 01
"AccessControl" Object 0 0
00 00 00 07
00 00 00 01
"ACE" Object 0 0
00 00 00 08
00 00 00 01
"Authority" Object 0 0
00 00 00 09
00 00 00 01
"C_PIN" Object 0 0
00 00 00 0B
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 46 © TCG 2021
TCG Storage Security Subsystem Class: Opal
RecommendedAcces
MandatoryWrite
CommonName
NumColumns
TemplateID
Granularity
Granularity
RowBytes
RowsFree
MaxSize
Column
MinSize
LastID
Name
Rows
Kind
UID
s
00 00 00 01
"SecretProtect" Object 0 0
00 00 00 1D
00 00 00 01
"LockingInfo" Object 0 0
00 00 08 01
00 00 00 01
"Locking" Object 0 0
00 00 08 02
00 00 00 01
"MBRControl" Object 0 0
00 00 08 03
00 00 00 01 0x08000000
"MBR" Byte VU VU
00 00 08 04 min
00 00 00 01
00 00 08 05 "K_AES_128” Object 0 0
*TT1
00 00 00 01
00 00 08 06 "K_AES_256" Object 0 0
*TT1
00 00 00 01 0x00A00000
"DataStore" Byte VU VU
00 00 10 01 min
• The "boolean_ACE" type (00000005 0000040E) SHALL include the OR Boolean operator.
• The "AC_element" type (00000005 00000801) SHALL support at least 23 entries (8 User authorities, 4 Admin
authorities, and 11 Boolean operators).
4.3.1.5 MethodID (M)
The MethodID Table is defined in [2], and Table 38 defines the Preconfiguration Data for the MethodID Table.
*MT1 means refer to section 5.1.2.3 for details on the requirements for supporting RevertSP.
Table 38 Locking SP - MethodID Table Preconfiguration
00 00 00 06
"Next"
00 00 00 08
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 47 © TCG 2021
TCG Storage Security Subsystem Class: Opal
00 00 00 06
"GetACL"
00 00 00 0D
00 00 00 06
"GenKey"
00 00 00 10
00 00 00 06
00 00 00 11 "RevertSP"
*MT1
00 00 00 06
"Get"
00 00 00 16
00 00 00 06
"Set"
00 00 00 17
00 00 00 06
"Authenticate"
00 00 00 1C
00 00 00 06
“Random”
00 00 06 01
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 48 © TCG 2021
SP
Table Association
Table
SPInfo
*AC1
- informative only
SPTemplates
UID
00 00 00 03 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
TT TT TT TT InvokingID
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01
*AC2
TCG Storage Security Subsystem Class: Opal
ACE_Anybod
ACE_Anybody ACE_Anybody ACE_Anybody ACE_Admin ACE_Anybody ACE_Anybody ACL
y
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
Table 39 Locking SP - AccessControl Table Preconfiguration
AddACELog
Page 49
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
ACE
Table Association
MethodID
- informative only
UID
00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 06 00 00 00 06 00 00 00 03
TT TT TT TT TT TT TT TT TT TT TT TT InvokingID
00 03 80 00 00 00 00 00 00 00 00 00
*AC5 *AC4
*AC3
TCG Storage Security Subsystem Class: Opal
ACE_ACE_Set_BooleanExpressio
ACE_ACE_Get_All ACE_Anybody ACE_Anybody ACE_Anybody ACE_Anybody ACL
n
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 50
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
UID
00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08
InvokingID
00 04 40 01 00 03 A8 00 (+MMMM) 00 03 A8 01 00 03 90 00
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 51
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
*AC6
*AC6
- informative only
UID
00 00 00 08 00 00 00 08 00 00 00 08
InvokingID
00 03 B0 01 00 03 B0 00 00 04 40 00 (+MMMM)
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 52
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
*AC6
*AC6
*AC6
- informative only
UID
00 00 00 08 00 00 00 08 00 00 00 08
InvokingID
00 03 B8 01 00 03 B8 00 00 03 B0 00 (+NNNN)
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 53
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
*AC6
- informative only
UID
00 00 00 08 00 00 00 08 00 00 00 08
InvokingID
00 03 D0 01 00 03 D0 00 00 03 B8 00 (+NNNN)
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 54
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
UID
00 00 00 08 00 00 00 08 00 00 00 08
InvokingID
00 03 E0 01 00 03 E0 00 00 03 D0 00 (+NNNN)
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 55
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
UID
00 00 00 08 00 00 00 08 00 00 00 08
InvokingID
00 03 E8 01 00 03 E8 00 00 03 E0 00 (+NNNN)
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 56
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
UID
00 00 00 08 00 00 00 08 00 00 00 08
InvokingID
00 03 FC 00 00 03 F8 01 00 03 E8 00 (+NNNN)
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 57
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
Authority
- informative only
UID
00 00 00 09 00 00 00 09 00 00 00 09 00 00 00 08
TT TT TT TT InvokingID
00 01 00 01 00 00 00 00 00 03 FC 01
*AC7
TCG Storage Security Subsystem Class: Opal
ACE_Authority_Get_All,
ACE_Admins_Set_CommonName ACE_Anybody ACE_ACE_Set_BooleanExpression ACL
ACE_Anybody_Get_CommonName
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 58
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
UID
00 00 00 09 00 00 00 09 00 00 00 09 00 00 00 09
InvokingID
00 03 00 00 (+MMMM) 00 03 00 01 00 01 00 00 (+XX XX) 00 01 00 02
TCG Storage Security Subsystem Class: Opal
ACE_Authority_Set_Enabled, ACE_Authority_Set_Enabled,
ACE_Authority_Set_Enabled, ACE_Authority_Set_Enabled,
ACE_UserMMMM_Set_CommonNam ACE_Admins_Set_CommonNam ACL
ACE_User1_Set_CommonName ACE_Admins_Set_CommonName
e e
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 59
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
C_PIN
- informative only
UID
00 00 00 0B 00 00 00 0B 00 00 00 0B 00 00 00 0B
InvokingID
00 03 00 01 00 01 00 00 (+ XX XX) 00 01 00 01 00 00 00 00
TCG Storage Security Subsystem Class: Opal
ACE_C_PIN_Admins_Get_All_NOPI ACE_C_PIN_Admins_Get_All_NOPI
ACE_C_PIN_Admins_Get_All_NOPIN ACE_Anybody ACL
N N
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 60
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
UID
00 00 00 0B 00 00 00 0B 00 00 00 0B 00 00 00 0B
InvokingID
00 03 00 01 00 01 00 00 (+XX XX) 00 01 00 01 00 03 00 00 (+MM MM)
TCG Storage Security Subsystem Class: Opal
ACE_C_PIN_Admins_Set_PI ACE_C_PIN_Admins_Get_All_NOPI
ACE_C_PIN_User1_Set_PIN ACE_C_PIN_Admins_Set_PIN ACL
N N
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 61
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
UID
00 00 00 0B
InvokingID
00 03 00 00 (+MM MM)
TCG Storage Security Subsystem Class: Opal
ACE_C_PIN_UserMMMM_Set_PIN ACL
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
ACE_Anybody GetACLACL
DeleteMethodACL
AddACELog
Page 62
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
Locking
- informative only
LockingInfo
SecretProtect
UID
00 00 08 02 00 00 08 02 00 00 08 01 00 00 00 1D 00 00 00 1D
TT TT TT TT InvokingID
00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00
*AC8
TCG Storage Security Subsystem Class: Opal
ACE_Locking_GlobalRange_Get_
RangeStartToActiveKey, ACE_Anybody ACE_Anybody ACE_Anybody ACE_Anybody ACL
ACE_Anybody_Get_CommonName
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 63
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
UID
00 00 08 02 00 00 08 02 00 00 08 02
InvokingID
00 00 00 01 00 03 00 00 (+NN NN) 00 03 00 01
TCG Storage Security Subsystem Class: Opal
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 64
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
MBRControl
UID
00 00 08 03 00 00 08 02 00 00 08 02
InvokingID
00 00 00 01 00 03 00 00 (+NN NN) 00 03 00 01
TCG Storage Security Subsystem Class: Opal
ACE_Locking_Admins_RangeStartToLOR, ACE_Locking_Admins_RangeStartToLOR,
ACE_Anybody ACE_Locking_RangeNNNN_Set_RdLocked, ACE_Locking_Range1_Set_RdLocked, ACL
ACE_Locking_RangeNNNN_Set_WrLocked, ACE_Locking_Range1_Set_WrLocked,
ACE_Admins_Set_CommonName ACE_Admins_Set_CommonName
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 65
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
MBR
Table Association
- informative only
K_AES_128
UID
00 00 08 05 00 00 08 04 00 00 08 04 00 00 08 03
InvokingID
00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01
TCG Storage Security Subsystem Class: Opal
ACE_MBRControl_Admins_Set,
ACE_K_AES_Mode ACE_Admin ACE_Anybody ACL
ACE_MBRControl_Set_DoneToDOR
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 66
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
UID
00 00 08 05 00 00 08 05 00 00 08 05
InvokingID
00 00 00 01 00 03 00 00 (+NN NN) 00 03 00 01
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 67
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
K_AES_256
UID
00 00 08 06 00 00 08 05 00 00 08 05
InvokingID
00 00 00 01 00 03 00 00 (+NN NN) 00 03 00 01
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 68
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
- informative only
UID
00 00 08 06 00 00 08 06 00 00 08 06
InvokingID
00 00 00 01 00 03 00 00 (+NN NN) 00 03 00 01
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 69
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
Table Association
DataStore
- informative only
UID
00 00 10 01 00 00 08 06 00 00 08 06
InvokingID
00 00 00 00 00 03 00 00 (+NN NN) 00 03 00 01
TCG Storage Security Subsystem Class: Opal
Log
AddACEACL
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT
RemoveACEACL
DeleteMethodACL
AddACELog
Page 70
RemoveACELog
GetACLLog
DeleteMethodLog
LogTo
© TCG 2021
TCG Storage Security Subsystem Class: Opal
DeleteMethodACL
DeleteMethodLog
RemoveACEACL
Table Association
RemoveACELog
InvokingID Name
- informative only
- informative only
CommonName
AddACEACL
AddACELog
GetACLACL
GetACLLog
InvokingID
MethodID
LogTo
UID
ACE_DataStore_Set_All ACL
Log
ACE_Anybody
00 00 10 01
00 00 00 00
DataStore
Set
CommonName
BooleanExpr
Columns
Name
UID
Base ACEs
00 00 00 08
"ACE_Anybody" Anybody All
00 00 00 01
00 00 00 08
"ACE_Admin" Admins All
00 00 00 02
00 00 00 08
"ACE_Anybody_Get_CommonName" Anybody UID, CommonName
00 00 00 03
00 00 00 08
"ACE_Admins_Set_CommonName" Admins CommonName
00 00 00 04
ACE
00 00 00 08
"ACE_ACE_Get_All" Admins All
00 03 80 00
00 00 00 08
"ACE_ACE_Set_BooleanExpression" Admins BooleanExpr
00 03 80 01
Authority
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 71 © TCG 2021
TCG Storage Security Subsystem Class: Opal
-Informative Column
Table Association
CommonName
BooleanExpr
Columns
Name
UID
00 00 00 08
"ACE_Authority_Get_All" Admins All
00 03 90 00
00 00 00 08
"ACE_Authority_Set_Enabled" Admins Enabled
00 03 90 01
00 00 00 08
"ACE_User1_Set_CommonName" Admins CommonName
00 04 40 01
00 00 00 08
00 04 40 00 "ACE_UserMMMM_Set_CommonName" Admins CommonName
(+NN NN)
C_PIN
00 00 00 08
"ACE_C_PIN_Admins_Set_PIN" Admins PIN
00 03 A0 01
00 00 00 08 Admins OR User1
"ACE_C_PIN_User1_Set_PIN" PIN
00 03 A8 01 *ACE1
Admins OR
00 00 00 08
(O) 00 03 A8 00 "ACE_C_PIN_UserMMMM_Set_PIN" UserMMMM PIN
(+MMMM)
*ACE1
K_AES
00 00 00 08
"ACE_K_AES_Mode" Anybody Mode
00 03 BF FF
K_AES_128
00 00 00 08 "ACE_K_AES_128_GlobalRange_
Admins All
00 03 B0 00 GenKey"
00 00 00 08 "ACE_K_AES_128_Range1_
Admins All
00 03 B0 01 GenKey"
00 00 00 08
"ACE_K_AES_128_RangeNNNN_
(O) 00 03 B0 00 Admins All
GenKey"
(+NNNN)
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 72 © TCG 2021
TCG Storage Security Subsystem Class: Opal
-Informative Column
Table Association
CommonName
BooleanExpr
Columns
Name
UID
K_AES_256
00 00 00 08 "ACE_K_AES_256_GlobalRange_
Admins All
00 03 B8 00 GenKey"
00 00 00 08 "ACE_K_AES_256_Range1_
Admins All
00 03 B8 01 GenKey"
00 00 00 08
"ACE_K_AES_256_RangeNNNN_
00 03 B8 00 Admins All
GenKey"
(+NNNN)
Locking
RangeStart,
RangeLength,
ReadLockEnabled,
00 00 00 08 "ACE_Locking_GlobalRange_Get_ WriteLockEnabled,
Admins
00 03 D0 00 RangeStartToActiveKey" ReadLocked,
WriteLocked,
LockOnReset,
ActiveKey
RangeStart,
RangeLength,
ReadLockEnabled,
00 00 00 08 "ACE_Locking_Range1_Get_ WriteLockEnabled,
Admins
00 03 D0 01 RangeStartToActiveKey" ReadLocked,
WriteLocked,
LockOnReset,
ActiveKey
RangeStart,
RangeLength,
ReadLockEnabled,
00 00 00 08
"ACE_Locking_RangeNNNN_Get_ WriteLockEnabled,
00 03 D0 00 Admins
RangeStartToActiveKey" ReadLocked,
(+NNNN)
WriteLocked,
LockOnReset,
ActiveKey
00 00 00 08
"ACE_Locking_GlobalRange_Set_RdLocked" Admins ReadLocked
00 03 E0 00
00 00 00 08
"ACE_Locking_Range1_Set_RdLocked" Admins ReadLocked
00 03 E0 01
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 73 © TCG 2021
TCG Storage Security Subsystem Class: Opal
-Informative Column
Table Association
CommonName
BooleanExpr
Columns
Name
UID
00 00 00 08
00 03 E0 00 "ACE_Locking_RangeNNNN_Set_RdLocked" Admins ReadLocked
(+NNNN)
00 00 00 08
"ACE_Locking_GlobalRange_Set_WrLocked" Admins WriteLocked
00 03 E8 00
00 00 00 08
"ACE_Locking_Range1_Set_WrLocked" Admins WriteLocked
00 03 E8 01
00 00 00 08
00 03 E8 00 "ACE_Locking_RangeNNNN_Set_WrLocked" Admins WriteLocked
(+NNNN)
ReadLockEnabled,
WriteLockEnabled,
00 00 00 08
"ACE_Locking_GlblRng_Admins_Set" Admins ReadLocked,
00 03 F0 00
WriteLocked,
LockOnReset
RangeStart,
RangeLength,
ReadLockEnabled,
00 00 00 08
"ACE_Locking_Admins_RangeStartToLOR" Admins WriteLockEnabled,
00 03 F0 01
ReadLocked,
WriteLocked,
LockOnReset
MBRControl
00 00 00 08 Enable, Done,
"ACE_MBRControl_Admins_Set" Admins
00 03 F8 00 DoneOnReset
00 00 00 08
"ACE_MBRControl_Set_DoneToDOR" Admins Done, DoneOnReset
00 03 F8 01
DataStore
00 00 00 08
"ACE_DataStore_Get_All" Admins All
00 03 FC 00
00 00 00 08
"ACE_DataStore_Set_All" Admins All
00 03 FC 01
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 74 © TCG 2021
TCG Storage Security Subsystem Class: Opal
PresentCertificate
ResponseExch
CommonName
ResponseSign
HashAndSign
ClockStart
Credential
Operation
ClockEnd
Enabled
IsClass
Secure
LogTo
"Anybody" Name
Class
Limit
Uses
Log
UID
00 00 00 09
F T F
None
None
None
Null
Null
Null
Null
00 00 00 01
""
"Admins"
00 00 00 09
T T F
None
None
None
Null
Null
Null
Null
00 00 00 02
""
00 00 00 09
Admins
F T F
None
None
Null
Null
00 01 00 01
""
Password
"Admin2"
00 00 00 09
Admins
F F F
None
None
Null
Null
00 01 00 02
""
Password
"Admin3"
00 00 00 09
Admins
F F F
None
None
Null
Null
00 01 00 03
""
Password
"Admin4"
00 00 00 09
Admins
F F F
None
None
Null
Null
00 01 00 04
""
00 00 00 09
"AdminXXXX"
00 01 00 00
Admins
(+XX XX)1 F F
""
(O)
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 75 © TCG 2021
TCG Storage Security Subsystem Class: Opal
PresentCertificate
ResponseExch
CommonName
ResponseSign
HashAndSign
ClockStart
Credential
Operation
ClockEnd
Enabled
IsClass
Secure
LogTo
Name
Class
Limit
Uses
Log
UID
00 00 00 09
"Users"
T T F
None
None
None
Null
Null
Null
Null
00 03 00 00
""
C_PIN_UserMMMM C_PIN_User1
Password
00 00 00 09
"User1"
Users
F F F
None
None
Null
Null
00 03 00 01
""
00 00 00 09
"UserMMMM"
00 03 00 00 Password
Users
F F F
None
None
(+MM MM)2
Null
Null
""
(O)
00 00 00 0B SID or
"C_PIN_Admin1" Null 0 0 FALSE
00 01 00 01 MSID1
00 00 00 0B
"C_PIN_Admin2" “” Null 0 0 FALSE
00 01 00 02
00 00 00 0B
"C_PIN_Admin3" “” Null 0 0 FALSE
00 01 00 03
00 00 00 0B
"C_PIN_Admin4" “” Null 0 0 FALSE
00 01 00 04
00 00 00 0B
00 01 00 00
(+XX XX) "C_PIN_AdminXXXX" “” Null 0 0 FALSE
(O)
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 76 © TCG 2021
TCG Storage Security Subsystem Class: Opal
00 00 00 0B
"C_PIN_User1" “” Null 0 0 FALSE
00 03 00 01
00 00 00 0B
00 03 00 00
(+MM MM) "C_PIN_UserMMMM" “” Null 0 0 FALSE
(O)
00 00 00 01
00 00 00 1D
00 00 08 05 0x03 VU
00 00 00 1D
(K_AES_128)
00 00 00 01
00 00 00 1D
00 00 08 06 0x03 VU
00 00 00 1E
(K_AES_256)
Note: The “VU” entries in Table 43 indicate that this specification does not require a specific value to be reported in
the ProtectMechanisms cell. It is NOT a requirement to report the “Vendor Unique” protect_types value (Refer to
[2] for details).
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 77 © TCG 2021
TCG Storage Security Subsystem Class: Opal
• AlignmentRequired
This column indicates whether the TPer requires ranges in the Locking table to be aligned (see section
4.3.5.2.1). If AlignmentRequired is TRUE, then the TPer requires ranges to be aligned. If AlignmentRequired
is FALSE, then the TPer does not require ranges to be aligned.
This column SHALL NOT be modifiable by the host and MAY be retrieved by Anybody.
• LogicalBlockSize
This column indicates the number of bytes in a logical block.
This column SHALL NOT be modifiable by the host and MAY be retrieved by Anybody.
• AlignmentGranularity
This column indicates the number of logical blocks in a group, for alignment purposes (see section 5.4).
This column SHALL NOT be modifiable by the host and MAY be retrieved by Anybody.
• LowestAlignedLBA
This column indicates the lowest logical block address that is located at the beginning of an alignment
granularity group (see section 5.4).
This column SHALL NOT be modifiable by the host and MAY be retrieved by Anybody.
LowestAlignedLBA
MaxReEncryptions
KeysAvailableCfg
LogicalBlockSize
EncryptSupport
MaxRanges
Version
Name
y
UID
00 00 08 01
Media Encryption 81
00 00 00 01
Note:
1. The MaxRanges column in Table 45 specifies the number of supported ranges and SHALL have a minimum
of 8 ranges.
4.3.5.2 Locking (M)
Table 46 contains Optional rows designated with (O).
*LT1 means that the ActiveKey can be a K_AES_128 object reference (UID) or a K_AES_256 object reference (UID)
*LT2 means that only a limited set of LockOnReset values is required to be supported by Opal SSC SDs. Refer to
section 4.3.5.2.2 for details.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 78 © TCG 2021
TCG Storage Security Subsystem Class: Opal
LastReEncryptLBA
WriteLockEnabled
ReadLockEnabled
ReEncyptRequest
LastReEncState
ReEncryptState
CommonName
GeneralStatus
LockOnReset
ContOnReset
RangeLength
AdvKeyMode
WriteLocked
ReadLocked
VerifyMode
RangeStart
NextKey
Name
UID
"Locking_GlobalRange"
00 00
Power Cycle
08 02
*LT1
0 0 F F F F
*LT2
00 00
""
00 01
"Locking_Range1"
00 00
Power Cycle
08 02
0 0 F F F F
*LT1
*LT2
00 03
""
00 01
"Locking_RangeNNNN"
00 00
Power Cycle
08 02
00 03 0 0 F F F F
*LT1
*LT2
""
NN
NN
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 79 © TCG 2021
TCG Storage Security Subsystem Class: Opal
When processing a Set method or CreateRow method on the Locking table for a non-Global Range row, if:
When processing a Set method or CreateRow method on the Locking table for a non-Global Range row, if:
where:
LowestAlignedLBA and AlignmentGranularity are columns in the LockingInfo table (see section
4.3.5.1)
Additionally, the TPer MAY support the following LockOnReset column values:
a) { 0, 1 } (i.e. Power Cycle and Hardware Reset); and
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 80 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Power Cycle
00 00 08 03 00 00 00 01 False False *MC1
Additionally, the TPer MAY support the following DoneOnReset column values:
a) { 0, 1 } (i.e. Power Cycle and Hardware Reset); and
b) { 0,1, 3 } (i.e. Power Cycle, Hardware Reset and Programmatic).
Mode
Key
UID
VU
00 00 08 05 00 00 00 01 "K_AES_128_GlobalRange_Key" VU
*K1
VU
00 00 08 05 00 03 00 01 "K_AES_128_Range1_Key" VU
*K1
00 00 08 05 00 03 NN NN "K_AES_128_RangeNNNN_Key" VU VU
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 81 © TCG 2021
TCG Storage Security Subsystem Class: Opal
CommonName
Name
Mode
Key
UID
(O) *K1
CommonName
Name
Mode
Key
UID
VU
00 00 08 0600 00 00 01 "K_AES_256_GlobalRange_Key" VU
*K1
00 00 08 06 VU
"K_AES_256_Range1_Key" VU
00 03 00 01 *K1
00 00 08 06
VU
00 03 NN NN "K_AES_256_RangeNNNN_Key" VU
*K1
(O)
4.3.7 SD Read/Write Data Command Locking Behavior Interactions with Range Crossing
If an SD receives a read or write command that spans multiple Locking ranges and the Locking ranges are not
locked, the SD SHALL either:
• Process the data transfer as defined in [2], if Range Crossing Behavior bit is set to zero (in Level 0 Discovery
Opal SSC V2 Feature, see section 3.1.1.5)
OR
• Terminate the command with “Other Invalid Command Parameter” as defined in [4],
if Range Crossing Behavior bit is set to one (in Level 0 Discovery Opal SSC V2 Feature, see section
3.1.1.5).
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 82 © TCG 2021
TCG Storage Security Subsystem Class: Opal
SPObjectUID.Activate[ ]
=>
[ ]
Activate is an object method that operates on objects in the Admin SP’s SP table. The TPer SHALL NOT permit
Activate to be invoked on the SP objects of issued SPs.
Invocation of Activate on an SP object that is in the “Manufactured-Inactive” state causes the SP to transition to the
“Manufactured” state. Invocation of Activate on an SP in any other life cycle state SHALL complete successfully
provided access control is satisfied, and have no effect. The Activate method allows the TPer owner to “turn on” an
SP that was created in manufacturing.
This method operates within a Read-Write session to the Admin SP. The SP SHALL be activated immediately after
the method returns success if its invocation is not contained within a transaction.
In case of an “Activate Error” (see [4]) Activate SHALL fail with a status of FAIL.
The MethodID for Activate SHALL be 00 00 00 06 00 00 02 03.
5.1.1.1 Activate Support
Support for Activate within transactions is (N), and the behavior of Activate within transactions is out of the scope
of this specification.
If the Locking SP was created in manufacturing, and its Original Factory State is Manufactured-Inactive (see section
5.2.2), support for Activate on the Locking SP’s object in the SP table is Mandatory.
5.1.1.2 Side effects of Activate
Upon successful activation of an SP that was in the “Manufactured-Inactive” state, the following changes SHALL be
made:
• The LifeCycleState column of SP’s object in the Admin SP’s SP table SHALL change to “Manufactured”.
• The current SID PIN (C_PIN_SID) in the Admin SP is copied into the PIN column of Admin1’s C_PIN credential
(C_PIN_Admin1) in the activated SP. This allows for taking ownership of the SP with a known PIN credential.
• Any TPer functionality affected by the life cycle state of the SP based on the SP’s templates is modified as
defined in the appropriate Template reference section of [2], and as defined in the “State transitions for
Manufactured SPs” section (see section 5.2.2.2) and “State behaviors for Manufactured SPs” section (see
section 5.2.2.3) of this specification.
5.1.2 Revert – Admin Template SP Object Method
Revert is an Opal SSC-specific method for managing the life cycle of SPs created in manufacturing (Manufactured
SP). The following pseudo-code is the signature of the Revert Method (see [2] for more information).
SPObjectUID.Revert[ ]
=>
[ ]
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 83 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Revert is an object method that operates on objects in the Admin SP’s SP table. The TPer SHALL NOT permit Revert
to be invoked on the SP objects of issued SPs.
Invoking Revert on an SP object causes the SP to revert to its Original Factory State. This method allows the TPer
owner (or TPer manufacturer, if access control permits and the Maker authorities are enabled) to remove the SP
owner’s ownership of the SP and revert the SP to its Original Factory State.
Invocation of Revert is permitted on Manufactured SPs that are in any life cycle state. Successful invocation of Revert
on a Manufactured SP that is in the Manufactured-Inactive life cycle state SHALL have no effect on the SP.
This method operates within a Read-Write session to the Admin SP. The TPer SHALL revert the SP immediately
after the method is successfully invoked outside of a transaction. If Revert is invoked on the Admin SP’s object in the
SP table, the TPer SHALL abort the session immediately after reporting status of the method invocation if invoked
outside of a transaction. The TPer MAY prepare a CloseSession method for retrieval by the host to indicate that the
session has been aborted.
The MethodID for Revert SHALL be 00 00 00 06 00 00 02 02.
5.1.2.1 Revert Support
Support for Revert within transactions is (N), and the behavior of Revert within transactions is out of the scope of this
specification.
Support for Revert on the Admin SP’s object in the SP table is Mandatory. (Note that the OFS of the Admin SP is
Manufactured, see section 5.2.2).
If the Locking SP was created in manufacturing, support for Revert on the Locking SP’s object in the SP table is
Mandatory.
5.1.2.2 Effects of Revert
Upon successful invocation of the Revert method, the following changes SHALL be made:
• If the Locking SP is not in the “Manufactured-Inactive” life cycle state, then successful invocation of the Revert
method on the Locking SP or Admin SP SHALL cause user data removal as defined by the
ActiveDataRemovalMechanism (see Table 34) and cause the media encryption keys to be eradicated, which
has the side effect of securely erasing all data in the User LBA portion of the SD.
• If the Locking SP is in the “Manufactured-Inactive” life cycle state, then successful invocation of the Revert
method on the Locking SP SHALL NOT cause user data removal in the SD.
Interactions with interface commands during the processing of the Revert method are defined in Error! Reference
source not found..
If any TCG reset occurs prior to completing user data removal and the eradication of all media encryption keys in the
SD, then the Revert operation SHALL be aborted and the Locking SP SHALL NOT revert to its Original Factory State.
Start of Informative Comment
If any TCG reset occurs during the processing of the Revert method, the result of user data removal is undefined and
the TPer does not erase personalization of the Locking SP. For example, the PIN column value for each row in C_PIN
table is unchanged.
End of Informative Comment
Upon completion of user data removal and the eradication of all media encryption keys in the SD, or if the Locking SP
is in the “Manufactured-Inactive” life cycle state, the following changes SHALL be made:
• The row in the Admin SP’s SP table that represents the invoked SP SHALL revert to its original factory values.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 84 © TCG 2021
TCG Storage Security Subsystem Class: Opal
• The SP itself SHALL revert to its Original Factory State. While reverting to its Original Factory State, the TPer
SHALL securely erase all personalization of the SP, and return personalized values to their Original Factory
State values. The mechanism for erasure of personalization is implementation-specific.
• When Revert is successfully invoked on the SP object for the Admin SP (UID = 00 00 02 05 00 00 00 01), the
entire TPer SHALL revert to its Original Factory State, including:
o All Admin SP personalization with the exception of the PIN column value of the C_PIN_SID object.
See section 5.1.2.2.1 for the effects of Revert upon the PIN column value of the C_PIN_SID object.
o All issued SPs SHALL be deleted, and all Manufactured SPs SHALL revert to Original Factory State.
Manufactured SPs in the “Manufactured-Inactive” life cycle state SHALL NOT be affected.
• Any TPer functionality affected by the life cycle state of the SP based on the templates incorporated into it is
modified as defined in the appropriate Template reference section of [2], and as defined in the “State
transitions for Manufactured SPs” section (see section 5.2.2.2) and “State behaviors for Manufactured SPs”
section (see section 5.2.2.3) of this specification.
Start of Informative Comment
Unless already in the Manufactured-Inactive life cycle state, reverting the Locking SP will cause the media encryption
keys to be eradicated, which has the side effect of securely erasing all data in the User LBA portion of the Storage
Device.
End of Informative Comment
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 85 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Invoking RevertSP on an SP SHALL cause it to revert to its Original Factory State. This method allows the SP owner
to relinquish control of the SP and revert the SP to its Original Factory State.
This method operates within a Read-Write session to an SP. The TPer SHALL revert the SP immediately after the
method is successfully invoked outside of a transaction. Upon completion of reverting the SP, the TPer SHALL report
status of the method invocation if invoked outside of a transaction, and then immediately abort the session. The TPer
MAY prepare a CloseSession method for retrieval by the host to indicate that the session has been aborted.
The MethodID for RevertSP SHALL be 00 00 00 06 00 00 00 11.
5.1.3.1 RevertSP Support
Support for RevertSP within transactions is (N), and the behavior is out of the scope of this document.
If the Locking SP was created in manufacturing, support for RevertSP on the Locking SP is Mandatory.
5.1.3.2 KeepGlobalRangeKey parameter (Locking Template-specific)
The Optional KeepGlobalRangeKey parameter is a Locking Template-specific parameter. This parameter provides
a mechanism for the Locking SP to be “turned off” without eradicating the media encryption key for the Global Locking
Range. This allows the Locking SP to be disabled without causing removal of the user data associated with the Global
Locking Range.
When this parameter is present and set to True, the TPer SHALL NOT erase data associated with the Global Locking
Range after the Locking SP transitions to the “Manufactured-Inactive” state even if the valid value is set to the
ActiveDataRemovalMechanism parameter in DataRemovalMechanism table.
If the Global Range is either Read Unlocked or Write Unlocked at the time of invocation of RevertSP, then the
TPer SHALL comply with the request to keep the user data associated with the Global locking range and the Global
Range’s media encryption key.
If the Global Range is Read Locked and Write Locked then invocation of the RevertSP method with the
KeepGlobalRangeKey parameter set to True SHALL fail with status FAIL, and the SP SHALL NOT change life cycle
states.
If the Locking SP was created in manufacturing, support for the KeepGlobalRangeKey parameter is Mandatory for
the Locking SP.
The parameter number for KeepGlobalRangeKey SHALL be 0x060000.
5.1.3.3 Effects of RevertSP
Upon successful invocation of the RevertSP method, the following changes SHALL be made:
• If the KeepGlobalRangeKey parameter is not present or set to False, then successful invocation of the
RevertSP method on the Locking SP or Admin SP SHALL cause user data removal as defined by the
ActiveDataRemovalMechanism (see Table 34) and cause the media encryption keys to be eradicated, which
has the side effect of securely erasing all data in the User LBA portion of the SD.
• If the KeepGlobalRangeKey parameter is set to True, then successful invocation of the RevertSP method on
the Locking SP SHALL cause user data removal in the SD all media encryption keys to be eradicated except
for the Global Range’s media encryption key (K_AES_{128,256}_GlobalRange_Key).
Interactions with interface commands during the processing of the RevertSP method are defined in Error! Reference
source not found..
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 86 © TCG 2021
TCG Storage Security Subsystem Class: Opal
If any TCG reset occurs prior to completing user data removal and the eradication of media encryption keys in the
SD, then the operation SHALL be aborted and the Locking SP SHALL NOT revert to its Original Factory State.
Start of Informative Comment
If any TCG reset occurs during the processing of the RevertSP method, the result of user data removal is undefined.
End of Informative Comment
Upon completion of user data removal and the eradication of media encryption keys in the SD, the following changes
SHALL be made:
• The row in the Admin SP’s SP table that represents the Locking SP SHALL revert to its original factory value.
• The Locking SP itself SHALL revert to its Original Factory State. While reverting to its Original Factory State,
the TPer SHALL erase all personalization of the SP, and return the personalized values to their Original
Factory State values. The mechanism for erasure of personalization implementation-specific.
• Any TPer functionality affected by the life cycle state of the SP based on the templates incorporated into it is
modified as defined in the appropriate Template reference section of [2], and as defined in the “State
transitions for Manufactured SPs” section (see section 5.2.2.2) and “State behaviors for Manufactured SPs”
section (see section 5.2.2.3) of this specification.
Start of Informative Comment
Reverting the Locking SP will cause the media encryption keys to be eradicated (except for the GlobalRange key if
the KeepGlobalRangeKey parameter is present and set to True), which has the side effect of securely erasing all
data in the User LBA portion of the Storage Device.
End of Informative Comment
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 87 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Manufactured -
Disabled -
Frozen
Manufactured
Manufactured -
Frozen Manufactured -
Failed
Additional state transitions may exist depending on the states supported by the SD and the SP’s Original Factory
State. Invoking Revert or RevertSP (see sections 5.1.2 and 5.1.2.3) on the SP will cause the SP to transition back to
its Original Factory State.
The Original Factory State of the Admin SP SHALL be Manufactured. The only state that is Mandatory for the Admin
SP is Manufactured.
If the Locking SP is a Manufactured SP, its Original Factory State SHALL be Manufactured-Inactive.
Support for Locking SP states of Manufactured and Manufactured-Inactive are mandatory.
The other states in the state diagram are beyond the scope of this document.
5.2.2.1 State definitions for Manufactured SPs
1. Manufactured-Inactive: This is the Original Factory State for SPs that are created in manufacturing, where it is
not desired for the functionality of that SP to be active when the TPer is shipped. All templates that exist in an SP
that is in the Manufactured-Inactive state SHALL be counted in the Instances column of the appropriate objects
in the Admin SP’s Template table. Sessions cannot be opened to SPs in the Manufactured-Inactive state. Only
SPs whose Original Factory State was Manufactured-Inactive can return to the Manufactured-Inactive state.
If the Locking SP is a Manufactured SP, support for the Manufactured-Inactive state is Optional for the Locking
SP.
2. Manufactured: This is the standard operational state of a Manufactured SP, and defines the initial required access
control settings of an SP based on the Templates incorporated into the SP, prior to personalization.
The Manufactured state is Mandatory for the Admin SP.
If the Locking SP is a Manufactured SP, support for the Manufactured state is Mandatory for the Locking SP.
5.2.2.2 State transitions for Manufactured SPs
The following sections describe the Mandatory and Optional state transitions for Opal SSC-compliant
Manufactured SPs.
For the Admin SP, the only transition for which support is mandatory is “ANY STATE to ORIGINAL FACTORY STATE”
(see section 5.2.2.2.2). As the only mandatory state for the Admin SP is Manufactured, the only mandatory transition
is from Manufactured to Manufactured with the side effect of reverting the entire TPer to its Original Factory State.
See section 5.1.2 for details.
If the Locking SP is a Manufactured SP, support for the “ANY STATE to ORIGINAL FACTORY STATE” transition (see
section 5.2.2.2.2) is Mandatory. Specifically, support for the transition from Manufactured to either Manufactured-
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 88 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Inactive or Manufactured is Mandatory, depending on the Locking SP’s Original Factory State. This transition is
accomplished via the Revert or RevertSP method (see sections 5.1.2 and 5.1.2.3).
If the Locking SP’s Original Factory State is Manufactured-Inactive, then support for the “Manufactured-Inactive to
Manufactured” transition (see section 5.2.2.2.1) is Mandatory. This transition is accomplished via the Activate method
(see section 5.1.1).
Side effects:
• The value in the LifeCycleState column of the SP’s object in the Admin SP’s SP table changes to the value
of the SP’s Original Factory State.
• The SP itself reverts to its Original Factory State, as described in sections 5.1.2 and 5.1.3.
• If the SP’s Original Factory State was Manufactured-Inactive, any functionality enabled by the templates
incorporated into the SP becomes inactive.
5.2.2.3 State behaviors for Manufactured SPs
5.2.2.3.1 Manufactured-Inactive
Any functionality enabled by the templates incorporated into the SP is inactive in this state. Sessions cannot be
opened to SPs in this state.
When the Locking SP is in the Manufactured-Inactive state, the Locking SP’s management of the SD's locking and
media encryption features SHALL be disabled.
5.2.2.3.2 Manufactured
Behavior of an SP in the Manufactured state is identical to the behavior of an SP in the Issued state, as described in
[2].
When the Locking SP is in the Manufactured state, the Locking SP’s management of the SD's locking and media
encryption features SHALL be enabled.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 89 © TCG 2021
TCG Storage Security Subsystem Class: Opal
5.3.1.1 MandatoryWriteGranularity
This column is used to report the granularity that the SD enforces when the host invokes the Set method on byte
tables.
This column SHALL NOT be modifiable by the host.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 90 © TCG 2021
TCG Storage Security Subsystem Class: Opal
MandatoryWriteGranularity column indicates the alignment requirement for both the access start offset (the Where
parameter) and length (number of bytes in the Values parameter).
The value of the MandatoryWriteGranularity column SHALL be less than or equal to the value in the
RecommendedAccessGranularity column in the same row of the Table table.
The value of MandatoryWriteGranularity SHALL be less than or equal to 8192.
When the host invokes the Set method on a byte table, if ValidMandatoryGranularity (see Figure 4) is False, then the
method SHALL fail with status INVALID_PARAMETER.
If the TPer does not have a requirement on mandatory alignment for the byte table described in a row of the Table
table, then its MandatoryWriteGranularity column SHALL be set to one.
Figure 4 - ValidMandatoryGranularity definition
For the Set method:
ValidMandatoryGranularity is True if
a) (x modulo MandatoryWriteGranularity) = 0
and
b) (y modulo MandatoryWriteGranularity) = 0
where:
x = the start offset of the Set method
(i.e., the value of the Where parameter)
y = the number of data bytes being set
(i.e., the length of the Values parameter)
5.3.1.2 RecommendedAccessGranularity
This column is used to report the granularity that the SD recommends when the host invokes the Set or Get method
on byte tables.
This column SHALL NOT be modifiable by the host.
When the host invokes the Set method on a byte table, if ValidRecommendedGranularity (see Figure 5) is False,
then the performance of the TPer MAY be reduced when processing the method.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 91 © TCG 2021
TCG Storage Security Subsystem Class: Opal
and
b) (y modulo RecommendedAccessGranularity) = 0
where:
x = the start offset of the Set method
(i.e., the value of the Where parameter)
y = the number of data bytes being set
(i.e., the length of the Values parameter)
When the host invokes the Get method on a byte table, if ValidRecommendedGranularity (see Figure 6) is False,
then the performance of the TPer MAY be reduced when processing the method.
Figure 6 - ValidRecommendedGranularity definition for Get
For the Get method:
ValidRecommendedGranularity is True if
a) (x modulo RecommendedAccessGranularity) = 0
and
b) (y modulo RecommendedAccessGranularity) = 0
where:
x = the start offset of the Get method
(i.e., the value of the startRow component of the Cellblock parameter)
y = the number of data bytes being retrieved
(i.e., the difference of the endRow and startRow components of the
Cellblock parameter, plus one)
Alignment
Granularity
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 92 © TCG 2021
TCG Storage Security Subsystem Class: Opal
Figure 8 illustrates geometry for a SD where there are 8 logical blocks per physical block (e.g., a 4K physical block)
and the first logical block is aligned at the beginning of the first physical block.
Figure 8 - Example: AlignmentGranularity=8, Lowest Aligned LBA=0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Figure 9 illustrates geometry for a SD where there are 8 logical blocks per physical block (e.g., a 4K physical block)
and LBA=1 is the first logical block that is aligned at the beginning of a physical block
Figure 9 - Example: AlignmentGranularity=8, Lowest Aligned LBA=1
0 1 2 3 4 5 6 7 8 9 10 11 12
Figure 10 illustrates geometry for a SD where there are 2000 logical blocks per physical block and LBA=1234 is the
first logical block that is aligned at the beginning of a physical block.
Figure 10 - Example: AlignmentGranularity=2000, Lowest Aligned LBA=1234
0 ... 1230 1231 1232 1233 1234 ... 3233 3234 ...
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 0.22 | 6/29/2021 | DRAFT Page 93 © TCG 2021