JP7829829B2 - 安全なエンクレーブマイグレーションのための方法およびホストシステム - Google Patents

安全なエンクレーブマイグレーションのための方法およびホストシステム

Info

Publication number
JP7829829B2
JP7829829B2 JP2024525474A JP2024525474A JP7829829B2 JP 7829829 B2 JP7829829 B2 JP 7829829B2 JP 2024525474 A JP2024525474 A JP 2024525474A JP 2024525474 A JP2024525474 A JP 2024525474A JP 7829829 B2 JP7829829 B2 JP 7829829B2
Authority
JP
Japan
Prior art keywords
security
enclave
monitors
host
security monitor
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
JP2024525474A
Other languages
English (en)
Other versions
JP2024540128A (ja
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JP2024540128A publication Critical patent/JP2024540128A/ja
Application granted granted Critical
Publication of JP7829829B2 publication Critical patent/JP7829829B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
    • G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533—Hypervisors; Virtual machine monitors
    • G06F9/45558—Hypervisor-specific management and integration aspects
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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
    • G06F21/53—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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/606—Protecting data by securing the transmission between two devices or processes
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00—Network architectures or network communication protocols for network security
    • H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
    • G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533—Hypervisors; Virtual machine monitors
    • G06F9/45558—Hypervisor-specific management and integration aspects
    • G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (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)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Description

本発明は、エンクレーブのコンテンツおよびそのシールされたデータの、第1のマシン(送信ホスト)から第2のマシン(受信ホスト)へのマイグレーション(migration)を可能にする方法に関する。
さらに、本発明の実施形態は、エンクレーブのコンテンツおよびそのシールされたデータの、別の計算プラットフォームへのマイグレーションを可能にする計算プラットフォームに関する。
信頼できる実行環境(Trusted Execution Environment: TEE)は、潜在的に悪意のあるハイパーバイザまたはオペレーティングシステムを含む、同じプラットフォーム上の他のソフトウェアから分離してアプリケーションを実行することを可能にする。アプリケーションは、いわゆるエンクレーブにロードされ、エンクレーブコンテンツへのアクセス制御は、基礎となるハードウェアによって保護される。特に、ランタイムエンクレーブメモリ(すなわち、ダイナミックランダムアクセスメモリ(DRAM))は、プロセッサから離れることのないハードウェア依存のキーで暗号化される。
さらに、TEEを実装するハードウェアプラットフォームは、リモート構成証明(remote attestation)またはシーリング(sealing)などの他のサービスを特徴とする。リモート構成証明は、リモートパーティがエンクレーブのソフトウェア構成およびエンクレーブが展開されるプラットフォームのハードウェアにおける検証可能なステートメントを取得することを可能にし、ほとんどのリモート構成証明プロトコルの副産物として、TEEおよびリモートパーティは、共有暗号キーを用いて安全なチャネル(secure channel)を確立する。シーリングは、エンクレーブが、保存されたデータがエンクレーブ自体にのみ利用可能なように永続的ストレージにデータを保存することを可能にし、これは、プラットフォームとエンクレーブとの両方に固有のハードウェア管理キーでデータを暗号化および認証することによって達成される。
エンクレーブの管理およびオーケストレーションは、ハードウェアのすぐ上で実行され、TEEのインスタンス化に応じて異なる名前を用いる薄いソフトウェア層に委任される。例えば、この層は、ARM TrustZoneではファームウェアまたはセキュアモニタと呼ばれ、どのアプリケーションが「セキュアワールド」において実行されるかを制御し、いわゆるセキュアワールドとノーマルワールドとを切り替えることを担当し、Intel SGXプラットフォームにおいて、ソフトウェア層は、「システムエンクレーブ」のセットにわたって分散される。
本発明の実施形態は、Risc-V命令セットアーキテクチャ上に構築されたエンクレーブに焦点を当てる。アプリケーションエンクレーブの管理を担当する薄い層は、本明細書では、セキュリティモニタ(Security Monitor: SM)と呼ばれる。
以前の研究は、エンクレーブ内で実行されるアプリケーションをクローン化すること、すなわち、同じアプリケーションエンクレーブの複数のインスタンスを同時並行して(concurrently)実行することが、アプリケーションの挙動を駆動するための効果的な攻撃手段となり得ることを示している。さらに、アプリケーションマイグレーションは、被害アプリケーションの複数のクローンを取得する手段となる場合がある。特に、敵対者は、送信ホスト上でマイグレートされたアプリケーションの実行を停止することなく、送信ホストから受信ホストへの被害アプリケーションのマイグレーションを開始し得る。結果として、同じアプリケーションの2つのインスタンスが、ホストの各々において1つずつ同時並行して実行されることになる。
したがって、本発明の目的は、エンクレーブの機密性および完全性が保持されるように、最初に説明したタイプのエンクレーブマイグレーションのための方法および計算プラットフォームを改善し、さらに発展させることである。
本発明によれば、前述の目的は、エンクレーブマイグレーションを可能にする方法によって達成され、エンクレーブのコンテンツおよびそのシールされたデータは、送信ホストである第1のマシンから受信ホストである第2のマシンに転送される。方法は、送信ホストのセキュリティモニタと受信ホストのセキュリティモニタとの間で、2つのセキュリティモニタ間の共有暗号キーKの交換を含む、構成証明を実施するステップと、2つのセキュリティモニタ間に安全な通信チャネルを実装するために、共有暗号キーKを使用するステップと、2つのセキュリティモニタによって、安全な通信チャネルを介して、所定の転送プロトコルを実行するステップとを含む。転送プロトコルは、両方のセキュリティモニタが準備できており、転送を実行できること、を検証するための、セキュリティモニタ間の検証メッセージの初期交換と、セキュリティモニタ間のエンクレーブデータのその後の転送とを含む。
さらに、前述の目的は、オペレーティングシステムと、ハードウェア構成要素と、アプリケーションがプラットフォーム上で実行される他のソフトウェアから分離して実行されることを可能にするエンクレーブであって、エンクレーブのコンテンツへのアクセス制御がハードウェア構成要素によって保護される、エンクレーブと、ハードウェア構成要素の上に実装され、エンクレーブの管理およびオーケストレーションを実行するように構成されたセキュリティモニタとを備える計算プラットフォームによって達成される。セキュリティモニタは、さらに、受信ホストのセキュリティモニタで構成証明を実施し、受信ホストのセキュリティモニタと共有暗号キーKを交換することと、受信ホストのセキュリティモニタとの安全な通信チャネルを実装するために、共有暗号キーKを使用することと、安全な通信チャネルを介して、受信ホストのセキュリティモニタとの所定の転送プロトコルを実行することとを行うように構成され、転送プロトコルは、両方のセキュリティモニタが準備できており、転送を実行できること、を検証するための、セキュリティモニタ間の検証メッセージの初期交換と、セキュリティモニタ間のエンクレーブデータのその後の転送とを含む。
本発明によれば、エンクレーブのランタイムメモリおよびそのシールされたデータのマイグレーションプロセスは、アトミック性を保証することによってクローン化に対して保護され得ることが認識された。したがって、本発明の実施形態は、TEEにおいて実行されているアプリケーションの、あるホストから別のソフトへのライブマイグレーションを可能にし、一方で、そのコンテンツを機密に、かつ変更されないように保ちながら、マイグレートされたアプリケーションを、両方のホストにおいてネットワーク遅延よりも長い期間、両方のホストにおいて実行することができないことを保証する。例えば、マイグレーションは、パブリッククラウドにおいて行われ得る。
本発明の実施形態によれば、転送プロトコルの特定のステップの最大許容持続時間を定義するタイムアウトは、検証メッセージの初期交換とエンクレーブデータのその後の転送との両方について実装され得る。より具体的には、本発明の実施形態によれば、2つのマシン/計算プラットフォームがエンクレーブの2つのクローンを同時に実行することが不可能であることを保証するために、転送プロトコルは、それを超えるとマイグレーション動作を中断(abort)させる異なるタイムアウトを活用する。言い換えれば、検証メッセージの初期交換とエンクレーブデータのその後の転送との両方に関連して、実装されたタイムアウトのいずれかが転送プロトコルの特定のステップの最大許容持続時間を超えた場合、転送プロトコルは、中断される。
一実施形態によれば、エンクレーブデータの転送についてのタイムアウトは、関与する2つのセキュリティモニタ間のネットワーク遅延と、他のパーティが転送プロトコルに従ってそれぞれの応答を準備するのに必要な時間と、許容マージン(例えば、ネットワーク遅延の特定の割合)とを含むように定義され得る。
一実施形態によれば、セキュリティモニタ間の検証メッセージの初期交換は、送信ホストのセキュリティモニタによって、受信ホストのセキュリティモニタに準備メッセージを送信するステップと、受信ホストのセキュリティモニタによって、準備メッセージに応答して、送信ホストのセキュリティモニタに準備完了メッセージを送信するステップとを含み得る。準備メッセージは、他のパーティに今後の転送を通知し得、転送されるべきエンクレーブのサイズも示し得る。準備完了メッセージは、他のパーティが、転送されるべきエンクレーブを受信する準備ができていることを示し得る。
一実施形態によれば、セキュリティモニタ間のエンクレーブデータのその後の転送は、送信ホストのセキュリティモニタによって、転送されるべきエンクレーブに属する永続的ストレージ上に保存されたデータS(本明細書では簡単にSで表す)およびDRAMページのセット(本明細書では簡単にDで表す)を復号するステップと、次いで、共有暗号キーKを使用することによってDとSとを再暗号化するステップと、暗号化されたDおよびSを受信ホストのセキュリティモニタに送信するステップとを含む。
一実施形態によれば、セキュリティモニタは、それぞれの計算プラットフォームのハードウェア内に適切に実装された信頼できるタイマへの直接アクセスによって強化され得る。ここでは、セキュリティモニタが、信頼できるタイマを用いて、実装されたタイムアウトを観察することが記載され得る。信頼できるタイマは、悪意のあるオペレーティングシステムによってもたらされる時刻変更に対して保護された信頼できるクロックソースの形式において実装され得る。
計算プラットフォームから(すなわち、計算プラットフォームのそれぞれのチップ/プロセッサから)電力を除去することによって影響を受けるタイマの操作を検出するために、変数が電力サイクルごとに上書きされるように、時間的変数がセキュリティモニタの各々のランタイムメモリ内でインスタンス化されることが記載され得る。
一実施形態によれば、エンクレーブアプリケーションの許可されたクローンの数が、これらの詳細が指定されているエンクレーブのマニフェストファイルを使用することによって定義され、文書化されることが記載され得る。言い換えれば、エンクレーブアプリケーションは、ホスト上で同時並行して実行することが許可されるアプリケーションインスタンスの最大数を含む構成情報を提供するマニフェストファイルで拡張され得る。ここでは、セキュリティモニタが、プラットフォーム上に展開されたそれぞれのアプリケーションのインスタンスの数を追跡するアプリケーションごとのカウンタを保持することが記載され得る。実行中のインスタンスの数がそれぞれのアプリケーションのマニフェストファイルにおいて定義されたしきい値に達した場合、プラットフォームのセキュリティモニタは、プラットフォームのオペレーティングシステムからの、新しいインスタンスを展開するいかなる要求も拒否し得る。
一実施形態によれば、計算プラットフォームは、クラッシュ故障耐性(Crash Fault Tolerant: CFT)ストレージを用いて、転送プロトコルのステータスに関する一貫した状態を維持するように構成され得る。CFTストレージは、送信ホストおよび受信ホストのセキュリティモニタを含む3つ以上のセキュリティモニタのセットによって実行され得る。そのような実装形態は、実装されたセットのセキュリティモニタの半分までが任意にビザンチンであり、交換されたメッセージが敵対者によって任意に遅延されることを許容することができる。
一実施形態によれば、転送プロトコルは、送信ホストのハイパーバイザの要求に応じて、送信ホストのセキュリティモニタによってトリガされ得る。
特に信頼性の高いキー管理に関して、2つの暗号キーが共有暗号キーKから導出され、導出されたキーのうちの第1のキーが、安全な通信チャネルを介する通信の認証のために使用され、導出されたキーのうちの第2のキーが、安全な通信チャネルを介する通信を暗号化するために使用されることが記載され得る。
本発明の教示を有利な方法で設計し、さらに発展させるいくつかの方法が存在する。この目的のため、一方では従属請求項が参照されるべきであり、他方では図によって示される例としての本発明の好ましい実施形態の以下の説明が参照されるべきである。図の助けを借りた本発明の好ましい実施形態の説明に関連して、一般的に好ましい実施形態および教示のさらなる展開について説明する。
Risc-V命令セットアーキテクチャの一般的な概念を示す概略図である。 本発明の一実施形態に従って実装されたホスト上で実行されるエンクレーブを示す概略図である。 本発明の一実施形態による、ライブTEEマイグレーションを実行するためのプロトコルを示す概略図である。
本発明の実施形態に従って想定されるシステムモデルを図1に概略的に示す。より具体的には、図1は、Risc-V命令セットシステム100の上に構築されたエンクレーブ110を示す。
Risc-Vは、図1に示すように様々な特権レベルを定義する。信頼できるハードウェア120の上で、セキュリティモニタ(SM)130は、マシンモード(または単にMモード)である最も特権的なモードにおいて実行される。したがって、このモードにおいて実行されるファームウェアまたはコードは、システム100の信頼できるコンピューティングベース(TCB)内に含まれる。
セキュリティモニタ130の上に実装されるハイパーバイザ層140は、クラウド環境には必要であるが、他のシナリオ、例えば、仮想化を実装しない企業によって管理されるサーバのグループには存在しない場合がある。
セキュリティモニタ130は、エンクレーブ110と信頼できないプラットフォーム構成要素との間のインターフェースである。仮想メモリ管理およびプロセススケジューリングなどのいくつかのタスクを、オペレーティングシステム(OS)150またはハイパーバイザ140に委任することができる。それにもかかわらず、セキュリティモニタ130は、エンクレーブ展開などの重要なタスクを監督する。
送信ホストから受信ホストへのTEEアプリケーションのマイグレーションは、ホストの各々において実行されるセキュリティモニタ130間の調整を必要とする。特に、2つのセキュリティモニタ130は、2つのモニタ130によって合意された暗号キー、例えばKによってインスタンス化された安全なチャネルにおいて合意しなければならない。送信ホスト上のセキュリティモニタ130(以降、セキュリティモニタ130Sと呼ぶ)は、転送されるべきアプリケーションのDRAMページとシールされたデータとの両方をキーKで暗号化し、それを受信ホスト上のセキュリティモニタ130(以降、セキュリティモニタ130Rと呼ぶ)に送信する。そうするために、送信ホスト上のセキュリティモニタ130Sは、転送されるべきアプリケーションのDRAMページとシールされたデータとを暗号化するために使用されるハードウェア管理キーにアクセスすることができなければならないことに留意すべきである。受信ホスト上のセキュリティモニタ130Rは、受信ホスト上にアプリケーションを展開する前に、キーKを使用することによってアプリケーションのDRAMページとシールされたデータとを復号する。これは、大体において、エンクレーブにおいて実行されている仮想マシンをプラットフォーム間でマイグレートするためにAMD Secure Encrypted Virtualizationにおいて利用可能なマイグレーション技法である。
本発明の実施形態は、所与のホスト上で実行中のインスタンスの数が開発者によって選択されたしきい値を超えないことと、あるホストから別のホストへのインスタンスのマイグレーション中に、マイグレートされるインスタンスが2つのホスト間のネットワーク遅延によって制限される期間中にのみ、両方のホスト上で実行することができることとを保証することによって、TEEアプリケーションのセキュリティを強化する。このように、本発明の実施形態は、クローンベースの攻撃がマイグレーション機能を利用しないことを保証しながら、ホスト間でのTEEアプリケーションのマイグレーションを可能にする。
本発明の実施形態は、ホスト上で同時並行して実行することができるアプリケーションインスタンスの開発者定義の最大数を含む構成情報を提供するマニフェストファイルでアプリケーションを拡張する。さらに、本発明の実施形態は、送信ホスト上の同じアプリケーションが放棄された場合かつその場合にのみ、受信ホスト上のマイグレートされたアプリケーションが実行を開始することを保証するために、安全なタイマにアクセスすることができるホスト上のセキュリティモニタを強化し、2つのセキュリティモニタ間の通信プロトコルを実装する。
図2は、本発明の実施形態を実現するために実装および利用され得る要素および機能構成要素(ならびにそれらの間のいくつかの関係)の一般的な概要とともに、マシン200を示す。特に明記しない限り、同様の構成要素および機能は、図1と同様の参照番号で表される。図示を容易にするために、本発明を理解するために必ずしも必要されないホストの構成要素(例えば、オペレーティングシステムまたはハイパーバイザなど)は、図2において省略されている。本発明の実施形態の文脈において、マシン200は、送信ホストと受信ホストとの両方として機能し得る。
図示の実施形態において、マシン200は、ハードウェア120に実装された信頼できるタイマ210への直接アクセスによって強化されたセキュリティモニタ130を備える。セキュリティモニタ130は、ハードウェア管理キー220を用いて暗号化/復号動作をトリガすることもできるが、セキュリティモニタ130は、これらのキー220が持ち出されるのを防ぐために、それらのキー220を直接読み取ることはできない。
一実施形態において、本発明は、アプリケーションコードとともにアプリケーション開発者によって供給されるマニフェストファイルを用いてTEEアプリケーションを拡張する。マニフェストファイルは、様々な構成パラメータ、ならびにそれぞれのホスト上で同時に実行することができるアプリケーションインスタンスの最大数を含み得る。したがって、セキュリティモニタ130は、それぞれのホスト200上で展開されるインスタンスの数を追跡するアプリケーションごとのカウンタを保持するように構成され得る。アプリケーションの新しいインスタンスが開始されるたびに、カウンタが増加し、インスタンスが放棄されるたびに、カウンタが減少する。OSがセキュリティモニタ130に新しいインスタンスを展開することを要求するたびに、実行中のインスタンスの数がマニフェストファイルにおいて定義されたしきい値に達している場合、セキュリティモニタ130は、要求を拒否する。
さらなる実施形態によれば、セキュリティモニタ130は、ライブTEEマイグレーションを実行するロジックで強化される。図3は、一実施形態によるそれぞれのプロトコルのステップを示す。プロトコルは、送信ホスト200Sのハイパーバイザの要求に応じて、送信ホスト200S上のセキュリティモニタ130S(図3ではSM1として示す)によってトリガされ得る。SM1 130Sは、最初に、受信ホスト200R上のセキュリティモニタ130R(SM2として示す)を構成証明し得る。構成証明は、SM2がTEE対応プラットフォーム上で実行されている正規のセキュリティモニタであり、開発者によって指定されたすべての要件を満たしているという保証をSM1に提供する。副産物として、2つのセキュリティモニタ130S、130Rは、セキュリティ通信チャネルを実装するために使用される共有暗号キー、例えばKを取得する。図3において、構成証明およびキー交換をステップS301に示す。2つのセキュリティモニタ130S、130R間のすべての後続の通信は、通信チャネルを介して行われ、すなわち、すべての転送されるデータは、共有暗号キーKで暗号化され、認証される。必要であれば、共有暗号キーを決定論的関数への入力として使用することによって、共有暗号キーKから複数の暗号キー、例えば、認証用の1つの暗号キーおよび暗号化用の1つの暗号キーが導出され得る。
2つのマシンがエンクレーブの2つのクローンを同時に実行することが不可能であることを保証するために、本発明の実施形態によるプロトコルは、超過した場合にマイグレーション動作を中断させる異なるタイムアウトを活用する。この目的のため、SM130は、図2に示すように、信頼できるタイマ210へのアクセスを提供される。言い換えれば、SM130は、それぞれのチップ/プロセッサに含まれるクロックソースにアクセスすることができる。セキュリティモニタ130が最高の特権レベルにおいて実行されることを考えると、そのような時間のソースを、悪意のあるOS150またはハイパーバイザ140が操作できないことに留意すべきである。結果として、タイマ出力を操作する唯一の方法は、プロセッサの電力を除去することである。
本発明の実施形態によれば、そのような操作は、電力サイクルごとに上書きされるSM130のランタイムメモリ内で時間変数をインスタンス化することによって検出され得る。したがって、時間測定間のこの変数の任意の変化は、電源の操作、および、例えば、クラッシュ、またはマイグレーションプロセスを攻撃しようとする悪意のあるパーティなどの起こり得る問題を示す。
本発明の実施形態によれば、図3に示すプロトコルは、すべてのステップが実行されるか、またはなにも起こらないように設計され、それによってアトミック性を保証する。両方のセキュリティモニタ130S、130Rは、「クラッシュのみ」であり、すなわち、プロトコル仕様に従うように構成されるが、例えば、電源障害により故障する場合があると想定される。さらに、あるSMから別のSMに送信されるメッセージは、事前定義された時間間隔内に受信されることになっている。したがって、セキュリティモニタ130S、130Rの各々は、他のパーティからのメッセージを期待するときにタイムアウトを定義することができ、メッセージがタイムアウトまでに受信されない場合、他のパーティは、クラッシュしたとみなされる。
以下では、あるパーティがメッセージを送信するたびに、タイマも開始し、応答が到着するまでの最大遅延を定義するタイムアウトを設定する。実施形態によれば、タイムアウトは、2つのパーティ間のネットワーク遅延と、他のパーティが応答を準備するのに必要な時間と、許容マージン(例えば、ネットワーク遅延の10%)とを含み得る。
一実施形態によれば、構成証明後、SM1は、転送されるべきエンクレーブに属する永続的ストレージに保存されたデータ(以下、単にSで表す)およびDRAMページのセット(以下、単にDで表す)を識別し得る。プロセッサがDおよびSを暗号化するためにその時使用している暗号キーもフェッチする。次に、SM1は、DとSとを復号し、Kを使用することによってそれらを再暗号化する。暗号化されたDおよびSは、SM2に転送され、SM2は、最終的に、送信されたエンクレーブの実行を継続する。
本発明の一実施形態によれば、プロセス全体は、以下のように実施される。
1. SM1が動作しているホスト200S上のハイパーバイザ140は、特定のエンクレーブをSM2が動作しているホスト200Rにマイグレートする要求をSM1に送信する。
2. SM1およびSM2は、図3のステップS301に示すように、互いに構成証明し、暗号キーKに合意し、それらのそれぞれのホスト200S、200R間のネットワーク遅延を測定する。
3. SM1は、S302に示すようにPREPARE(準備)メッセージをSM2に送信する。PREPAREメッセージは、転送されるべきエンクレーブのサイズも含み得る。さらにSM1は、タイムアウトT1でタイマを開始する。タイマがタイムアウトに達し、SM2からの次の期待されるメッセージ(READY(準備完了))が到着していない場合、SM1は、ABORT(中断)メッセージ(図示せず)を送信し、動作を中断し、SM2から受信する可能性があるいかなる後続メッセージも無視する。
4. SM1からのメッセージPREPAREの受信に応じて、セキュリティモニタSM2は、S303に示すように、SM1にREADYメッセージを送信する。SM2はまた、タイムアウトT2でタイマを開始する。タイマがタイムアウトに達し、SM1からの次の期待されるメッセージ(DATA)が到着していない場合、SM2は、ABORTメッセージ(図示せず)を送信し、動作を中断し、SM1から受信する可能性があるいかなる後続メッセージも無視する。
5. SM2からのメッセージREADYの受信に応じて、セキュリティモニタSM1は、転送されるべきエンクレーブのDRAMページならびにそのシールされたデータを復号するようにハードウェアをトリガする。次いで、復号されたデータは、キーKで暗号化される。結果として生じる暗号文は、S304に示すように、DATAメッセージにおいてSM2に送信される。SM1はまた、タイムアウトT3でタイマを開始する。タイマがタイムアウトに達し、SM2からの次の期待されるメッセージ(DONE(完了))が到着していない場合、SM1は、ABORTメッセージ(図示せず)を送信し、動作を中断し、SM2から受信する可能性があるいかなる後続メッセージも無視する。
6. SM1からのメッセージDATAの受信に応じて、セキュリティモニタSM2は、受信したデータを復号するためにキーKを使用し、エンクレーブのDRAMページおよびシールされたデータを展開するようにハードウェア暗号化ルーチンをトリガする。次に、SM2は、S305に示すように、メッセージDONEをSM1に送信し、マイグレーションプロトコルを終了する。
7. SM2からのメッセージDONEの受信に応じて、セキュリティモニタSM1は、転送されたばかりのエンクレーブのDRAMページおよびシールされたデータを除去し、マイグレーションプロトコルを終了する。
上記で説明したプロトコルが適切に機能するために、タイムアウトを測定するためにSM1上に信頼できる時間のソースが存在することが重要である。本発明の実施形態によれば、これは、チップ周波数発振器の出力を計数レジスタのセットに直接供給することによって実装され得る。この信号は、異なる周波数におけるCPUクロックが取得される分周器および乗算器に供給される信号と同じである。当業者によって理解されるように、これは、SMクロックがCPU周波数から独立しており、その周波数を変更することができないことを意味する。そのようなレジスタのセットは、SMによってのみ構成または読み出すことができ、例えば、マシンモードにおいて実行されていないプロセスによる他のアクセスは、ブロックされ、すなわち、OSもハイパーバイザも、十分な権限を持っていないので、レジスタのセットにアクセスすることができない。一実施形態によれば、レジスタのうちの1つは、CPUに電力が供給されている間、増加し続けるように構成され得るが、他のレジスタは、SMが通知されることを望むカウントの終わりに対応する値、すなわち、上記で例示的に説明した場合のタイムアウトT1およびT3(SM1用)ならびにタイムアウトT2(SM2用)でSMによって書き込まれ得る。例えば、それぞれのメッセージが時間通りに到着し、それぞれのタイマが不要になった場合、レジスタのカウントは、SMによって停止およびリセットすることができる。
さらなる実施形態によれば、敵対者がネットワークを制御することができる場合、マイグレーションプロトコルは、マイグレーションプロトコルのステータスに対して一貫した状態を維持することができるクラッシュ故障耐性(CFT)ストレージに依存し得、それによって、SM1およびSM2がアトミックマイグレーションを達成することを可能にする。より具体的には、本発明の実施形態は、他のセキュリティモニタのセットによって実行されるCFT層Lを提供し、セットは、SM1とSM2とを含む4つ以上のセキュリティモニタを含む。Lは、それらのモニタの1/2までが任意にビザンチンであり、交換されたメッセージが敵対者によって任意に遅延されることを許容することができる。ここでは、一実施形態によれば、マイグレーションプロトコルは、以下のように展開され得る(ここで、使用される用語は、図3のプロトコルに関連して使用されるものと同じである)。
1. SM1は、認証済みで、新しい、暗号化された「PREPARE SM2(準備SM2)」メッセージをLに送信する。これは、SM2が適切に動作しており、転送を受信する準備ができていることを確認するのに役立つ。
2. 「PREPARE SM2」メッセージの受信に応じて、SM2は、認証済みで、新しい、暗号化された「SM2 READY(SM2準備完了)」メッセージをLに返信する。これは、転送を受信する準備ができていることを示す。
3. 「SM2 READY」メッセージの受信に応じて、SM1は、キーKで暗号化されたDとMとをSM2に直接送信し、メッセージ「SENT from SM1(SM1から送信)」をLに送信する。
4. 最後のメッセージの受信に応じて、SM2は、DとMとを復号し、それらをローカルエンクレーブキーで再暗号化し、それらを永続的ストレージに記憶する。次いで、SM2は、認証済みで、新しい、暗号化された「SM2 DEPLOYED(SM2展開)」メッセージをLに送信する。
5. 「SM2 DEPLOYED」メッセージの受信に応じて、SM1は、そのエンクレーブを一時停止し、認証済みで、新しい、暗号化されたメッセージOKをLに送信する。
このプロトコルは、セキュリティモニタがクラッシュする場合、いつでもクラッシュする可能性があり、敵対者もネットワークを制御することができることを想定している。メッセージは、輻輳によりネットワーク内で遅延する可能性があるが、タイムアウトT以内に到着する可能性が高い。メッセージがタイムアウトT以内に到着しない場合、すべてのパーティは、送信ノードがクラッシュしたとみなし得る。プロトコルが完全に終了しない場合、SM1とSM2との両方のパーティは、マイグレーションプロセスを中断し、SM1は、マイグレートされるエンクレーブを実行し続けるデフォルトパーティとなる。この場合、SM1は、認証済みで、新しい、暗号化されたABORTメッセージをLに送信する。
要約すると、実施形態によれば、本発明は、エンクレーブのコンテンツおよびそのシールされたデータの機密性と完全性とを保持し、クローンの作成を回避して、異なるマシン間のエンクレーブのコンテンツおよびそのシールされたデータのライブマイグレーションを可能にする方法を提供し、方法は、以下のステップを含む。
1)送信側SM(130S)と受信側SM(130R)との間の構成証明、およびキー交換。
2)アトミック性を保証し、異なるタイムアウトを使用する事前定義された転送プロトコルに従う、メッセージおよびデータの送信。
a. 送信側と受信側との両方が準備できており、動作を実行できることを検証するために、いくつかのメッセージを交換する。
b. エンクレーブの実際のデータ(ランタイムおよびシールされたデータ)の転送。
基礎となるシステム/プラットフォームに応じて、方法は、以下のオプションによって強化され得る。
- クローンの最大数が開発者によって指定されるマニフェストファイルを含むように、Risc-V環境におけるエンクレーブアーキテクチャを変更する。
- 本発明のプロトコルに従ってデータの送信中にタイムアウトを設定するために、信頼できるタイマにセキュリティモニタへのアクセスを与える。
- エンクレーブをハードウェア管理キーで暗号化または復号することを可能にするために、ハードウェアロジックまたはソフトウェアモジュールのいずれかを用いてSMを強化する。
本明細書に記載された本発明の多くの変形例および他の実施形態は、前述の説明および関連する図面において提示された教示の利益を有する、本発明が関係する当業者に思い浮かぶであろう。したがって、本発明は、開示された特定の実施形態に限定されず、変形例および他の実施形態は、添付の特許請求の範囲内に含まれることが意図されることが理解されるべきである。本明細書では特定の用語が用いられているが、それらは、一般的かつ説明的な意味でのみ使用され、限定を目的とするものではない。
100 Risc-V命令セットシステム
110 エンクレーブ
120 信頼できるハードウェア
130 セキュリティモニタ(SM)
130R 受信ホスト上のセキュリティモニタ
130S 送信ホスト上のセキュリティモニタ
140 ハイパーバイザ
150 オペレーティングシステム(OS)
200 マシン
200R 受信ホスト
200S 送信ホスト
210 信頼できるタイマ
220 ハードウェア管理キー

Claims (15)

  1. 計算プラットフォームが実行する、エンクレーブのマイグレーションを可能にする方法であって、前記エンクレーブのコンテンツおよびそのシールされたデータが、送信ホスト(200S)である第1のマシンから受信ホスト(200R)である第2のマシンに転送され、前記方法が、
    前記送信ホスト(200S)のセキュリティモニタ(130S)と前記受信ホスト(200R)のセキュリティモニタ(130R)との間で、前記2つのセキュリティモニタ(130S、130R)間の共有暗号キーKの交換を含む、構成証明を実施するステップと、
    前記2つのセキュリティモニタ(130S、130R)間に安全な通信チャネルを実装するために、前記共有暗号キーKを使用するステップと、
    前記2つのセキュリティモニタ(130S、130R)によって、前記安全な通信チャネルを介して、所定の転送プロトコルを実行するステップであって、前記転送プロトコルが、
    両方のセキュリティモニタ(130S、130R)が準備できており、転送を実行できること、を検証するための、前記セキュリティモニタ(130S、130R)間の検証メッセージの初期交換と、
    前記セキュリティモニタ(130S、130R)間の前記エンクレーブのシールされたデータのその後の転送と
    を含む、ステップと
    を含む、方法。
  2. 前記転送プロトコルの特定のステップの最大許容持続時間を定義するタイムアウトが、前記検証メッセージの前記初期交換と前記エンクレーブのシールされたデータの前記その後の転送との両方について実装され、
    前記実装されたタイムアウトのいずれかを超えた場合、前記転送プロトコルが中断される、
    請求項1に記載の方法。
  3. 前記エンクレーブのシールされたデータの前記転送についての前記タイムアウトが、前記2つのセキュリティモニタ(130S、130R)間のネットワーク遅延と、他のパーティが前記転送プロトコルに従ってそれぞれの応答を準備するのに必要な時間と、許容マージンとを含むように定義される、請求項2に記載の方法。
  4. 前記セキュリティモニタ(130S、130R)間の検証メッセージの前記初期交換が、
    前記送信ホスト(200S)の前記セキュリティモニタ(130S)によって、前記受信ホスト(200R)の前記セキュリティモニタ(130R)に準備メッセージを送信するステップであって、前記準備メッセージが、転送されるべき前記エンクレーブのサイズを示す、ステップと、
    前記受信ホスト(200R)の前記セキュリティモニタ(130R)によって、前記準備メッセージに応答して、前記送信ホスト(200S)の前記セキュリティモニタ(130S)に準備完了メッセージを送信するステップであって、前記準備完了メッセージが、転送されるべき前記エンクレーブを前記セキュリティモニタ(130R)が受信する準備ができていることを示す、ステップと
    を含む、請求項1から3のいずれか一項に記載の方法。
  5. 前記セキュリティモニタ(130S、130R)間の前記エンクレーブのシールされたデータの前記その後の転送が、
    前記送信ホスト(200S)の前記セキュリティモニタ(130S)によって、転送されるべき前記エンクレーブに属する永続的ストレージ上に保存されたデータSおよびDRAMページのセットDを復号するステップと、
    前記共有暗号キーKを使用することによってDとSとを再暗号化するステップと、
    暗号化されたDおよびSを前記受信ホスト(200R)の前記セキュリティモニタ(130R)に送信するステップと
    を含む、請求項1に記載の方法。
  6. 前記セキュリティモニタ(130S、130R)によって、悪意のあるオペレーティングシステム(150)によってもたらされる時刻変更に対して保護された信頼できるクロックソースを用いて、前記実装されたタイムアウトを観察するステップをさらに含む、請求項2に記載の方法。
  7. 前記セキュリティモニタ(130S、130R)の各々のランタイムメモリ内で電力サイクルごとに上書きされる時間変数をインスタンス化するステップをさらに含む、請求項6に記載の方法。
  8. ホスト上で同時並行して実行することが許可されるアプリケーションインスタンスの最大数を含む構成情報を提供するマニフェストファイルでエンクレーブアプリケーションを拡張するステップをさらに含む、請求項1に記載の方法。
  9. クラッシュ故障耐性(CFT)ストレージを用いて前記転送プロトコルのステータスに対して一貫した状態を維持するステップをさらに含み、前記CFTストレージが、前記送信ホストおよび前記受信ホスト(200S、200R)の前記セキュリティモニタ(130S、130R)を含む3つ以上のセキュリティモニタのセットによって実行される、請求項1に記載の方法。
  10. 前記転送プロトコルが、前記送信ホスト(200S)のハイパーバイザ(140)の要求に応じて、前記送信ホスト(200S)の前記セキュリティモニタ(130S)によってトリガされる、請求項1に記載の方法。
  11. 前記共有暗号キーKから、前記安全な通信チャネルを介する通信を認証するために使用される第1の暗号キーと、前記安全な通信チャネルを介する通信を暗号化するために使用される第2の暗号キーとを導出するステップをさらに含む、請求項1に記載の方法。
  12. 計算プラットフォームであって、前記プラットフォームが、
    オペレーティングシステム(150)と、
    ハードウェア構成要素(120)と、
    アプリケーションが前記プラットフォーム上で実行される他のソフトウェアから分離して実行されることを可能にするエンクレーブ(110)であって、前記エンクレーブのコンテンツへのアクセス制御が前記ハードウェア構成要素(120)によって保護される、エンクレーブ(110)と、
    前記ハードウェア構成要素(120)の上に実装され、前記エンクレーブ(110)の管理およびオーケストレーションを実行するように構成されたセキュリティモニタ(130S)と
    を備え、前記セキュリティモニタ(130S)が、さらに、
    受信ホスト(200R)のセキュリティモニタ(130R)で構成証明を実施し、前記受信ホスト(200R)の前記セキュリティモニタ(130R)と共有暗号キーKを交換することと、
    前記受信ホスト(200R)の前記セキュリティモニタ(130R)との安全な通信チャネルを実装するために、前記共有暗号キーKを使用することと、
    前記安全な通信チャネルを介して、前記受信ホスト(200R)の前記セキュリティモニタ(130R)で所定の転送プロトコルを実行することと
    を行うように構成され、前記転送プロトコルが、
    両方のセキュリティモニタ(130S、130R)が準備できており、転送を実行できること、を検証するための、前記セキュリティモニタ(130S、130R)間の検証メッセージの初期交換と、
    前記セキュリティモニタ(130S、130R)間の前記エンクレーブのシールされたデータのその後の転送とを含む、
    プラットフォーム。
  13. 前記セキュリティモニタ(130S)が、前記ハードウェア構成要素(120)内に実装された信頼できるタイマ(210)への直接アクセスによって強化される、請求項12に記載のプラットフォーム。
  14. 電力サイクルごとに上書きされる時間変数が、前記セキュリティモニタ(130S)のランタイムメモリ内でインスタンス化される、請求項13に記載のプラットフォーム。
  15. 前記セキュリティモニタ(130S)が、
    前記プラットフォーム上に展開されたそれぞれの前記アプリケーションのインスタンスの数を追跡するアプリケーションごとのカウンタを保持することと、
    実行中の前記インスタンスの数がそれぞれの前記アプリケーションのマニフェストファイルにおいて定義されたしきい値に達した場合、前記オペレーティングシステム(150)からの新しいインスタンスを展開する要求を拒否することと
    を行うようにさらに構成された、請求項12から14のいずれか一項に記載のプラットフォーム。
JP2024525474A 2021-10-27 2021-10-27 安全なエンクレーブマイグレーションのための方法およびホストシステム Active JP7829829B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/079884 WO2023072390A1 (en) 2021-10-27 2021-10-27 Method and host system for secure enclave migration

Publications (2)

Publication Number Publication Date
JP2024540128A JP2024540128A (ja) 2024-10-31
JP7829829B2 true JP7829829B2 (ja) 2026-03-16

Family

ID=78528910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024525474A Active JP7829829B2 (ja) 2021-10-27 2021-10-27 安全なエンクレーブマイグレーションのための方法およびホストシステム

Country Status (3)

Country Link
US (1) US20250007897A1 (ja)
JP (1) JP7829829B2 (ja)
WO (1) WO2023072390A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119317918A (zh) * 2023-05-11 2025-01-14 谷歌有限责任公司 密封认证云存储和密钥管理服务原语
US12621142B2 (en) * 2023-09-27 2026-05-05 Agentic Healthcare, Inc. System and method for privately hosting machine learning models and collaborative computations

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257209A (ja) 2009-04-24 2010-11-11 Fujitsu Ltd バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法
US20190377598A1 (en) 2017-02-23 2019-12-12 Huawei Technologies Co., Ltd. Data migration method and apparatus
JP2020505701A (ja) 2017-01-24 2020-02-20 マイクロソフト テクノロジー ライセンシング,エルエルシー 抽象エンクレーブアイデンティティ
JP2020505698A (ja) 2017-01-24 2020-02-20 マイクロソフト テクノロジー ライセンシング,エルエルシー 密封エンクレーブを用いたデータ開封
US20210019166A1 (en) 2019-07-19 2021-01-21 Vmware, Inc. Supporting migration of virtual machines containing enclaves

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10338957B2 (en) * 2016-12-27 2019-07-02 Intel Corporation Provisioning keys for virtual machine secure enclaves
US10911451B2 (en) * 2017-01-24 2021-02-02 Microsoft Technology Licensing, Llc Cross-platform enclave data sealing
CN108306740B (zh) * 2018-01-22 2020-07-31 华中科技大学 一种Intel SGX状态一致保护方法和系统
US11126699B2 (en) * 2018-02-07 2021-09-21 Nec Corporation Replica trusted execution environment: enabling seamless replication of trusted execution environment (TEE)-based enclaves in the cloud
CN110618847A (zh) * 2018-06-20 2019-12-27 华为技术有限公司 一种用户界面的显示方法和终端设备
US11366934B2 (en) * 2018-11-13 2022-06-21 Samsung Electronics Co., Ltd. System and method for anti-rollback
US11614956B2 (en) * 2019-12-06 2023-03-28 Red Hat, Inc. Multicast live migration for encrypted virtual machines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257209A (ja) 2009-04-24 2010-11-11 Fujitsu Ltd バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法
JP2020505701A (ja) 2017-01-24 2020-02-20 マイクロソフト テクノロジー ライセンシング,エルエルシー 抽象エンクレーブアイデンティティ
JP2020505698A (ja) 2017-01-24 2020-02-20 マイクロソフト テクノロジー ライセンシング,エルエルシー 密封エンクレーブを用いたデータ開封
US20190377598A1 (en) 2017-02-23 2019-12-12 Huawei Technologies Co., Ltd. Data migration method and apparatus
US20210019166A1 (en) 2019-07-19 2021-01-21 Vmware, Inc. Supporting migration of virtual machines containing enclaves

