Publication Date: 2021-02-26

Approval Date: 2021-02-25

Submission Date: 2021-11-18

Reference number of this document: OGC 20-021r2

Reference URL for this document: http://www.opengis.net/doc/PER/t16-D011

Category: OGC Public Engineering Report

Editor: Aleksandar Balaban

Title: OGC Testbed-16: Data Centric Security Engineering Report


OGC Public Engineering Report

COPYRIGHT

Copyright © 2021 Open Geospatial Consortium. To obtain additional rights of use, visit http://www.ogc.org/

WARNING

This document is not an OGC Standard. This document is an OGC Public Engineering Report created as a deliverable in an OGC Interoperability Initiative and is not an official position of the OGC membership. It is distributed for review and comment. It is subject to change without notice and may not be referred to as an OGC Standard. Further, any OGC Public Engineering Report should not be referenced as required or mandatory technology in procurements. However, the discussions in this document could very well lead to the definition of an OGC Standard.

LICENSE AGREEMENT

Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement.

If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR.

THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD. THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY.

This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party.

Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications.

This Agreement is governed by the laws of the Commonwealth of Massachusetts. The application to this Agreement of the United Nations Convention on Contracts for the International Sale of Goods is hereby expressly excluded. In the event any provision of this Agreement shall be deemed unenforceable, void or invalid, such provision shall be modified so as to make it valid and enforceable, and as so modified the entire Agreement shall remain in full force and effect. No decision, action or inaction by LICENSOR shall be construed to be a waiver of any rights or remedies available to it.

None of the Intellectual Property or underlying information or technology may be downloaded or otherwise exported or reexported in violation of U.S. export laws and regulations. In addition, you are responsible for complying with any local laws in your jurisdiction which may impact your right to import, export or use the Intellectual Property, and you represent that you have complied with any regulations or registration procedures required by applicable law to make this license enforceable.

Table of Contents

1. Subject

The OGC Testbed-16 Data Centric Security Engineering Report (ER) continues the evaluation of a data-centric security (DCS) approach in a geospatial environment. In order to fully explore the potential of the DCS concept, this ER first specifies two advanced use case scenarios: Data Streaming and Offline Authorization for querying and consuming protected geospatial content. The ER then specifies the communication with a new architectural component called the Key Management Server (KMS) via an Application Programming Interface (API) created for this Testbed. The API was invoked to register keys used to encrypt data-centric protected content. Then clients called the same API to obtain those keys to perform the data verification/decryption.

The document evaluates options for structuring and encoding of containers and payloads capable of carrying the secured geospatial data sets. Previously utilized DCS container based on the tandem of formats NATO STANAG 4778 "Information on standard Metadata Binding" and NATO STANAG 4774 "Confidentiality Metadata Label Syntax" are alternatively encoded using JSON and JavaScript Object Signing and Encryption (JOSE) security standard. Thus, DCS architecture supports several content representations for enhanced interoperability. The determination of the best suited data representation occurs via Access HTTP header set by the client, which is one of the standard ways of negotiating a specific kind of resource. This header describes the preferred choice of the client. To support this mechanism, this engineering report proposes several new MIME types for geospatial, DCS specific content negotiation.

2. Executive Summary

OGC members can derive business value from this ER in the following areas:

  • Similarities between the DCS approach in the geospatial domain and the well-known commercial/enterprise Digital Rights Management (DRM) architecture for provision of protected multimedia contents. Also, the commercial geospatial content could be provided using this approach.

  • Interoperability through the support for different encoding standards such as Extensible Markup Language (XML) and JSON, as well as the utilization of different container structures, such as STANAG 4774/8 and JOSE to support a variety of encoding standards and container formats.

  • How to use the OGC API - Features Standard to enable client requests the DCS protected content encoded in a preferred way and how the OGC API - Features can be extended with content negotiation via additional media types.

  • Common security context shared by all components. Bearer access tokens are issued by a common Authorization Server as defined in RFC 6750. The use of OAuth2 and OpenID Connect interfaces ensures interoperability.

  • Data-centric Security (DCS) architecture which contains a dedicated Key management server or KMS.

  • KMS API based on the OASIS Key Management Interoperability Protocol Specification 2.x provides interoperable solution and gives the strong protection for keys afforded by KMIP-compliant Servers.

The motivation for DCS is the possibility of preventing unauthorized access to systems storing sensitive data. Such systems could be increasingly popular cloud-based data storage solutions. When looking at drafting OGC standards such as OGC API - Features in a DCS scenario, standards need to include ways to classify the security requirements around data access. This classification (security label) can be performed through metadata fields as already evaluated in the OGC Testbed-15. A fundamental requirement for DCS is that the data is always protected, until an authorized actor makes use of the data. Additional requirements include the need for representation of the source of the information, as well as an assurance that the information has not been tampered with.

DCS protected data could be stored locally at the client location in order to be used within the validity period of time. As the data could pass through systems that do not belong to the data consumer nor the producer, the data must remain protected throughout all infrastructure that handles the geospatial data.

Another important aspect of the DCS is interoperability. In order to create, distribute, and consume the protected data set in an interoperable fashion, specifying the structures to encode the metadata, the protected contents, as well as the other related artefacts such as data access policies is very important.

The Testbed-16 findings show that it is possible to support DCS within an OGC API - Features implementation and have the API instance request the DCS protected content to be delivered in required encoding and DCS container format type. Storing the protected content on a mobile device locally and then decrypting and using the content offline and on demand during a possibly longer period of time is possible. Requesting the protected content online and having it delivered in a streamed fashion for a single consumption is also possible.

In support of the Testbed DCS experimentation, two scenarios were defined:

The first scenario anticipates immediate decryption and consumption of protected content. The key used for encryption is allowed to have lower strength of the encryption: Shorter key = less computational power required to encrypt/decrypt the content. The cypher (an algorithm for performing encryption or decryption) could also be simpler and therefore more efficient. The content owner wants to keep the full control over the protected content. The purpose of the encryption is to mitigate the risk of a possibly unsecured underlying network infrastructure. The content provider (DCS service) creates keys to encrypt requested content on a synchronous request/response basis. The key created by the DCS service gets registered to the KMS and could be retrieved only within its expiration time. The client is not supposed to permanently store encrypted data locally (on a desktop client). Even if the client would try to do that, due to the very short expiration time the referenced key cannot be obtained for such purpose.

The second scenario assumes the clients operate in an offline mode disconnected from the network where the DCS service is located. Protected data required for a "mission" are supposed to be downloaded and stored locally for later (field) use, possibly over a longer period of time. This scenario requires stronger security. As such, the keys are issued with an expiration time. The policies associated with issued keys contain additional geospatial assertions, which limit access rights based on user roles.

For both scenarios an OGC API - Features and DCS compatible service endpoint needs to be aware of the required encoding and the container format. Because one of the requirements for this Testbed activity was to provide support for several encoding and DCS container types, it is important to put the code for the required format in the request. A container format is a data structure which contains encrypted portions of sensitive data and associated metadata. To specify the required response formats several new media types are defined to be used as part of service requests. That includes encodings and standards such as XML, JSON, STANAG 4774/8 and JOSE.

A challenge, especially for the anticipated high grade of interoperability, was related to the absence of the support for either STANAG 4774/8 output format based on JSON encoding or any other structure/format besides the traditional XML encoding in the previous DCS architecture. The STANAG 4774/8 output format is a container format that contains signed and encrypted portions of sensitive data and associated security labels or the metadata. The Testbed participants specified and demonstrated implementations for multiple encoding options and documented recommendations regarding encodings and container formats (STANAG, JOSE).

Another design and implementation challenge was related to the Key Management Service. In the Testbed-16 architecture the KMS is responsible for creating, registering, invalidating and issuing cryptographic keys with selected strength and expiration time. The keys are used to perform cryptographic functions, including authentication, authorization and encryption. The KMS allows separation of DCS protected content from cryptographic material (keys) required for the consumption, which was not the case in Testbed-15. For Testbed-16 the new KMS components implement an OASIS API called KIMP designed to support the key management functions. In case of large data sets, where each entity is protected by a dedicated key, large key sets are required. In such situations, with many thousand keys required, key generation and retrieval takes too long. The slow responses from the KMS is caused by computational intensive key generation and might be mitigated by extending the API and optimize the data securing process.

Future testbeds should investigate following topics:

  • Federated DCS architecture, which enable the collaboration (establishing of a required level of trust) among distinctive security domains.

  • Additional media types for encoding and structuring of DCS protected binary data such as binary maps, tiles and coverages.

  • Creation of new and update of already existing entities for DCS protected data sets.

  • Standardized packaging distribution format(s) for all required artefacts such as policies, keys and protected data payload.

  • Data-centric security for JP2 and GMLJP2 payloads.

  • Standardize KMS

2.1. Document contributor contact points

All questions regarding this document should be directed to the editor or the contributors:

Contacts

Name Organization Role

Aleksandar Balaban

m-click.aero

Editor

Andreas Matheus

Secure Dimensions

Contributor

Michael Leedahl

Maxar

Contributor

George Elphick

Helyx Secure Information Systems

Contributor

Marcus Alzona

keys

Contributor

2.2. Foreword

Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.

3. References

4. Terms and definitions

For the purposes of this report, the definitions specified in Clause 4 of the OWS Common Implementation Standard OGC 06-121r9 shall apply. In addition, the following terms and definitions apply.

AS

OAuth2 Authorization Server — a component that dispatches, validates manages bearer access tokens.

CRUD

In computer programming, create, read (aka retrieve), update, and delete are the four basic functions of persistent storage.

DCAP

Data centric audit and protection, term used by Gartner to describe an approach to information security that combines data security and audit with discovery, classification, policy controls, user and role based access, and real-time data and user activity monitoring to help automate data security and regulatory compliance.

GeoPDP

Geospatial Policy Decision Point — a component of a policy based system that uses a request, attributes about a request (including geospatial attributes) and a policy document to make an access decision to allow access to a resource. The GeoPDP implements the OGC GeoXACML implementation specification.

GeoPEP

Geospatial Policy Enforcement Point — a component of a geospatial aware policy based system that works with a GeoPDP to enforce access decision and perform obligations requested by the GeoPDP.

OGC API

A new OGC API Features Part 1 Core standard for a feature service application programming interface that provides access to feature collections and the items in them. This standard was formally known as WFS3 for Web Feature Service version 3.

LDProxy

LDProxy — An Open Source product by Interactive Instruments which provides most of the REST implementation specified in the OGC API - Features Standard.

PDP

Policy Decision Point — a component of a policy based system that uses a request, attributes about a request (including geospatial attributes) and a policy document to make an access decision to allow access to a resource. The PDP implements the OASIS XACML3 standard.

STANAG

In NATO, Standardization Agreement, defines processes, procedures, terms, and conditions for common military or technical procedures or equipment between the member countries of the alliance.

4.1. Abbreviated terms

ADR

Authorization Decision Request

DCS

Data Centric Security

DRM

Digital Rights Management

GeoPDP

Geospatial Policy Decision Point

GeoPEP

Geospatial Policy Enforcement Point

GeoXACML

Geospatial eXtensible Access Control Markup Language

JOSE

Javascript Object Signing and Encryption

JWT

JSON Web Token

KMS

Key Management Server

OAPIF

OGC API - Features

OGC

Open Geospatial Consortium

PDP

Policy Decision Point

PEP

Policy Enforcement Point

SAML

Security Assertion Markup Language

STANAG

Standardization Agreement

WFS3

Web Feature Service version 3 (Also known as OGC API Features)

XACML

eXtensible Access Control Markup Language

XML

eXtensible Markup Language

XSLT

eXtensible Stylesheet Language Template

5. Overview

Chapter 6 introduces the problem of geospatial data centric security with respect to advanced use case scenarios derived from the digital rights management architecture.

Chapter 7 lists informal requirements and presents two advanced use case scenarios. These scenarios include content negotiation, retrieval, decryption, and the portrayal of data centric secured geospatial data sets on desktop and mobile devices. This chapter also depicts some aspects of Testbed-16’s solution/demonstration architecture.

Chapter 8 discusses payload encoding standards, data-centric container structures, and MIME media types. The chapter presents options for containers and encodings that utilize of XML, JSON, STANAG and/or JOSE standards. The chapter recommends new media type definitions required for content negotiation in "DCS aware" APIs.

Chapter 9 provides a summary of the main findings and explains the results in the implementation for the architecture used in Testbed-16. This section also lists the challenges which were tackled during the design and implementation process.

Chapter 10 considers interesting topics to be researched in future work.

Appendix A provides code snippets that illustrate the XML and JSON encodings as well as container structures based on STANAG and JOSE.

Appendix B explains the engineering aspects of the DCS components D120 (DCS Server) and D145 (Key Management Server).

Appendix C introduces the engineering aspects of the DCS component D146 (Key Management Server).

Appendix D presents Access Control Policies for DCS Server and Mobile Clients.

Appendix E presents DCS Roles Concept and Approach for Mobile Clients.

6. Data Centric Security (DCS)

6.1. Introduction

Data-centric security (DCS) is an approach that underlines the security of the data itself rather than the security of communication infrastructure such as networks, servers, or applications. DCS further embeds security and usage policy within the content. The DCS related work previously conducted in the Testbed-15 explains the motivation for DCS in geospatial environment as "the response to the possibility that an unauthorized user, who intercepts network traffic or hacks systems storing sensitive information gains unauthorized data access".

Testbed-15 explored the DCS essentials and evaluated basis data centric protection (encryption), security labels (metadata), and access control based on security access policies. The policy enforcement considered temporal and spatial attributes assigned to requested data sets and service consumers. Testbed-16 adds the JSON encoding for responses and introduces a dedicated key management server component. Testbed-16 work further allows content negotiation via new, proposed media types. Other aspects of the DCS concept, such as management and tracking, might be subjects of the future work.

6.2. Key Concepts

A data-centric security model includes:

  • Discover: The ability to inspect data storage areas to detect sensitive information.

  • Manage: The ability to define access policies that will determine if certain data is accessible, editable, or blocked from specific users, or locations.

  • Protect: The ability to defend against data loss or unauthorized use of data and prevent sensitive data from being sent to unauthorized users or locations.

  • Track: The constant monitoring of data usage to identify meaningful deviations from normal behavior that would point to possible malicious intent.

According to established theoretical models DCS relies on the implementation of the following:

  • Information (data) that is self-describing and defending, which means metadata that describes the information and the security of data does not depend on applications and infrastructure.

  • Information that remains protected as it moves in and out of applications and storage systems, and changing business context.

  • Policies and controls that account for business context (relevant use case scenarios)

These concepts should be considered as a key aspect of the whole information life cycle phases such as creation, processing, collaboration, storage, archive, search, and finally deletion.

In a DCS architecture the data sets are "labeled" with metadata. This is usually in form of a structured header having attributes which specify their security relevance and allow the application of security access policies on such data (RFC-7444).

Security Labels provide a mechanism for controlling access to information in security environments. Data objects are labeled with a classification, such as "Confidential", "Secret", or "Top Secret". Data consumers are given a clearance, using the same scheme. The core model of security clearance (access control) is that someone accessing information has a security clearance, that controls what information can be accessed.

A common metadata format (DCS container structure) is the starting point from which more attributes could be integrated into the metadata. This includes for example, a creation and validity period, the data taxonomy, or the identity of the person assigning the classification. The data structure to hold this information should be designed in such a way that new attributes can easily be added. For example, the inclusion for post-release protection ensures the data can be released for a number of days, after which the data cannot be accessed. Cryptographic binding of the classification metadata to the data ensures integrity of the label and the data.

Document ITU-T X.841 (Security information objects for access control - Fig.5) provides general recommendation for DCS Access Control. Protected information is represented as a message with a cryptographically bounded (confidentiality) label. On the client-side policy enforcement makes data access decisions based on the label, user credentials (security level), and specific policy assertions about access granting. Comments in blue color added to the original figure represents the Testbed-16 DCS specific implementation details.

ITU TX841 Fig5
Figure 1. DCS Access Control

The most relevant part of a security (confidentiality) label is the classification. Many security label schemes (like those used in the previous Testbed-15 and in this one) use the following classifications:

  • Unclassified

  • Restricted

  • Confidential

  • Secret

  • Top Secret

STANAG 4774/8 standards define the application of a confidentiality label. This is a structured representation of the sensitivity of a piece of information. Previous DCS work was primarily focused on exploring that aspect of DCS. A data originator security label example based on NATO STANAG 4774 is given in the listing below. Encoding is XML. Bound through cryptographic signature with an arbitrary data payload, for example a Geography Markup Language (GML) document, would label the document as "secret".

STANAG 4774 Confidentiality Label
<originatorConfidentialityLabel xmlns="urn:nato:stanag:4774:confidentialitymetadatalabel:1:0">
    <ConfidentialityInformation>
        <PolicyIdentifier>DCS_TB-16</PolicyIdentifier>
        <Classification>SECRET</Classification>
        <GenericValue>OGC</GenericValue>
    </ConfidentialityInformation>
