Allion Labs / Blake Chu
近年来资安问题频传,越来越多装置(个人计算机,行动装置等) 透过云端物联网(IoT)与云端储存相互链接,数据的开放性衍生出许多资安问题和恶意攻击。除了一般常见的防病毒软件,以软件层面来防堵之外,硬件层面部分尤其是储存装置的防护,会以硬件加密为主,例如常见的「ASE 256bit」加密技术,便是透过储存装置内建支持硬件加密的控制器单元,对储存装置进行完整磁盘加密。硬件加密的安全性较高,要将数据从硬盘窃取几乎是不可能的任务。
拥有加密技术的储存装置越来越多,但该如何确保其加密功能是真正安全符合规范?TCG组织(Trusted Computing Group)便规划了「Opal储存装置安全规范(Opal Storage Specification)」,符合TCG Opal规范的储存装置,可于装置内执行加密,在效能、安全和管理方面,皆较软件的加密系统更具数据保密之优势;也更不影响主机系统作业且不占用资源,不需要额外的主机加密组件,所有加密皆于装置内部进行完成。
为了验证是否符合TCG Opal规范,我们与知名测试验证工具开发商ULINK Technology合作,利用其开发的测试工具与对应的TCG测试脚本,提供相关TCG Opal Certification Test以及TCG Opal Protocol Test验证其产品是否能通过测试。我们利用通过TCG组织通过认可的测试工具来对储存装置(SATA/NVMe)进行验证。以下为两个测试相关介绍。
- TCG Opal Certification Test:
为了验证TCG储存装置是否正常符合TCG规范(TCG Storage Architecture Core Specification, Version 2.01; TCG Storage OPAL Family Test Cases Specification, Version 1.00),利用Certification Test针对储存装置进行TCG functional check,确认回传值是否符合spec规范。TCG Opal Certification Test测试项目如下:
a. Use Case Test Cases: | b. Specific Functionality: | c. Error Test Cases: |
1. UCT-01 Level 0 Discovery | 1. SPF-01Transaction | 1. ETC-01 Native Protocol Read/Write Locked Error Responses |
2. UCT-02 Properties | 2. SPF-02 IF-RECV Behavior Tests | 2. ETC-02 General IF-SEND /IF-RECV Synchronous Protocol |
3. UCT-03 Taking ownership of an SID | 3. SPF-03 TryLimit | 3. ETC-03 Invalid IF-SEND Transfer length |
4. UCT-04 Activate Locking SP when in Manufactured Inactive State | 4. SPF-04 Tries Reset | 4. ETC-04 Invalid SessionID – Regular Session |
5. UCT-05 Configuring Authorities | 5. SPF-05 Tries Reset on Power Cycle | 5. ETC-05 Unexpected Token Outside of Method – Regular Session |
6. UCT-06 Configuring Locking Objects (Locking Ranges) | 6. SPF-06 Next | 6. ETC-06 Unexpected Token in Method Header – Regular Session |
7. UCT-07 Unlocking Ranges | 7. SPF-07 Host Session Number (HSN) | 7. ETC-07 Unexpected Token Outside of Method – Control Session |
8. UCT-08 Erasing Ranges | 8. SPF-08 RevertSP | 8. ETC-08 Unexpected Token in the Method Parameter List – Control Session |
9. UCT-09 Using the DataStore table | 9. SPF-09 Range Alignment Verification | 9. ETC-09 Exceeding Transaction Limit |
10. UCT-10 Enable MBR Shadowing | 10. SPF-10 Byte Table Access Granularity | 10. ETC-10 Invalid Invoking ID – Get |
11. UCT-11 MBR Done | 11. SPF-11 Stack Reset | 11. ETC-11 Invalid Invoking ID – Non-Get |
12. UCT-12 Revert the Locking SP using SID, with Locking SP in Mfg state | 12. SPF-12 TPer Reset | 12. ETC-12 Authorization |
13. UCT-13 Revert the Admin SP using SID, with Locking SP in Mfg-Inactive state | 13. SPF-13 Authenticate | 13. ETC-13 Malformed ComPacket Header – Regular Session |
14. UCT-14 Revert the Admin SP using SID, with Locking SP in Mfg state | 14. SPF-15 Random | 14. ETC-14 Exceed TPer Properties – Regular Session |
15. UCT-15 Revert Admin SP using Admin1, with Locking SP in Mfg state | 15. SPF-16 CommonName | 15. ETC-15 Exceed TPer Properties – Control Session |
16. UCT-16 Revert Admin SP using PSID, with Locking SP in Manufactured state | 16. SPF-17 DataStore Table | 16. ETC-16 Overlapping Locking Ranges |
17. SPF-18 Range Crossing Behavior | 17. ETC-17 Invalid Type | |
18. SPF-19 Block SID Authentication | 18. ETC-18 RevertSP – GlobalRange Locked | |
19. ETC-19 Activate / ATA Security Interaction | ||
20. ETC-20 StartSession on Inactive Locking SP | ||
21. ETC-21 StartSession with Incorrect HostChallenge | ||
22. ETC-22 Multiple Sessions | ||
23. ETC-23 Data RemovalMechanism – Set Unsupported Value |
- TCG Opal Protocol Test:
接下来验证其Opal Protocol test是否符合TCG规范(TCG Storage Architecture Core Specification, Version 2.01; TCG Storage OPAL Test Cases Specification, Version 1.00),利用Opal Protocol Test针对储存装置进行functional check,确认回传值是否符合spec规范。TCG Opal Protocol Test测试项目如下:
a. OPALv1: | b. OPALv1: |
1. A0: Identify Device | 1. AlignSet_DataStore |
2. A1: Trusted Send/Receive | 2. AlignSet_LBA |
3. A2: Protocol ID = 0 related | 3. AlignSet_MBR |
4. A3: Level 0 Discovery | 4. Authenticate |
5. A4: Synchronous Communication Ptc | 5. Protocol2 |
6. A5: ComPacket/Packet/SubPacket | 6. Random |
7. A7: Transaction | 7. Revert_Effect2 |
8. A8: Ending Session | 8. StackReset |
9. A9: Empty Atom | 9. TPerInfo_SSC |
10. A10: Properties | 10. TPerReset |
11. A11: Start/SyncSession | 11. VerifyGeometry |
12. A6: Method_invoke/response | 12. RevertSP_Pyrite1_0 (for Pyrite1.00 device only) |
13. A12_Get_Byte_GramChk | 13. DataRemoval |
14. A13_Set_Byte_GramChk | 14. StartSyncSession_SessionTO |
15. A14_Next_AdminSP_GramChk | c. TableInfo: |
16. A15_GetACL_AdminSP_GramChk | 1. C1: Level 0 Discovery contents |
17. A19_RevertSP_GramChk | 2. C2: Properties() contents |
18. D1_ACESet | 3. C3: Get() contents |
19. D2_AuthoritySet | 4. C3_Get_ObjTable_LockSP_All |
20. D3_C_PINSet | 5. C4: Next() contents |
21. D4_LockingSet_RangeStartLength | 6. C5: GetACL() contents |
22. D4_LockingSet_WriteLock | d. Features: |
23. D5: MBRControl.Set | 1. Additional_DS |
24. D6: MBR.Set | 2. PSID |
25. D7: DataStore.Set() | 3. SingleUser |
26. D8: K_AES_*.GenKey | 4. BlockSID |
27. D9: Activate | |
28. D10: Revert()/RevertSP | |
29. D10_RevertSP_Effect | |
30. D11: Power Cycle |
这边举一个实际案例与大家分享。符合TCG储存装置有个「shadow MBR」功能,用户开启此装置时,会先进入一个称为shadow MBR模拟空间进行pre-boot的身份验证动作;通过验证后,才会进入真正的开机程序,与装置链接。在「UCT-10 Enable MBR Shadowing」这个item中,我们可以看到该装置因在「subcase 2: Set on ACE_MBRControl_Set_DoneToDOR to include User1 and User8; Set Response: Pass」这个地方无法正常回传对应值,无法取得认证,故此item便判定为Fail。
除了提供TCG Opal Certification Test & TCG Opal Protocol Test验证报告以外,百佳泰也可以针对产品无法通过验证的测项进行结果分析,协助厂商解决并通过验证。相信透过这两大项测试层层把关,通过严苛考验的产品能在市面上带给客户信任感。