RU2014147953A - Способ модификации разрешений на доступ к памяти в защищенной процессорной среде - Google Patents

Способ модификации разрешений на доступ к памяти в защищенной процессорной среде Download PDF

Info

Publication number
RU2014147953A
RU2014147953A RU2014147953A RU2014147953A RU2014147953A RU 2014147953 A RU2014147953 A RU 2014147953A RU 2014147953 A RU2014147953 A RU 2014147953A RU 2014147953 A RU2014147953 A RU 2014147953A RU 2014147953 A RU2014147953 A RU 2014147953A
Authority
RU
Russia
Prior art keywords
command
enclave
page
memory access
permissions
Prior art date
Application number
RU2014147953A
Other languages
English (en)
Other versions
RU2602793C2 (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 RU2014147953A publication Critical patent/RU2014147953A/ru
Application granted granted Critical
Publication of RU2602793C2 publication Critical patent/RU2602793C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/604Tools and structures for managing or administering access control systems
    • 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
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Claims (20)

1. Процессор, содержащий:
командный модуль для приема первой команды, так что первая команда предназначена для модификации разрешений на доступ к памяти для страницы в защищенном анклаве; и
исполнительный модуль для выполнения этой первой команды, так что выполнение первой команды содержит задание новых разрешений на доступ к памяти во входной позиции карты кэша страниц анклава, и при этом указанная страница сразу же становится доступна изнутри защищенного анклава в соответствии с новыми разрешениями на доступ к памяти.
2. Процессор по п. 1, отличающийся тем, что первую команду выполняют без задания бита модификации во входной позиции кэша страниц анклава.
3. Процессор по п. 1, отличающийся тем, что первая команда предназначена для расширения по меньшей мере одного из разрешений на доступ к памяти.
4. Процессор по п. 3, отличающийся тем, что первая команда может быть выполнена изнутри защищенного анклава.
5. Процессор по п. 4, отличающийся тем, что первая команда может быть выполнена только изнутри защищенного анклава.
6. Процессор по п. 1, отличающийся тем, что первая команда предназначена для ограничения по меньшей мере одного из разрешений на доступ к памяти.
7. Процессор по п. 6, отличающийся тем, что первая команда может быть выполнена только в режиме супервизора.
8. Процессор по п. 6, отличающийся тем, что выполнение первой команды содержит также запись срока анклава во входной позиции карты кэша страниц анклава.
9. Способ, содержащий:
выдачу первой команды для модификации разрешения на доступ к памяти для страницы в защищенном анклаве; и
выполнение первой команды, так что выполнение этой первой команды содержит задание новых разрешений на доступ к памяти во входной позиции карты кэша страниц анклава, при этом указанная страница сразу же становится доступна изнутри защищенного анклава в соответствии с новыми разрешениями на доступ к памяти.
10. Способ по п. 9, отличающийся тем, что выполнение первой команды содержит
выполнение этой первой команды без задания бита модификации во входной позиции кэша страниц анклава.
11. Способ по п. 9, отличающийся тем, что первую команду выполняют для расширения по меньшей мере одного разрешения на доступ к памяти.
12. Способ по п. 9, дополнительно содержащий:
обращение и получение доступа посредством приложения изнутри защищенного анклава к странице согласно новому разрешению на доступ к памяти, и
обновление, посредством операционной системы извне защищенного анклава, таблиц страниц, чтобы отразить новые разрешения на доступ к памяти.
13. Способ по п. 9, дополнительно содержащий:
попытку, со стороны приложения изнутри защищенного анклава, получить доступ к рассматриваемой странице после выполнения первой команды;
определение, посредством процессора, что отображение для рассматриваемой страницы существует в буфере динамической трансляции; и
инициирование, посредством процессора, сбоя страницы и асинхронного выхода из защищенного анклава.
14. Способ по п. 13, дополнительно содержащий:
обработку, посредством операционной системы извне защищенного анклава, сбоя страницы; и
перезапуск, посредством операционной системы, приложения в защищенном анклаве.
15. Способ по п. 9, дополнительно содержащий вызов, посредством приложения изнутри защищенного анклава, операционной системы вне защищенного анклава с целью вызова первой команды для ограничения по меньшей мере одного разрешения на доступ к памяти.
16. Способ по п. 15, отличающийся тем, что выполнение первой команды также содержит запись срока анклава во входной позиции карты кэша страниц анклава.
17. Способ по п. 16, дополнительно содержащий отслеживание, посредством операционной системы, потоков в анклаве, для которых входные позиции буфера динамической трансляции стали недействительными из-за новый разрешений на доступ к памяти.
18. Способ по п. 17, дополнительно содержащий передачу, посредством операционной системы, команд межпроцессорного прерывания для запуска выходов потоков из анклава и очистки буфера динамической трансляции.
19. Способ по п. 9, дополнительно содержащий удостоверение, посредством приложения изнутри защищенного анклава, что новые разрешения на доступ к памяти были заданы.
20. Система, содержащая:
память; и
и процессор, имеющий
командный модуль для приема первой команды, так что первая команда предназначена для модификации разрешений на доступ к памяти для страницы, загруженной из памяти в защищенный анклав; и
исполнительный модуль для выполнения этой первой команды, так что выполнение первой команды содержит задание новых разрешений на доступ к памяти во входной позиции карты кэша страниц анклава, и при этом указанная страница сразу же становится доступна изнутри защищенного анклава в соответствии с новыми разрешениями на доступ к памяти.
RU2014147953/08A 2013-12-27 2014-11-27 Способ модификации разрешений на доступ к памяти в защищенной процессорной среде RU2602793C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/141,941 US9355262B2 (en) 2013-12-27 2013-12-27 Modifying memory permissions in a secure processing environment
US14/141,941 2013-12-27

Publications (2)

Publication Number Publication Date
RU2014147953A true RU2014147953A (ru) 2016-06-20
RU2602793C2 RU2602793C2 (ru) 2016-11-20

Family

ID=51951664

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014147953/08A RU2602793C2 (ru) 2013-12-27 2014-11-27 Способ модификации разрешений на доступ к памяти в защищенной процессорной среде

Country Status (4)

Country Link
US (1) US9355262B2 (ru)
EP (1) EP2889777B1 (ru)
CN (1) CN104881596B (ru)
RU (1) RU2602793C2 (ru)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9705892B2 (en) * 2014-06-27 2017-07-11 Intel Corporation Trusted time service for offline mode
CN106161384A (zh) * 2015-04-15 2016-11-23 伊姆西公司 用于在移动设备中提供对数据的安全访问的方法和系统
US9875189B2 (en) 2015-06-12 2018-01-23 Intel Corporation Supporting secure memory intent
US9710401B2 (en) 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US9678687B2 (en) * 2015-09-25 2017-06-13 Mcafee, Inc. User mode heap swapping
US10664179B2 (en) 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
CN107203715B (zh) * 2016-03-18 2021-03-19 斑马智行网络(香港)有限公司 执行系统调用的方法及装置
US10511598B2 (en) * 2016-03-29 2019-12-17 Intel Corporation Technologies for dynamic loading of integrity protected modules into secure enclaves
US9977743B2 (en) * 2016-08-31 2018-05-22 Intel Corporation Managing enclave memory pages
US10824572B2 (en) * 2016-09-09 2020-11-03 Cylance Inc. Memory space protection
US10324862B2 (en) * 2016-09-30 2019-06-18 Intel Corporation Supporting oversubscription of guest enclave memory pages
US10884952B2 (en) 2016-09-30 2021-01-05 Intel Corporation Enforcing memory operand types using protection keys
US10120805B2 (en) * 2017-01-18 2018-11-06 Intel Corporation Managing memory for secure enclaves
US10931652B2 (en) * 2017-01-24 2021-02-23 Microsoft Technology Licensing, Llc Data sealing with a sealing enclave
US11443033B2 (en) * 2017-01-24 2022-09-13 Microsoft Technology Licensing, Llc Abstract enclave identity
US10530777B2 (en) * 2017-01-24 2020-01-07 Microsoft Technology Licensing, Llc Data unsealing with a sealing enclave
CN107392011B (zh) * 2017-08-22 2019-11-22 海光信息技术有限公司 一种内存页转移方法
US10867092B2 (en) * 2017-12-16 2020-12-15 Intel Corporation Avoiding asynchronous enclave exits based on requests to invalidate translation lookaside buffer entries
US10795679B2 (en) * 2018-06-07 2020-10-06 Red Hat, Inc. Memory access instructions that include permission values for additional protection
US11500969B2 (en) 2020-01-03 2022-11-15 Microsoft Technology Licensing, Llc Protecting commercial off-the-shelf program binaries from piracy using hardware enclaves
CN113139175A (zh) * 2020-01-19 2021-07-20 阿里巴巴集团控股有限公司 处理单元、电子设备以及安全控制方法
JP7330157B2 (ja) * 2020-09-18 2023-08-21 株式会社東芝 情報処理装置および更新処理方法
US20220114265A1 (en) * 2020-10-08 2022-04-14 Google Llc Unified viewing of roles and permissions in a computer data processing system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009532954A (ja) * 2006-03-31 2009-09-10 クゥアルコム・インコーポレイテッド 高速メディアアクセス制御に関するメモリ管理
US7484073B2 (en) * 2006-07-12 2009-01-27 Microsoft Corporation Tagged translation lookaside buffers in a hypervisor computing environment
JP4939387B2 (ja) 2007-12-06 2012-05-23 ルネサスエレクトロニクス株式会社 データ処理装置及びアドレス空間保護方法
JP2012508938A (ja) 2008-11-14 2012-04-12 インテル・コーポレーション セキュアなアプリケーション実行方法および装置
US8352741B2 (en) * 2009-06-11 2013-01-08 Microsoft Corporation Discovery of secure network enclaves
JP2011198091A (ja) * 2010-03-19 2011-10-06 Toshiba Corp 仮想アドレスキャッシュメモリ、プロセッサ及びマルチプロセッサシステム
US20120110348A1 (en) * 2010-11-01 2012-05-03 International Business Machines Corporation Secure Page Tables in Multiprocessor Environments
US9405700B2 (en) * 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US8972746B2 (en) 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
US8832452B2 (en) 2010-12-22 2014-09-09 Intel Corporation System and method for implementing a trusted dynamic launch and trusted platform module (TPM) using secure enclaves

Also Published As

Publication number Publication date
RU2602793C2 (ru) 2016-11-20
EP2889777B1 (en) 2018-12-26
EP2889777A2 (en) 2015-07-01
US20150186659A1 (en) 2015-07-02
CN104881596B (zh) 2019-06-04
US9355262B2 (en) 2016-05-31
EP2889777A3 (en) 2015-08-12
CN104881596A (zh) 2015-09-02
EP2889777A8 (en) 2016-02-24

Similar Documents

Publication Publication Date Title
RU2014147953A (ru) Способ модификации разрешений на доступ к памяти в защищенной процессорной среде
CN109840410B (zh) 一种进程内数据隔离与保护的方法和系统
US9465750B2 (en) Memory protection circuit, method and processing unit utilizing memory access information register to selectively allow access to memory areas by virtual machines
KR102612155B1 (ko) 어드레스 변환 요구의 처리
US9436619B2 (en) Multi-level, hardware-enforced domain separation using a separation kernel on a multicore processor with a shared cache
RU2012106465A (ru) Система и способ проверки исполняемого кода перед его выполнением
US9715410B2 (en) Protected virtual machine function access
RU2018109505A (ru) Предоставление устройств в качестве сервиса
US10416890B2 (en) Application execution enclave memory page cache management method and apparatus
TWI457830B (zh) 虛擬機器代碼注入技術
BR112019005604A2 (pt) chip de processador e dispositivo terminal
US20150212839A1 (en) Tracking transformed memory pages in virtual machine chain migration
US9652348B2 (en) Debugging in a data processing apparatus
RU2015107219A (ru) Способы, системы и машиночитаемый носитель для активного контроля, защиты памяти и проверки целостности целевых устройств
JP2014521184A5 (ru)
BR112015017103A2 (pt) métodos e aparelhos para cancelar dadas solicitações de pré-busca de dados para um loop
WO2015166211A3 (en) Access control and code scheduling
US20170249230A1 (en) Breakpoint insertion into kernel pages
BR112018067341A2 (pt) alocação de gravação para cache baseada em permissões de execução
JP2014526728A5 (ru)
BR112021023258A2 (pt) Execução de chamadas do sistema no espaço de endereço isolado no kernel do sistema operacional
WO2016118031A3 (en) Computer security systems and methods using hardware-accelerated access to guest memory from below the operating system
KR102021008B1 (ko) Arm 시스템 소프트웨어 대한 인트라 레벨 권한 분리 시스템 및 방법
US20220014356A1 (en) Seamless access to trusted domain protected memory by virtual machine manager using transformer key identifier
KR102421315B1 (ko) 문맥 감지 배리어 명령어 실행

Legal Events

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

Effective date: 20181128