Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the technical solutions of the present invention will be clearly and completely described below with reference to specific embodiments of the present invention and corresponding drawings. It will be apparent that the described embodiments are only some, but not all, embodiments of the invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
Automobile data security has become the most important problem of current regulatory authorities In China, in 2021, several regulations (solicitation opinion manuscripts) on automobile data security management issued by national network credit office have been confirmed, along with popularization and penetration of ADAS (ADVANCED DRIVING ASSISTANCE SYSTEM ) and intelligent cabins, a large amount of personal data and national security related data are stored In automobile parts, the automobile is networked, and application software running In the parts lacks legitimacy authentication capability, so that an attacker can randomly access sensitive data In the parts of the automobile (Linux/Android system), such as DCU (Domain Control Unit, domain controller) and IVI (In-Vehicle Infotainment, in-vehicle information system) host computers, and implanted application programs can directly access sensitive data In the parts. In addition, whether or not a legitimate application among the components has access to personal sensitive data and transmits such data is also a concern.
Automobile parts are mainly divided into two types according to the type of a processor, namely an MCU (Micro Control Unit, a microcontroller) and an MPU (Micro Process Unit, a microprocessor). The MCU is developed mainly by using a C code or an RTOS (Real-time operating system) system, such as an airbag ECU (Electronic Control Unit ), and the MPU is developed mainly by using a Linux/Android system, such as DCU or IVI. The personal sensitive information stored by the parts of the MPU is the most in the two parts, so the invention mainly aims at the application software in the parts, and realizes the identity authentication technology of the application software.
In general, an application accesses underlying data, and the data in the ROM or the RAM can be accessed through an OS (operating system) kernel and a BSP (board level support package, board Support Package), and the whole process is completely without any protection and control mechanism, so long as the application installed in the component can theoretically access any data stored in the component, and the whole access process is not controlled by any control.
The trusted execution environment (Trusted Execution Environment, TEE) may guarantee computation that is not interfered with by the conventional operating system, and is therefore referred to as "trusted". This is achieved by creating a small operating system that can run independently in the trust zone (secure world) that directly provides a small number of services in the form of system calls (handled directly by the trust zone kernel). In addition, the TrustZone kernel may securely load and execute the applet "Trustlets (special software module)" to add "trusted" functionality in the extension model. Trustlets programs can provide secure services for unsecure (common world) operating systems such as Android. The Rich OS and the TrustZone communicate through an IPC (Inter-Process Communication ) channel, and an application program can call the application in the TrustZone through the IPC channel. Specific system architecture diagrams are shown below. At present, the TEE is mainly widely applied under an ARM system, and the ARM system architecture is the vast majority of the automobile parts of the MPU at present, so that the vast majority of the MPU automobile parts on the market can support the TEE at present.
After the TEE is applied, the overall system startup procedure and architecture are as follows. In total 7 steps are required, so the TEE can ensure the security of the whole start-up from the whole start-up procedure, and an attacker cannot crack the TEE from the drive level. The process of applying the TEE is as follows, the first, system is powered up, the PC pointer points to the address of the BOOT ROM inside the chip and executes, the second, BOOT ROM is loaded from the external storage device, the ATF (ARM trusted firmware), TEE OS, LK are loaded (verified) from the external storage, and jumps to the ATF execution, the fourth, ATF jumps to TEE OS execution initialization, and returns to ATF, the fifth, ATF jumps to LK execution, the sixth, LK loading operation Android Linux kernel, and the seventh, system loads the Modem.
Compared with the original Linux/Android system, three parts of a microkernel, a TEE OS and an ATF are added, and the details are shown in the following diagram. If the TEE system does not exist, preloader is directly loaded with Linux Kernel/Android, so that the TEE system architecture ensures the credibility of the whole system from the starting point of view.
The identity authentication technology is an effective solution generated by the process of confirming the identity of an operator, and is a process of verifying whether the true identity of a main body accords with the claimed identity of the main body, and can be divided into authentication between a user and a host and authentication between the host and the host. Traditional authentication techniques include static passwords, short message passwords, dynamic passwords, digital signatures, biometrics, x.509 certificates, and the like. The invention refers to, combines and references these authentication techniques to form a set of application software identity authentication technique suitable for MPU automobile parts.
The existing identity authentication technology comprises the steps of implanting an Agent (application program) in a kernel layer or ring3 layer of an OS, adopting a hook technology, and when all application software accesses to the bottom layer resource of the system, the hook program can pull the application into the Agent for checking (based on rules or models), and releasing the program after checking. If an exception occurs, the Agent may directly shut down the process of the application.
The method has the defects that the first Agent and the Agent lack of a protection scheme because of being deployed in an OS kernel layer or a ring3 layer and are easy to be directly deleted by an attacker, and even if the protection program is placed in a BSP layer, the possibility that the Agent is deleted is improved, but if the attacker knows about the protection scheme, the protection program can be deleted in the BSP layer. Secondly, the Agent is influenced by the OS version and has very large coupling with the OS kernel, if once the kernel is updated, the Agent also needs to be synchronously adapted and updated, and because the updating speed of the OS kernel is higher, the Agent is easy to forget to update, and the Agent is not matched with the new OS kernel, so that the whole automobile part is influenced.
The existing identity authentication technology also comprises data encryption. In theory, the data encryption technology can encrypt all personal sensitive information stored in the parts before storage, so that even if leakage occurs, an attacker cannot restore real data when the attacker does not obtain the secret key. Data encryption has the disadvantage that first, the system resources are very large and the cost is increased. Along with the diversification of data volume and data types, simple data encryption is suitable for a small amount of text data, but huge operation can occupy resources of a CPU and a memory for data of pictures and videos, and parts manufacturers must replace the CPU with higher performance and the memory with larger memory to deal with, so that the cost of the parts is greatly increased. Secondly, the normal response speed of the system is influenced, and the user experience is reduced. When the system uses the encrypted data, the encrypted data needs to be decrypted first, a certain time is required to be consumed for decryption, and the response time of normal application software can be influenced by accumulation, so that the user experience is reduced.
The invention has the innovation points that the first and the second invention are the identity authentication based on the application behavior fingerprint of the automobile part, the application in the automobile part is realized by codes, the behavior is fixed and specific, the invention takes the application behavior as the fingerprint and further as the application identity authentication factor, the application can be easily distinguished through the fingerprint, the invention is used for the identity authentication on one hand, and the data access management and control can be conveniently carried out at the same time. Secondly, the invention adopts micro-isolation abstract middleware to carry out communication and functional interaction between the Rich OS system and the TEE system, thereby increasing the adaptation to the bottom layer and the OS and also needing to increase the corresponding information security capability.
The following describes in detail the technical solutions provided by the embodiments of the present invention with reference to the accompanying drawings.
Fig. 1 is a flowchart of an embodiment of the method of the present invention, which can be used for identity authentication of application software of automobile parts, and as an embodiment of the present invention, an application software fingerprint identity authentication method specifically includes the following steps 101 to 102:
and step 101, inquiring whether an authentication record exists in the application fingerprint in the micro-isolation abstract middleware when the application program initiates access to the underlying data resource in the Rich OS system.
In step 101, preferably, when an application initiates access to the underlying data resource in the Rich OS system, after confirming the identity of the application, it is further confirmed whether the access has access data authority, if the access authority is provided, and if an authentication record of an application fingerprint exists in the micro-isolated abstract middleware, the application is allowed to access the underlying data, otherwise, access to the corresponding underlying data is denied.
And 102, if the micro-isolation abstract middleware has an authentication record of the application fingerprint, allowing access to corresponding bottom data, otherwise, inquiring the application program or generating a new application fingerprint in a TEE system to complete identity authentication.
In step 102, further, when the application program is queried or a new application fingerprint is generated in the TEE system to complete identity authentication, if the identity authentication condition is met, a request for allowing access to the corresponding underlying data is initiated to the Rich OS system through the micro-isolation abstract middleware, and if the identity authentication condition is not met, an identity authentication request is initiated to the application program in the Rich OS system.
In steps 101 and 102, communication is performed between the Rich OS architecture and the TEE architecture through the micro-isolated abstract middleware. The micro-isolation abstract middleware can be used for realizing communication and functional interaction between two systems, isolation and adaptation of bottom layer resources (driving programs and hardware resources) and isolation and adaptation of an operating system layer, so that effective application and data isolation are realized, and effective access control is performed.
The embodiment of the invention can bring the following effects that firstly, the identity authentication of the application software in the MPU automobile part is realized, the authority setting is carried out on the application software, the fact that all the application software can access the sensitive data in the part is ensured, the sensitive data comprise individuals and the sensitive data possibly related to national security, and the problem of data leakage in equipment caused by random access of the automobile part data is solved.
Second, the application fingerprint authentication technology adopted by the invention realizes the identity authentication of the application software. The traditional authentication technology generally adopts an X.509 certificate, but the certificate needs to rely on a PKI system and needs to be networked for CA authentication, and the technical scheme is also not suitable for equipment in an automobile internal network, so that the embodiment of the invention forms application fingerprints by locking application behaviors, processes, MD5 and other modes, and is suitable for the automobile field.
Third, the embodiment of the invention can also prevent the protection program from being deleted and tampered. Since the authentication protection program is placed in the TEE OS, an attacker cannot tamper with any application in the TEE OS, both while running and while storing. Because if the TEE OS is tampered with at the time of storage, the ATF is not bootable at the time of boot-up.
Fourth, the embodiment of the invention can unbind the coupling of the Linux/Android OS and the bottom hardware through the micro-isolation middleware, and solves the problem that the whole OS and the bottom hardware need to be re-adapted for related security functions caused by updating under the Rich OS system.
Fifth, the embodiment of the invention does not affect the performance and the response time of the application program of the existing system, and avoids the increase of the cost of parts. Because the TEE OS and the Rich OS are independent in hardware, the security application is a hardware resource that does not consume the Rich OS.
Fig. 2 is a flowchart of a method of the present invention including instruction transmission, and provides a flowchart of fingerprint identity authentication of application software of an automobile part based on micro-isolation, as an embodiment of the present invention, a fingerprint identity authentication method of application software, specifically comprising the following steps 201 to 215:
Step 201, an application program initiates a request for accessing underlying data to an operating system.
Step 202, an operating system requests to access micro-isolation abstract middleware.
And 203, inquiring whether the application fingerprint has an authentication record or not through the micro-isolation abstract middleware.
And 204, if the application fingerprint has an authentication record in the micro-isolation abstract middleware, calling a bottom data interface through the BSP.
Step 205, accessing the bottom data resource according to the instruction for calling the bottom data interface.
In step 201 to 205, when an application program wants to access an underlying data resource, an access data request needs to be sent to an operating system (Linux/Android), after the operating system receives the request, the operating system needs to directly send an access request micro-isolation abstract middleware, after the micro-isolation abstract middleware receives the request, whether the application is authenticated and passed or not is confirmed, and meanwhile, whether the application has access data authority or not is confirmed, if the application passes, the application is directly allowed to call an access underlying data interface of a BSP, and at this time, the application can directly access data stored in a ROM or a RAM. If the micro-isolation abstract middleware finds that the application does not have the authentication record, an authentication center call request is initiated to the TEE trusted execution environment to enable the application to be authenticated.
It should be noted that, a part of application fingerprint authentication records, such as application fingerprints corresponding to application programs that access the underlying data frequently recently, are stored in the micro-isolation abstract middleware, so that a process that the application programs need to perform identity authentication in a TEE system every time of access is avoided, and the application programs can access the underlying data quickly. It should be noted that the number of application fingerprint authentication records stored in the micro-isolated abstract middleware is not limited.
Step 206, if the application fingerprint does not have the authentication record in the micro-isolation abstract middleware, calling an authentication center interface to the TEE OS through the micro-isolation abstract middleware.
In step 206, the micro-isolated abstract middleware functions to communicate between the Rich OS architecture and the TEE OS architecture.
Step 207, inquiring whether the authentication record of the application fingerprint exists in the authentication center.
In step 207, the authentication center stores a part of authentication records of the application fingerprint, so as to facilitate quick determination of whether the application fingerprint exists, avoid that the application fingerprint needs to be queried through the fingerprint database every time, and speed of accessing the underlying data by the application program is increased.
And step 208, if the authentication record of the application fingerprint exists in the authentication center, the authentication is recorded through the micro-isolation abstract middle record.
In step 208, the micro-isolation abstraction middleware may record the most recent authentication result for the authentication center.
In step 208, after the authentication is recorded in the middle of the micro isolation abstraction, the steps 204 and 205 are shifted to.
Step 209, if the authentication record of the application fingerprint does not exist in the authentication center, inquiring whether the application fingerprint exists or not through a fingerprint database.
In step 209, the fingerprint database stores all authenticated application fingerprints, and the application fingerprint identity authentication result of the current application program can be obtained by traversing the fingerprint database.
Step 210, if the authentication record of the application fingerprint exists in the fingerprint database query, querying the application fingerprint state through a fingerprint state query module.
In step 210, the fingerprint state query module queries whether the state of the fingerprint is active (valid) or inactive (invalid). The management and control center can check whether the fingerprint state of each application program is in an activated state or not at regular intervals, and if the fingerprint state is in an inactivated state, the management and control center needs to prevent the application from accessing data later.
Step 211, if the application fingerprint state is valid, updating the application fingerprint through the authentication center.
After the application fingerprint is updated in step 211, the process proceeds to step 208.
Step 212, if at least one condition that the application fingerprint state is invalid and the authentication record of the application fingerprint does not exist in the fingerprint database query is satisfied, requesting to generate the application fingerprint through the fingerprint generation module.
In step 212, the step of generating the corresponding application fingerprint further includes parameterizing the name, type, version number, process name, process number, MD5 and/or application behavior of the application program, such as calling interface, accessed file path, file operation, network access, etc., and generating a unique character string corresponding to the application program by a specific function, such as SHA256 or entropy, where the character string is the application fingerprint of the application program.
And step 213, initiating an application fingerprint generation request through the micro isolation abstract middleware.
Step 214, calling an application fingerprint generation interface through an operating system.
Step 215, collecting application fingerprints through an application program to generate required data.
In steps 206-215, further consider whether the application program has the authority to access the underlying data, namely, the trusted execution environment receives the authentication center call request of the micro-isolated abstract middleware, and after the authentication center receives the request, the authentication center inquires whether the application has an application fingerprint in the authentication center, if the authentication center finds the application fingerprint, the application fingerprint is returned to the micro-isolated abstract middleware, the micro-isolated abstract middleware records the authentication, and at the same time, the application is allowed to call the underlying data when the application is confirmed to have the authority to access the data. If the application fingerprint can not be found by the authentication center, a request is sent to the fingerprint database, the fingerprint database is queried, if the application fingerprint can be found, the application fingerprint is firstly queried in the fingerprint state query module to determine whether the state of the application fingerprint is valid, if the application fingerprint is valid, the application fingerprint is updated to the authentication center, meanwhile, the authentication center sends the application fingerprint information to the micro-isolation abstract middleware, the authentication is recorded, and meanwhile, the application is allowed to access the underlying data. If the application fingerprint is not in the fingerprint database, or the application fingerprint is in the fingerprint database but the fingerprint state is invalid, the fingerprint generation module is called to allow the application to regenerate a new application fingerprint. The fingerprint generation module is sent to the micro-isolation abstract middleware, and the micro-isolation abstract middleware is directly sent to the application through the OS, so that the application initiates fingerprint generation operation and performs identity authentication.
The traditional identity authentication is realized by means of an X.509 certificate, a human biological feature, a user name, a password and the like, the identity authentication is never performed by means of user 'behavior', and at most, illegal judgment is performed by means of behavior, such as comparison popular UEBA, and whether the behavior is attack or not is judged by means of abnormal behavior in the using process. Applications in automobile parts are all realized by codes, and the behavior is fixed and specific, for example, navigation applications only access map data and absolutely access data in music applications suddenly. Therefore, the application behavior is taken as a fingerprint as an application identity authentication factor, has strong characteristics, can be easily distinguished through the fingerprint, is used for identity authentication on one hand, and can conveniently carry out data access management and control.
Fig. 3 (a) is a schematic connection diagram of an embodiment of the apparatus of the present invention, and fig. 3 (b) is a schematic architecture diagram of an embodiment of the apparatus of the present invention, where the method of any embodiment of the present invention may be used, and an application software fingerprint identity authentication system includes a micro-isolation abstract middleware 1, an authentication center 2, a fingerprint database 3, a fingerprint generation module 4, and a fingerprint status query module 5.
Fig. 3 (a) provides a schematic diagram of the connection relationship between the modules of the apparatus of the present invention. Fig. 3 (b) provides an architecture of the various modules of the device of the present invention in the Rich OS architecture and TEE architecture. The authentication center, the fingerprint database, the fingerprint generation module and the fingerprint state query module are placed in the TEE OS, and a micro-isolation abstract layer middleware is inserted between two systems (a Rich system and a trusted execution system) for protecting and isolating bottom layer resources, realizing communication between the two systems, and simultaneously realizing adaptation of an operating system between the two systems.
In the embodiment of the invention, the micro-isolation abstract middleware is used for inquiring whether the application fingerprint has an authentication record, is also used for communication between a Rich OS system and a TEE system, is also used for access control of data in automobile parts, and is used for micro-isolation and adaptation of an OS and a bottom layer in the Rich OS system.
The authentication center is used for carrying out application fingerprint identity authentication inquiry according to the identity authentication inquiry command sent by the micro-isolation abstract middleware.
The fingerprint database is used for storing application fingerprints corresponding to the application programs.
The fingerprint generation module is used for generating corresponding application fingerprints according to the application program.
The fingerprint state inquiry module is used for inquiring whether the state of the application fingerprint is valid or not.
Specifically, the authentication center is responsible for authenticating the fingerprint of the application program, confirming the identity of the application program, and simultaneously informing the management and control center that the authentication result is released or blocked.
The fingerprint database is used for storing the trusted application program fingerprints, and after the system is restarted, all application programs need to be authenticated again. The fingerprint generation module is used for generating the fingerprint of the application program.
The fingerprint generation module needs to parameterize the name, the process name, the MD5, the application behavior (such as calling interface, accessed file path, file operation, network access, etc.) and the like of the application program needing fingerprint generation in advance, and generates a unique character string corresponding to the application program through a specific function such as SHA256 or entropy, wherein the character string is the fingerprint of the application program.
The fingerprint state inquiry module inquires whether the state of the fingerprint is activated or logged off. The management and control center needs to check whether the fingerprint state of each application program is in an activated state or not at regular intervals, and if the fingerprint state is in an inactivated state, the management and control center needs to prevent the application from accessing data later.
The micro-isolation abstract middleware is used for realizing communication and functional interaction between two systems, isolation and adaptation of bottom-layer resources (drivers and hardware resources) and isolation and adaptation of an operating system layer. Thereby effectively isolating the application from the data and performing effective access control.
The micro-isolation abstract middleware is further used for realizing any one of the following functions:
And packaging the BSP bottom layer driver, namely packaging the bottom layer drivers of the main stream in the current automobile industry, such as the drivers of the main stream chips of NXP, infrax, ruisha and TI lamps, and ensuring the bottom layer adaptation of the micro-isolation abstract middleware.
And (3) OS packaging, namely packaging the currently mainstream Linux/Android system kernel, and switching API packaging interfaces by the microkernel abstract middleware according to different versions.
And controlling the access authority of the data resource, namely controlling the access of the data resource based on the behavior authority of the application, and not allowing the data resource beyond the access authority of the application.
And auditing, namely recording logs of application data access, identity authentication and the like, realizing log auditing and reporting abnormality.
The embodiment of the invention mainly aims at a TEE system, needs to modify and develop the TEE in implementation aspect, and needs to develop an authentication center, a fingerprint database, a fingerprint generation module and a fingerprint state query module aiming at a TEE OS, which are four Trustlets. Meanwhile, development of micro-isolation abstract middleware is needed, adaptation to the bottom layer and the OS is increased, and corresponding information security capability is also needed to be increased. Because the whole starting flow is based on the trusted computing system provided by the ARM and has a complete trusted chain, the trusted state can be ensured in each step from the starting time, and therefore the trusted state and the security of the whole system are ensured to the greatest extent.
The application therefore also proposes a computer-readable storage medium, on which a computer program is stored, which program, when being executed by a processor, implements a method according to any of the embodiments of the application.
Furthermore, the application also provides an electronic device, which comprises a memory, a processor and a computer program stored on the memory and capable of being run by the processor, wherein the processor executes the computer program to realize the method according to any embodiment of the application.
It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In one typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises an element.
The foregoing is merely exemplary of the present invention and is not intended to limit the present invention. Various modifications and variations of the present invention will be apparent to those skilled in the art. Any modification, equivalent replacement, improvement, etc. which come within the spirit and principles of the invention are to be included in the scope of the claims of the present invention.