TWI435192B - 控制裝置及管理裝置 - Google Patents

控制裝置及管理裝置 Download PDF

Info

Publication number
TWI435192B
TWI435192B TW099118839A TW99118839A TWI435192B TW I435192 B TWI435192 B TW I435192B TW 099118839 A TW099118839 A TW 099118839A TW 99118839 A TW99118839 A TW 99118839A TW I435192 B TWI435192 B TW I435192B
Authority
TW
Taiwan
Prior art keywords
authentication
program
unit
control program
processing unit
Prior art date
Application number
TW099118839A
Other languages
English (en)
Other versions
TW201128334A (en
Inventor
Akihiro Miura
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
Publication of TW201128334A publication Critical patent/TW201128334A/zh
Application granted granted Critical
Publication of TWI435192B publication Critical patent/TWI435192B/zh

Links

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Programmable Controllers (AREA)

Description

控制裝置及管理裝置
本發明係有關防止程式的非法使用的技術。
更具體而言,本發明係有關防止例如儲存於FA(Factory Automation,工廠自動化)系統的PLC(Programmable Logic Controller,可程式邏輯控制器)的控制程式(階梯程式,Ladder Program)的非法使用的技術。
一般而言於FA系統中,作為防止對於不想對其他公司(他人)公開的控制程式(階梯程式)等的保護資產的非法存取的手段,係採用利用密碼的方法或將保護資產加密的方法。
然而,利用密碼的方法有以下課題:關於建立密碼等的脆弱性,即使例如對控制程式設定密碼並控制存取,在其控制程式為由複數個開發者存取的情形,由於在複數個開發者間設定共通的密碼,故容易被他人所推測。
又,由於控制程式與密碼等用以認證的資訊係各別地管理,且認證處理亦為獨立於控制程式之外另外實現者,故若與控制程式之間無法賦予關聯,則變得不能對控制程式控制存取。
是故,有以下課題:雖然採用了將希望保護的資料本身加密的方法,但加密上為了管理金鑰而需要特別的硬體(hardware),裝置變為複雜而昂貴。
又,於FA系統的控制程式(階梯程式)中,係對應裝置的ON/OFF狀態,使傳至控制機器的控制訊號為ON/OFF,而在程式的執行中無法執行加密或解密的處理。
由此,以不採用加密而防止竄改或監控(monitor)控制程式的方法而言,係有針對從監控裝置而來之對控制程式的存取要求依據預先設定的存取權限限制應答的方法(例如專利文獻1)。
(先前技術文獻) (專利文獻)
專利文獻1:日本特開2005-135165號公報
如此根據預先設定的對各控制程式的存取權限,限制對來自監控裝置的存取要求的應答的方法,目的為進行從監控裝置的存取控制,而並非進行使控制程式僅能在特定的PLC上執行的控制。
是故,有以下課題:若擁有讀取權限則可從PLC讀取控制程式至監控裝置,且讀取了的控制程式可寫入至別的PLC,故可於實施了複製的PLC非法利用控制程式。
本發明為有鑑於前述之問題點所開發者,其主要目的為實現被許可僅使用在特定的控制裝置的控制程式(階梯程式),只能在特定的控制裝置上運作,實現防止控制程式被非法利用功能者。
關於本發明的控制裝置,係包括:特有識別資訊記憶部,係記憶獨一無二地設定在前述控制裝置的特有識別資訊者;程式輸入部,係將包含成為前述控制裝置的控制處理對象的對象裝置的裝置號碼且不允許前述控制裝置以外的裝置進行使用的階梯程式作為主程式予以輸入者;認證程式生成部,係根據前述特有識別資訊,將防止前述控制裝置以外的裝置使用主程式的階梯程式生成作為認證程式者;程式合成部,係將主程式及認證程式合成為合成程式者;以及記憶部,係記憶前述合成程式;其中,前述認證程式生成部係進行下述操作:將使用於認證的複數個認證用裝置的裝置號碼作為認證用裝置號碼予以管理,其中,前述裝置號碼係為擬似對象裝置的裝置號碼者;根據前述特有識別資訊,選擇一個以上的認證用裝置號碼;且將包含所選擇的選擇認證用裝置號碼的階梯程式予以生成為認證程式,該認證程式在作為前述合成程式與前述主程式一起同時執行之際,若以獨立於前述認證程式生成部的選擇動作之外的方式根據前述特有識別資訊正確地選擇前述選擇認證用裝置號碼,而對於對應於前述選擇認證用裝置號碼的各個選擇認證用裝置進行了預定的設定處理,則正確地動作而使前述主程式正常地動作;而在作為前述合成程式與前述主程式一同執行之際,當對於各個前述選擇認證用裝置未執行前述設定處理部時,則不會正常的動作,而停止前述主程式的動作。
於本發明,在主程式的儲存之際,將包含有根據獨一無二地設定於控制裝置的特有識別資訊所選擇的選擇認證用裝置號碼的階梯程式生成作為認證程式,並將認證程式合成至主程式,於主程式的執行之際若根據特有識別資訊正確地選擇選擇認證用裝置號碼,而於選擇認證用裝置進行有設定處理則主程式正常的運作,而在沒有進行設定處理的情形則藉認證程式使主程式停止。
是故,於控制裝置可正常的使用主程式的同時,在沒有許可使用主程式的裝置,則不能使用主程式,而可防止主程式的非法使用。
實施形態一至五係說明防止由於儲存於FA系統的PLC的控制程式(階梯程式)的非法複製,來製造PLC的仿造品的技術。
更具體而言,在將控制程式寫入PLC之際,使用用以個體識別PLC的序列ID以及在工程環境所生成的亂數生成認證資訊,進行PLC與控制程式的關聯之建立,並從所生成的認證資訊自動生成可插入於控制程式的認證階梯並插入控制程式中。
而且,在控制程式的執行時,藉由確認於所插入的認證階梯是在進行過建立關聯的PLC上執行,以防止非法的將控制程式複製至別的PLC以製造仿造品等的非法利用。
於此,認證階梯係指插入屬於主程式的控制程式的階梯程式,為認證程式的一例。
更具體而言,於控制程式的執行時為了確認符合特定的裝置號碼的專用裝置成為ON的狀態,而插入於控制程式的階梯程式係認證階梯。
於實施形態一至五中,係以PLC的序列ID及在工程環境側生成的亂數作為輸入而於雜湊(hash)函數(單向函數)生成認證資訊(雜湊值),並決定用以根據此認證資訊檢查專用裝置的ON/OFF的裝置號碼。包含有根據此認證資訊所決定的裝置號碼的階梯程式係認證階梯。
於此所生成的認證資訊,由於係以PLC的序列ID作為輸入藉由雜湊函數所生成,故每個PLC所生成的認證資訊係相異。
又,控制程式係包含稱為輸入裝置及輸出裝置的成為PLC的控制處理的對象的對象裝置的裝置號碼的階梯程式,且不允許受指定的PLC以外的裝置所進行之使用。
控制程式係主程式的一例。
亦將於控制程式插入有認證程式之後的程式稱作合成程式。
又,專用裝置係指用以記憶設置於PLC內的控制程式所使用的資料及ON/OFF訊號的記憶體,其僅能從PLC的韌體(firmware)設定,且設為即使使用工程環境使用者亦不能設定者。
專用裝置係與對象裝置不同,為為了防止控制程式的非法使用所特別設置的裝置。對專用裝置係設定為擬似對象裝置的裝置號碼的裝置號碼。且,專用裝置係認證用裝置的一例,而專用裝置的裝置號碼係認證用裝置號碼的一例。
又,使用者使用工程環境作成PLC的控制程式之際,依每個PLC創建用以管理程式、參數、以及認證資訊等的專案(project)。
根據以上內容,於以下說明各個實施形態一至五。
(第一實施形態)
第1圖係顯示本實施形態的非法利用防止系統的系統構成例。
於第1圖所示的非法利用防止系統,係用以使儲存於PLC的控制系統僅可於特定的PLC上執行的FA機器控制程式的非法利用防止系統。
本實施形態的非法利用防止系統,係分成工程環境側電腦(個人電腦,Personal Computer)100及PLC 200兩大類。
工程環境側電腦100係為一種電腦,包括:CPU(中央處理器,Central Processing Unit)、ROM(唯讀記憶體,Read Only Memory)、RAM(隨機存取記憶體,Random Access Memory)、磁碟裝置、及通訊埠等。
這種情形,用以實現作為工程環境側電腦100的內部要素所示的功能(「~部」)的程式係儲存於例如磁碟裝置,透過CPU適當地讀取這些程式,以執行各功能。
PLC200係記憶屬於階梯程式的控制程式,而CPU執行控制程式,並進行機器的控制。
工程環境側電腦100係管理裝置之一例,PLC200係控制裝置之一例。
其中,關於工程環境側電腦100及PLC200的內部構成係於後陳述。
又,第2圖係顯示本實施形態的運作例的流程圖。
具體而言,第2圖係顯示在將控制程式寫入PLC之際進行安全性設定,使控制程式及PLC建立關聯時的處理流程。
第2圖的處理流程的詳細內容係於後陳述。
又,第3圖係顯示於PLC生成認證階梯,將生成的認證階梯插入控制程式並於PLC儲存控制程式時的處理流程。
第3圖的處理流程的詳細內容係於後陳述。
第4圖係根據由認證階梯生成用亂數及PLC的序列ID生成的認證資訊所自動生成的認證階梯之例。
第4圖的詳細內容係於後陳述。
第5圖係於PLC的電源投入時韌體的初始化處理中,根據認證資訊設定了專用裝置之際之一例。
第5圖的詳細內容係於後陳述。
接著,使用第1圖,說明構成FA機器控制程式的非法利用防止系統的要素,該非法利用防止系統係在執行已儲存於PLC的控制程式時,確認是在受許可的PLC上執行者。
首先,說明工程環境側電腦100的構成要素。
元件符號1係工程環境側電腦100的使用者利用鍵盤或滑鼠等進行PLC的控制程式製作或參數設定用的輸入部。
元件符號2係使用者製作PLC的控制程式的控制程式製作部。
元件符號3係控制程式記憶部,用以儲存於控制程式製作部2所製作的控制程式者。
元件符號4係存取要求傳送處理部,將對PLC的存取要求(如將儲存於控制程式記憶部3的控制程式寫入PLC、或從PLC讀取等)傳送至PLC者。
元件符號5係控制程式寫入要求部,從輸入部1接收來自使用者的控制程式的寫入指示,讀取儲存於控制程式記憶部3的控制程式,而對存取要求傳送處理部4進行寫入至PLC的寫入要求者。
元件符號6a係安全性設定部,用以對於在工程環境側電腦100製作的控制程式使安全性設定從無效成為有效者。
元件符號7係生成亂數的亂數生成處理部。
更具體而言,亂數生成處理部7係在安全性設定部 6a 的安全性設定從無效設定至有效之時在專案(由以FA機器為單位製作的控制程式及參數設定等所構成的資訊)中所特有的,作為認證階梯的生成時的輸入所使用的亂數及在工程環境及PLC間進行認證之際,生成詰問/回應(Challenge and Response)認證用的亂數(詰問值)。
元件符號8a係認證階梯生成用亂數記憶部,進行於將安全性設定設為有效時使屬於控制程式的寫入目標的PLC與控制程式建立關聯,並儲存為了生成認證階梯而於亂數生成處理部7所生成的亂數者。
元件符號9a係序列ID記憶部,係儲存於將安全性設定設為有效時從屬於控制程式的寫入目標的PLC所讀取的用以個體識別PLC的序列ID(例如,製造號碼等)者。
元件符號10a係認證處理部,將在工程環境側電腦100側所生成的認證資訊及在PLC200生成的認證資訊作比較並進行認證者。
更具體而言,認證處理部10a係於對亂數生成處理部7進行亂數的生成的要求、以及於安全性設定部6a的安全性設定為有效的情形,對PLC進行控制程式的寫入/讀取時,為了確認存取目標的PLC為建立關聯的PLC,於每次的確認以在亂數生成處理部7生成的亂數、儲存於認證階梯生成用亂數記憶部8a的亂數、以及儲存於序列ID記憶部9a的序列ID作為輸入,以利用雜湊函數生成的雜湊值作為認證資訊,將此認證資訊與在PLC測生成的認證資訊作比較並進行認證者。
接著,說明PLC200的構成要素。
元件符號9b係序列ID記憶部,儲存PLC製造商於成品出貨時設定且使用者不能修改之用以個體識別PLC的序列ID(例如,製造號碼等)者。
序列ID係唯一地設定在PLC200,且為特有識別資訊的一例。
並且,序列ID記憶部9b係特有識別資訊記憶部的一例。
元件符號6b係安全性設定部,使得用以對控制程式進行存取限制的安全性設定為有效用者。
安全性設定部6b係與工程環境側的安全性設定同步,並接收來自於工程環境側的安全性設定的有效化要求而進行對於儲存在PLC的控制程式之存取限制。
元件符號8b係認證階梯生成用亂數記憶部,儲存和安全性設定有效化的要求一起傳送來的亂數者。
儲存於認證階梯生成用亂數記憶部8b的亂數,係於工程環境側電腦100的亂數生成處理部7生成,且與儲存於認證階梯生成用亂數記憶部8a的亂數為同樣的亂數。
認證階梯生成用亂數記憶部8b係亂數記憶部的一例。
元件符號11係存取要求接收處理部,在PLC側受理從工程環境的存取要求傳送處理部4所傳送來的存取要求,而執行對應要求內容之處理者。
又,存取要求接收處理部11係從工程環境側電腦100輸入控制程式寫入要求與控制程式(階梯程式)。
控制程式如前文所述,係包含成為PLC200的控制處理對象的對象裝置的裝置號碼的階梯程式,不允許被指定的PLC以外的裝置所作的使用。控制程式係主程式的一例。
又,存取要求接收處理部11係程式輸入部的一例。
元件符號10b係進行雜湊演算(單向演算)的認證處理部。
認證處理部10b係將儲存於認證階梯生成用亂數記憶部8b的亂數、儲存於序列ID記憶部9b的序列ID、以及於認證資訊的生成請求時所一同發送來的亂數(詰問值)作為輸入,使用雜湊函數生成雜湊值(回應)者。
更具體而言,認證處理部10b係在安全性設定部6b的安全性設定變為有效的情形中,早於認證階梯(認證程式)的生成,對應來自受理了來自工程環境的認證要求的存取要求接收處理部11b的認證資訊的生成請求,而生成雜湊值(回應值)。
認證處理部10b係單向演算部的一例。
元件符號12係控制程式寫入處理部,於已接受來自存取要求接收處理部11的控制程式的寫入要求時,確認安全性設定部6b的安全性設定,而在安全性設定為有效的情形指示進入插入認證階梯的處理,在無效的情形則維持在不包含認證階梯的原本的狀態下,指示進入將控制程式寫入PLC內的處理者。
元件符號13係生成認證階梯(認證程式)的認證階梯自動生成處理部。
認證階梯係可直接插入控制程式的階梯程式,係用以防止PLC200以外的裝置進行控制程式的使用的階梯程式。
認證階梯自動生成處理部13係於將控制程式儲存於執行用控制程式記憶部15時,根據於認證處理部10b產生的雜湊值選擇專用裝置(認證用裝置)中的特定的裝置的號碼,而生成包含有所選擇的特定的裝置的號碼(選擇認證用裝置號碼)的認證階梯。
並且,透過認證階梯插入處理部14將認證階梯與控制程式合成,儲存於執行用控制程式記憶部15。
又,詳細內容將於後敘述,於控制程式執行控制部16執行控制程式及認證階梯前,認證處理部10b係獨立於由認證階梯自動生成處理部13所進行之認證階梯的生成之外,另行根據序列ID及亂數生成雜湊值,且專用裝置設定部17根據雜湊值選擇特定的專用裝置的裝置號碼,對於對應於所選擇的裝置號碼的專用裝置進行預定的設定處理(使相應專用裝置從OFF狀態到ON狀態的設定處理)。
藉由專用裝置設定部17,正確地選擇與包含於認證階梯的專用裝置的裝置號碼為同樣的裝置號碼,於對於對應於該裝置號碼的專用裝置進行設定處理的情形,在控制程式執行控制部16執行控制程式及認證階梯之際認證階梯係正常地運作,於是,控制程式係正常地運作。另一方面,於沒有選擇正確的裝置號碼,結果沒有對正確的專用裝置進行設定處理的情形中,控制程式執行控制部16於執行控制程式及認證階梯之際認證階梯不會正常地運作,於是,控制程式的運作停止。
認證階梯自動生成處理部13係認證程式生成部的一例。
且,認證階梯自動生成處理部13係至少生成以下其中一者:成為包含所選擇的全部的裝置號碼且配置於控制程式的開頭的認證階梯(開頭認證程式)、以及包含任一個所選擇的裝置號碼且插入於控制程式的複數個插入位置而成的兩個以上的認證階梯(插入認證程式)。
例如,第4圖(a)係配置於控制程式的開頭的認證階梯的一例,第4圖(b)係插入於控制程式途中的插入位置的認證階梯的一例。
元件符號14係認證階梯插入處理部,將於認證階梯自動生成處理部13自動生成的認證階梯與控制程式合成者。
認證階梯插入處理部14在於控制程式的開頭配置了認證階梯的情形(於第4圖(a)中示例的認證階梯的情形)係配置於控制程式的開頭,在插入於控制程式的途中的插入位置的認證階梯的情形(於第4圖(b)中示例的認證階梯的情形)係插入於指定的插入位置。
認證階梯插入處理部14係程式合成部的一例。
且,控制程式及認證階梯合成後的程式亦稱作合成程式。
元件符號15係執行用控制程式記憶部,儲存在工程環境側所製作的控制程式或於認證階梯插入處理部14認證階梯被合成後的控制程式(合成程式)者。
執行用控制程式記憶部15係程式記憶部的一例。
元件符號16係控制程式執行控制部,在PLC200變成執行模式的情形,執行儲存於執行用控制程式記憶部15的控制程式者。
控制程式執行控制部16係程式執行部的一例。
元件符號17係專用裝置設定部,於PLC的電源投入時在PLC內的韌體的初始化處理中,從由儲存於認證階梯生成用亂數記憶部8b的亂數及儲存於序列ID記憶部9b的序列ID所生成的雜湊值抽出專用裝置的裝置號碼,而設定抽出的裝置號碼所符合的專用裝置為ON者。
專用裝置設定部17係設定處理部的一例。
接著,使用第1圖、第2圖及第3圖,說明將工程環境上的控制程式(階梯程式)寫入至PLC時的動作。
首先,說明關於在工程環境側電腦100上製作控制程式的順序。
使用者係使用工程環境側電腦100的輸入部1及控制程式生成部2進行控制程式的製作,而將所製作的控制程式儲存於控制程式記憶部3。
接著,說明將在工程環境側電腦100上製作的控制程式寫入PLC200之際的初次登錄時的順序。
使用者係將工程環境側電腦100與PLC200以USB(通用串列匯流排,Universal Serial Bus)纜線等連接成網路。
接著,使用存取要求傳送處理部4及存取要求接收處理部11進行工程環境與PLC間的資料接收傳輸。
在使用者使用輸入部1指示了將儲存於控制程式記憶部3的控制程式寫入至PLC時(第2圖的S201),控制程式寫入要求部5係從控制程式記憶部3讀取控制程式(S202)。
控制程式寫入要求部5係對安全性設定部6a確認安全性設定是有效或無效(S203)。
安全性設定為無效的情形,控制程式寫入要求部5係詢問使用者是否要使安全性設定變為有效。
接收到了來自使用者保持無效的指示的情形,控制程式寫入要求部5係指示於存取要求傳送處理部4進行控制程式寫入處理(S209)。
接收到了使用者將安全性設定設為有效的指示的情形,控制程式寫入要求部5係設定安全性設定部6a為有效(S204),而對認證處理部10a要求生成建立控制程式及PLC的關聯用的認證階梯生成用亂數。
接收了亂數生成的要求的認證處理部10a係對亂數生成處理部7要求亂數的生成。
亂數生成處理部7係生成亂數(S205),並傳遞亂數至認證處理部10a。
認證處理部10a係送回所接收的亂數至控制程式寫入要求部5。
控制程式寫入要求部5將從認證處理部10a接收到的亂數儲存於認證階梯生成用亂數記憶部8a(S206),又,對存取要求傳送處理部4提出附加認證階梯生成用亂數並將PLC的安全性設定為有效的要求。
存取要求傳送處理部4係在接收了將PLC的安全性設定設為有效的要求時,對PLC200的存取要求接收處理部11要求安全性設定的有效化,並一起傳送認證階梯生成用亂數而要求做控制程式及PLC的關聯建立(S207)。且,在此時間點,控制程式不會傳輸至PLC200。
於PLC200中,存取要求接收處理部11係在接收了安全性設定的有效化的要求時,設定安全性設定部6b為有效(S210),對認證處理部10b要求儲存在工程環境側電腦100生成的認證階梯生成用亂數,並要求取得PLC的序列ID。
認證處理部10b係將認證階梯生成用亂數儲存於認證階梯生成用亂數記憶部8b(S211),讀取儲存於序列ID記憶部9b的用以個體識別PLC200的序列ID並送回至存取要求接收處理部11。
此序列ID係於出貨PLC時PLC的製造商任意地設定的資訊,且為使用者無法設定/變更的資訊。
當從認證處理部10b接收序列ID時,存取要求接收處理部11則於對於安全性設定的有效化的要求之應答附加所接收到的序列ID,並送回至存取要求傳送處理部4(S212)。
於工程環境側電腦100,存取要求傳送處理部4係在收到了來自存取要求接收處理部11的應答時,將附加於應答的PLC200的序列ID送回至控制程式寫入要求部5,控制程式寫入要求部5將該序列ID儲存於序列ID記憶部9a(S208)。
於本實施形態,藉由儲存於認證階梯生成用亂數記憶部8a、8b的認證階梯生成用亂數、以及儲存於序列ID記憶部9a、9b的PLC的序列ID建立控制程式及PLC間的關聯,而將由此兩個資訊使用雜湊函數所生成的資訊設為認證資訊。
控制程式寫入要求部5係對存取要求傳送處理部4要求控制程式的寫入處理,存取要求傳送處理部4係將寫入要求及控制程式傳送至PLC的存取要求接收處理部11(S209)(第3圖的S301)。
於PLC200,存取要求接收處理部11係在收到了控制程式的寫入要求時,指示於控制程式寫入處理部12寫入控制程式。
控制程式寫入處理部12係在收到控制程式的寫入指示時,確認安全性設定部6b的安全性設定(S302),為無效的情形時則將所收到的控制程式以原本的狀態儲存至執行用控制程式記憶部15(S309)。
在安全性設定為有效的情形時,控制程式寫入處理部12係對於認證階梯自動生成處理部13指示認證階梯的生成。
認證階梯自動生成處理部13係接收來自控制程式寫入處理部12的認證階梯的生成指示,對認證處理部10b指示認證資訊的生成。
認證處理部10b係讀取儲存於認證階梯生成用亂數記憶部8b的亂數及儲存於序列ID記憶部9b的序列ID(S304、S305),對亂數及序列ID使用雜湊函數(單向性函數)生成認證資訊(雜湊值)(S306),並將所生成的認證資訊(雜湊值)送回至認證階梯自動生成處理部13。
認證階梯自動生成處理部13係依據從認證處理部10b接收的認證資訊自動生成認證階梯(以認證為目的的階梯程式)(S307),而對認證階梯插入處理部14指示將自動生成的認證階梯插入至控制程式。
認證階梯插入處理部14係在使用者使用工程環境側電腦PC100所製作的控制程式之特定位置插入於認證階梯自動生成處理部13所生成的認證階梯(S308)。
認證階梯插入處理部14係將插入了認證階梯的控制程式(合成程式)儲存至執行用控制程式記憶部15(S309),控制程式的寫入處理即結束。
又,於本實施形態,雖於認證資訊的生成輸入在工程環境側電腦100生成的亂數及PLC200的序列ID兩者,惟在此兩個訊號以外,亦可與例如搭載於PLC200的CPU的CPU種類組合而生成認證資訊。
由於此CPU種類係為在工程環境上於選擇屬於控制程式的寫入目的的PLC200之際所確定的工程環境內所處理的資訊,且亦為於PLC200側預先保持於內部的資訊,故係不會流通於通訊路徑(工程環境及PLC間)上的資訊,則認證資訊係難以被推測。
接著,使用第4圖及第5圖,說明根據認證資訊之認證階梯的生成與插入、以及於PLC的電源投入時在執行的初始化處理中的專用裝置的設定方法。
於此,說明將PLC200的序列ID設為例如「009910987654321」、將認證階梯生成用亂數設為例如「1234567890」的情形的認證階梯的生成方法。
又,於認證處理部10b將認證階梯生成用亂數及序列ID作為輸入,而將由雜湊函數所生成的認證資訊設為例如「EA 082 DFE1CBA7816」。
由雜湊函數所生成的認證資訊係利用PLC200的序列ID生成,由於在別的PLC其序列ID為相異,故不會生成相同的認證資訊。
於認證階梯自動生成處理部13,將生成的認證資訊以一位元組(byte)做劃分,所劃分的值係當作專用裝置的裝置號碼。
例如,若將最初的一位元組的「EA」當作專用裝置的裝置號碼(十進位表示)時則成為A234。於此的「A」,係使其代表專用裝置。
同樣地,將第二位元組、第三位元組當作專用裝置的裝置號碼時,則成為A8、A45、A254、A28、(以下省略)。
如此所選擇的裝置號碼,係相當於選擇認證用裝置號碼。
又,雖於PLC200的對象裝置的裝置號碼使用「X」等,而於控制程式以如「X50」示意對象裝置的裝置號碼,但為了近似於對象裝置的裝置號碼,而於認證階梯將專用裝置的裝置號碼設為「A234」。如此,於認證階梯,係對對象裝置的裝置號碼使用擬似的裝置號碼。
於認證階梯自動生成處理部13,係根據上述的資訊生成第4圖所示的認證階梯(階梯程式)。
第4圖(a)係包括所選擇的所有裝置號碼(A234、A8、A45、A254等),且為配置於控制程式的開頭而成之認證階梯的一例。
第4圖(a)的認證階梯係於執行時確認專用裝置(對應A234及A8等的專用裝置)的ON/OFF狀態,只要有一個為OFF狀態的專用裝置的情形,則將用以停止控制程式的執行的裝置(於第4圖(a)的例子係E99)設為ON。
由於在PLC係可對控制程式定義執行形式為僅做一次的執行,或每個固定週期的執行等,故此認證階梯係設定為於控制程式的執行時僅實施一次。
又,認證階梯自動生成處理部13係把在上述生成的認證階梯的專用裝置的裝置號碼當作控制程式的步驟數,於控制程式的該步驟數的位置插入認證階梯。
如第4圖(b)所示,例如在上述的例子中專用裝置A234的情形,係將裝置號碼234當作步驟數,而於控制程式的第234步驟插入認證階梯。
不過,於插入時係於將裝置號碼排序之後,從數字小者依順序將認證階梯插入於控制程式的所符合之步驟數目。
藉此,即使是控制程式的執行中,亦可確認控制程式正在建立了關聯的PLC上執行。
例如,於將認證階梯寫入於別的PLC而執行之際,專用裝置的A234為OFF的情形,於第4圖(b)示意的例子中插入了認證階梯的輸出部的命令係成為不執行(於圖中右側記載的Y0不會設定為ON)。
是故,控制程式不能正常地運作,連接於PLC的FA機器亦為不能正常地控制,故可防止控制程式的非法利用。
在第4圖的例子中為了方便說明於認證階梯自動生成處理部13生成的認證階梯係以階梯圖的形式表示,但實際上在PLC200上所生成的認證階梯係以執行碼的形式生成。
接著,說明關於在PLC200的電源投入時,於韌體的初始化處理中設定專用裝置之際的運作。
於韌體的初始化處理,專用裝置設定部17係將專用裝置清除為0,並確認PLC200的安全性設定部61b是否為有效。
安全性設定為無效的情形,則不對專用裝置做任何設定。
安全性設定為有效的情形,專用裝置設定部17係對認證處理部10b要求認證資訊的生成,接到此要求的認證處理部10b係由儲存於認證階梯生成用亂數記憶部8b的亂數及儲存於序列ID記憶部9b的PLC的序列ID使用雜湊函數生成認證資訊(雜湊值)。
專用裝置設定部17係收到於認證處理部10b生成的認證資訊(雜湊值),並以認證階梯自動生成處理部13生成專用裝置的裝置號碼的方式將認證資訊以一位元組作劃分,將經劃分的一位元組的值當作裝置號碼,而設定符合該裝置號碼的專用裝置為ON。
於第5圖中所示的例子,係將A234、A8、A45、A254、A28的專用裝置設定為ON的情形。
在韌體的初始化處理結束,PLC200成為執行模式(控制程式的執行)的情形,控制程式執行控制部16係執行儲存於執行用控制程式記憶部15的控制程式,並藉由配置於控制程式的開頭的認證階梯(第4圖(a)),確認於上述初始化處理所設定的專用裝置的特定裝置的ON/OFF狀態,只要有一個成為確認對象的專用裝置為OFF的情形,即判斷屬於控制程式被非法複製的PLC上的運作,而可停止控制程式的執行。
又,即使是控制程式的執行中,亦藉由插入於控制程式中的認證階梯(第4圖(b))確認控制程式的非法利用,且確認為非法利用時,控制程式不會正常運作,故可防止控制程式的因非法複製在仿造品上的利用。
又,由於PLC係自動生成認證階梯,且於控制程式的執行時執行認證階梯以判斷非法利用,故可在不會讓使用者意識下防止控制程式的非法利用。
受許可使用控制程式的PLC200在使用控制程式的情形中,因為係使用與認證階梯生成時使用的序列ID及亂數為相同的序列ID及亂數,故於初始化處理中應當會選擇正確的裝置號碼(與包含於認證階梯的裝置號碼相同的裝置號碼),而正確地設定專用裝置。
是故,在被許可使用控制程式的PLC200,係總是能使控制程式正常地運作。
另一方面,未被許可使用控制程式的裝置(PLC200以外的裝置),因為無法知悉於認證階梯生成時於PLC200使用的序列ID及亂數,故無法於初始化處理選擇正確的裝置號碼,從而,專用裝置不會被正確地設定。
是故,在未被許可使用控制程式的裝置,控制程式的運作係停止,而無法使用控制程式。
如此,根據本實施形態,對於儲存於PLC的控制程式,於製作了PLC的序列ID及控制程式之際,從在工程環境側生成的亂數生成認證資訊,從所生成的認證資訊自動生成可直接插入於控制程式的認證階梯,而於控制程式的執行時確認是在事先建立了關聯的PLC上執行,藉此可在不讓使用者意識到下在控制程式及PLC間進行認證,且因應認證結果停止控制程式的執行,從而得以防止控制程式的非法利用。
以上,於本實施形態,係說明了一種FA機器控制程式的非法利用防止系統:係於即使將控制FA機器的控制程式(階梯程式)非法複製至其他的FA機器,在複製有控制程式的FA機器上亦使控制程式不能正常地運作的FA機器控制系統的非法利用防止系統,藉由根據用以對FA機器進行控制程式及參數等的設定及確認的工程環境(應用程式,application)及控制程式,對應輸入機器的指令訊號的ON/FF使輸出機器為ON/OFF,進行循序(sequence)控制(按照事先設定的順序、條件,使對象如預想般運作者)的PLC所實現的防止控制程式的非法利用的裝置,包括:輸入部,係用以對工程環境指示使用者製作控制程式、輸入參數等、以及功能的執行者;控制程式製作部,使用者使用前述輸入部製作在PLC上執行的控制程式(階梯程式)者;控制程式記憶部,係用以儲存在前述控制程式製作部製作的PLC用控制程式者;存取要求傳輸處理部,係用以從工程環境對PLC要求控制程式及參數等的寫入/讀取,且接收其應答者;控制程式寫入要求部,進行用以將儲存於前述控制程式記憶部的控制程式寫入至PLC的處理;安全性設定部,用於僅對在工程環境上所製作的控制程式的安全功能設定為有效的情形者;亂數生成處理部,用以生成在於PLC生成認證階梯之際所使用的亂數、與在控制程式及PLC之間進行認證之際利用的亂數者;認證處理部,接收來自前述控制程式寫入要求部的亂數生成要求,對前述亂數生成處理部請求亂數的生成,或為了在控制程式與PLC之間進行認證而從用以個體識別亂數及PLC的資訊使用雜湊函數(單向函數)生成認證資訊者;認證階梯生成用亂數記憶部,用以儲存於前述亂數生成處理部生成的亂數且於PLC生成認證階梯之際使用的亂數;序列ID記憶部,用以儲存於實施將儲存於前述控制程式記憶部的控制程式初次寫入於PLC之際,從PLC抽出之用以個體識別PLC的序列ID(製造號碼等)者;存取要求接收處理部,用以受理來自工程環境的存取要求,對應此存取要求將要求內容傳送至各處理部者;安全性設定部,僅在使對於儲存於PLC的控制程式的安全性功能為有效的情形時設定者;認證階梯生成用亂數記憶部,用以儲存為了生成認證階梯而在工程環境側所生成並傳輸來的亂數者;序列ID記憶部,儲存用以個體識別PLC的序列ID;控制程式寫入處理部,接收來自前述存取要求接收處理部的控制程式之寫入要求,進行控制程式的寫入者;雜湊值生成處理部,在前述安全性設定部的安全性功能設定為有效的情形,由儲存於前述認證階梯生成用亂數記憶部的亂數及儲存於前述序列ID記憶部的序列ID,使用與工程環境側的前述認證處理部相同的演算法生成認證資訊者;認證階梯自動生成處理部,於PLC寫入控制程式之際,根據在前述雜湊值生成處理部所生成的雜湊值自動生成認證階梯者;認證階梯插入處理部,將於前述認證階梯自動生成處理部生成的認證階梯插入從工程環境傳送來的控制程式者:執行用控制程式記憶部,在前述安全性設定部的安全性功能設定為無效的情形,係將從工程環境傳送來的控制程式依照原本的狀態儲存,或者在前述安全性設定部的安全性功能設定為有效的情形,於前述認證階梯插入處理部儲存插入了認證階梯的控制程式者;控制程式執行控制部,PLC在變成執行模式的情形,執行儲存於前述執行用控制程式記憶部的控制程式者;以及專用裝置設定部,於在PLC的電源投入時搭載於PLC的韌體所執行的初始化處理中,根據從認證階梯生成用亂數及序列ID於前述認證處理部所生成的雜湊值,進行PLC內的專用裝置的設定者。
(第二實施形態)
在本實施形態中,係說明考慮到於工程環境製作的控制程式的規模及性能面的影響,調整於認證階梯自動生成處理部13自動生成的認證階梯的數量的功能。
第6圖係考慮到控制程式的規模及性能面的影響,調整自動插入的認證階梯的數量的FA機器控制程式的非法利用防止系統的功能構成。
由於工程環境側電腦100的內部構成係與第1圖的構成相同,故省略說明。
PLC200於本實施形態,係追加有:執行限制時間記憶部18、認證階梯性能確認部19及認證階梯插入判斷部20。
上述以外的要素係與第1圖所示者相同。
執行限制時間記憶部18係儲存執行由使用者所設定的控制程式之際的限制時間。
也就是,執行限制時間記憶部18係將控制程式與認證階梯合成後的程式(合成程式)的執行所需時間的容許範圍予以記憶為限制時間(容許時間)。
執行限制時間記憶部18係容許時間記憶部的一例。
認證階梯性能確認部19係計算出儲存於執行限制時間記憶部18的限制時間與控制程式的執行時間的差,並確認可插入認證階梯的空檔時間。
也就是,認證階梯性能確認部19係預測控制程式的執行時間,將預測了的控制程式的執行時間(預測所需要時間)與限制時間的差作為空檔時間計算出。
認證階梯性能確認部19係所需要時間預測部的一例。
認證階梯插入判斷部20係判斷從工程環境側電腦100到PLC200的寫入要求的控制程式的規模(例如步驟數)及對應於在認證階梯性能確認部19計算出的空檔時間而插入的認證階梯的數量。
也就是,認證階梯插入判斷部20係根據從認證階梯性能確認部19所計算出的空檔時間(控制程式的執行時間與限制時間的差),決定包含於認證階梯的裝置號碼的個數。
此時,認證階梯自動生成處理部13係選擇由認證階梯插入判斷部20所決定的個數數量的認證用裝置號碼以生成認證階梯。
又,認證階梯插入判斷部20係判斷控制程式的程式大小是否在預定的大小以上,若控制程式的程式大小未達預定的尺寸,則對認證階梯自動生成處理部13使其保留認證階梯的生成,若控制程式的程式大小在預定大小以上,則對認證階梯自動生成處理部13指示認證階梯的生成。
認證階梯插入判斷部20係個數決定部及程式大小判斷部的一例。
接著,說明關於在將控制程式寫入至PLC200的處理中,考慮到控制程式的規模及性能面,而判斷插入的認證階梯的數量之際的運作。
儲存於執行限制時間記憶部18的限制時間,係於工程環境側電腦100由使用者所設定,與控制程式的寫入相同地從工程環境側電腦100以參數的寫入要求儲存於執行限制時間記憶部18。
此限制時間係指於使用者所指定了的時間以內,控制程式的執行非得要終結的時間,例如,在將控制程式的執行類型設為固定週期的情形等,於指定了的週期內,控制程式的執行非得要終結的時間。
控制程式寫入處理部12係在接收了控制程式的寫入要求時,通知認證階梯性能確認部19控制程式的寫入要求。
認證階梯性能確認部19係提取儲存於執行限制時間記憶部18的限制時間,並從控制程式中的命令數計算出預測執行時間,且確認與從執行限制時間記憶部18提取的限制時間的差。
由於對控制程式的各種命令已決定了執行時間(基準),故認證階梯性能確認部19係可計算出預測執行時間。
認證階梯性能確認部19係由此限制時間與預測執行時間的差,確認認證階梯可插入的空檔時間,並將此空檔時間傳遞至認證階梯插入判斷部20。
認證階梯插入判斷部20係確認接收了寫入要求的控制程式的規模,如規模小的情形則中止認證階梯的插入(對認證階梯自動生成處理部13使其保留認證階梯的生成),而將插入認證階梯前的狀態的控制程式儲存於執行用控制程式記憶部15。
例如,這係為了使懷有惡意的使用者不容易以下述方式進行認證階梯的生成方法等之解析,即實行假的控制程式的寫入要求,以將插入了認證階梯的控制程式讀取至工程環境側,而生成插入於控制控制程式的認證階梯的方法等。
以中止認證階梯的插入的基準而言,例如,由於在生成認證階梯之際係以一位元組劃分認證資訊,故在控制程式的步驟數在256步驟以下的情形,可判斷為中止於控制程式插入認證階梯。
在足夠規模的控制程式的情形中,認證階梯插入判斷部20係依據在認證階梯性能確認部19計算出的空檔時間判斷可插入的認證階梯的數量。
又,在控制程式的規模大的情形中,由於控制程式的插入位置集中於前半部份(到255步驟為止),故認證階梯插入判斷部20為了使認證階梯插入至整體控制程式,而對應控制程式的規模決定步驟數的計算方法。
例如於第一實施形態,係將認證資訊以一位元組劃分的值當作步驟數,惟也可考慮對應於控制程式的規模以兩位元組、三位元組將認證資訊劃分的值當作步驟數的方法。
如此,在第4圖(b)中所示例的將認證階梯插入控制程式的情形中,在按照預定的插入位置決定演算法(例如,於第一實施形態所示的將認證資訊以一位元組的單位劃分的演算法)所決定的插入位置係集中於控制程式的特定部分的情形,認證階梯插入判斷部20係按照該插入位置決定演算法以外的演算法,且為令認證階梯的插入位置在控制程式中更加分散的演算法(例如以兩位元組單位、三位元組單位劃分認證資訊的演算法)決定插入位置。
又,認證階梯插入判斷部20係將可插入於控制程式的認證階梯的數目及插入認證階梯的步驟數的計算演算法通知至認證階梯自動生成處理部13。
認證階梯自動生成處理部13係按照來自認證階梯插入判斷部20所指示的演算法,生成來自認證階梯插入判斷部20所指示的個數數量的裝置號碼的認證階梯。
且,由認證階梯自動生成處理部13所進行的認證階梯的生成順序本身,係與第一實施形態相同。
如此,根據本實施形態,透過考慮控制程式執行時對性能面的影響而調整認證階梯的插入數目,可在不妨礙控制程式的實際運作下防止控制程式的非法利用。
又,透過對應控制程式的規模變更插入階梯之位置,可使懷有惡意的使用者難以做解析,而可檢測出廣範圍下執行中的控制程式的非法利用。
以上,於本實施形態,係說明了一種FA機器控制程式程式的非法利用防止系統,其包括:執行限制時間記憶部,考慮在於認證階梯自動生成處理部生成認證階梯之際對性能面的影響,而儲存由使用者設定的控制程式的執行時間的限制時間者:認證階梯性能確認部,計算出儲存於前述執行限制時間記憶部的限制時間與使用者製作的控制程式的執行時間的差,並確認可插入認證階梯的空檔時間者;以及認證階梯插入判斷部,於自動生成認證階梯之際,對應於控制程式的規模及於前述認證階梯性能確認部所計算出的空檔時間,判斷插入的認證階梯的數目者。
(第三實施形態)
在本實施形態中,係說明為了使插入於從PLC讀取了的控制程式的認證階梯不讓使用者看到而過濾(flitering)認證階梯的同時,對使用者編輯後的控制程式配合根據認證資訊所計算出的步驟數,調整認證階梯的插入位置的功能。
第7圖係顯示關於本實施形態的非法利用防止系統的功能構成。
於第7圖所示的非法利用防止系統,係為了使插入於控制程式的認證階梯不讓使用者看到而對認證階梯做過濾處理,並於控制程式的編輯後調整認證階梯的插入位置。
於工程環境側電腦100,係追加有控制程式讀取要求部21、認證階梯過濾處理部22、認證階梯插入位置調整處理部23及顯示部30。
其他的要素係與第1圖所示者相同。
且,於本實施形態,存取要求傳送處理部4係將插入有認證階梯的控制程式(合成程式)從PLC200輸入。
於本實施形態,存取要求傳送處理部4係程式輸入部的一例。
且,與第一實施形態同樣地,控制程式在PLC200以外的使用係不被允許。
又,認證階梯係與第一實施形態所示者相同。
又,認證階梯生成用亂數記憶部8a係記憶於第一實施形態所說明的認證階梯生成用亂數的亂數記憶部的一例。
又,序列ID記憶部9a係記憶於第一實施形態所說明的PLC200的序列ID,而為特有識別資訊記憶部的一例。
控制程式讀取要求部21係接收來自使用者的控制程式的讀取指示,對存取要求傳送處理部4要求控制程式的讀取。
認證階梯過濾處理部22係根據在認證處理部10a生成的認證資訊,將從PLC200讀取的控制程式內的認證階梯的插入位置予以特定,在於控制程式生成部2將控制程式顯示於顯示部30之際,為了不讓使用者看到認證階梯而進行控制程式的過濾(不顯示設定)。
也就是,認證階梯過濾處理部22係根據對為認證階梯生成用亂數記憶部8a的亂數及序列ID記憶部9a的序列ID的雜湊值的認證資訊,按照與PLC200的認證階梯的插入位置決定演算法相同的演算法,判別各個認證階梯的位置,對各個認證階梯進行不顯示設定。
認證階梯過濾處理部22係不顯示設定部的一例。
顯示部30係根據由認證階梯過濾處理部22所致的不顯示設定,不顯示認證資料,僅顯示控制程式。
認證階梯插入位置調整處理部23係在於控制程式製作部2進行控制程式的編輯之後,將根據認證資訊所計算出的認證階梯的插入位置(步驟數),調整成使其插入原本的步驟數的位置。
也就是,在控制程式被編輯而控制程式受更新的結果,其中任一個的認證階梯的配置變動了的情形中,認證階梯插入位置調整處理部23係將該認證階梯的位置回復為變動前的位置。
例如,第4圖(b)的例子中,在使用者編輯了控制程式的結果,第234步驟的A234往後偏離一個至第235步驟的位置的情形中,認證階梯插入位置調整處理部23係將A234回復至原本的第234步驟的位置(使其在X50之前的位置)。
認證階梯插入位置調整處理部23係位置調整部的一例。
於PLC200,係追加有控制程式讀取處理部24。
控制程式讀取處理部24係從執行用控制程式記憶部15讀取控制程式(合成程式)。
又,於本實施形態,存取要求接收處理部11係將藉控制程式讀取處理部24所讀取的控制程式輸出至工程環境側電腦100。
於本實施形態,存取要求接收處理部11及控制程式讀取處理部24係相當於程式輸出部。
且,於第7圖,於PLC200與本實施形態的運作沒有直接關係的要素係省略其圖示。
然而,PLC200係包含控制程式寫入處理部12、認證階梯自動生成處理部13、認證階梯插入處理部14、控制程式執行控制部16、專用裝置設定部17等在第一實施形態及第二實施形態說明過的要素者。
接著,說明關於安全性設定部6a的安全性設定變為有效的情形中,於提出控制程式的讀取要求的情形中所執行的認證。
當控制程式讀取要求部21從輸入部1接收儲存於PLC200的控制程式的讀取要求時,確認安全性設定部6a的安全性設定,於安全性設定為有效的情形中,為了實施與PLC200之間的詰問/回應,要求於認證處理部10a生成詰問值(亂數)。
認證處理部10a係對亂數生成處理部7要求亂數的生成,並將收到的亂數送回至控制程式讀取要求部21。
控制程式讀取要求部21係對存取要求傳送處理部4要求在與PLC200之間進行詰問/回應的認證。
存取要求傳送處理部4係對存取要求接收處理部傳送認證要求及詰問值(亂數)。
收到了認證要求的存取要求接收處理部11,係對認證處理部10b傳遞收到的詰問值,並指示回應值的生成。
認證處理部10a係接收回應值生成要求,將儲存於認證階梯生成用亂數記憶部8b的亂數及儲存於序列ID記憶部9b的序列ID,以及作為詰問值而所收到的亂數作為輸入,於雜湊函數生成回應值(雜湊值),所生成的回應值送回存取要求接收處理部11。
存取要求接收處理部11係將接收到了的回應值送回至存取要求傳送處理部4,收到了回應值的存取要求傳送處理部4係將回應值送回控制程式讀取要求部21。
控制程式讀取要求部21係對認證處理部10a傳送所收到的回應值,認證處理部10a係與PLC200使用相同的演算法,將儲存於認證階梯生成用亂數記憶部8a的亂數、儲存於序列ID記憶部9a的序列ID、以及先前生成的詰問值作為輸入於雜湊函數中生成雜湊值,並與回應值做比較,將比較結果通知控制程式讀取要求部。
控制程式讀取要求部21係在比較結果為不一致的情形中止控制程式的讀取處理,並對使用者通知無法從PLC的控制程式的讀取。
比較結果一致了的情形,控制程式讀取要求部21係對存取要求傳送處理部4指示控制程式的讀取要求。
存取要求接收處理部11係在接收了控制程式讀取要求後對控制程式讀取處理部24指示控制程式的讀取。
控制程式讀取處理部24係從執行用控制程式記憶部15讀取控制程式,送回至存取要求接收處理部11。
控制程式讀取要求部21係將從PLC200讀取了的控制程式儲存於控制程式記憶部3。
如此,在安全性設定為有效的情形中,係使用控制程式與PLC的建立關聯的資訊進行認證,於未具有同樣的建立關聯的資訊的專案及PLC之間係控制成使控制程式不能進行寫入及讀取處理。
此係為了使儲存於PLC的控制程式不會輕易的被讀取至外部並製作非法的備份。
且,於本實施形態設成:在控制程式的讀取時係實施了認證處理,而實施控制程式的寫入處理的情形亦使其同樣地進行認證處理。
又,於本實施形態,雖僅從工程環境側進行認證要求,然於PLC200側對執行用控制程式記憶部15有存取要求的情形,亦可向工程環境側電腦100要求認證。
接著說明關於為了不讓使用者看到插入於從PLC讀取了的控制程式的認證階梯的過濾處理。
使用者使用輸入部1提出儲存於控制程式記憶部3的控制程式的顯示/編輯的指示之際,認證階梯過濾處理部22係取得在認證處理部10a生成的認證資訊,並根據所取得的認證資訊於認證階梯插入處理部14確認插入於控制程式的認證階梯的插入位置(由認證資訊計算出步驟數,以掌握認證階梯的插入位置)。
認證階梯過濾處理部22係從控制程式記憶部3讀取控制程式,並對設定使其僅執行一次的認證階梯(示例於第4圖(a)的認證階梯)及位於前述計算出的步驟數的認證階梯(插入於控制程式中特定的步驟數的認證階梯:示例於第4圖(b)的認證階梯)進行不顯示設定。
控制程式製作部2係在顯示收到的來自於認證階梯過濾處理部22的控制程式之際,確認被設定不顯示設定的位置,進行不顯示經不顯示設定的位置的認證階梯的控制並輸出於顯示部30,顯示部30係不顯示認證階梯而僅顯示控制程式。
又,認證階梯插入位置調整處理部23係對於在控制程式製作部2受編輯後的控制程式,根據於在認證處理部10a生成的認證資訊,將因由使用者追加或刪除命令所產生的認證階梯插入位置(步驟數)回復至原本的位置之後,將控制程式儲存於控制程式記憶部3。
如此,根據本實施形態,藉由不讓使用者看到認證階梯,防止了正規的使用者錯刪除或變更認證階梯,且可使懷有惡意的使用者做的非法利用防止方法的解析變得困難,以防止控制程式的非法利用。
以上,於本實施形態,係說明了一種FA機器控制程式的非法利用防止系統,包括:控制程式讀取要求部,從工程環境接收儲存於PLC的執行用控制程式記憶部的控制程式的讀取要求,而對存取要求傳送處理部下達控制程式的讀取指示,將所讀取的控制程式儲存於控制程式記憶部者;認證階梯過濾處理部,在使用者顯示/編輯插入有認證階梯的控制程式的情形,為了讓使用者看不到認證階梯而施加過濾者;認證階梯插入位置調整處理部,於使用者在控制程式製作部編輯了控制程式的情形,進行將原本配合認證資訊而插入的認證階梯回復到原本的位置的處理者;以及控制程式讀取處理部,進行從執行用控制程式記憶部讀取控制程式的處理者。
(第四實施形態)
於本實施形態,係說明以下功能:為了不讓使用者清楚專用裝置的存在,對於從PLC讀取的控制程式,將於認證階梯插入處理部14插入的認證階梯的專用裝置替換為既存的裝置。
第8圖係顯示關於本實施形態之非法利用防止系統的功能構成。
於第8圖的非法利用防止系統,係按照事先設定於轉換表的轉換規則將插入於控制程式的認證階梯的專用裝置的號碼置換為既存的裝置的號碼。
工程環境側電腦100的各個構成要素,係已於第一至第三實施形態說明過者,故省略其說明。
於PLC200,係在第7圖的構成追加了認證階梯轉換表記憶部25及認證階梯轉換處理部26。
且,第8圖,於PLC200亦省略與本實施形態的運作沒有直接關係的要素的圖示。
然而,於PLC200,係設成使其包含控制程式寫入處理部12、認證階梯自動生成處理部13、認證階梯插入處理部14、控制程式執行控制部16、及專用裝置設定部17等在第一及第二實施形態已說明過的要素。
認證階梯轉換表記憶部25係儲存在有來自工程環境側電腦100的控制程式的讀取要求的情形,將插入於控制程式中的認證階梯的專用裝置號碼轉換為既存的裝置號碼之際所利用的轉換表。
認證階梯轉換處理部26係使用儲存於認證階梯轉換表記憶部25的轉換表,進行將專用裝置號碼置換為既存的裝置號碼的處理。
如前文所述,專用裝置的裝置號碼,係與對象裝置的裝置號碼的號碼體系相異(於第一實施形態的例子,專用裝置的號碼是以「A」開頭,對象裝置的號碼是以「X」、「Y」、「E」開頭)。
是故,在有來自於工程環境側電腦100的儲存於執行用控制程式記憶部15的控制程式(合成程式)的輸出指示的情形,認證階梯轉換處理部26係將認證階梯的專用裝置號碼變更為與對象裝置號碼相同的號碼體系(使專用裝置號碼以例如「X」開頭)。
認證階梯轉換處理部26係裝置號碼變更部的一例。
又,於本實施形態,存取要求接收處理部11(程式輸出部)係將包含有透過認證階梯轉換處理部26變更後的專用裝置號碼的控制程式(合成程式)輸出至工程環境側電腦100。
接著,說明關於在安全性設定變為有效的情形,在實施控制程式的讀取之際將認證階梯的專用裝置號碼置換為既存的裝置號碼的處理。
控制程式讀取處理部24在從工程環境側電腦100收到了控制程式的讀取要求時,控制程式讀取處理部24係確認安全性設定部6b的安全性設定,於安全性設定為有效的情形,請求認證階梯轉換處理部26將插入於從執行用控制程式記憶部15讀取的控制程式之認證階梯的專用裝置替換為既存的裝置。
收到了將專用裝置變換到既存裝置的要求的認證階梯轉換處理部26,係根據設定在認證階梯轉換表記憶部25的轉換表,實施把在認證階梯使用的專用裝置換為既存的裝置(X裝置或Y裝置)。
例如,專用裝置A234係變更為既存的裝置X234。
在轉換為既存裝置的情形,並不必需要變換為X裝置,只要是既存的裝置即可。
又,關於裝置號碼亦沒有使其與專用裝置相同的必要,只要是可以使用在替換的既存裝置的裝置號碼即可。
且,在讀取了將專用裝置替換為既存裝置的控制程式的工程環境側,係如同於第三實施形態所記載的,由於對認證階梯施以過濾而不讓使用者看見認證階梯,故不需要轉換表。
如此,根據本實施形態,藉由將插入於在工程環境側讀取的控制程式的認證階梯的專用裝置置換為既存的裝置,例如在懷有惡意的使用者將讀取的控制程式在以用以解析二進位編輯器(binary editor)或程式碼的程式工具(tool)打開之際,可使其不會輕易的知道這是使用了在以往的控制程式中沒有使用的裝置,而可使得認證處理的機制難以被解析。
也就是,根據第三實施形態,雖為了不顯示認證階梯,而不顯示專用裝置的號碼,但使用了如上述的工具時,即使設定為不顯示,但仍有專用裝置號碼的存在為人所知的情形。於本實施形態,即使在使用這樣的工具的情形,由於專用裝置的號碼變成為與通常的裝置號碼相同的號碼體系,故可避免專用裝置的號碼被識別。
以上,於本實施形態,係說明了一種FA機器控制程式的非法利用防止系統,包括:認證階梯轉換處理部,在有來自於工程環境的要求控制程式的讀取之際,接受來自控制程式讀取處理部的指示,將認證階梯的專用裝置替換為既存的裝置者;以及認證階梯轉換表記憶部,用以儲存在藉由認證階梯轉換處理部將認證階梯的專用裝置替換為既存的裝置之際所利用的轉換表者。
(第五實施形態)
於本實施形態,係說明以下功能:每當從PLC進行控制程式之讀取時使用設於PLC的計數(counter)值重新生成認證資訊,並亦再度生成認證階梯,而在實施與已插入於控制程式中的認證階梯的替換之後傳送至工程環境側。
第9圖係顯示關於本實施形態的非法利用防止系統的功能構成。
於第9圖的非法利用防止系統,係在每當從PLC200進行控制程式的讀取時,根據使用設於PLC200的計數值所再度生成的認證資訊進行認證階梯的再度生成,並進行與已插入於控制程式的認證階梯的替換。
於第9圖的工程環境側電腦100,係追加有操作履歷記憶部27。
操作履歷記憶部27係儲存有在工程環境側電腦100上使用者執行過的功能名稱、執行時的時間戳記(time stamp)及錯誤資訊等操作內容。
操作履歷記憶部27係輸入次數計數部的一例。
且,操作履歷記憶部27以外的工程環境側電腦100的構成要素,係於第一至第三實施形態所說明過者,故省略說明。
且,雖因為圖面上的空間問題顯示部30係省略圖示,但於第9圖的工程環境側電腦100係存在顯示部30。
PLC200係追加有認證階梯刪除處理部28及計數器處理部29。
認證階梯刪除處理部28係刪除插入於控制程式的認證階梯。
更具體而言,在有來自作為外部裝置的工程環境側電腦100的插入有認證階梯的控制程式(合成程式)的輸出指示的情形,存取要求接收處理部11(程式輸出部)雖將控制程式(合成程式)輸出至工程環境側電腦100,但在每次往工程環境側電腦100的輸出時,係從控制程式(合成程式)刪除認證階梯。
認證階梯刪除處理部28係刪除處理部的一例。
計數器處理部29係在每當受理了來自工程環境的控制程式的讀取要求,將設於PLC200的計數值遞增計數(count up)並記錄遞增計數完的值。
也就是,每當從存取要求接收處理部11輸出控制程式(合成程式)至工程環境側電腦100,即計數輸出次數。
計數器處理部29係輸出次數計數部。
並且,於本實施形態,認證階梯自動生成處理部13(認證程式生成部),係每當從存取要求接收處理部11輸出控制程式(合成程式)至工程環境側電腦100時,根據序列ID記憶部9b的序列ID、計數器處理部29的計數值及認證階梯生成用亂數記憶部8b的亂數,重新選擇專用裝置的裝置號碼,並生成包含有新的專用裝置號碼的新的認證階梯,依所生成的新的認證階梯決定認證階梯刪除處理部28所刪除處理後的控制程式內的新的插入位置。
於是,認證階梯插入處理部14(程式合成部),係於由認證階梯自動生成處理部13所決定的新的插入位置將各個新的認證階梯插入於控制程式以作為新的合成程式。
且,於第9圖,於PLC200與本實施形態的運作沒有直接關係的要素係省略其圖示。
然而,於PLC200,係使其包含有控制程式寫入處理部12、控制程式執行控制部16、專用裝置設定部17等在第一至第三實施形態已說明的要素。
接著,說明關於本實施形態的運作。
首先,說明PLC200側的運作。
於第一實施形態,係在控制程式的對PLC的初次寫入之際,將於工程環境側電腦100生成的亂數及PLC200的序列ID的2項資訊作為輸入於雜湊函數生成認證資訊。
於本實施形態,係進行在前述兩個資訊以外,亦使用計數器處理部29的計數值生成認證資訊,而從所生成的認證資訊生成認證階梯。
計數器處理部29的計數,係在每當收到來自工程環境側電腦100的控制程式的讀取要求時遞增計數。
此計數值係在控制程式的初次寫入時設定初始值為0,初次寫入時生成認證資訊之際的計數值使用0。
在此之後,當收到了來自工程環境側電腦100的控制程式的讀取要求時,認證階梯自動生成處理部13即對計數器處理部29指示遞增計數,而藉由該指示計數器處理部29係將計數值做一次的遞增計數。
收到了來自工程環境側電腦100的控制程式讀取要求的控制程式讀取處理部24係對認證階梯自動生成處理部13指示認證階梯的再度生成。
認證階梯自動生成處理部13接收認證階梯的再度生成要求而對認證處理部10b指示認證資訊的生成。
於認證處理部10b係對儲存於認證階梯生成用亂數記憶部8b的亂數、儲存於序列ID記憶部9b的序列ID及儲存於計數器處理部29的計數值進行雜湊演算以生成認證資訊,並送回認證階梯自動生成處理部13。
認證階梯自動生成處理部13係將收到了的認證資訊及認證程式傳遞至認證階梯刪除處理部28。
認證階梯刪除處理部28係根據收到了的認證資訊,特定現在插入於控制程式內的認證階梯的插入位置並刪除認證階梯,而將刪除了認證階梯的控制程式送回認證階梯自動生成處理部13。
認證階梯自動生成處理部13係對計數器處理部29下達遞增計數的指示,而計數器處理部29係將計數值遞增計數並保持。
認證階梯自動生成處理部13係再度對認證處理部10b要求認證資訊的生成,而認證處理部10b係用遞增計數了的計數值進行認證資訊的再度生成,並將再度生成了的認證資訊送回至認證階梯自動生成處理部13。
認證階梯自動生成處理部13係從再度生成的認證資訊自動生成認證階梯(特定各認證階梯的插入位置),並將所生成的認證階梯、以及於認證階梯刪除處理部28刪除了認證階梯的控制程式傳遞至認證階梯插入處理部14。
然後,認證階梯自動生成處理部13係指示再度生成了的認證階梯再度插入至控制程式,並於認證階梯插入處理部14再度插入認證階梯。
控制程式讀取處理部24係將再度插入有認證階梯的控制程式經由存取要求接收處理部11傳輸至工程環境。
接著,說明關於在工程環境側電腦100側的運作。
收到控制程式的控制程式讀取要求部21係將控制程式儲存於控制程式記憶部3。
在使用者使用輸入部1下達了顯示/編輯儲存於控制程式記憶部3的控制程式的指示之際,認證階梯過濾處理部22係對認證處理部10a請求生成認證資訊。
接到認證資訊的生成要求認證處理部10a係從儲存於操作履歷記憶部27的操作履歷計算出執行了來自PLC200的控制程式的讀取處理的次數(僅讀取成功的情形之次數)。
接著,認證處理部10a係由計算出的值(此值係與保持於PLC的計數器處理部29之計數器的值相同)、儲存於認證階梯生成用亂數記憶部8a的亂數及儲存於序列ID記憶部9a的序列ID計算出認證資訊,並送回認證階梯過濾處理部22。
於認證階梯過濾處理部22係根據取得的認證資訊於認證階梯插入處理部14確認插入於控制程式之認證階梯的插入位置(由認證資訊計算出步驟數並掌握認證階梯的插入位置)。
認證階梯過濾處理部22係從控制程式記憶部3讀取控制程式,並對設定使其僅執行一次的認證階梯(示例於第4圖(a)的認證階梯)、與位於前述計算出的步驟數的認證階梯(插入於控制程式中特定的步驟數的認證階梯;示例於第4圖(b)的認證階梯)進行不顯示設定。
控制程式製作部2係在顯示從認證階梯過濾處理部22收到的控制程式之際,確認受不顯示設定的位置,將受不顯示設定的位置的認證階梯進行不顯示設定的控制並輸出至顯示部30,顯示部30係不顯示認證階梯而僅顯示控制程式。
又,認證階梯插入位置調整處理部23(位置調整部)係對於在控制程式製作部2被編輯後的控制程式,根據在認證處理部10a生成的認證資訊將藉由由使用者命令的追加及刪除所產生的認證階梯插入位置(步驟數),回到原本的位置之後,將控制程式儲存於控制程式記憶部3。
如此,於本實施形態,每當接收了儲存於執行用控制程式記憶部15的控制程式的讀取要求則將計數器遞增計數,並使用此計數器的值再度生成認證資訊及根據此認證資訊的認證階梯,於控制程式中與已插入完成的認證階梯進行替換。
藉由這些處理,由於在工程環境側電腦100讀取的控制程式每次皆為相異,故可使懷有惡意的使用者所做的認證處理的解析變得困難。
並且,即使懷有惡意的使用者縱然將控制程式複製至別的PLC,亦因為每個PLC使用特有的計數器值生成認證資訊,故可進一步防止控制程式的非法利用。
且,通常,由於將控制程式寫入PLC並確認實際的運作,且對應此結果實施一邊與在工程環境之間反覆進行控制程式等的寫入/讀取,一邊調整程式或參數設定的作業,故與其他的PLC的計數器值變得相同的可能性應為低。
以上,於本實施形態,係說明了一種FA機器控制程式的非法利用防止系統,包括:操作履歷記憶部,儲存使用者在工程環境上所執行的功能的操作履歷者;認證階梯刪除處理部,為了將業經插入於控制程式的認證階梯再予以插入,而暫時將其從控制程式刪除者;計數器處理部,每當接收了來自工程環境的控制程式的讀取要求,遞增計數計數器並儲存經遞增計數的值者。
1...輸入部
2...控制程式製作部
3...控制程式記憶部
4...存取要求傳送處理部
5...控制程式寫入要求部
6(6a、6b)...安全性設定部
7...亂數生成處理部
8(8a、8b)...認證階梯生成用亂數記憶部
9(9a、9b)...序列ID記憶部
10(10a、10b)...認證處理部
11...存取要求接收處理部
12...控制程式寫入處理部
13...認證階梯自動生成處理部
14...認證階梯插入處理部
15...執行用控制程式記憶部
16...控制程式執行控制部
17...專用裝置設定部
18...執行限制時間記憶部
19...認證階梯性能確認部
20...認證階梯插入判斷部
21...控制程式讀取要求部
22...認證階梯過濾處理部
23...認證階梯插入位置調整處理部
24...控制程式讀取處理部
25...認證階梯轉換表記憶部
26...認證階梯轉換處理部
27...操作履歷記憶部
28...認證階梯刪除處理部
29...計數器處理部
30...顯示部
100...工程環境側電腦
200...PLC
第1圖係為示意第一實施形態的系統構成例的圖。
第2圖係為示意第一實施形態的運作例的流程圖。
第3圖係為示意第一實施形態的運作例的流程圖。
第4圖(a)及(b)係為示意第一實施形態的認證階梯例的圖。
第5圖係為示意第一實施形態的專用裝置的設定例的圖。
第6圖係為示意第二實施形態的系統構成例的圖。
第7圖係為示意第三實施形態的系統構成例的圖。
第8圖係為示意第四實施形態的系統構成例的圖。
第9圖係為示意第五實施形態的系統構成例的圖。
1...輸入部
2...控制程式製作部
3...控制程式記憶部
4...存取要求傳送處理部
5...控制程式寫入要求部
6a、6b...安全性設定部
7...亂數生成處理部
8a、8b...認證階梯生成用亂數記憶部
9a、9b...序列ID記憶部
10a、10b...認證處理部
11...存取要求接收處理部
12...控制程式寫入處理部
13...認證階梯自動生成處理部
14...認證階梯插入處理部
15...執行用控制程式記憶部
16...控制程式執行控制部
17...專用裝置設定部
100...工程環境側電腦
200...PLC

Claims (14)

  1. 一種控制裝置,包括:特有識別資訊記憶部,係記憶獨一無二地設定在前述控制裝置的特有識別資訊者;程式輸入部,係將包含成為前述控制裝置的控制處理對象的對象裝置的裝置號碼且不允許前述控制裝置以外的裝置進行使用的階梯程式作為主程式予以輸入者;認證程式生成部,係根據前述特有識別資訊,將防止前述控制裝置以外的裝置使用主程式的階梯程式生成作為認證程式者;程式合成部,係將主程式及認證程式合成為合成程式者;以及記憶部,係記憶前述合成程式;其中,前述認證程式生成部係進行下述操作:將使用於認證的複數個認證用裝置的裝置號碼作為認證用裝置號碼予以管理,其中,前述裝置號碼係為擬似對象裝置的裝置號碼者;根據前述特有識別資訊,選擇一個以上的認證用裝置號碼;將包含所選擇的選擇認證用裝置號碼的階梯程式予以生成為認證程式,前述階梯程式在作為前述合成程式與前述主程式一起同時執行之際,若以獨立於前述認證程式生成部的選擇動作之外的方式根據前述特有識 別資訊正確地選擇前述選擇認證用裝置號碼,而對於對應於前述選擇認證用裝置號碼的各個選擇認證用裝置進行了預定的設定處理,則正確地動作而使前述主程式正常地動作;而在作為前述合成程式與前述主程式一同執行之際,當對於各個前述選擇認證用裝置未執行前述設定處理部時則不會正常的動作,而停止前述主程式的動作。
  2. 如申請專利範圍第1項所述之控制裝置,其中,前述控制裝置復包括:設定處理部,係使前述複數個認證用裝置與各個認證用裝置號碼建立對應關係而予以管理,並在執行儲存於前述程式記憶部的合成程式之際,以獨立於前述認證程式生成部的選擇動作之外的方式根據前述特有識別資訊選擇一個以上的認證用裝置號碼,對於對應於所選擇的選擇認證用裝置號碼的各個選擇認證用裝置進行預定的設定處理者;以及程式執行部,係在透過前述設定處理部對各個前述選擇認證用裝置進行了設定處理後,執行記憶於前述程式記憶部的合成程式。
  3. 如申請專利範圍第2項所述之控制裝置,其中,前述控制裝置復包括:亂數記憶部,係記憶亂數;以及單向演算部,係於前述認證程式生成部生成認證程式之前,對記憶於前述亂數記憶部的亂數及記憶於前述 特有識別資訊記憶部的特有識別資訊進行單向演算;在前述設定處理部做設定處理之前,對記憶於前述亂數記憶部的亂數及記憶於前述特有識別資訊記憶部的特有識別資訊進行單向演算者;前述認證程式生成部係根據前述單向演算部所獲得的單向演算值,選擇一個以上的認證用裝置號碼,並生成包含所選擇的選擇認證用裝置號碼的認證程式;前述設定處理部係根據前述單向演算部所獲得的單向演算值,選擇一個以上的認證用裝置號碼,對於對應於所選擇的選擇認證用裝置號碼之各個選擇認證用裝置進行預定的設定處理者。
  4. 如申請專利範圍第2項或第3項所述之控制裝置,其中,前述認證程式生成部係將下述階梯程式作為認證程式予以生成者,該階梯程式係進行下述操作:若進行了使選擇認證用裝置從OFF狀態變為ON狀態的設定處理則正常的動作,而使前述主程式正常地動作;而在沒有進行使選擇認證用裝置從OFF狀態變為ON狀態的設定處理的情形則不會正常的動作,而停止前述主程式的動作;前述設定處理部係進行將選擇認證用裝置從OFF狀態設為ON狀態的設定處理。
  5. 如申請專利範圍第1項至第3項中任一項所述之控制裝置,其中,前述認證程式生成部係選擇兩個以上的認證用裝置號碼,並生成下列者之至少任一者:開頭認證程 式,係包含所選擇的全部選擇認證用裝置號碼,且配置於前述主程式的開頭;以及2個以上的插入認證程式,係分別包含選擇認證用裝置號碼的其中任一個並插入於前述主程式內的複數個插入位置而成者;前述程式合成部係將前述開頭認證程式配置於前述主程式的開頭,將前述2個以上的插入認證程式插入前述主程式內的複數個插入位置。
  6. 如申請專利範圍第1項至第3項中任一項所述之控制裝置,其中,前述控制裝置復包括:容許時間記憶部,係將主程式及認證程式所合成的合成程式的執行所需時間的容許範圍作為容許時間予以記憶者;所需時間預測部,係預測從前述程式輸入部所輸入的主程式的執行所需時間者;以及個數決定部,係根據由前述所需時間預測部所預測的預測所需時間及前述容許時間,決定包含於前述認證程式的認證用裝置號碼的個數者;而前述認證程式生成部係選擇由前述個數決定部所決定的個數數量的認證用裝置號碼者。
  7. 如申請專利範圍第1項至第3項中任一項所述之控制裝置,其中,前述控制裝置復包括:程式大小判斷部,係判斷從前述程式輸入部所輸入的主程式的程式大小是否在預定大小以上,若前述主程式的程式大小未達前述預定大小,則使前述認證程式生 成部保留認證程式的生成,若前述主程式的程式大小為前述預定大小以上,則對前述認證程式生成部指示認證程式的生成者。
  8. 如申請專利範圍第7項所述之控制裝置,其中,前述認證程式生成部,係選擇兩個以上的認證用裝置號碼,並生成兩個以上分別包含選擇認證用裝置號碼的任一個的插入認證程式,按照預定的插入位置決定演算法按各個插入認證程式決定前述主程式內的插入位置;前述程式合成部係於由前述認證程式生成部所決定的插入位置將各個插入認證程式插入於前述主程式;前述程式大小判斷部係在由前述認證程式生成部生成插入認證程式之前,根據前述主程式的程式大小,判斷按照前述插入位置決定演算法所決定的插入認證程式的插入位置是否集中於前述主程式的特定部分,並且在插入認證程式的插入位置集中於前述主程式的特定部分的情形,按照屬於前述插入位置決定演算法以外的演算法且為使插入認證程式的插入位置在前述主程式內更分散的演算法,決定插入認證程式的插入位置,俾以對前述認證程式生成部下指示者。
  9. 如申請專利範圍第1項至第3項中任一項所述之控制裝置,其中,前述認證程式生成部係生成包含與前述對象裝置的號碼體系為相異的認證用裝置號碼的認證用程式; 前述控制裝置復包括:裝置號碼變更部,在記憶於前述程式記憶部的合成程式的輸出指示為來自外部裝置時,將包含於前述合成程式中的認證程式的選擇認證用裝置號碼,變更為與前述對象裝置的裝置號碼為相同號碼體系的裝置號碼;以及程式輸出部,係將於認證程式包含有由前述裝置號碼變更部所變更後的裝置號碼的合成程式輸出至前述外部裝置者。
  10. 如申請專利範圍第1項至第3項中任一項所述之控制裝置,其中,前述認證程式生成部係選擇兩個以上的認證用裝置號碼;且生成分別含有選擇認證用裝置號碼的任一個的兩個以上的插入認證程式,並依各插入認證程式決定前述主程式內的插入位置;前述程式合成部係於由前述認證程式生成部所決定的插入位置將各個插入認證程式插入於主程式以作成合成程式;前述控制裝置復包括:程式輸出部,在前述合成程式的輸出指示係來自外部裝置時,將前述合成程式輸出至前述外部裝置者;刪除處理部,每當由前述程式輸出部將前述合成程式輸出至前述外部裝置時,從前述合成程式刪除前述兩個以上的插入認證程式;以及輸出次數計數部,每當由前述程式輸出部將前述合 成程式輸出至前述外部裝置時,計數輸出次數者;前述認證程式生成部係每當由前述程式輸出部將前述合成程式輸出至前述外部裝置時,根據前述特有識別資訊及前述輸出次數計數部的計數值,重新選擇兩個以上的認證用裝置號碼,並生成分別包含新選擇認證用裝置號碼的任一個的兩個以上的新插入認證程式,且依各個生成的新插入認證程式決定由前述刪除處理部所做的刪除除理後的主程式內的新插入位置;前述程式合成部係在由前述認證程式生成部所決定的新插入位置將各個新插入認證程式插入於前述主程式使其成為合成程式。
  11. 一種管理裝置,係管理如申請專利範圍第1項至第10項中任一項所述之控制裝置者,包括:程式輸入部,將由主程式與認證程式所合成的合成程式由前述控制裝置輸入者,前述主程式不允許前述控制裝置以外的裝置使用,而使用於前述控制裝置的控制,而前述認證程式係為了防止前述控制裝置以外的裝置使用主程式而在前述控制裝置中所生成者;不顯示設定部,係從前述合成程式之中抽出前述認證程式,並對前述認證程式進行不顯示設定者;以及顯示部,係根據前述不顯示設定部所作的不顯示設定,不顯示前述認證程式,而僅顯示前述主程式。
  12. 如申請專利範圍第11項所述之管理裝置,其中,前述管理裝置復包括: 特有識別資訊記憶部,係記錄獨一無二地設定於前述控制裝置的特有識別資訊;以及亂數記憶部,係記憶亂數;前述程式輸入部係輸入將複數個認證程式的各個配置於前述主程式內的預定位置的合成程式,前述合成程式係為於前述控制裝置中依據預定的決定演算法使用前述特有識別資訊及前述亂數,於依每個認證程式所決定的位置,配置有各個認證程式的合成程式;前述不顯示設定部係按照與前述控制裝置相同的決定演算法,使用前述特有識別資訊記憶部的前述特有識別資訊及前述亂數記憶部的前述亂數判別各個認證程式的位置,對各個認證程式進行不顯示設定。
  13. 如申請專利範圍第11項所述之管理裝置,其中,前述管理裝置復包括:特有識別資訊記憶部,係記錄獨一無二地設定在前述控制裝置的特有識別資訊;亂數記憶部,係記憶亂數;以及輸入次數計數部,係每當從前述控制裝置輸入前述合成程式時,計數輸入次數;前述程式輸入部係輸入將複數個認證程式的各個配置於前述主程式內的預定位置的合成程式,該合成程式係為在前述控制裝置中依據預定的決定演算法使用前述特有識別資訊、前述亂數、以及從前述控制裝置對前述管理裝置的合成程式的輸出次數,於依每個認證程 式所決定的位置,配置有各個認證程式的合成程式;前述不顯示設定部係按照與前述控制裝置相同的決定演算法,使用前述特有識別資訊記憶部的前述特有識別資訊、前述亂數記憶部的前述亂數、以及由前述輸入次數計數部所得的計數值判別各個認證程式的位置,對各個認證程式進行不顯示設定。
  14. 如申請專利範圍第12項或第13項所述之管理裝置,其中,前述管理程式復包括:位置調整部,於前述管理裝置中前述合成程式被更新後的結果,任一個的認證程式的配置有變動的情形中,將該認證程式的位置回復到變動前的位置。
TW099118839A 2010-02-12 2010-06-10 控制裝置及管理裝置 TWI435192B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010028793A JP5404463B2 (ja) 2010-02-12 2010-02-12 制御装置及び管理装置

Publications (2)

Publication Number Publication Date
TW201128334A TW201128334A (en) 2011-08-16
TWI435192B true TWI435192B (zh) 2014-04-21

Family

ID=44438332

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099118839A TWI435192B (zh) 2010-02-12 2010-06-10 控制裝置及管理裝置

Country Status (4)

Country Link
JP (1) JP5404463B2 (zh)
KR (1) KR101252918B1 (zh)
CN (1) CN102156840B (zh)
TW (1) TWI435192B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061908B2 (en) 2014-06-11 2018-08-28 Mitsubishi Electric Corporation Program editing device, program management device, and computer readable medium

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5756412B2 (ja) * 2012-01-12 2015-07-29 株式会社日立製作所 監視方法および監視システム
JP5900143B2 (ja) * 2012-05-15 2016-04-06 富士電機株式会社 制御システム、制御装置及びプログラム実行制御方法
KR101635700B1 (ko) * 2012-07-26 2016-07-01 미쓰비시덴키 가부시키가이샤 프로그래머블 로직 컨트롤러
CN104813246B (zh) * 2012-11-22 2017-06-30 三菱电机株式会社 程序生成辅助装置以及方法
DE112012007242T5 (de) * 2012-12-20 2016-01-14 Mitsubishi Electric Corp. Steuersystem, Programmübertragungsvorrichtung, Authentifizierungsserver , Programmschutzverfahren,Programmübertragungsverfahren und Programm für Programmübertragungsvorrichtung
WO2014125639A1 (ja) * 2013-02-18 2014-08-21 三菱電機株式会社 制御プログラム管理装置及びコントローラ装置及び制御システム
JP6045986B2 (ja) * 2013-06-27 2016-12-14 富士電機株式会社 ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム
JP2015200971A (ja) * 2014-04-04 2015-11-12 富士電機株式会社 改竄検知機能を備えた制御システム
KR101539253B1 (ko) * 2014-06-17 2015-07-28 주식회사 엔에스이 프로그램 품질 관리 기능이 구비된 피엘씨 장치
EP3380899B1 (en) 2016-01-11 2020-11-04 Siemens Aktiengesellschaft Program randomization for cyber-attack resilient control in programmable logic controllers
JP6325630B2 (ja) * 2016-10-28 2018-05-16 ファナック株式会社 ラダーライブラリ管理装置
JP6381857B1 (ja) * 2017-06-23 2018-08-29 三菱電機株式会社 ラダープログラム不正利用防止システム、ラダープログラム不正利用防止方法、およびエンジニアリングツール
JP2019159752A (ja) * 2018-03-13 2019-09-19 オムロン株式会社 コントローラ、ライセンスの管理方法、およびライセンスの管理プログラム
JP6836549B2 (ja) * 2018-05-31 2021-03-03 ファナック株式会社 ラダー表示装置
CN109756483B (zh) * 2018-12-12 2021-05-25 杭州华威信安科技有限公司 一种针对melsec协议的安全防护方法
JP7227015B2 (ja) * 2019-01-24 2023-02-21 ファナック株式会社 ラダープログラム編集システム、サーバ、端末装置、ラダープログラム編集方法及びプログラム
JP6766917B1 (ja) * 2019-04-25 2020-10-14 オムロン株式会社 制御システムおよび制御方法
CN115104088B (zh) * 2020-02-14 2024-02-06 三菱电机株式会社 程序提供装置、程序提供方法及程序提供系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3729421B2 (ja) * 1994-03-18 2005-12-21 富士通株式会社 不正使用防止方法及び不正使用防止システム
JP3289521B2 (ja) * 1994-10-31 2002-06-10 健稔 岡本 ソフトウェア著作権保護の方法
JPH11194937A (ja) * 1997-12-26 1999-07-21 Orix Rentec Kk 電子計算機用プログラムの貸出制御システム
JP4203232B2 (ja) 2001-05-11 2008-12-24 株式会社エヌ・ティ・ティ・ドコモ 通信端末および通信制御プログラム
JP2003330564A (ja) * 2002-05-17 2003-11-21 Canon Inc 機器内機能使用制限方式
JP4497450B2 (ja) * 2003-12-10 2010-07-07 独立行政法人科学技術振興機構 プログラム認証システム
CN1328632C (zh) * 2004-09-23 2007-07-25 艾默生网络能源有限公司 将梯形图程序转换为指令列表程序的方法及系统
JP4607080B2 (ja) * 2005-09-27 2011-01-05 オムロン株式会社 プログラマブル・コントローラ・システム
JP2008293468A (ja) * 2007-04-26 2008-12-04 Oki Electric Ind Co Ltd マザーボードの製造方法
JP2009070144A (ja) * 2007-09-13 2009-04-02 Omron Corp Plcにおけるプログラミング方法
CN101364098B (zh) * 2008-09-12 2010-07-28 南京航空航天大学 一种将梯形图转换为指令表程序及解释执行的方法与系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061908B2 (en) 2014-06-11 2018-08-28 Mitsubishi Electric Corporation Program editing device, program management device, and computer readable medium

Also Published As

Publication number Publication date
JP2011165041A (ja) 2011-08-25
TW201128334A (en) 2011-08-16
KR20110093561A (ko) 2011-08-18
CN102156840B (zh) 2014-09-17
JP5404463B2 (ja) 2014-01-29
CN102156840A (zh) 2011-08-17
KR101252918B1 (ko) 2013-04-09

Similar Documents

Publication Publication Date Title
TWI435192B (zh) 控制裝置及管理裝置
KR101598738B1 (ko) 제어 프로그램 관리 시스템, 및 제어 프로그램의 변경 방법
TWI521432B (zh) Development environment systems, development environment installations, development environment provision methods and program products
US11314847B2 (en) Method for electronically documenting license information
US20100043070A1 (en) File-access control apparatus and program
WO2007130320A2 (en) Concealment of information in electronic design automation
JP4662138B2 (ja) 情報漏洩防止方法及びシステム
CN103763313A (zh) 一种文档保护方法和系统
JP2010518499A (ja) 工業設備の少なくとも1つの自動化コンポーネントへのアクセスを認証するための方法
US10108786B2 (en) Process and device for encoding of source files for secure delivery of source code
US20090222927A1 (en) Concealment of Information in Electronic Design Automation
US20140157429A1 (en) License management device, license management system, license management method, and program
US10754979B2 (en) Information management terminal device
US20060259978A1 (en) Secure exchange of information in electronic design automation with license-related key generation
US20220043434A1 (en) Method for Managing a Production Process
EP2124383A1 (en) Ic tag system
CN111602372A (zh) 用于控制和/或监控设备的方法和控制系统
JP6738636B2 (ja) 紡績機の装置機能の許可方法
JP2008152551A (ja) ソフトウェアオプション設定システム及び設定方法
JP2007188307A (ja) データファイル監視装置
JP5997604B2 (ja) ソフトウェア不正使用防止機能を備えた情報処理装置、ソフトウェア不正使用防止方法及びプログラム
JP2007522541A (ja) 認証コードを復旧する方法
JP2006190050A (ja) マルチタスク実行システム及びマルチタスク実行方法
JP2000099385A (ja) ファイルを複数ユーザで共有するためのセキュリティ方法ならびにシステム及び同方法がプログラムされ記録される記録媒体
Gamble et al. Security policy foundations in context UNITY