RU2013104050A - Способ обеспечения целостности программного обеспечения - Google Patents

Способ обеспечения целостности программного обеспечения Download PDF

Info

Publication number
RU2013104050A
RU2013104050A RU2013104050/08A RU2013104050A RU2013104050A RU 2013104050 A RU2013104050 A RU 2013104050A RU 2013104050/08 A RU2013104050/08 A RU 2013104050/08A RU 2013104050 A RU2013104050 A RU 2013104050A RU 2013104050 A RU2013104050 A RU 2013104050A
Authority
RU
Russia
Prior art keywords
command
key
encrypted
current
command key
Prior art date
Application number
RU2013104050/08A
Other languages
English (en)
Other versions
RU2541196C2 (ru
Inventor
Марко МАККЕТТИ
Анри КЮДЕЛЬСКИ
Original Assignee
Награвисьон С.А.
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 Награвисьон С.А. filed Critical Награвисьон С.А.
Publication of RU2013104050A publication Critical patent/RU2013104050A/ru
Application granted granted Critical
Publication of RU2541196C2 publication Critical patent/RU2541196C2/ru

Links

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

1. Способ обеспечения целостности программного обеспечения в памяти для хранения программ, реализуемый посредством процессора, причем программное обеспечение содержит набор зашифрованных команд, включающих по меньшей мере код операции, а способ предусматривает использование инициализированного ключа команды и включает следующие шаги:- считывают текущую зашифрованную команду;- используют указанный ключ команды для дешифрования по меньшей мере части текущей зашифрованной команды;- обновляют ключ команды при помощи вычисления, основанного на дайджесте текущего значения ключа команды и дайджесте текущей команды так, чтобы следующую считываемую зашифрованную команду можно было дешифровать при помощи обновленного ключа команды;- исполняют текущую команду.2. Способ по п.1, отличающийся тем, что первая команда в памяти для хранения программ не зашифрована.3. Способ по п.1, отличающийся тем, что текущая команда содержит аутентификационный признак, используемый для аутентификации указанной команды перед исполнением.4. Способ по п.1, отличающийся тем, что ключ команды подвергают модификации, позволяющей осуществить дешифрование следующей зашифрованной команды при помощи указанного модифицированного ключа команды для получения исполняемой команды.5. Способ по п.4, отличающийся тем, что текущая команда содержит модифицирующее значение, используемое при указанной модификации, причем указанное модифицирующее значение извлекают из значения команды и используют на шаге обновления при определении следующего ключа команды.6. Способ по п.1, отличающийся тем, что все или любые процессы дешифрования зашифрованной коман

Claims (12)

1. Способ обеспечения целостности программного обеспечения в памяти для хранения программ, реализуемый посредством процессора, причем программное обеспечение содержит набор зашифрованных команд, включающих по меньшей мере код операции, а способ предусматривает использование инициализированного ключа команды и включает следующие шаги:
- считывают текущую зашифрованную команду;
- используют указанный ключ команды для дешифрования по меньшей мере части текущей зашифрованной команды;
- обновляют ключ команды при помощи вычисления, основанного на дайджесте текущего значения ключа команды и дайджесте текущей команды так, чтобы следующую считываемую зашифрованную команду можно было дешифровать при помощи обновленного ключа команды;
- исполняют текущую команду.
2. Способ по п.1, отличающийся тем, что первая команда в памяти для хранения программ не зашифрована.
3. Способ по п.1, отличающийся тем, что текущая команда содержит аутентификационный признак, используемый для аутентификации указанной команды перед исполнением.
4. Способ по п.1, отличающийся тем, что ключ команды подвергают модификации, позволяющей осуществить дешифрование следующей зашифрованной команды при помощи указанного модифицированного ключа команды для получения исполняемой команды.
5. Способ по п.4, отличающийся тем, что текущая команда содержит модифицирующее значение, используемое при указанной модификации, причем указанное модифицирующее значение извлекают из значения команды и используют на шаге обновления при определении следующего ключа команды.
6. Способ по п.1, отличающийся тем, что все или любые процессы дешифрования зашифрованной команды, обновления ключа команды, аутентификации текущей команды или исполнения текущей команды выполняют в модуле безопасности.
7. Способ по п.1, отличающийся тем, что указанный дайджест представляет собой результат функции, применяемой ко всей указанной текущей команде или ее части, причем указанную функцию выбирают из функций, включающих логические, арифметические, криптографические и односторонние функции.
8. Способ по п.1, отличающийся тем, что обновление ключа команды основано также на модифицирующем значении, которое используют для доведения ключа команды до известного значения.
9. Способ по п.1, отличающийся тем, что для инициализации ключа команды используют главный ключ.
10. Устройство, содержащее счетчик программы (PC) и память (РМЕМ) для хранения зашифрованной программы, причем указанная зашифрованная программа содержит набор зашифрованных команд (INST), включающих по меньшей мере код операции, а указанное устройство содержит модуль дешифрования (DECR) и блок обработки данных (SCPU) и имеет доступ к инициализированному ключу команды (KI), отличающееся тем, что содержит средство рекурсивного обновления ключа команды (KI) на основе всего указанного ключа команды или его части и дайджеста по меньшей мере одной предыдущей исполненной команды.
11. Устройство по п.10, отличающееся тем, что средство рекурсивного обновления ключа команды реализовано с помощью аппаратных средств.
12. Устройство по п.10 или 11, отличающееся тем, что обновление ключа команды основано также на модифицирующем значении, используемом для доведения ключа команды до известного значения.
RU2013104050/08A 2010-07-22 2010-07-22 Способ обеспечения целостности программного обеспечения RU2541196C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2010/060603 WO2012010205A1 (en) 2010-07-22 2010-07-22 A processor-implemented method for ensuring software integrity

Publications (2)

Publication Number Publication Date
RU2013104050A true RU2013104050A (ru) 2014-08-27
RU2541196C2 RU2541196C2 (ru) 2015-02-10

Family

ID=43297003

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013104050/08A RU2541196C2 (ru) 2010-07-22 2010-07-22 Способ обеспечения целостности программного обеспечения

Country Status (6)

Country Link
JP (1) JP5616528B2 (ru)
KR (1) KR101687439B1 (ru)
CN (1) CN102959556B (ru)
BR (1) BR112012031052B1 (ru)
RU (1) RU2541196C2 (ru)
WO (1) WO2012010205A1 (ru)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902858A (zh) * 2013-12-25 2014-07-02 武汉安天信息技术有限责任公司 一种apk应用加固的方法及系统
JP6478724B2 (ja) * 2015-03-09 2019-03-06 Kddi株式会社 情報処理装置、情報処理方法、及びコンピュータプログラム
US10552619B2 (en) * 2015-07-20 2020-02-04 Intel Corporation Technologies for secure trusted I/O access control
US10073977B2 (en) * 2015-07-20 2018-09-11 Intel Corporation Technologies for integrity, anti-replay, and authenticity assurance for I/O data
CN106789006A (zh) * 2016-11-28 2017-05-31 范睿心 一种解密方法及系统
KR101953444B1 (ko) * 2016-12-26 2019-05-17 포항공과대학교 산학협력단 하드웨어 수준 보안을 보장하는 가상화 기반 소프트웨어 보안 방법 및 이를 이용하는 장치
FR3071121B1 (fr) 2017-09-14 2020-09-18 Commissariat Energie Atomique Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur
FR3071122B1 (fr) 2017-09-14 2019-09-13 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede d'execution d'un code binaire d'une fonction securisee par un microprocesseur
RU179302U1 (ru) * 2017-11-21 2018-05-07 Александра Владимировна Харжевская Устройство динамического контроля выполнения специальных вычислений
FR3094107B1 (fr) 2019-03-21 2021-02-26 Commissariat Energie Atomique Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur
CN110515652B (zh) * 2019-08-30 2021-10-15 腾讯科技(深圳)有限公司 代码摘要的生成方法、装置和存储介质
CN111565002B (zh) * 2020-05-22 2024-07-12 北京合康新能变频技术有限公司 一种变频器的控制系统
CN111881467B (zh) * 2020-06-12 2022-10-28 海光信息技术股份有限公司 利用安全处理器保护文件的方法、装置、cpu和计算机设备
EP4002165A1 (en) * 2020-11-18 2022-05-25 Thales DIS France SA Code flow protection with error propagation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675645A (en) * 1995-04-18 1997-10-07 Ricoh Company, Ltd. Method and apparatus for securing executable programs against copying
US6061449A (en) * 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
JP2002353960A (ja) 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US6948067B2 (en) * 2002-07-24 2005-09-20 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
US7370319B2 (en) * 2003-02-11 2008-05-06 V.I. Laboratories, Inc. System and method for regulating execution of computer software
US7103779B2 (en) * 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
EP1855476A3 (en) * 2006-05-11 2010-10-27 Broadcom Corporation System and method for trusted data processing
KR100922862B1 (ko) * 2007-11-14 2009-10-20 성균관대학교산학협력단 명령어의 부호화를 통한 시스템 보안방법
CN101452514B (zh) * 2007-12-06 2011-06-29 中国长城计算机深圳股份有限公司 一种安全计算机的用户数据保护方法
JP2009211292A (ja) * 2008-03-03 2009-09-17 Oki Electric Ind Co Ltd 暗号化方法、復号化方法、暗号化装置、復号化装置
EP2196937A1 (en) * 2008-12-15 2010-06-16 Thomson Licensing Methods and devices for instruction level software encryption

Also Published As

Publication number Publication date
CN102959556B (zh) 2015-12-16
KR20130120985A (ko) 2013-11-05
WO2012010205A1 (en) 2012-01-26
RU2541196C2 (ru) 2015-02-10
BR112012031052A2 (pt) 2016-10-25
JP5616528B2 (ja) 2014-10-29
KR101687439B1 (ko) 2016-12-16
BR112012031052B1 (pt) 2020-12-01
CN102959556A (zh) 2013-03-06
JP2013535725A (ja) 2013-09-12

Similar Documents

Publication Publication Date Title
RU2013104050A (ru) Способ обеспечения целостности программного обеспечения
US20240031158A1 (en) Secure unlock systems for locked devices
Wichelmann et al. Microwalk: A framework for finding side channels in binaries
US10019601B2 (en) Method and apparatus for securely saving and restoring the state of a computing platform
Delaune et al. Formal analysis of protocols based on TPM state registers
Zhao et al. Providing root of trust for ARM TrustZone using on-chip SRAM
US9842212B2 (en) System and method for a renewable secure boot
US8904189B1 (en) System and method for validating program execution at run-time using control flow signatures
CN102509047B (zh) 校验机顶盒中程序代码的方法和系统
TW202137011A (zh) 用於記憶體位址範圍的支持可組態安全性級別的處理器、方法及電腦可讀取非暫態儲存媒體
RU2007138019A (ru) Безопасная загрузка
US20120144208A1 (en) Indexed table based code encrypting/decrypting device and method thereof
CN107273723B (zh) 一种基于so文件加壳的Android平台应用软件保护方法
JP2019517080A5 (ru)
CN114124364B (zh) 密钥安全处理方法、装置、设备及计算机可读存储介质
Cyr et al. Low-cost and secure firmware obfuscation method for protecting electronic systems from cloning
US20170046280A1 (en) Data processing device and method for protecting a data processing device against attacks
Averbuch et al. Truly-protect: An efficient VM-based software protection
Sinharoy et al. Advanced features in IBM POWER8 systems
Kumar et al. Towards designing a secure RISC-V system-on-chip: ITUS
CN114817931A (zh) 基于星型信任链的终端安全防护方法、装置、设备及介质
Wang et al. Trust beyond border: lightweight, verifiable user isolation for protecting in-enclave services
ES2855749T3 (es) Procedimiento de cifrado, procedimiento de cifrado, dispositivos y programas correspondientes
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及系统
CN106372464A (zh) 一种嵌入式系统中静态库文件的防盗版加密方法

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20180723