</originatorConfidentialityLabel>

7. Requirements, Scenarios and Architecture

This chapter describes the DCS architecture following the general concept of multiple views. This approach identifies architectural elements while illustrating and validating the architecture design. The contents of the chapter have views of logical, component, process and deployment. However, the focus of the chapter is on the logical components and their interactions. Appendices dedicated to the components provide an overview related to the practical deployment of logical system components (physical or deployment view).

7.1. Requirements

Although the task dedicated to the DCS did not mandate formal requirements in Testbed-16, this section lists informal requirements based on the OGC Testbed-16 Call for Participation (CFP) as well as the section Future Work from previous Testbed Engineering Reports.

Testbed-16 DCS Requirements

R01

DCS architecture will contain a key management service or KMS component, which shall be able to create, register, issue and invalidate keys used to protect the content in the context of DCS.

R02

KMS shall utilize standard or dedicated API to allow the communication with other components.

R03

DCS architecture shall provide the mechanism for content negotiation. Said differently, a client informs the content provider (DCS server) about the preferable encoding of the content and container format.

R04

The OGC API - Features shall provide data protection independent of the transport. Identities, tokens, keys, access rights, policies have to be supported by the API.

R05

DCS architecture shall keep support for XML/STANAG 4774/8 encoding for DCS payload containers.

R06

DCS architecture shall support JSON encoding for DCS payload containers.

R07

DCS architecture shall use well-established standards (JOSE) when implementing the JSON encoding for DCS containers.

R08

DCS architecture shall support encryption for meta-data in DCS containers.

7.2. Scenarios (Use Cases)

For this Testbed, the experiments advanced the DCS concept (with respect to the geospatial domain) to a high-level architecture similar to "Digital Rights Management" or DRM. DRM concepts allow for the creation, protection, and delivery/consumption of content in accordance with contracts put in place between the parties. Such contracts specify which content is available against predefined conditions, usually specified in a policy. DRM architectures make clear the distinctions between content author, owner, providers and consumers. Using a DRM platform, a client could order content. This content could be multimedia more relevant to this topic than geospatial data sets in GML or satellite imagery data. After receiving a payment or obtaining credentials elsewhere the service/client streams and encodes/consumes the content on the fly or downloads and encodes/consumes the content later (possibly several times during the key validity period). With inspiration from a DRM architecture, the Testbed experiments derived use case scenarios and specified component interactions.

drm architecture
Figure 2. Digital Rights Management Architecture

An example of more detailed evaluation of DRM in the geospatial area could be seen in GeoDRM RM.

This motivation and the requirements put on DCS lead us to the following two use case scenarios:

  • Online Streaming

  • Offline Authorization

Because the DCS protected data sets leave the security perimeter of the data owner and are hosted in a cloud and/or distributed via third party channels, the important elements to deal with when applying the concepts of data-centric security are the strength of the encryption key (the length of the key) and cipher algorithm for performing encryption/decryption. These factors (strength and algorithm) relate to the differences in how these scenarios use the data. While the Online Streaming of protected content requires the decryption on the fly, in the case of Offline Authorization the client caches the encrypted content. The client decrypts the content when needed in the offline scenario.

7.2.1. Use Case 1 (Online Streaming)

For the Online Streaming use case, the client ensures the immediate decryption of the data. The client should not offer the ability to cache the encrypted data for use later as the keys are for a single use. In this case, the encryption key may be short for use with a simple cypher since the purpose of encryption is to overcome uncertain network security (e.g. multi-segmented network with unknown segment security or known low level protection). However, one should assume that intermediaries (bad actors) would be able to store encrypted content for later brute force decryption and that (bad) end users could re-distribute decrypted content.

Having said that, in this scenario the DCS server creates keys to encrypt the response content on a request/response basis. The DCS Server uploads the keys to the KMS. Clients retrieve these keys when they get the protected response data set and parse out the key identifications from the unprotected meta-data section of a DCS container. Key retrieval at KMS is only possible by meeting the criteria specified in the KMS policy (including the expiration time of the key). A criterion of the policy concerns the verification of the server’s trust of a client. Achieving continuous protection of the data is only possible with trusted client applications that do support "viewing" of decrypted data only; no "save to disk" operation available.

7.2.2. Use Case 2 (Offline Authorization)

In this scenario the client operates disconnected from the network. In addition to the DRM architecture, the scenario derives motivation from the concept of Geo-information for Disaster Management. Rescue teams equipped with mobile equipment for navigation/communication and situational-awareness receive classified, encrypted geospatial data prior to deployment in disaster areas. The use of the data on the mobile device may span larger period of time. When meeting with first responders, critical information shall be shared with them without compromising sensitive information. Offline authorization requires stronger security partly because the KMS issue keys with longer expiration times. Clients or a service on the mobile device need to maintain policies against keys which may contain geospatial and temporal constraints on the use of the key.

This scenario contains assumptions that the data classification, and the actors that use the device vary. However, the data for all actors and classifications exist on the same device. This allows an incident commander to activate a role on the device and pass it out to an incident responder. Since the curation of data for the device happens prior to deployment in the field, the device needs to store the data, keys and key policies. The security problem increases because multiple users handle the device and not all the users have the same data needs or have clearance to see all the data.

To secure the data, keys and policies, the mobile device has a policy enforcement component PEP). This component maybe separate from or embedded into the GIS application. The PEP needs the ability for an authorized user to select a role from the policy to enforce. The security needs strong encryption and cypher algorithms to protect the data, keys and policies. The need for this strong security stance comes from the fact that the data may be on the device for a long timeframe. Additionally, multiple users may use the data several times before a user with proper clearance removes the data from the device.

