JP2021523494A - 産業用pcデバイスの動作方法及び産業用pcデバイス - Google Patents

産業用pcデバイスの動作方法及び産業用pcデバイス Download PDF

Info

Publication number
JP2021523494A
JP2021523494A JP2021500275A JP2021500275A JP2021523494A JP 2021523494 A JP2021523494 A JP 2021523494A JP 2021500275 A JP2021500275 A JP 2021500275A JP 2021500275 A JP2021500275 A JP 2021500275A JP 2021523494 A JP2021523494 A JP 2021523494A
Authority
JP
Japan
Prior art keywords
rtos
application program
gpos
binary code
section
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.)
Granted
Application number
JP2021500275A
Other languages
English (en)
Other versions
JP7044201B2 (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Publication of JP2021523494A publication Critical patent/JP2021523494A/ja
Application granted granted Critical
Publication of JP7044201B2 publication Critical patent/JP7044201B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

産業用PC(IPC)デバイス(1)の動作方法であって、IPCデバイス(1)が、汎用オペレーティングシステム(GPOS)下でプログラムコードを実行するよう実装されたGPOSセクション(2)と、リアルタオペレーティングシステム(RTOS)下でのリアルタイムデータ処理に適合されたプログラムコードを実行するよう実装されたRTOSセクション(3)とを含み、方法が、RTOS下で実行されるよう設計されたバイナリコード(BC)を含むアプリケーションプログラム(RAP)とセキュリティーポリシーとに基づく、ラップされたアプリケーションプログラム(WRAP)を提供すること(S1)と、検証されたアプリケーションプログラムを取得するため、RTOSプロセスにより、セキュリティポリシーに従い、ラップされたアプリケーションプログラム(WRAP)を検証すること(S2)と、検証されたアプリケーションプログラムのバイナリコード(BC)とセキュリティ要素(SE)とを、RTOSプロセスからGPOSプロセスへ転送すること(S3)と、セキュリティ要素(SE)を用いて、GPOSプロセスとRTOSセクションとの間のセキュア通信チャネル(12)を確立すること(S4)と、GPOSプロセスにより、検証されたアプリケーションプログラムのバイナリコード(BC)を実行することというステップを含む。
【選択図】 図1

Description

本発明はコンピュータの動作方法及びコンピュータに関し、具体的には、自動化ネットワーク又はシステムに関連する産業目的を意図している。
産業目的のコンピュータシステムは度々、プロセス制御及び/又はデータ取得といった特別な機能を満たす必要がある。時には、パーソナルコンピュータ(PC)デバイスが産業用PC(IPC)として用いられる。IPCは、ネットトップやサーバラックといった特定のフォームファクタを採用してよい。一般的に、最新のPC技術に基づき、IPCにおいて既製のオペレーティングシステム(OS)を使用することが望ましい。過去には、汎用オペレーティングシステム(GPOS)とリアルタイムオペレーティングシステム(RTOS)の仮想化されたセクションを有するIPCが用いられている。独立して稼働するGPOSとRTOSセクションは、そのとき同一のハードウェアを共有し、リソースはハイパーバイザ又は仮想マシンモニタ(VMM)により管理される。
様々な仮想化されたOSセクション間でデータ交換するため、共有メモリ概念が提案された。例えば、EP 3 267 649 A1は、RTOS及びGPOSセクション間のセキュアな通信を実行するための方法及び産業用演算装置を開示している。更に、ときには、特定のインターフェイス又はデータ転送を要する特定のオペレーティングシステム下で稼働するよう設計されたアプリケーションを用いることが望ましい。
自動化システム又は自動化ネットワークの文脈において、フィールド機器を制御するためのアプリケーションは、オペレーティングシステムの、最小の割り込みレイテンシー、最小のバッファリング遅延、最小のスレッド切替えレイテンシーを要する。故に、自動化システム固有ソフトウェアは、大抵はリアルタイムオペレーティングシステム条件下で実行されるよう実装される。更に、RTOSは、特に、入ってきたアプリケーションデータをバッファリング遅延なしに処理する。一方、IPCは、Apple OS、Microsoft Windows、又はUNIX(登録商標)の派生といった汎用オペレーティングシステムを稼働するよう、効率的に製造及び実装されることができる。
故に、様々なオペレーティングシステムセクション間のデータ転送が関係するIPCデバイスをセキュアに動作することが望まれる。自動化ネットワークにアクセスするため、リアルタイムオペレーティングシステム固有のポートにアクセス可能とすることが特に望まれる。RTOSポートは、フィールド機器から/へ、制御及び/又はセンサデータを、受信及び送信しうる。
このため、本発明の目的は、様々なオペレーティングシステムセクションを稼働する産業用PCの改善された動作方法、及び対応するIPCデバイスを提供することである。
従って、IPCデバイスの動作動作方法、汎用オペレーティングシステム(GPOS)下でプログラムコードを実行するよう実装されたGPOSセクションと、リアルタイムオペレーティングシステム(RTOS)下でのリアルタイムデータ処理に適合されたプログラムコードを実行するよう実装されたRTOSセクションとを含む、IPCデバイスが提供される。
該方法は、
RTOS下で実行されるよう設計されたバイナリコードを含むアプリケーションプログラムと、セキュリティポリシーとに基づき、ラップされたアプリケーションプログラムを提供することと、
検証されたアプリケーションプログラムを取得するため、RTOSプロセスにより、セキュリティポリシーに従い、ラップされたアプリケーションプログラムを検証することと、
RTOSプロセスからGPOSプロセスへ、検証されたアプリケーションプログラムのバイナリコードと、セキュリティ要素とを転送することと、
セキュリティ要素を用いて、GPOSプロセスとRTOSセクションとの間のセキュア通信チャネルを確立することと、
GPOSプロセスにより、検証されたアプリケーションプログラムのバイナリコードを実行すること
というステップを含む。
もう1つの様態によると、産業用PC(IPC)デバイスは、
GPOS下でプログラムコードを実行するよう実装された、GPOSセクションと、
RTOS下でのリアルタイムデータ処理に適合されたプログラムコードを実行するよう実装された、RTOSセクションと、
ホストマシンとしてのIPCデバイス上で、ゲストマシンとしてのGPOSとRTOSの実行を管理するよう実装された、ハイパーバイザセクションと
を含み、
IPCデバイスは、
検証されたアプリケーションプログラムを取得するため、RTOSプロセスにより、アプリケーションプログラムに指定されたセキュリティポリシーに従い、ラップされたアプリケーションプログラムを検証することであって、ラップされたアプリケーションプログラムが、RTOS下で実行されるよう設計されたバイナリコードを含むアプリケーションプログラムをラップすることと、指定されたセキュリティポリシーを適用することとにより取得されることと、
RTOSプロセスからGPOSプロセスへ、検証されたアプリケーションプログラムのバイナリコード(BC)と、セキュリティー要素とを転送することと、
セキュリティ要素を用いて。GPOSプロセスとRTOSセクションとの間のセキュア通信チャネルを確立することと、
GPOSプロセスにより、検証されたアプリケーションプログラムのバイナリコード(BC)を実行することと
を行うよう実装される。
別の様態によると、産業用PC(IPC)デバイスの動作方法が提供され、IPCデバイスは、
汎用オペレーティングシステム(GPOS)下でプログラムコードを実行するよう実装された、GPOSセクションと、
リアルタイムオペレーティングシステム(RTOS)下でのリアルタイムデータ処理に適合されたプログラムコードを実行するよう実装された、RTOSセクションと
を含む。
そして、方法は、
RTOS下で実行されるよう設計されたバイナリコードを含むアプリケーションプログラムを提供することと、
ラップされたアプリケーションプログラムを生成するため、アプリケーションプログラムをラップし、これにより、アプリケーションプログラムにセキュリティポリシーを適用することと、
検証されたアプリケーションプログラムを取得するため、RTOSプロセスを介し、セキュリティポリシーに従い、ラップされたアプリケーションプログラムを検証することと、
RTOSプロセスからGPOSプロセスへ、検証されたアプリケーションプログラムのバイナリコードと、セキュリティ要素とを転送することと、
セキュリティ要素を用いて、GPOSプロセスとRTOSセクションとの間のセキュア通信チャネルを確立することと、
GPOSプロセスを介し、検証されたアプリケーションプログラムのバイナリコードを実行すること
というステップを含む
本発明の更なる様態は、リアルタイムオペレーティングシステム(RTOS)下でリアルタイムデータ処理に適合されたプログラムコードを実行するための方法に関する。
方法は、
RTOS下で実行されるよう設計されたバイナリコードを含むアプリケーションプログラムと、セキュリティーポリシーとに基づく、ラップされたアプリケーションプログラムを受け取ることと、
検証されたアプリケーションプログラムを取得するため、RTOSプロセスにより、セキュリティポリシーに従い、ラップされたアプリケーションプログラムを検証することと、
RTOSプロセスからGPOSプロセスへ、検証されたアプリケーションプログラムのバイナリコードと、セキュリティ要素とを転送することと、
セキュリティ要素を用いて、GPOSプロセスとRTOSセクションとの間のセキュア通信チャネルを確立することと、
GPOSプロセスにより、検証されたアプリケーションプログラムのバイナリコードを実行すること
というステップを含む。
開示されるIPCデバイスの動作方法及び/又は開示されるIPCデバイスにおいて、GPOSは、リアルタイムデータ処理能力を必ずしも有するわけではないオペレーティングシステムを指す。RTOSセクションと比較し、IPCデバイスにおけるGPOSセクションは、アプリケーションプロセスデータが入る又は生成されるとき、より大きなバッファリング遅延を有してよい。RTOS又はRTOSセクションは特に、GPOSセクションと比較し、低い割り込みレイテンシー及び低いスレッド切替えレイテンシーを提供するよう実装され、例えばPOSIX又は他の利用可能なリアルタイムOSをRTOSとして用いることができる。
ラップされたアプリケーションプログラムは、アプリケーションラッピング処理又はappラッピング処理の結果である。appラッピング処理において、管理レイヤ―が、基となるアプリケーションに変更を適用せずに、アプリケーションに適用される。例えば、アプリケーションは、アプリケーションに特定のポリシー要素を設定することによりラップされることができる。ポリシー要素は、ラップされたappの認証を要するセキュリティポリシーであることができ、又は、アプリケーションに電子署名が加えられてよい。具体的には、アプリケーションのラッピングは、管理者に、アプリケーション、アプリケーションに関連づく追加的なセキュリティ、及びアプリケーションに伴う管理機能を取得し、次いでラップされたアプリケーションを、配布される単一のコンテナ化されたプログラムとして再配備することを可能とする。ラップされたアプリケーションは、ポリシー要素を定義する特定の販売元により配布されることができる。
具体的には、アプリケーションを実行する産業用PCの開示される動作方法は、
RTOS下で実行されるよう設計されたバイナリコードを含むアプリケーションプログラムを提供することと、
ラップされたアプリケーションプログラムを生成するため、アプリケーションプログラムをラップし、これにより、アプリケーションプログラムにセキュリティポリシーを適用すること
というステップを含むことができる。
セキュリティポリシーとアプリケーションプログラムの実行可能なコード(バイナリコード)は、ラップされたアプリケーションの一部である。セキュリティポリシーは、産業用PC、GPOS、RTOS環境、又はアプリケーションにとって何がセキュアであると見なされるかの定義を含んでよい。例えば、セキュリティポリシーは、特定のセキュリティレベルを用いたラップされたアプリケーションの認証を要してよい。セキュリティレベルは、ラップされたアプリケーションプログラムを認証するための証明書又は暗号署名、又はその他のメカニズムにより決定されることができる。セキュリティポリシーは、ソフトウェアの発行者又はアプリケーションの販売元の信頼できる識別子を指してもよい。実施形態において、セキュリティポリシーは、ラップされたアプリケーションが、バイナリコードの暗号化されたバージョン、及び/又は、例えば販売元又はベンダーとして、アプリケーションの出処を識別するための証明書を含むことを要する。
RTOS下で実行されるよう実装されたバイナリコードを有する、基となるアプリケーションプログラムは、RTOSの以前のバージョン上、又は、古い又は旧式のハードウェアデバイス上で稼働するよう設計された、レガシーアプリケーションでありうる。アプリケーションプログラムの実際のバイナリコードはまだ動作できるが、現在のオペレーティングシステム又は必要とされるセキュリティレベルとの互換性の問題を起こす可能性がある。具体的には、RTOSセクションは、フィールド機器との間の制御データ及びセンサデータの生成及び/又は交換を管理する機械制御ソフトウェアへのアクセスを許可する保護された領域であることができる。一般的に、GPOSセクションはそのようなアクセスを許可されるべきでない。故に、従来のシステムにおいて、RTOSセクション下で実行されるよう設計されたレガシーアプリケーションプログラムは、GPOSコンテキストにおいて実行されることはできない。
開示される実施形態において、バイナリコードはセキュリティポリシーに従い検証され、例えばRTOSプロセスにおけるRTOS下での認証処理に関連する。アプリケーションプログラムが検証された場合、検証されたアプリケーションプログラムの実行可能なバイナリコードとセキュリティ要素とが、セキュリティ要素と共にGPOSプロセスへ送られる。
アプリケーションプログラムが検証されることができない又は検証が失敗した場合、セキュア通信チャネルへのアクセスがブロックされることができる、及び/又は、バイナリコードの実行が防止される。
セキュリティ要素は、GPOSプロセスとRTOSセクションとの間のセキュア通信チャネルの確立を可能とする。例えば、セキュリティ要素は、セキュリティドングル、ナンス、証明書、暗号鍵等を含むことができる。当初はRTOS下で実行されるよう実装されたバイナリコードが、GPPOSプロセスにおいて検証されたアプリケーションプログラムとして用いることができることは、開示される方法及びデバイスの利点である。具体的には、GPOSプロセス下で稼働する検証されたアプリケーションプログラムから生成又は受け散られたアプリケーションデータは、セキュア通信チャネルを介し転送されることができる。セキュア通信チャネルは、具体的には暗号化されたデータを用いた通信トンネルである。
このため、方法の実施形態において、検証されたアプリケーションプログラムのバイナリコードを実行するGPOSプロセスへの及び/又はGPOSプロセスからのアプリケーションデータは、セキュア通信チャネルを介し転送される。
実施形態において、方法は、セキュア通信チャネル内で、RTOS下で実行されるよう設計されたアプリケーションにより要求されるセキュアでない通信プロトコルをエミュレートすることを更に含む。
例えば、RTOSのためのレガシーアプリケーションは、特定のプロトコルに基づき、自動化フィールド機器との間のアプリケーションデータ転送を要する可能性がある。例えば、レガシーソフトウェアとして実装されたデータベースクライアント、又は、レガシーアプリケーションにより採用された接続規格は、GPOS環境においてセキュアとは見なされない。実施形態において、セキュアでない通信プロトコルが、フィールド機器及び/又はセンサデバイスといった自動化設備とホスト工場ネットワークとの間の通信のための接続規格である。レガシーアプリケーションは、RTOS下で稼働するよう設計された機械制御アプリケーションであることができる。SECS/GEM標準を考慮することができる。
結果として、例えば、GPOSにより提供されるソフトウェアサービス下で稼働する、バイナリコードは、RTOS固有通信プロトコルを用いることができ、ここで、アプリケーションデータはセキュア通信チャネルを介しトンネルされる。
例えばレガシーソフトウェア又はレガシーアプリケーションの用語「レガシー」は、RTOS環境において用いられるよう設計され、例えばセキュリティ上の理由により、それらの全機能は意図されたRTOS環境以外の環境において配備されるべきでない要素を指す。
実施形態において、セキュリティポリシーは、少なくとも、アプリケーションプログラムのバイナリコードを暗号化することと、暗号署名を加えることと、バイナリコードに暗号化証明書を加えることと、暗号化されたバイナリコードに暗号署名又は暗号化証明書を加えることとを含む。
バイナリコードを暗号化すること、又は、バイナリコード又はアプリケーションプログラムに署名することは、RTOSセクション内でラップされたアプリケーションプログラムを認証することを可能とする。例えば、RTOS境界プロセスが、暗号又はコードに付された署名をチェックすることによりアプリケーションプログラムを認証又は検証するために用いるられることができる。
実施形態において、セキュリティポリシーがラップされたアプリケーションプログラムのバイナリコードに適用され、方法は、
ラップされたアプリケーションプログラムのラッピングを外し、これによりセキュリティポリシーが適用されるアプリケーションプログラムのバイナリコードを抽出することと、
検証されたバイナリコードを取得するため、セキュリティポリシーに従い、RTOSプロセスにより、抽出されたバイナリコードを検証することと、
GPOSプロセスにより、検証されたバイナリコードを実行することと
を更に含む。
例えば、RTOSのために設計されたレガシーバイナリコードは、そのときGPOSセクションにおいて実装されたソフトウェアサービス下でまだ稼働できる。次いで、RTOSプロセス、例えば境界プロセスは、バイナリコードの署名をチェックする、又は、バイナリコードに付された証明書が特定の証明書と符合するか、信頼できる発行者からのものかをチェックする。
ラッピングを外す処理はRTOSプロセスにより実行されることが好ましく、その結果、ラップされたアプリケーションプログラムに含まれるバイナリコードを検証するため、RTOS境界プロセスにより、例えば、証明書が評価される。故に、検証は、ラップされたアプリケーションから抽出されたラッピングを外されたバイナリコードを転送することなく生じることができる。
方法の実施形態において、ラップされたアプリケーションプログラム及び/又は抽出されたバイナリコードの検証は、セキュリティ証明書に基づく認証、及び/又は、暗号鍵を用いた復号化を含む。セキュリティポリシーがセキュリティ証明書による認証を要する場合、RTOSプロセスはセキュリティ証明書の有効性をチェックする。別のアプローチにおいて、バイナリコードは暗号化されることができ、ここで、RTOSプロセスはバイナリコードを複号するため暗号鍵を用いる。
方法の実施形態において、セキュリティ要素は、検証されたアプリケーションプログラム又は検証されたバイナリコードに一意に指定される。
セキュリティ要素は、具体的には、セキュリティトークン、セキュリティ証明書、及び/又は暗号署名である。セキュリティ要素は1つの要素であり、セキュア通信チャネルにおけるセキュア通信を可能とする。例えば、RTOSセクションとGPOSセクションとの間のセキュア通信チャネルは、暗号化トンネルに基づくことができる。暗号化トンネリングプロトコルは、1つのエンティティから他へのデータのセキュアな移動を可能とする。本発明において、セキュア通信チャネルは、トンネリングプロトコルに基づき実装されることが好ましい。実施形態のトンネリングプロトコルは、SSHアルゴリズムに基づき、具体的にはTLSプロトコルに基づく。
方法の実施形態において、次のステップが実行される:
GPOSプロセスへの転送前に、検証されたアプリケーションプログラム又は検証されたバイナリコードに、セキュリティ要素としてセキュリティ証明書を付すことと、
検証されたアプリケーションのバイナリコード又は検証されたバイナリコードを実行するGPOSプロセス、及び/又は、RTOSプロセスにより、付されたセキュリティ証明書の機能として、セキュア通信チャネルを介したRTOSセクションへのアクセスを許可すること。
実施形態において、RTOS下で実行されるよう設計されたアプリケーションプログラムのバイナリコードは、Javaコード又は.NETコードを含む。例えば、レガシーアプリケーションは、ときには、自動化ネットワークのセキュア環境内でRTOSソフトウェアサービスにより実行されるJavaコードで実装されている。GPOS及びRTOSセクションを仮想化ゲストマシンとして有するIPCデバイスを使用するとき、レガシーJava及び/又は.NETコードは、Javaエンジンを有するGPOSセクションを用いて実行されることができる。結果として、GPOSゲストマシンは、例えばJavaコードとして実装された、レガシー制御ソフトウェアを実行するために用いられることができ、ここで、アプリケーションデータは、RTOSセクションへ及び/又はRTOSセクションから、セキュア通信チャネルを介しセキュアに交換される。これは、RTOSセクションが自動化システムにおけるフィールド機器を制御するためのマシンコントローラアプリケーションを含むとき、特別な利点である。マシンコントローラアプリケーションは、マシン自動化コントローラデバイスの設定、プログラミング、デバッグ、及びメンテナンスを実装してよい。例えば、これら機能は、開示される方法及びデバイスを採用するGPOSセクションへ転送されてよい。
IPCデバイスの実施形態において、GPOSセクションとRTOSセクションとの間でリクエスト、バイナリコード、及び/又はセキュリティ要素を交換するためのソフトウェアバスを提供するため、ハイパーバイザセクションが実装される。そのようなソフトウェアバスサービスは、ラップされたアプリケーションプログラム、バイナリコードを交換するため、そしてセキュア通信チャネルを確立するために用いられることができる。ソフトウェアバスは他の機能も実行してよい。一般的に、ハイパーバイザセクションは、GPOS及びRTOSセクションに、プロセッサ又はプロセッサコアといったハードウェアリソースを割り当てるために実装されてよい。ハイパーバイザは、仮想マシンモニタ(VMM)とも呼ばれる。
実施形態において、IPCデバイスは、所定の通信プロトコルに従い自動化システム内のフィールド機器と通信可能に連接するための少なくとも1つのポートを含む。通信プロトコルは、例えば、EtherCAT又はEtherNet/IPであることができる。他の実施形態において、シーメンスPROFINET標準が、RTOSセクションにおけるマシンコントローラアプリケーションとの間の通信プロトコルとして用いられることができる。
更なる実施形態によると、方法は、
複数のラップされたアプリケーションプログラムを提供することであって、各ラップされたアプリケーションプログラムが、RTOS下で実行されるよう設計された各々のバイナリコードを含む各々のアプリケーションプログラムと、各々のアプリケーションプログラムに指定されたセキュリティポリシーに基づき生成されることと、
複数の検証されたアプリケーションプログラムを取得するため、各々のRTOSプロセスにより、各々に指定されたセキュリティポリシーに従い、各複数のラップされたアプリケーションプログラムを検証することと、
各々のRTOSプロセスから各々のGPOSプロセスへ、複数の検証されたアプリケーションプログラムの複数のバイナリコードを転送することであって、検証されたアプリケーションプログラムの各バイナリコードに各々のセキュリティ要素が指定されることと、
各々のGPOSプロセスにより、検証されたアプリケーションプログラムのバイナリコードを実行することであって、検証されたアプリケーションプログラムの各々のバイナリコードを実行する各々のGPOSセクションへの及び/又は各々のGPOSセクションからのアプリケーションデータは、同一のセキュア通信チャネルを介し転送されること
というステップを含む。
具体的には、IPCは、検証されたアプリケーションプログラムを互いに並行して実行するよう実装されてよい。例えば、各アプリケーションプログラムは、ラップされ、このため各々に指定されたセキュリティポリシーを有する、レガシーアプリケーションプログラムである。各ラップされたアプリケーションプログラムは、指定されたセキュリティポリシーを用いて、互いに独立して検証されることができる。セキュリティポリシーは、例えば、各々のアプリケーションプログラムを認証するための暗号化又は暗号化証明書であることができる。RTOSプロセス、例えばRTOS境界プロセスがアプリケーションプログラムを認証又は検証する場合、バイナリコードは実行のためGPOSプロセスへ返される。
実施形態において、各検証されたアプリケーションプログラムへ、特定のトークン又はセキュリティ要素が指定される。例えば、複数のラップされたアプリケーションプログラムのうちの1つの検証が失敗した場合、バイナリコードがGPOSに返されない、及び/又は、RTOSによりセキュリティトークン又はセキュリティ要素が提供されず、検証されていないアプリケーションプログラムはGPOSにより実行されない。
或いは、又は追加的に、RTOSプロセスにより検証されていない、GPOSにより実行されるアプリケーションプログラム又はバイナリコードは、セキュア通信チャネルを用いることを防止される。
実施形態において、GPOSセクションとRTOSセクションとの間には、1つの通信チャネルのみが確立される。このため、検証されたレガシーアプリケーションは、同時にセキュア通信チャネルを使用できる。
実施形態において、異なるアプリケーションプログラム又はバイナリコードには異なるセキュリティ要素が指定される。セキュリティ要素は、例えば、異なる権限を指定する証明書であることができ、特に自動化ネットワークと連接するRTOSセクションのポートに関係する。
本発明は、RTOSデバイスにおいて用いられることを意図されたレガシーアプリケーションの、GPOS環境における使用を可能にする。産業用PCは同時に、セキュア通信を保証し、アプリケーションデータが、RTOS(境界)プロセスによるレガシーソフトウェアのアクセス許可又は検証のうえでGPOSとRTOSとの間でセキュアに転送されるため、セキュリティ違反を防止する。
更なる様態によると、本発明は、少なくとも1つのコンピュータ上で稼働するとき、上述したIPCによる方法を実行するためのプログラムコードを含む、コンピュータプログラム製品に関する。コンピュータプログラム手段といった、コンピュータプログラム製品は、メモリカード、USBスティック、CD−ROM、DVDとして、又は、ネットワーク内のサーバからダウンロードされてよいファイルとして、埋め込まれてよい。例えば、そのようなファイルは、無線通信ネットワークから、コンピュータプログラム製品を含むファイルを転送することにより提供されてよい。
装置、即ち本発明のIPCデバイスを参照し説明される実施形態及び特徴は、IPCデバイスの動作方法に準用され、その逆も同様である。
本発明の更なる可能な実装又は代替的解決は、実施形態に関し上記又は下記に説明される特徴の組み合わせ―ここでは明示的に言及されない―をも包含する。当業者は、本発明の最も基本的な形態に、個々の又は孤立した態様と特徴を加えてもよい。
本発明の更なる実施形態、特徴、利点は、添付の図面と併せ、後続の説明及び従属請求項から明らかになるであろう。
産業用コンピュータデバイスの第1の実施形態の概略図を示す。 産業用PCデバイスの動作方法の第1の実施形態の方法ステップが関係する処理フローを示す。 産業用PCデバイスの1つの実施形態が関係する自動化システムの1つの実施形態の概略図を示す。 産業用PCデバイスの動作方法の第2の実施形態の方法ステップが関係する処理フローを示す。 産業用コンピュータデバイスの第3の実施形態の概略図を示す。 図面において、具体的に明示しない限り、同様の符号は同様又は機能的に均等である要素を示す。
図1は、産業用コンピュータデバイスの第1の実施形態の概略図を示す。IPCデバイス1は、産業用自動化システム用に意図されており、共に独立して動作するいくつかのPC技術の様態が含まれる。汎用オペレーティングシステムセクション2とリアルタイムオペレーティングシステムセクション3は、ホストとしてのIPCデバイス1上で、ゲストマシンとして互いに独立して稼働する。コンピュータソフトウェア、ファームウェア、又はハードウェアとして実装されることのできるハイパーバイザ8は、仮想マシン、即ちGPOSセクション2とRTOSセクション3とを作成及び稼働する。ハイパーバイザ8又は仮想マシンモニタは、ゲストオペレーティングシステムGPOS及びRTOSの実行を管理する。IPCデバイス1は、プロセッサ4及びプロセッサコア5、6、7といった、いくつかのハードウェアリソースを提供する。このため、ハイパーバイザ8は、IPCデバイス1の仮想化されたハードウェアリソースをゲストオペレーティングシステムに提供する。
ハイパーバイザ8により管理されるソフトウェアバスとして実装される通信手段9は、オペレーティングシステムセクション2、3間のデータ交換を可能とする。汎用オペレーティングシステムは、例えば、Microsoft Windowsオペレーティングシステムであることができる。Apple OS又はUnix(登録商標)の派生といった他のオペレーティングシステムも考慮できる。
RTOSセクション3は、リアルタイム機能を有するオペレーティングシステムに基づく。具体的には、RTOSは、入ってくる又は出ていくデータをバッファリング遅延なしに処理するよう実装される。例えば、RTOSは、一方で産業用自動化システム内のフィールド機器から制御データ又はセンサデータCDOを受け取り、他方で制御データCDIを生成する。データCDOとCDIは、EtherCAT又はProfinetといった、自動化ネットワークバスシステムを介し転送されることができる。
RTOSは、具体的には、フィールド機器又は専用マシンコントローラのハードウェア又はソフトウェアとして実装されている可能性がある既存のレガシーシステムと互換性がある。度々、RTOS下で稼働するよう設計されたアプリケーションは、GPOSを用いて試験又は改変できる。いくつかの例において、RTOSのために設計されたそのようなレガシーアプリケーションをGPOSセクションにおいて稼働することが望ましい。しかし、特に、古い通信プロトコルを用いるデータベースクライアント又は機械制御アプリケーションを実装するレガシーRTOSアプリケーションは、GPOS上で稼働する場合、セキュアでないと見なされる可能性がある。
下記において、図1を参照し、図1に示されるような例としての、産業用PCデバイス1の動作又は稼働方法を提供する。開示される方法は、RTOS環境用に意図されたレガシーアプリケーションを、GPOSセクション2において使用することを可能とする。同時に、ソフトウェアサービスがアプリケーションのレガシーバイナリコードを実行するGPOSと、RTOSセクション3において実装されたポートとの間のセキュアデータ転送を提供する。
第1のステップS0において、ラップされたアプリケーションWRAPが提供される。ラップされたアプリケーションは、RTOS下で実行されるよう設計されたアプリケーションRAPをセキュリティポリシーと共にラッピングすることから結果として得られる。リアルタイムアプリケーションRAPは、RTOSにおけるソフトウェアサーバ又はJavaエンジンを介し実行されることのできるJavaコードとして実装される。ただし、GPOSセクション2において、同一のコードBCを実行することが望ましい。このため、図1左に示されるように、RTOS下で実行されるよう設計されたバイナリコードBCと証明書CERTをセキュリティポリシーとして含む、ラップされたアプリケーションWRAPが生成される。開示される実施形態において、セキュリティポリシーは、アプリケーションRAPがデジタル署名され、実行可能なバイナリコードBCを含むことを要する。
次のステップS1において、GPOSセクション2のソフトウェアサービス13が、例えばソフトウェアバス9を介し、ラップされたアプリケーションをRTOS境界プロセスへ送信する。次いで、RPOS境界プロセス11が、証明書CERTに基づき、ラップされたアプリケーションプログラムWRAPを検証する。証明書CERTは、ステップS2においてRTOS境界プロセス11によりその信頼性がチェックされる署名を表すことができる。RTOS境界プロセス11がバイナリコードBCを検証又は認証した場合、バイナリコードBCは、ステップS3において、セキュリティ要素SEと共にGPOSセクション2へ送り返される。
GPOSセクション2は、図1に示されるJavaエンジンJEといったソフトウェアサービス13を実装する。例えば、レガシーバイナリコードはJavaコードで書かれている。そして、バイナリコードBCは、ラップされたアプリケーションWRAPを形成するため、暗号化され署名されてよい。一般的に、Javaコードは任意のJavaエンジンにより実行されることができる。そして実行可能なJavaコードBCは、次いでGPOS内のJavaエンジン13により処理されることができる。ラップされたアプリケーションWRAPは、ベンダー又は販売元によりIPCデバイス1に提供される。故に、有効に暗号化され署名されたJavaコードのみが、ステップS2においてRTOS境界プロセスにより受け入れられる。
バイナリコードBDを稼働するJavaエンジン13との間でアプリケーションデータを交換することを可能とするため、ステップS4において、GPOSプロセス(Javaエンジンを含む)13とRTOSセクション3との間のセキュア通信チャネル12が確立される。セキュア通信チャネルは、例えば、データ交換のための対称暗号化を用いるTLSトンネルである。セキュリティ要素SEは、例えば、セキュア接続を確立するための乱数又は疑似乱数であることができるナンスである。他のセキュリティ要素も考慮できる。
ステップS4に示されるように、アプリケーションデータADはGPOSプロセス13とRPOSセクション3との間で転送されることができる。例えば、セキュアトンネルが、隠されたRTOS下で稼働するよう実装されたアプリケーションRAPのため設計されたレガシープロトコルをエミュレートする。例えば、JavaコードBCは、自動化ネットワークに連接された専用ポートを介してRTOSセクション3に連接されたデバイスへのアクセスを要するデータベースクライアントを実装してよい。図1に示されるように、RTOSセクション3における認証サーバ又は境界サービスは、アプリケーションデータ(ステップS4を参照)がRTOSセクション3と、GPOSセクション2においてバイナリコードBC(Java)を稼働するソフトウェアサービス13との間で転送されることを可能とする。故に、提案され開示される方法は、GPOSセクション2内で、RTOS下で実行されるよう設計されたバイナリコードの例としての、レガシーJavaバイトコードの実行を可能とする。
該方法は、IPCデバイス1が自動化ネットワーク又は産業用自動化システムに統合されるとき特に有用である。図3は、IPCデバイス1を有する自動化システム100の1つの実施形態を示す。IPCデバイス1は、一般的に図1に示されるように実装される。ただし、例示目的のため、IPCホストのハイパーバイザとハードウェア構成要素は図において省略されている。GPOSセクション2は、インターフェイスを提供するため、いくつかの通信ポート15〜21を提供する。例えば、GPOSセクション2は、Ethernetポート15を介しインターネットWWWに連接されることができる。例えば、PCといった端末デバイスは、Ethernet25を介し、GPOSセクション2を用いてIPCデバイス1に連接できる。インターフェイスを生成する通信ポートの他の例は、SDメモリカードスロット16、PCIカードポート17、ハードディスクポート18、シリアルポート19、DVIポート20、又はUSBポート21である。図1において、SD、PCI、ハードディスク、シリアル、DVI及びUSBデバイス26〜31が例として示される。GPOSは、例えば、Windows 10オペレーティングシステムである。他のWindows標準も用いることができる。
RTOSセクション3は、例えば、RTオペレーティングシステムであり、自動化目的のためのリアルタイム機能を有する。RTオペレーティングシステムは、マシンコントローラアプリケーション14を含み実装する。マシンコントローラアプリケーション14は、専用産業用ネットワーク上でフィールド機器と通信し制御するため実装される。例えば、RTOSセクション3は、EtherNet/IPポート22を有し、Ethernetネットワーク上で端末デバイス32と他の産業用PC34及び/又はユーザインターフェイス33と連接することを可能とする。
RTOSセクション3は、所定の通信プロトコル上でフィールド機器35、36、37、38と通信可能に連接するためのポート23を更に提供する。例えば、ポート23はEtherCATバスシステム26と連接する。シーメンスによるProfinetといった他の通信プロトコルも考慮してよい。
マシンコントローラアプリケーション14は、特に自動化コントローラサービスを設定、プログラム、デバッグ、又はメンテナンスするために実装される。例えば、ソフトウェアマシンコントローラ14は、例えばライトカーテンを実装するセーフティデバイス35からデータを受け取ることができる。同時に、マシンコントローラアプリケーション14は、アクチュエータデバイス37を制御する、又は、センサデバイス38からセンサデータを受け取ってよい。マシンコントローラの機能は度々、RTOS下での稼働専用であるレガシーアプリケーションにより実装される。いくつかの例において、レガシーアプリケーションは、IPC上ではなく、組込みシステム上で稼働するよう実装されている可能性がある。
次いで、例えば図1又は3に示されるIPCデバイスの動作方法、又は、RTOS下でのリアルタイムデータ処理に適合された、提供されたソフトウェアコードをGPOS環境内で実行するための方法の更なる実施形態を示す。図4に示される機能とプロセスは、GPOSとRTOSにより提供される各々のソフトウェアサービスにより実装される。
図4の左の部分はGPOSプロセスを示し、右側はRTOSサービス又はプロセスを示す。
図4の実施形態において、WindowsオペレーティングシステムWINOSが、ラップされたJavaアプリケーションWRAPを受け取ると仮定する。Javaアプリケーションは暗号化され認証のための証明書を提供される。GPOS又はWindowsオペレーティングシステムは、JavaエンジンJEを提供する。
最初のステップS0において、ラップされたアプリケーションWRAPが受け取られる。WindowsオペレーティングシステムWINOSは、ステップS11においてソフトウェアバスサービスに連接される。これには、ソフトウェアバスサービスへのアクセスを可能にさせるセキュリティ証明書が関係することができる。次いで、ソフトウェアバスサービスはRTOS境界プロセスに接続する。境界プロセス又はRTOSは、RTオペレーティングシステムとして実装される。ステップS12における境界プロセスへの接続は、ハッシュ関数の実行が関係してよい。
次いで、ステップS13において、ラップされたアプリケーションWRAPから取り出された暗号化されたJavaコードencBCが取得される。ステップS14において、暗号化されたJavaアプリケーションencBCは署名又は証明書CERTと共に、RTOSのソフトウェアバスサービスへ渡される。故に、ソフトウェアバスサービスは、暗号化されたJavaコードと、例えばソフトウェア販売元であるJavaコードの出処の認証としてのJavaコード署名とを取得する。
次のステップにおいて、Javaコードを稼働するGPOSと、例えば図3に示されるマシンコントローラとの間でアプリケーションデータが交換されることを可能とするため、セキュア通信トンネルが確立される。ソフトウェアバスサービスは、ステップS15において、例えばレガシー通信チャネルをエミュレートするといった、セキュア通信チャネルを開くためのリクエストをRTOS境界プロセスへ渡す。ステップS15は、暗号化されたJavaコード、Javaコードの出処を保証する署名又は証明書、及びナンスをRTOS境界プロセスへ渡すことが関係してよい。RTOS境界プロセスは、例えば一致する証明書を用いて、Javaコード署名CERTをチェックする。
境界プロセスが、署名を検証することによりJavaコードの由来又は出処を認証した場合、ステップS17において、Javaコードは複号される。結果として、実行可能なJavaコードが境界プロセスにおいて利用可能となる。
次いで、ステップS18において、セキュアチャネルが確立される。これは、トークンと、暗号化されたJavaコードの複号処理から結果として得られたバイナリコードとを送ることが関係してよい。
ステップS19において、バイナリコード、即ち実行可能なJavaコードと、セキュリティ要素としてのセキュリティトークンがソフトウェアバスサービスへ送信される。ソフトウェアバスサービスは、次いでGPOSセクションにおけるJEによりレガシーJavaコードの実行を開始する。これはステップS20に示される。
故に、ソフトウェアバスサービスは、ステップS22においてJavaネイティブインターフェイスを介しバイナリコードをロードし開始する。ステップS21とS22は、例えばTLS接続でセキュアトンネルを確立するためにセキュリティトークンを生成することが関係する。故に、JavaコードはGPOSにおいてJavaエンジンにより実行されるが、同時に、ステップS23においてセキュアチャンネル上で通信でき、RTOSにおいて提供されたポートにアクセスできる。これは、Javaコード又はバイナリコードBCが、GPOSにおいてセキュアでないと見なされるレガシー通信プロトコルを動作し実行することを意味する。例えば、TLSトンネルは、レガシーリアルタイムオペレーティングシステムアプリケーションと互換性のある、エミュレートされたセキュアでないプロトコルを実装する。
故に、図3に戻って参照し、GPOSにおけるソフトウェアバスサービスは、古い又はレガシーバイナリコードを実行し。ここで、バイナリコードはセキュア通信チャネル(図1を参照)によりカプセル化されたセキュアでないプロトコル上で通信し、リアルタイムマシンコントローラが得ることのできるデータにアクセスしてよい。例えば、レガシーバイナリコードは、アクチュエータデバイス用の制御機能を含んでよい。GPOSは、一般的に自動化ネットワーク26(図3を参照)に連接する通信ポートへのアクセスを有さない。ただし、GPOSセクション2におけるソフトウェアサービス13(図1を参照)とRTOSセクション3の境界プロセス11(図1を参照)との間のセキュアトンネルを確立することは、Javaアプリケーションにおいての制御アルゴリズムの実行を可能とし、これにより、アクチュエータデバイス37を制御するためのアプリケーション又は制御データCDIを生成する。
図5は、産業用コンピュータデバイス、例えばIPCデバイス1の第3の実施形態の概略図を示す。一般的に、IPCデバイス1は図1と3に示されるように実装される。IPCデバイス1はGPOSセクション2とRTOSセクション3とを有し、ここで、RTOSセクション3は、制御データCDI、CDOを生成し、例えば特定の通信プロトコルにおいて自動化ネットワークから受け取ってよい。RTOSセクション3において実装された境界プロセス又は認証プロセス11は、GPOSセクション2においてレガシーソフトウェアサービス13下で稼働するアプリケーションAP1、AP2、AP3間のセキュア通信を可能とする。ソフトウェアバスサービス9は、GPOSセクション2とRTOSセクション3との間のセキュア通信トンネル12を確立するために用いられることができる。
図5において、複数のアプリケーションプログラムAP1〜AP3が示され、ここで、各アプリケーションプログラムAP1、AP2、AP3はRTOS下で実行されるよう実装される。アプリケーションプログラムAP1、AP2、AP3は、ラップされたアプリケーションプログラムとして提供され、ここで、各アプリケーションプログラムは、例えば付された署名又は証明書である、指定されたセキュリティポリシーを有する。各レガシーアプリケーションプログラムAP1、AP2、AP3について、図2又は図4に従ったプロセスが実行されることができるが、1つのセキュア通信チャネル12のみが確立される。各々のレガシーアプリケーション間のセキュア通信は、セキュアトンネル12を通過する点、一点鎖線、破線により示され、ここで、RTOSにおける境界プロセス11がセキュア通信を許可又はブロックする。例えば、AP2は制御データCDIとセンサデータCDOへのアクセスを許可されない。例えば、セキュリティポリシーは、複数のアプリケーションAP1〜AP3のアプリケーションごとに異なってよい。
アプリケーションラッピングにおける複数のappのアプリケーションAP1、AP2、AP3に包含された証明書によって、RTOSセクションのリソースへの許可されるアクセスが異なってよい。例えば、アプリケーションに付された各々の証明書は、異なる権限を許可する。1つの例として、RTOSセクション3のリソースへのアクセスは、ラッピング処理においてレガシーアプリケーションに付された証明書又はセキュリティポリシーの機能として判定される。このため、境界プロセス11はアプリケーションAP1とAP3に対しRTOSの自動化ネットワークポートへのアクセスを許可するが、アプリケーションAP2に対しアクセスを拒否する。
本発明は好ましい実施形態により説明されたが、当業者にとって全ての実施形態で改変が可能であることは明らかである。例えば、レガシーバイナリコードとしてJavaではない他の実行可能なコードを考慮できる。例えば、アプリケーションバイナリは.NETコードにより実装されることができる。証明書を用いる代わりに、ラップされたアプリケーションの認証のため、暗号署名又はトークンを考慮できる。
AD アプリケーションデータ
AP1、AP2、AP3 アプリケーションプログラム
BC バイナリコード
CDI、CDO 制御データ
CERT 証明書
enBC 暗号化されたバイナリコード
GPOS 汎用オペレーティングシステム
IPC 産業用PC
JE Javaエンジン
RAP リアルタイムアプリケーションプログラム
RTOS リアルタイムオペレーティングシステム
SE セキュリティ要素
VMM 仮想マシンモニタ/ハイパーバイザ
WINOS Windows OS
WRAP ラップされたアプリケーション
WWW インターネット

S0 WRAPを受け取る
S1 認証を要求する
S2 BCを検証する
S3 検証されたBCとSEを転送する
S4 セキュアチャンネルを確立する
S5 BCを実行する
S11 SWバスに接続する
S12 境界プロセスに接続する
S13 暗号化されたコードを取得する
S14 セキュア通信(レガシーチャネル)を開始する
S15 セキュアチャンネルパラメータを送信する
S16 コード署名をチェックする
S17 コードを復号する
S18 セキュアチャンネルを開く
S19 バイナリコードとトークンを返す
S20 レガシーアプリケーションを開始する
S21 Javaインターフェイスを介しバイナリコードをロードする
S22 バイナリコード(Java)を実行する
S23 トークンを用いてセキュアトンネルを確立する

1 産業用PCデバイス
2 GPOSセクション
3 RTOSセクション
4 プロセッサデバイス
5、6、7 プロセッサコア
8 ハイパーバイザ
9 通信手段
10 ラップされたアプリケーション
11 認証サービス
12 セキュアチャネル
13 ソフトウェア実行サービス
14 マシンコントローラアプリケーション
15〜23 通信ポート
24、25 Ethernetネットワーク
26 EtherCATネットワーク
27 端末
26〜31 周辺デバイス
32 端末
33 インターフェイス
34 IPC
35 セーフティデバイス
36 I/O制御デバイス
37 アクチュエータ
38 センサデバイス
100 自動化システム
次のステップS1において、GPOSセクション2のソフトウェアサービス13が、例えばソフトウェアバス9を介し、ラップされたアプリケーションをRTOS境界プロセスへ送信する。次いで、RTOS境界プロセス11が、証明書CERTに基づき、ラップされたアプリケーションプログラムWRAPを検証する。証明書CERTは、ステップS2においてRTOS境界プロセス11によりその信頼性がチェックされる署名を表すことができる。RTOS境界プロセス11がバイナリコードBCを検証又は認証した場合、バイナリコードBCは、ステップS3において、セキュリティ要素SEと共にGPOSセクション2へ送り返される。
ステップS4に示されるように、アプリケーションデータADはGPOSプロセス13とRTOSセクション3との間で転送されることができる。例えば、セキュアトンネルが、隠されたRTOS下で稼働するよう実装されたアプリケーションRAPのため設計されたレガシープロトコルをエミュレートする。例えば、JavaコードBCは、自動化ネットワークに連接された専用ポートを介してRTOSセクション3に連接されたデバイスへのアクセスを要するデータベースクライアントを実装してよい。図1に示されるように、RTOSセクション3における認証サーバ又は境界サービスは、アプリケーションデータ(ステップS4を参照)がRTOSセクション3と、GPOSセクション2においてバイナリコードBC(Java)を稼働するソフトウェアサービス13との間で転送されることを可能とする。故に、提案され開示される方法は、GPOSセクション2内で、RTOS下で実行されるよう設計されたバイナリコードの例としての、レガシーJavaバイトコードの実行を可能とする。
該方法は、IPCデバイス1が自動化ネットワーク又は産業用自動化システムに統合されるとき特に有用である。図3は、IPCデバイス1を有する自動化システム100の1つの実施形態を示す。IPCデバイス1は、一般的に図1に示されるように実装される。ただし、例示目的のため、IPCホストのハイパーバイザとハードウェア構成要素は図において省略されている。GPOSセクション2は、インターフェイスを提供するため、いくつかの通信ポート15〜21を提供する。例えば、GPOSセクション2は、Ethernetポート15を介しインターネットWWWに連接されることができる。例えば、PCといった端末デバイスは、Ethernet25を介し、GPOSセクション2を用いてIPCデバイス1に連接できる。インターフェイスを生成する通信ポートの他の例は、SDメモリカードスロット26、PCIカードポート27、ハードディスクポート28、シリアルポート29、DVIポート30、又はUSBポート31である。図1において、SD、PCI、ハードディスク、シリアル、DVI及びUSBデバイス26〜31が例として示される。GPOSは、例えば、Windows 10オペレーティングシステムである。他のWindows標準も用いることができる。
図5は、産業用コンピュータデバイス、例えばIPCデバイス1の第3の実施形態の概略図を示す。一般的に、IPCデバイス1は図1と3に示されるように実装される。IPCデバイス1はGPOSセクション2とRTOSセクション3とを有し、ここで、RTOSセクション3は、制御データCDIを生成し、CDOを受信し、例えば特定の通信プロトコルにおいて自動化ネットワークから受け取ってよい。RTOSセクション3において実装された境界プロセス又は認証プロセス11は、GPOSセクション2においてレガシーソフトウェアサービス13下で稼働するアプリケーションAP1、AP2、AP3間のセキュア通信を可能とする。ソフトウェアバスサービス9は、GPOSセクション2とRTOSセクション3との間のセキュア通信トンネル12を確立するために用いられることができる。
AD アプリケーションデータ
AP1、AP2、AP3 アプリケーションプログラム
BC バイナリコード
CDI、CDO 制御データ
CERT 証明書
encBC 暗号化されたバイナリコード
GPOS 汎用オペレーティングシステム
IPC 産業用PC
JE Javaエンジン
RAP リアルタイムアプリケーションプログラム
RTOS リアルタイムオペレーティングシステム
SE セキュリティ要素
VMM 仮想マシンモニタ/ハイパーバイザ
WINOS Windows OS
WRAP ラップされたアプリケーション
WWW インターネット

S0 WRAPを受け取る
S1 認証を要求する
S2 BCを検証する
S3 検証されたBCとSEを転送する
S4 セキュアチャンネルを確立する
S5 BCを実行する
S11 SWバスに接続する
S12 境界プロセスに接続する
S13 暗号化されたコードを取得する
S14 セキュア通信(レガシーチャネル)を開始する
S15 セキュアチャンネルパラメータを送信する
S16 コード署名をチェックする
S17 コードを復号する
S18 セキュアチャンネルを開く
S19 バイナリコードとトークンを返す
S20 レガシーアプリケーションを開始する
S21 Javaインターフェイスを介しバイナリコードをロードする
S22 バイナリコード(Java)を実行する
S23 トークンを用いてセキュアトンネルを確立する

1 産業用PCデバイス
2 GPOSセクション
3 RTOSセクション
4 プロセッサデバイス
5、6、7 プロセッサコア
8 ハイパーバイザ
9 通信手段
10 ラップされたアプリケーション
11 認証サービス
12 セキュアチャネル
13 ソフトウェア実行サービス
14 マシンコントローラアプリケーション
15〜23 通信ポート
24、25 Ethernetネットワーク
26 EtherCATバスシステム
27 端末
26〜31 周辺デバイス
32 端末
33 インターフェイス
34 IPC
35 セーフティデバイス
36 I/O制御デバイス
37 アクチュエータ
38 センサデバイス
100 自動化システム

Claims (19)

  1. 産業用PC(IPC)デバイス(1)の動作方法であって、前記IPCデバイス(1)が、
    汎用オペレーティングシステム(GPOS)下でプログラムコードを実行するよう実装された、GPOSセクション(2)と、
    前記リアルタオペレーティングシステム(RTOS)下でのリアルタイムデータ処理に適合されたプログラムコードを実行するよう実装された、RTOSセクション(3)と、
    を含み、
    前記方法が、
    前記RTOS下で実行されるよう設計されたバイナリコード(BC)を含むアプリケーションプログラム(RAP)と、セキュリティポリシーとに基づく、ラップされたアプリケーションプログラム(WRAP)を提供すること(S0)と、
    検証されたアプリケーションプログラムを取得するため、RTOSプロセスにより、前記セキュリティポリシーに従い、前記ラップされたアプリケーションプログラム(WRAP)を検証すること(S2)と、
    前記検証されたアプリケーションプログラムの前記バイナリコード(BC)とセキュリティ要素とを、前記RTOSプロセスからGPOSプロセスへ転送すること(S3)と、
    前記セキュリティ要素を用いて、前記GPOSプロセスと前記RTOSセクションとの間のセキュア通信チャネル(12)を確立すること(S4)と、
    前記GPOSプロセスにより、前記検証されたアプリケーションプログラムの前記バイナリコード(BC)を実行すること(S5)と
    を含む、方法。
  2. 前記セキュア通信チャネル(12)を介し、前記検証されたアプリケーションプログラムの前記バイナリコード(BC)を実行する前記GPOSプロセスとの間でアプリケーションデータを転送すること
    を更に含む、
    請求項1に記載の方法。
  3. 前記セキュア通信チャネル(12)内で、前記RTOS下で実行されるよう設計された前記アプリケーションプログラム(RAP)により要求されるセキュアでない通信プロトコルをエミュレートすること
    を更に含む、
    請求項1又は2に記載の方法。
  4. 前記RTOS下で実行されるよう設計されたバイナリコード(BC)を含む前記アプリケーションプログラム(RAP)を提供することと、
    前記アプリケーションプログラム(RAP)をラップし、これにより、前記ラップされたアプリケーションプログラム(WRAP)を生成するため、前記アプリケーションプログラムへ前記セキュリティポリシーを適用することと
    を更に含む、
    請求項1〜3のいずれか1項に記載の方法。
  5. 前記セキュリティポリシーが、
    前記アプリケーションプログラムの前記バイナリコードを暗号化すること、前記バイナリコードに暗号署名又は証明書を加えること、及び/又は、前記暗号化されたバイナリコードに暗号署名又は証明書を加えること
    を含む、
    請求項1〜4のいずれか1項に記載の方法。
  6. 前記セキュリティポリシーが前記ラップされたアプリケーションプログラム(WRAP)の前記バイナリコード(BC)に適用され、
    前記方法が、
    前記ラップされたアプリケーションプログラム(WRAP)のラッピングを外し、これにより、前記セキュリティポリシーが適用された前記アプリケーションプログラム(RAP)の前記バイナリコード(BC)を抽出することと、
    検証されたバイナリコードを取得するため、前記セキュリティポリシーに従い、前記RTOSプロセスにより、前記抽出されたバイナリコード(BC)を検証すること(S2)と、
    前記GPOSプロセスにより、前記検証されたバイナリコードを実行すること(S5)と
    を更に含む、
    請求項1〜5のいずれか1項に記載の方法。
  7. 前記ラップされたアプリケーションプログラム及び/又は前記抽出されたバイナリコードを検証すること(S2)が、
    セキュリティ証明書に基づき認証すること、及び/又は、暗号鍵を用いて復号すること
    を含む、
    請求項1〜6のいずれか1項に記載の方法。
  8. 前記セキュリティ要素(SE)が、前記検証されたアプリケーションプログラム又は前記検証されたバイナリコードに一意に指定される、
    請求項1〜7のいずれか1項に記載の方法。
  9. 前記セキュリティ要素(SE)が、セキュリティトークン、セキュリティ証明書、及び/又は暗号署名を含む、
    請求項1〜8のいずれか1項に記載の方法。
  10. 前記GPOSプロセスへ転送する前に、前記検証されたアプリケーションプログラムの前記バイナリコード(BC)又は前記検証されたバイナリコードにセキュリティ証明書を付すことと、
    前記検証されたアプリケーションの前記バイナリコード又は前記検証されたバイナリコードを実行する前記GPOSプロセスにより、前記付されたセキュリティ証明書の機能として、前記セキュア通信チャネル(12)を介した前記RTOSセクションへのアクセスを許可することと
    を更に含む、
    請求項1〜9のいずれか1項に記載の方法。
  11. 複数のラップされたアプリケーションプログラム(AP1、AP2、AP3)を提供することであって、各前記ラップされたアプリケーションプログラム(AP1、AP2、AP3)が、前記RTOS下で実行されるよう設計さたれた各々のバイナリコードを含む各々のアプリケーションプログラムと、前記各々のアプリケーションプログラムに指定された各々のセキュリティポリシーとに基づき生成されることと、
    複数の検証されたアプリケーションプログラムを取得するため、各々のRTOSプロセスにより、前記各々に指定されたセキュリティポリシーに従い、各前記複数のラップされたアプリケーションプログラム(AP1、AP2、AP3)を検証することと、
    前記複数の検証されたアプリケーションプログラムの複数のバイナリコードを、前記各々のRTOSプロセスから各々のGPOSプロセスへ転送することであって、前記検証されたアプリケーションプログラムの各前記バイナリコードに、各々のセキュリティ要素が指定されることと、
    前記各々のGPOSプロセスにより、前記検証されたアプリケーションプログラムの前記バイナリコードを実行することであって、前記検証されたアプリケーションプログラムの前記各々のバイナリコードを実行する前記各々のGPOSプロセスとの間のアプリケーションデータが、前記同一のセキュア通信チャネル(12)を介し転送されることと
    を更に含む、
    請求項1〜10のいずれか1項に記載の方法。
  12. 前記RTOS下で実行されるよう設計された前記アプリケーションプログラムの前記バイナリコード(BC)が、Javaコード又は.NETコードを含む、
    請求項1〜11のいずれか1項に記載の方法。
  13. 前記セキュア通信チャネル(12)がTLSプロトコルを採用する、
    請求項1〜12のいずれか1項に記載の方法。
  14. 前記GPOS下でプログラムコードを実行するよう実装された、GPOSセクション(2)と、
    前記RTOS下でのリアルタイムデータ処理に適合されたプログラムコードを実行するよう実装されたRTOSセクション(3)と、
    ホストマシンとしてのIPCデバイス上のゲストマシンとしての前記GPOS及び前記RTOSの実行を管理するよう実装された、ハイパーバイザ(4)と
    を含む産業用PC(IPC)デバイス(1)であって、
    検証されたアプリケーションプログラムを取得するため、RTOSプロセスにより、前記アプリケーションプログラムに指定されたセキュリティポリシーに従い、ラップされたアプリケーションプログラム(WRAP)を検証することであって、前記ラップされたアプリケーションプログラム(WRAP)が、RTOS下で実行されるよう設計されたバイナリコード(BC)を含むアプリケーションプログラム(RAP)とをラッピングし、かつ前記指定されたセキュリティポリシーを適用することにより取得されることと、
    前記検証されたアプリケーションプログラムの前記バイナリコード(BC)とセキュリティ要素(SE)とを、前記RTOSプロセスからGPOSプロセスへ転送することと、
    前記セキュリティ要素(SE)を用いて、前記GPOSプロセスと前記RTOSセクションとの間のセキュア通信チャネル(12)を確立することと、
    前記GPOSプロセスにより、前記検証されたアプリケーションプログラムの前記バイナリコード(BC)を実行することと
    を行うよう実装された、
    IPCデバイス。
  15. 請求項1〜13のいずれか1項に記載の方法を実行するよう実装された、
    請求項14に記載のIPCデバイス。
  16. 前記ハイパーバイザセクション(4)が、前記GPOSセクション(2)と前記RTOSセクション(3)との間で、リクエスト、バイナリコード、及び/又はセキュリティ要素を交換するためのソフトウェアバスサービスを提供するよう実装された、
    請求項14又は15に記載のIPCデバイス。
  17. 前記ハイパーバイザセクション(4)が、前記GPOS及びRTOSセクション(2、3)へ前記IPCデバイス(1)のハードウェアリソースを割り当てるよう実装された、
    請求項14〜16のいずれか1項に記載のIPCデバイス。
  18. 前記RTOSセクション(3)が、自動化システム内のフィールド機器(35〜38)を制御する、特に、マシン自動化コントローラデバイスの設定、プログラミング、デバッグ、メンテナンスのためのマシンコントローラアプリケーション(14)を含む、
    請求項14〜17のいずれか1項に記載のIPCデバイス。
  19. 前記RTOSセクション(3)が、所定の通信プロトコル、好ましくはEtherCAT及び/又はEtherNet/IP標準に従い、自動化システム内のフィールド機器(35〜38)に通信可能に連接するための少なくとも1つのポートを含む、
    請求項14〜18のいずれか1項に記載のIPCデバイス。
JP2021500275A 2018-08-17 2019-07-31 産業用pcデバイスの動作方法及び産業用pcデバイス Active JP7044201B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18189584.8A EP3611642B1 (en) 2018-08-17 2018-08-17 Method for operating an industrial pc device and industrial pc device
EP18189584.8 2018-08-17
PCT/IB2019/020027 WO2020035742A1 (en) 2018-08-17 2019-07-31 Method for operating an industrial pc device and industrial pc device

Publications (2)

Publication Number Publication Date
JP2021523494A true JP2021523494A (ja) 2021-09-02
JP7044201B2 JP7044201B2 (ja) 2022-03-30

Family

ID=63491381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021500275A Active JP7044201B2 (ja) 2018-08-17 2019-07-31 産業用pcデバイスの動作方法及び産業用pcデバイス

Country Status (5)

Country Link
US (1) US11640468B2 (ja)
EP (1) EP3611642B1 (ja)
JP (1) JP7044201B2 (ja)
CN (1) CN112424777B (ja)
WO (1) WO2020035742A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880863B (zh) * 2020-07-10 2023-10-24 Oppo广东移动通信有限公司 应用程序的运行方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301772A (ja) * 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
JP2000138917A (ja) * 1998-05-29 2000-05-16 Texas Instr Inc <Ti> 安全計算システム及び方法
WO2011074168A1 (ja) * 2009-12-14 2011-06-23 パナソニック株式会社 情報処理装置
JP2012003617A (ja) * 2010-06-18 2012-01-05 Canon It Solutions Inc 情報処理装置、画面領域制御方法およびそのプログラム
JP2012048617A (ja) * 2010-08-30 2012-03-08 Yokogawa Electric Corp リアルタイム制御システム
US20130055335A1 (en) * 2011-08-22 2013-02-28 Shih-Wei Chien Security enhancement methods and systems
JP2017162483A (ja) * 2015-08-25 2017-09-14 株式会社Seltech ハイパーバイザーを有するシステム
EP3267649A1 (en) * 2016-07-08 2018-01-10 Omron Corporation Method and industrial computing apparatus for performing a secure communication

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE409904T1 (de) * 2003-04-09 2008-10-15 Jaluna Sa Betriebssysteme
US7697536B2 (en) * 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
JP4888731B2 (ja) * 2008-03-12 2012-02-29 日本電気株式会社 コンピュータシステム、入出力優先度制御方法、及びプログラム
US8856317B2 (en) * 2010-07-15 2014-10-07 Cisco Technology, Inc. Secure data transfer in a virtual environment
US9489541B2 (en) * 2011-09-09 2016-11-08 Nvidia Corporation Content protection via online servers and code execution in a secure operating system
EP2685377B1 (de) * 2012-07-10 2018-01-31 Siemens Aktiengesellschaft Verfahren und Anordnung zur Synchronisierung von zwei auf einer Hardware-Plattform ablaufenden Prozessen
EP3047374A4 (en) * 2013-09-20 2017-04-05 Schneider Electric USA, Inc. Systems and methods for verification and deployment of applications to programmable devices
US20150264047A1 (en) * 2014-03-12 2015-09-17 Agreeya Mobility, Inc. Method and system for providing secure communication between multiple operating systems in a communication device
US9331988B2 (en) * 2014-03-20 2016-05-03 Oracle International Corporation System and method for provisioning secrets to an application (TA) on a device
EP2927763B1 (en) * 2014-04-04 2019-06-19 Abb Ag System and method for an optimized operation of real-time embedded solutions in industrial automation
EP3241149B1 (en) * 2015-02-11 2018-12-12 Siemens Aktiengesellschaft Method to isolate real-time or safety-critical software and operating system from non-critical software and operating system
WO2017052061A1 (ko) * 2015-09-21 2017-03-30 주식회사 레인보우 Gpos 연동형 실시간 로봇 제어 시스템 및 이를 이용한 실시간 디바이스 제어 시스템
JP6971016B2 (ja) * 2016-04-07 2021-11-24 オムロン株式会社 制御装置、制御方法およびプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301772A (ja) * 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
JP2000138917A (ja) * 1998-05-29 2000-05-16 Texas Instr Inc <Ti> 安全計算システム及び方法
WO2011074168A1 (ja) * 2009-12-14 2011-06-23 パナソニック株式会社 情報処理装置
JP2012003617A (ja) * 2010-06-18 2012-01-05 Canon It Solutions Inc 情報処理装置、画面領域制御方法およびそのプログラム
JP2012048617A (ja) * 2010-08-30 2012-03-08 Yokogawa Electric Corp リアルタイム制御システム
US20130055335A1 (en) * 2011-08-22 2013-02-28 Shih-Wei Chien Security enhancement methods and systems
JP2017162483A (ja) * 2015-08-25 2017-09-14 株式会社Seltech ハイパーバイザーを有するシステム
EP3267649A1 (en) * 2016-07-08 2018-01-10 Omron Corporation Method and industrial computing apparatus for performing a secure communication

Also Published As

Publication number Publication date
US20210271761A1 (en) 2021-09-02
CN112424777B (zh) 2023-09-08
EP3611642A1 (en) 2020-02-19
CN112424777A (zh) 2021-02-26
JP7044201B2 (ja) 2022-03-30
EP3611642B1 (en) 2020-08-12
US11640468B2 (en) 2023-05-02
WO2020035742A1 (en) 2020-02-20

Similar Documents

Publication Publication Date Title
US11038678B2 (en) Trusted key diversity on cloud edge devices
US10530753B2 (en) System and method for secure cloud computing
US9698988B2 (en) Management control method, apparatus, and system for virtual machine
McCune et al. Flicker: An execution infrastructure for TCB minimization
US9184918B2 (en) Trusted hardware for attesting to authenticity in a cloud environment
JP7351925B2 (ja) リモートサーバでの認証用のデバイス識別子を生成するためにセキュアデバイス上でソフトウェアをオンボードすること
Schear et al. Bootstrapping and maintaining trust in the cloud
TW201635180A (zh) 與網路服務主機通訊之安全硬體安全模組系統與方法
US20220109667A1 (en) Cryptographic trust enabled devices of cybersecurity systems
CN116490868A (zh) 用于可信执行环境中的安全快速机器学习推理的系统和方法
JP6805654B2 (ja) ソフトウェア更新システム
CN112738064A (zh) 一种基于sm2,sm4国密算法提升ssh协议安全性的方法
EP3048553B1 (en) Method for distributing applets, and entities for distributing applets
JP7044201B2 (ja) 産業用pcデバイスの動作方法及び産業用pcデバイス
Xia et al. Security Access Solution of Cloud Services for Trusted Mobile Terminals Based on TrustZone.
EP3942770B1 (en) Chained trusted platform modules (tpms) as a secure bus for pre-placement of device capabilities
Hao et al. Trusted block as a service: Towards sensitive applications on the cloud
Pedone et al. Trusted computing technology and proposals for resolving cloud computing security problems
EP4354792A1 (en) A device and a method for performing a cryptographic operation
KR20150074128A (ko) 적어도 하나의 소프트웨어 구성요소를 컴퓨팅 디바이스에 다운 로딩하는 방법, 관련 컴퓨터 프로그램 제조물, 컴퓨팅 디바이스, 컴퓨터 시스템
US12034569B2 (en) Gateway for remote provisioning of software
Li et al. A type-safe, TPM backed TLS infrastructure
Santos et al. Excalibur: Building Trustworthy Cloud Services
Simó Picó Use of Secure Device Identifiers inVirtualised Industrial Applications
Dietrich On Reliable Platform Configuration Change Reporting Mechanisms for Trusted Computing Enabled Platforms.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220201

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220228

R150 Certificate of patent or registration of utility model

Ref document number: 7044201

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150