CN106778283B - 一种系统分区关键数据的保护方法及系统 - Google Patents

一种系统分区关键数据的保护方法及系统 Download PDF

Info

Publication number
CN106778283B
CN106778283B CN201611048270.5A CN201611048270A CN106778283B CN 106778283 B CN106778283 B CN 106778283B CN 201611048270 A CN201611048270 A CN 201611048270A CN 106778283 B CN106778283 B CN 106778283B
Authority
CN
China
Prior art keywords
value
verification
hash value
block address
key
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.)
Active
Application number
CN201611048270.5A
Other languages
English (en)
Other versions
CN106778283A (zh
Inventor
凌小荣
魏亚姣
黄允庆
郑金国
黄泽明
钟海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huizhou TCL Mobile Communication Co Ltd
Original Assignee
Huizhou TCL Mobile Communication Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huizhou TCL Mobile Communication Co Ltd filed Critical Huizhou TCL Mobile Communication Co Ltd
Priority to CN201611048270.5A priority Critical patent/CN106778283B/zh
Publication of CN106778283A publication Critical patent/CN106778283A/zh
Priority to EP17871422.6A priority patent/EP3543884A4/en
Priority to PCT/CN2017/108701 priority patent/WO2018090823A1/zh
Priority to US16/462,551 priority patent/US11057216B2/en
Application granted granted Critical
Publication of CN106778283B publication Critical patent/CN106778283B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种系统分区关键数据的保护方法及系统,所述方法包括:在Bootloader启动时,获取系统分区文件携带的关键数据对应的验证表,其中,所述验证表包括数字签名、块地址以及Hash值;采用预设的公钥或私钥解密所述数字签名得到第一验证值;根据所述块地址和Hash值生成第二验证值,将第一验证值和第二验证值进行比较;若第一验证值与第二验证值一致,则启动系统。本发明通过对系统关键数据的验证,而不是先进行整个系统文件分区校验后,再加加载系统文件;从而节省了读取整个文件系统分区的时间,大大减少了系统启动时间,同时对系统进行了保护。

Description

一种系统分区关键数据的保护方法及系统
技术领域
本发明涉及终端设备技术领域,特别涉及一种系统分区关键数据的保护方法及系统。
背景技术
近年来Android智能手机的普及率越来越高,用户体验也越来越好,不过系统安全问题一直是用户和运营商关注的重点,Google以及各手机方案提供商也在安全方面做了很多改善。如分区加密、安全版本号验证等方案。但是针对系统分区,由于分区文件太大,无法对其进行加密处理。目前Google只提供了DM-verity机制来保证系统分区的数据安全,而该机制是开源的项目,并且在某些特定条件下可以用adb命令关闭。这样,当系统分区里的某些数据文件被破解(如记录系统属性的文件),那么就相当于破解了整个系统,使得系统的安全性受到影响。
因而现有技术还有待改进和提高。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种系统分区关键数据的保护方法及系统,实现在无需对整个系统分区进行加密的情况下保护系统分区的关键数据。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种系统分区关键数据的保护方法,其包括:
在Bootloader启动时,获取系统分区文件携带的关键数据对应的验证表,其中,所述验证表包括数字签名、块地址以及Hash值;
采用预设的公钥或私钥解密所述数字签名得到第一验证值;
根据所述块地址和Hash值生成第二验证值,将第一验证值和第二验证值进行比较;
若第一验证值与第二验证值一致,则启动系统。
所述系统分区关键数据的保护方法,其中,所述若第一验证值与第二验证值一致,则启动系统具体包括:
若第一验证值与第二验证值一致,则根据所述块地址计算所述关键数据的当前Hash值;
将所述当前Hash值与所述Hash值进行比较,当所述当前Hash值与所述Hash值一致时,启动系统。
所述系统分区关键数据的保护方法,其中,所述在Bootloader启动时,获取系统分区文件携带的关键数据对应的验证表,其中,所述验证表包括数字签名信息、块地址以及Hash值之前还包括:
在编译系统文件时,生成记录有系统分区所有文件及其对应的块地址的映射文件;
根据所述映射文件确定所述关键数据对应的块地址,并计算所述块地址的Hash值;
根据所述块地址和Hash值生成第一验证值,并采用预设的私钥或公钥加密所述第一验证值得到所述数字签名;
将所述数字签名、块地址以及Hash值存于所述验证表,并将所述验证表追加至系统文件后面。
所述系统分区关键数据的保护方法,其中,所述根据所述块地址和Hash值生成第一验证值,并采用预设的私钥或公钥加密所述第一验证值得到所述数字签名具体包括:
将所述Hash值放置于所述块地址后生成第一待验证值,并计算所述第一待验证值的Hash值以得到第一验证值;
采用预设的私钥或公钥加密所述第一验证值得到所述数字签名,其中,所述私钥为所述公钥对应的私钥。
所述系统分区关键数据的保护方法,其中,所述将所述数字签名信息、块地址以及Hash值存于所述验证表,并将所述验证表追加至系统文件后面之后还包括:
将所述私钥或公钥对应的公钥或私钥以数组的形式编译到Bootloader,以使得在Bootloader启动时采用所述公钥或私钥解密所述数字签名。
一种系统分区关键数据的保护系统,其包括:
获取模块,用于在Bootloader启动时,获取系统分区文件携带的关键数据对应的验证表,其中,所述验证表包括数字签名、块地址以及Hash值;
解密模块,用于采用预设的公钥或私钥解密所述数字签名得到第一验证值;
比较模块,用于根据所述块地址和Hash值生成第二验证值,将第一验证值和第二验证值进行比较;
执行模块,用于当第一验证值与第二验证值一致时,启动系统。
所述系统分区关键数据的保护系统,其中,所述执行模块具体包括:
计算单元,用于当第一验证值与第二验证值一致时,根据所述块地址计算所述关键数据的当前Hash值;
执行单元,用于将所述当前Hash值与所述Hash值进行比较,当所述当前Hash值与所述Hash值一致时,启动系统。
所述系统分区关键数据的保护系统,其还包括:
生成模块,用于在编译系统文件时,生成记录有系统分区所有文件及其对应的块地址的映射文件;
计算模块,用于根据所述映射文件确定所述关键数据对应的块地址,并计算所述块地址的Hash值;
加密模块,用于根据所述块地址和Hash值生成第一验证值,并采用预设的私钥或公钥加密所述第一验证值得到所述数字签名;
存储模块,用于将所述数字签名、块地址以及Hash值存于所述验证表,并将所述验证表追加至系统文件后面。
所述系统分区关键数据的保护系统,其中,所述加密模块具体包括:
生成单元,用于将所述Hash值放置于所述块地址后生成第一待验证值,并计算所述第一待验证值的Hash值以得到第一验证值;
加密单元,用于采用预设的私钥或公钥加密所述第一验证值得到所述数字签名,其中,所述私钥为所述公钥对应的私钥。
所述系统分区关键数据的保护系统,其还包括:
编译模块,用于将所述私钥或公钥对应的公钥或私钥以数组的形式编译到Bootloader,以使得在Bootloader启动时采用所述公钥或私钥解密所述数字签名。
有益效果:与现有技术相比,本发明提供了一种系统分区关键数据的保护方法及系统,所述方法包括:在Bootloader启动时,获取系统分区文件携带的关键数据对应的验证表,其中,所述验证表包括数字签名、块地址以及Hash值;采用预设的公钥或私钥解密所述数字签名得到第一验证值;根据所述块地址和Hash值生成第二验证值,将第一验证值和第二验证值进行比较;若第一验证值与第二验证值一致,则启动系统。本发明通过对系统关键数据的验证,而不是先进行整个系统文件分区校验后,再加加载系统文件;从而节省了读取整个文件系统分区的时间,大大减少了系统启动时间,同时对系统进行了保护。
附图说明
图1为本发明提供的系统分区关键数据的保护方法较佳实施的流程图。
图2为本发明提供的系统分区关键数据的保护系统的结构原理图。
具体实施方式
本发明提供一种系统分区关键数据的保护方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,模块”、“部件”或“单元”可以混合地使用。
终端设备可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
请参照图1,图1为本发明提供的系统分区关键数据的保护方法的较佳实施例的流程图。所述方法包括:
S101、在Bootloader启动时,获取系统分区文件携带的关键数据对应的验证表,其中,所述验证表包括数字签名、块地址以及Hash值;
S102、采用预设的公钥或私钥解密所述数字签名得到第一验证值;
S103、根据所述块地址和Hash值生成第二验证值,将第一验证值和第二验证值进行比较;
S104、若第一验证值与第二验证值一致,则启动系统。
本实施例提供在Bootloader启动时,对系统分区文件携带的关键数据的验证表进行解析以得到数字签名、块地址以及Hash值;通过对数字签名解密得到第一验证值,并根据块地址以及Hash值生成第二验证值;通过第一验证值和第二验证值的比较来判定所述关键数据是否被篡改,进行判定是否启动系统。本发明通过对系统关键数据的验证,而不是先进行整个系统文件分区校验后,再加加载系统文件;从而节省了读取整个文件系统分区的时间,大大减少了系统启动时间,同时对系统进行了保护。
具体的来说,在所述步骤S101中,所述关键数据预设设置的系统分区文件的一部分,例如,记录系统属性的文件。也就是说,所述关键数据也为系统分区文件。
在所述步骤S102中,所述公钥或私钥为Bootloader启动程序中携带的,用于解密所述数字签名。所述公钥或私钥与系统编译过程中对所述第一验证值进行加密的私钥或公钥相对应。
在所述步骤S103中,所述根据块地址(Key Blocks)和Hash值(Key Hash)为系统分区文件中的验证表中携带的块地址和Hash值。所述根据所述块地址和Hash值生成第二验证值生成第二验证值具体为将所述Hash值放置于块地址之后形成第二待验证值(Key Blocks+Key Hash),之后openssl库中提供的EVP系列函数来计算这段地址的SHA256哈希值记为第二验证值。在实际应用中,当所述块地址(Key Blocks)对应的内容太大时,可以采用则采用以4K为单位分段读取内容,并分别每段内容输入到EVP函数中,最终输出一个SHA256哈希值。由于所述分段输入得到的SHA256哈希值等同于对整段内容直接计算SHA256哈希值,从而将所述分段输入得到的SHA256哈希值记为第二验证值。值得说明的,所述根据块地址和Hash值生成第二验证值的方法与第一验证值的生成方法一样,这样可以根据第一验证值和第二验证值的一致性来判断系统分区关键数据文件是否被篡改,进而判断系统的安全性。
在所述步骤S104中,所述第一验证值与第二验证一致,认为该关键数据文件是没有被篡改的,可以正常启动系统。当然,当第一验证值与第二验证不一致时,判定关键数据文件被篡改,自动关机。
在本发明的一个实施例中,所述步骤S104:若第一验证值与第二验证值一致,则启动系统具体可以包括:
S1041、若第一验证值与第二验证值一致,则根据所述块地址计算所述关键数据的当前Hash值;
S1042、将所述当前Hash值与所述Hash值进行比较,当所述当前Hash值与所述Hash值一致时,启动系统。
本实施例在第一验证值和第二验证值一致的情况下,将验证表携带的Hash值与根据块地址计算的当前Hash值进行比较,进而判定所述关键数据的存放地址是否发生变化,在关键数据的存放地址未发生变化时,正常启动系统。这样在关键数据未篡改以及存放地址未发生变化时才正常启动系统,进一步提高了系统的安全。
实施例一
本实施例提供了一种系统分区关键数据的保护方法,其具体包括:
S201、在编译系统文件时,生成记录有系统分区所有文件及其对应的块地址的映射文件;
S202、根据所述映射文件确定所述关键数据对应的块地址,并计算所述块地址的Hash值;
S203、根据所述块地址和Hash值生成第一验证值,并采用预设的私钥或公钥加密所述第一验证值得到所述数字签名;
S204、将所述数字签名、块地址以及Hash值存于所述验证表,并将所述验证表追加至系统文件后面;
S205、在Bootloader启动时,获取系统分区文件携带的所述关键数据对应的验证表;
S206、采用预设的公钥和私钥解密所述数字签名得到第一验证值;
S207、根据所述块地址和Hash值生成第二验证值,将第一验证值和第二验证值进行比较;
S208、若第一验证值与第二验证值一致,则启动系统。
本实施提供的系统分区关键数据的保护方法中,首先在编译系统分区文件时生成记录有系统分区所有文件及其对应的块地址的映射文件,并根据所述映射文件确定所述关键数据对应的块地址,根据所述块地址生成第一验证值,在采用公钥或私钥加密生成数字签名。在Bootloader启动时,获取系统分区文件携带的数字签名,块地址和Hash值,并采用私钥或公钥解密数字签名得到第一验证值,同时根据块地址和Hash值生成第二验证值,根据第一验证值和第二验证值判断关键数据是否被篡改,进而判断系统是否安全。
具体地来说,在所述步骤S201中,所述在编译系统文件时,生成记录系统分区所有文件以及其对应块地址的映射文件(map文件),所述map文件内记载着系统分区文件的名称以及其对应的块地址。也就是说,所述map文件中记录有系统分区文件名称、块地址,以及系统系统文件名称与块地址之间的对应关系。在所述map文件中,根据系统分区文件名称可以确定其对应的块地址,根据块地址也可以确定其对应的系统分区文件名称。这样可以从所述map文件中解析出关键数据文件对应的块地址。在实际应用中,所述map文件的内容摘选可以为:
/system/xbin/tcpdump 293974-294294
/system/xbin/taskstats 293969-293972
/system/xbin/su 293965-293967
/system/xbin/strace 293801-293963
/system/xbin/sqlite3293781-293799
/system/xbin/simpleperf 293680-293779。
在所述步骤S202中,所述块地址Key Blocks通常是以xxx-xxx格式记录的一段地址范围。所述计算所述块地址的Hash值可以采用openssl库中提供的EVP系列函数来计算这段地址的SHA256哈希值,如果这段地址的内容太大,则采用以4K为单位分段读取内容,输入到EVP函数中,最终输出一个SHA256哈希值,其最终结果等同于对整段内容直接计算SHA256哈希值。所述使用EVP计算SHA256哈希值的伪代码可以为:
Figure BDA0001157748440000091
Figure BDA0001157748440000101
Figure BDA0001157748440000111
在所述步骤S203中,所述根据所述块地址和Hash值生成第一验值可以采用RSA2048算法确定第一验证值,再采用预先生成的私钥或公钥对所述第一验证值加密得到数字签名(Signature)。所述数字签名(Signature)的计算方法采用标准的RSA签名过程,其具体为:获取要签名的内容[Key Blocks+Key Hash],再用RSA2048算法对以上内容进行签名得到数字签名(Signature)。值得说明的,所述加密采用的私钥或公钥与后面解密采用的公钥或私钥成对的。
示例性的,根据所述块地址和Hash值生成第一验证值,并采用预设的私钥或公钥加密所述第一验证值得到所述数字签名具体可以包括:
S2031、所述将所述Hash值放置于所述块地址后生成第一待验证值,并计算所述第一待验证值的Hash值以得到第一验证值;
S2032、采用预设的私钥或公钥加密所述第一验证值得到所述数字签名。
在本发明的另一个实施例中,为了便于在Bootloader启动时获取所述私钥或公钥对应的公钥或私钥,在所述步骤S204之后还可以包括:将所述私钥或公钥对应的公钥或私钥以数组的形式编译到Bootloader,以使得在Bootloader启动时采用所述公钥或私钥解密所述数字签名。
本发明还提供了一种系统分区关键数据的保护系统,如图2所示,其包括:
获取模块100,用于在Bootloader启动时,获取系统分区文件携带的关键数据对应的验证表,其中,所述验证表包括数字签名、块地址以及Hash值;
解密模块200,用于采用预设的公钥或私钥解密所述数字签名得到第一验证值;
比较模块300,用于根据所述块地址和Hash值生成第二验证值,将第一验证值和第二验证值进行比较;
执行模块400,用于当第一验证值与第二验证值一致时,启动系统。
所述系统分区关键数据的保护系统,其中,所述执行模块具体包括:
计算单元,用于当第一验证值与第二验证值一致时,根据所述块地址计算所述关键数据的当前Hash值;
执行单元,用于将所述当前Hash值与所述Hash值进行比较,当所述当前Hash值与所述Hash值一致时,启动系统。
所述系统分区关键数据的保护系统,其还包括:
生成模块,用于在编译系统文件时,生成记录有系统分区所有文件及其对应的块地址的映射文件;
计算模块,用于根据所述映射文件确定所述关键数据对应的块地址,并计算所述块地址的Hash值;
加密模块,用于根据所述块地址和Hash值生成第一验证值,并采用预设的私钥或公钥加密所述第一验证值得到所述数字签名;
存储模块,用于将所述数字签名、块地址以及Hash值存于所述验证表,并将所述验证表追加至系统文件后面。
所述系统分区关键数据的保护系统,其中,所述加密模块具体包括:
生成单元,用于将所述Hash值放置于所述块地址后生成第一待验证值,并计算所述第一待验证值的Hash值以得到第一验证值;
加密单元,用于采用预设的私钥或公钥加密所述第一验证值得到所述数字签名,其中,所述私钥为所述公钥对应的私钥。
所述系统分区关键数据的保护系统,其还包括:
编译模块,用于将所述私钥或公钥对应的公钥或私钥以数组的形式编译到Bootloader,以使得在Bootloader启动时采用所述公钥或私钥解密所述数字签名。
上述系统分区关键数据的保护系统的各个模块在上述方法中已经详细说明,在这里就不再一一陈述。
在本发明所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种系统分区关键数据的保护方法,其特征在于,其包括:
在Bootloader启动时,获取系统分区文件携带的关键数据对应的验证表,其中,所述验证表包括数字签名、块地址以及Hash值;
采用预设的公钥或私钥解密所述数字签名得到第一验证值;
根据所述块地址和Hash值生成第二验证值,将第一验证值和第二验证值进行比较;
若第一验证值与第二验证值一致,则启动系统;
当所述块地址对应的内容太大时,采用以4K为单位分段读取内容,并分别将每段内容输入到EVP函数中,最终输出一个SHA256哈希值;
所述在Bootloader启动时,获取系统分区文件携带的关键数据对应的验证表,其中,所述验证表包括数字签名信息、块地址以及Hash值之前包括:
在编译系统文件时,生成记录有系统分区所有文件及其对应的块地址的映射文件;
根据所述映射文件确定所述关键数据对应的块地址,并计算所述块地址的Hash值;
根据所述块地址和Hash值生成第一验证值,并采用预设的私钥或公钥加密所述第一验证值得到所述数字签名;
将所述数字签名、块地址以及Hash值存于所述验证表,并将所述验证表追加至系统文件后面。
2.根据权利要求1所述系统分区关键数据的保护方法,其特征在于,所述若第一验证值与第二验证值一致,则启动系统具体包括:
若第一验证值与第二验证值一致,则根据所述块地址计算所述关键数据的当前Hash值;
将所述当前Hash值与所述Hash值进行比较,当所述当前Hash值与所述Hash值一致时,启动系统。
3.根据权利要求1所述系统分区关键数据的保护方法,其特征在于,所述根据所述块地址和Hash值生成第一验证值,并采用预设的私钥或公钥加密所述第一验证值得到所述数字签名具体包括:
将所述Hash值放置于所述块地址后生成第一待验证值,并计算所述第一待验证值的Hash值以得到第一验证值;
采用预设的私钥或公钥加密所述第一验证值得到所述数字签名,其中,所述私钥为所述公钥对应的私钥。
4.根据权利要求1所述系统分区关键数据的保护方法,其特征在于,所述将所述数字签名信息、块地址以及Hash值存于所述验证表,并将所述验证表追加至系统文件后面之后还包括:
将所述私钥或公钥对应的公钥或私钥以数组的形式编译到Bootloader,以使得在Bootloader启动时采用所述公钥或私钥解密所述数字签名。
5.一种系统分区关键数据的保护系统,其特征在于,其包括:
获取模块,用于在Bootloader启动时,获取系统分区文件携带的关键数据对应的验证表,其中,所述验证表包括数字签名、块地址以及Hash值;
解密模块,用于采用预设的公钥或私钥解密所述数字签名得到第一验证值;
比较模块,用于根据所述块地址和Hash值生成第二验证值,将第一验证值和第二验证值进行比较;
执行模块,用于当第一验证值与第二验证值一致时,启动系统;
分段模块,用于当所述块地址对应的内容太大时,采用以4K为单位分段读取内容,并分别将每段内容输入到EVP函数中,最终输出一个SHA256哈希值;
生成模块,用于在编译系统文件时,生成记录有系统分区所有文件及其对应的块地址的映射文件;
计算模块,用于根据所述映射文件确定所述关键数据对应的块地址,并计算所述块地址的Hash值;
加密模块,用于根据所述块地址和Hash值生成第一验证值,并采用预设的私钥或公钥加密所述第一验证值得到所述数字签名;
存储模块,用于将所述数字签名、块地址以及Hash值存于所述验证表,并将所述验证表追加至系统文件后面。
6.根据权利要求5所述系统分区关键数据的保护系统,其特征在于,所述执行模块具体包括:
计算单元,用于当第一验证值与第二验证值一致时,根据所述块地址计算所述关键数据的当前Hash值;
执行单元,用于将所述当前Hash值与所述Hash值进行比较,当所述当前Hash值与所述Hash值一致时,启动系统。
7.根据权利要求5所述系统分区关键数据的保护系统,其特征在于,所述加密模块具体包括:
生成单元,用于将所述Hash值放置于所述块地址后生成第一待验证值,并计算所述第一待验证值的Hash值以得到第一验证值;
加密单元,用于采用预设的私钥或公钥加密所述第一验证值得到所述数字签名,其中,所述私钥为所述公钥对应的私钥。
8.根据权利要求5所述系统分区关键数据的保护系统,其特征在于,其还包括:
编译模块,用于将所述私钥或公钥对应的公钥或私钥以数组的形式编译到Bootloader,以使得在Bootloader启动时采用所述公钥或私钥解密所述数字签名。
CN201611048270.5A 2016-11-21 2016-11-21 一种系统分区关键数据的保护方法及系统 Active CN106778283B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201611048270.5A CN106778283B (zh) 2016-11-21 2016-11-21 一种系统分区关键数据的保护方法及系统
EP17871422.6A EP3543884A4 (en) 2016-11-21 2017-10-31 METHOD AND SYSTEM FOR PROTECTING SYSTEM PARTITION KEY DATA AND TERMINAL
PCT/CN2017/108701 WO2018090823A1 (zh) 2016-11-21 2017-10-31 一种系统分区关键数据的保护方法及系统、终端
US16/462,551 US11057216B2 (en) 2016-11-21 2017-10-31 Protection method and protection system of system partition key data and terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611048270.5A CN106778283B (zh) 2016-11-21 2016-11-21 一种系统分区关键数据的保护方法及系统

Publications (2)

Publication Number Publication Date
CN106778283A CN106778283A (zh) 2017-05-31
CN106778283B true CN106778283B (zh) 2020-04-07

Family

ID=58974494

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611048270.5A Active CN106778283B (zh) 2016-11-21 2016-11-21 一种系统分区关键数据的保护方法及系统

Country Status (4)

Country Link
US (1) US11057216B2 (zh)
EP (1) EP3543884A4 (zh)
CN (1) CN106778283B (zh)
WO (1) WO2018090823A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106778283B (zh) * 2016-11-21 2020-04-07 惠州Tcl移动通信有限公司 一种系统分区关键数据的保护方法及系统
CN107480076A (zh) * 2017-07-31 2017-12-15 北京小米移动软件有限公司 系统分区的保护处理方法、装置及终端
US10902127B2 (en) * 2018-12-05 2021-01-26 American Megatrends International, Llc Method and apparatus for secure boot of embedded device
WO2021080586A1 (en) * 2019-10-24 2021-04-29 Hewlett-Packard Development Company, L.P. Authentication of write requests
CN111045962B (zh) * 2019-12-18 2023-06-09 湖南国科微电子股份有限公司 一种sd卡数据保密方法、系统、设备及计算机介质
CN113282930B (zh) * 2020-02-19 2024-03-01 瑞昱半导体股份有限公司 具有固件验证机制的电脑系统及其固件验证方法
CN111400771A (zh) * 2020-02-19 2020-07-10 展讯通信(上海)有限公司 目标分区的校验方法及装置、存储介质、计算机设备
CN111405082B (zh) * 2020-03-23 2022-08-16 Oppo(重庆)智能科技有限公司 一种设备连接方法、电子设备及终端、存储介质
CN111814137B (zh) * 2020-06-29 2024-03-22 深圳市海邻科信息技术有限公司 终端的运维方法、运维系统及存储介质
CN111523124B (zh) * 2020-07-06 2020-10-13 飞天诚信科技股份有限公司 一种云音箱固件保护方法及系统
CN113485757A (zh) * 2021-07-22 2021-10-08 北京青云科技股份有限公司 一种系统启动过程中的解密方法、装置、设备及存储介质
CN114491610B (zh) * 2022-04-01 2022-07-08 国网浙江省电力有限公司 基于哈希加密算法和量子密匙的智慧共享财务平台及系统
CN115766014A (zh) * 2022-05-19 2023-03-07 惠州市德赛西威汽车电子股份有限公司 一种控制器安全管理方法、装置、车辆及存储介质
CN115629824B (zh) * 2022-12-01 2023-08-15 摩尔线程智能科技(北京)有限责任公司 Gpu的启动方法、装置、设备、存储介质和程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408370A (zh) * 2014-12-25 2015-03-11 珠海全志科技股份有限公司 安卓系统安全性验证方法及其验证装置
CN105224875A (zh) * 2015-11-13 2016-01-06 上海斐讯数据通信技术有限公司 一种终端的安全启动系统和方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7380140B1 (en) * 1998-12-30 2008-05-27 Spyrus, Inc. Providing a protected volume on a data storage device
US7409546B2 (en) * 1999-10-20 2008-08-05 Tivo Inc. Cryptographically signed filesystem
US6907522B2 (en) 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
US20100062844A1 (en) * 2003-03-05 2010-03-11 Bally Gaming, Inc. Authentication and validation systems for gaming devices
KR20090037712A (ko) * 2007-10-12 2009-04-16 삼성전자주식회사 보안 부트-업되는 전자 장치, 그것의 해쉬값 계산 방법 및부트-업 방법
US9369688B2 (en) * 2011-07-08 2016-06-14 Percy 3Dmedia, Inc. 3D user personalized media templates
US8782387B2 (en) * 2011-12-31 2014-07-15 International Business Machines Corporation Secure boot of a data breakout appliance with multiple subsystems at the edge of a mobile data network
US9183393B2 (en) * 2012-01-12 2015-11-10 Facebook, Inc. Multiple system images for over-the-air updates
KR101997605B1 (ko) * 2012-02-24 2019-07-08 삼성전자 주식회사 휴대단말기의 어플리케이션 처리장치 및 방법
US9424200B2 (en) * 2013-03-15 2016-08-23 Freescale Semiconductor, Inc. Continuous run-time integrity checking for virtual memory
US10073966B2 (en) * 2013-04-29 2018-09-11 Sri International Operating system-independent integrity verification
US20150113291A1 (en) * 2013-10-23 2015-04-23 Spectra Logic Corporation Cyptographic branding of data containers
US9137415B2 (en) * 2014-01-29 2015-09-15 Depict, Inc. Using a security feature with a digital image file
CN103927490A (zh) * 2014-04-25 2014-07-16 华为技术有限公司 操作系统安全启动方法及装置
US10346343B2 (en) * 2016-06-24 2019-07-09 Intel Corporation Hardware accelerator for platform firmware integrity check
CN106778283B (zh) * 2016-11-21 2020-04-07 惠州Tcl移动通信有限公司 一种系统分区关键数据的保护方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408370A (zh) * 2014-12-25 2015-03-11 珠海全志科技股份有限公司 安卓系统安全性验证方法及其验证装置
CN105224875A (zh) * 2015-11-13 2016-01-06 上海斐讯数据通信技术有限公司 一种终端的安全启动系统和方法

Also Published As

Publication number Publication date
CN106778283A (zh) 2017-05-31
EP3543884A4 (en) 2020-07-15
EP3543884A1 (en) 2019-09-25
US11057216B2 (en) 2021-07-06
WO2018090823A1 (zh) 2018-05-24
US20190349202A1 (en) 2019-11-14

Similar Documents

Publication Publication Date Title
CN106778283B (zh) 一种系统分区关键数据的保护方法及系统
US9652610B1 (en) Hierarchical data security measures for a mobile device
Skillen et al. On implementing deniable storage encryption for mobile devices
US20220006617A1 (en) Method and apparatus for data storage and verification
US9405925B2 (en) Content item encryption on mobile devices
CN110324138B (zh) 数据加密、解密方法及装置
US10733594B1 (en) Data security measures for mobile devices
Skillen et al. Mobiflage: Deniable storage encryptionfor mobile devices
CN107679370B (zh) 一种设备标识生成方法及装置
CN107077540B (zh) 用于提供基于云的应用安全服务的方法和系统
CN111143869A (zh) 应用程序包处理方法、装置、电子设备及存储介质
US20130019110A1 (en) Apparatus and method for preventing copying of terminal unique information in portable terminal
CN106951799B (zh) 一种Android双数据分区构建方法
CN115248919A (zh) 一种函数接口的调用方法、装置、电子设备及存储介质
US11934539B2 (en) Method and apparatus for storing and processing application program information
CN111901105B (zh) 一种基于UEFI架构EDK2支持Openssl算法的方法与设备
CN117610083A (zh) 文件校验方法、装置、电子设备及计算机存储介质
WO2020044095A1 (zh) 文件加密方法、装置、设备/终端/服务器及计算机可读存储介质
CN113127844A (zh) 一种变量访问方法、装置、系统、设备和介质
CN111857756A (zh) 一种基于硬件加密的安全刷机方法及系统
CN111177674A (zh) 设备验证方法及设备
CN101324914B (zh) 一种防盗版的方法和装置
CN107391970B (zh) Flash应用程序中的函数访问控制方法及装置
US9537842B2 (en) Secondary communications channel facilitating document security
CN111046440B (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