JP7377211B2 - 投機的サイド・チャネル・ヒント命令 - Google Patents
投機的サイド・チャネル・ヒント命令 Download PDFInfo
- Publication number
- JP7377211B2 JP7377211B2 JP2020551994A JP2020551994A JP7377211B2 JP 7377211 B2 JP7377211 B2 JP 7377211B2 JP 2020551994 A JP2020551994 A JP 2020551994A JP 2020551994 A JP2020551994 A JP 2020551994A JP 7377211 B2 JP7377211 B2 JP 7377211B2
- Authority
- JP
- Japan
- Prior art keywords
- side channel
- speculative
- instructions
- instruction
- read
- 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
Links
- 108091006146 Channels Proteins 0.000 claims description 112
- 238000012545 processing Methods 0.000 claims description 77
- 230000000116 mitigating effect Effects 0.000 claims description 57
- 238000000034 method Methods 0.000 claims description 22
- 230000004913 activation Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 12
- 230000004888 barrier function Effects 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 9
- 230000009471 action Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000011010 flushing procedure Methods 0.000 claims description 2
- 238000003672 processing method Methods 0.000 claims 1
- 238000013459 approach Methods 0.000 description 10
- 230000006399 behavior Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 101100108191 Vibrio parahaemolyticus serotype O3:K6 (strain RIMD 2210633) add gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013519 translation 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
Claims (18)
- 命令に応答してデータ処理を実行する処理回路であって、メモリ・システムからデータを読み込むための読込み動作の投機的処理をサポートする、処理回路と、
少なくとも1つの後続の読込み動作が投機的に処理された場合に情報漏洩のリスクがあるかどうかを示す投機的サイド・チャネル・ヒント命令を、前記処理回路によって処理されることになる一連の命令が含むかどうかを識別し、前記投機的サイド・チャネル・ヒント命令を前記命令が含むかどうかに応じて、投機的サイド・チャネル軽減措置をトリガするべきかどうかを決定する制御回路と
を備え、
前記制御回路は、前記投機的サイド・チャネル・ヒント命令が、所与の読込み動作よりも前記一連の命令に含まれず、かつ、前記所与の読込み動作と関連付けられていない場合に、前記所与の読込み動作に対して前記投機的サイド・チャネル軽減措置をトリガするように構成される、装置。 - 前記投機的サイド・チャネル・ヒント命令が、前記少なくとも1つの後続の読込み動作が、前記投機的サイド・チャネル軽減措置なしで投機的に実行しても安全であることを示す、請求項1に記載の装置。
- 前記投機的サイド・チャネル・ヒント命令が、単一の後続の命令に関連付けられ、前記単一の後続の命令によってトリガされた少なくとも1つの読込み動作が投機的に処理された場合に情報漏洩のリスクがあるかどうかを示す、請求項1から2までのいずれか一項に記載の装置。
- 前記投機的サイド・チャネル・ヒント命令が、後続の命令のブロックに関連付けられ、前記後続の命令のブロックのいずれかによってトリガされた少なくとも1つの読込み動作が投機的に処理された場合に情報漏洩のリスクがあるかどうかを示す、請求項1から3までのいずれか一項に記載の装置。
- 前記後続の命令のブロックに対応する動作の処理の途中でヒント・キャンセル・イベントが発生することに応答して、前記制御回路が、前記後続の命令のブロックの前に前記投機的サイド・チャネル・ヒント命令がないかのように、前記ブロックの残りの命令に対して前記投機的サイド・チャネル軽減措置を実行するべきかどうかを決定するように構成される、請求項4に記載の装置。
- 前記ヒント・キャンセル・イベントが、
例外又は割込みと、
分岐と、
デバッグ状態に入ることと、
診断アクションをトリガするためのブレーク・ポイントと
のうちの少なくとも1つを含む、請求項5に記載の装置。 - 前記処理回路が、前記投機的サイド・チャネル・ヒント命令を構造的無演算命令として解釈するように構成される、請求項1から6までのいずれか一項に記載の装置。
- 前記制御回路が、前記投機的サイド・チャネル・ヒント命令が前記一連の命令の中にあるかどうかに基づいて、キャッシュされた命令又はマイクロ動作に注釈を付けるように構成される、請求項1から7までのいずれか一項に記載の装置。
- 前記投機的サイド・チャネル軽減措置が、読込みマイクロ動作の投機的実行を無効にすることを含む、請求項1から8までのいずれか一項に記載の装置。
- 前記投機的サイド・チャネル軽減措置が、最も新しい解決済みの非投機的マイクロ動作を越えて投機的に実行されることが可能なマイクロ動作の最大数を減らすことを含む、請求項1から9までのいずれか一項に記載の装置。
- 前記投機的サイド・チャネル軽減措置が、投機的バリア・マイクロ動作より先に発生するいずれかのマイクロ動作が解決されるまで、前記投機的バリア・マイクロ動作後のマイクロ動作の投機的処理を無効にするように前記処理回路を制御するための前記投機的バリア・マイクロ動作を、前記処理回路によって処理されることになる一連のマイクロ動作に挿入することを含む、請求項1から10までのいずれか一項に記載の装置。
- 前記投機的サイド・チャネル軽減措置が、前記処理回路によってマイクロ動作の処理を低速化すること又は停止することを含む、請求項1から11までのいずれか一項に記載の装置。
- 前記投機的サイド・チャネル軽減措置が、読込みマイクロ動作に応答して読み込まれたデータをキャッシュするためのデータ・キャッシュの少なくとも一部をフラッシュすること又は無効化することを含む、請求項1から12までのいずれか一項に記載の装置。
- メモリ・システムからデータを読み込むための読込み動作の投機的処理をサポートする処理回路を使用して、命令に応答してデータ処理を実行するステップと、
少なくとも1つの後続の読込み動作が投機的に処理された場合に情報漏洩のリスクがあるかどうかを示す投機的サイド・チャネル・ヒント命令を、前記処理回路によって処理されることになる一連の命令が含むかどうかを識別するステップと、
前記投機的サイド・チャネル・ヒント命令を前記命令が含むかどうかに応じて、投機的サイド・チャネル軽減措置をトリガするべきかどうかを決定するステップと、
前記投機的サイド・チャネル・ヒント命令が、所与の読込み動作よりも前記一連の命令に含まれず、かつ、前記所与の読込み動作と関連付けられていない場合に、前記所与の読込み動作に対して前記投機的サイド・チャネル軽減措置をトリガするステップと、
を含む、データ処理方法。 - 処理回路によって処理するための一連のプログラム命令を生成するためのコンピュータ実行方法であって、
前記処理回路によって読込み動作が投機的に処理された場合に情報漏洩のリスクがある、メモリ・システムからデータを読み込むための前記読込み動作を含む動作の投機的サイド・チャネル活性化パターンを、入力プログラム・コードによって表された前記動作が含むかどうかを識別するために、前記入力プログラム・コードを分析するステップと、
前記入力プログラム・コードに基づいて、前記一連のプログラム命令を生成するステップと、
少なくとも1つの後続の読込み動作が投機的に処理された場合に情報漏洩のリスクがあるかどうかを示す少なくとも1つの投機的サイド・チャネル・ヒント命令を、前記生成した一連のプログラム命令に挿入するべきかどうかについて、動作の前記投機的サイド・チャネル活性化パターンを前記入力プログラム・コードが含むかどうかに応じて選択するステップと、
前記少なくとも1つの後続の読込み動作が、投機的サイド・チャネル緩和手段なしで投機的に実行しても安全であると判断された場合に、前記生成された前記一連のプログラム命令に、前記少なくとも1つの投機的サイド・チャネル・ヒント命令を挿入するステップと、を含む、コンピュータ実行方法。 - 前記動作の投機的サイド・チャネル活性化パターンが、コンシューマ読込み動作のターゲット・アドレスが、プロデューサ読込み動作に応答して前記メモリ・システムから読み込まれたデータ値に依存する前記プロデューサ読込み動作及び前記コンシューマ読込み動作を含む一連の動作を含む、請求項15に記載の方法。
- 請求項15及び16のいずれか一項に記載の方法を実行するようにデータ処理装置を制御するためのコンピュータ・プログラム。
- 請求項17に記載のコンピュータ・プログラムを記憶するストレージ媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1805488.2A GB2572579B (en) | 2018-04-04 | 2018-04-04 | Speculative side-channel hint instruction |
GB1805488.2 | 2018-04-04 | ||
PCT/GB2019/050676 WO2019193308A1 (en) | 2018-04-04 | 2019-03-12 | Speculative side-channel hint instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021519458A JP2021519458A (ja) | 2021-08-10 |
JP7377211B2 true JP7377211B2 (ja) | 2023-11-09 |
Family
ID=62142116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020551994A Active JP7377211B2 (ja) | 2018-04-04 | 2019-03-12 | 投機的サイド・チャネル・ヒント命令 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11526615B2 (ja) |
JP (1) | JP7377211B2 (ja) |
KR (1) | KR20200136948A (ja) |
CN (1) | CN111919197A (ja) |
GB (1) | GB2572579B (ja) |
WO (1) | WO2019193308A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7064134B2 (ja) * | 2018-05-11 | 2022-05-10 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US20210081575A1 (en) * | 2019-09-12 | 2021-03-18 | Microsoft Technology Licensing, Llc | Hybrid mitigation of speculation based attacks based on program behavior |
US20210096872A1 (en) * | 2019-09-27 | 2021-04-01 | Intel Corporation | Hardware for eliding security checks when deemed safe during speculative execution |
CN111274584B (zh) * | 2020-01-17 | 2022-07-15 | 中国科学院计算技术研究所 | 一种基于缓存回滚以防御处理器瞬态攻击的装置 |
US20220091851A1 (en) * | 2020-09-23 | 2022-03-24 | Intel Corporation | System, Apparatus And Methods For Register Hardening Via A Micro-Operation |
US20220207138A1 (en) * | 2020-12-26 | 2022-06-30 | Intel Corporation | Hardening store hardware against speculation vulnerabilities |
US20220207146A1 (en) * | 2020-12-26 | 2022-06-30 | Intel Corporation | Hardening load hardware against speculation vulnerabilities |
US20220206818A1 (en) * | 2020-12-26 | 2022-06-30 | Intel Corporation | Hardening execution hardware against speculation vulnerabilities |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008107913A (ja) | 2006-10-23 | 2008-05-08 | Toshiba Corp | プログラム、ソフトウェア変換装置及びコンピュータ |
US20090089564A1 (en) | 2006-12-06 | 2009-04-02 | Brickell Ernie F | Protecting a Branch Instruction from Side Channel Vulnerabilities |
JP2012023618A (ja) | 2010-07-15 | 2012-02-02 | Laurel Bank Mach Co Ltd | 暗号装置及び暗号プログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5463745A (en) * | 1993-12-22 | 1995-10-31 | Intel Corporation | Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system |
US6983374B2 (en) * | 2000-02-14 | 2006-01-03 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
US8869294B2 (en) * | 2006-12-05 | 2014-10-21 | Intel Corporation | Mitigating branch prediction and other timing based side channel attacks |
EP2367102B1 (en) * | 2010-02-11 | 2013-04-10 | Nxp B.V. | Computer processor and method with increased security properties |
WO2013115820A1 (en) | 2012-02-02 | 2013-08-08 | Intel Corporation | A method, apparatus, and system for transactional speculation control instructions |
US9536086B2 (en) * | 2012-02-22 | 2017-01-03 | Infineon Technologies Austria Ag | Circuit arrangement, a method for forming a circuit arrangement, and method for integrity checking |
US9436603B1 (en) * | 2014-02-27 | 2016-09-06 | Amazon Technologies, Inc. | Detection and mitigation of timing side-channel attacks |
US10083303B2 (en) * | 2014-10-03 | 2018-09-25 | New York University | System, method and computer-accessible medium for security verification of third party intellectual property cores |
CN105632543B (zh) * | 2014-11-21 | 2018-03-30 | 松下知识产权经营株式会社 | 具有防篡改性的非易失性存储装置及集成电路卡 |
US10185731B2 (en) * | 2016-03-31 | 2019-01-22 | Arm Limited | Indexing entries of a storage structure shared between multiple threads |
JP6794297B2 (ja) * | 2016-05-25 | 2020-12-02 | ヌヴォトンテクノロジージャパン株式会社 | 認証装置および認証方法 |
CN107437431B (zh) * | 2016-05-26 | 2022-08-30 | 新唐科技日本株式会社 | 非易失性存储装置 |
JP6831293B2 (ja) * | 2016-05-26 | 2021-02-17 | ヌヴォトンテクノロジージャパン株式会社 | 画像偽造防止装置 |
GB2554096B (en) | 2016-09-20 | 2019-03-20 | Advanced Risc Mach Ltd | Handling of inter-element address hazards for vector instructions |
US10706147B1 (en) * | 2017-05-19 | 2020-07-07 | Amazon Technologies, Inc. | Mitigating side-channel attacks via shared cache |
-
2018
- 2018-04-04 GB GB1805488.2A patent/GB2572579B/en active Active
-
2019
- 2019-03-12 WO PCT/GB2019/050676 patent/WO2019193308A1/en active Application Filing
- 2019-03-12 KR KR1020207030207A patent/KR20200136948A/ko not_active Application Discontinuation
- 2019-03-12 US US16/976,166 patent/US11526615B2/en active Active
- 2019-03-12 JP JP2020551994A patent/JP7377211B2/ja active Active
- 2019-03-12 CN CN201980022496.3A patent/CN111919197A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008107913A (ja) | 2006-10-23 | 2008-05-08 | Toshiba Corp | プログラム、ソフトウェア変換装置及びコンピュータ |
US20090089564A1 (en) | 2006-12-06 | 2009-04-02 | Brickell Ernie F | Protecting a Branch Instruction from Side Channel Vulnerabilities |
JP2012023618A (ja) | 2010-07-15 | 2012-02-02 | Laurel Bank Mach Co Ltd | 暗号装置及び暗号プログラム |
Non-Patent Citations (1)
Title |
---|
すずき ひろのぶ,セキュリティ実践の基本定石[第五二回]記録的規模で影響を与えたMeltdownとSpectre,SoftwareDesign,日本,株式会社技術評論社,2018年04月18日,通算396号,pp.132-135 |
Also Published As
Publication number | Publication date |
---|---|
CN111919197A (zh) | 2020-11-10 |
JP2021519458A (ja) | 2021-08-10 |
GB2572579B (en) | 2020-09-16 |
US20200410110A1 (en) | 2020-12-31 |
WO2019193308A1 (en) | 2019-10-10 |
GB2572579A (en) | 2019-10-09 |
US11526615B2 (en) | 2022-12-13 |
KR20200136948A (ko) | 2020-12-08 |
GB201805488D0 (en) | 2018-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7377211B2 (ja) | 投機的サイド・チャネル・ヒント命令 | |
JP7406489B2 (ja) | 推測バリア命令 | |
US11809316B2 (en) | Speculation-restricted memory region type | |
US10394716B1 (en) | Apparatus and method for controlling allocation of data into a cache storage | |
US11461243B2 (en) | Speculative cache storage region | |
US20200410088A1 (en) | Micro-instruction cache annotations to indicate speculative side-channel risk condition for read instructions | |
US20040123081A1 (en) | Mechanism to increase performance of control speculation | |
US11307856B2 (en) | Branch target variant of branch-with-link instruction | |
KR20200139709A (ko) | 명령들의 명령 캐시 스토리지에의 할당을 제어하는 장치 및 방법 | |
JP2019200523A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
Aimoniotis et al. | “It’sa Trap!”—How Speculation Invariance Can Be Abused with Forward Speculative Interference | |
CN111433740B (zh) | 推测屏障指令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230320 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230428 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230727 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20231003 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231027 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7377211 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |