BS ISO/IEC 30118-2:2018
$215.11
Information technology. Open Connectivity Foundation (OCF) Specification – Security specification
Published By | Publication Date | Number of Pages |
BSI | 2018 | 212 |
This specification defines security objectives, philosophy, resources and mechanism that impacts OCF base layers of the OCF Core Specification. The OCF Core Specification contains informative security content. The OCF Security specification contains security normative content and may contain informative content related to the OCF base or other OCF specifications.
PDF Catalog
PDF Pages | PDF Title |
---|---|
2 | undefined |
6 | Blank Page |
18 | 1 Scope 2 Normative References |
19 | 3 Terms, Definitions, Symbols and Abbreviations 3.1 Terms and definitions |
21 | 3.2 Symbols and Abbreviations |
22 | 3.3 Conventions |
23 | 4 Document Conventions and Organization 4.1 Notation 4.2 Data types |
24 | 4.3 Document structure |
25 | 5 Security Overview |
27 | 5.1 Access Control |
28 | 5.1.1 ACL Architecture |
29 | 5.1.1.1 Use of local ACLs 5.1.1.2 Use of Access Manager Service |
31 | 5.1.2 Access Control Scoping Levels |
32 | 5.2 Onboarding Overview |
34 | 5.2.1 OnBoarding Steps |
35 | 5.2.2 Establishing a Device Owner |
36 | 5.2.2.1 Preparing the Device for provisioning 5.2.3 Provisioning for Normal Operation |
37 | 5.3 Provisioning 5.3.1 Provisioning a bootstrap service 5.3.2 Provisioning other services |
38 | 5.3.3 Credential provisioning 5.3.4 Role assignment and provisioning 5.3.5 ACL provisioning |
39 | 5.4 Secure Resource Manager (SRM) 5.5 Credential Overview |
41 | 6 Security for the Discovery Process 6.1 Security Considerations for Discovery |
44 | 7 Security Provisioning 7.1 Device Identity 7.1.1 Device Identity for Devices with UAID |
45 | 7.1.1.1 Validation of UAID |
46 | 7.2 Device Ownership 7.3 Device Ownership Transfer Methods 7.3.1 OTM implementation requirements |
47 | 7.3.2 SharedKey Credential Calculation |
48 | 7.3.3 Certificate Credential Generation 7.3.4 Just-Works Owner Transfer Method |
49 | 7.3.4.1 Security Considerations |
50 | 7.3.5 Random PIN Based Owner Transfer Method 7.3.5.1 Random PIN Owner Transfer Sequence |
51 | 7.3.5.2 Security Considerations |
52 | 7.3.6 Manufacturer Certificate Based Owner Transfer Method 7.3.6.1 Certificate Profiles |
54 | 7.3.6.2 Certificate Owner Transfer Sequence Security Considerations |
55 | 7.3.6.3 Manufacturer Certificate Based Owner Transfer Method Sequence |
56 | 7.3.6.4 Security Considerations 7.3.7 Vendor Specific Owner Transfer Methods 7.3.7.1 Vendor-specific Owner Transfer Sequence Example |
57 | 7.3.7.2 Security Considerations 7.3.8 Establishing Owner Credentials |
68 | 7.3.9 Security considerations regarding selecting an Ownership Transfer Method 7.4 Provisioning 7.4.1 Provisioning Flows |
69 | 7.4.1.1 Client-directed Provisioning |
70 | 7.4.1.2 Server-directed Provisioning |
72 | 7.4.1.3 Server-directed Provisioning Involving Multiple Support Services |
74 | 7.5 Bootstrap Example |
75 | 8 Device Onboarding State Definitions |
76 | 8.1 Device Onboarding-Reset State Definition |
77 | 8.2 Device Ready-for-OTM State Definition 8.3 Device Ready-for-Provisioning State Definition |
78 | 8.4 Device Ready-for-Normal-Operation State Definition 8.5 Device Soft Reset State Definition |
81 | 9 Security Credential Management 9.1 Credential Lifecycle 9.1.1 Creation 9.1.2 Deletion 9.1.3 Refresh |
82 | 9.1.4 Revocation 9.2 Credential Types 9.2.1 Pair-wise Symmetric Key Credentials 9.2.2 Group Symmetric Key Credentials |
83 | 9.2.3 Asymmetric Authentication Key Credentials 9.2.3.1 External Creation of Asymmetric Authentication Key Credentials 9.2.4 Asymmetric Key Encryption Key Credentials |
84 | 9.2.5 Certificate Credentials 9.2.6 Password Credentials 9.3 Certificate Based Key Management 9.3.1 Overview |
85 | 9.3.2 Certificate Format 9.3.2.1 Certificate Profile and Fields |
87 | 9.3.2.2 Supported Certificate Extensions |
89 | 9.3.2.3 Cipher Suite for Authentication, Confidentiality and Integrity |
90 | 9.3.2.4 Encoding of Certificate 9.3.3 CRL Format 9.3.3.1 CRL Profile and Fields |
91 | 9.3.3.2 Encoding of CRL 9.3.4 Resource Model 9.3.5 Certificate Provisioning |
92 | 9.3.6 CRL Provisioning |
95 | 10 Device Authentication 10.1 Device Authentication with Symmetric Key Credentials 10.2 Device Authentication with Raw Asymmetric Key Credentials 10.3 Device Authentication with Certificates |
96 | 10.3.1 Role Assertion with Certificates |
98 | 11 Message Integrity and Confidentiality 11.1 Session Protection with DTLS 11.1.1 Unicast Session Semantics 11.2 Cipher Suites 11.2.1 Cipher Suites for Device Ownership Transfer 11.2.1.1 Just Works Method Cipher Suites 11.2.1.2 Random PIN Method Cipher Suites |
99 | 11.2.1.3 Certificate Method Cipher Suites 11.2.2 Cipher Suites for Symmetric Keys 11.2.3 Cipher Suites for Asymmetric Credentials |
100 | 12 Access Control 12.1 ACL Generation and Management 12.2 ACL Evaluation and Enforcement 12.2.1 Host Reference Matching 12.2.2 Resource Type Matching 12.2.3 Interface Matching 12.2.4 Multiple Criteria Matching |
101 | 12.2.5 Resource Wildcard Matching |
102 | 12.2.6 Subject Matching using Wildcards 12.2.7 Subject Matching using Roles 12.2.8 ACL Evaluation |
103 | 13 Security Resources |
104 | 13.1 Device Owner Transfer Resource |
109 | 13.1.1 OCF defined owner transfer methods 13.2 Credential Resource |
115 | 13.2.1 Properties of the Credential Resource 13.2.1.1 Credential ID 13.2.1.2 Subject UUID |
116 | 13.2.1.3 Role ID 13.2.1.4 Credential Type 13.2.1.5 Public Data 13.2.1.6 Private Data 13.2.1.7 Optional Data 13.2.1.8 Period 13.2.1.9 Credential Refresh Method Type Definition |
117 | 13.2.1.1 Credential Usage Credential Usage indicates to the Device the circumstances in which a credential should be used. Five values are defined: oic.sec.cred.trustca: This certificate is a trust anchor for the purposes of certificate chain validation, as defined in section 10.3. oic.sec.cred.cert: This credusage is used for certificates for which the Device possesses the private key and uses it for identity authentication in a secure session, as defined in section 10.3. |
118 | oic.sec.cred.rolecert: This credusage is used for certificates for which the Device possesses the private key and uses to assert one or more roles, as defined in section 10.3.1. oic.sec.cred.mfgtrustca: This certificate is a trust anchor for the purposes of the Manufacturer Certificate Based Owner Transfer Method as defined in section 7.3.6. oic.sec.cred.mfgcert: This certificate is used for certificates for which the Device possesses the private key and uses it for authentication in the Manufacturer Certificate Based Owner Transfer Method as defined in section 7.3.6. 13.2.2 Key Formatting 13.2.2.1 Symmetric Key Formatting 13.2.2.2 Asymmetric Keys 13.2.2.3 Asymmetric Keys with Certificate 13.2.2.4 Passwords 13.2.3 Credential Refresh Method Details 13.2.3.1.1 Provisioning Service 13.2.3.1.2 Pre-Shared Key |
119 | 13.2.3.1.3 Random PIN 13.2.3.1.4 SKDC 13.2.3.1.5 PKCS10 |
120 | 13.2.3.2 Resource Owner 13.3 Certificate Revocation List 13.3.1 CRL Resource Definition 13.4 ACL Resources 13.4.1 OCF Access Control List (ACL) BNF defines ACL structures. |
121 | 13.4.2 ACL Resource |
131 | 13.5 Access Manager ACL Resource 13.6 Signed ACL Resource 13.7 Provisioning Status Resource |
140 | 13.8 Certificate Signing Request Resource |
141 | 13.9 Roles resource |
142 | 13.10 Security Virtual Resources (SVRs) and Access Policy 13.11 SVRs, Discoverability and Endpoints |
143 | 13.12 Privacy Consideration for Core and SVRs |
145 | 14 Core Interaction Patterns Security 14.1 Observer 14.2 Subscription/Notification 14.3 Groups 14.4 Publish-subscribe Patterns and Notification |
146 | 15 Security Hardening Guidelines/ Execution Environment Security 15.1 Execution environment elements 15.1.1 Secure Storage |
147 | 15.1.1.1 Hardware secure storage |
148 | 15.1.1.2 Software Storage 15.1.1.3 Additional Security Guidelines and Best Practices 15.1.2 Secure execution engine 15.1.3 Trusted input/output paths |
149 | 15.1.4 Secure clock 15.1.5 Approved algorithms 15.1.6 Hardware tamper protection |
150 | 15.2 Secure Boot 15.2.1 Concept of software module authentication |
151 | 15.2.2 Secure Boot process 15.2.3 Robustness requirements |
152 | 15.2.3.1 Next steps 15.3 Attestation 15.4 Software Update 15.4.1 Overview: 15.4.2 Recognition of Current Differences 15.4.3 Software Version Validation 15.4.4 Software Update |
153 | 15.4.5 Recommended Usage 15.5 Non-OCF Endpoint interoperability 15.7 Security Levels |
154 | 16 Appendix A: Access Control Examples 16.1 Example OCF ACL Resource 16.2 Example Access Manager Service |
155 | 17 Appendix B: Execution Environment Security Profiles |
156 | 18 Appendix C: RAML Definition A.1 OICSecurityAclResource A.1.1 Introduction A.1.2 Example URI A.1.3 Resource Type A.1.4 RAML Definition |
160 | A.1.5 Property Definition A.1.6 CRUDN behavior A.2 OICSecurityAcl2Resource A.2.1 Introduction A.2.2 Example URI |
161 | A.2.3 Resource Type A.2.4 RAML Definition |
165 | A.2.5 Property Definition A.2.6 CRUDN behavior A.2.7 Referenced JSON schemas A.2.8 oic.sec.didtype.json A.2.9 Property Definition A.2.10 Schema Definition A.2.11 oic.sec.ace2.json A.2.12 Property Definition |
166 | A.2.13 Schema Definition |
168 | A.2.14 oic.sec.roletype.json A.2.15 Property Definition A.2.16 Schema Definition A.2.17 oic.sec.time-pattern.json A.2.18 Property Definition A.2.19 Schema Definition |
169 | A.2.20 oic.sec.crudntype.json A.2.21 Property Definition A.2.22 Schema Definition |
170 | A.3 OICSecurityAmaclResource A.3.1 Introduction A.3.2 Example URI A.3.3 Resource Type A.3.4 RAML Definition |
173 | A.3.5 Property Definition A.3.6 CRUDN behavior A.4 OICSecuritySignedAclResource A.4.1 Introduction A.4.2 Example URI A.4.3 Resource Type A.4.4 RAML Definition |
179 | A.4.5 Property Definition A.4.6 CRUDN behavior A.4.7 Referenced JSON schemas A.4.8 oic.sec.sigtype.json A.4.9 Property Definition A.4.10 Schema Definition |
180 | A.5 OICSecurityDoxmResource A.5.1 Introduction A.5.2 Example URI A.5.3 Resource Type A.5.4 RAML Definition |
184 | A.5.5 Property Definition |
185 | A.5.6 CRUDN behavior A.5.7 Referenced JSON schemas A.5.8 oic.sec.doxmtype.json A.5.9 Property Definition A.5.10 Schema Definition A.5.11 oic.sec.credtype.json A.5.12 Property Definition A.5.13 Schema Definition |
186 | A.6 OICSecurityPstatResource A.6.1 Introduction A.6.2 Example URI A.6.3 Resource Type A.6.4 RAML Definition |
190 | A.6.5 Property Definition |
191 | A.6.6 CRUDN behavior A.6.7 Referenced JSON schemas A.6.8 oic.sec.dostype.json A.6.9 Property Definition A.6.10 Schema Definition |
192 | A.6.11 oic.sec.dpmtype.json A.6.12 Property Definition A.6.13 Schema Definition A.6.14 oic.sec.pomtype.json A.6.15 Property Definition |
193 | A.6.16 Schema Definition A.6.17 A.7 OICSecurityCredentialResource A.7.1 Introduction A.7.2 Example URI A.7.3 Resource Type A.7.4 RAML Definition |
197 | A.7.5 Property Definition A.7.6 CRUDN behavior A.7.7 Referenced JSON schemas A.7.8 oic.sec.roletype.json A.7.9 Property Definition |
198 | A.7.10 Schema Definition A.7.11 oic.sec.credtype.json A.7.12 Property Definition A.7.13 Schema Definition |
199 | A.7.14 oic.sec.pubdatatype.json A.7.15 Property Definition A.7.16 Schema Definition A.7.17 oic.sec.privdatatype.json A.7.18 Property Definition |
200 | A.7.19 Schema Definition A.7.20 oic.sec.optdatatype.json A.7.21 Property Definition |
201 | A.7.22 Schema Definition A.7.23 oic.sec.crmtype.json A.7.24 Property Definition A.7.25 Schema Definition |
202 | A.8 OICSecurityCsrResource A.8.1 Introduction A.8.2 Example URI A.8.3 Resource Type A.8.4 RAML Definition |
203 | A.8.5 Property Definition A.8.6 CRUDN behavior A.9 OICSecurityRolesResource A.9.1 Introduction |
204 | A.9.2 Example URI A.9.3 Resource Type A.9.4 RAML Definition |
207 | A.9.5 Property Definition A.9.6 CRUDN behavior A.10 OICSecurityCrlResource A.10.1 Introduction A.10.2 Example URI A.10.3 Resource Type A.10.4 RAML Definition |
210 | A.10.5 Property Definition |
211 | A.10.6 CRUDN behavior |