JPWO2016170641A1 - 制御装置、複合ユニット装置、更新判定プログラム及びプログラム更新方法 - Google Patents

制御装置、複合ユニット装置、更新判定プログラム及びプログラム更新方法 Download PDF

Info

Publication number
JPWO2016170641A1
JPWO2016170641A1 JP2016514185A JP2016514185A JPWO2016170641A1 JP WO2016170641 A1 JPWO2016170641 A1 JP WO2016170641A1 JP 2016514185 A JP2016514185 A JP 2016514185A JP 2016514185 A JP2016514185 A JP 2016514185A JP WO2016170641 A1 JPWO2016170641 A1 JP WO2016170641A1
Authority
JP
Japan
Prior art keywords
unit
update
program
information
rule
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
JP2016514185A
Other languages
English (en)
Other versions
JP5951162B1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP5951162B1 publication Critical patent/JP5951162B1/ja
Publication of JPWO2016170641A1 publication Critical patent/JPWO2016170641A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

プログラム更新装置(11)は、プログラムであるファームウェアを記憶するプログラム記憶部(1051)と、ファームウェアの更新のルールが定められたルール情報を記憶するルール記憶部(1052)と、ファームウェアを更新するための更新情報を受信する更新情報受信部(1053)と、更新情報がルール情報に適合するかどうかを判定する判定部(1054)と、判定部(1054)が適合すると判定した場合に、プログラム記憶部(1051)が記憶するファームウェアを、更新情報を用いて更新する更新部(1055)を備える。

Description