The KMS that the curation workflow uses to create key, encrypt data, and sign content needs to support the strong keys and cypher algorithms. The curation tool, which may be on or separate from the mobile policy enforcement component, needs the ability to support the same STANAG 4774/8 derived formats that scenario one uses. In particular, the experiments in this testbed require that the participants use a JSON based encoding that was derived from the NATO STANAG 4774/8 standard.

7.3. DCS Architecture Components

The next figure depicts a high-level TB-16 DCS architecture with respect to the more general DRM architecture as depicted on Figure 2 and used as template:

drm dcs architecture
Figure 3. DCS in relation to DRM Architecture

The figure represents a logical view, which roughly mimics the general DRM blueprint. The implementations are different for desktop and mobile scenarios. In the desktop scenario a DCS server provides protected content on request via an OGC compatible API. An encoder component is implemented inside the DCS service and it is basically irrelevant for this testbed. Mobile scenario on the other side puts the focus on the policy enforcement, decoding and visualizing of protected content on mobile devices with respect to the user rights and policies associated with data sets. Therefore, the function of the encoder was performed by an external tool, which was used to prepare the content for TIE execution. Protected content resides in a cache on a mobile device. The mobile scenario demonstrates the interaction with KMS and content visualization on a mobile device after decryption was performed in accordance with user roles (security levels) and (GeoXACML) policies in the GeoPEP component.

The following components, listed with their essential features, are part of the Testbed-16 DCS architecture (in both scenarios):

DCS Server - Desktop (https://ogc.secure-dimensions.com/dcs)
  • OGC API for test features, OAuth2 resource server

  • Creates and registers DCS keys with KMS

  • The following components build the DCS Server:

    • Geoserver with example data

    • ldproxy: This proxy to the Geoserver produces the OGC API Features on top of Geoserver

    • Policy enforcement point geoPEP, security proxy

    • Policy decision point geoPDP, GeoXACML 3 compliant

Authorization Component/Server (https://www.authenix.eu)
  • OpenID Connect / OAuth2 compliant Authorization Server with federated login (Google, Facebook, eduGAIN, + OGC Portal IdP and Testbed IdP)

  • The OGC Portal IdP containing logins for all OGC members

Testbed IdP (IdP) Component/Server - Desktop (https://ogc.secure-dimensions.com/simplesaml)
  • The OGC Testbed IdP containing (fictitious) users from Testbed-15 with different clearance

Key Management Server (KMS) - Desktop (https://ogc.secure-dimensions.com/kms/api)
  • REST API implemented in PHP, documented with OpenAPI 3.0

Key Management Server (KMS) - Mobile
  • REST API implemented in Flask, documented with OpenAPI Doc 3.0

  • Implements endpoints consistent with the OASIS Standard KMIP Client

DCS Client - Desktop (https://github.com/ogc-leedahl/QGIS/tree/OGC_Testbed_16)
  • QGIS to interact with DCS Server and KMS

  • Obtain key(s) from KMS

  • Validate signature + decode encrypted content

DCS App / Client (Android) - Mobile (https://github.com/ogc-leedahl/QField/tree/Testbed16)
  • QField Client

  • Have a user feature flow for selecting features and using content

  • Obtain features and key(s) from a Policy Enforcement Component

  • Validate signature + decode encrypted content

Policy Enforcement Point (Android GeoPEP) - Mobile
  • Has an administrative curation flow for creating encrypted contents

  • Obtains content from some imagery source for curation

  • Obtains encrypted and signed content from a KMS

  • Serves curated encrypted features and encryption keys to a client

  • Implementation of the policy enforcement component could be embedded in the mobile client or as a stand-alone component

DCS App (iOS) - Mobile
  • Apple Mapkit-based

  • Encrypted "DCS Features" Data pre-loaded onto mobile device

  • Allows selection of "DCS Roles" as provided by the iOS PEP

  • Displays feature content as decoded by the iOS PEP

Policy Enforcement Point (iOS PEP) - Mobile
  • Module implemented within iOS DCS App

  • User/Device-Specific "DCS Roles" Data pre-loaded onto mobile device

  • Retrieves encryption keys for specified roles from KMS (caches for offline use)

  • Allows DCS App to validate signature + decode encrypted content based on current DCS Role

7.3.1. Scenario 1, DCS Desktop/Client/Server

desktop uc architecture
Figure 4. Testbed-16 DCS Desktop/Client/Server Components and their Interactions

Interactions between the desktop and server components of the architecture are:

Authorization

  1. Client registers for OAuth2 Authorization Code Grant

  2. DCS Server is Resource Server (registered for OAuth Client Credentials Flow)

Service Request

  1. Feature request goes to an OGC API compatible DCS Server endpoint. The request contains access_token, key_challenge, challenge_method

  2. The DCS client sends an OGC API - Features encoded request to the DCS Server including the access token and content type encoded in HTTP Access header for content negotiation. The access token from the request gets validated via the Authorization Server.

  3. Based on the response from the backend feature data repository (OGC API), the DCS Server creates a cipher key per feature type classification (top_secret, secret, confidential, classified). The cipher keys differ in length and algorithm for each classification level. For each cipher key created, the DCS Server registers the key with the KMS.

  4. Every key_id from the KMS response is included in the DCS container of choice (content negotiation). DCS server returns the response in the form of a DCS container of chosen encoding to the client.

Decryption Key Retrieval

  1. The DCS client reads the response DCS container and extracts a list of key identifiers.

  2. For each key_id the DCS client sends a request to the Key Management Server for obtaining the cipher key and decodes the payload.

Appendix Engineering Aspects for D120 and D145 provides very detailed sequence and explanation for desktop client use case (UC 1).

7.3.2. Scenario 2, DCS Mobile App/Client & Policy Enforcement Point

The DCS Mobile Scenario implementations differ slightly in their architectures and feature sets, allowing for the exploration of different distribution mechanisms.

7.3.2.1. QField / GeoPEP (Android Mobile App/Client)

The following figure shows the Android-based Testbed-16 DCS Mobile App Client/Server Components and their Interactions.

mclient components
Figure 5. Testbed-16 DCS Mobile App Client/Server Components and their Interactions (Android)

Interactions between the mobile and server components of the architecture are:

  1. Curation Flow: An administrative user or a user with proper clearance curates data and selects an active role to serve to a GIS user.

    1. A user using the GeoPEP defines roles, selects the features involved per role and defines rules for each role.

      1. The client fetches the data from files, a Web Feature Service or some other means depending on the implementation.

    2. The GeoPEP asks the KMS to create keys and encrypt data.

    3. The KMS creates the keys and encrypts the data and returns them to the GeoPEP.

    4. The GeoPEP asks the KMS to create signing keys and sign content.

    5. The KMS returns the keys and signed content to the GeoPEP.

  2. Feature Flow: A GIS user selects features to use in the GIS app and uses the data.

    1. A user using a client fetch a list of features to work with from the GeoPEP.

    2. The client fetches the features from the GeoPEP.

    3. The client fetches keys from the GeoPEP, validates the signature and decrypts the content.

7.3.2.2. MapKit / DCS Roles (iOS Mobile App)

The iOS Mobile Client architecture implements the DCS Roles concept, separating the scenario data into two categories - Feature Data ("DCS Data") and "DCS Roles". Please see Appendix E: Roles for full details.

MobileRolesFeaturesKeysInteraction
Figure 6. Testbed-16 DCS Mobile App Components, Roles, and their Interactions (iOS)
7.3.2.2.1. DCS Roles vs Users

Within this role-based mobile implementation, a user is the assigned user for the mobile device. That user has their personal security clearance loaded onto the device as a DCS Role. In addition to that personal DCS Role, per the scenario multiple generic DCS Roles representing generic security clearances for the categories of people the user may encounter in the field who the user may wish to share information.

7.3.2.2.2. DCS Roles vs DCS Data

Within this concept, each DCS Data item is to be restricted according to a specific Policy Identifier and a specific Classification, as specified within a DCS Data container (as described elsewhere in this document). Whereas each DCS Role could potentially specify access to multiple Classifications and multiple Contexts.

This allows the "filtering" of data displayed on the mobile device to show only DCS Data items that meet the restrictions of the current active DCS Role.

Furthermore, this allows for (requires) the DCS Data and (list of) DCS Roles to be distributed and installed separately on the mobile devices.

7.4. DCS Architecture Interactions

7.4.1. Desktop/Client/Server Interactions

Following diagram explains the workflows related to the communication with Authentication Server and KMS for both use cases:

  • DCS Server creates key(s) for “immediate” use (Online Streaming UC)

    • keys are simple (symmetric and short)

    • expires_in as set by the DCS Server

  • “expires_in” and “algorithm” as set by the client’s characteristics

    • grant_type=(implicit, authorization_code)

    • If scope=offline_access (possible for authorization_code_grant), key algorithm will be stronger but still symmetric (Offline Authorization UC)

  • Key Registration (POST /kms/keys)

    • Requires scope=kms

    • Client (D120) has no KMS scope

    • DCS Server has KMS scope

  • Client registers and uses OAuth2 Authorization Code Grant

  • DCS Server is Resource Server (registered for OAuth Client Credentials Flow)

  • OGC API Features + access_token + key_challenge + challenge_method

The workflow visualization provides the notation of UML sequence diagrams, which depict interactions among DCS architecture components for both use case scenarios. The diagram below explains the process of creation of DCS protected content on behalf of a client. The diagram also depicts the creation of cryptographic key material, registration on KMS server (with the return of key identifier) and encryption of data payload.

dcs component interaction 1
Figure 7. TB-16 DCS component interactions 1

The next figure depicts the consumption of data centric protected information. The client first obtains and subsequently parses the protected content. The client, for every encrypted data segment, retrieves the key_id from the container’s meta-data section and then uses that key to obtain the cryptographic key from KMS. Finally, the client decrypts and presents the protected content.

dcs component interaction 2
Figure 8. TB-16 DCS component interactions 2

All implementation details could be seen in Engineering Aspects for D120 and D145

7.4.2. Mobile App/Server Interactions

The GeoPEP scenario for the mobile and KMS interactions involves the curation of offline data to present in the field to various users representing a variety of roles. To satisfy this requirement, an implementor may choose to implement the solution using GIS Software and a stand-alone GeoPEP for policy enforcement. The implementor may also choose to embed the GeoPEP inside the GIS Software. Regardless of the approach the interaction between the GIS component and GeoPEP component are similar.

The first step is to curate the data in the GeoPEP. This may be an offline process done with some curation tool, or it can be done in the GeoPEP. Regardless of where it is done the curation flow needs to define:

  • Roles

  • Which features or feature classes that the roles can use.

  • Rules for what, when and where users may view features.

To facilitate the protection of the features the curation component can reach out to a KMS to:

  • Create encryption keys

    • In this experiment the implementors are using symmetric keys to encrypt the feature inside the feature collection as was described in the desktop/server interactions above.

  • Encrypt sensitive information about individual features.

    • The KMS creates keys and encrypts feature data that the KMS receives from a curation tool.

    • The curation tool creates a JSON Web Encryption (JWE) formatted response for each feature.

  • Create signing keys.

    • In this experiment the implementors are using asymmetric keys to sign the feature collections.

  • Sign the feature collection.

    • The curation tool stores signed feature collection in a Java Web Signature (JWS) structure.

The next flow of interactions is between the client and a GeoPEP component. The components may be separate or embedded in the same application.

  • A user of the GIS client selects features to display from what is available to the role the user is assuming.

  • The GIS component retrieves the features and keys from the GeoPEP component.

  • The GIS component validates the signature, decrypts the data and displays it to the user.

7.4.2.1. DCS Mobile App and GeoPEP Server Interactions with Role Definitions

For both the iOS DCS App and the Android GeoPEP implementations, the application or GeoPEP limits the server interaction to the initial configuration of the application/component after loading or fetching the data. This is import to the scenarios this experiment defines as the scenarios start with the assumption that communications may be down for responders in the field. Thus, it is important to load the data before mobilizing in the field. Another import part of these interactions from the application/component is the use of rules for the specification of roles within software. Roles define rules for the encryption of the features and thus effect the interactions with the Key Management Service (KMS).

The mobile applications query the KMS for the encryption keys for the feature according to the specification of rules for roles in the application, caching these keys for offline (from the KMS/internal network) use. The iOS application bases the rules by roles and fetches keys according to the role specification (clearance, which may contain multiple classifications). The iOS application applies the appropriate key to each feature allowed by the role. The Android GeoPEP allows the user to specify a classification level, and an encryption strength for each feature class. The GeoPEP then fetches keys from the KMS for each feature according to the encryption strength specification of the feature class. The GeoPEP then defines roles and how the features map to them.

There are advantages and disadvantages to both approaches. Basing the encryption off of the role definition and choosing one key to represent a role/classification pairing requires fewer keys to encrypt/decrypt the features. Creating a new key for each feature provides more security but at the cost of needing more keys for encryption/decryption. Network latency and bandwidth considerations play into these decisions. In a time-critical response, creating separate keys may not be the best trade off since it can take hours to create the keys and encrypt the data on large datasets. However, if security is more important, because of the classification of the data, than using a single key per role/classification, that may not be the best security posture. Another factor for key implementations is the federation of features. If multiple authors collaborate to compose features, each author may sign/encrypt features in the collection differently. This may result in the use of different Key Management Services. This testbed only looked at a single agency scenario but future work may include federations.

8. Data Encodings, DCS Containers and Media Types

8.1. Introduction

Information security can be applied either on the infrastructure (perimeter-security) or in a data-centric fashion. While infrastructure/transport oriented security standards are integrated in communication infrastructure like in TLS 1.3, DCS is fully independent from the underlying communication infrastructure. This is important because (in many security critical applications) the stakeholders cannot rely on the security provided by communication channels (like TLS). With other words, data owners need to remain in charge of data securing when they are distributed in cloud-based resource services. Thus, it appears reasonable to incorporate security concepts in the data sets, which urges expanding the existing data structures for additional elements to carry encrypted data and artefacts such as metadata, security labels, signatures, etc.

In protocols with application-layer intermediaries, channel-based security protocols protect messages from attackers between intermediaries, but not from the intermediaries themselves (not from, for example, malicious applications running on the platforms of intermediaries). These cases require object-based security technologies, which embed application data within a secure object that can be safely handled by untrusted entities as it was described for JSON encoding format (RFC 7165). Data-centric security advocates generation, storing and provision of security related metadata and content such as security tokens (digital identities), policies, keys, signatures, encrypted content and schemas.

In the geospatial domain, data centric security is applied on data encoded using geospatial domain specific grammars (schemas) such as GML or GeoJSON. GML is an XML encoding while the GeoJSON format is encoded in JSON. The previous work in Testbed-15 regarding the DCS was based on GML and the container structure required for DCS was encoded using STANAG 4774/8 and XML binding.

JSON (JavaScript Object Notation) is a well-known XML alternative and widely used data-interchange format. GeoJSON was created as a response to the popularity of JSON encoding format and as an alternative to previously established GML format based on XML and XML Schema. GeoJSON defines several types of JSON objects and the manner in which they are combined to represent data about geographic features, their properties, and their spatial extents. RFC 7946 is the current GeoJSON standard.

Additionally to new DCS container formats, new HTTP Accept header content types are proposed for content negotiation. The Accept request HTTP header advertises which content types (container formats) the client is able to understand, which is important for interoperability.

8.2. DCS Container

If the security is required to be applied in the data-centric fashion, an additional data structure needs to carry signature and encryption artefacts. This includes the metadata related to a data origin identity, access rights/policies, and optionally data structure/taxonomy. Two encoding options for data centric securing of (geospatial) content are available. These are XML-GML and GeoJSON based encoding standards with corresponding containers. Two set of standards, NATO STANAG 4774 and STANAG 4778 (short STANAG 4774/8) and JWT/JOSE were chosen to implement the required container structure. Additional DCS containers and encodings require new media types to describe all useful combinations of data/container encoding and applied security functions.

To enable data exchange and interoperability among NATO Member States, NATO STANAG 4774 and 4778 define a syntax (4774) for trusted security labels / markings and how these are cryptographically bound to data objects (4778) to ensure the integrity of data and the label. Trusted security labels include, for example, data on the creator, creation and expiration date. There are different profiles for REST, SMTP, or SOAP, XMPP or Office Open XML. JSON binding is not supported.

Beside standard security labels like classification, creator or creation and expiration date, in the geospatial domain additional metadata about the spatial scope of the data set is frequently relevant. For example, large, encrypted sets of geographic entities having metadata labels containing a bounding box allow access policies, which constrain data usage based on user location.

For JSON encoded data mostly used in interactions via RESTful APIs there is a family of standards designed to implement confidentiality and integrity in a data centric fashion. These standards are based on JSON Web Token (JWT) and also includes the JWE and JWS specifications, which is known as JOSE. JWT is basically seen as the root specification, which the JWE and JWS were derived from.

8.3. STANAG 4774/8 DCS Container

STANAG 4774/8 was used to implement the Testbed-15 DCS architecture with trusted security labels. Currently, the standard fully supports XML binding. Other representations, for example in JSON, would be possible (JSON is currently not supported). The full STANAG 4774/8 data structure is depicted in the following figure:

stanag container
Figure 9. STANAG DCS Container Structure

The figure displays the container structure from testbed-15, which holds a key (symmetric) required for data decryption. The key is protected inside of the encrypted metadata section and can be extracted only if it were encrypted with the receiver’s public key, which means the encryption was performed using public cryptography (PKI). This approach has certain security limitations and inflexibility. In Testbed-16 that will be mitigated through a new component - the KMS responsible to issue decryption keys on request (for a given key_id encoded in a DCS container). Instead of encrypted keys, their identifiers (key_id) originating from the KMS will be placed in DCS containers.

8.4. STANAG 4774/8 DCS Container in JSON

Despite the fact that only XML binding specifications were provided for STANAG 4774/8 so far, there is another, (from the interoperability point of view) useful option - to introduce an equivalent binding in JSON for clients, services and APIs based on that technology. In such a scenario, JWS (encryption) and JWT (signature) standards (also called JOSE) are used instead of JSON-encoded STANAG 4778 content to ensure the integrity of the payload and security label, while STANAG 4774 will provide a blueprint for security label information and other meta-data of interests.

8.5. JOSE (JWS & JWE) based containers for JSON

In the JavaScript/JSON ecosystem the communication is secured on a data level by applying a set of standards such as JWT and JOSE (combination of encryption and signature via JWS and JWE). The standards provide a structure intended to capture the metadata and artefacts required for standard security functions such as confidentiality and integrity. The following table gives an overview of the security stack based on JWT and JOSE:

  • JavaScript Object Singing and Encryption (JOSE)

    • JSON Web Signature (JWS)

      • A way of representing content secured with a digital signature (or MAC) using JSON data structures and base64url encoding

    • JSON Web Encryption (JWE)

      • Like JWS but for encrypted content

    • JSON Web Key (JWK)

      • JSON data structures representing cryptographic keys

  • JSON Web Token

    • Defines the use of cryptographic algorithms and identifiers for JWS, JWE and JWK

    • A compact URL safe means to represent claims/attributes to be transferred between two parties

    • A JWT is a JWS and/or a JWE with JSON claims as a payload

A JSON security stack built around the standards listed above visualizes the relations between standards. While everything is encoded in JSON, JWE and JWS represent standard cryptographic operations related to encryption and signing while JWT deals with digital identities.

json security stack
Figure 10. JSON security stack

When Object Signing and/or Encryption (JOSE) is used to protect a payload, the resulting structure (as depicted on the figure below) establishes a type of container holding both the payload and the metadata. While JWS requires a fairly simple format to ensure the integrity, JWE requires additional attributes to support the confidentiality through the encryption. The payload could be any geospatial content, for example GeoJSON. The figure represents the container encoding with comma separated sections. An alternative would be to use a full, slightly more complex JSON representation.

nested jwt
Figure 11. JOSE DCS container structure

For JWS the payload is first signed and enclosed in a data structure defined in RFC 7515. The structure has:

  • Header

  • Payload

  • Signature

The header containing the signature metadata, the payload holds the base64 encoded protected content and the signature ensures integrity (or that header and payload are cryptographically bound to each other). The payload segment might also enclose the additional metadata information.

If the confidentiality of data is required, the plaintext data can be encrypted and wrapped up in a container structure based on JWE (RFC 7516). The container will have the structure according to the specification containing the following parts:

  • Header

  • Encrypted key

  • Initialization vector

  • Ciphertext

  • Authentication tag

Ciphertext is the section where encrypted data payload (created out of original payload plaintext) is placed. Other segments such as initialization vector or authentication tag are populated according to the specification and in order to support data integrity.

The information to protect remains encoded following STANAG 4774/8 but in JSON (binding). The JOSE would provide additional cryptographic protection (ensuring integrity) for such a DCS container in JSON encoding. Following are the possible container forms or the combination of "JOSE for security implementation" and "STANAG to encode the meta-data":

  • Metadata = Plain JSON

  • Metadata = JWS (RFC 7515)

  • Metadata = JWE (RFC 7516)

The options are depicted in the following three figures. The green bar represents the overall information (data-centric container with all protection measures). Metadata as shown here is STANAG encoded in JSON:

stanag json8
Figure 12. Plain STANAG 4774 metadata encoded in JSON
stanag json7
Figure 13. Signed STANAG 4774 metadata encoded in JSON in JWS container
stanag json6
Figure 14. Encrypted STANAG 4774 metadata encoded in JSON in JWE container

8.5.1. DCS Container based on JWS

The JWS container implements a signature mechanism to protect the integrity of payload and related meta-information and bind them together cryptographically. The container consists of three parts. The following figure depicts the structure. The payload section contains STANAG 4774 metadata and the information. The header section holds metadata about the signature algorithm and media type (context). For example, the attribute "ctx" (context) is defined as application/stanag+json. This represents a new media type used to identify the server response containing the mix of payload and STANAG metadata.

stanag json3
Figure 15. STANAG metadata in JWS container with signature

The workflow related to the DCS container based on JWS includes the integrity validation (signature verification), conversion back from Base64 format, and extracting the key identification values. These are used to retrieve the keys for decryption from the KMS server component:

stanag json4
Figure 16. Container parsing/decryption workflow

8.5.2. Structure of Information as Metadata

Extending the metadata section of a DCS container for payload structure is useful. For example, the XML encoding is meant to include XML schema elements, which highlights the payload structure.