JP6185487B2 - ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持 - Google Patents
ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持 Download PDFInfo
- Publication number
- JP6185487B2 JP6185487B2 JP2014556133A JP2014556133A JP6185487B2 JP 6185487 B2 JP6185487 B2 JP 6185487B2 JP 2014556133 A JP2014556133 A JP 2014556133A JP 2014556133 A JP2014556133 A JP 2014556133A JP 6185487 B2 JP6185487 B2 JP 6185487B2
- Authority
- JP
- Japan
- Prior art keywords
- secure
- stack
- data processing
- data
- area
- 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
- 238000012545 processing Methods 0.000 claims description 245
- 230000004044 response Effects 0.000 claims description 59
- 230000007704 transition Effects 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 19
- 238000013500 data storage Methods 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 134
- 238000004590 computer program Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 102000044437 S1 domains Human genes 0.000 description 2
- 108700036684 S1 domains Proteins 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 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/52—Monitoring 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
-
- 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2105—Dual mode as a secondary aspect
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- 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/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
Description
該データストアは、該複数のセキュアな領域のそれぞれの中に少なくとも1つのスタックを備え、
該スタック選択フラグを格納するための該格納位置は、複数のビットを備え、該データ処理回路は、該スタック選択フラグに従って、関数引数および戻り値についてどのスタックにアクセスするかを判定するように構成される。
プログラムコードに応えてデータ処理動作を実施するためのデータ処理回路と、
複数のレジスタと、
データを格納するためのデータストアであって、各領域がセキュアレベルを有する複数の領域を備え、該セキュアなドメイン内で動作している該データ処理回路がアクセス可能であり、それ程セキュアではないドメイン内で動作している該データ処理回路がアクセス不可能である機密データを格納するための少なくとも1つのセキュアな領域と、それ程セキュアではないデータを格納するためのそれ程セキュアではない領域とを備える、データストアと、
を備え、
該データストアは、該セキュアな領域内に1つのセキュアなスタック、および該それ程セキュアではない領域内にそれ程セキュアではないスタックの少なくとも2つのスタックを備え、
該データ処理回路は、例外処置回路を備え、該例外処置回路は、該データ処理回路が該セキュアなドメイン内で実行しており、該割り込みが、それ程セキュアではないドメイン内でのプログラムコードの実行への切り替えを指示する際に、例外の受信に応答して、該レジスタのセットを消去するように構成され、該レジスタの該セット内の該レジスタは、該実行ドメインのセキュアレベルおよび該例外が取り込まれる該ドメインに依存する、
データ処理装置を提供する。本発明は、複数のセキュアな状態を有する処理装置では、例外の取り込みが、処理回路を異なるセキュアレベル間で遷移させる場合があることを認識する。
R0〜R3が戻り値を保持するために使用されない場合、R0〜R3を消去すること、を使用することができる。
非セキュアなドメインへの呼び出しの場合、以下のステップ、
R0〜R3が関数引数を保持するために使用されない場合、R0〜R3を消去すること、が実施されるべきである。
R4〜R12は、呼び出し側が保存したレジスタとして扱われ、関数呼び出しの前に消去されるべきである。
Claims (36)
- データ処理装置であって、
プログラムコードに応えてデータ処理動作を実施するためのデータ処理回路と、
複数のレジスタと、
データを格納するためのデータストアであって、各領域がセキュアレベルを有する、複数の領域を備え、セキュアなドメイン内で動作している前記データ処理回路がアクセス可能であり、よりセキュアでないドメイン内で動作している前記データ処理回路がアクセス不可能である機密データを格納するための少なくとも1つのセキュアな領域と、よりセキュアでないデータを格納するためのよりセキュアでない領域とを備える、データストアと、を備え、
前記データストアは、前記セキュアな領域内に1つのセキュアなスタック、および前記よりセキュアでない領域内に1つのよりセキュアでないスタックの少なくとも2つのスタックを備え、前記データ処理回路は、前記セキュアな領域内に格納されているプログラムコードを処理する際に、前記セキュアなドメイン内で動作し、前記よりセキュアでない領域内に格納されているプログラムコードを処理する際に、前記よりセキュアでないドメイン内で動作し、
前記データ処理回路は、実行される前記プログラムコードの前記格納位置に応えて、どのスタックにデータを格納するか、またはどのスタックからデータをロードするかを判定するように構成され、
第1の領域内に格納されているプログラムコードに応えて、実行される関数を呼び出し、前記関数コードは、第2の領域内に格納されており、前記第2の領域は、前記第1の領域とは異なるセキュアレベルを有し、前記データ処理回路は、前記第1の領域および前記第2の領域のうちのどちらがより低いセキュアレベルを有するかを判定し、前記プログラムコードおよび前記関数コードを実行する際、関数引数および戻りデータ値について、前記より低いセキュアレベルを伴う前記領域の前記スタックにアクセスするように構成される、データ処理装置。 - 前記データ処理装置は、
スタック選択フラグを格納するための格納位置と、
フラグ設定回路と、をさらに備え、
前記データストアは、よりセキュアな領域およびよりセキュアでない領域の2つの領域を備え、
前記フラグ設定回路は、よりセキュアな関数を呼び出すよりセキュアでないプログラムコードに応えて、前記スタック選択フラグを設定し、任意の関数を呼び出すセキュアなプログラムコードに応えて、およびよりセキュアでない関数を呼び出すよりセキュアでないプログラムコードに応えて、前記スタック選択フラグを解除するように構成される、請求項1に記載のデータ処理装置。 - 前記データ処理装置は、
スタック選択フラグを格納するための格納位置と、
フラグ設定回路と、をさらに備え、
前記フラグ設定回路は、前記スタック選択フラグを、前記データ処理回路が異なるセキュアレベルを有する領域間で遷移するのを検出するのに応えて、より低セキュアな領域を指示するよう設定し、前記データ処理回路が同一のセキュアレベルの関数呼び出しを実行するのを検出するのに応えて、現在のセキュアな領域を指示するよう設定するように構成される、請求項1に記載のデータ処理装置。 - 前記データ処理回路は、前記プログラムコード内のスタック選択フラグ設定命令に応えて、前記スタック選択フラグを、よりセキュアでない領域を指示する値に設定するように構成され、よりセキュアでない関数を呼び出す前記プログラムコードは、前記関数引数を格納する前に、前記プログラムコード内に前記スタック選択フラグ設定命令を備える、請求項3に記載のデータ処理装置。
- 前記プログラムコードに応答する前記データ処理回路は、前記関数引数および前記戻り値について、前記スタック選択フラグによって指示される前記スタックがアクセスされるように、前記スタック選択フラグに従って、前記関数引数および前記戻り値についてアクセスする前記スタックを判定する関数を呼び出す前記プログラムコードに応答する、請求項3または4のいずれか一項に記載のデータ処理装置。
- 前記データ処理回路は、少なくとも1つのレジスタに、スタック上の少なくとも1つの位置の値がロードされることを指示する、前記プログラムコード内のレジスタスタックロード命令に応えて、前記スタック選択フラグおよび現在の処理ドメインの前記セキュアレベルに従って、どのスタックにアクセスするかを判定するように構成される、請求項2に記載のデータ処理装置。
- 前記データ処理回路は、少なくとも1つのレジスタに、スタック上の少なくとも1つの位置の値がロードされることを指示する、前記プログラムコード内のレジスタスタックロード命令に応えて、前記スタック選択フラグに従って、どのスタックにアクセスするかを判定するように構成される、請求項3ないし5のいずれか一項に記載のデータ処理装置。
- 前記データ処理回路は、少なくとも1つのレジスタ内に格納されている少なくとも1つの値が、スタック上の少なくとも1つの位置に格納されることを指示する、前記プログラムコード内のレジスタスタック格納命令に応えて、前記スタック選択フラグから、前記スタックが前記セキュアなスタックまたは前記よりセキュアでないスタックを備えるかを判定するように構成される、請求項3ないし5、または7のいずれか一項に記載されるデータ処理装置。
- 前記データ処理回路は、少なくとも1つのレジスタ内に格納されている少なくとも1つの値が、スタック上の少なくとも1つの位置に格納されることを指示する、前記プログラムコード内のレジスタスタック格納命令に応えて、前記スタック選択フラグおよび現在の処理ドメインの前記セキュアレベルに従って、前記スタックが前記セキュアなスタックまたは前記よりセキュアでないスタックを備えるかを判定するように構成される、請求項2または6のいずれか一項に記載のデータ処理装置。
- 前記データ処理回路は、前記関数コードが前記よりセキュアでない領域内にあり、前記プログラムコードが前記セキュアな領域内にあるのに応えて、戻りアドレスを前記セキュアなスタックにロードし、前記関数からの前記戻りアドレスが前記セキュアなスタック上にロードされていることを指示する値をリンクレジスタにロードする、ように構成される、請求項1ないし9のいずれか一項に記載のデータ処理装置。
- 前記データ処理回路は、前記プログラムコード内のスタック選択フラグ設定命令であって、実行可能なコードの標的アドレスを格納するためのレジスタを指定する、スタックフラグ設定命令に応えて、前記標的アドレスが、現在の動作領域と比較してよりセキュアでない領域内であるか否かを判定し、前記標的アドレスが、現在の動作領域と比較してよりセキュアでない領域内である場合に、前記よりセキュアでない領域を指示するよう前記スタック選択フラグを設定するように構成される、請求項3ないし5、7、8、または、請求項3に従属する場合の10、のいずれか一項に記載のデータ処理装置。
- 前記データ処理回路は、前記プログラムコード内のさらなるフラグ設定命令であって、実行可能なコードの標的アドレスを格納するレジスタを指定する、さらなるフラグ設定命令に応えて、前記標的アドレスが前記セキュアな領域内であるか、または前記よりセキュアでない領域内であるかを判定し、前記標的アドレスが前記よりセキュアでない領域内である場合に、前記よりセキュアでない領域を指示するように前記スタック設定フラグを設定し、さらなるフラグを設定するように構成される、請求項3ないし5、7、8、11、または、請求項3に従属する場合の10、のいずれか一項に記載のデータ処理装置。
- 前記データ処理回路は、前記プログラムコード内の複数レジスタ消去命令に応えて、前記複数レジスタ消去命令によって指定される複数のレジスタ内に格納されている値を消去するように構成される、請求項1ないし12のいずれか一項に記載のデータ処理装置。
- 前記データ処理装置は、現在実行しているコードが、セキュアな状態を格納するために、前記複数のレジスタのうちのどれを使用できるかを指示する値を格納するためのセキュアコンフィギュレーション格納位置を備え、前記データ処理回路は、よりセキュアな状態からよりセキュアでない状態に遷移する際に、前記セキュアコンフィギュレーション値によって指示される前記複数のレジスタを消去するように構成される、請求項1ないし13のいずれか一項に記載のデータ処理装置。
- 前記データ処理回路は、例外処置回路を備え、前記例外処置回路は、例外の受信に応答して、前記レジスタのセット内に格納されている状態を消去するように構成され、前記レジスタの前記セット内の前記レジスタは、前記実行ドメインおよび前記例外が取り込まれる前記ドメインのセキュアレベルに依存する、請求項1ないし14のいずれか一項に記載のデータ処理装置。
- 前記例外処置回路は、前記割り込みが前記セキュアなドメイン内で実行されており、前記さらなる割り込みの優先度が、同等以下であり、前記よりセキュアでないドメインへの切り替えを指示しており、その上、前記データ処理回路が、前記割り込みの完了後に前記さらなる割り込みを取り込むように構成されており、
割り込まれた前記元のコードが前記セキュアなドメイン内に存在し、前記セットおよび前記さらなるレジスタが、前記セキュアなスタックに格納されて消去されるように、さらなるレジスタ内に格納されている前記状態を保存するように構成されている場合、ならびに、割り込まれた前記元のコードが前記よりセキュアでないドメイン内に存在する場合に、レジスタの前記セットを消去するように構成されている場合、
を除き、前記割り込みが完了する前に、さらなる割り込みの受信に応答して、さらなるスタック格納動作を実施しないように構成され、
前記割り込みは、前記セキュアなドメイン内で実行され、前記さらなる割り込みは、前記よりセキュアでないドメイン内での実行への切り替えを指示し、優先度が前記割り込みと同等以上であり、前記さらなる割り込みは、前記割り込みの完了の前に取り込まれ、前記セットおよび前記さらなるレジスタ内に格納されている状態は、前記セキュアなスタックに保存され、前記セットおよびさらなるレジスタは、消去される、請求項15に記載のデータ処理装置。 - 前記データ処理装置は、コードの現在実行している部分が、セキュアな状態を格納するために、前記複数のレジスタのうちのどれを使用できるかを指示する値を格納するためのセキュアコンフィギュレーション格納位置を備え、前記例外処置回路は、前記セキュアコンフィギュレーション格納位置に格納されている前記値、前記実行ドメインのセキュアレベル、および前記例外が取り込まれる前記ドメインから、前記レジスタの前記セット内の前記レジスタを判定する、請求項15または16のいずれか一項に記載のデータ処理装置。
- 前記データ処理装置は、例外戻り値を格納するための格納位置を備え、前記データ処理回路は、前記例外の取り込みを受けて、前記データ処理装置が動作しているドメインを指示するよう前記例外戻り値を設定するように構成され、前記例外処置回路は、例外から戻るのを受けて、前記例外戻り値内に格納されている前記値に従って、どのレジスタを前記スタックからの値で更新するかを判定する、請求項15ないし17のいずれか一項に記載のデータ処理装置。
- 前記データストアは、異なる機密度のデータを格納するための複数のセキュアな階層領域を備え、より低いレベルのセキュアなドメイン内で動作している前記データ処理回路は、より高いレベルのセキュアな領域内に格納されているデータにアクセス不可能であり、
前記データストアは、前記複数のセキュアな領域のそれぞれの中に少なくとも1つのスタックを備え、
前記スタック選択フラグを格納するための前記格納位置は、複数のビットを備え、
前記データ処理回路は、前記スタック選択フラグに従って、関数引数および戻り値についてどのスタックにアクセスするかを判定するように構成される、請求項3ないし5、7、8、11、12のいずれか一項、または、請求項3に従属する場合の請求項10もしくは13ないし18のいずれか一項に記載のデータ処理装置。 - 前記データストアは、異なる機密度のデータを格納するための複数のセキュアな領域を備え、前記領域のうちの少なくとも2つは、同一の機密度のデータを格納する兄弟領域であり、より高いレベルのセキュアなドメイン内に格納されているデータは、前記兄弟領域内に格納されている前記データにアクセス可能であるが、より低いレベルのセキュアなドメイン内または他のセキュアな兄弟ドメイン内で動作している前記データ処理回路は、アクセス不可能であり、
前記データストアは、前記セキュアな領域のそれぞれの中に少なくとも1つのスタックと、前記兄弟領域のいずれかに格納されているプログラムコードがアクセス可能なさらなる兄弟スタックと、を備え、
前記兄弟領域のうちの一方に格納されているプログラムコードに応えて、関数を呼び出し、前記関数コードは、前記兄弟領域のうちの他方に格納されており、前記データ処理回路は、前記プログラムコードおよび前記関数コードを実行する際、前記関数によって使用される引数および前記関数から返されるデータを前記さらなる兄弟スタック上に格納するように構成される、請求項1ないし19のいずれか一項に記載のデータ処理装置。 - 前記データストアは、異なる機密度のデータを格納するための複数のセキュアな階層領域を備え、より低いレベルのセキュアなドメイン内で動作している前記データ処理回路は、より高いレベルのセキュアな領域内に格納されているデータにアクセス不可能であり、前記領域のうちの少なくとも2つは、同一の機密度のデータを格納する兄弟領域であり、前記兄弟領域内に格納されている前記データは、より高いレベルのセキュアなドメイン内に格納されているデータにアクセス可能であるが、より低いレベルのセキュアなドメイン内または他方のセキュアな兄弟ドメイン内で動作している前記データ処理回路は、前記兄弟領域に格納されている前記データにアクセス不可能であり、
前記データストアは、前記複数のセキュアな領域のそれぞれの中に少なくとも1つのスタックと、前記兄弟領域のいずれかに格納されているプログラムコードがアクセス可能なさらなる兄弟スタックと、を備え、
前記スタック選択フラグを格納するための前記格納位置は、複数のビットを備え、前記スタック選択フラグ回路は、前記データ処理回路が、前記プログラムコードが格納されている前記領域、前記関数コードが格納されている前記領域、および前記セキュアレベルが等しく、前記兄弟セキュアレベルである前記領域のうちのより低いセキュアレベルの領域を指示する値に設定する関数に分岐する際、前記さらなる兄弟スタックを指示するように構成され、
前記データ処理回路は、前記スタック選択値に従って、前記関数引数および戻り値について、どのスタックにアクセスするかを判定するように構成される、請求項3ないし5、7、8、11、12、19のいずれか一項、または、請求項3に従属する場合の請求項10、13ないし18、もしくは20のいずれか一項に記載のデータ処理装置。 - データ処理装置上でデータを処理する方法であって、
プログラムコードに応えてデータ処理動作を実施するためのデータ処理回路と、
前記データ処理回路によって処理されるデータアイテムを格納するための複数のレジスタと、
データを格納するためのデータストアであって、前記セキュアなドメイン内で動作している前記データ処理回路がアクセス可能であり、よりセキュアでないドメイン内で動作している前記データ処理回路がアクセス不可能である機密データを格納するための少なくとも1つのセキュアな領域と、よりセキュアでないデータを格納するためのよりセキュアでない領域とを備える、データストアと、を備え、
前記データストアは、前記セキュアな領域内に1つのセキュアなスタック、および前記よりセキュアでない領域内に1つのよりセキュアでないスタックの少なくとも2つのスタックを備え、前記データ処理回路は、処理中に、前記スタックと前記レジスタとの間でデータを転送するように構成され、
前記データ処理回路は、前記セキュアな領域内に格納されているプログラムコードを処理する際に、前記セキュアなドメイン内で動作し、前記よりセキュアでない領域内に格納されているプログラムコードを処理する際に、前記よりセキュアでないドメイン内で動作し、前記方法は、
前記データストア内に格納されているプログラムコードを、前記データ処理回路に実行させることと、
実行されている前記プログラムコードの前記格納位置に応えて、どのスタックにデータを格納するか、またはどのスタックからデータをロードするかを、前記データ処理回路に判定させることと、
第1の領域内に格納されているプログラムコードが前記第1の領域とは異なるセキュアレベルを有する第2の領域に格納されている関数コードを呼び出すことに応えて、前記第1の領域および前記第2の領域のうちのどちらがより低いセキュアレベルを有し、関数引数および戻りデータ値について、前記より低いセキュアレベルを伴う、前記第1の領域または前記第2の領域の前記スタックにアクセスする前記プログラムコードおよび前記関数コードをいつ実行するかを判定することと、を含む、方法。 - 異なるセキュアレベルの2つのドメイン間で遷移する際に、2つのドメインのうちのよりセキュアでないドメインを指示するスタック選択フラグを、前記データ処理回路に設定させることと、
前記スタック選択フラグに従って、どのスタックに関数引数および戻り値を格納するかを、前記データ処理回路に判定させることと、をさらに含む、請求項22に記載の方法。 - 少なくとも1つのレジスタに、スタック上の少なくとも1つの位置からの値がロードされることを指示する、前記プログラムコード内のレジスタスタックロード命令に応えて、前記スタック選択フラグに従って、前記データ処理回路に、前記スタックが、前記セキュアなスタックまたは前記よりセキュアでないスタックを備えるかを判定させ、前記値を前記少なくとも1つのレジスタにロードさせることを含む、請求項23に記載の方法。
- 少なくとも1つのレジスタ内に格納されている少なくとも1つの値が、スタック上の少なくとも1つの位置に格納されることを指示する、前記プログラムコード内のレジスタスタック格納命令に応えて、前記スタック選択フラグから、前記データ処理回路に、前記スタックが、前記セキュアなスタックまたは前記よりセキュアでないスタックを備えるかを判定させ、前記値を前記スタック内に格納させることを含む、請求項23または24のいずれか一項に記載の方法。
- 前記プログラムコード内の、実行可能なコードの標的アドレスを格納するためのレジスタを指定するスタック選択フラグ設定命令に応えて、前記標的アドレスが、現在の動作領域と比較してよりセキュアでない領域内であるか否かを、前記データ処理回路に判定させ、前記標的アドレスが、現在の動作領域と比較してよりセキュアでない領域内である場合に、前記よりセキュアでない領域を指示するように、前記データ処理回路に、前記スタック選択フラグを設定させることを含む、請求項23ないし25のいずれか一項に記載の方法。
- 前記プログラムコード内の、実行可能なコードの標的アドレスを格納するためのレジスタを指定するさらなるフラグ設定命令に応えて、前記標的アドレスが、現在の動作領域と比較してよりセキュアでない領域内であるか否かを、前記データ処理回路に判定させ、前記標的アドレスが、現在の動作領域と比較してよりセキュアでない領域内である場合に、前記よりセキュアでない領域を指示するように、前記スタック選択フラグを、前記データ処理回路に設定させ、前記さらなるフラグを、前記データ処理回路に設定させることを含む、請求項23ないし26のいずれか一項に記載の方法。
- 前記プログラムコード内の複数レジスタ消去命令に応えて、前記複数レジスタ消去命令によって指定される複数のレジスタ内に格納されている値を、前記データ処理回路に消去させることを含む、請求項22ないし27のいずれか一項に記載の方法。
- レジスタスタックロード命令を実行するよう構成されたデータ処理回路を備えるデータ処理装置であって、
前記データ処理回路が、前記レジスタスタックロード命令に応じて、前記レジスタスタックロード命令によって指定される少なくとも1つのレジスタに、スタック上の少なくとも1つの位置の値をロードし、スタック選択フラグに従って、前記スタックが、データストアのよりセキュアな領域内にセキュアなスタックを備えるか、またはデータストアのよりセキュアでない領域内によりセキュアでないスタックを備えるかを判定する、ように構成されたデータ処理装置。 - レジスタスタック格納命令を実行するよう構成されたデータ処理回路を備えるデータ処理装置であって、
前記データ処理回路が、前記レジスタスタック格納命令に応じて、前記レジスタスタック格納命令によって指定される少なくとも1つのレジスタ内の少なくとも1つの値を、スタック上の少なくとも1つの位置に格納し、スタック選択フラグに従って、前記スタックが、データストアのよりセキュアな領域内にセキュアなスタックを備えるか、またはデータストアのよりセキュアでない領域内によりセキュアでないスタックを備えるかを判定する、ように構成されたデータ処理装置。 - スタック選択フラグ設定命令を実行するよう構成されたデータ処理回路を備えるデータ処理装置であって、
前記データ処理回路が、前記スタック選択フラグ設定命令に応じて、前記スタック選択フラグ設定命令によって指定されるレジスタ内に格納されている実行可能なコードの標的アドレスが、現在の動作領域と比較してよりセキュアでない領域内であるか否かを判定し、前記スタック選択フラグ設定命令によって指定されるレジスタ内に格納されている実行可能なコードの標的アドレスが、現在の動作領域と比較してよりセキュアでない領域内である場合に、前記よりセキュアでない領域を指示するよう前記スタック選択フラグを設定するように構成されたデータ処理装置。 - さらなるフラグ設定命令を実行するよう構成されたデータ処理回路を備えるデータ処理装置であって、
前記データ処理回路が、前記さらなるフラグ設定命令に応じて、前記さらなるフラグ設定命令によって指定されるレジスタ内に格納されている実行可能なコードの標的アドレスが、現在の動作領域と比較してよりセキュアでない領域内であるか否かを判定し、前記さらなるフラグ設定命令によって指定されるレジスタ内に格納されている実行可能なコードの標的アドレスが、現在の動作領域と比較してよりセキュアでない領域内である場合に、前記よりセキュアでない領域を指示するよう前記スタック選択フラグを設定し、さらなるフラグを設定する、ように構成されたデータ処理装置。 - データ処理装置であって、
プログラムコードに応えてデータ処理動作を実施するためのデータ処理手段と、
複数のレジスタと、
データを格納するためのデータ格納手段であって、異なるセキュアレベルを有する複数の領域を備え、前記セキュアなドメイン内で動作している前記データ処理手段がアクセス可能であり、よりセキュアでないドメイン内で動作している前記データ処理手段がアクセス不可能である機密データを格納するための少なくとも1つのセキュアな領域と、よりセキュアでないデータを格納するためのよりセキュアでない領域とを備える、データ格納手段とを備え、
前記データ格納手段は、前記セキュアな領域内に1つのセキュアなスタック、および前記よりセキュアでない領域内に1つのよりセキュアでないスタックの少なくとも2つのスタックを備え、前記データ処理手段は、前記セキュアな領域内に格納されているプログラムコードを処理する際に、前記セキュアなドメイン内で動作し、前記よりセキュアでない領域内に格納されているプログラムコードを処理する際に、前記よりセキュアでないドメイン内で動作し、
前記データ処理手段は、実行されている前記プログラムコードの前記格納位置に応えて、どのスタックにデータを格納するか、またはどのスタックからデータをロードするかを判定し、
第1の領域内に格納されているプログラムコードに応えて、実行される関数を呼び出し、前記関数コードは、第2の領域内に格納されており、前記第2の領域は、前記第1の領域とは異なるセキュアレベルを有し、前記データ処理手段は、前記第1の領域および前記第2の領域のうちのどちらがより低いセキュアレベルを有するかを判定し、前記プログラムコードおよび前記関数コードを実行する際、関数引数および戻りデータ値について、前記より低いセキュアレベルの前記領域の前記スタックにアクセスする、データ処理装置。 - データ処理装置であって、
プログラムコードに応えてデータ処理動作を実施するためのデータ処理回路と、
複数のレジスタと、
データを格納するためのデータストアであって、各領域がセキュアレベルを有する複数の領域を備え、前記セキュアなドメイン内で動作している前記データ処理回路がアクセス可能であり、よりセキュアでないドメイン内で動作している前記データ処理回路がアクセス不可能である機密データを格納するための少なくとも1つのセキュアな領域と、よりセキュアでないデータを格納するためのよりセキュアでない領域とを備える、データストアと、を備え、
前記データストアは、前記セキュアな領域内に1つのセキュアなスタック、および前記よりセキュアでない領域内に1つのよりセキュアでないスタックの少なくとも2つのスタックを備え、
前記データ処理回路は、例外処置回路を備え、前記例外処置回路は、例外の受信に応答して、前記データ処理回路が、前記セキュアなドメイン内で実行しており、前記例外が、よりセキュアでないドメイン内のプログラムコードを実行するように切り替わることを指示する際に、前記レジスタのセットを消去するように構成され、前記レジスタの前記セット内の前記レジスタは、前記実行ドメインのセキュアレベルおよび前記例外が取り込まれる前記ドメインに依存する、データ処理装置。 - 前記データ処理回路は、前記レジスタの前記セットを消去する前に、前記レジスタの前記セット内に格納されている状態を、前記データ処理回路が実行している前記ドメインの前記スタックに保存するようにさらに構成される、請求項34に記載のデータ処理装置。
- 前記データ処理装置は、現在実行しているコードが、セキュアな状態を格納するために、前記複数のレジスタのうちのどれを使用できるかを指示する値を格納するためのセキュアコンフィギュレーション格納位置を備え、前記データ処理回路は、前記セキュアコンフィギュレーション値によって指示される前記複数のレジスタ、前記実行ドメインのセキュアレベル、および前記例外が取り込まれる前記ドメインに従って、どのレジスタがレジスタの前記セット内であるかを判定するように構成される、請求項34または35のいずれか一項に記載のデータ処理装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/368,419 | 2012-02-08 | ||
US13/368,419 US9477834B2 (en) | 2012-02-08 | 2012-02-08 | Maintaining secure data isolated from non-secure access when switching between domains |
PCT/GB2013/050029 WO2013117896A1 (en) | 2012-02-08 | 2013-01-09 | Maintaining secure data isolated from non-secure access when switching between domains |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015510189A JP2015510189A (ja) | 2015-04-02 |
JP6185487B2 true JP6185487B2 (ja) | 2017-08-23 |
Family
ID=47561659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014556133A Active JP6185487B2 (ja) | 2012-02-08 | 2013-01-09 | ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9477834B2 (ja) |
EP (1) | EP2812835B1 (ja) |
JP (1) | JP6185487B2 (ja) |
KR (1) | KR102069522B1 (ja) |
CN (1) | CN104115154B (ja) |
IL (1) | IL233726A (ja) |
MY (1) | MY170836A (ja) |
WO (1) | WO2013117896A1 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477834B2 (en) | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
US9116711B2 (en) | 2012-02-08 | 2015-08-25 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
US9213828B2 (en) | 2012-02-08 | 2015-12-15 | Arm Limited | Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains |
KR101434860B1 (ko) * | 2013-08-16 | 2014-09-02 | (주)잉카엔트웍스 | 해시를 이용한 동적코드의 무결성 검증 방법 |
CN104881611B (zh) | 2014-02-28 | 2017-11-24 | 国际商业机器公司 | 保护软件产品中的敏感数据的方法和装置 |
KR102218202B1 (ko) * | 2014-08-01 | 2021-02-23 | 삼성전자주식회사 | 반도체 장치 |
EP2993605A1 (en) * | 2014-09-02 | 2016-03-09 | Gemalto Sa | System and method for protecting a device against attacks on processing flow using a code pointer complement |
GB2539199B (en) * | 2015-06-08 | 2018-05-23 | Arm Ip Ltd | Apparatus and methods for transitioning between a secure area and a less-secure area |
GB2540388B (en) * | 2015-07-15 | 2019-01-23 | Advanced Risc Mach Ltd | Secure mode state data access tracking |
US10721622B2 (en) * | 2015-12-31 | 2020-07-21 | Koninklijke Philips N.V. | Wireless communication system with multiple security levels |
FR3047587B1 (fr) * | 2016-02-10 | 2023-01-13 | Dolphin Integration Sa | Dispositif de traitement muni d'un mode d'acces a des donnees sensibles. |
GB2550903B (en) * | 2016-05-27 | 2019-06-12 | Arm Ip Ltd | Context data control |
US10671744B2 (en) | 2016-06-23 | 2020-06-02 | Intel Corporation | Lightweight trusted execution for internet-of-things devices |
US10540287B2 (en) * | 2017-05-12 | 2020-01-21 | Samsung Electronics Co., Ltd | Spatial memory streaming confidence mechanism |
US11150904B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Concurrent prediction of branch addresses and update of register contents |
US11150908B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence |
US10719328B2 (en) | 2017-08-18 | 2020-07-21 | International Business Machines Corporation | Determining and predicting derived values used in register-indirect branching |
US10534609B2 (en) * | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
US10884747B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Prediction of an affiliated register |
US10884745B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Providing a predicted target address to multiple locations based on detecting an affiliated relationship |
US10884746B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Determining and predicting affiliated registers based on dynamic runtime control flow analysis |
US10908911B2 (en) | 2017-08-18 | 2021-02-02 | International Business Machines Corporation | Predicting and storing a predicted target address in a plurality of selected locations |
CN107563224B (zh) * | 2017-09-04 | 2020-07-28 | 浪潮集团有限公司 | 一种多用户物理隔离方法及装置 |
KR102416501B1 (ko) * | 2017-09-20 | 2022-07-05 | 삼성전자주식회사 | 전자 장치 및 그의 제어 방법 |
KR102495643B1 (ko) * | 2018-03-26 | 2023-02-06 | 삼성전자주식회사 | 입력 수단에 따른 어플리케이션으로 사용자 입력을 전달하는 모바일 전자 장치 및 방법 |
US11171983B2 (en) * | 2018-06-29 | 2021-11-09 | Intel Corporation | Techniques to provide function-level isolation with capability-based security |
US11188639B2 (en) * | 2018-07-19 | 2021-11-30 | Intel Corporation | System, method and apparatus for automatic program compartmentalization |
CN109086162B (zh) * | 2018-08-15 | 2021-12-24 | 中国农业银行股份有限公司 | 一种内存诊断方法和装置 |
GB2577878B (en) * | 2018-10-08 | 2020-11-11 | Advanced Risc Mach Ltd | Transition disable indicator |
JP2019096338A (ja) * | 2019-02-04 | 2019-06-20 | ルネサスエレクトロニクス株式会社 | 半導体装置および半導体装置販売モデル |
US11216280B2 (en) * | 2019-11-26 | 2022-01-04 | Arm Limited | Exception interception |
GB2589895B (en) * | 2019-12-11 | 2022-03-16 | Advanced Risc Mach Ltd | Intermodal calling branch instruction |
GB2589896B (en) * | 2019-12-11 | 2022-07-27 | Advanced Risc Mach Ltd | An apparatus and method for handling exceptions |
CN112507399B (zh) * | 2020-12-08 | 2021-09-14 | 福州富昌维控电子科技有限公司 | 一种固件和用户程序隔离保护方法及终端 |
US12008149B2 (en) * | 2020-12-16 | 2024-06-11 | International Business Machines Corporation | Method and system for on demand control of hardware support for software pointer authentification in a computing system |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4177514A (en) * | 1976-11-12 | 1979-12-04 | General Electric Company | Graph architecture information processing system |
US4519032A (en) * | 1982-06-09 | 1985-05-21 | At&T Bell Laboratories | Memory management arrangement for microprocessor systems |
US4488227A (en) | 1982-12-03 | 1984-12-11 | Honeywell Information Systems Inc. | Program counter stacking method and apparatus for nested subroutines and interrupts |
US5590332A (en) | 1995-01-13 | 1996-12-31 | Baker; Henry G. | Garbage collection, tail recursion and first-class continuations in stack-oriented languages |
JPH0991154A (ja) * | 1995-09-25 | 1997-04-04 | Hitachi Constr Mach Co Ltd | スタック割り当て方法、制御装置 |
US5812850A (en) | 1995-11-13 | 1998-09-22 | Object Technology Licensing Corp. | Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution |
JPH10228421A (ja) | 1997-02-14 | 1998-08-25 | Nec Ic Microcomput Syst Ltd | メモリアクセス制御回路 |
JP3716604B2 (ja) | 1998-03-24 | 2005-11-16 | 富士電機機器制御株式会社 | 情報処理装置 |
JP2002526822A (ja) | 1998-09-25 | 2002-08-20 | ヒューズ・エレクトロニクス・コーポレーション | セキュリティ処理環境を提供するための装置 |
US6363474B1 (en) | 1999-06-30 | 2002-03-26 | Bull Hn Information Systems Inc. | Process switching register replication in a data processing system |
US7213247B1 (en) * | 2000-01-10 | 2007-05-01 | Wind River Systems, Inc. | Protection domains for a computer operating system |
US6993663B1 (en) | 2000-08-31 | 2006-01-31 | Microsoft Corporation | Input buffer overrun checking and prevention |
JP3786575B2 (ja) * | 2000-11-20 | 2006-06-14 | 株式会社ルネサステクノロジ | データ処理装置 |
GB2369464B (en) | 2000-11-27 | 2005-01-05 | Advanced Risc Mach Ltd | A data processing apparatus and method for saving return state |
EP1331539B1 (en) | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
US20040003377A1 (en) | 2002-06-28 | 2004-01-01 | Di Loreto Michael A. | Converting byte code instructions to a new instruction set |
GB0226906D0 (en) | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain |
US7383587B2 (en) * | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
GB2396930B (en) | 2002-11-18 | 2005-09-07 | Advanced Risc Mach Ltd | Apparatus and method for managing access to a memory |
GB0226874D0 (en) | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Switching between secure and non-secure processing modes |
US20040168047A1 (en) | 2003-02-24 | 2004-08-26 | Matsushita Electric Industrial Co., Ltd. | Processor and compiler for creating program for the processor |
JP2004280801A (ja) | 2003-02-24 | 2004-10-07 | Matsushita Electric Ind Co Ltd | プロセッサおよびこのプロセッサ用のプログラムを生成するコンパイラ装置 |
EP1480046A1 (en) | 2003-05-23 | 2004-11-24 | Interuniversitair Microelektronica Centrum ( Imec) | A method for determining the current-voltage characteristic of a snap-back device |
US20050044292A1 (en) | 2003-08-19 | 2005-02-24 | Mckeen Francis X. | Method and apparatus to retain system control when a buffer overflow attack occurs |
US7120794B2 (en) * | 2003-10-29 | 2006-10-10 | Qualcomm Inc. | System for invoking a privileged function in a device |
US7607133B2 (en) | 2004-02-11 | 2009-10-20 | Arm Limited | Interrupt processing control |
US7401210B2 (en) | 2005-03-30 | 2008-07-15 | Arm Limited | Selecting subroutine return mechanisms |
US7665143B2 (en) | 2005-05-16 | 2010-02-16 | Microsoft Corporation | Creating secure process objects |
US7917753B2 (en) | 2005-05-16 | 2011-03-29 | Texas Instruments Incorporated | Transferring control between programs of different security levels |
JP4519738B2 (ja) | 2005-08-26 | 2010-08-04 | 株式会社東芝 | メモリアクセス制御装置 |
US8959339B2 (en) | 2005-12-23 | 2015-02-17 | Texas Instruments Incorporated | Method and system for preventing unauthorized processor mode switches |
US8621607B2 (en) | 2006-05-18 | 2013-12-31 | Vmware, Inc. | Computational system including mechanisms for tracking taint |
US7681000B2 (en) * | 2006-07-10 | 2010-03-16 | Silverbrook Research Pty Ltd | System for protecting sensitive data from user code in register window architecture |
KR101419668B1 (ko) | 2006-09-06 | 2014-07-15 | 실리콘 하이브 비.브이. | 데이터 처리회로 및 데이터 처리방법 |
GB2448151B (en) | 2007-04-03 | 2011-05-04 | Advanced Risc Mach Ltd | Memory domain based security control within data processing systems |
GB2448149B (en) | 2007-04-03 | 2011-05-18 | Advanced Risc Mach Ltd | Protected function calling |
WO2010004242A2 (en) | 2008-07-10 | 2010-01-14 | Cambridge Consultants Limited | Data processing apparatus, for example using vector pointers |
US8578483B2 (en) | 2008-07-31 | 2013-11-05 | Carnegie Mellon University | Systems and methods for preventing unauthorized modification of an operating system |
US8051467B2 (en) | 2008-08-26 | 2011-11-01 | Atmel Corporation | Secure information processing |
KR101537018B1 (ko) * | 2008-10-01 | 2015-07-17 | 삼성전자주식회사 | 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드 |
JP2010186386A (ja) | 2009-02-13 | 2010-08-26 | Oki Semiconductor Co Ltd | プロセッサ |
GB2471138B (en) | 2009-06-19 | 2014-08-13 | Advanced Risc Mach Ltd | Handling integer and floating point registers during a context switch |
GB2478733B (en) | 2010-03-15 | 2013-08-14 | Advanced Risc Mach Ltd | Apparatus and method for handling exception events |
GB2482701C (en) | 2010-08-11 | 2018-12-26 | Advanced Risc Mach Ltd | Illegal mode change handling |
US9477834B2 (en) | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
US9213828B2 (en) | 2012-02-08 | 2015-12-15 | Arm Limited | Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains |
US9116711B2 (en) | 2012-02-08 | 2015-08-25 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
US9202071B2 (en) | 2012-02-08 | 2015-12-01 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
-
2012
- 2012-02-08 US US13/368,419 patent/US9477834B2/en active Active
-
2013
- 2013-01-09 CN CN201380008433.5A patent/CN104115154B/zh active Active
- 2013-01-09 MY MYPI2014702000A patent/MY170836A/en unknown
- 2013-01-09 EP EP13700421.4A patent/EP2812835B1/en active Active
- 2013-01-09 WO PCT/GB2013/050029 patent/WO2013117896A1/en active Application Filing
- 2013-01-09 JP JP2014556133A patent/JP6185487B2/ja active Active
- 2013-01-09 KR KR1020147023456A patent/KR102069522B1/ko active IP Right Grant
-
2014
- 2014-07-21 IL IL233726A patent/IL233726A/en active IP Right Grant
-
2016
- 2016-10-04 US US15/284,830 patent/US10169573B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
IL233726A (en) | 2017-09-28 |
US20130205403A1 (en) | 2013-08-08 |
MY170836A (en) | 2019-09-06 |
WO2013117896A1 (en) | 2013-08-15 |
US20170024557A1 (en) | 2017-01-26 |
CN104115154B (zh) | 2017-09-29 |
KR20140123546A (ko) | 2014-10-22 |
CN104115154A (zh) | 2014-10-22 |
US9477834B2 (en) | 2016-10-25 |
IL233726A0 (en) | 2014-09-30 |
EP2812835A1 (en) | 2014-12-17 |
KR102069522B1 (ko) | 2020-01-23 |
JP2015510189A (ja) | 2015-04-02 |
US10169573B2 (en) | 2019-01-01 |
EP2812835B1 (en) | 2019-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6185487B2 (ja) | ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持 | |
JP6209611B2 (ja) | 安全なドメイン及びより安全性の低いドメインを有するデータ処理装置における例外処理 | |
JP6204479B2 (ja) | 安全なドメインとより安全性の低いドメインの間で切り替えるときに安全ではないアクセスから安全なデータ及びプログラム・コードを保護するためのデータ処理装置及び方法 | |
JP5680679B2 (ja) | 例外イベントを取り扱うための装置および方法 | |
JP6134742B2 (ja) | セキュアドメインおよび低セキュアドメインを有するデータ処理装置の例外処理 | |
US10140448B2 (en) | Systems and methods of asynchronous analysis of event notifications for computer security applications | |
US9202071B2 (en) | Exception handling in a data processing apparatus having a secure domain and a less secure domain | |
US11727110B2 (en) | Verifying stack pointer | |
CN107735791B (zh) | 安全模式状态的数据访问追踪 | |
US9596261B1 (en) | Systems and methods for delivering context-specific introspection notifications | |
US9536084B1 (en) | Systems and methods for delivering event-filtered introspection notifications | |
US9531735B1 (en) | Systems and methods for delivering introspection notifications from a virtual machine | |
CN108701031B (zh) | 寄存器访问控制 | |
US11704127B2 (en) | Marking current context data to control a context-data-dependent processing operation to save current or default context data to a data location |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160104 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170315 |
|
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: 20170704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170727 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6185487 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |