CN117131519A - 一种信息的保护方法及设备 - Google Patents
一种信息的保护方法及设备 Download PDFInfo
- Publication number
- CN117131519A CN117131519A CN202310209889.3A CN202310209889A CN117131519A CN 117131519 A CN117131519 A CN 117131519A CN 202310209889 A CN202310209889 A CN 202310209889A CN 117131519 A CN117131519 A CN 117131519A
- Authority
- CN
- China
- Prior art keywords
- device information
- information
- preset
- terminal equipment
- decrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 153
- 230000008569 process Effects 0.000 claims abstract description 62
- 238000012795 verification Methods 0.000 claims description 48
- 238000004590 computer program Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 25
- 239000010410 layer Substances 0.000 description 20
- 238000004891 communication Methods 0.000 description 19
- 238000007726 management method Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000010295 mobile communication Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Telephone Function (AREA)
Abstract
本申请实施例提出一种信息的保护方法及设备,涉及终端技术领域,用于解决终端设备中存储的信息容易被泄露的问题。该方法应用于终端设备,终端设备包括共享内存。该方法包括:在终端设备的启动过程的第一阶段中,获取预设器件的器件信息,以及用于加密器件信息的密钥;预设器件为在启动过程中终端设备待启动的器件。根据密钥对器件信息进行加密处理,得到加密后的器件信息;将加密后的器件信息以及密钥写入共享内存;在终端设备的启动过程的第二阶段中,终端设备根据共享内存中的信息加载预设器件的驱动程序。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种信息的保护方法及设备。
背景技术
随着技术的发展,用户获取信息的手段越来越多。而对于用户而言,自己的隐私信息等需要被更好的保护。终端设备中通常存储了大量的信息,包括用户信息和设备信息。其中,用户信息如果被泄露,会给用户带来困扰;设备信息一旦被泄露,可能会对终端设备的厂商带来一定的困扰。
因此,需要一种信息的保护方法,对终端设备中存储的信息进行保护。
发明内容
本申请实施例提供一种信息的保护方法及设备,用于解决终端设备中存储的信息容易被泄露的问题。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种信息的保护方法,该方法应用于终端设备,终端设备包括共享内存;该方法包括:
在终端设备的启动过程的第一阶段中,获取预设器件的器件信息,以及用于加密器件信息的密钥。其中,预设器件是终端设备的启动过程中待启动的器件。使用密钥对器件信息进行加密处理,得到加密后的器件信息。然后,将加密后的器件信息以及密钥写入共享内存。这样,可以使共享内存中存储的预设器件的器件信息是加密信息。即便用户获取到共享内存中的信息,也无法确定预设器件的器件信息。在终端设备的启动过程的第二阶段,终端设备根据共享内存中的信息加载驱动程序。
在该方案中,用户即便共享内存中的信息,也无法确定预设器件的器件信息。从而可以实现保护器件信息的效果,保护信息安全。同时,由于上述方法是在终端设备的第一阶段对器件信息进行加密,可以适用于更多不同内核版本的终端设备,在不同芯片厂商开发的芯片上均可通用,具有更强的普适性和通用性。
在一些可能的实施方式中,在终端设备的启动过程的第二阶段,终端设备根据共享内存中的信息加载驱动程序,具体可以包括:在终端设备的启动过程的第二阶段中,从共享内存中获取加密后的器件信息和密钥。然后,使用密钥对加密后的器件信息进行解密,得到解密后的器件信息。最后,根据解密后的器件信息加载预设器件的驱动程序。这样,终端设备在启动过程的第一阶段在共享内存中写入加密后的器件信息,在终端设备的启动过程的第二阶段可以使用密钥进行解密之后再加载相应的驱动程序,不会影响到终端设备的正常启动。
在一些可能的实施方式中,在终端设备的启动过程的第一阶段中,获取预设器件的器件信息,以及用于加密器件信息的密钥之后,上述方法还包括:在终端设备的启动过程的第一阶段中,对器件信息进行校验运算,得到第一校验数,该第一校验数用于对共享内存中存储的器件信息进行验证。然后,将第一校验数写入共享内存。这样,便于对共享内存中存储的信息进行完整性校验。
在一些可能的实施方式中,在使用密钥对加密后的器件信息进行解密,得到解密后的器件信息之后,在根据解密后的器件信息加载预设器件的驱动程序之前,上述方法还包括:从共享内存中获取第一校验数。对解密后的器件信息进行校验运算,得到第二校验数。通过比对第一校验数和第二校验数,得到解密后的器件信息的验证结果。在该实施方式中,根据解密后的器件信息加载预设器件的驱动程序,具体可以包括:在根据验证结果确定解密后的器件信息准确之后,根据解密后的器件信息加载预设器件的驱动程序。这样,可以确保在终端设备启动过程的第二阶段可以准确的加载预设器件的驱动程序,保证终端设备在第二阶段正常启动。
在一些可能的实施方式中,通过比对第一校验数和第二校验数,得到解密后的器件信息的验证结果,具体可以包括:第一校验数与第二校验数相同的情况下,得到第一验证结果,第一验证结果用于指示解密后的器件信息准确。第一校验数与第二校验数不相同的情况下,得到第二验证结果,第二验证结果用于指示解密后的器件信息不准确。
在一些可能的实施方式中,预设器件的器件信息包括一个或多个,密钥与预设器件的器件信息一一对应。
在一些可能的实施方式中,获取预设器件的器件信息,以及用于加密器件信息的密钥,具体可以包括:获取预设器件的器件信息以及当前的时间信息;对当前的时间信息进行预设运算,得到密钥。
在一些可能的实施方式中,对当前的时间信息进行预设运算,得到密钥,具体可以包括:对当前的时间信息进行取余运算,得到的结果作为密钥。这样,可以保证密钥是一个相对随机的数值,有利于后续对器件信息加密的操作可以得到同样相对随机的加密器件信息,从而更好的保护预设器件的器件信息。
在一些可能的实施方式中,终端设备包括第一系统和第二系统;第一系统与第二系统是相互独立的两个系统;上述实施方式中的第一阶段和第二阶段属于终端设备的第一系统的启动过程。终端设备在启动过程中不仅需要启动第一系统,还需要启动第二系统。上述方法还包括:
启动终端设备的第二系统。在使用所述密钥对所述加密后的器件信息进行解密,得到解密后的器件信息之后,终端设备的第一系统向终端设备的第二系统发送解密后的器件信息。终端设备的第二系统在接收到解密后的器件信息之后,可以根据解密后的器件信息,加载预设器件的驱动程序。这样,可以确保终端设备在启动过程中第二系统也可以正常的启动。
第二方面,提供了一种终端设备,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该终端设备运行时,该处理器执行该存储器存储的该计算机执行指令,以使该终端设备执行如上述第一方面中任一项所述的信息的保护方法。
第三方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项所述的信息的保护方法。
第四方面,提供了一种包含指令的计算机程序产品,当其在终端设备上运行时,使得终端设备可以执行上述第一方面中任一项所述的信息的保护方法。
第五方面,提供了一种装置(例如,该装置可以是芯片系统),该装置包括处理器,用于支持终端设备实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存终端设备必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的终端设备开机流程示意图;
图2为本申请实施例提供的一种终端设备的硬件结构示意图;
图3为本申请实施例提供的一种终端设备的软件结构示意图;
图4为本申请实施例提供的一种信息的保护方法的流程示意图;
图5为本申请实施例提供的一种信息的保护方法的流程示意图;
图6为本申请实施例提供的一种终端设备的第二系统的启动流程示意图;
图7为本申请实施例提供的一种信息的保护方法的流程示意图;
图8为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
以下将结合附图,对本申请提供的一种信息的保护方法进行详细说明。
终端设备中通常存储了大量的信息,包括用户信息和设备信息。其中,用户信息如果被泄露,会给用户带来困扰;设备信息一旦被泄露,可能会对终端设备的厂商带来一定的困扰。因此,对于终端设备中的信息,需要进行保护。
终端设备包括多个子系统,这些子系统可以用于实现终端设备的各个功能。终端设备在启动过程中,将会依次启动不同的子系统。在其中一个子系统启动完成,进入下一个子系统的启动过程的时候,可以通过共享内存来传递参数信息。其中,参数信息可以包括终端设备的器件信息。目前,已有很多方法可以使用户从共享内存中获取参数信息,而共享内存中的参数信息并没有进行保护,存在很大的泄露风险。其中,终端设备的操作系统可以是安卓(Android)操作系统、Windows Phone操作系统等。
示例性的,终端设备屏幕的器件信息在子系统中的统一可扩展固件接口(unifiedextensible firmware interface,UEFI)的启动过程中读取。UEFI阶段会将屏幕的器件信息通过共享内存cmdline传递给操作系统的kernel内核。在一些实施例中,在kernel阶段会将cmdline中的信息以开机日志的方式打印出来。因此,用户可以通过获取终端设备开机日志的方法获取到共享内存中的信息,其中包含屏幕的器件信息。这样,对于设备厂商而言,屏幕的器件信息将会被泄露,给设备厂商带来困扰,并且存在一定的风险。
图1示出了一些实施例中终端设备的启动流程的示意图。如图1所示,终端设备启动过程可以包括以下步骤:启动;进入UEFI阶段;UEFI加载驱动;识别预设器件的器件信息;将器件信息写入共享内存;UEFI执行结束。进入kernel阶段;从共享内存中获取器件信息;kernel日志打印共享内存的信息;根据获取的器件信息,加载对应的预设器件的驱动程序。
基于此,本申请实施例提出一种信息的保护方法及设备,该方法应用于终端设备,可以对终端设备中的信息进行加密保护,有利于保护设备信息不被泄露,提高信息安全。
在一些实施例中,终端设备可以是手机、平板电脑、个人计算机(personalcomputer,PC)、智慧屏、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、智能手表等穿戴设备、人工智能(artificial intelligence,AI)音箱以及车载设备,也可以是各种教学辅助工具(例如学习机、早教机)、智能玩具、便携式机器人、个人数字助理(personal digital asistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、媒体播放器等设备,还可以是具有移动办公功能的设备、具有智能家居功能的设备、具有影音娱乐功能的设备、支持智能出行的设备等。本申请实施例对该设备的具体形态不作特殊限制。
如图2所示为本申请一实施例提供的终端设备100的结构示意图。终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serialbus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,传感器模块180,按键190,马达191,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,触摸传感器180B等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器110用于执行本申请实施例中的信息的保护方法。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)。
此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。
终端设备100可以通过音频模块170,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信号转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。终端设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端设备100根据压力传感器180A检测触摸操作强度。终端设备100也可以根据压力传感器180A的检测信号计算触摸的位置。
触摸传感器180B,也称“触控面板”。触摸传感器180B可以设置于显示屏194,由触摸传感器180B与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180B用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180B也可以设置于终端设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
摄像头193用于捕获静态图像或视频。在一些实施例中,终端设备100可以包括1个或N个摄像头193,N为大于1的正整数。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。
以下实施例中的信息的保护方法均可以在具备上述硬件结构的终端设备100中实现。
终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。图3是本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
以下对本申请实施例可能涉及到的技术词语进行简单说明。
UEFI是一种个人电脑系统规格,用来定义操作系统与系统固件之间的软件界面。
Linux(一种操作系统)内核(Linux kernel)是Linux操作系统一部分,其核心功能是管理硬件设备,供应用程序使用。
cmdline是uboot引导内核启动时传递给内核的,作用是指导内核启动。
可信用户界面(Trusted User Interface,TUI)系统,基于TEF实现可信显示和输入。
MD5信息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
通用内核镜像(Generic Kernel Image,GKI),把内核核心部分挑出来,把SoC和板级支持的部分移至可加载的模块里去而成的内核。
本申请实施例针对终端设备中的共享内存中的信息未被加密容易出现泄露的问题,提出一种信息的保护方法,该方法应用于终端设备。具体可以在终端设备的启动过程中,在向共享内存中写入器件信息之前,对器件信息进行加密。然后再将加密后的器件信息写入到共享内存中,这样,可以使共享内存中存储的预设器件的器件信息是加密后的信息,从而降低共享内存中的信息被泄露的风险,提高信息安全。
图4示出了一种信息的保护方法的流程示意图。该方法可以应用于终端设备,例如,手机。该方法包括S401-S410,其中:
S401.终端设备启动。
其中,终端设备可以是开机启动,也可以是开机之后进行的重启,本申请实施例对此不作限定。在一些实施例中,终端设备可以响应于用户的启动操作启动。
S402.终端设备进入启动过程的第一阶段。
在一些实施例中,终端设备的启动过程的第一阶段具体可以是指UEFI阶段。
S403.终端设备获取预设器件的器件信息。
预设器件是终端设备中包含的器件,并且预设器件在终端设备的启动过程待启动。在一些实施例中,预设器件具体可以包括:屏幕、电源、电池、摄像头、麦克风、扬声器以及传感器等等。在一些实施例中,预设器件的器件信息具体可以包括:预设器件的厂商信息、型号信息、版本信息以及生产时间信息等等。
进一步的,在一些实施例中,终端设备在进入启动过程的第一阶段之后,UEFI需要加载驱动程序。其中,UEFI加载驱动程序,具体可以包括UEFI加载各个模块的驱动程序,为后续的应用功能执行提供服务。
在一些实施例中,UEFI加载驱动程序包括UEFI加载预设器件对应的驱动程序。在终端设备加载预设器件对应的驱动程序之后,终端设备可以对预设器件进行识别,获取预设时间对应的器件信息。在一些实施例中,上述S403具体可以包括:识别预设器件的器件信息。
终端设备中可以预先配置不同器件的预置器件信息表,在识别预设器件的器件信息时,可以通过将预设器件与预置器件信息表中的信息进行比对,确定预设器件的器件信息。
进一步的,在一些实施例中,以预设器件的器件信息包括屏幕的型号为例,终端设备识别预设器件的器件信息,具体可以包括:获取预设器件的用户个人识别号码(IDPIN)、产品编号以及一次性编程(One Time Programable,OTP)版本,根据IDPIN、产品编号以及OTP版本确定屏幕的型号。
在另一些实施例中,预设器件的器件信息可以由设备厂商预先存储在预设路径。当终端设备进入启动过程的第一阶段,即UEFI阶段时,终端设备可以从预设路径中获取预设器件的器件信息。在该实施例中,上述S403具体可以包括:终端设备从预设路径中获取预设器件的器件信息。
在其他实施例中,终端设备还可以通过其他方式获取预设器件的器件信息。
预设器件的器件信息具体可以是以编码的形式存在于终端设备中。示例性的,预设器件的器件信息可以是ASCII码形式存在的字符串。
针对同一预设器件,可以包括一个器件或者两个以上器件。应理解,如果同一预设器件包括一个器件,上述S403获取的器件信息为一个器件信息。如果同一预设器件包括两个以上器件,那么上述S403中获取的器件信息包括两个器件信息。示例性的,以预设器件是屏幕为例,对于部分双屏终端设备而言,其预设器件包括包含两个屏幕,那么上述S403中获取到的屏幕的器件信息分别包括两个屏幕的器件信息。同样的,部分终端设备包括两个电池时,上述S403获取到的器件信息包括两个电池的信息。需要说明的是,在其他实施例中,终端设备包含的屏幕、电池的数量也可以是3、4等等,此时获取到的对应的器件信息的数量也分别为3、4。即,预设器件的器件信息的数量与预设器件的数量一一对应。
S404.终端设备获取密钥。
密钥用于对预设器件的器件信息进行加密。在一些实施例中,为了在共享内存中写入的器件信息是一串没有规律的字符串,可以获取一个随机数作为密钥。之后,使用该密钥对器件信息加密,得到的加密后的器件信息也是随机的字符串。从而用户即便获取到共享内存中的器件信息,由于共享内存中写入的器件信息是随机的字符串,也无法根据器件信息确定预设器件的具体型号等信息。
在一些实施例中,上述S404具体可以包括:获取随机生成的数值,将该随机生成的数值作为密钥。
在另一些实施例中,上述S404具体可以包括:获取预设取值范围,随机从预设随取值范围中选择一个数值作为密钥。其中,预设取值范围可以根据实际情况预先设置。
在另一些实施例中,上述S404具体可以包括:获取当前的时间信息,对当前的时间信息进行预设运算,得到的结果作为密钥。
在一些实施例中,当前的时间信息可以是当前时刻的标准时间(如12:12:05:123)、当前系统的运行时间等等。其中,系统的运行时间表示系统处于运行状态的时间,该时间可以从终端设备的启动时间点开始计算。
在终端不同的启动过程中,获取的时间可能存在相同的情况。为了保证获得的密钥是随机数,在获取到当前的时间信息之后,可以对该时间信息进行一定的运算,得到一个数值。这样,可以得到更加随机的数值。在一些实施例中,对当前的时间信息进行预设运算得到密钥。
其中,预设运算可以是任意一种运算方法,如加法、减法、乘法、除法、对数运算和/或取余运算等等。
示例性的,当前的时间信息是系统的运行时间,预设运算可以是对当前的时间信息进行取余运算。由于系统的运行时间通常是微秒级别的时间,精确度较高,在终端设备的不同启动过程中获取的当前的系统运行时间,不会完全相同。因此,在终端设备不同的启动过程中,利用当前获取的系统运行时间进行取余运算,得到的结果也不是完全相同的。这样可以保证密钥是一个相对随机的数值,有利于后续对器件信息加密的操作可以得到同样相对随机的加密器件信息,从而更好的保护预设器件的器件信息。
其中,将一个数除以另一个数,不够除的部分就是余数,就是取余运算的结果。示例性的,终端设备在对当前的系统运行时间进行取余运算时,具体可以是对当前的系统运行时间取10、9、8、7等等数值的余数,得到的结果作为密钥。
应理解,上述对当前的时间信息进行预设运算,得到密钥的实现仅为示例。在其他实施例中,终端设备也可以使用其他时间信息,通过其他运算方法得到密钥。
在本申请实施例提供的技术方案中,对当前的时间信息进行一定的运算得到的运算结果作为密钥,可以确保密钥是一个相对随机的数值,有利于后续对器件信息加密的操作可以得到同样相对随机的加密器件信息,从而更好的保护预设器件的器件信息。
由上述实施例的说明可知,预设器件的器件信息的数量可能包括两个以上,在该实施例中,针对两个以上器件信息可以分别使用两个以上的密钥进行加密。即,在一些实施例中,在上述S404之前,上述方法还包括:获取预设器件的器件信息的数量。进一步的,上述S404具体可以包括:获取与预设器件的器件信息的数量对应数量的密钥。如果预设器件的器件信息包括2个,那么终端设备获取2个密钥。其中,2个密钥可以是相同的,也可以是不相同的。终端设备获取其中任意一个密钥的过程,可以参见上述实施例的描述。
在另一些实施例中,预设器件的器件信息的数量包括两个以上,此时也可以使用同一个密钥分别对不同的器件信息进行加密。在该实施例中,不论器件信息的数量是多少,在上述S404中终端设备都只需获取一个密钥。
或者,在另一些实施例中,预设器件的器件信息的数量包括两个以上时,还可以使用一个密钥对预设器件的所有器件信息一起进行加密。器件信息与器件信息之间,使用预设分隔符进行区分。在该实施例中,上述S404中终端设备只需获取一个密钥。
S405.终端设备使用密钥对器件信息进行加密,得到加密后的器件信息。
密钥加密是发送数据和接收数据的双方,使用相同的或对称的密钥对明文进行加密解密运算的加密方法。在获得密钥之后可以使用密钥对器件信息进行加密。加密后的器件信息可以是字符串。
其中,终端设备使用密钥对器件信息进行加密可以通过任意一种方式实现。
在一些实施例中,上述S405具体可以包括:终端设备直接对表示器件信息的字符串内每一个字符进行减法运算,生成新的ASCII(American Standard Code forInformation Interchange,美国标准信息交换码)码对应的字符串,作为加密后的器件信息。示例性的,以密钥数值是2为例,对表示器件信息的字符串进行减法运算得到加密后的器件信息,具体可以包括:对表示器件信息的字符串中的每一个字符都减去2,得到的新的字符串作为加密后的器件信息。
由上述实施例的说明可知,在一些实施例中,预设器件的器件信息的数量可能包括两个以上,对于不同的器件信息分别使用不同的密钥进行加密。在该实施例中,上述S405具体可以包括:分别针对每一个器件信息,使用一个密钥进行加密。其中,对每一个器件信息使用密钥进行加密时,所采用的加密算法可以是相同的,也可以是不相同的,本申请实施例中对此不予限定。
S406.终端设备将加密后的器件信息以及密钥写入共享内存。
共享内存cmdline用于存储信息,并且在终端设备的不同子系统之间传递信息。在一些实施例中,终端设备在启动过程的第一阶段在共享内存中写入各预设器件的器件信息,然后将共享内存传递到启动过程的第二阶段。这样,在终端设备的启动过的第二阶段,终端设备可以根据共享内存中的信息加载对应各预设器件的驱动程序,以使预设器件工作。
在一些实施例中,用户可以通过取共享内存中的信息的方式,获得预设器件的器件信息。如果终端设备在启动过程的第一阶段在共享内存中写入的预设器件信息,是未加密的真实器件信息,一旦用户获取到共享内存中的信息,则可能会造成器件信息的泄露。在本申请实施例中,终端设备在启动过程的第一阶段在共享内存中针对预设器件写入的是加密后的器件信息。这样,即便用户获取到共享内存中的信息,也无法确定预设器件真实的器件信息。
共享内存的格式是由很多个项目用空格隔开依次排列,每个项目中的存储格式具体可以是:项目名=项目值。其中,项目名用于表示共享内存中存储的信息的名称,预设器件的项目名可以设置为第一预设字段。示例性的,以预设器件是屏幕为例,在共享内存中存储屏幕的器件信息时,可以使用msm_drm.display作为第一预设字段,即预设器件的项目名。对应存储屏幕的器件信息时可以存储为:msm_drm.display=屏幕信息。
在本申请实施例中,由于对预设器件的器件信息进行加密之后,再将加密后的器件信息写入共享内存。此时,上述S406中终端设备将加密后的器件信息写入共享内存,具体可以包括:将加密后的器件信息赋值给msm_drm.display,即:msm_drm.display=加密后的器件信息。之后,终端设备可以通过识别msm_drm.display从共享内存中准确的获取到预设器件的器件信息(本申请实施例中为加密后的器件信息)。
在一些实施例中,终端设备的启动过程的第二阶段具体可以是终端设备的kernel内核启动过程。进一步的,在S406之后,终端设备可以通过共享内存将加密后的器件信息传递给kernel,便于后续在kernel阶段根据加密后的器件信息对预设器件进行初始化及其他操作。
由上述实施例的说明可知,预设器件的器件信息的数量可能包括两个以上。在一些实施例中,在终端设备的启动过程的第一阶段中,可以分别使用密钥对不同的器件信息进行加密。即,加密后的器件信息的数量包括两个以上。示例性的,以屏幕的器件信息包括两个为例,在该实施例中,终端设备在将加密后的器件信息以及密钥写入共享内存时,具体可以在共享内存中的两个字段中分别写入两个加密后的屏幕的器件信息。在一些实施例中,两个字段可以分别用msm_drm.display0,msm_drm.display1来表示。
在本申请实施例中,由于终端设备在共享内存cmdline中存储的预设器件的器件信息是加密的,那么为了确保终端设备在进入kernel阶段之后,kernel能够准确的对预设器件进行初始化及其他操作,还需要将加密器件信息所使用的密钥也传递给kernel。因此,在上述S406中,终端设备还可以将密钥也写入cmdline中。这样,便于终端设备在启动过程的kernel阶段可以使用密钥对加密后的器件信息解密,从而得到真实的未加密的器件信息,并基于该未加密的器件信息对预设器件进行初始化及其他操作。
由上述实施例的说明可知,进一步的,为了在共享内存中写入密钥,需要在共享内存中增加一个字段用于存储密钥。示例性的,可以在共享内存中增加第二预设字段作为项目名,并且将密钥作为该第二预设字段的项目值写入共享内存中。这样,即可实现在共享内存中存储密钥的效果。例如,第二预设字段可以设置为msm_drm.security_key,将密钥写入共享内存时,将密钥赋值给msm_drm.security_key字段:msm_drm.security_key=密钥。
进一步的,在上述终端设备分别使用密钥对器件信息进行加密的实施例中,对不同密钥进行加密所使用的密钥可以分别存储。以两个密钥为例,在将密钥写入共享内存时,可以分别将两个密钥写入msm_drm.security_key0和msm_drm.security_key1对应的字段中。需要说明的是,如果两个密钥不相同,那么密钥与对应的加密后的器件信息需对应存储。示例性的,使用第一密钥对第一器件信息进行加密,那么加密后的第一器件信息与第一密钥对应存储;使用第二密钥对第二器件信息加密,加密后的第二器件信息与第二密钥对应存储。
终端设备在启动过程的第一阶段启动成功之后,将会进入之后的启动阶段。在之后的启动阶段中,终端设备可以根据共享内存中的信息加载对应的驱动程序,以驱动硬件工作。请继续参照图4,上述方法还包括以下步骤:
S407.终端设备进入启动过程的第二阶段。
由上述实施例的说明可知,终端设备的启动过程的第二阶段具体可以是指kernel阶段。在一些实施例中,终端设备在启动过程的第一阶段启动完成之后,才会进入启动过程的第二阶段。
在一些实施例中,在终端设备的启动过程的kernel阶段中,kernel会将共享内存中的信息打印在kernel的日志中。如果在共享内存中写入的预设器件的器件信息是未加密的信息,那么在kernel阶段打印的日志中,是可以查看到该预设器件未加密的器件信息的。这样,用户可以通过在终端设备中获取kernel阶段的日志来获取到预设器件的器件信息,造成器件信息的泄露。
在本申请实施例中,在终端设备的启动过程的第一阶段中,针对预设器件在共享内存中写入的是加密后的器件信息。因此,在kernel阶段打印的日志中,查看到关于预设器件的器件信息是加密后的器件信息。这样,可以达到保护器件信息的效果,保护信息安全。
S408.终端设备从共享内存中获取加密后的器件信息以及密钥。
kernel阶段需要加载驱动。在一些实施例中,kernel阶段通过解析共享内存中的信息,并根据解析得到的信息加载对应的驱动程序。
由上述实施例的说明可知,在本申请实施例提供的方法中,在终端设备进入启动过程的第二阶段之前,终端设备已经将加密后的器件信息以及对应的密钥存储在了共享内存。因此,在终端设备进入启动过程的第二阶段之后,即可从共享内存中获取到加密后的器件信息以及密钥。
S409.终端设备使用密钥对加密后的器件信息进行解密,获得解密后的器件信息。
需要说明的是,终端设备使用密钥对加密后的器件信息进行解密时,所使用的解密算法,是与上述S405中终端设备对器件信息进行加密时所使用的加密算法对应的解密算法。示例性的,若S405中使用的加密算法是对器件信息进行减法运算得到加密后的器件信息,那么相应的,在找到设备使用密钥对加密后的器件信息进行解密时,所使用的解密算法应当为,使用密钥对加密后的字符串中的每一个字符进行加法运算,得到的字符串则应当为真实的、未加密的器件信息。
S410.终端设备根据解密后的器件信息,加载对应的预设器件的驱动程序。
终端设备在获得解密后的器件信息之后,可以根据器件信息加载对应器件的驱动程序,以对预设器件进行初始化以及其他操作。
在一些实施例中,以预设器件是终端设备的屏幕为例,上述S401-S410具体可以由终端设备的显示驱动模块来执行的。预设器件是终端设备的其他器件时,上述S401-S410具体可以是由对应器件的驱动模块来执行。
在本申请实施例提供的技术方案中,在终端设备的启动过程的第一阶段(UEFI阶段)中,针对预设器件在共享内存中写入的是加密后的器件信息。因此,在第二阶段(kernel阶段)打印的日志中,查看到关于预设器件的器件信息是加密后的器件信息。这样,用户即便通过获取终端设备的kernel阶段打印的日志,也无法直接获得预设器件的器件信息。从而可以实现保护器件信息的效果,保护信息安全。并且在该方案中,在共享内存中写入加密后的器件信息,在kernel阶段可以使用密钥进行解密之后再加载相应的驱动程序,不会影响到对终端设备的正常启动。
同时,由于本申请实施例中提出的信息的保护方法,是在终端设备的第一阶段对器件信息进行加密,可以适用于更多不同内核版本的终端设备,在不同芯片厂商开发的芯片(如高通和联发科(MediaTek Inc.,MTI))上均可通用,具有更强的普适性和通用性。本申请实施例中由于是在第一阶段对器件信息进行加密,因此同样适用于部分使用GKI内核的终端设备。
需要说明的是,上述步骤中所提及的终端设备的启动过程中的第一阶段、第二阶段的操作,可以仅包括终端设备实际的启动过程中的部分操作。在终端设备实际的启动过程中,终端设备还可以执行其他上述实施例中未详细说明的操作。
由上述说明可知,共享内存用于从UEFI阶段向kernel阶段传递参数信息,共享内存中的参数信息用于指导kernel启动。如果终端设备被攻击,共享内存中存储的信息被恶意篡改,那么kernel阶段可能无法正常启动。为了避免这种情况,可以对共享内存中存储的信息加入数据校验的功能,以确保kernel启动时所依据的共享内存中的信息是准确的。
在一些实施例中,如图5所示,在上述S403之后,上述方法还包括S501和S502,其中:
S501.终端设备对器件信息进行校验运算,得到第一校验数。
其中,校验运算可以用于对数据的完整性进行校验。具体可以由数据发送方对发出的原始数据进行校验运算,得到校验数。之后,再由数据接收方对接收到的数据进行同样的校验运算,然后通过比对数据接收方得到的校验数与原始校验数是否一致来判断数据是否被篡改。在本申请实施例中,第一校验数用于对共享内存中存储的器件信息进行验证。
在一些实施例中,校验运算可以是任意一种运算方法。示例性的,常用的校验方法包括:校验和、异或校验、CRC校验、md5信息摘要运算,等等。
S502.终端设备将第一校验数写入共享内存。
在一些实施例中,终端设备可以在共享内存中新增第三预设字段,然后,在上述S502中,终端设备将第一校验数赋值给共享内存中的第三预设字段。
进一步的,在终端设备启动过程的第二阶段,终端设备可以根据共享内存中的第一校验数对共享内存中存储的器件信息的完整性进行校验。请继续参照图5,上述方法在S409之后还包括S503-S505,其中:
S503.终端设备从共享内存中获取第一校验数。
需要说明的是,终端设备在进入启动过程的第二阶段之后,可以先获取加密后的器件信息以及密钥,并使用密钥对加密后的器件信息进行解密之后,再从共享内存中获取第一校验数进,即先执行S408和S409之后,再执行S503。也可以先获取第一校验数,再从共享内存中获取加密后的器件信息以及密钥,并使用密钥进行解密;即先执行S503,在执行S408和S409。或者,终端设备还可以同步执行S408、S409以及S503。或者,终端设备还可以先获取加密后的器件信息以及密钥,再获取第一校验数,最后再使用密钥对加密后的器件信息进行解密。在本申请实施例中对于S408、S409以及S503的执行先后顺序不予限定。
S504.终端设备对解密后的器件信息进行校验运算,得到第二校验数。
需要说明的是,S504中对解密后的器件信息进行的校验运算与S501中所使用的校验运算是相同的校验运算方法。
S505.终端设备通过比对第一校验数和第二校验数,得到解密后的器件信息的验证结果。
在一些实施例中,上述S505具体可以包括:在第一校验数与第二校验数相同的情况下,得到第一验证结果,第一验证结果用于指示解密后的器件信息准确。第一校验数和第二校验数相同,则表示终端设备在第二阶段使用密钥解密得到的解密后的器件信息,与终端设备在第一阶段获取的预设器件的器件信息是相同的,也就表示预设器件的器件信息在共享内存中未被篡改。
在另一些实施例中,如果第一校验数与第二校验数不相同,得到第二验证结果,第二验证结果用于指示解密后的器件信息不准确。第一校验数与第二校验数不相同,则表示终端设备在第二阶段使用密钥解密得到的解密后的器件信息,与终端设备在第一阶段获取的预设器件的器件信息是不相同的,也就是说,预设器件的器件信息在共享内存中可能被篡改了。
进一步的,在确定解密后的器件信息准确之后,终端设备在第二阶段可以根据解密后的器件信息加载预设器件的驱动程序。在该实施例中,如图5所示,上述S410具体可以包括S410a:
S410a.在根据验证结果确定解密后的器件信息准确之后,终端设备根据解密后的器件信息加载预设器件的驱动程序。
在本申请实施例提供的技术方案中,在终端设备启动过程的第二阶段加载预设器件的驱动之前,先对共享内存中预设器件的器件信息进行校验,在确定器件信息是准确的之后,再根据器件信息来加载预设器件的驱动程序。这样,可以确保在终端设备的第二阶段可以准确的加载预设器件的驱动程序,保证终端设备在第二阶段可以正常启动。
上述实施例中在终端设备启动过程的第一阶段中,是在对预设器件的器件信息进行加密之前,对未加密的器件信息进行校验运算得到校验数,并进行校验的。而由于在本申请实施例中终端设备在启动过程的第一阶段在共享内存中写入的加密后的器件信息,因此,也可以直接对加密后的器件信息进行校验运算,得到第三校验数。然后,在终端设备启动过程的第二阶段中,先对从共享内存中直接获取的加密后的期间信息进行校验运算得到第四校验数。通过比对第三校验数和第四校验数,确定该加密后的器件信息是否被篡改。最后,在确定加密后的器件信息准确的情况下,再由终端设备使用密钥对加密后的器件信息进行解密。这样,也可以确保终端设备在启动过程的第二阶段可以准确的加载预设器件的驱动程序,保证第二阶段正常启动。
上述实施例中说明的是终端设备的启动过程中Android操作系统的处理流程。即,上述第一阶段和第二阶段均是属于Android操作系统的启动过程中的不同阶段。部分终端设备除了Android操作系统以外,还设置了独立于Android操作系统的系统,在终端设备的启动过程中,对于该系统也需要进行启动。
上述Android操作系统可以称为终端设备的第一系统,独立于Android操作系统的另一个系统可以称为第二系统。在一些实施例中,上述第二系统具体可以是TUI系统。
第二系统可以用于实现部分特定的功能。终端设备的启动过程中,不仅需要启动第一系统(Android操作系统),还需要启动第二系统。并且,在第二系统的启动过程与Android操作系统的流程类似,第二系统的启动过程中也需要依次加载终端设备各个器件的驱动程序。
通常第二系统加载驱动程序时,对应器件的器件信息是由Android操作系统在第二阶段的启动过程中向第二系统传递的。由于本申请实施例中提出的信息的保护方法中,在共享内存中写入的预设器件的器件信息是加密之后的信息,而Android操作系统在第二阶段的启动过程中是从共享内存中获取加密后的器件信息。为了保证第二系统能够正常启动,可以在Android操作系统向第二系统传递器件信息之前,先对加密后的器件信息进行解密,然后由第一系统向第二系统传递解密后的器件信息。这样,第二系统仍然可以根据解密后的真实器件信息,加载预设器件的驱动程序。
如图6所示,为本申请实施例提供的终端设备的第二系统的启动流程示意图。需要说明的是,在图6所示的流程图中,上述第一系统的启动过程未示出。上述方法还包括S601-S603:
S601.启动第二系统。
在终端设备的第二系统的启动过程中,需要接收来自第一系统发送的器件信息,并根据器件信息加载对应的驱动程序。因此,在终端设备进入第一系统的启动过程的第二阶段,并且第一系统使用密钥对加密后的器件信息进行解密,得到解密后的器件信息之后,可以执行S602:
S602.终端设备的第一系统向第二系统发送解密后的器件信息。
在一些实施例中,上述S602具体可以由第一系统的框架层(composer)执行。
应理解,上述S602也可以理解为第二系统接收第一系统发送的解密后的器件信息。在一些实施例中,第二系统在启动过程中具体可以通过module_param_string方式获取composer层传递过来的解密后的器件信息。其中,module_param_string的作用是拷贝字符串到指定的字符数组。
S603.终端设备的第二系统在接收到解密后的器件信息之后,根据解密后的器件信息,加载预设器件的驱动程序。
需要说明的是,上述S602-S603是在终端设备的第一系统的第二阶段启动之后进行的。在一些实施例中,上述S408-S410与S602-S603可以是同步进行的。
这样,第二系统可以获取到准确的未加密的器件信息,并根据该未加密的器件信息加载预设器件的驱动程序,确保第二系统正常的启动。
在另一些实施例中,第一系统在从共享内存中获取到密钥以及加密后器件信息之后,也可以直接将密钥和加密后的器件信息发送给第二系统。之后,由第二系统使用密钥自行对加密后的器件信息进行解密,获得解密后的器件信息。这样,终端设备的第二系统在启动过程中也可以获取到预设器件的未加密器件信息,并根据该未加密的器件信息加载预设器件的驱动程序,完成终端设备的第二系统的启动。
以终端设备的第一系统是Android操作系统,终端设备的第一系统启动过程的第一阶段是UEFI阶段,终端设备的第一系统启动过程的第二阶段是kernel阶段,终端设备的第二系统是TUI系统为例,对上述信息的保护方法进行说明。请参照图7,上述方法包括以下步骤:启动。进入UEFI阶段:UEFI加载驱动;识别预设器件的器件信息;获取密钥;使用密钥对器件信息进行加密;将加密后的器件信息写入共享内存;将密钥写入共享内存;UEFI执行结束。进入kernel阶段;从共享内存获取加密后的器件信息;从共享内存中获取密钥;kernel日志打印共享内存的信息;使用密钥对加密后的器件信息解密;获得解密后的器件信息;根据解密后的器件信息,加载对应的预设器件的驱动程序。
在本申请实施例提出的信息的保护方法中,由于终端设备在UEFI阶段在共享内存中写入的器件信息是加密后的器件信息,因此,在终端设备进入kernel阶段之后,kernel将共享内存中的信息打印为日志。该日志中预设器件的信息也是加密后的器件信息。这样,用户即便获取到了终端设备的在kernel阶段打印的日志,也无法确定预设器件的器件信息。从而保护器件信息不被泄露,提高信息安全。
本申请另一些实施例提供了一种计算机设备,该计算机设备可以是上述终端设备。该计算机设备可以包括:存储器和一个或多个处理器。该存储器与处理器耦合。该存储器还用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,计算机设备可执行上述方法实施例中终端设备执行的各个功能或者步骤。该计算机设备是终端设备时,其结构可以参考图2所示的终端设备100的结构。
本申请实施例还提供一种芯片系统,如图8所示,该芯片系统80包括至少一个处理器801和至少一个接口电路802。处理器801和接口电路802可通过线路互联。例如,接口电路802可用于从其它装置(例如计算机设备的存储器)接收信号。又例如,接口电路802可用于向其它装置(例如处理器801)发送信号。示例性的,接口电路802可读取存储器中存储的指令,并将该指令发送给处理器801。当指令被处理器801执行时,可使得计算机设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在上述终端设备上运行时,使得该终端设备执行上述方法实施例中终端设备执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中终端设备执行的各个功能或者步骤。其中,该计算机可以是终端设备。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种信息的保护方法,其特征在于,所述方法应用于终端设备,所述终端设备包括共享内存;所述方法包括:
在所述终端设备的启动过程的第一阶段中,获取预设器件的器件信息,以及用于加密所述器件信息的密钥;所述预设器件为在所述启动过程中所述终端设备待启动的器件;
根据所述密钥对所述器件信息进行加密处理,得到加密后的器件信息;
将所述加密后的器件信息以及所述密钥写入所述共享内存;
在所述终端设备的启动过程的第二阶段中,所述终端设备根据所述共享内存中的信息加载所述预设器件的驱动程序。
2.根据权利要求1所述的方法,其特征在于,在所述终端设备的启动过程的第二阶段中,所述终端设备根据所述共享内存中的信息加载驱动程序,包括:
在所述终端设备的所述启动过程的第二阶段中,从所述共享内存中获取所述加密后的器件信息和所述密钥;
使用所述密钥对所述加密后的器件信息进行解密,得到解密后的器件信息;
根据所述解密后的器件信息加载所述预设器件的驱动程序。
3.根据权利要求2所述的方法,其特征在于,所述在所述终端设备的启动过程的第一阶段中,获取预设器件的器件信息,以及用于加密所述器件信息的密钥之后,所述方法还包括:
在所述终端设备的启动过程的第一阶段中,对所述器件信息进行校验运算,得到第一校验数;所述第一校验数用于对所述共享内存中存储的器件信息进行验证;
将所述第一校验数写入所述共享内存。
4.根据权利要求3所述的方法,其特征在于,在所述使用所述密钥对所述加密后的器件信息进行解密,得到解密后的器件信息之后,在所述根据所述解密后的器件信息加载所述预设器件的驱动程序之前,所述方法还包括:
从所述共享内存中获取所述第一校验数;
对所述解密后的器件信息进行所述校验运算,得到第二校验数;
通过比对所述第一校验数和所述第二校验数,得到所述解密后的器件信息的验证结果;
其中,所述根据所述解密后的器件信息加载所述预设器件的驱动程序,包括:
在根据所述验证结果确定所述解密后的器件信息准确之后,根据所述解密后的器件信息加载所述预设器件的驱动程序。
5.根据权利要求4所述的方法,其特征在于,所述通过比对所述第一校验数和所述第二校验数,得到所述解密后的器件信息的验证结果,包括:
所述第一校验数与所述第二校验数相同的情况下,得到第一验证结果,所述第一验证结果用于指示所述解密后的器件信息准确;
所述第一校验数与所述第二校验数不相同的情况下,得到第二验证结果,所述第二验证结果用于指示所述解密后的器件信息不准确。
6.根据权利要求1-5中的任一项所述的方法,其特征在于,所述预设器件的器件信息包括一个或多个,所述密钥与所述预设器件的器件信息一一对应。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述获取预设器件的器件信息,以及用于加密所述器件信息的密钥,包括:
获取所述预设器件的器件信息以及当前的时间信息;
对所述当前的时间信息进行预设运算,得到所述密钥。
8.根据权利要求7所述的方法,其特征在于,所述对所述当前的时间信息进行预设运算,得到所述密钥,包括:
对所述当前的时间信息进行取余运算,得到的结果作为所述密钥。
9.根据权利要求2-8中任一项所述的方法,其特征在于,所述终端设备包括相互独立的第一系统和第二系统;所述第一阶段和所述第二阶段属于所述终端设备的第一系统的启动过程;所述方法还包括:
启动所述终端设备的第二系统;
在所述使用所述密钥对所述加密后的器件信息进行解密,得到解密后的器件信息之后,所述终端设备的第一系统向所述终端设备的第二系统发送所述解密后的器件信息;
所述终端设备的第二系统在接收到所述解密后的器件信息之后,根据所述解密后的器件信息,加载所述预设器件的驱动程序。
10.一种终端设备,其特征在于,所述终端设备包括:处理器和存储器;所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述终端设备执行如权利要求1-9中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310209889.3A CN117131519B (zh) | 2023-02-27 | 2023-02-27 | 一种信息的保护方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310209889.3A CN117131519B (zh) | 2023-02-27 | 2023-02-27 | 一种信息的保护方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117131519A true CN117131519A (zh) | 2023-11-28 |
CN117131519B CN117131519B (zh) | 2024-06-11 |
Family
ID=88857069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310209889.3A Active CN117131519B (zh) | 2023-02-27 | 2023-02-27 | 一种信息的保护方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117131519B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162948A1 (en) * | 2005-11-16 | 2008-07-03 | Markany Inc. | Digital Information Storage System, Digital Information Security System, Method for Storing Digital Information and Method for Service Digital Information |
CN104918116A (zh) * | 2015-05-28 | 2015-09-16 | 北京视博数字电视科技有限公司 | 用于智能终端的资源播放方法及系统 |
US20160253520A1 (en) * | 2015-02-27 | 2016-09-01 | Samsung Electronics Co., Ltd. | Method and apparatus for device state based encryption key |
US20180152454A1 (en) * | 2016-11-28 | 2018-05-31 | Samsung Electronics Co., Ltd. | Method and apparatus for managing program of electronic device |
CN108322307A (zh) * | 2017-01-16 | 2018-07-24 | 中标软件有限公司 | 基于内核内存共享的容器间通讯系统及方法 |
US20180293391A1 (en) * | 2017-04-11 | 2018-10-11 | Box, Inc. | Method and system for implementing an encryption sdk |
CN110457894A (zh) * | 2019-08-06 | 2019-11-15 | 惠州Tcl移动通信有限公司 | root权限的分配方法、装置、存储介质及终端设备 |
CN111026457A (zh) * | 2019-11-30 | 2020-04-17 | 惠州Tcl移动通信有限公司 | 一种硬件配置方法、装置、存储介质及终端设备 |
CN112231649A (zh) * | 2020-10-19 | 2021-01-15 | 迅镭智能(广州)科技有限公司 | 一种固件加密处理方法、装置、设备及介质 |
WO2021168652A1 (zh) * | 2020-02-25 | 2021-09-02 | 深圳市欢太科技有限公司 | 终端设备信息传输方法、设备指纹生成方法及相关产品 |
KR20220056705A (ko) * | 2020-10-28 | 2022-05-06 | 주식회사 케이티 | 데이터 보안 장치 및 데이터 보안 방법 |
CN114491565A (zh) * | 2022-03-31 | 2022-05-13 | 飞腾信息技术有限公司 | 固件安全启动方法、装置、计算设备和可读存储介质 |
CN114531676A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种密钥处理方法、装置和终端设备 |
CN114691289A (zh) * | 2020-12-26 | 2022-07-01 | 英特尔公司 | 用于保存和恢复密钥信息的指令支持 |
CN114817931A (zh) * | 2022-04-22 | 2022-07-29 | 中国电力科学研究院有限公司 | 基于星型信任链的终端安全防护方法、装置、设备及介质 |
US20220294624A1 (en) * | 2021-03-15 | 2022-09-15 | Innogrit Technologies Co., Ltd. | Encryption method and device, electronic apparatus and storage medium |
CN115618364A (zh) * | 2022-12-16 | 2023-01-17 | 飞腾信息技术有限公司 | 实现安全可信启动的方法、安全架构系统及相关设备 |
-
2023
- 2023-02-27 CN CN202310209889.3A patent/CN117131519B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162948A1 (en) * | 2005-11-16 | 2008-07-03 | Markany Inc. | Digital Information Storage System, Digital Information Security System, Method for Storing Digital Information and Method for Service Digital Information |
US20160253520A1 (en) * | 2015-02-27 | 2016-09-01 | Samsung Electronics Co., Ltd. | Method and apparatus for device state based encryption key |
CN104918116A (zh) * | 2015-05-28 | 2015-09-16 | 北京视博数字电视科技有限公司 | 用于智能终端的资源播放方法及系统 |
US20180152454A1 (en) * | 2016-11-28 | 2018-05-31 | Samsung Electronics Co., Ltd. | Method and apparatus for managing program of electronic device |
CN108322307A (zh) * | 2017-01-16 | 2018-07-24 | 中标软件有限公司 | 基于内核内存共享的容器间通讯系统及方法 |
US20180293391A1 (en) * | 2017-04-11 | 2018-10-11 | Box, Inc. | Method and system for implementing an encryption sdk |
CN110457894A (zh) * | 2019-08-06 | 2019-11-15 | 惠州Tcl移动通信有限公司 | root权限的分配方法、装置、存储介质及终端设备 |
CN111026457A (zh) * | 2019-11-30 | 2020-04-17 | 惠州Tcl移动通信有限公司 | 一种硬件配置方法、装置、存储介质及终端设备 |
WO2021168652A1 (zh) * | 2020-02-25 | 2021-09-02 | 深圳市欢太科技有限公司 | 终端设备信息传输方法、设备指纹生成方法及相关产品 |
CN112231649A (zh) * | 2020-10-19 | 2021-01-15 | 迅镭智能(广州)科技有限公司 | 一种固件加密处理方法、装置、设备及介质 |
KR20220056705A (ko) * | 2020-10-28 | 2022-05-06 | 주식회사 케이티 | 데이터 보안 장치 및 데이터 보안 방법 |
CN114531676A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种密钥处理方法、装置和终端设备 |
CN114691289A (zh) * | 2020-12-26 | 2022-07-01 | 英特尔公司 | 用于保存和恢复密钥信息的指令支持 |
US20220294624A1 (en) * | 2021-03-15 | 2022-09-15 | Innogrit Technologies Co., Ltd. | Encryption method and device, electronic apparatus and storage medium |
CN114491565A (zh) * | 2022-03-31 | 2022-05-13 | 飞腾信息技术有限公司 | 固件安全启动方法、装置、计算设备和可读存储介质 |
CN114817931A (zh) * | 2022-04-22 | 2022-07-29 | 中国电力科学研究院有限公司 | 基于星型信任链的终端安全防护方法、装置、设备及介质 |
CN115618364A (zh) * | 2022-12-16 | 2023-01-17 | 飞腾信息技术有限公司 | 实现安全可信启动的方法、安全架构系统及相关设备 |
Non-Patent Citations (2)
Title |
---|
瞿进;李清宝;白燕;魏珉;: "文件过滤驱动在网络安全终端中的应用", 计算机应用, no. 03, 10 March 2007 (2007-03-10) * |
贾天江;曾光裕;王炜;周振宇;: "基于USBKey的可信启动技术研究", 信息工程大学学报, no. 02, 15 April 2016 (2016-04-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117131519B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111444528B (zh) | 数据安全保护方法、装置及存储介质 | |
US10078599B2 (en) | Application access control method and electronic apparatus implementing the same | |
US20170201378A1 (en) | Electronic device and method for authenticating identification information thereof | |
CN114531676B (zh) | 一种密钥处理方法、装置和终端设备 | |
CN105809028B (zh) | 在移动设备中运行相同应用的多个实例的装置和方法 | |
CN106778295B (zh) | 文件存储、显示方法、装置及终端 | |
CN111357255B (zh) | 构建多个应用通用的可信应用 | |
WO2019148397A1 (zh) | 分解敏感数据存储在不同应用环境中 | |
CN115879088A (zh) | 权限检查的方法和电子设备 | |
US12126718B2 (en) | Electronic device for selecting key to be used for encryption on basis of amount of information of data to be encrypted, and operation method of electronic device | |
CN110362330B (zh) | 应用程序更新方法、装置、终端及存储介质 | |
KR20160063793A (ko) | 전자 장치 및 전자 장치에서의 정보 송신 및 수신 방법 | |
CN117131519B (zh) | 一种信息的保护方法及设备 | |
KR20210026233A (ko) | 디바이스 리소스에 대한 접근을 제어하기 위한 전자 장치 및 그의 동작 방법 | |
CN116049839B (zh) | 一种数据传输方法和电子设备 | |
CN112528311B (zh) | 数据管理方法、装置及终端 | |
CN114692093B (zh) | 一种应用程序安装方法及电子设备 | |
CN113850633B (zh) | 信息推送方法和装置 | |
CN116049812B (zh) | 访问硬件资源的方法和电子设备 | |
CN117131533A (zh) | 打开文件的方法和电子设备 | |
CN115017927B (zh) | 卡片模拟方法、电子设备及存储介质 | |
CN117135263B (zh) | 日志信息获取方法、电子设备及计算机可读存储介质 | |
CN113821843B (zh) | 移动终端及其插入卡的类型确定方法 | |
CN116095685A (zh) | 关键信息的保护方法和终端设备 | |
CN117032567A (zh) | 端口开启方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |