JP7300866B2 - 制御システム - Google Patents

制御システム Download PDF

Info

Publication number
JP7300866B2
JP7300866B2 JP2019063354A JP2019063354A JP7300866B2 JP 7300866 B2 JP7300866 B2 JP 7300866B2 JP 2019063354 A JP2019063354 A JP 2019063354A JP 2019063354 A JP2019063354 A JP 2019063354A JP 7300866 B2 JP7300866 B2 JP 7300866B2
Authority
JP
Japan
Prior art keywords
program
unit
control
key
encrypted
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
JP2019063354A
Other languages
English (en)
Other versions
JP2020166317A (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
Priority to JP2019063354A priority Critical patent/JP7300866B2/ja
Priority to CN202080018568.XA priority patent/CN113518952A/zh
Priority to EP20779412.4A priority patent/EP3951518A4/en
Priority to PCT/JP2020/006266 priority patent/WO2020195348A1/ja
Priority to US17/437,833 priority patent/US20220156392A1/en
Publication of JP2020166317A publication Critical patent/JP2020166317A/ja
Application granted granted Critical
Publication of JP7300866B2 publication Critical patent/JP7300866B2/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • 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/602Providing cryptographic facilities or services
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6281Protecting 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 at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24167Encryption, password, user access privileges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Description

この開示は、制御システム、セキュリティ装置および方法に関する。
FA(Factory Automation)の制御装置をインターネットまたはクラウド端末に接続する環境が提供されている。この環境では、工場外の端末またはネットワークに制御装置を接続することに関して、ノウハウ流出を含む各種インシデントへの対処を含むセキュリティ対策が実施されている。
また、工場では、入出管理により、認証された者のみに入出を許可することにより、制御装置のプログラムを含む各種データの不正な複製、または不正持ち出しなどのインシデントへの対処がとられている。この点に関して、特許文献1(特開平6-110512号公報)では、シーケンスプログラムの不正な複製を防止するために、プログラマブルコントローラにおいて、シーケンスプログラムを暗号化してROMに格納する暗号化手段と、ROMに格納された情報を復号化してプロセッサにより実行させる復号化手段と、暗号化および復号化の際の暗号鍵および復号鍵を設定する鍵設定手段とを備える。
特開平6-110512号公報
特許文献1では、シーケンスプログラムと同様に鍵もプログラマブルコントローラに格納されることから、鍵が盗まれると簡単に復号および複製がなされてしまう。
本開示は、上述したような課題を解決することを一つの目的とし、制御装置に格納されている制御に係るプログラムの不正な複製を防止できる制御システム、セキュリティ装置および方法を提供することを目的とする。
本開示にかかる制御システムは、制御対象の制御に係るプログラムを実行する制御装置と、制御装置と通信可能なセキュリティ装置と、を備え、セキュリティ装置は、鍵を格納する鍵格納部と、暗号化済みのプログラムを鍵で復号する復号化部と、を含み、プログラムが実行されるとき、復号を実施して復号済みプログラムを制御装置に転送する。制御装置は、セキュリティ装置から転送される復号済みプログラムを記憶する揮発性記憶部を、含む。
上述の開示によれば、制御装置が備える不揮発性記憶部に復号済みプログラムが格納されるときは、制御装置で制御プログラムが実行されるときに限定されるので、第3者による制御装置の復号済みプログラムの不正複製を防止することができる。
また、復号のための鍵は、制御装置とは別のセキュリティ装置に格納されるので、第3者は、鍵を入手するには、制御装置とは別のセキュリティ装置を取得する必要があり、鍵が不正複製されるのを防止でき、鍵を用いた上記の復号済みプログラムの不正複製をさらに困難化できる。
本開示にかかるセキュリティ装置は、制御対象の制御に係るプログラムを実行する制御装置と通信可能なセキュリティ装置であって、制御装置は、セキュリティ装置から転送されるプログラムを記憶する揮発性記憶部を含む。セキュリティ装置は、鍵を格納する鍵格納部と、暗号化済みのプログラムを鍵で復号する復号化部と、を含み、プログラムが実行されるとき、復号を実施して復号済みプログラムを制御装置に転送する。
上述の開示によれば、制御装置が備える不揮発性記憶部に復号済みプログラムが格納されるときは、制御装置で制御プログラムが実行されるときに限定されるので、第3者による制御装置の復号済みプログラムの不正複製を防止することができる。
また、復号のための鍵は、制御装置とは別のセキュリティ装置に格納されるので、第3者は、鍵を入手するには、制御装置とは別のセキュリティ装置を取得する必要があり、鍵が不正複製されるのを防止できて、鍵を用いた上記の復号済みプログラムの不正複製をさらに困難化できる。
上述の開示において、鍵格納部は、セキュリティ装置とは異なる装置による読出しが禁止される読出禁止領域を有し、鍵は、読出禁止領域に格納される。
上述の開示によれば、鍵は読出禁止領域に格納されるので、鍵が不正入手されて、不正入手された鍵で復号済みプログラムが取得されるのを防止することができる。
上述の開示において、暗号化済みのプログラムは、セキュリティ装置または制御装置に備えられる不揮発性記憶部に格納される。
上述の開示によれば、復号済みプログラムを生成するための暗号化済みのプログラムはセキュリティ装置または制御装置が備える不揮発性記憶部に格納しておくことができるので、不揮発性記憶部の暗号化済みのプログラムを復号化した上で、不揮発性記憶部にリストアすることができる。
上述の開示において、セキュリティ装置または制御装置は、外部の情報処理装置と通信可能であり、情報処理装置は、暗号化済みのプログラムを、セキュリティ装置または制御装置に転送する。
上述の開示によれば、セキュリティ装置または制御装置は、暗号化済みのプログラムを外部の情報処理装置から取得できる。
上述の開示において、セキュリティ装置は、外部の情報処理装置と通信可能であり、セキュリティ装置は、暗号化済みのプログラムを生成する暗号化部と、情報処理装置から転送される、所定の鍵で暗号化されたプログラムを復号する第1復号化部と、を含み、暗号化部は、所定の鍵で暗号化されたプログラムを第1復号化部により復号した上で、鍵格納部の鍵で暗号化することにより暗号化済みのプログラムを生成する。
上述の開示によれば、セキュリティ装置は、情報処理装置から転送される所定の鍵で暗号化されたプログラムから、暗号化済みプログラムを取得できる。この場合、情報処理装置から転送されるプログラムは平文ではなく所定の鍵で暗号化されているので、転送途中における平文プログラムの不正複製を防止できる。
上述の開示において、セキュリティ装置は、所定の鍵で暗号化されたプログラムを第1復号化部により復号した上で、暗号化部による暗号化が完了するまで保持する。
上述の開示によれば、セキュリティ装置は、復号されたプログラムを、暗号化部が暗号化を完了するまで保持するので、完了できないときは、保持されている復号されたプログラムを用いて暗号化をリトライすることができる。
上述の開示において、セキュリティ装置は、さらに、暗号化部により生成される暗号化済みのプログラムを、自装置の不揮発性記憶部に格納する、または制御装置に転送する。
上述の開示によれば、セキュリティ装置は、復号済みプログラムを生成するための暗号化済みプログラムの入手ルートを、自装置または制御装置において確保することができる。
上述の開示において、鍵格納部の鍵は、秘密鍵または共通鍵を含む。したがって、復号に用いる鍵を多様化することができる。
本開示において、対象を制御する制御装置が実行する制御に係るプログラムのセキュリティを設定する方法が提供される。制御装置はセキュリティ装置と通信可能である。方法は、プログラムが実行されるとき、セキュリティ装置が、暗号化済みのプログラムを当該セキュリティ装置が保持する鍵で復号した上で、制御装置に転送するステップと、制御装置が、セキュリティ装置から転送される復号がなされたプログラムを当該制御装置が備える揮発性記憶部に格納するステップと、を備える。
上述の開示によれば、制御装置が備える不揮発性記憶部に復号済みプログラムが格納されるときは、制御装置で制御プログラムが実行されるときに限定されるので、第3者による制御装置の復号済みプログラムの不正複製を防止することができる。
また、復号のための鍵は、制御装置とは別のセキュリティ装置に格納されるので、第3者は、鍵を入手するには、制御装置とは別のセキュリティ装置を取得する必要があり、鍵が不正複製されるのを防止できて、鍵を用いた上記復号済みプログラムの不正複製を防止することができる。
本開示によれば、制御装置に格納されている制御に係るプログラムの不正複製を防止することができる。
本実施の形態にかかる制御システム1を備えるネットワーク環境1000の全体構成を模式的に示す図である説明する。 本実施の形態にかかる制御システム1の構成例を示す外観図である。 本実施の形態に従う制御システム1を構成する制御ユニット100のハードウェア構成例を示す模式図である。 本実施の形態にかかる制御システム1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。 本実施の形態にかかる制御システム1に接続され得るサポート装置500のハードウェア構成例を示す模式図である。 本実施の形態にかかる制御システム1が担う機能の一部をサポート装置500と関連づけて示す図である。 本実施の形態にかかる復号化処理を含む処理のフローチャートの一例を模式的に示す図である。 図7の処理における装置間のデータの流れを模式的に示す図である。 本実施の形態にかかる復号化処理を含む処理のフローチャートの他の例を模式的に示す図である。 図9の処理における装置間のデータの流れを模式的に示す図である。 本実施の形態にかかる復号化処理を含む処理のフローチャートの更なる他の例を模式的に示す図である。 図11の処理における装置間のデータの流れを模式的に示す図である。 本実施の形態にかかるサポート装置500から独立した制御システム1の構成を模式的に示す図である。 本実施の形態にかかる制御システム1の起動処理のフローチャートの一例を示す図である。
実施の形態について、図面を参照しながら詳細に説明する。図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。図6は、本実施の形態にかかる制御システム1が担う機能の一部をサポート装置500と関連づけて示す図である。図6では、当該機能は、対象の制御に係る制御プログラムの不正な複製を防止可能なように、制御プログラムに関するセキュリティを設定する機能が示される。
図6を参照して、制御システム1は、「制御装置」の一実施例である制御ユニット100および「セキュリティ装置」の一実施例であるセキュリティユニット200を含む。セキュリティユニット200は、内部バス(例えば、PCI Expressバスなど)を介して制御ユニット100に接続されている。セキュリティユニット200は、制御ユニット100に内部バスを介して接続される「装置」の形ではなく、制御ユニット100と何らかの手段で着脱自在に接続される外付け可能な別ユニットとして実装されてもよい。
制御ユニット100は、例えばPLC(プログラムブルコントローラ)を含む。制御ユニット100は、制御対象の制御に係るプログラム(以下、制御プログラムという)を実行する。制御プログラムは、制御対象である設備および装置、ならびに、それらに配置されている各種デバイス(センサまたはアクチュエータなど)との間で信号を遣り取りするIOリフレッシュ、制御演算処理などのプログラムを含む。具体的には、IOリフレッシュでは、制御ユニット100において算出される指令値を制御対象へ出力、あるいは、制御対象からの入力値を収集する。制御演算処理では、例えば、IOリフレッシュにより収集した入力値に基いた指令値,制御量を算出する。このような機能を備える制御プログラムは、制御対象の要求仕様に従ってユーザまたは開発会社が作成するプログラムを含む「ユーザプログラム」の一例でもある。
セキュリティユニット200は、制御システム1の、より特定的には制御ユニット100のセキュリティを設定する。このセキュリティの設定には、制御プログラムの意図しない複製、すなわち不正な複製を防止するための設定が含まれる。
制御システム1は、ユーザが操作可能なサポート装置500をさらに備えても良い。サポート装置500は、外部の「情報処理装置」の一実施例に相当し、ユーザが制御システム1を運用するのを支援する支援ツールを提供する。サポート装置500は、USB(Universal Serial Bus)により、脱着可能に制御ユニット100またはセキュリティユニット200に接続される。このUSB通信には、通信のセキュリティを確保するために、ユーザ認証を行なうための通信プロトコルが採用され得る。
サポート装置500は、平文である制御プログラム90、制御プログラム90の暗号化または復号化のために用いる鍵93、制御プログラム90を鍵93で暗号化した暗号化済み制御プログラム91を格納する記憶部を備える。本実施の形態では、鍵93は、暗号化および復号化における共通鍵として提供されるとする。本実施の形態では、鍵93の形態はこれに限定されず、例えば、公開鍵で暗号化を実施し、秘密鍵で復号化を実施する形態を適用することもできる。
セキュリティユニット200は、サポート装置500から転送される鍵93を受信し、セキュリティユニット200が備えるセキュアチップ205のメモリ207に格納する。セキュアチップ205は、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装され得る。セキュアチップ205は、セキュリティユニット200の基板上に直接取り付けられたチップであり、セキュリティユニット200とは異なる装置による読出しが禁止される記憶領域に、すなわち外部装置からの読取が不可能な記憶領域に鍵93を格納する「鍵格納部」の一実施例である。
制御ユニット100が起動されて、制御プログラムが実行されるとき、セキュリティユニット200は、制御ユニット100またはセキュリティユニット200に格納されている暗号化済み制御プログラム91を鍵93で復号することにより(処理(2))、復号済み制御プログラム94を生成し、生成された復号済み制御プログラム94を制御ユニット100に転送する。制御ユニット100は、セキュリティユニット200から転送される復号済み制御プログラム94を「揮発性記憶部」の一実施例である揮発性記憶領域130に格納する(処理(3))。制御ユニット100は、揮発性記憶領域130内の復号済み制御プログラム94を実行する(処理(4))。
このように、セキュリティユニット200は、平文の制御プログラム90が暗号化された暗号化済み制御プログラム91を、鍵93で復号することにより、制御プログラム90に対応する復号済み制御プログラム94を生成することができる。
上記に述べた制御システム1では、復号のための鍵93は、制御ユニット100とは別ユニットであるセキュリティユニット200において、さらには、セキュリティユニット200のセキュアチップ205内に格納されるので、鍵93の外部装置からの読出しは実質的に不可能となる。したがって、第3者は、鍵93を取得できず、暗号化済み制御プログラム91を取得できたとしても復号済み制御プログラム94を取得できない。
また、制御プログラムが起動される時に限り、暗号化済み制御プログラム91の復号(処理(2))が実施されること、また、復号済み制御プログラム94は、制御ユニット100が電源OFFして電力供給が断たれると記憶内容が消去される揮発性記憶領域130に格納されること等から、第3者が、揮発性記憶領域130から復号済み制御プログラム94を読出(複製)可能な機会は制限されることになる。
したがって、制御システム1は、第3者による制御プログラム90に対応する復号済み制御プログラム94の不正複製を不可能にする。
また、制御ユニット100は、「セキュアブートモード」を設定するために、ユーザが外部から操作可能に設けられたディップスイッチ126を備える。ユーザは、制御システム1に対して、「セキュアブートモード」を設定する場合は、ディップスイッチ126をOFF→ONに切替操作し、設定しない場合はディップスイッチ126をOFFのままとする。制御システム1の各ユニットに対して、電源ユニット450から電源ON(電源が供給開始)されて起動される場合は、制御ユニット100は、ディップスイッチ126の操作(図6の操作(1))に応じて、「セキュアブートモード」に移行する。「セキュアブートモード」では、セキュリティユニット200は、制御ユニット100と協働して復号化処理(処理(2)と処理(3))を実施することにより、制御ユニット100において制御プログラムを実行可能な環境を設定する。
これにより、制御ユニット100は、セキュアブートモードが設定されるときに限り、復号済み制御プログラム94を取得する。これにより、第3者が復号済み制御プログラム94を不正に取得または不正に複製する可能性を低くすることができる。
また、制御システム1では、暗号化済み制御プログラム91は、セキュリティユニット200内で生成されてもよい。この場合、セキュリティユニット200は、サポート装置500から転送される簡易暗号化済み制御プログラム92に基いて、セキュアチップ205内の鍵93を用いて暗号化処理を実施することにより、暗号化済み制御プログラム91を生成する。このように、セキュリティユニット200が暗号化済み制御プログラム91を生成する場合であっても、サポート装置500からセキュリティユニット200に転送される制御プログラムは平文ではなく簡易暗号化済み制御プログラム92であるので、平文の制御プログラム90が転送途中で不正複製されるのを防止できる。
以下、本実施の形態のより具体的な応用例について説明する。
<B.制御システム1のネットワーク構成>
図1は、本実施の形態にかかる制御システム1を備えるネットワーク環境1000の全体構成を模式的に示す図である説明する。図1を参照して、ネットワーク環境1000は、ネットワーク10を介して接続されている、制御システム1、サーバ装置600、表示装置800およびゲートウェイ700を備える。ネットワーク10は、ゲートウェイ700を介して、外部ネットワークであるインターネットに接続されている。また、制御システム1は、フィールドネットワーク110を介して、フィールドの設備および装置、ならびに、それらに配置されている各種デバイス(センサまたはアクチュエータなど)を含む制御対象900を接続する。
フィールドネットワーク110は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとして、EtherCAT(登録商標)を採用してもよい。また、ネットワーク10としては、例えば、一般的なネットワークプロトコルであるイーサネット(登録商標)またはEtherNet/IP(登録商標)が採用されてもよい。
表示装置800は、ユーザからの操作を受けて、制御システム1に対してユーザ操作に応じたコマンドなどを出力するとともに、制御システム1での演算結果などをグラフィカルに表示する。
サーバ装置600は、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置または設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これらに限らず、情報系サービス(制御対象から各種情報を取得して、マクロ的またはミクロ的な分析などを行う処理)を提供する装置をネットワーク10に接続するようにしてもよい。
本実施の形態では、表示装置800およびサーバ装置600に、上記に述べた各種のサービス処理を実施させるために、制御ユニット100は、後述するサービスプログラム97を実行する。
ゲートウェイ700は、ネットワーク10と外部ネットワーク(インターネット)との間のプロトコル変換およびファイヤウォールとしての処理を実行する。
<C.制御システム1の外観>
図2は、本実施の形態にかかる制御システム1の構成例を示す外観図である。図2を参照して、制御システム1は、制御ユニット100、セキュリティユニット200、セーフティユニット300、1または複数の機能ユニット400、および電源ユニット450を含む。
制御ユニット100とセキュリティユニット200との間は、上記のPCI Expressのバスなどを介して接続されるとともに、制御ユニット100とセーフティユニット300および1または複数の機能ユニット400との間は、内部バスを介して接続されている。
セーフティユニット300は、制御ユニット100とは独立して、制御対象に関するセーフティ機能を実現するための制御演算を実行する。機能ユニット400は、制御システム1による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット400は、典型的には、I/Oユニット、セーフティI/Oユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。I/Oユニットとしては、例えば、デジタル入力(DI)ユニット、デジタル出力(DO)ユニット、アナログ出力(AI)ユニット、アナログ出力(AO)ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。セーフティI/Oユニットは、セーフティ制御に係るI/O処理を担当する。
電源ユニット450は、制御システム1を構成する各ユニットに対して、所定電圧の電源を供給する。
<D.各ユニットのハードウェア構成例>
次に、本実施の形態に従う制御システム1を構成する各ユニットのハードウェア構成例について説明する。
(d1.制御ユニット100)
図3は、本実施の形態に従う制御システム1を構成する制御ユニット100のハードウェア構成例を示す模式図である。図3を参照して、制御ユニット100は、主たるコンポーネントとして、CPU(Central Processing Unit)またはGPU(Graphical Processing Unit)などのプロセッサ102、チップセット104、主記憶装置106、二次記憶装置108、通信コントローラ111、USB(Universal Serial Bus)コントローラ112、メモリカードインターフェイス114、ネットワークコントローラ116,118,120、内部バスコントローラ122、インジケータ124、およびスイッチインターフェイス125を含む。
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、制御演算およびサービス処理を含む各種の処理を実現する。チップセット104は、プロセッサ102と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット100全体としての処理を実現する。
主記憶装置106は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性記憶装置を備える。これら揮発性記憶装置の少なくとも一部は、復号済み制御プログラム94を格納するための揮発性記憶領域130を構成する。
二次記憶装置108は、典型的には、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)、ROM(Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)などの不揮発性記憶装置を備える。これら不揮発性記憶装置の少なくとも一部は、暗号化済み制御プログラム91を格納するための不揮発性記憶領域131を構成する。
二次記憶装置108には、さらに、OSを含むシステムプログラム95、およびサービスプログラム97などのユーザプログラムが格納される。システムプログラム95は、復号済み制御プログラム94およびサービスプログラム97などのユーザプログラムが動作するためのプログラム実行環境を提供する。
通信コントローラ111は、セキュリティユニット200との間のデータの遣り取りを担当する。通信コントローラ111としては、例えば、PCI Expressなどのバスに対応した通信チップを採用できる。
USBコントローラ112は、USB接続を介して、サポート装置500を含む任意の情報処理装置との間のデータの遣り取りを担当する。
メモリカードインターフェイス114は、メモリカード115を脱着可能に構成されており、メモリカード115に対してユーザプログラムまたは各種設定などのデータを書込み、あるいは、メモリカード115から当該プログラムまたは各種設定などのデータを読出すことが可能になっている。
ネットワークコントローラ116,118,120の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ116,118,120は、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用ネットワークプロトコルを採用してもよい。
内部バスコントローラ122は、制御システム1を構成するセーフティユニット300または1または複数の機能ユニット400との間で内部バスを介したデータの遣り取りを担当する。この内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
インジケータ124は、制御ユニット100の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLED(Light Emitting Diode)などで構成される。
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御ユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
(d2.セキュリティユニット200)
図4は、本実施の形態にかかる制御システム1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。図4を参照して、セキュリティユニット200は、主たるコンポーネントとして、CPUまたはGPUなどのプロセッサ202、チップセット204、揮発性記憶領域を含む主記憶装置206、不揮発性記憶領域234を含む二次記憶装置208、通信コントローラ210、USBコントローラ212、メモリカードインターフェイス214、ネットワークコントローラ216,218、およびインジケータ224を含む。主記憶装置206および二次記憶装置208は、それぞれ、制御ユニット100の主記憶装置106および二次記憶装置108と同様に構成することができるので、ここでは、説明を繰返さない。
プロセッサ202は、二次記憶装置208に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、各種機能を実現する。チップセット204は、プロセッサ202と各コンポーネントとの間のデータの遣り取りを仲介することで、セキュリティユニット200全体としての処理を実現する。チップセット204は、基板上に装着された各種のチップを備えて構成されて、装着されるチップの1つは、鍵93を格納するセキュアチップ205に対応する。
二次記憶装置208には、OSを含むシステムプログラム223に加えて、システムプログラム223が提供する実行環境上で動作する各種の処理プログラムが格納される。各種の処理プログラムは、簡易暗号化済み制御プログラム92を復号する簡易復号化処理プログラム230、簡易復号化処理プログラム230で簡易暗号化済み制御プログラム92が復号された上で、鍵93で暗号化する暗号化処理プログラム231、および暗号化済み制御プログラムを復号する復号化処理プログラム232を含む。
通信コントローラ210は、制御ユニット100との間のデータの遣り取りを担当する。通信コントローラ210としては、制御ユニット100に通信コントローラ210と同様に、例えば、バス211に適用されるPCI Expressなどに対応する通信チップを採用できる。
USBコントローラ212は、USB接続を介してサポート装置500を含む任意の情報処理装置との間のデータの遣り取りを担当する。
メモリカードインターフェイス214は、SDカードなどのメモリカード215を脱着可能に構成されており、メモリカード215に対してプログラムまたは各種設定などのデータを書込み、あるいは、メモリカード215からプログラムまたは各種設定などのデータを読出すことが可能になっている。
ネットワークコントローラ216,218の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ216,218は、イーサネットなどの汎用的なネットワークプロトコルを採用してもよい。
インジケータ224は、セキュリティユニット200の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セキュリティユニット200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
<E.サポート装置500のハードウェア構成例>
次に、本実施の形態にかかる制御システム1に接続され得るサポート装置500のハードウェア構成例について説明する。
図5は、本実施の形態にかかる制御システム1に接続され得るサポート装置500のハードウェア構成例を示す模式図である。サポート装置500は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
図5を参照して、サポート装置500は、CPUまたはGPUなどのプロセッサ502、主記憶装置504、入力部506、出力部508、二次記憶装置510、光学ドライブ512、および通信インターフェイス520を含む。これらのコンポーネントは、プロセッサバス518を介して接続されている。主記憶装置504および二次記憶装置510は、それぞれ、制御ユニット100の主記憶装置106および二次記憶装置108と同様に構成することができるので、ここでは、説明を繰返さない。
プロセッサ502は、二次記憶装置510に格納されたプログラム(一例として、OS5102およびサポートプログラム5104)を読出して、主記憶装置504に展開して実行することで、各種処理を実現する。
二次記憶装置510には、基本的な機能を実現するためのOS5102に加えて、サポート装置500としての機能を提供するためのサポートプログラム5104が格納される。サポートプログラム5104は、コンピュータである情報処理装置(実質的にはプロセッサ502)により実行されることで、本実施の形態にかかるサポート装置500によるサポートツールの提供が実現される。サポートツールは、サポート装置500におけるプログラムの開発環境を提供する。
二次記憶装置510には、プログラムの開発環境においてユーザまたは開発会社が、制御対象の要求仕様に従って作成した制御プログラム90、および暗号化済み制御プログラム91が格納される。さらに、二次記憶装置510には、鍵93、および暗号化処理プログラム5105が格納される。また、二次記憶装置510には、簡易暗号化処理プログラム5106が格納されてもよい。簡易暗号化処理プログラム5106が実行される場合は、二次記憶装置510は、当該実行により生成される簡易暗号化済み制御プログラム92が格納され得る。本実施の形態では、二次記憶装置510には、暗号化処理プログラム5105および簡易暗号化処理プログラム5106の少なくとも一方が格納される。
入力部506は、キーボードまたはマウスなどで構成され、ユーザ操作を受け付ける。出力部508は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ502からの処理結果などを出力する。
通信インターフェイス520は、USBまたはイーサネットなどの任意の通信媒体を介して、制御システム1が備える制御ユニット100またはセキュリティユニット200との間のデータを遣り取りする。
サポート装置500は、光学ドライブ512を有しており、記録媒体514(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られて二次記憶装置510などにインストールされる。
サポート装置500で実行されるサポートプログラム5104などは、コンピュータ読取可能な記録媒体514を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従うサポート装置500が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
図5には、プロセッサ502がプログラムを実行することで、サポート装置500として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
本実施の形態では、制御システム1が稼動中において、サポート装置500は、制御システム1から取り外されていてもよい。
サポート装置500において、暗号化処理プログラム5105が実行される場合は、暗号化処理において、制御プログラム90を鍵93で暗号化した上で(すなわち生成された暗号化済み制御プログラム91は)二次記憶装置510に格納される。また、簡易暗号化処理プログラム5106が実行される場合は、簡易暗号化処理において、制御プログラム90は簡易暗号化用の所定鍵で暗号化された上で(すなわち簡易暗号化済み制御プログラム92は)二次記憶装置510に格納される。
再び図6を参照すると、サポート装置500は、制御システム1が備える制御ユニット100またはセキュリティユニット200に対して、二次記憶装置510の暗号化済み制御プログラム91,簡易暗号化済み制御プログラム92および鍵93を、通信インターフェイス520を介して転送する。この場合に、通信インターフェイス520は、セキュリティユニット200との間でユーザ認証を実施し、認証に成功した場合に鍵93,暗号化済み制御プログラム91および簡易暗号化済み制御プログラム92の転送が許可される。したがって、鍵93,暗号化済み制御プログラム91および簡易暗号化済み制御プログラム92は、意図した正当なセキュリティユニット200または制御ユニット100にのみ転送されて、意図しない第3者の端末に転送されることが防止される。
<F.復号化処理>
セキュアブートモードにおいて実施される復号化処理を説明する。処理例として、復号化処理(図6の処理(2))において、セキュリティユニット200が、制御ユニット100に格納された暗号化済み制御プログラム91を復号するケースと、セキュリティユニット200に格納される暗号化済み制御プログラム91を復号するケースとを説明する。
(f1.制御ユニット100の暗号化済み制御プログラム91の復号化処理の一例)
図7は、本実施の形態にかかる復号化処理を含む処理のフローチャートの一例を模式的に示す図である。図8は、図7の処理における装置間のデータの流れを模式的に示す図である。図8の各部には、説明のために、図7の処理ステップT1~T27のうち、関連する処理の符号が割当られている。図7と図8を参照して、セキュリティユニット200が、サポート装置500から制御ユニット100に転送された暗号化済み制御プログラム91を復号し、復号済み制御プログラム94を制御ユニット100に転送するケースを説明する。
図7と図8を参照して、サポート装置500は、暗号化処理プログラム5105により、鍵93で平文の制御プログラム90を暗号化した上で、制御ユニット100に転送する(ステップT1,T5)。具体的には、サポート装置500は、平文の制御プログラム90を、暗号化処理プログラム5105により鍵93で暗号化することにより、暗号化済み制御プログラム91を生成し、通信インターフェイス520を介して制御ユニット100に転送する。また、サポート装置500は、二次記憶装置510の鍵93をセキュリティユニット200に転送する(ステップT3)。この転送に際して、サポート装置500は、通信インターフェイス520により相手装置(セキュリティユニット200,制御ユニット100)との間でユーザ認証を実施し、認証に成功したときに、鍵93の転送および暗号化済み制御プログラム91の転送を実施する。
セキュリティユニット200は、サポート装置500からの鍵93を受信し(ステップT11)、受信した鍵93をセキュアチップ205に格納する(T13)。また、制御ユニット100は、サポート装置500から暗号化済み制御プログラム91を受信し(ステップT21)、受信した暗号化済み制御プログラム91を不揮発性記憶領域131に格納する(ステップT23)。次に、後述する復号化処理(ステップS11)が実施される。
(f1-1.復号化処理)
セキュリティユニット200は、復号化処理プログラム232を実行することで実現されるモジュールに相当する図8の復号化部23を備える。復号化処理では、制御ユニット100は、例えば、セキュリティユニット200からの要求に応じて、不揮発性記憶領域131の暗号化済み制御プログラム91をセキュリティユニット200に転送する(ステップT24)。セキュリティユニット200の復号化部23は、制御ユニット100から受信する暗号化済み制御プログラム91をセキュアチップ205の鍵93で復号した上で制御ユニット100に転送する(ステップT19)。すなわち、復号化部23は、暗号化済み制御プログラム91を鍵93で復号することにより、復号済み制御プログラム94を生成し(ステップT17)、復号済み制御プログラム94を制御ユニット100に転送する(ステップT19)。
制御ユニット100は、セキュリティユニット200から転送される復号済み制御プログラム94を受信し、受信した復号済み制御プログラム94を揮発性記憶領域130に格納する(ステップT25,ステップT27)。これにより、復号化処理(ステップS11)は終了する。
図8では、上記に述べた復号化処理における、セキュリティユニット200と制御ユニット100間における暗号化済み制御プログラム91および復号済み制御プログラム94の転送が破線矢印で示されている。この転送は、制御システム1における、セキュリティユニット200と制御ユニット100間を接続するPCI Expressなどの内部バスを介して実施され得るので、転送途中の復号済み制御プログラム94が外部に曝されるリスクを回避することができる。
また、例えば、制御システム1において、セキュリティユニット200が制御ユニット100に脱着自在に外付けされる装置構成を採用する場合においても、復号済み制御プログラム94の第3者による不正な複製を防止することができる。例えば、電源OFFされて制御ユニット100がセキュリティユニット200から取り外された場合、鍵93はセキュリティユニット200に残されたままなので、第3者は取外された制御ユニット100の暗号化済み制御プログラム91を復号することはできない。また、外部装置からセキュアチップ205に格納されている鍵93を読出すこともできない。これにより、図7および図8の構成によれば、第3者による復号済み制御プログラム94の不正複製を防止することができる。
(f2.制御ユニット100の暗号化済み制御プログラム91の復号化処理の他の例)
図9は、本実施の形態にかかる復号化処理を含む処理のフローチャートの他の例を模式的に示す図である。図10は、図9の処理における装置間のデータの流れを模式的に示す図である。図10の各部には、説明のために、図9の処理ステップT1a~T27のうち、関連する処理の符号が割当られている。図9と図10を参照して、セキュリティユニット200により生成されて制御ユニット100に転送された暗号化済み制御プログラム91から、復号化処理により復号済み制御プログラム94が生成されるケースを説明する。
セキュリティユニット200は、復号化部23、簡易復号化処理プログラム230を実行することにより実現されるモジュールに相当する簡易復号化部22、および暗号化処理プログラム231を実行することにより実現されるモジュールに相当する暗号化部21を備える。簡易復号化部22は、「第1復号化部」の一実施例である。
サポート装置500は、簡易暗号化処理プログラム5106により、平文の制御プログラム90を所定の簡易暗号化用鍵で暗号化した上で、セキュリティユニット200に転送する(ステップT1a、ステップT5a)。すなわち、サポート装置500は、簡易暗号化処理プログラム5106により、平文の制御プログラム90を所定の簡易暗号化用鍵で暗号化することにより、簡易暗号化済み制御プログラム92を生成し(ステップT1a)、通信インターフェイス520を介して、簡易暗号化済み制御プログラム92をセキュリティユニット200に転送する(ステップT5a)。この転送に際しては、サポート装置500は、通信インターフェイス520により相手装置(セキュリティユニット200)との間でユーザ認証を実施し、認証に成功したときに、簡易暗号化済み制御プログラム92の転送を実施する。本実施の形態では、所定の簡易暗号化用鍵は、サポート装置500とセキュリティユニット200との間でユーザ認証を介して相互に交換されている。
また、セキュリティユニット200は、専用ツール250から転送される鍵93を受信し、セキュアチップ205に格納する(ステップT3a、T11、T13)。本実施の形態では、専用ツール250は、正当なユーザまたはプログラム開発会社が保持するツールであって、セキュリティユニット200の出荷時等において、鍵93をセキュアチップ205に格納するために利用される。
セキュリティユニット200は、サポート装置500から受信する簡易暗号化済み制御プログラム92に基き、鍵93を用いて暗号化処理を実施することにより、暗号化済み制御プログラム91を生成する(ステップT14a~T14d)。
具体的には、セキュリティユニット200は、サポート装置500から簡易暗号化済み制御プログラム92を受信し(ステップT14a)、簡易復号化部22は、受信した簡易暗号化済み制御プログラム92を所定の簡易暗号化用鍵で復号することにより、復号済の制御プログラム、すなわち平文の制御プログラム90を生成し、生成された制御プログラム90を一時格納する(ステップT14b、T14c)。暗号化部21は、生成された制御プログラム90を鍵93で暗号化することにより、暗号化済み制御プログラム91を生成する(ステップT14d)。
その後、セキュリティユニット200は一時格納されていた平文の制御プログラム90を削除する(ステップT15)とともに、暗号化済み制御プログラム91を制御ユニット100に転送する(ステップT16)。制御ユニット100は、セキュリティユニット200からの暗号化済み制御プログラム91を受信し、不揮発性記憶領域131に格納する(ステップT21,T24)。このように、復号されて一時格納されていた制御プログラム90は、少なくとも暗号化部21による暗号化が完了するまでは保持されるので、制御プログラム90が格納されている間は暗号化をリトライすることができる。また、一時格納されている平文の制御プログラム90の削除は、暗号化済み制御プログラム91の制御ユニット100への転送が完了した後に実施してもよい。
その後、セキュリティユニット200と制御ユニット100では、暗号化済み制御プログラム91の復号化処理が実施される(ステップT17、T19、T24~T27)。この復号化処理は、図7と図8で説明した処理と同様であるので、説明は繰返さない。
このように図9と図10に説明したケースであっても、図7と図8と同様に、復号済み制御プログラム94を第3者による不正複製から保護することができる。
(f3.セキュリティユニット200の暗号化済み制御プログラム91を復号化処理)
図11は、本実施の形態にかかる復号化処理を含む処理のフローチャートの更なる他の例を模式的に示す図である。図12は、図11の処理における装置間のデータの流れを模式的に示す図である。図12の各部には、説明のために、図11の処理ステップT1a~T27のうち、関連する処理の符号が割当られている。図7~図10では、制御ユニット100の不揮発性記憶領域131に格納されていた暗号化済み制御プログラム91について復号化処理が実施されるのに対して、図11と図12では、セキュリティユニット200の不揮発性記憶領域234に格納された暗号化済み制御プログラム91について復号化処理が実施される。
図11と図12の処理を、主に、図9と図10の処理とは異なる点について説明する。サポート装置500は、簡易暗号化済み制御プログラム92を生成し、セキュリティユニット200に転送する(ステップT1a、T5a)。セキュリティユニット200のセキュアチップ205には、専用ツール250により鍵93が格納される(ステップT3a、T11、T13)。
また、セキュリティユニット200では、簡易復号化部22および暗号化部21は、サポート装置500からの簡易暗号化済み制御プログラム92を処理することにより、暗号化済み制御プログラム91を生成する(ステップT14a~T14d)。セキュリティユニット200は、暗号化済み制御プログラム91を不揮発性記憶領域234に格納する(ステップT14e)。
その後、セキュリティユニット200と制御ユニット100は、不揮発性記憶領域234の暗号化済み制御プログラム91の復号化処理を実施する(ステップT17、T19、T25、T27)。
図12では、暗号化部21が生成する暗号化済み制御プログラム91は、さらに制御ユニット100の不揮発性記憶領域131に格納されてもよい。これにより、復号化部23は、暗号化済み制御プログラム91を入手するルートを、セキュリティユニット200の不揮発性記憶領域234のルートまたは制御ユニット100に不揮発性記憶領域131のルートとすることができて、入手ルートを多様化できる。
図11と図12では、制御ユニット100は、不揮発性記憶領域131に暗号化済み制御プログラム91を保持しないので、制御ユニット100を盗んだ第3者が、たとえ鍵93を取得できたとしても、復号済み制御プログラム94を生成することはできない。また、図11と図12に説明したケースであっても、図7と図8と同様に、復号済み制御プログラム94を第3者による不正複製から保護することができる。
(f3-1.リストア)
本実施の形態では、サポート装置500が保持する図8の暗号化済み制御プログラム91、またはセキュリティユニット200が図12の不揮発性記憶領域234に保持する暗号化済み制御プログラム91を、制御ユニット100の不揮発性記憶領域131に再度格納(リストア)するためのバックアップ用として利用することができる。
また、制御システム1は、図8に示すように、難読化された状態でSDカードなどのメモリカード215に格納された鍵93を、セキュアチップ205に格納するルートを備えてもよい。このメモリカード215は、正当なユーザまたはプログラム開発会社が所持する。
<f4.サポート装置500から独立した制御システム1の構成>
図13は、本実施の形態にかかるサポート装置500から独立した制御システム1の構成を模式的に示す図である。図13では、セキュリティユニット200が、制御ユニット100に格納された暗号化済み制御プログラム91を復号するケースの変形例が示される。
図8と図9のケースとは異なり、図13の制御ユニット100の暗号化済み制御プログラム91は、セキュリティユニット200がSDカードなどのメモリカード215から読出す平文の制御プログラム90から、鍵93と暗号化処理プログラム231を用いて生成される。図13のメモリカード215は正当なユーザまたはプログラム開発会社が保持する。これにより、図13の制御システム1では、サポート装置500を接続しない環境であっても、制御ユニット100に暗号化済み制御プログラム91をリストアすることが可能になる。
図13では、暗号化部21が生成する暗号化済み制御プログラム91は、さらにセキュリティユニット200の不揮発性記憶領域234に格納されてもよい。これにより、復号化部23は、暗号化済み制御プログラム91を入手するルートを、セキュリティユニット200の不揮発性記憶領域234のルートまたは制御ユニット100に不揮発性記憶領域131のルートとすることができて、入手ルートを多様化できる。
<G.起動処理のフローチャート>
図14は、本実施の形態にかかる制御システム1の起動処理のフローチャートの一例を示す図である。図14では、セキュリティユニット200が、制御ユニット100に脱着可能に外付けされるユニットとして構成されるケースを例示する。この場合、制御ユニット100は、通信コントローラ111に関連して設けられた通信ポートを介してセキュリティユニット200を接続する。したがって、制御ユニット100は、通信ポートからの信号(または通信ポートの電位)に基き、セキュリティユニット200が装着されているか否かを判断する。
図14を参照して、プログラムの実行に際して、電源ユニット450から制御システム1の各ユニットに電源が供給されると、制御ユニット100のプロセッサ102は通常の起動処理を開始する(ステップS3)。この起動処理は、例えば、ユーザプログラムを実行するためのリソースの確保等を含む。
プロセッサ102はディップスイッチ126からの信号に基き、ディップスイッチ126はONまたはOFFのいずれの状態にあるかを判断する(ステップS5)。ディップスイッチ126からの信号がONを示すと判断すると(ステップS5でON)、プロセッサ102は、セキュリティユニット200が装着されているか否かを判断する(ステップS7)。プロセッサ102は、セキュリティユニット200が制御ユニット100に装着されていると判断すると(ステップS7で(有))、プロセッサ102は「セキュアブートモード」に移行して、プロセッサ102は復号化処理の開始要求をセキュリティユニット200に送信する。セキュリティユニット200は当該開始要求の応答を制御ユニット100に送信することにより、両者は協働して図7~図13で述べた復号化処理を実施する(ステップS11)。復号化処理(ステップS11)が終了すると「セキュアブートモード」は終了する。この復号化処理において、復号済み制御プログラム94は不揮発性記憶領域131に格納されるので、制御ユニット100では制御プログラムを実行することが可能となる。
プロセッサ102は、揮発性記憶領域130の記憶内容に基づいて復号済み制御プログラム94が格納されているか否かを判断し、判断結果に基き復号化処理に成功したか否かを判断する(ステップS13)。暗号化済み制御プログラム91の復号化に成功した、すなわち揮発性記憶領域130に復号済み制御プログラム94が格納されていると判断すると(ステップS13でYES)、残りの起動処理を実施する(ステップS15)。残りの起動処理では、例えばサービスプログラム97等を実行するためのリソースの確保等が実施される。その後、一連の起動処理は終了する。
ステップS7において、プロセッサ102は、セキュリティユニット200が制御ユニット100に装着されていないと判断すると(ステップS7で(無))、またはステップS13において、プロセッサ102は、揮発性記憶領域130に復号済み制御プログラム94が格納されていないと判断すると(ステップS13でNO)、プロセッサ102は、インジケータ124を点灯させるとともに、起動処理を停止する(ステップS9)。これにより、制御システム1または制御ユニット100は起動できない旨のエラー通知を報知することができる。
一方、ステップS5において、プロセッサ102は、ディップスイッチ126からの信号がOFFを示すと判断すると(ステップS5でOFF)、セキュアブートモードにおける復号化処理は実施せずに、ステップS15に移行して、サービスプログラム97についての起動処理(ステップS15)を実施する。これにより、ディップスイッチ126からの信号がOFFであるときは、制御プログラム90を実行可能にするための処理、すなわち復号済み制御プログラム94の揮発性記憶領域130への格納は実施されないので、ユーザは、ディップスイッチ126の操作によって、復号済み制御プログラム94を第3者の不正複製から保護することができる。
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
制御対象(900)の制御に係るプログラムを実行する制御装置(100)と、
前記制御装置と通信可能なセキュリティ装置(200)と、を備え、
前記セキュリティ装置は、
鍵(93)を格納する鍵格納部(205)と、
暗号化済みの前記プログラム(91)を前記鍵で復号する復号化部(23)と、を含み、
前記プログラムが実行されるとき、前記復号を実施して復号済みプログラム(94)を前記制御装置に転送し、
前記制御装置は、
前記セキュリティ装置から転送される前記復号済みプログラムを記憶する揮発性記憶部(130)を、含む、制御システム(1)。
[構成2]
制御対象(900)の制御に係るプログラムを実行する制御装置(100)と通信可能なセキュリティ装置(200)であって、
前記制御装置は、
前記セキュリティ装置から転送されるプログラムを記憶する揮発性記憶部(130)を含み、
前記セキュリティ装置は、
鍵(93)を格納する鍵格納部(205)と、
暗号化済みのプログラム(91)を前記鍵で復号する復号化部(23)と、を含み、
前記プログラムが実行されるとき、前記復号を実施して復号済みプログラム(94)を前記制御装置に転送する、セキュリティ装置。
[構成3]
前記鍵格納部は、前記セキュリティ装置とは異なる装置による読出しが禁止される読出禁止領域(207)を有し、
前記鍵は、前記読出禁止領域に格納される、構成2に記載のセキュリティ装置。
[構成4]
前記暗号化済みのプログラムは、前記セキュリティ装置または前記制御装置に備えられる不揮発性記憶部(234,131)に格納される、構成2または3に記載のセキュリティ装置。
[構成5]
前記セキュリティ装置または前記制御装置は、外部の情報処理装置(500)と通信可能であり、
前記情報処理装置は、前記暗号化済みのプログラムを、前記セキュリティ装置または前記制御装置に転送する、構成4に記載のセキュリティ装置。
[構成6]
前記セキュリティ装置は、外部の情報処理装置(500)と通信可能であり、
前記セキュリティ装置は、
前記暗号化済みのプログラムを生成する暗号化部(21)と、
前記情報処理装置から転送される、所定の鍵で暗号化されたプログラムを復号する第1復号化部(22)と、を含み、
前記暗号化部は、
前記所定の鍵で暗号化されたプログラムを前記第1復号化部により復号した上で、前記鍵格納部の鍵で暗号化することにより前記暗号化済みのプログラムを生成する、構成4に記載のセキュリティ装置。
[構成7]
前記セキュリティ装置は、
前記所定の鍵で暗号化されたプログラムを前記第1復号化部により復号した上で、前記暗号化部による暗号化が完了するまで保持する、構成6に記載のセキュリティ装置。
[構成8]
前記セキュリティ装置は、さらに、
前記暗号化部により生成される前記暗号化済みのプログラムを、自装置の前記不揮発性記憶部に格納する、または前記制御装置に転送する、構成6または7に記載のセキュリティ装置。
[構成9]
前記鍵格納部の前記鍵は、秘密鍵または共通鍵を含む、構成2から8のいずれか1に記載のセキュリティ装置。
[構成10]
対象(900)を制御する制御装置(100)が実行する制御に係るプログラムのセキュリティを設定する方法であって、
前記制御装置はセキュリティ装置(200)と通信可能であり、
前記方法は、
前記プログラムが実行されるとき、
前記セキュリティ装置が、暗号化済みの前記プログラム(91)を当該セキュリティ装置が保持する鍵(93)で復号した上で、前記制御装置に転送するステップと、
前記制御装置が、前記セキュリティ装置から転送される前記復号がなされたプログラム(94)を当該制御装置が備える揮発性記憶部(130)に格納するステップと、を備える、方法。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、10 ネットワーク、21 暗号化部、22 簡易復号化部、23 復号化部、90 制御プログラム、91 暗号化済み制御プログラム、92 簡易暗号化済み制御プログラム、93 鍵、94 復号済み制御プログラム、95,223 システムプログラム、97 サービスプログラム、100 制御ユニット、102,202,502 プロセッサ、104,204 チップセット、106,206,504 主記憶装置、108,208,510 二次記憶装置、110 フィールドネットワーク、111,210 通信コントローラ、112,212 コントローラ、114,214 メモリカードインターフェイス、115,215 メモリカード、116,118,120,216,218 ネットワークコントローラ、122 内部バスコントローラ、124,224 インジケータ、125 スイッチインターフェイス、126 ディップスイッチ、130 揮発性記憶領域、131,234 不揮発性記憶領域、200 セキュリティユニット、205 セキュアチップ、207 メモリ、230 簡易復号化処理プログラム、231,5105 暗号化処理プログラム、232 復号化処理プログラム、250 専用ツール、300 セーフティユニット、400 機能ユニット、450 電源ユニット、500 サポート装置、506 入力部、508 出力部、512 光学ドライブ、514 記録媒体、518 プロセッサバス、520 通信インターフェイス、600 サーバ装置、700 ゲートウェイ、800 表示装置、900 制御対象、1000 ネットワーク環境、5104 サポートプログラム、5106 簡易暗号化処理プログラム。

Claims (8)

  1. 制御対象の制御に係るプログラムを実行する制御装置と、
    前記制御装置と通信可能なセキュリティ装置と、を備え、
    前記セキュリティ装置は、前記制御装置に脱着可能に構成され、
    暗号化済みの前記プログラムを記憶する不揮発性記憶部と、
    鍵を格納する鍵格納部と、
    前記不揮発性記憶部の前記暗号化済みのプログラムを前記鍵で復号する復号化部と、を含み、
    前記制御装置から要求を受信したとき、前記復号を実施して復号済みプログラムを前記制御装置に転送し、
    前記制御装置は、
    当該制御装置の外部スイッチが所定操作され、且つ当該制御装置に前記セキュリティ装置が装着されていると判断したとき、前記要求を前記セキュリティ装置に送信し、
    前記セキュリティ装置から転送される前記復号済みプログラムを記憶する揮発性記憶部を、含み、
    前記セキュリティ装置は、外部の情報処理装置と通信可能であり、
    前記セキュリティ装置は、さらに、
    前記暗号化済みのプログラムを生成する暗号化部と、
    前記情報処理装置から転送される、所定の鍵で暗号化されたプログラムを復号する第1復号化部と、を含み、
    前記暗号化部は、
    前記所定の鍵で暗号化されたプログラムを前記第1復号化部により復号して一時格納し、一時格納された復号済みのプログラムを前記鍵格納部の鍵で暗号化することにより前記暗号化済みのプログラムを生成し、その後、一時格納されていた復号済みプログラムを削除する、制御システム。
  2. 前記制御装置は、
    前記セキュリティ装置を接続可能な通信ポートを含み、
    前記通信ポートからの信号に基づき、前記セキュリティ装置が装着されていると判断する、請求項1に記載の制御システム。
  3. 前記鍵格納部は、前記セキュリティ装置とは異なる装置による読出しが禁止される読出禁止領域を有し、
    前記鍵は、前記読出禁止領域に格納される、請求項1または2に記載の制御システム。
  4. 前記セキュリティ装置は、外部の情報処理装置と通信可能であり、
    前記情報処理装置は、前記暗号化済みのプログラムを、前記セキュリティ装置に転送する、請求項1から3のいずれか1項に記載の制御システム。
  5. 前記セキュリティ装置は、
    前記所定の鍵で暗号化されたプログラムを前記第1復号化部により復号した上で、前記暗号化部による暗号化が完了するまで保持する、請求項1から4のいずれか1項に記載の制御システム。
  6. 前記セキュリティ装置は、さらに、
    前記暗号化部により生成される前記暗号化済みのプログラムを、自装置の前記不揮発性記憶部に格納する、請求項5に記載の制御システム。
  7. 前記情報処理装置は、前記プログラムを前記セキュリティ装置に転送するとき、前記セキュリティ装置との間でユーザ認証を実施する、請求項1から6のいずれか1項に記載の制御システム。
  8. 前記鍵格納部の前記鍵は、秘密鍵または共通鍵を含む、請求項1からのいずれか1項に記載の制御システム。
JP2019063354A 2019-03-28 2019-03-28 制御システム Active JP7300866B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019063354A JP7300866B2 (ja) 2019-03-28 2019-03-28 制御システム
CN202080018568.XA CN113518952A (zh) 2019-03-28 2020-02-18 控制系统、保密装置以及方法
EP20779412.4A EP3951518A4 (en) 2019-03-28 2020-02-18 CONTROL SYSTEM, SAFETY DEVICE AND PROCEDURE
PCT/JP2020/006266 WO2020195348A1 (ja) 2019-03-28 2020-02-18 制御システム、セキュリティ装置および方法
US17/437,833 US20220156392A1 (en) 2019-03-28 2020-02-18 Control system, security device, and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019063354A JP7300866B2 (ja) 2019-03-28 2019-03-28 制御システム

Publications (2)

Publication Number Publication Date
JP2020166317A JP2020166317A (ja) 2020-10-08
JP7300866B2 true JP7300866B2 (ja) 2023-06-30

Family

ID=72611863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019063354A Active JP7300866B2 (ja) 2019-03-28 2019-03-28 制御システム

Country Status (5)

Country Link
US (1) US20220156392A1 (ja)
EP (1) EP3951518A4 (ja)
JP (1) JP7300866B2 (ja)
CN (1) CN113518952A (ja)
WO (1) WO2020195348A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI775061B (zh) * 2020-03-30 2022-08-21 尚承科技股份有限公司 軟韌體或資料保護系統及保護方法
JP2022138824A (ja) * 2021-03-11 2022-09-26 オムロン株式会社 制御システムおよびその制御方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003108385A (ja) 2001-09-28 2003-04-11 Toshiba Corp 着脱型外部記憶装置を利用したコンピュータシステムおよびコンピュータ利用方法
JP2004164491A (ja) 2002-11-15 2004-06-10 Matsushita Electric Ind Co Ltd プログラム更新方法およびサーバ
JP2015152996A (ja) 2014-02-12 2015-08-24 セイコーエプソン株式会社 プリンター及びプリンターの制御方法
JP2019008592A (ja) 2017-06-26 2019-01-17 大日本印刷株式会社 セキュアエレメント、コンピュータプログラム、デバイス、os起動システム及びos起動方法
JP7006028B2 (ja) 2017-08-31 2022-02-10 株式会社富士通ゼネラル 熱交換器

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06110512A (ja) 1992-09-25 1994-04-22 Matsushita Electric Works Ltd プログラマブルコントローラ
JP3327628B2 (ja) * 1993-06-18 2002-09-24 キヤノン株式会社 電子機器およびその制御方法
DE50111786D1 (de) * 2000-12-15 2007-02-15 Siemens Ag Verschlüsselung von Steuerungsprogrammen
AU2003303882A1 (en) * 2003-02-03 2004-08-30 Nokia Corporation Architecture for encrypted application installation
CN101359423B (zh) * 2007-08-03 2011-08-24 中兴通讯股份有限公司 用于永磁操作机构控制器的遥控方法
JP5356718B2 (ja) * 2008-04-22 2013-12-04 株式会社 エヌティーアイ 電子鍵システム
US9798898B2 (en) * 2010-05-25 2017-10-24 Via Technologies, Inc. Microprocessor with secure execution mode and store key instructions
US9769132B2 (en) * 2012-12-20 2017-09-19 Mitsubishi Electric Corporation Control system for securely protecting a control program when editing, executing and transmitting the control program
TW201535145A (zh) * 2013-12-04 2015-09-16 Insyde Software Corp 使用保護讀取儲存器安全地儲存韌體數據之系統及方法
US9619667B2 (en) * 2014-06-13 2017-04-11 BicDroid Inc. Methods, systems and computer program product for providing encryption on a plurality of devices
JP6751856B2 (ja) * 2016-06-02 2020-09-09 パナソニックIpマネジメント株式会社 情報処理装置および情報処理システム
CN106454757A (zh) * 2016-11-23 2017-02-22 北京坦达信息科技有限公司 一种无线宽带网的通信加密解密方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003108385A (ja) 2001-09-28 2003-04-11 Toshiba Corp 着脱型外部記憶装置を利用したコンピュータシステムおよびコンピュータ利用方法
JP2004164491A (ja) 2002-11-15 2004-06-10 Matsushita Electric Ind Co Ltd プログラム更新方法およびサーバ
JP2015152996A (ja) 2014-02-12 2015-08-24 セイコーエプソン株式会社 プリンター及びプリンターの制御方法
JP2019008592A (ja) 2017-06-26 2019-01-17 大日本印刷株式会社 セキュアエレメント、コンピュータプログラム、デバイス、os起動システム及びos起動方法
JP7006028B2 (ja) 2017-08-31 2022-02-10 株式会社富士通ゼネラル 熱交換器

Also Published As

Publication number Publication date
JP2020166317A (ja) 2020-10-08
EP3951518A1 (en) 2022-02-09
CN113518952A (zh) 2021-10-19
WO2020195348A1 (ja) 2020-10-01
EP3951518A4 (en) 2023-01-04
US20220156392A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
US10887086B1 (en) Protecting data in a storage system
ES2869395T3 (es) Procedimiento y sistema de control para controlar y/o supervisar equipos
CN106462718B (zh) 存储设备的快速数据保护
US8411863B2 (en) Full volume encryption in a clustered environment
JP2020527791A5 (ja)
ES2920957T3 (es) Método y sistema para proteger datos de usuario utilizando claves individualizadas para permitir el copiado de seguridad y la restauración de datos compartimentalizados y seguros
JP7300866B2 (ja) 制御システム
WO2022185583A1 (ja) 制御装置、ならびに制御装置の記憶部に保存されたデータの入出力を管理するプログラムおよび方法
JP2008065678A (ja) 機器の制御システム、制御装置およびプログラムの保護方法
WO2020261654A1 (ja) 制御システム、制御装置、および管理方法
JP5370695B2 (ja) 記憶装置制御システム及び記憶装置制御システムの記憶装置管理方法
WO2022190422A1 (ja) 制御システムおよびその制御方法
JP6203532B2 (ja) 半導体記憶装置及びデータ処理システム
JP5304366B2 (ja) 記憶媒体ユニット,及び、記憶媒体自動消去システム
US20240143803A1 (en) Control system and control method therefor
WO2022153566A1 (ja) 制御装置、管理方法およびセキュリティプログラム
WO2020235172A1 (ja) 制御装置、データ不能化プログラム、および制御システム
CN117094016B (zh) 基于国密Linux内核文件系统数据的加密方法及装置
JP7219729B2 (ja) ファイル管理システム、ファイル管理方法及びファイル管理プログラム
WO2020217741A1 (ja) 認証ファイル作成装置、制御システム、プログラム、および制御方法
WO2022190526A1 (ja) 制御システムおよびその制御方法
KR102525429B1 (ko) 시스템 식별자를 생성 및 저장하는 사설 교환기 장치 및 방법
JP2010122717A (ja) サーバ管理システム
JP2016111627A (ja) 情報処理装置、情報処理装置の制御方法、プログラム
CN117675184A (zh) 一种密钥管理方法、管理控制器和服务器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221109

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20221109

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20221117

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20221122

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20221202

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20221206

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230124

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230214

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230620

R150 Certificate of patent or registration of utility model

Ref document number: 7300866

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150