この発明は、プログラム更新装置、複合ユニット装置、更新判定プログラム及びプログラム更新方法も関する。
一般に、組込機器の動作を規定するソフトウェアをファームウェアと呼ぶ。以下、ファームウェアをFWと記す場合がある。近年、スマートフォンに代表される機器のネットワーク化に伴い、機能強化やバグフィックスを目的として、エンドユーザがFWを更新できる機能が活用されている。FWを更新できる機能は、コンシューマー製品だけでなく、プラントや工場で利用される産業用制御装置や自動車を制御する電子機器でも一部利用されている。以下、FWを更新できる機能をFWアップデート機能と呼ぶことにする。
FWアップデート機能は、エンドユーザにおいて以下の手順で利用される。
(1)エンドユーザが、製造業者のウェブサイトから、更新されたFWのファイルを取得する。
(2)エンドユーザは、製取得したファイルを、ネットワークや記録媒体を介して対象の組込機器へ入力する。
(3)組込機器が、FWのファイルを元にファームウェアを書き換える。
FWアップデート機能は上記のような利便性を提供する一方、攻撃者の利用経路として悪用される危険性がある。例えば、悪意ある第三者によって作成されたFWを用いて、エンドユーザが機器のFWのアップデートを行えば、悪意ある第三者に機器を乗っ取られる危険性がある。したがって、FWアップデート機能で用いられるFWは、機器の製造者からリリースされたことを証明できる必要がある。非特許文献1には、デジタル署名やメッセージ認証コードによるメッセージへの改竄検出を利用することにより、FWを任意に改変することを阻止する技術が記載されている。ここで、産業用制御装置や自動車の電子制御機器は、単体で最終ユーザに利用されるわけでなく、それらの機器を部品とした最終製品が、別のメーカによって作られる点に留意が必要である。このため、最終製品として、個々の機器のFWに対する管理責任が最終製品のメーカにある。また、産業用制御装置はコンポーネント化されて、最終製品はそれらを複数組み合わせて構成される点にも留意が必要である。すなわち、個々の機器のFWは単体として管理するだけでなく、複数の組み合わせとして管理を行う必要がある。一方で、制御システムのように、なんらかの障害の発生による中断や停止が発生した場合に影響が大きいシステムにおいては、FWのアップデートのようなシステムの動作に影響を与えかねない事象を可能な限り排除する傾向にあると言える。
例えば、非特許文献2に開示される「Copy Exactly!」の例にあるように、生産システムは一切の揺れを排除して構築することで、不具合のリスクが低減される。
RFC4108,"Using Cryptographic Message Syntax(CMS) to Protect Firmware Packages", http://tools.ietf.org/html/rfc4108 Intel "Manufacturing Process Copy exactly!" http://www.intel.com/content/www/us/en/quality/exact−copy.html
コンポーネント化された産業用制御装置は、用途が限定されず、汎用性のある仕様で構成される。当然、その産業用制御装置の動作は、その仕様の範囲内で保証される。一方、産業用制御装置を複数の構成部品のうちの一つとする最終製品は、産業用制御装置の仕様を把握した上で、システムアップされる。しかし、コンポーネントの仕様の範囲とはいえ、最終製品は、産業用制御装置などのそれぞれの構成部品の揺れ(仕様許容範囲内での変動)をすべて考慮して品質を検証できるわけではない。
従って、最終製品を構築するメーカから見れば、仕様の範囲内とはいえ、FWアップデートにより揺れ(許容範囲での仕様の変動)が発生することは、最終製品で不具合が発生するリスクとなる。よって、最終製品を製造するメーカは、産業用制御装置が持つFWアップデート機能のエンドユーザの使用を、制御及び制限できることが必要である。
また、複数の制御装置からなる最終製品は、個々の制御装置のFWを組み合わせとして管理する必要がある。従って、FWアップデート機能も、FWの組み合わせを考慮した上で、エンドユーザでの使用を制御及び制限できる必要がある。
複数の制御装置を部品として備える最終製品は、エンドユーザによって部品交換される。すなわち最終製品は部品である個々の制御装置が交換されることが考慮され、FWの組み合わせが管理される必要がある。
本発明は、最終製品を製造するメーカが、制御装置が持つFWアップデート機能のエンドユーザの使用を、制御及び制限できる構成の提供を目的とする。
この発明のプログラム更新装置は、
プログラムを記憶するプログラム記憶部と、
前記プログラムの更新のルールが定められたルール情報を記憶するルール記憶部と、
前記プログラムを更新するための更新情報を受信する更新情報受信部と、
前記更新情報が前記ルール情報に適合するかどうかを判定する判定部と、
前記判定部が適合すると判定した場合に、前記プログラム記憶部が記憶する前記プログラムを、前記更新情報を用いて更新する更新部と
を備える。
この発明により、最終製品を製造するメーカが、制御装置が持つFWアップデート機能のエンドユーザの使用を、制御及び制限が可能となる。
実施の形態1を示す図で、FWアップデートシステム1の構成示す図。 実施の形態1を示す図で、図1を通信ネットワーク40への接続状態で示す図。 実施の形態1を示す図で、セットメーカ20が制御装置105を含む最終製品を出荷する工程を説明する図。 実施の形態1を示す図で、プロジェクトファイル202及びFWの更新ルールが記載されたルールファイル205を示す図。 実施の形態1を示す図で、セットメーカ20からエンドユーザ30に渡される制御装置105及びプロジェクトファイル202を示す図。 実施の形態1を示す図で、エンドユーザ30が、制御装置105(30)のFWを更新する場合を説明する図。 実施の形態1を示す図で、制御装置105の構成を示すブロック図。 実施の形態1を示す図で、エンドユーザ30における、エンドユーザ装置300及び制御装置105(30)の動作を示すシーケンス図。 実施の形態1を示す図で、複数のユニットA〜EがファームウェアA〜Eを使用する状態を示す図。 実施の形態1を示す図で、ユニットAの構成を示すブロック図。 実施の形態1を示す図で、ユニットAの有するルールファイル205Aを示す図。 実施の形態1を示す図で、部品交換によって、意図せずFWの組み合わせが変更されるケースでの動作を示す図。 実施の形態1を示す図で、ユニットAが保有するルールファイル205Aを示す図。 実施の形態1を示す図で、制御装置105(30)が、バージョン取得部を備える構成を示すブロック図。 実施の形態1を示す図で、ユニットAがバージョンを取得するシーケンスを示す図。 実施の形態2を示す図で、制御装置のハードウェア構成を示す図。
実施の形態1.
<***構成の説明***>
図1から図15を参照して実施の形態1を説明する。図1は、FWのアップデートに必要なFWアップデートシステム1の構成示す。図2は、図1を、通信ネットワーク40への接続状態で示す図である。また図2は、FW配信サーバ装置100(以下、配信サーバ100)、セットメーカ装置200及びエンドユーザ装置300のブロック構成図を示した。
配信サーバ100は、制御部110、更新情報生成部120、通信部130、記憶部140を備える。制御部110は配信サーバ100の動作を制御する。更新情報生成部120は、後述する更新用FW102を生成する。通信部130は通信ネットワーク40を介してセットメーカ装置200、エンドユーザ装置300と通信する。記憶部140は更新用FW102などの情報を記憶する。
セットメーカ装置200は、開発ツール実行部210、通信部220、記憶部230を備える。開発ツール実行部210は、記憶部230に記憶された、プログラムである開発ツール201を実行する。通信部220は通信ネットワーク40を介して配信サーバ100、エンドユーザ装置300と通信する。記憶部230は開発ツール201などの情報を記憶する。開発ツール実行部210は、後述のプロジェクトファイル202を生成するプロジェクトファイル生成部211、後述のルールファイルを生成するルール情報生成部212を備える。
エンドユーザ装置300は、開発ツール実行部310、通信部320、記憶部330を備える。開発ツール実行部310は、記憶部330に記憶された、プログラムである開発ツール301を実行する。通信部320は通信ネットワーク40を介して通信する。記憶部330は開発ツール301などの情報を記憶する。
図1の制御装置メーカ10は、FWを配信する配信サーバ100を持ち、更新用FW102を管理する。
(1)制御装置メーカ10とは、制御装置を製造するメーカである。具体例としては、最終製品がPLC(プログラマブル ロジック コントローラ)である場合には、PLCを構成するCPUユニットや通信ユニットなどが制御装置である。制御装置とは他の機器を制御する装置である。
(2)更新用FW102とは、制御装置105の有するFWを更新するための情報である。なお、FWはプログラムである。よって、更新用FW102とは、制御装置105の有するプログラムを更新するための更新情報である。更新用FW102は、更新前のFWと更新後のFWとの差分情報でもよいし、更新前のFWの全部と置き換わる全体情報でもよい。なお、ルールファイル205も更新されるが、ルールファイル205についても更新用FW102と同様に、差分情報でもよいし、全体情報でもよい。
配信サーバ100は、通信ネットワーク40に接続され、通信部130を介して、セットメーカ装置200や、エンドユーザ装置300からのアクセスを受け入れる。
図1のセットメーカ20では、制御装置メーカ10から提供される開発ツール201が格納された、セットメーカ装置200を有する。セットメーカ装置200は制御装置105(20)と接続されている。セットメーカ20では、制御装置105(20)に対してセットメーカ装置200に格納された開発ツール201を用いて、自身の目的に合わせて追加的な開発を行う。セットメーカ20は、制御装置メーカ10からの通知か、あるいは定期確認により、FW更新の必要性を認識する。FWの更新が必要性な場合は、セットメーカ20は、セットメーカ装置200によって、配信サーバ100から更新用FW102をダウンロードする。ダウンロードされた更新用FW102は、セットメーカ装置200を介して、セットメーカ20の制御装置105(20)へ送信される。制御装置105(20)は、受信した更新用FW102で、自身のFWを更新する。なお、図1において、制御装置メーカ10、セットメーカ20,エンドユーザ30のそれぞれに制御装置105を示しているが、制御装置105は同じものである。制御装置105(10)は、制御装置105が制御装置メーカ10に存在することを示す。制御装置105(20)は、制御装置105(10)がセットメーカ20に搬入されたものであることを示す。制御装置105(30)は、制御装置105(10)がセットメーカ20を経由して、エンドユーザ30に搬入されたものであることを示す。区別の不要な場合は制御装置105と記載する。ここで、更新用FW102は非特許文献1に開示される方法あるいは類似の方法によって保護されていると仮定する。保護の方式についは特に制限を設けない。
同様に図1のエンドユーザ30でも、制御装置メーカ10から提供される開発ツール301が格納された、エンドユーザ装置300を有する。エンドユーザ30では、セットメーカ20で開発された最終製品に内包する形で、制御装置105(20)がリリースされる。なおセットメーカ20とは、制御装置メーカ10が製造した複数の制御機器を用いることで、複数の制御装置を含む最終製品を組み立てるメーカである。上記のように最終製品がPLCであれば、制御装置はCPUユニットや通信ユニットである。エンドユーザ装置300は制御装置105(30)と接続されており、エンドユーザ30もセットメーカ20と同様に、制御装置105(30)に対してエンドユーザ装置300に格納された開発ツール301を用いて、自身の目的に合わせて追加的な開発を行う。エンドユーザ30においても制御装置メーカ10からの通知か、あるいは定期確認によりFW更新の必要性を認識し、配信サーバ100からエンドユーザ装置300を介して更新用FW102をダウンロードする。ダウンロードされた更新用FW102は、エンドユーザ装置300を介して制御装置105(30)へ送信される。制御装置105(30)は、受信した更新用FW102で自身のFWを更新する。
以上がFWアップデートの基本構成と基本動作である。
次に図3〜図5を用いて、最終製品の製造元であるセットメーカ20が、制御装置105の持つFWアップデート機能を、エンドユーザ30に対して制御する方法を説明する。
図3は、セットメーカ20が制御装置105を含む最終製品をエンドユーザ30に出荷する工程を説明する図である。図4は、プロジェクトファイル202及びFWの更新ルールが記載されたルールファイル205を示す図である。図5は、セットメーカ20からエンドユーザ30に渡される制御装置105及びプロジェクトファイル202を示す。
まず図3、図4を用いて、セットメーカ20での動作を説明する。以下に説明するセットメーカ20における処理は、セットメーカ装置200によって行われる。
セットメーカ20は、制御装置105(20)のプログラムを、開発ツール201が格納されたセットメーカ装置200で開発する。その際に、一般にセットメーカ装置200に格納された開発ツール201は、制御装置105(20)のプログラムが、制御装置105(20)向けであることを管理する管理機能を有する。その管理機能の一つが、図3、図4に示すプロジェクトファイル202である。
プロジェクトファイル202で管理されるプログラム、パラメータやデータなどのファイル群は、制御装置105(20)の制御に必要なファイルの一式である。
(1)プロジェクトファイル202は、図4に示すように、プログラム、パラメータあるいはデータを、ファイル群として含む。セットメーカ装置200の開発ツール実行部210は、プロジェクトファイル202を管理することで、プログラム、パラメータあるいはデータなどのファイル群を管理する。
(2)図4の更新FW URL203は、プロジェクトファイル202で管理されるデータの一つである。更新FW URL203は、制御装置メーカ10が公開するウェブサイトの位置指定子である。このウェブサイトからは制御装置105の更新用FW102をダウンロードできる。
(3)ルールファイル URL204は、プロジェクトファイル202で管理されるデータの一つである。ルールファイル URL204は、セットメーカ20が公開するウェブサイトの位置指定子である。このウェブサイトからは最終製品のFWアップデートに関し、FWの更新ルールが定められたルールファイル205をダウンロードできる。FWの更新ルールとは、FWのアップデートの条件である。アップデートの条件の例としては、FWのバージョン205−1、アップデートした機能に関する属性205−2、アップデートによって解決する脆弱性の属性205−3などが挙げられる。尚、FWのバージョン205−1も属性情報であり、FWのバージョン205−1を含むこれらの属性情報は、更新用FW102に記載されている。なおルールファイル205も更新される。この更新は後述する。
図5のように、セットメーカ20は、最終製品を出荷する際に制御装置105(20)に対し、セットメーカ装置200の開発ツール実行部210がルールファイル205−1をインストールする。ここではルールファイル205−1はインストールされたルールファイル205を意味し、後にルールファイル205−1が、ルールファイル URL204へのアクセスによって更新された場合、ルールファイル205はルールファイル205−2と記載する。このインストールの際には、図5に示すように、ルールファイル205−1には、セットメーカ20の秘密鍵を用いて生成されたデジタル署名207が付加される。また、セットメーカ20は、最終製品を出荷する際に、制御装置105(20)に対し、ルールファイル205−1に付加されたデジタル署名207を検証する公開鍵206をインストールする。デジタル署名207と公開鍵206とは検証情報2060である。
図5に示すように、エンドユーザ30に対し、セットメーカ20からは最終製品とともに、プロジェクトファイル202がリリースされる。
次にエンドユーザ30における動作を説明する。図6は、エンドユーザ30が、制御装置105(30)のFWを更新する場合を説明する図である。図7は、制御装置105の構成を示すブロック図である。FWはプログラム記憶部1051に記憶されている。図8はエンドユーザ30における、エンドユーザ装置300及び制御装置105(30)の動作を示すシーケンス図である。
<***構成の説明***>
まず、図7を参照して制御装置105の構成を説明する。
プログラム更新装置11である制御装置105は、プログラム記憶部1051、ルール記憶部1052、更新情報受信部1053、判定部1054、更新部1055、ルール情報受信部1056、要求送信部1057、検証部1058を備える。プログラム記憶部1051は、プログラムであるファームウェアを記憶する。ルール記憶部1052は、ファームウェアの更新のルールが定められたルール情報2051であるルールファイル205を記憶する。更新情報受信部1053は、ファームウェアを更新するための更新情報1020である更新用FW102を受信する。判定部1054は、更新情報1020がルール情報2051に適合するかどうかを判定する。更新部1055は、判定部1054が適合すると判定した場合に、プログラム記憶部1051が記憶するファームウェアを、更新情報1020を用いて更新する。また更新部1055は、ルール情報を更新する。
ルール情報受信部1056は、ルール情報2051が更新された新版ルール情報2052を受信する。要求送信部1057は、新版ルール情報2052が受信された場合に、更新情報1020の送信を要求する送信要求51を送信する。この場合、更新情報受信部1053は、送信要求51の応答として、更新情報1020を受信し、判定部1054は、更新情報受信部1053が応答として受信した更新情報1020が、新版ルール情報2052に適合するかどうかを判定する。
ルール記憶部1052が記憶するルール情報2051は、検証情報2060を有している。検証部1058は、検証情報2060と、ルール情報受信部1056が受信した新版ルール情報2052とに基づいて、新版ルール情報2052が正当かどうかを検証し、検証の結果、正当でないと判定した場合に、新版ルール情報2052を破棄する。
ルール情報受信部1056は、ウェブサイト103にアップロードされた新版ルール情報2052をウェブサイト103からダウンロードするダウンロード装置3000から、新版ルール情報2052を受信する。この場合、ダウンロード装置3000は、エンドユーザ装置300である。
<***動作の説明***>
次に図6、図8を参照して、エンドユーザ装置300、制御装置105(30)の動作を説明する。
エンドユーザ30は、制御装置メーカ10やセットメーカ20からの通知、あるいは定期的な確認によりFW更新の必要性を認識する。エンドユーザ30は、開発ツール301とプロジェクトファイル202とが格納されたエンドユーザ装置300を用いて、最終製品に含まれる制御装置105(30)のメンテナンスを行う。
<ステップS101>
エンドユーザ装置300の開発ツール実行部310は、プロジェクトファイル202に規定されたルールファイルURL204を通信部320を用いて参照し、ルールファイル205−1の新しいバージョンがあるかどうかをチェックする。ここで、ルールファイル205のバージョンは、図4に示すように、プロジェクトファイル202で管理されている。
<ステップS102>
開発ツール実行部310は、新しいバージョンがある場合は、ウェブサイトのページからルールファイル205−2をダウンロードする。
<ステップS103>
開発ツール実行部310は、新しいバージョンのルールファイル205−2をダウンロードした場合、通信部320を介して制御装置105(30)へ送信する。なおエンドユーザ装置300は記憶部330にルールファイル205を格納している。開発ツール実行部310が制御装置105に送信するルールファイル205は、記憶部330のルールファイル205のコピーである。
<ステップS104>
制御装置105(30)のルール情報受信部1056は、新版ルール情報2052であるルールファイル205−2を受信する。検証部1058は、あらかじめセットメーカ20でインストールされた公開鍵206を用いて、ルールファイル205−1のデジタル署名207の正当性を検証する。なおルールファイル205−1はルール記憶部1052に記憶されている。検証部1058は、通常のデジタル署名207の検証方式を実行する。具体的には、検証部1058は、公開鍵206でデジタル署名207を復号し、復号値h1を生成する。また、検証部1058は、取得した新しいバージョンのルールファイル205−2に含まれる情報を用いてハッシュ値h2を生成し、復号値h1とハッシュ値h2とを比較する。検証部1058は、h1=h2の場合、検証成功と判定し、h1=h2でない場合は検証失敗と判定する。
<ステップS105>
検証失敗の場合は、検証部1058は、受信したルールファイル205−2を破棄し、エンドユーザ装置300にエラーを通知する。
<ステップS106>
検証部1058による検証が成功した場合、更新部1055は、受信した更新用のルールファイル205−2で、自身が保持するルールファイル250−1を更新する。また要求送信部1057は、エンドユーザ装置300に更新成功の通知を送信する。更新成功の通知は、更新用FW102の送信を要求する送信要求51である。
<ステップS107>
エンドユーザ装置300の通信部320が送信要求51を受信する。送信要求51が受信された場合、開発ツール実行部310は通信部320を介して更新FW URL203にアクセスし、ルールファイル205−2の示すルールに適合する更新用FW102があるかどうかを確認する。なお更新FW URL203の実体は、図2に示すように配信サーバ100である。開発ツール実行部310は、ルールに適合する更新用FW102がある場合には、適合する更新用FW102を更新FW URL203からダウンロードする(S108;YES)。開発ツール実行部310は、更新FW URL203にアクセスした結果、ルールファイル205−2のルールに適合する更新用FW102が無い場合は、ファームウェアアップデートが不要なことを表示装置などに出力して通知する(S108;NO)。
<ステップS109>
開発ツール実行部310は通信部320を介して、ダウンロードされた更新用FW102を、制御装置105(30)へ送信する。
<ステップS110>
更新情報受信部1053が、更新情報1020である更新用FW102を受信する。判定部1054は、受信された更新用FW102が、ルールファイル205−2の示すルールに適合するどうかを確認する。この時、前述のとおり、更新用FW102は非特許文献1に開示される方法あるいは類似の方法によって改竄から保護されていると仮定し、その保護の方法、方式についは特に制限を設けない。
<ステップS111>
ルールに適合する場合(S110でYES)は、更新部1055は、適合が確認(S110でYES)され、かつ、正当性が確認(S104でYES)された更新用FW102で、制御装置105(30)のFWを更新する。更新完了後、更新部1055は、正常終了をエンドユーザ装置300に送信する。
<ステップS110でNO>
なおルールに適合しない場合(S110でNO)、更新部1055は、FWを更新せず、更新不可をエンドユーザ装置300に送信する。
なお、実施の形態1のルールファイル205は単一のものではなく、エンドユーザ30毎に分けてもよいし、最終製品のバージョンごとに分けてもよい。
次に、図9〜図11を参照して、制御装置105(30)の備える各ユニットのFWの組み合わせに関するルールを説明する。
図9は、制御装置105(30)が複数のユニットA〜Eを有しており、複数のユニットA〜Eが、それぞれファームウェアA〜Eを使用する状態を示す。制御装置105(30)は、複数のユニットを備える複合ユニット装置である。図9では、更新FW群401は、更新用のファームウェアA〜Eからなる。更新用のファームウェアA、B等を更新用FW(A)、更新用FW(B)等と記す。更新用FW(A)は、図1等で述べた更新用FW102に相当する。更新用FW(B)〜更新用FW(E)も同様に、それぞれ更新用FW102に相当する。図10は、マスタユニットとなるユニットAの構成を示すブロック図である。ユニットAは図7の制御装置105と同じ構成である。図7のプログラム記憶部1051〜検証部1058は、図10のプログラム記憶部1051M〜検証部1058Mに対応し、機能も同様である。図11は、ユニットAの有するルールファイル205Aを示す。ルールファイル205Aはルール記憶部1052Mに記憶されている。図10に示すユニットAの動作は図8の制御装置105(30)の動作と同じであり、図7の制御装置105(30)をユニットAと読み替えることができる。但しルールファイル205Aの内容が異なる。
図9に示す制御装置105(30)は、FWが更新される可能性のあるユニットA、B、C、D、Eの、5つのユニットで構成される。これは例示であり、構成を限定するものではない。ここで、ユニットAが制御装置105(30)においてマスタの役割を果たすものとする。以下、ユニットAをマスタユニットAと呼ぶ。制御装置105(30)がPLCであれば、マスタユニットAがCPUユニットであり、スレイブとなるユニットB、C、D、Eが、CPUユニット以外の、通信用などのユニットである。
更新FW群401は、それぞれ、図8に示す方法でダウンロードされたものである(図8のS109)。
更新FW群401は、図9での経路41を経由する。すなわち、更新FW群401は必ずマスタユニットAを経由し、それぞれのユニットA〜EのFWが更新される。この更新処理では、マスタユニットAは、更新用FW(A)、FW(B)等がルールファイル205Aのルールに合致しているかを確認する。つまり、更新FW群401を更新する場合は、マスタユニットAが図8の制御装置105(30)の役割を果たすものであり、経路41の場合は、図8の制御装置105(30)が、マスタユニットAに置き換わる。経路41の場合は、前述のとおり、更新用FW(A)等に対する改竄は、非特許文献1に開示される方法あるいは類似の方法によって保護される。
一方、スレイブユニットB〜Eは、図9での経路42、すなわち、直接スレイブのユニットに対するFWの更新を許可しない。このように、スレイブユニットB〜EのFWの更新の際には、必ずマスタユニットAを経由させる。スレイブユニットは、制御部、通信部、FWを記憶する記憶部を有する(図示していない)。制御部は、通信部を介してFWの更新要求を受信した場合は、要求を拒否する。
マスタユニットAのルール記憶部1052Mは、図11のルールファイル205Aを記憶している。図11の例ではルールファイル205Aは、各ユニットのFWを更新してよいかどうかを更新可否情報205A−0として有する。マスタユニットAの判定部1054Mは、マスタユニットAの更新用FW(A)と、さらに、スレイブユニットB〜Eの更新用FW(B)〜FW(E)が、セットメーカ20がルールファイル205Aとして示すルールに従うFWであるかをチェックする。このチェックは、図8のS110に相当し、S110において、マスタユニットAの判定部1054Mは、ルールファイル205Aの示すルールを参照し、更新しようとするFWがルールに適合するかを判定する。具体的には以下の様である。判定部1054Mは、適合を判定するFWが更新用FW(B)の場合、更新可否情報205A−0を参照し、更新可なので適合と判定する。しかし適合を判定するFWが更新用FW(C)の場合、更新可否情報205A−0で更新不可であるため、判定部1054Mは、ルールに適合しないと判定する。
マスタユニットAでは、判定部1054Mが更新FW群401に対してルールに適合するかどうかを判定する他は、図8の制御装置105(30)の動作と同様である。判定部1054Mがルールに適合すると判定した場合、更新部1055MがFWを更新する。
次に図12〜図15を参照して、マスタユニットAが各ユニットからFWのバージョンを取得する場合を説明する。図9の場合と同様に、制御装置105(30)はユニットA〜Eを備える。
図12は、部品交換によって、意図せずFWの組み合わせが変更されるケースでの動作を示す。尚、図12は例示であり、構成や属性を限定するものではない。図13は、マスタユニットAが保有するルールファイル205Aを示す。ルールファイル205AのFWバージョン205A−1では、各ユニットに認められるFWのバージョンの上限が規定されている。FWバージョン205A−1では、バージョン1.2まで、FWが更新可能である。図14は、マスタユニットAが、さらに、各ユニットからFWのバージョンを取得するバージョン取得部1059Mを備える構成である。図15は、バージョン取得部1059MがFWからバージョンを取得する際の動作を示す。
図12のように、制御装置105(30)のユニットBが、ハードウェア故障を起こし、ユニットB−1と交換されるケースを想定する。このとき、ユニットBのFWバージョンは1.1であり、ユニットAに搭載されるルールファイル205AのFWバージョン205A−1に適合する。FWバージョン205A−1によれば、バージョン1.2まではFWを更新可能であるが、最新の1.3への更新は認められない。よって交換するユニットB−1に最新のバージョン1.3のFWが搭載されている場合、FWバージョン205A−1に適合しない。
<***動作の説明***>
<ステップS201>
マスタユニットAのバージョン取得部1059Mは、制御装置105(30)の起動時に、自身のFWのバージョンに加え、ユニットB〜EのそれぞれのFWのバージョンを、各FWから取得する。
<ステップS202>
判定部1054Mは、ルールファイル205Aに記載のルールと、取得されたバージョンとの整合性を確認する。
<ステップS203>
ユニットB−1に最新のバージョン1.3のFWが搭載されている場合、ルールとの整合性の確認により、判定部1054Mは、ユニットB−1が、ルールファイル205AのFWバージョン205A−1のルールに適合していないことを発見する。
この場合、要求送信部1057Mが、エンドユーザ装置300に、不敵適を示す不適合信号52を送信する。この不適合信号52は、送信要求51である。送信要求51は、送信を希望する更新用FWの情報を含む。適合しないことの通知は、エンドユーザ装置300に限らず、通知を受信し、表示する機能を有するマスタユニットAの表示機能部(図示していない)や、ネットワーク経由で、HMI(Human Machine Interface)、SCADA(Supervisory Control And Data Acquisition)など他の端末装置に送信してもよい。
<ステップS204、S205>
エンドユーザ装置300は送信要求51を受信した場合、開発ツール実行部310が更新FW URL203にアクセスし、配信サーバ100からルールファイル205Aのルールに適合する更新FW(B)(バージョン1.2)を取得し、制御装置105に送信する(S205)。
<ステップS206>
更新部1055Mは、ユニットB−1のFWを、更新用FW(B)を用いて更新する。このケースでは、エンドユーザ装置300とマスタユニットAとによって、ユニットB−1のファームウェアは「1.2」に更新され、処理が完了する。
<***効果の説明***>
実施の形態1の制御装置105は、セットメーカ20の提供するルールファイル205が格納される。よって、最終製品を製造するセットメーカ20は、制御装置105が持つFWアップデート機能のエンドユーザの使用を、制御及び制限できる。
実施の形態1では、ルールファイル205は更新が可能である。よって、セットメーカ20は、産業用制御装置が持つFWアップデート機能のエンドユーザの使用を、より詳細に、かつ、柔軟に、制御及び制限できる。
また、ルールファイル205はウェブサイトからダウンロード可能であるが、セットメーカ20はセットメーカ装置200で更新した新版ルールファイルをウェブサイトにアップロードできる。よって、セットメーカ20で容易にルールを変更することができ、また、容易に、変更後のルールをエンドユーザ30に提供できる。
実施の形態1では、マスタユニット判定部1054Mが、ルールファイル205Aを用いたスレイブの更新用FWをチェックするので、FWの組み合わせの管理が可能となり、エンドユーザ30による、不適切なFWアップデートがおこなわれないように制御できる。つまり、図11に示すルールファイル205Aに、セットメーカ20が個々の更新用FWの更新条件を規定することで、FWの組み合わせの更新を管理、制御することができる。また、マスタユニットAのマスタユニット判定部1054Mのみが、FWの更新の可否を判断し、スレイブユニット自体はFWを更新しない。よって、FWの組み合わせを統合して管理できる。
実施の形態1の制御装置105では、バージョン取得部1059MがFWのバージョンを取得し、判定部1054Mが、取得されたバージョンがルールファイル205Aに適合するか判定する。よってエンドユーザ30によってユニットが交換された場合にも、FWの組み合わせを管理できる。また、バージョンが適合しない場合は適合するバージョンの更新用FWが取得されるので、FWのバージョンが適合しない場合でも、バージョンの適合するFWに迅速に替えることができる。
実施の形態2.
図16を参照して実施の形態2を説明する。図16は配信サーバ100、セットメーカ装置200、エンドユーザ装置300、制御装置105、マスタユニットA等を、コンピュータで実現する場合のハードウェア構成例である。図16を参照して説明する。コンピュータである制御装置105を例に説明する。配信サーバ100、セットメーカ装置200、エンドユーザ装置300も、制御装置105の説明が当てはまる。
制御装置105は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。入力インタフェース905は、入力装置907に接続されている。ディスプレイインタフェース906は、ディスプレイ908に接続されている。
プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。メモリ903は、例えば、RAM(Random Access Memory)である。通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。入力インタフェース905は、例えば、USB(Universal Serial Bus)端子である。ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。ディスプレイインタフェース906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。入力装置907は、例えば、マウス、キーボード又はタッチパネルである。ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
補助記憶装置902には、図7に示すプログラム記憶部1051〜検証部1058の機能を実現するプログラムが記憶されている。また図14のマスタユニットAの場合であればプログラム記憶部1051M〜バージョン取得部1059Mの機能を実現するプログラムが記憶されている。プログラム記憶部1051〜検証部1058、及びプログラム記憶部1051M〜バージョン取得部1059Mをまとめて「部」と表記する。 このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。より具体的には「部」のうち記憶部は、プログラム、補助記憶装置902、メモリ903等により実現される。また「部」のうち送信部、受信部はプログラム、通信装置904等によって実現される。記憶部、送信部、受信部以外はプログラムによって実現される。補助記憶装置902には、OS(Operating System)も記憶されている。そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。図16では、1つのプロセッサ901が図示されているが、制御装置105が複数のプロセッサ901を備えていてもよい。そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
「部」を「サーキットリー」で提供してもよい。また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
上記のように、実施の形態1の制御装置105、マスタユニットの「部」の動作は、更新判定プログラムあるいはプログラム更新方法としても把握できる。
M マスタユニット、1 FWアップデートシステム、10 制御装置メーカ、11 プログラム更新装置、20 セットメーカ、30 エンドユーザ、40 通信ネットワーク、41,42 経路、51 送信要求、52 不適合信号、100 配信サーバ、102 更新用FW、1020 更新情報、103 ウェブサイト、110 制御部、120 更新情報生成部、130 通信部、140 記憶部、105,105(10),105(20),105(30) 制御装置、1050 ユニット装置、1051,1051M プログラム記憶部、1052,1052M ルール記憶部、1053,1053M 更新情報受信部、1054,1054M 判定部、1055,1055M 更新部、1056,1056M ルール情報受信部、1057,1057M 要求送信部、1058,1058M 検証部、1059M バージョン取得部、200 セットメーカ装置、201 開発ツール、202 プロジェクトファイル、203 更新FW URL、204 ルールファイルURL、205 ルールファイル、2051 ルール情報、2052 新版ルール情報、205−1 FWバージョン、205−2,205−3 属性、206 公開鍵、207 デジタル署名、2060 検証情報、210 開発ツール実行部、211 プロジェクトファイル生成部、212 ルール情報生成部、220 通信部、230 記憶部、300 エンドユーザ装置、3000 ダウンロード装置、301 開発ツール、310 開発ツール実行部、320 通信部、330 記憶部。
この発明は、制御装置、複合ユニット装置、更新判定プログラム及びプログラム更新方法も関する。

Claims (8)

  1. プログラムを記憶するプログラム記憶部と、
    前記プログラムの更新のルールが定められたルール情報を記憶するルール記憶部と、
    前記プログラムを更新するための更新情報を受信する更新情報受信部と、
    前記更新情報が前記ルール情報に適合するかどうかを判定する判定部と、
    前記判定部が適合すると判定した場合に、前記プログラム記憶部が記憶する前記プログラムを、前記更新情報を用いて更新する更新部と
    を備えるプログラム更新装置。
  2. 前記プログラム更新装置は、さらに、
    前記ルール情報が更新された新版ルール情報を受信するルール情報受信部と、
    前記新版ルール情報が受信された場合に、前記更新情報の送信を要求する送信要求を送信する要求送信部と
    を備え、
    前記更新情報受信部は、
    前記送信要求の応答として、前記更新情報を受信し、
    前記判定部は、
    前記更新情報受信部が応答として受信した更新情報が、前記新版ルール情報に適合するかどうかを判定する請求項1に記載のプログラム更新装置。
  3. 前記ルール記憶部が記憶する前記ルール情報は、
    検証情報を有し、
    前記プログラム更新装置は、さらに、
    前記検証情報と、前記ルール情報受信部が受信する前記新版ルール情報とに基づいて、前記新版ルール情報が正当かどうかを検証し、検証の結果、正当でないと判定した場合に、前記新版ルール情報を破棄する検証部を備えた請求項2に記載のプログラム更新装置。
  4. 前記ルール情報受信部は、
    ウェブサイトにアップロードされた前記新版ルール情報を前記ウェブサイトからダウンロードするダウンロード装置から、前記新版ルール情報を受信する請求項2または請求項3に記載のプログラム更新装置。
  5. マスタとなるユニット装置であるマスタユニットと、スレイブとなるユニット装置であるスレイブユニットとの複数のユニット装置を備える複合ユニット装置において、
    前記マスタユニットは、
    それぞれの前記ユニット装置のプログラムの更新のルールが定められたルール情報を記憶するルール記憶部と、
    それぞれの前記ユニット装置のプログラムを更新するための、前記ユニット装置ごとの更新情報を受信する更新情報受信部と、
    前記更新情報が前記ルール情報に適合するかどうかを判定する判定部と、
    前記判定部が適合すると判定した場合に、前記更新情報に対応する前記ユニット装置のプログラムを、前記更新情報を用いて更新する更新部と
    を備える複合ユニット装置。
  6. 前記マスタユニットは、さらに、
    それぞれの前記ユニット装置のプログラムのバージョンを、それぞれの前記ユニット装置から取得するバージョン取得部を備え、
    前記ルール記憶部が記憶する前記ルール情報は、
    それぞれの前記ユニット装置のプログラムに認められるバージョンが定められており、
    前記判定部は、
    前記バージョン取得部が取得したそれぞれの前記ユニット装置のプログラムのバージョンが、前記ルール情報に定められたバージョンに適合するかどうかを判定し、
    前記マスタユニットは、さらに、
    前記バージョン取得部が取得したそれぞれのバージョンの少なくとも一つが適合しないと判定された場合には、適合しないことを示す不適合信号を出力する要求送信部を備える請求項5に記載の複合ユニット装置。
  7. 記憶装置を有するコンピュータに、
    プログラムを前記記憶装置に記憶する処理、
    前記プログラムの更新のルールが定められたルール情報を前記記憶装置に記憶する処理、
    前記プログラムを更新するための更新情報を受信する処理、
    前記更新情報が前記ルール情報に適合するかどうかを判定する処理、
    適合する場合に、前記記憶装置が記憶する前記プログラムを、前記更新情報を用いて更新する処理、
    を実行させるための更新判定プログラム。
  8. プログラム記憶部、ルール記憶部、更新情報受信部、判定部、更新部を備えるプログラム更新装置が行うプログラム更新方法において、
    前記プログラム記憶部が、プログラムを記憶し、
    前記ルール記憶部が、前記プログラムの更新のルールが定められたルール情報を記憶し、
    前記更新情報受信部が、前記プログラムを更新するための更新情報を受信し、
    前記判定部が、前記更新情報が前記ルール情報に適合するかどうかを判定し、
    前記更新部が、前記判定部が適合すると判定した場合に、前記プログラム記憶部が記憶する前記プログラムを、前記更新情報を用いて更新するプログラム更新方法。
JP2016514185A 2015-04-23 2015-04-23 制御装置、複合ユニット装置、更新判定プログラム及びプログラム更新方法 Active JP5951162B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/062391 WO2016170641A1 (ja) 2015-04-23 2015-04-23 プログラム更新装置、複合ユニット装置、更新判定プログラム及びプログラム更新方法

Publications (2)

Publication Number Publication Date
JP5951162B1 JP5951162B1 (ja) 2016-07-13
JPWO2016170641A1 true JPWO2016170641A1 (ja) 2017-04-27

Family

ID=56375125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016514185A Active JP5951162B1 (ja) 2015-04-23 2015-04-23 制御装置、複合ユニット装置、更新判定プログラム及びプログラム更新方法

Country Status (3)

Country Link
JP (1) JP5951162B1 (ja)
TW (1) TWI599906B (ja)
WO (1) WO2016170641A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018055465A (ja) * 2016-09-29 2018-04-05 セイコーエプソン株式会社 印刷装置、及び印刷装置の制御方法
JP6539701B2 (ja) * 2017-09-12 2019-07-03 アセンテック株式会社 端末装置、シンクライアント変換方法およびシンクライアント変換プログラム
CN111078249B (zh) * 2019-11-08 2023-06-02 泰康保险集团股份有限公司 软件更新方法、系统、设备及存储介质
TWI761917B (zh) * 2020-08-19 2022-04-21 鴻海精密工業股份有限公司 程式調試方法、裝置及可讀存儲介質

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005202503A (ja) * 2004-01-13 2005-07-28 Hitachi Ltd 車載情報装置、車載機器管理システム、車両の制御機器のプログラムのバージョンアップ情報の配信方法、車両の制御機器のプログラムのバージョンアップ方法及び車両の制御機器のプログラムのバージョンアップシステム
US7970386B2 (en) * 2005-06-03 2011-06-28 Good Technology, Inc. System and method for monitoring and maintaining a wireless device
JP2009193218A (ja) * 2008-02-13 2009-08-27 Fuji Xerox Co Ltd ファームウェア更新装置およびファームウェア更新システム
US8364598B2 (en) * 2009-10-13 2013-01-29 Microsoft Corporation Use of software update policies
JP5392203B2 (ja) * 2010-08-19 2014-01-22 株式会社リコー 情報処理装置、情報処理システム、インストール支援方法、及びインストール支援プログラム
JP6025165B2 (ja) * 2012-04-27 2016-11-16 ハンファテクウィン株式会社Hanwha Techwin Co.,Ltd. 半導体製造装置の制御プログラムの更新システム

Also Published As

Publication number Publication date
TWI599906B (zh) 2017-09-21
TW201640407A (zh) 2016-11-16
JP5951162B1 (ja) 2016-07-13
WO2016170641A1 (ja) 2016-10-27

Similar Documents

Publication Publication Date Title
US11533187B2 (en) Device birth certificate
US11824847B2 (en) Device programming with system generation
TWI741041B (zh) 用於可程式化設備的統一程式設計環境
US9686278B1 (en) Method and system for configuring computing devices
EP3491576B1 (en) Device programming with system generation
US10860229B2 (en) Managing privileges of different entities for an integrated circuit
CN108885668B (zh) 用于用户数据的完整性检查的方法、处理器和设备
JP5951162B1 (ja) 制御装置、複合ユニット装置、更新判定プログラム及びプログラム更新方法
US20180131520A1 (en) Method and arrangement for securely interchanging configuration data for an apparatus
CN105518686B (zh) 软件撤销基础设施
US11412047B2 (en) Method and control system for controlling and/or monitoring devices
TW202123651A (zh) 利用系統產生的裝置程式化
CN109408486B (zh) 文件发布方法和系统、发布服务器和文件生成装置
JP2023525576A (ja) ソフトウェア更新のための認証キーの制御範囲
CN111324912A (zh) 文件校验方法、系统及计算机可读存储介质
CN116126380A (zh) 一种固件升级方法、装置、电子设备及存储介质
JP5472708B2 (ja) 検証装置とこれを用いたフィールド機器ソフトウェア更新システム
US20170006062A1 (en) Method for purposes of making a "zero knowledge" connection between an electronic unit and a computer
US20220103379A1 (en) Secured software workload provisioning to a trusted execution environment
CN117389614A (zh) 车辆软件的激活方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160420

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160607

R150 Certificate of patent or registration of utility model

Ref document number: 5951162

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250