From 83306030f9a6a3c65bd906752591da71631528f2 Mon Sep 17 00:00:00 2001 From: annie_wangli Date: Thu, 7 Apr 2022 16:49:33 +0800 Subject: [PATCH] update docs Signed-off-by: annie_wangli --- en/readme/Security.md | 88 +++++++++++ en/readme/driver.md | 149 ++++++++++++++++++ .../security_subsustem_architecture.png | Bin 0 -> 53408 bytes 3 files changed, 237 insertions(+) create mode 100644 en/readme/Security.md create mode 100644 en/readme/driver.md create mode 100644 en/readme/figures/security_subsustem_architecture.png diff --git a/en/readme/Security.md b/en/readme/Security.md new file mode 100644 index 0000000000..0eedb91670 --- /dev/null +++ b/en/readme/Security.md @@ -0,0 +1,88 @@ +# Security + + +## Introduction + +The security subsystem provides system, data, and application security capabilities to protect system and user data of OpenHarmony. + +Its functions include application integrity verification, application permission management, device authentication, OpenHarmony Universal KeyStore (HUKS) key management, and data transfer management. + +## Architecture + +**Figure 1** Security subsystem architecture + +![](figures/security-architecture.png) + +The security subsystem consists of the following functional modules: + +- Interface layer: provides APIs to developers, some of which are only available for system applications + +- Application permission management: implements permission management for the application framework subsystem and provides APIs for applications to request permissions and query the permission granting status. + +- Application integrity verification: verifies application integrity during application signing and installation. +- Device authentication: provides key agreement and trusted device management capabilities for interconnections between devices in a distributed network. + +- HUKS key management: provides the key management service for basic device authentication. + +- Data transfer management: provides API definitions related to data transfer management and control. + +## Directory Structure + +``` +/base/security +├── appverify # Application integrity verification +├── dataclassification # Data transfer management +├── device_auth # Device authentication +├── huks # HUKS key management +└── permission # Permission management +``` + +## Constraints + +- In the current version, application permission management is available only for local applications. (The stub mode is used for joint commissioning of upper-layer distributed services.) +- Device authentication includes authentication for devices with the same account and peer-to-peer device authentication. Currently, only the latter is available. (The stub mode is used for joint commissioning of upper-layer distributed services.) +- OpenHarmony-specific certificates are used for application integrity verification. The corresponding public key certificates and private keys are preset in the open-source code repositories of OpenHarmony to provide offline signing and verification capabilities for the open-source community. The public key certificates and the corresponding private keys need to be replaced in commercial versions that are based on OpenHarmony. + +## Usage + +**Application Permission Management** + +In OpenHarmony, applications and system services run in independent sandboxes. Both processes and data are isolated from each other to protect the security of application data. However, services or applications running in the sandboxes provide some APIs to implement specific functionalities. To access these APIs across processes, applications in other sandboxes need the required permissions, which are granted and managed based on a permission management mechanism. + +Application permission management provides a mechanism for defining permissions, allowing system services and applications to define new permissions for their sensitive APIs. To access these APIs, other applications need the required permissions. + +Application permission management also allows applications to request permissions that are defined by the system or other applications. Upon obtaining the permissions, applications can access the sensitive APIs provided by the system or other applications. + +In addition, application permission management allows users to view and manage the permission granting status. + +**Application Integrity Verification** + +OpenHarmony allows installation of applications. To ensure the integrity and trustworthiness of the applications to be installed in OpenHarmony, the applications must be signed and their signatures must be verified. + +After developing an application and generating the installation package during the application development process, you must sign the installation package to prevent it from being tampered with when released on devices. The OpenHarmony application integrity verification module provides the signature tool, specifications for generating the signing certificate, and required public key certificate for you to sign the application packages. A public key certificate and a corresponding private key are preset in OpenHarmony to easy your operation. You need to replace the public key certificate and private key in your commercial version of OpenHarmony. + +In the application installation process, the OpenHarmony application framework subsystem installs applications. Upon receiving an application installation package, the application framework subsystem parses the signature of the installation package, and verifies the signature using the application integrity verification APIs. The application can be installed only after the verification is successful. During the verification, the application integrity verification module uses the preset public key certificate to verify the signature. + +**Device Authentication and HUKS** + +A unified device binding and authentication solution that covers 1+8+N devices is available. Generally, device authentication provides support for cross-device communication implemented by DSoftBus, rather than directly interacting with applications. Device authentication provides the following functionalities: + +- Building and maintaining unified trust relationship for a group of devices using different accounts + + Devices with different accounts can set up a local trust group after a trust relationship is built by certain means such as scanning a QR code. Services can call APIs to query the group information. + +- Implementing unified device authentication + + A unified authentication solution is provided to discover devices and perform connection authentication and key agreement for encrypted, end-to-end sessions through DSoftBus for the devices in a trust group. + +HUKS provides credentials for device authentication and algorithms for key agreement protocols. + +**Data Transfer Management** + +In OpenHarmony, the data transfer management module provides cross-device data transfer management and control policies for distributed services. The data transfer management module defines a sef of APIs to provide management and control policies for cross-device data transfer and obtain the highest risk level of data to be sent to the peer device. + +## Repositories Involved + +Security subsystem + +base/security diff --git a/en/readme/driver.md b/en/readme/driver.md new file mode 100644 index 0000000000..29e0e9633d --- /dev/null +++ b/en/readme/driver.md @@ -0,0 +1,149 @@ +# Driver + +## Overview + +The OpenHarmony driver subsystem is constructed using the C object-oriented programming \(OOP\). It provides a unified driver platform through platform decoupling, kernel decoupling, and compatible kernels. This unified driver architecture platform is designed to provide a more precise and efficient development environment, where you develop a driver that can be deployed on different systems supporting HDF. + +The OpenHarmony driver subsystem provides the following key features and capabilities to shorten the driver development period and make third-party device driver integration much easier: + +- Flexible framework capabilities + + Based on the traditional driver framework, the OpenHarmony driver subsystem builds flexible framework capabilities to deploy terminal products with the capacity ranging from hundreds KB to hundreds MB of memory. + + +- Standardized driver APIs + + The OpenHarmony driver subsystem provides you with abundant and stable driver APIs, which are compatible with those of future-proof smartphones, tablets, smart TVs. + + +- Component-based driver models + + The OpenHarmony driver subsystem supports component-based driver models. It provides more refined driver management to dismantle components, enabling you to focus on the interaction between the hardware and driver. + + The subsystem also presets some template-based driver model components, such as the network device models. + + +- Normalized configuration GUIs + + The OpenHarmony driver subsystem provides a unified configuration GUI and a cross-platform tool for configuration conversion and generation to implement seamless switchover across platforms. + + +You can use DevEco to manage driver projects, generate driver templates, and manage settings to make the development of OpenHarmony drivers easier. + +## Architecture + +The OpenHarmony driver framework adopts the primary/secondary mode and is developed based on the framework, model, competence library, and tool. + +**Figure 1** Driver subsystem architecture +![](figures/driver-subsystem-architecture.png "driver-subsystem-architecture") + +- Driver framework stored in the **framework/core** directory + - Loads and starts drivers. + - Deploys and expands the driver framework flexibly through the object manager. + +- Driver model stored in the **framework/model** directory + - Provides model-based driving capabilities, such as network device models. + +- Driver capability library stored in the **framework/ability** directory + - Provides basic driver models, such as the I/O communication model. + +- Driver tools stored in the **framework/tools** directory + - Provides tools for HDI API conversion, and driver configuration and driver compilation. + +- Driver APIs stored in the **lite/hdi** directory + - Provides standardized driver APIs. + +- Support stored in the **framework/support** directory + - Provides platform driver APIs and system APIs with normalized abstraction capabilities. + + +## Directory Structure + +``` +drivers +├── adapter # Adaptation code for differentiated platforms +├── framework # Core code of the HDF +└── peripheral # Peripheral driver code +``` + +## Use + +**Figure 2** Interaction between the driver and framework +![](figures/interaction-between-the-driver-and-framework.png "interaction-between-the-driver-and-framework") + +Driver loading is mostly done by the driver framework, and you only need to register and configure required APIs. The driver framework will load and initialize the driver based on the parsing content. + +Driver development based on the HDF consists of the following three parts: + +1. Driver: Develop the functions. + +2. Information configuration: Present the loading information of the driver. + +3. Resource configuration: Configure the hardware information of the driver. + +The driver mainly aims to develop the functions. + +The first part that catches your eyes is the driver entry, which is described through **DriverEntry**. + +Three APIs are available, namely **bind**, **init**, and **release**. + +``` +struct HdfDriverEntry g_deviceSample = { + .moduleVersion = 1, + .moduleName = "sample_driver", + .Bind = SampleDriverBind, + .Init = SampleDriverInit, + .Release = SampleDriverRelease, +}; +``` + +**Bind**: This API is used to bind driver devices and its functions. + +``` +int32_t SampleDriverBind(struct HdfDeviceObject *deviceObject) +{ + // TODO: Bind device service to device object. + // And you can also initialize device resources here. + return HDF_SUCCESS; +} +``` + +**Init**: When devices are successfully bound, the framework calls **Init** to initialize the driver. After initialization is complete, the driver framework will determine whether to create external service interfaces based on the configuration file. If the driver fails to be initialized, the driver framework will automatically release the created device interface. + +``` +int32_t SampleDriverInit(struct HdfDeviceObject *deviceObject) +{ + // TODO: Init hardware or other resources here. + return HDF_SUCCESS; +} +``` + +**Release**: When you need to uninstall a driver, the driver framework calls this function to release the driver resources. Then, other internal resources will be released. + +``` +void SampleDriverRelease(struct HdfDeviceObject *deviceObject) +{ + // Release all resources. + return; +} +``` + +## Installation + +The OpenHarmony driver is mainly deployed in the kernel space using the static link mode. It is compiled and packed with the kernel subsystem and system image. + +**Figure 3** Driver installation +![](figures/driver-installation.png "driver-installation") + +## Repositories Involved + +**Driver subsystem** + +[drivers\_framework](https://gitee.com/openharmony/drivers_framework/blob/master/README.md) + +[drivers\_adapter](https://gitee.com/openharmony/drivers_adapter/blob/master/README.md) + +[drivers\_adapter\_khdf\_linux](https://gitee.com/openharmony/drivers_adapter_khdf_linux/blob/master/README.md) + +[drivers\_peripheral](https://gitee.com/openharmony/drivers_peripheral/blob/master/README.md) + diff --git a/en/readme/figures/security_subsustem_architecture.png b/en/readme/figures/security_subsustem_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2b7e577f4f3ab9729a7cfc37b440acd964579d GIT binary patch literal 53408 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 Ge*Pa|Gc11q literal 0 HcmV?d00001 -- GitLab