Also Published As

Publication number Publication date
JP2024540128A (ja) 2024-10-31
WO2023072390A1 (en) 2023-05-04
US20250007897A1 (en) 2025-01-02

Similar Documents

Publication Publication Date Title
EP3937424B1 (en) Blockchain data processing methods and apparatuses based on cloud computing
CN109858265B (zh) 一种加密方法、装置及相关设备
US10530777B2 (en) Data unsealing with a sealing enclave
US11438155B2 (en) Key vault enclave
US10931652B2 (en) Data sealing with a sealing enclave
Chen et al. {cTPM}: A cloud {TPM} for {Cross-Device} trusted applications
US9768951B2 (en) Symmetric keying and chain of trust
JP7009393B2 (ja) ハードウェアーベースのセキュアーな分離された領域を使用して電子デバイス上での著作権侵害および不正行為を防止すること
JP2019516294A (ja) 仮想化環境においてネットワークトラフィックを解読するためのシステムおよび方法
US20180211035A1 (en) Abstract enclave identity
KR20160129852A (ko) 장치 간 신뢰 애플리케이션을 위한 보안 하드웨어
Nguyen et al. LogSafe: Secure and scalable data logger for IoT devices
CN113961939B (zh) 嵌入式操作系统安全的防护方法和系统
CN116170440A (zh) 一种基于可信执行环境的隐私交易保护方法及区块链系统
Kurnikov et al. Keys in the clouds: auditable multi-device access to cryptographic credentials
JP2024540128A (ja) 安全なエンクレーブマイグレーションのための方法およびホストシステム
CN107077568B (zh) 对称密钥和信任链
WO2023019964A1 (zh) 一种数据安全处理方法和装置
CN116915433B (zh) 被配置用于支持多执行环境的密码保护通信的网络设备
WO2018028359A1 (zh) 业务处理方法、装置、存储介质及电子装置
Boubakri et al. Architectural security and trust foundation for RISC-V
CN121585469B (zh) 实现可信平台模块功能的数据处理方法和电子设备
CN115529194B (zh) 一种数据管理方法、系统、设备和存储介质
Okan Lynxtun
CN121690550A (zh) 虚拟化环境下密钥存储空间与io通道隔离方法及系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240627

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20251022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20251028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251219

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: 20260106

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20260205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20260206

R150 Certificate of patent or registration of utility model

Ref document number: 7829829

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150