Internet-Draft | Network Function Virtualization | February 2024 |
Zhang, et al. | Expires 30 August 2024 | [Page] |
This document defines a JSON-based fine-grained access (JSON-FA) method, which aims to provide a flexible and easy-to-implement way to achieve fine-grained access control in JSON data.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 30 August 2024.¶
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
With the rapid development of information technology, data has become a core asset for enterprises and organizations. However, frequent occurrences of data breaches and unauthorized accesses have made data security an urgent issue.¶
Traditional access control methods, such as Role-Based Access Control (RBAC) and Attribute-Based Access Control (ABAC), although protecting data security to some extent, gradually show their limitations when dealing with complex and dynamic data access requirements. To address this issue, this paper proposes a JSON-based fine-grained access control method that can be applied to various scenarios such as web services, cloud computing, and the Internet of Things.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119][RFC8174].¶
JSON, A lightweight data exchange format.¶
RBAC, A popular access control strategy that associates access privileges with specific roles rather than directly with users or user groups.¶
ABAC, A more granular and flexible access control method. In ABAC, access decisions are not only based on the identity or role of the user, but also on various attributes related to the access request.¶
Fine-Grained Access Control, A security mechanism used to precisely control and manage access privileges to system resources.¶
Fine-grained access control enables permission control for individual data items or data attributes, providing more precise protection for data. At the same time, the lightweight and easy-to-read/write nature of JSON (JavaScript Object Notation), along with its structured and nested characteristics, facilitates the simple description of complex data structures. The conciseness, readability, and structured nature of JSON make it an ideal choice for describing data structures.¶
This document proposes a JSON-based fine-grained access (JSON-FA) control method that fully utilizes the formatting characteristics of JSON. It describes the attributes of the accessing subject in JSON format,and utilizes the data structure of an access control tree to represent fine-grained access control policies on the resource server side.This approach makes the access control method more flexible, manageable, and extensible. We hope to provide a more flexible, precise, and efficient solution in the field of data security through this method.¶
JSON-FA (JSON-based Fine-Grained Access Control) data format is a standardized format used to initiate access requests to access control systems. This format allows clients (such as users or applications) to explicitly specify the resources they wish to access, the operations they intend to perform, and fine-grained access attributes (including identity, role, and other attribute information).¶
The JSON-FA data structure mainly consists of a JSON object that contains the requested access resources and their fine-grained access conditions, including the following fields:¶
This example describes the request where User123 submits a request named request123 through an access control server. The request is for read-only access to a specific file named "document.txt". Additionally, when submitting the request, User123 provides fine-grained attributes related to the request, including his role and department.¶
{ "requestId": "request23", "subject": "user123", "operation": "read", "resource": { "resourceType": "file", "attributes": { "fileName": "document.txt", "fileType": "text/plain" } } "condition": { "role": "manager", "department": "finance" } }¶
In this article, CP-ABE (Ciphertext-Policy Attribute-Based Encryption) is chosen as the encryption algorithm to achieve fine-grained access control. While role-based access control and attribute-based access control can control whether users have access permissions to view data, they do not guarantee the security of the data itself. CP-ABE encrypts the data based on access control policies, meaning that even if an attacker intercepts the ciphertext, they cannot decrypt the file without the corresponding permissions and keys. This ensures the security of the data and makes fine-grained access control more effective.¶
Ciphertext-policy Attribute-Based Encryption (CP-ABE) algorithm allows data owners to define access policies based on the attributes of data receivers. These policies are encrypted within the ciphertext, while the receivers' attributes are encoded in their private keys.?Only receivers with attributes that meet the access policies encrypted in the ciphertext can decrypt and access the original data. This encryption method provides fine-grained access control, providing a balance between data security and flexibility.¶
The CP-ABE algorithm works as follows:¶
Algorithm Parameters:¶
To ensure the security of JSON-FA, the following points need to be considered:¶
Data encryption: Encrypt the transmitted JSON data to prevent data tampering.¶
Access Control Rule Management: Regularly manage and maintain access control rules to prevent their leakage and tampering.¶
Logging and Auditing: Record all successful and failed authentication attempts, regularly audit and perform security analysis on access control logs to promptly detect and address abnormal access behaviors.¶
This document has no IANA actions.¶