KR102182045B1 - 제어 장치 및 제어 장치 시스템 - Google Patents

제어 장치 및 제어 장치 시스템 Download PDF

Info

Publication number
KR102182045B1
KR102182045B1 KR1020207007759A KR20207007759A KR102182045B1 KR 102182045 B1 KR102182045 B1 KR 102182045B1 KR 1020207007759 A KR1020207007759 A KR 1020207007759A KR 20207007759 A KR20207007759 A KR 20207007759A KR 102182045 B1 KR102182045 B1 KR 102182045B1
Authority
KR
South Korea
Prior art keywords
hash value
plc
control device
event
event history
Prior art date
Application number
KR1020207007759A
Other languages
English (en)
Other versions
KR20200035464A (ko
Inventor
에이에츠 도메키
Original Assignee
미쓰비시덴키 가부시키가이샤
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 미쓰비시덴키 가부시키가이샤 filed Critical 미쓰비시덴키 가부시키가이샤
Publication of KR20200035464A publication Critical patent/KR20200035464A/ko
Application granted granted Critical
Publication of KR102182045B1 publication Critical patent/KR102182045B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • 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/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

제어 장치는, 피제어 장치를 제어하는 제어 장치로서, 제어 장치의 가동 중에 발생하는 이벤트의 이벤트 이력 데이터를 기록하는 기억부와, 이벤트 이력 데이터에 기초하여 해시값을 산출하는 해시값 산출부와, 해시값을 제어 장치의 외부의 다른 제어 장치로 송신하는 통신부를 구비하는 것을 특징으로 한다. 제어 장치는 제어 장치에 기억되어 있는 이벤트 이력의 해시값이 조작되었을 경우라도 이벤트 이력의 데이터가 올바른 데이터인지 여부를 검증하는 것이 가능한 제어 장치가 얻어진다고 하는 효과를 달성한다.

Description

제어 장치 및 제어 장치 시스템
본 발명은 이벤트의 발생 이력을 관리하는 제어 장치 및 제어 장치 시스템에 관한 것이다.
종래, 프로그래머블 로직 컨트롤러(Programmable Logic Controller: PLC)라고 하는 장치에서는, 가동 중에 발생하는 이벤트의 발생 이력의 정보가 기록되고 있다. 이벤트는 가동 중의 장치에 대해서 외부의 장치로부터 행해지는 다양한 정보의 통지의 수신으로 대표되는, 미리 정해진 장치의 처리이다. PLC에 있어서의 이벤트는, PLC가 제어하는 피제어 장치로부터 PLC에 대해서 행해지는, 피제어 장치에 있어서의 센서값의 변화의 통지, 피제어 장치에 있어서의 출력값의 변화의 통지, 및 피제어 장치에 있어서의 허용 범위 밖의 입출력의 발생의 통지와 같은 피제어 장치에 있어서의 상태의 변화의 통지의 수신 처리가 예시된다.
PLC는 사용 가능한 메모리 용량이, 퍼스널 컴퓨터(Personal Computer: PC) 또는 클라우드 컴퓨팅에 비해 매우 작다. 또한, PLC는 이벤트의 정보의 데이터 용량도 적고, 계산기가 이벤트의 정보의 기록에 소비하는 메모리의 사용 용량 및 계산량과 같은 계산기 자원도 적다. 이 때문에, PLC의 외부로부터 네트워크를 통해서 PLC 단체(單體)에 기록되어 있는 정보를 용이하게 조작할 수 있을 가능성이 있었다.
한편, 가동 중에 발생하는 이벤트마다 앞의 이벤트의 정보의 해시값을 포함하여, 현재의 이벤트의 해시값을 계산함으로써, 장치가 기록하고 있는 이벤트의 발생 이력의 데이터가 올바른 것임을 검증하는 기술이 이용되고 있다.
특허문헌 1에는, 발생하는 이벤트 정보마다 해시값을 작성하고, 작성한 해시값과 이벤트 정보를 기록하는 해시 노드를 생성하여, 생성순으로 연쇄시킴으로써 해시 노드 체인을 생성하는 기술이 개시되어 있다. 특허문헌 1의 기술에서는, 이벤트 정보를 검증할 때에는, 해시 노드가 기록하는 해시값과 이벤트 정보를 사용하여 해시 노드 체인의 정당성을 평가하고, 검증 대상의 이벤트 정보와 이것에 대응지어지는 해시 노드가 기록하는 이벤트 정보가 일치하는지 여부를 검증한다.
일본 특허 제4235193호 공보
그렇지만, 상기 특허문헌 1의 기술에 의하면, 하나의 이벤트 정보의 해시값이, 이벤트 이력 정보 축적 시스템에 있어서 하나의 해시 노드 체인 축적 서버에만 기억되어 있다. 이 경우에는, 기억되어 있는 해시값이 조작되었을 경우에는, 장치에 기록되어 있는 이벤트 이력의 데이터가 올바른 데이터인 것을 검증할 수 없게 된다고 하는 문제가 있었다.
따라서, 이벤트 정보의 해시값을 복수 지점에 유지함으로써, 기록되어 있는 이벤트 정보의 해시값이 조작되었을 경우에 이벤트 이력의 데이터가 올바른 데이터인 것을 검증할 수 없게 되는 리스크를 분산시켜, 이벤트 이력의 데이터가 올바른 데이터인 것을 검증할 수 있도록 해 두는 것이 바람직하다. 그렇지만, 상기 특허문헌 1의 기술에서는, 이와 같은 리스크 분산에 대해서는 개시되어 있지 않다.
본 발명은 상기를 감안하여 이루어진 것으로, 제어 장치에 기억되어 있는 이벤트 이력의 해시값이 조작되었을 경우라도 이벤트 이력의 데이터가 올바른 데이터인지 여부를 검증하는 것이 가능한 제어 장치를 얻는 것을 목적으로 한다.
상술한 과제를 해결하여, 목적을 달성하기 위해서, 본 발명에 따른 제어 장치는, 피제어 장치를 제어하는 제어 장치로서, 제어 장치의 가동 중에 발생하는 이벤트의 이벤트 이력 데이터를 기록하는 기억부와, 이벤트 이력 데이터에 기초하여 해시값을 산출하는 해시값 산출부와, 해시값을 제어 장치의 외부의 다른 제어 장치로 송신하는 통신부를 구비하는 것을 특징으로 한다.
본 발명에 따른 제어 장치는, 제어 장치에 기억되어 있는 이벤트 이력의 해시값이 조작되었을 경우라도 이벤트 이력의 데이터가 올바른 데이터인지 여부를 검증하는 것이 가능한 제어 장치가 얻어진다고 하는 효과를 달성한다.
도 1은 본 발명의 실시 형태 1에 따른 제어 장치인 제1 프로그래머블 로직 컨트롤러의 기능 구성예를 나타내는 도면이다.
도 2는 본 발명의 실시 형태 1에 따른 제1 PLC에 있어서의 이벤트 기록 처리의 절차를 나타내는 플로차트이다.
도 3은 본 발명의 실시 형태 1에 따른 제1 PLC에 있어서의 이벤트 이력 데이터의 작성 방법을 나타내는 도면이다.
도 4는 본 발명의 실시 형태 1에 따른 제1 PLC에 있어서의 제1 해시값 수신 처리의 절차를 나타내는 플로차트이다.
도 5는 본 발명의 실시 형태 1에 따른 제어 장치 시스템인 PLC 시스템의 구성예를 나타내는 도면이다.
도 6은 본 발명의 실시 형태 1에 따른 PLC 시스템에 있어서 이벤트 이력 데이터를 기억하는 경우의 데이터의 흐름의 일례를 나타내는 도면이다.
도 7은 본 발명의 실시 형태 1에 따른 PLC 시스템의 구성을 나타내는 도면이다.
도 8은 본 발명의 실시 형태 1에 따른 제1 PLC에 있어서의 수신 여부 판정 처리의 절차를 나타내는 플로차트이다.
도 9는 본 발명의 실시 형태 1에 따른 제1 PLC에 있어서의 수신 여부 판정 처리를 포함한 제2 해시값 수신 처리의 절차를 나타내는 플로차트이다.
도 10은 본 발명의 실시 형태 1에 따른 제1 PLC에 있어서의 시각 통지 기능과 해시값의 송신을 조합한 제3 해시값 수신 처리의 절차를 나타내는 플로차트이다.
도 11은 본 발명의 실시 형태 1에 따른 제1 PLC에 있어서의 해시값을 포함하는 탐색 요구의 송신 처리의 절차를 나타내는 플로차트이다.
도 12는 본 발명의 실시 형태 1에 따른 제1 PLC에 있어서의 해시값을 포함하는 탐색 요구의 수신 처리의 절차를 나타내는 플로차트이다.
도 13은 본 발명의 실시 형태 1에 따른 제1 PLC에 있어서의 탐색 응답 여부 판정 처리의 절차를 나타내는 플로차트이다.
도 14는 본 발명의 실시 형태 1에 따른 제1 PLC에 있어서의 탐색 응답 처리의 절차를 나타내는 플로차트이다.
도 15는 본 발명의 실시 형태 1에 따른 이벤트 이력 서버에 수집된 PLC의 이벤트 이력 기억부에 축적된 이벤트 이력의 일례를 설명하는 도면이다.
도 16은 실시 형태 1에 따른 PLC로서의 기능을 실현하는 컴퓨터 장치의 구성의 일례를 모식적으로 나타내는 블록도이다.
이하에, 본 발명의 실시 형태에 따른 제어 장치 및 제어 장치 시스템을 도면에 기초하여 상세하게 설명한다. 또한, 이 실시 형태에 의해 본 발명이 한정되는 것은 아니다.
실시 형태 1.
도 1은 본 발명의 실시 형태 1에 따른 제어 장치인 제1 프로그래머블 로직 컨트롤러(1)의 기능 구성예를 나타내는 도면이다. 이하, 프로그래머블 로직 컨트롤러를 PLC로 표기한다. 제1 PLC(1)는 프로그램을 실행하여 피제어 장치(60)를 제어하는 제어 장치이다. 피제어 장치(60)는 통신선(70)에 의해서 제1 PLC(1)와 접속되어 있고, 제1 PLC(1)와 통신 가능하다. 그리고, 제1 PLC(1)는 가동 중에 제1 PLC(1)에 발생하는 이벤트의 발생 이력의 정보인 이벤트 이력 데이터를 기록하는 기능, 다른 PLC에 이벤트 이력 데이터의 해시값을 송신하는 기능, 및 다른 PLC로부터 송신되는 해시값을 기억하는 기능을 가진다. 이하, 제1 PLC(1)의 기능에 대해서 상세하게 설명한다.
제1 PLC(1)는 제1 PLC(1)의 가동 중에 발생하는 이벤트의 이벤트 이력 데이터 및 각종 정보를 기록하는 제1 기억부(110)와, 제1 PLC(1) 내에 발생하는 이벤트에 대한 이벤트 이력 데이터 및 해시값의 작성 및 기억에 관한 동작의 제어와, 제1 PLC(1) 전체의 동작의 제어를 행하는 제1 제어부(120)와, 제1 PLC(1)의 외부에 배치된 다른 장치와의 통신을 행하는 제1 통신부(130)를 구비한다. 이들 각 구성부는, 서로 정보를 통신 가능하게 접속되어 있다.
제1 기억부(110)는 이벤트 이력 데이터를 기억하는 제1 이벤트 이력 기억부(111)와, 해시값을 기억하는 제1 해시값 이력 기억부(112)와, 피제어 장치(60)를 제어하기 위한 제어 프로그램 및 제1 PLC(1) 내에 있어서의 처리 전반을 제어하기 위한 제어 프로그램을 기억하는 제1 프로그램 기억부(113)를 구비한다.
제1 PLC(1)에 발생하는 이벤트는, 가동 중의 제1 PLC(1)에 대한 각종 정보의 통지의 수신 처리, 또는 가동 중의 제1 PLC(1)로부터의 각종 정보의 송신 처리로 대표되는, 제1 PLC(1)에 있어서의 미리 정해진 처리이다. 제1 PLC(1)에 발생하는 이벤트는, 가동 중의 제1 PLC(1)에 대해서 피제어 장치(60) 또는 제1 PLC(1)의 외부의 장치로부터 행해지는 각종 정보의 통지의, 후술하는 제1 해시값 산출부(121)에 있어서의 수신 처리가 예시된다. 여기서, 이벤트에 해당하는 각종 정보에는, 피제어 장치(60)에 있어서의 센서값이 변화했다는 취지를 나타내는 센서값의 변화 정보, 피제어 장치(60)로부터의 출력값이 변화했다는 취지를 나타내는 출력값의 변화 정보, 피제어 장치(60)에 있어서의 허용 범위 밖의 입출력에 기인한 경보 정보와 같은 피제어 장치(60)에 있어서의 상태의 변화의 정보, 제1 PLC(1)의 외부의 PLC로부터 송신된 해시값, 시각 통지 및 탐색 요구를 들 수 있다.
이벤트 데이터는 이벤트의 내용을 나타내는 것으로, 제1 PLC(1)의 외부에 배치된 장치로부터 제1 PLC(1)에 행해지는 데이터의 송신의 내용에 대응지어진 코드이다. 또한, 이벤트 데이터는 제1 PLC(1) 이외의 장치로부터 수신한 정보를 포함하여 구성되어도 된다.
이벤트 이력 데이터는 가동 중의 제1 PLC(1)에 발생하는 이벤트마다 제1 PLC(1)에 있어서 작성된, 이벤트의 발생 이력을 나타내는 취지의 데이터이다. 이벤트 이력 데이터는 제1 PLC(1)에 발생하는 이벤트마다, 전회에 제1 PLC(1)에서 작성된 해시값과, 이번에, 제1 PLC(1)에서 발생한 이벤트에 기초하여 작성된 이번의 이벤트 데이터가 결합된 결합 데이터이다.
제1 PLC(1)는 제1 PLC(1)의 가동 중에 발생한 이벤트의 정보를 수집하여, 수집한 데이터를 이벤트 이력 데이터로서 기억한다. 즉, 제1 PLC(1)는 제1 PLC(1)의 가동 중에 발생한 이벤트의 이벤트 데이터를 포함하는 이벤트 이력 데이터를 기억한다.
제1 이벤트 이력 기억부(111)는 제1 PLC(1)에 이벤트가 발생할 때마다, 최신의 이벤트 이력 데이터를 기억한다. 제1 이벤트 이력 기억부(111)는, 이벤트 이력 데이터를 기억하고 있는 상태에서 새로운 이벤트 이력 데이터를 기억하는 경우에는, 기억하고 있는 이벤트 이력 데이터가 삭제된다. 제1 이벤트 이력 기억부(111)로부터 삭제된 이벤트 이력 데이터는, 이벤트의 이력 수집용 이벤트 이력 서버와 같은, 제1 PLC(1)의 외부에 마련된 이력 수집용 기억 장치(10)에 기억된다. 이력 수집용 기억 장치(10)는 통신선(20)에 의해서 제1 PLC(1)와 접속되어 있고, 제1 PLC(1)와 통신 가능하다. 또한, 이력 수집용 기억 장치(10)와 제1 PLC(1)의 통신은, 무선 통신이어도 된다. 제1 이벤트 이력 기억부(111)에 대한 이벤트 이력 데이터의 기억 처리, 이벤트 이력 데이터의 삭제 처리, 및 이력 수집용 기억 장치(10)로의 이벤트 이력 데이터의 기억 처리는, 후술하는 제1 해시값 산출부(121)의 제어에 의해서 행해진다.
또한, 제1 이벤트 이력 기억부(111)는 미리 설정된 기정 개수의 이벤트 이력 데이터를 기억해도 된다. 이 경우, 제1 이벤트 이력 기억부(111)는, 기정 개수의 이벤트 이력 데이터를 기억하고 있는 상태에서 새로운 이벤트 이력 데이터를 기억할 때에는, 기억한 시간이 오래된 이벤트 이력 데이터가 삭제된다.
해시값은 이벤트 이력 데이터에 기초하여 제1 해시값 산출부(121)에 있어서 산출된 이벤트 이력 데이터의 해시값이다.
제1 해시값 이력 기억부(112)는, 제1 PLC(1)에 이벤트가 발생할 때마다, 최신의 이벤트 이력 데이터의 해시값을 기억한다. 제1 해시값 이력 기억부(112)는, 해시값을 기억하고 있는 상태에서 새로운 해시값을 기억하는 경우에는, 기억하고 있는 해시값이 삭제된다. 제1 해시값 이력 기억부(112)로부터 삭제된 해시값은, 해시값의 수집용의 해시값 이력 서버와 같은, 제1 PLC(1)의 외부에 마련된 이력 수집용 기억 장치(10)에 기억된다. 제1 해시값 이력 기억부(112)에 대한 해시값의 기억 처리, 해시값의 삭제 처리, 및 이력 수집용 기억 장치(10)로의 해시값의 기억 처리는, 후술하는 제1 해시값 산출부(121)의 제어에 의해서 행해진다.
또한, 제1 해시값 이력 기억부(112)는 미리 설정된 기정 개수의 해시값을 기억해도 된다. 이 경우, 제1 해시값 이력 기억부(112)는, 기정 개수의 해시값을 기억하고 있는 상태에서 새로운 해시값을 기억할 때에는, 기억한 시간이 오래된 해시값이 삭제된다.
제1 제어부(120)는, 제1 프로그램 기억부(113)에 기억된 프로그램을 실행함으로써, 이벤트 이력 데이터 및 해시값의 작성 그리고 기억에 관한 동작의 제어와, 피제어 장치(60)에 대한 제어를 포함하는 제1 PLC(1) 전체의 동작의 제어를 행한다. 제1 제어부(120)는 제1 해시값 산출부(121)와, 제1 이상 검출부(122)를 구비한다.
제1 해시값 산출부(121)는 제1 PLC(1) 내에 발생하는 이벤트마다, 이벤트의 이벤트 데이터를 작성하고, 또한 이벤트 데이터에 기초하여 해시값을 산출한다. 제1 해시값 산출부(121)는 제1 통신부(130)를 통해서 제1 PLC(1)의 외부로부터 각종 정보를 수신한다. 또한, 제1 해시값 산출부(121)는 제1 통신부(130)를 통해서 제1 PLC(1)의 외부에 각종 정보를 송신한다.
제1 이상 검출부(122)는 제1 이벤트 이력 기억부(111)에 기억되어 있는 이벤트 이력 데이터를 이벤트 이력 서버와 같은 이력 수집용 기억 장치(10)로 송신할 때에, 이벤트 이력 데이터의 해시값을 재계산하고, 재계산한 해시값의 이상을 검출한다.
제1 이상 검출부(122)는 제1 이벤트 이력 기억부(111)에 기억된 이벤트 이력 데이터를 읽어내어, 읽어낸 이벤트 이력 데이터의 해시값을 재계산한다. 제1 해시값 이력 기억부(112)에 기억되어 있는 해시값이 조작되어 있는 경우에는, 제1 해시값 이력 기억부(112)에 기억되어 있는 해시값과 재계산한 해시값이 다른 값이 된다. 또한, 제1 이벤트 이력 기억부(111)에 기억되어 있는 이벤트 이력 데이터가 조작되어 있는 경우에도, 제1 해시값 이력 기억부(112)에 기억되어 있는 해시값과 재계산한 해시값이 다른 값이 된다. 따라서, 제1 이상 검출부(122)는 해시값의 재계산을 행한 이벤트 이력 데이터의, 제1 해시값 이력 기억부(112)에 기억되어 있는 해시값과, 재계산한 해시값을 비교함으로써, 재계산한 해시값의 이상을 검출할 수 있다.
즉, 제1 이상 검출부(122)는, 제1 해시값 이력 기억부(112)에 기억되어 있는 해시값과 재계산한 해시값이 다른 경우에는, 재계산한 해시값이 이상으로, 제1 해시값 이력 기억부(112)에 기억되어 있는 해시값 또는 제1 이벤트 이력 기억부(111)에 기억되어 있는 이벤트 이력 데이터가 조작되어 있다고 판정한다. 또한, 제1 이상 검출부(122)는, 제1 해시값 이력 기억부(112)에 기억되어 있는 해시값과 재계산한 해시값이 같은 값인 경우에는, 재계산한 해시값이 정상으로, 제1 해시값 이력 기억부(112)에 기억되어 있는 해시값 및 제1 이벤트 이력 기억부(111)에 기억되어 있는 이벤트 이력 데이터의 이벤트 데이터는 제1 PLC(1)에 있어서의 이벤트 기록 처리로 기록된 올바른 데이터라고 판정한다.
제1 이상 검출부(122)는, 재계산한 해시값의 이상을 검출했을 경우에는, 제1 이벤트 이력 기억부(111)에 기억되어 있는 이벤트 이력 데이터를 파기한다. 따라서, 재계산한 해시값의 이상이 검출된 이벤트 이력 데이터는, 제1 해시값 이력 기억부(112)로부터 외부의 이력 수집용 기억 장치(10)로 송신되지 않고, 파기된다. 또한, 제1 이상 검출부(122)가 재계산을 행하는 타이밍은, 이벤트 이력 데이터를 이력 수집용 기억 장치(10)로 송신할 때로 한정되지 않고, 제1 이상 검출부(122)는 임의의 타이밍으로 재계산을 행할 수 있다.
제1 통신부(130)는 이력 수집용 기억 장치(10) 및 다른 제어 장치(30)를 포함하는, 제1 PLC(1)의 외부에 배치된 다른 장치와 통신을 행한다. 제1 통신부(130)는 제1 해시값 산출부(121)의 제어에 의해, 이벤트와 관련지어 해시값을 다른 제어 장치(30)로 송신한다. 여기서, 다른 제어 장치(30)는 제1 PLC(1)에서 발생한 이벤트의 이벤트 이력 데이터의 해시값을 기억하여 제1 PLC(1)와 정보 공유하기 위한 장치로서, 제1 PLC(1)의 외부에 배치된 다른 제어 장치이다. 다른 제어 장치(30)는 통신선(40)에 의해서 제1 PLC(1)와 접속되어 있고, 제1 통신부(130)와 통신 가능하다. 또한, 다른 제어 장치(30)와 제1 통신부(130)의 통신은, 무선 통신이어도 된다.
또한, 제1 통신부(130)는, 제1 PLC(1)의 외부에 배치된 다른 장치로부터, 이벤트가 되는 각종 정보를 수신하고, 제1 해시값 산출부(121)로 송신한다. 이벤트가 되는 각종 정보의 예로는, 다른 PLC에서 발생한 이벤트의 이벤트 이력 데이터에 대한 해시값이 예시된다. 또한, 이벤트가 되는 각종 정보의 다른 예로는, 피제어 장치(60)로부터 송신된, 피제어 장치(60)에 있어서의 센서값의 변화 정보, 피제어 장치(60)로부터의 출력값의 변화 정보, 피제어 장치(60)에 있어서의 허용 범위 밖의 입출력에 기인한 경보 정보와 같은 정보가 예시된다. 다른 장치와 제1 통신부(130) 사이의 통신 수단은, 특별히 가리지 않는다.
다음으로, 본 실시 형태 1에 따른 제1 PLC(1)에 있어서의 기본적인 이벤트 기록 처리에 대해서 설명한다. 도 2는 본 발명의 실시 형태 1에 따른 제1 PLC(1)에 있어서의 이벤트 기록 처리의 절차를 나타내는 플로차트이다. 도 3은 본 발명의 실시 형태 1에 따른 제1 PLC(1)에 있어서의 이벤트 이력 데이터의 작성 방법을 나타내는 도면이다.
제1 PLC(1)의 기동 후에, 제1 PLC(1)에 있어서 이벤트가 발생하면, 이벤트 기록 처리가 시작한다. 이벤트 기록 처리에 있어서는, 우선, 스텝 S10에 있어서 제1 해시값 산출부(121)가, 제1 해시값 이력 기억부(112)에 기억되어 있는 가운데에서 최신의 해시값인 「전회의 해시값」을 취득한다. 또한, 「전회의 이벤트의 이벤트 이력 데이터의 해시값」을 간단히 「전회의 해시값」으로 바꿔쓰고 있다.
다음으로, 스텝 S20에 있어서 제1 해시값 산출부(121)가, 도 3에 나타내는 바와 같이 이번의 이벤트 데이터와 전회의 해시값을 결합하여 도 3에 나타내는 바와 같이 이벤트 이력 데이터를 작성한다. 여기서, 제1 해시값 산출부(121)는, 스텝 S20의 개시시에 있어서 이번의 이벤트 데이터를 작성 완료한 경우에는, 작성 완료된 이번의 이벤트 데이터를 이용하여 이벤트 이력 데이터를 작성한다. 또한, 제1 해시값 산출부(121)는, 스텝 S20의 개시시에 있어서 이번의 이벤트 데이터를 아직 작성하고 있지 않은 경우에는, 이번에, 제1 PLC(1)에서 발생한 이벤트에 기초하여 이번의 이벤트 데이터를 작성한다. 그리고, 제1 해시값 산출부(121)는 작성한 이벤트 데이터를 이용하여 이벤트 이력 데이터를 작성한다.
다음으로, 스텝 S30에 있어서 제1 이벤트 이력 기억부(111)가, 이벤트 이력 데이터를 기억한다. 즉, 제1 해시값 산출부(121)가, 작성한 이벤트 이력 데이터를 제1 이벤트 이력 기억부(111)에 기억시킨다. 또한, 제1 PLC(1)가 유지하는 현재 시각을 이벤트 이력 데이터에 부여하여, 이벤트 이력에 기록해도 된다.
다음으로, 스텝 S40에 있어서 제1 해시값 산출부(121)가, 도 3에 나타내는 바와 같이 이번의 이벤트 데이터와 전회의 해시값을 결합한 결합 데이터의 해시값, 즉 이벤트 이력 데이터의 해시값을 산출한다. 그리고, 스텝 S40에 있어서 산출된 해시값이, 이번의 해시값이 된다. 또한, 「이번의 이벤트의 이벤트 이력 데이터의 해시값」을 간단히 「이번의 해시값」으로 바꿔쓰고 있다.
다음으로, 스텝 S50에 있어서 제1 해시값 이력 기억부(112)가, 이번의 해시값을 기억한다. 즉, 제1 해시값 산출부(121)가, 산출한 이번의 해시값을 제1 해시값 이력 기억부(112)에 기억시킨다.
다음으로, 스텝 S60에 있어서 제1 해시값 산출부(121)가, 산출한 이번의 해시값을 기정된 송신처인 다른 PLC로 송신할지 여부를 판정한다. 이번의 해시값을 송신할지 여부는, 산출한 해시값을 몇 회에 한번의 페이스로 다른 장치로 송신하는가와 같은, 판정 조건에 기초하여 결정된다. 판정 조건은, 미리 결정되어 제1 해시값 산출부(121)에 기억되어 있다. 또한, 판정 조건은 제1 PLC(1)에 있어서의 제1 해시값 산출부(121) 이외의 구성부에 기억되어 있어도 된다.
이번의 해시값을 송신하지 않는다고 판정되었을 경우, 즉 스텝 S60에 있어서 No인 경우에는, 일련의 이벤트 기록 처리가 종료된다.
이번의 해시값을 송신한다고 판정되었을 경우, 즉 스텝 S60에 있어서 Yes인 경우에는, 스텝 S70에 있어서 제1 해시값 산출부(121)가, 기정된 송신처인 다른 PLC 행으로, 이번의 이벤트의 해시값을 송신하고, 일련의 이벤트 기록 처리가 종료된다. 이상의 처리를 행함으로써, 제1 PLC(1)에 있어서의 이벤트 기록 처리가 실시된다. 또한, 이번의 이벤트의 해시값을 송신하는 송신처인 다른 PLC의 수는 한정되지 않는다. 그리고, 스텝 S70에 있어서 해시값이 송신된 다른 PLC에서는, 해시값을 수신하여 기억한다.
그리고, 제1 PLC(1)의 제1 이상 검출부(122)는, 상기의 이벤트 기록 처리 후, 제1 이벤트 이력 기억부(111)에 기억된 이벤트 이력 데이터를 읽어내어, 읽어낸 이벤트 이력 데이터의 해시값을 재계산한다. 그리고, 제1 이상 검출부(122)는 해시값의 재계산을 행한 이벤트 이력 데이터의, 제1 해시값 이력 기억부(112)에 기억되어 있는 해시값과, 재계산한 해시값을 비교함으로써, 재계산한 해시값의 이상을 검출한다.
상술한 바와 같이, 제1 PLC(1)는, 제1 해시값 산출부(121)가, 제1 PLC(1)에서 발생한 이벤트의 이벤트 이력 데이터의 해시값을 다른 PLC로 송신하는 기능을 가진다. 이 때문에, 제1 PLC(1)에서 발생한 하나의 이벤트에 대응하는 해시값이, 제1 PLC(1)와 다른 PLC의 복수의 장치에 기억된다. 이것에 의해, 제1 PLC(1)와 다른 PLC는 별개로 마련되는 검증 장치에 있어서, 제1 PLC(1)와 다른 PLC에 기억되어 있는 2개의 해시값을 비교함으로써, 제1 PLC(1)에 기억된 해시값이 제1 PLC(1)의 이벤트 기록 처리로 기록된 올바른 해시값인지 여부를 검증하는 것이 가능하게 된다. 즉, 제1 PLC(1)는, 제1 PLC(1)와 다른 PLC에 기억되어 있는 하나의 이벤트에 대응하는 해시값이 다른 값인 경우에, 제1 PLC(1)에 기억된 해시값의 조작을 검출할 수 있다. 따라서, 제1 PLC(1)는, 제1 PLC(1)에 기억된 제1 PLC(1)의 이벤트의 해시값과 다른 PLC에 기억된 해시값을 비교함으로써, 제1 PLC(1)에 기억된 이벤트의 해시값의 조작을 용이하게 검출할 수 있다.
또한, 상술한 바와 같이, 제1 이상 검출부(122)는 재계산한 해시값이 정상인지 이상인지를 판정할 수 있어, 제1 해시값 이력 기억부(112)에 기억되어 있는 해시값 및 제1 이벤트 이력 기억부(111)에 기억되어 있는 이벤트 이력 데이터가 올바른 데이터인지 여부를 검증하는 것이 가능하다.
다음으로, 제1 PLC(1)가 다른 PLC로부터 해시값을 수신했을 경우에 있어서의, 제1 PLC(1)에 있어서의 이벤트 기록 처리에 대해서 설명한다. 다른 PLC는, 제1 PLC(1)와 같은 기능을 가진다. 도 4는 본 발명의 실시 형태 1에 따른 제1 PLC(1)에 있어서의 제1 해시값 수신 처리의 절차를 나타내는 플로차트이다.
제1 PLC(1)의 기동 후에, 기정된 타이밍으로 제1 해시값 수신 처리가 시작한다. 우선, 스텝 S110에 있어서 제1 해시값 산출부(121)가, 다른 PLC로부터 해시값을 수신하고 있는지 여부를 판정한다. 제1 통신부(130)는, 다른 PLC로부터 해시값을 포함하는 통신 정보를 수신했을 경우에는, 해시값을 포함하는 통신 정보를 제1 해시값 산출부(121)로 송신한다. 따라서, 제1 해시값 산출부(121)는, 해시값을 포함하는 통신 정보를 제1 통신부(130)로부터 수신하고 있는지 여부에 따라서, 다른 PLC로부터 해시값을 수신하고 있는지 여부를 판정 가능하다.
다른 PLC로부터 해시값을 수신하고 있지 않다고 판정되었을 경우, 즉 스텝 S110에 있어서 No인 경우에는, 일련의 이벤트 기록 처리가 종료된다.
다른 PLC로부터 해시값을 수신하고 있다고 판정되었을 경우, 즉 스텝 S110에 있어서 Yes인 경우에는, 스텝 S120에 있어서 제1 해시값 산출부(121)가, 해시값을 포함하는 통신 정보로부터, 수신한 해시값을 읽어낸다.
다음으로, 스텝 S130에 있어서 제1 해시값 산출부(121)가, 읽어낸 해시값에 기초하여, 읽어낸 해시값을 포함하는 이벤트 데이터를 작성한다. 그리고, 스텝 S130에 있어서 작성된 이벤트 데이터가, 다른 PLC의 해시값의 수신을 이벤트로 한 이벤트 데이터가 된다.
다음으로, 스텝 S140에 있어서 제1 해시값 산출부(121)가, 도 2에 나타낸 이벤트 기록 처리를 행한다. 이상의 처리를 행함으로써, 제1 PLC(1)가 다른 PLC로부터 해시값을 수신했을 경우의 이벤트 기록 처리가 실시된다. 제1 해시값 수신 처리는, 정주기로 실행되어도 되고, 제1 PLC(1)가 이벤트 이력 데이터를 보존할 때마다 실행해도 되고, 제1 PLC(1)에 설정된 임의의 타이밍 및 임의의 빈도로 실행 가능하다.
상술한 바와 같이, 제1 PLC(1)는, 제1 해시값 산출부(121)가, 제1 PLC(1)에서 발생한 이벤트의 이벤트 이력 데이터의 해시값을 다른 PLC로 송신하는 기능에 더하여, 다른 PLC로부터 송신되는 해시값을 이벤트 이력 데이터에 포함하여 제1 이벤트 이력 기억부(111)에 기억시키는 기능을 가진다. 그리고, 제1 PLC(1)가 상술한 제1 해시값 수신 처리를 행함으로써, 다른 PLC의 이벤트의 이벤트 이력 데이터의 해시값을 수신하여 제1 PLC(1)에 기억할 수 있다.
이것에 의해, 제1 PLC(1)에서 발생한 이벤트에 대응하는 해시값이, 제1 PLC(1)와 다른 PLC의 복수의 장치에 기억된다. 제1 PLC(1)는, 제1 PLC(1)와 다른 PLC 중 어느 쪽과도 별개로 마련되는 검증 장치에 있어서, 제1 PLC(1)와 다른 PLC에 기억되어 있는 하나의 이벤트에 대응하는 2개의 해시값을 비교함으로써, 제1 PLC(1)에 기억된 해시값이 제1 PLC(1)의 이벤트 기록 처리로 기록된 올바른 해시값인지 여부를 검증하는 것이 가능하다. 즉, 제1 PLC(1)는, 제1 PLC(1)와 다른 PLC에 기억되어 있는 하나의 이벤트에 대응하는 해시값이 다른 값인 경우에, 제1 PLC(1)에 기억된 해시값의 조작을 검출할 수 있다.
또한, 다른 PLC에서 발생한 하나의 이벤트에 대응하는 해시값이, 제1 PLC(1)와 다른 PLC의 복수의 장치에 기억된다. 이 경우에도, 검증 장치에 있어서, 제1 PLC(1)와 다른 PLC에 기억되어 있는 하나의 이벤트에 대응하는 2개의 해시값을 비교함으로써, 다른 PLC에 기억되어 있는 해시값이 다른 PLC에 있어서의 이벤트 기록 처리로 기록된 올바른 해시값인지 여부를 검증하는 것이 가능하다. 즉, 다른 PLC는, 제1 PLC(1)와 다른 PLC에 기억되어 있는 하나의 이벤트에 대응하는 해시값이 다른 값인 경우에, 다른 PLC에 기억되어 있는 해시값의 조작을 검출할 수 있다. 따라서, 다른 PLC는, 다른 PLC에 기억된 이벤트의 해시값의 조작이 행해진 경우라도, 다른 PLC에 기억된 이벤트의 해시값과 제1 PLC(1)에 기억된 다른 PLC의 이벤트의 해시값을 비교함으로써, 다른 PLC에 기억된 이벤트의 해시값의 조작을 용이하게 검출할 수 있다.
도 2 및 도 4에 나타낸 처리는, 1대의 제1 PLC(1)에 있어서 실행된다. 이 제1 PLC(1)의 기능을 가지는 2대의 PLC를 조합한 구성이, 다른 PLC의 해시값을 서로 기억 가능한 최소의 PLC 시스템의 구성으로 된다. 이와 같은 PLC 시스템의 구성에 있어서 각 PLC에 있어서의 해시값을 기억하는 경우의 데이터의 흐름을 이하에 나타낸다.
도 5는 본 발명의 실시 형태 1에 따른 제어 장치 시스템인 PLC 시스템(300)의 구성예를 나타내는 도면이다. 도 5에 나타내는 PLC 시스템(300)은, 제1 PLC(1)와 제2 PLC(2)가 네트워크(50)에 의해서 통신 가능하게 되고, 제1 PLC(1)와 제2 PLC(2)의 사이에서 해시값을 서로 기억 가능한 최소의 PLC 시스템이다. 이 경우, 제1 PLC(1)와 제2 PLC(2) 중 한쪽의 PLC는, 다른 쪽의 PLC의 외부에 배치된 다른 제어 장치(30)로서의 기능을 가진다.
제2 PLC(2)는 제1 PLC(1)와 마찬가지의 구성 및 기능을 가진다. 즉, 제2 PLC(2)는 제2 기억부(210)와, 제2 제어부(220)와, 제2 통신부(230)를 구비한다. 이들 각 구성부는, 서로 정보를 통신 가능하게 접속되어 있다. 제2 기억부(210)는 제1 기억부(110)에 대응하고, 제2 제어부(220)는 제1 제어부(120)에 대응하고, 제2 통신부(230)는 제1 통신부(130)에 대응한다.
제2 기억부(210)는 제2 이벤트 이력 기억부(211)와, 제2 해시값 이력 기억부(212)와, 제2 프로그램 기억부(213)를 구비한다. 제2 이벤트 이력 기억부(211)는 제1 이벤트 이력 기억부(111)에 대응하고, 제2 해시값 이력 기억부(212)는 제1 해시값 이력 기억부(112)에 대응하고, 제2 프로그램 기억부(213)는 제1 프로그램 기억부(113)에 대응한다.
제2 제어부(220)는 제2 해시값 산출부(221)와, 제2 이상 검출부(222)를 구비한다. 제2 해시값 산출부(221)는 제1 해시값 산출부(121)에 대응하고, 제2 이상 검출부(222)는 제1 이상 검출부(122)에 대응한다.
제1 PLC(1)와 제2 PLC(2)는, 각 PLC에서 발생한 최신의 이벤트의 이벤트 이력의 해시값을 사이클릭 통신에 의해서 서로 송신한다. 최신의 이벤트 이력의 해시값을 수신한 PLC는, 수신한 해시값을 이벤트 이력 데이터로서 기억하고, 이 이벤트 이력 데이터의 해시값을 산출하고, 기억한다. 제1 PLC(1)는 제2 PLC(2)로부터 수신한 해시값에 기초하여 이벤트 데이터를 작성하고, 또한 이 이벤트 데이터와 제1 PLC(1)에 있어서의 전회의 해시값으로부터 이벤트 이력 데이터를 작성하고, 기억한다. 제2 PLC(2)는 제1 PLC(1)로부터 수신한 해시값에 기초하여 이벤트 데이터를 작성하고, 또한 이 이벤트 데이터와 제2 PLC(2)에 있어서의 전회의 해시값으로부터 이벤트 이력 데이터를 작성하고, 기억한다. 즉, 제1 PLC(1)와 제2 PLC(2)가 서로 이벤트 이력의 해시값의 송수신을 행함으로써, 기억하는 이벤트 이력에 다른 쪽의 PLC의 이벤트 이력의 해시값이 포함되기 때문에, 제1 PLC(1)와 제2 PLC(2) 양쪽의 이벤트 이력 데이터의 해시 체인이 형성된다.
또한, PLC 시스템(300)에 있어서는, 다른 PLC의 해시값을 서로 기억 가능하게 되어 있지만, 반드시 해시값을 서로 교환할 필요는 없고, 한쪽의 PLC의 해시값을 다른 쪽의 PLC로 송신하여 기억시키는 구성으로 하는 것도 가능하다.
도 6은 본 발명의 실시 형태 1에 따른 PLC 시스템(300)에 있어서 이벤트 이력 데이터를 기억하는 경우의 데이터의 흐름의 일례를 나타내는 도면이다. 또한, 이하에서는, 제1 PLC(1)와 제2 PLC(2)를 구별하지 않는 경우에는, 간단하게 PLC로 부르는 경우가 있다.
도 6에 나타내는 예에서는, 제1 PLC(1)에 있어서, 제1 해시값 산출부(121)가, 제1 PLC(1) 내에 발생한 이벤트의 이벤트 데이터인 이벤트 데이터 a1과 전회의 이벤트의 해시값 Ha1으로 이루어진 이벤트 이력 데이터를 작성하고, 또한 작성한 이벤트 이력 데이터의 해시값 Ha2를 산출한다. 제1 해시값 산출부(121)는 작성한 이벤트 이력 데이터를 제1 이벤트 이력 기억부(111)에 기억시키고, 작성한 해시값 Ha2를 제1 해시값 이력 기억부(112)에 기억시킨다. 또한, 제1 해시값 산출부(121)는 작성한 해시값 Ha2를 제2 PLC(2)로 송신한다.
다음으로, 제1 해시값 산출부(121)는 제1 PLC(1) 내에 발생한 이벤트의 이벤트 데이터인 이벤트 데이터 a2와 전회의 이벤트의 해시값 Ha2로 이루어진 이벤트 이력 데이터를 작성하고, 또한 작성한 이벤트 이력 데이터의 해시값 Ha3를 산출한다. 제1 해시값 산출부(121)는 작성한 이벤트 이력 데이터를 제1 이벤트 이력 기억부(111)에 기억시키고, 작성한 해시값 Ha3를 제1 해시값 이력 기억부(112)에 기억시킨다.
다음으로, 제1 해시값 산출부(121)는 제2 PLC(2)로부터 송신된 해시값 Hb4의 이벤트 데이터인 이벤트 데이터 a3와 전회의 이벤트의 해시값 Ha3로 이루어진 이벤트 이력 데이터를 작성하고, 또한 작성한 이벤트 이력 데이터의 해시값 Ha4를 산출한다. 여기서, 이벤트 데이터 a3는, 제2 PLC(2)로부터 송신된 해시값 Hb4를 포함하여 구성되어 있다.
한편, 도 6에 나타내는 예에서는, 제2 PLC(2)에 있어서, 제2 해시값 산출부(221)가, 제2 PLC(2) 내에 발생한 이벤트의 이벤트 데이터인 이벤트 데이터 b1과 전회의 이벤트의 해시값 Hb1으로 이루어진 이벤트 이력 데이터를 작성하고, 또한 작성한 이벤트 이력 데이터의 해시값 Hb2를 산출한다. 제2 해시값 산출부(221)는 작성한 이벤트 이력 데이터를 제2 이벤트 이력 기억부(211)에 기억시키고, 작성한 해시값 Hb2를 제2 해시값 이력 기억부(212)에 기억시킨다.
다음으로, 제2 해시값 산출부(221)는 제1 PLC(1)로부터 송신된 해시값 Ha2의 이벤트 데이터인 이벤트 데이터 b2와 전회의 이벤트의 해시값 Hb2로 이루어진 이벤트 이력 데이터를 작성하고, 또한 작성한 이벤트 이력 데이터의 해시값 Hb3를 산출한다. 제2 해시값 산출부(221)는 작성한 이벤트 이력 데이터를 제2 이벤트 이력 기억부(211)에 기억시키고, 작성한 해시값 Hb3를 제2 해시값 이력 기억부(212)에 기억시킨다. 여기서, 이벤트 데이터 b2는, 제1 PLC(1)로부터 송신된 해시값 Ha2를 포함하여 구성되어 있다.
다음으로, 제2 해시값 산출부(221)는 제2 PLC(2) 내에 발생한 이벤트의 이벤트 데이터인 이벤트 데이터 b3와 전회의 이벤트의 해시값 Hb3로 이루어진 이벤트 이력 데이터를 작성하고, 또한 작성한 이벤트 이력 데이터의 해시값 Hb4를 산출한다. 제2 해시값 산출부(221)는 작성한 이벤트 이력 데이터를 제2 이벤트 이력 기억부(211)에 기억시키고, 작성한 해시값 Hb4를 제2 해시값 이력 기억부(212)에 기억시킨다. 또한, 제2 해시값 산출부(221)는 작성한 해시값 Hb4를 제1 PLC(1)로 송신한다.
제1 PLC(1)와 제2 PLC(2)에 있어서의 이벤트 이력의 해시값의 송신의 타이밍은 특별히 가리지 않는다. 해시값의 송신 타이밍은, 상술한 바와 같이 각 PLC에 있어서 이벤트 이력 데이터를 기록할 때마다 행하는 형태 외에, 기억한 이벤트 이력의 해시값이 기정된 수량만큼 모였을 경우에 간헐적으로 송신해도 된다. 다만, 각 PLC에 있어서 기억된 이벤트 이력의 올바른 해시값을 송신하여, 다른 쪽의 PLC에 기억시키는 관점에서는, 각 PLC에 있어서 이벤트 이력 데이터를 기록할 때마다 행하는 형태가 바람직하다.
또한, 송신된 해시값을 수신하는 수신측의 PLC에서는, 송신되어 오는 해시값을 매회 수신하여 기억할 필요는 없고, 수신측의 PLC의 사용 조건에 맞추어 해시값을 수신하여 기억하면 된다. 송신된 해시값을 수신하는 수신측의 PLC에서는, 해시값을 놓쳐서 기억할 수 없는 경우가 있어도 상관없다. 즉, 수신측의 동작도 불확실해도 되고, 수신 가능한 범위내에서 기억 처리를 행하면 된다. 이것에 의해, 전지 구동 등의 무선 통신 네트워크 등에 있어서, 송수신 처리의 동작하는 빈도를 억제하여 전력 소비를 억제할 수 있다.
상술한 바와 같이, PLC 시스템(300)은, 도 6에 나타낸 처리를 제1 PLC(1)와 제2 PLC(2) 2대의 PLC가 서로 실시한다. 이것에 의해, 2대의 PLC는, 서로 해시값을 서로 보냄으로써 서로 상대측의 PLC의 해시값을 기억하기 때문에, 한쪽의 PLC에서 발생한 같은 이벤트의 이벤트 이력 데이터의 해시값이 2대의 PLC에 있어서 기억된다. 따라서, PLC 시스템(300)은, 2대의 PLC 중 한쪽에 기억된 이벤트의 해시값의 조작이 행해진 경우라도, 2대의 PLC에 기억된 해시값을 비교함으로써, 해시값의 조작을 용이하게 검출할 수 있다. 또한, 제1 PLC(1)와 같은 기능을 가지는 3대 이상의 복수의 PLC가 서로 통신 가능하게 접속된 PLC 시스템을 구성할 수 있다. 각 PLC는, 해시값 산출부로 산출한 해시값과, PLC 시스템에 있어서의 다른 복수의 PLC 중 적어도 하나의 PLC의 해시값을 기억한다. 즉, 각 PLC는, 다른 PLC와의 사이에서 해시값을 서로 보냄으로써 서로 상대측의 PLC의 해시값을 기억할 수 있다.
또한, PLC 시스템(300)에 있어서는 하나의 이벤트의 해시값을 다른 장치에 기억시켜 정보 공유하기 위한 다른 제어 장치(30)로서 PLC를 이용하고 있지만, 다른 제어 장치(30)로는, 현재의 시각을 관리하는 현재 시각 관리 서버, 이벤트 데이터를 기억하는 이벤트 이력 기억 서버를 이용할 수 있다. 다른 제어 장치(30)에 현재 시각 관리 서버를 이용하는 경우에는, PLC에서 발생한 이벤트의 이벤트 이력 데이터의 해시값이, PLC와 현재 시각 관리 서버에 기억된다. 다른 제어 장치(30)에 이벤트 이력 기억 서버를 이용하는 경우에는, PLC에서 발생한 이벤트의 이벤트 이력 데이터의 해시값이, PLC와 이벤트 이력 기억 서버에 기억된다.
또한, 송신한 데이터의 소실, 송신 데이터의 비트 깨짐, 수신 데이터의 놓침이 일정 빈도로 발생하는 불확실한 네트워크가 PLC 시스템(300)에 있어서 네트워크(50)에 이용되는 것을 상정했을 경우, 수신해야 할 해시값이 수신되고 있지 않은 상황이 발생한다. 이와 같은 불확실한 네트워크에 대해서, 송신측의 PLC가, 해시값을 송신할 때에 이벤트 이력 데이터의 실데이터와 이번의 해시값을 수신측의 PLC로 송신해도 된다. 즉, 송신측의 PLC가, 전회의 이벤트의 해시값과, 이번의 이벤트 데이터와, 이번의 이벤트의 해시값을 송신해도 된다. 이것에 의해, 이벤트와 관련지어진 해시값이 다른 제어 장치(30)인 수신측의 PLC로 송신된다.
수신측의 PLC는, 해시값과 함께 이벤트 이력 데이터의 실데이터를 기억한다. 이 경우, 수신측의 PLC는, 이상 검출부인 제1 이상 검출부(122) 또는 제2 이상 검출부(222)가 이벤트 이력 데이터의 실데이터를 이용하여 해시값을 재계산함으로써, 수신한 이벤트 이력 데이터의 실데이터 및 해시값이 올바른 것을 검증하는 것이 가능하게 된다. 또한, 재계산의 결과, 이벤트 이력 데이터의 실데이터 및 해시값이 올바르지 않고, 이들 데이터의 파손을 검출했을 경우에는, 수신 데이터를 파기한다. 수신측의 PLC가, 상기의 재계산을 행하는 타이밍은 한정되지 않으며, 해시값과 이벤트 이력 데이터의 실데이터를 수신했을 때에 행해도 되고, 다른 타이밍으로 행해도 된다.
또한, 해시값의 송신측의 PLC는, 불확실한 네트워크에 대해서 해시값을 송신한 것을 이벤트 이력 기억부인 제1 이벤트 이력 기억부(111) 또는 제2 이벤트 이력 기억부(211)에 기억해도 된다. 해시값을 송신한 것을 나타내는 이벤트 이력 데이터를 작성하여 이벤트 이력 기억부에 기억했을 경우, 해시값의 송신측의 PLC와 해시값의 수신측의 PLC로부터 이벤트 이력 데이터를 읽어내어 검증함으로써, 송신측의 PLC에 보존되어 있는 해시값과, 송신측의 PLC가 본래 수신하고 있어야 할 해시값에서 차이가 있는 것을 검출 가능하다. 또한, 수신측의 PLC가 수신한 해시값을 놓치고 있어도, 읽어낸 만큼의 해시값은 검증 가능하며, 놓친 정도는 송신측의 PLC가 송신한 해시값의 이력으로부터 산출 가능하다. 따라서, 이들 정보로부터, 네트워크의 불확실도, 및 수신하여 기억한 해시값의 신뢰도를 정량적으로 산출할 수 있다.
다음으로, 다른 PLC로부터 송신되는 해시값을 제약없이 무조건으로 기억하는 것이 아니라, 제한하는 경우에 대해서 설명한다. 도 7은 본 발명의 실시 형태 1에 따른 PLC 시스템(400)의 구성을 나타내는 도면이다. PLC 시스템(400)은 제1 PLC(1)와 같은 기능을 가지는 다수 대의 PLC가 네트워크(50)에 의해 접속되어 구성되어, 1대의 PLC에서 발생한 이벤트의 이벤트 이력 데이터의 해시값을 다른 복수 대의 PLC에서 기억 가능한 PLC 시스템이다. 이하에서는, PLC 시스템(400)에 있어서, 다른 PLC로부터 송신되는 해시값이 수신 가능한지 여부를 판정하는 수신 여부 판정 처리를 포함한 제2 해시값 수신 처리에 대해서 설명한다. PLC 시스템(400)은 제1 PLC(1) 및 제2 PLC(2)를 포함하는, 제1 PLC(1)와 같은 기능을 가지는 n대의 PLC가, 서로 통신 가능하게 구성되어 있다. 또한, 이하에 있어서는, 제1 PLC(1)에 있어서의 처리에 대해서 설명하지만, PLC 시스템(400)을 구성하는 PLC는 제1 PLC(1)와 같은 기능을 가지므로, PLC 시스템(400)을 구성하는 모든 PLC에 있어서, 이하에서 나타내는 처리가 가능하다.
우선, 제1 PLC(1)가 다른 PLC로부터 송신되는 해시값을 수신 가능한지 여부를 판정하는 수신 여부 판정 처리에 대해서 설명한다. 도 8은 본 발명의 실시 형태 1에 따른 제1 PLC(1)에 있어서의 수신 여부 판정 처리의 절차를 나타내는 플로차트이다.
제1 PLC(1)의 기동 후에, 해시값을 포함하는 통신 정보가 PLC 시스템(400)에 있어서의 다른 PLC로부터 제1 통신부(130)로 송신되어 오면 수신 여부 판정 처리가 시작한다. 우선, 스텝 S210에 있어서 제1 PLC(1)의 제1 통신부(130)가, PLC 시스템(400)에 있어서의 다른 PLC로부터 송신된, 해시값을 포함하는 통신 정보가, 해시값에 대한 등록 제어 장치인 해시값에 대한 등록 PLC로부터 송신된 통신 정보인지 여부를 판정한다. 해시값에 대한 등록 PLC는, PLC 시스템(400)에 있어서의 다른 PLC로부터 해시값을 포함하는 통신 정보가 송신되었을 경우에, PLC 시스템(400)에 있어서의 다른 PLC 중 제1 PLC(1)에 있어서 해시값의 수신을 허가하는 PLC로서 등록된 PLC이다. 해시값에 대한 등록 PLC의 정보는, 송신원의 PLC의 IP(Internet Protocol) 어드레스 또는 포트 번호와 같은 정보가 예시되고, 미리 결정되어 제1 통신부(130)에 등록되어 있다. 또한, 수신을 허가하는 PLC의 정보는, 제1 PLC(1)에 있어서의 제1 통신부(130) 이외의 구성부에 기억되어 있어도 된다.
다른 PLC로부터 송신된 해시값을 포함하는 통신 정보가 등록 PLC로부터 송신된 통신 정보가 아닌 경우, 즉 스텝 S210에 있어서 No인 경우에는, 스텝 S250에 있어서 제1 통신부(130)는, 해시값을 포함하는 통신 정보를 수신하지 않는다고 판정한다.
한편, 다른 PLC로부터 송신된 해시값을 포함하는 통신 정보가 등록 PLC로부터 송신된 통신 정보인 경우, 즉 스텝 S210에 있어서 Yes인 경우에는, 제1 통신부(130)는, 스텝 S220으로 진행한다. 스텝 S220에 있어서 제1 통신부(130)는, 다른 PLC로부터 송신된 해시값을 포함하는 통신 정보에 포함되는 인증 정보가, 해시값의 수신을 허가하는 제어 장치인 PLC에 부여되어 있는 인증 정보와 일치하는지 여부를 판정한다. 해시값의 수신을 허가하는 PLC에 부여되어 있는 인증 정보는, 미리 결정되어 제1 통신부(130)에 등록되어 있다. 또한, 해시값의 수신을 허가하는 PLC의 정보는, 제1 PLC(1)에 있어서의 제1 통신부(130) 이외의 구성부에 기억되어 있어도 된다.
다른 PLC로부터 송신된 해시값을 포함하는 통신 정보에 포함되는 인증 정보가 해시값의 수신을 허가하는 PLC에 부여되어 있는 인증 정보와 일치하지 않는 경우, 즉 스텝 S220에 있어서 No인 경우에는, 스텝 S250에 있어서 제1 통신부(130)는, 해시값을 포함하는 통신 정보를 수신하지 않는다고 판정한다.
한편, 다른 PLC로부터 송신된 해시값을 포함하는 통신 정보에 포함되는 인증 정보가 해시값의 수신을 허가하는 PLC에 부여되어 있는 인증 정보와 일치하는 경우, 즉 스텝 S220에 있어서 Yes인 경우에는, 제1 통신부(130)는, 스텝 S230으로 진행한다. 스텝 S230에 있어서 제1 통신부(130)는, 해당 등록 PLC로부터의 해시값을 포함하는 통신 정보의 전회의 수신으로부터, 기정 시간 이상이 경과되어 있는지 여부를 판정한다. 기정 시간은, 등록 PLC로부터의 해시값을 포함하는 통신 정보의 전회의 수신으로부터의 수신 후 경과 시간이며, 등록 PLC에 대해서 미리 결정되어 제1 통신부(130)에 등록되어 있다. 또한, 기정 시간의 정보는, 제1 PLC(1)에 있어서의 제1 통신부(130) 이외의 구성부에 기억되어 있어도 된다.
기정 시간 이상이 경과되어 있지 않은 경우, 즉 스텝 S230에 있어서 No인 경우에는, 스텝 S250에 있어서 제1 통신부(130)는, 해시값을 포함하는 통신 정보를 수신하지 않는다고 판정한다.
한편, 기정 시간 이상이 경과되어 있는 경우, 즉 스텝 S230에 있어서 Yes인 경우에는, 스텝 S240에 있어서 제1 통신부(130)는, 해시값을 포함하는 통신 정보를 수신한다고 판정한다.
다음으로, 상술한 수신 여부 판정 처리를 포함한 제2 해시값 수신 처리에 대해서 설명한다. 도 9는 본 발명의 실시 형태 1에 따른 제1 PLC(1)에 있어서의 수신 여부 판정 처리를 포함한 제2 해시값 수신 처리의 절차를 나타내는 플로차트이다.
제1 PLC(1)의 기동 후에, 해시값을 포함하는 통신 정보가 PLC 시스템(400)에 있어서의 다른 PLC로부터 제1 통신부(130)로 송신되어 오면 제2 해시값 수신 처리가 시작한다. 우선, 스텝 S310에 있어서 제1 통신부(130)가, 도 8에 나타낸 수신 여부 판정 처리를 행한다.
다음으로, 스텝 S320에 있어서 제1 통신부(130)가, 수신 여부 판정 처리에서의 판정 결과에 기초하여 다른 PLC로부터 송신된 해시값을 수신할지 여부를 결정한다.
수신 여부 판정 처리에서의 판정 결과에 기초하여, 다른 PLC로부터 송신된 해시값을 수신하지 않는다고 결정되었을 경우, 즉 스텝 S320에 있어서 No인 경우에는, 일련의 제2 해시값 수신 처리가 종료된다.
한편, 수신 여부 판정 처리에서의 판정 결과에 기초하여, 다른 PLC로부터 송신된 해시값을 수신한다고 결정되었을 경우, 즉 스텝 S320에 있어서 Yes인 경우에는, 스텝 S330에 있어서 제1 통신부(130)는, 다른 PLC로부터 송신된 해시값을 수신한다.
다음으로, 스텝 S340에 있어서 제1 해시값 산출부(121)가, 도 4에 나타낸 제1 해시값 수신 처리를 행하여, 일련의 제2 해시값 수신 처리가 종료된다.
상술한 수신 여부 판정 처리는, 다른 PLC로부터 송신된 해시값을 포함하는 통신 정보를 수신할지 여부를, 등록 PLC, 인증 정보 및 수신 후 경과 시간을 수신 여부의 판정 조건에 이용한 판정 처리를 행하고 있다. 즉, 제1 PLC(1)가 실시하는 수신 여부 판정 처리는, 해시값을 포함하는 통신 정보를 송신한 다른 PLC와 제1 PLC(1) 사이의 상호 인증에 의한 해시값의 필터링 기능이 된다.
이 때문에, 제1 PLC(1)는, 수신 여부 판정 처리를 포함하는 제2 해시값 수신 처리를 실시함으로써, 기정된 조건을 만족시키는 경우에만, 해시값의 수신을 이벤트로 한 이벤트 이력 데이터를 기억할 수 있다. 이것에 의해, 제1 PLC(1)는 DoS(Denial of Service attack) 공격, 위장에 의한 데이터 조작, 단순한 처리 누락 및 놓침과 같은 장해의 피해를 저감시키는 대책으로서 효과를 발휘한다. 또한, PLC 시스템(400)에 있어서 다수의 PLC 사이에서 해시값의 송수신을 행하는 경우에는, 1대의 PLC에 있어서의 해시값의 수신 처리가 많아지기 때문에 수신시에 해시값의 놓침이 증가할 가능성이 있다. 제1 PLC(1)는, 상술한 제2 해시값 수신 처리를 이용함으로써, 해시값의 선택이 가능하게 되어, 해시값의 수신의 놓침을 저감할 수 있다.
또한, 상기에 있어서는, 등록 PLC, 인증 정보 및 수신 후 경과 시간을 수신 여부의 판정 조건에 이용하고 있지만, 상기의 수신 여부의 판정 조건은 이것들로 한정되지 않는다. 따라서, 수신 여부 판정 처리는, 상술한 처리로 한정되는 것은 아니다.
제1 PLC(1)가 해시값을 송신하는 커맨드는, 독립된 것이 아니라, 다른 커맨드와 조합한 커맨드로 실현해도 된다. 특히, 다른 기능의 커맨드를 해시값의 송신에 이용하는 방식으로서, 현재 시각을 통지하는 시각 통지 기능으로 사용하는 통신, 또는 다른 PLC를 탐색하는 탐색 기능으로 사용하는 통신과 같은, 정기적으로 실행되는 통신에 해시값을 포함하여 송신하는 방식이 있다.
우선, 현재 시각을 통지하는 시각 통지 기능으로 사용하는 통신을 해시값의 송신에 이용하는 경우에 대해서 설명한다. 즉, PLC 시스템(400)에 있어서의 제1 PLC(1)가, 해시값의 송신을 제1 PLC(1)가 가지는 시각 통지 기능과 조합하여 실행하는 경우의, 해시값 수신 처리에 대해서 설명한다.
여기에서는, 제1 PLC(1)는 제1 제어부(120)가 가지는 시계 기능으로 카운트 하고 있는 현재의 시각 정보를 다른 PLC에 알리는 시각 통지 기능을 가진다. 그리고, 도 2의 스텝 S70에 있어서 제1 PLC(1)는, 제1 PLC(1)에 있어서의 이벤트의 해시값을, PLC 시스템(400)에 있어서의 다른 PLC에 현재의 시각 정보를 통지하는 시각 통지에 포함시켜 다른 PLC로 송신 가능하다. 또한, PLC 시스템(400)에 있어서의 제1 PLC(1) 이외의 PLC도 마찬가지이다.
도 10은 본 발명의 실시 형태 1에 따른 제1 PLC(1)에 있어서의 시각 통지 기능과 해시값의 송신을 조합시킨 제3 해시값 수신 처리의 절차를 나타내는 플로차트이다. 제1 PLC(1)의 기동 후에, 시각 통지가 PLC 시스템(400)에 있어서의 다른 PLC로부터 제1 통신부(130)로 송신되어 오면 제3 해시값 수신 처리가 시작한다. 우선, 스텝 S410에 있어서 제1 통신부(130)가, PLC 시스템(400)에 있어서의 다른 PLC로부터 송신된 시각 통지에 해시값이 포함되어 있는지 여부를 판정한다.
시각 통지에 해시값이 포함되어 있는 경우, 즉 스텝 S410에 있어서 Yes인 경우에는, 스텝 S420에 있어서 제1 통신부(130)가, 해시값에 대해서 도 8에 나타낸 수신 여부 판정 처리를 행한다.
다음으로, 스텝 S430에 있어서 제1 통신부(130)가, 수신 여부 판정 처리에서의 판정 결과에 기초하여, 해시값을 수신할지 여부를 결정한다.
수신 여부 판정 처리에서의 판정 결과에 기초하여, 해시값을 수신한다고 결정되었을 경우, 즉 스텝 S430에 있어서 Yes인 경우에는, 스텝 S440에 있어서 제1 통신부(130)는, 시각 통지와 함께 해시값을 수신한다. 그리고, 제1 통신부(130)는 해시값 및 시각 통지를 제1 해시값 산출부(121)로 송신한다.
다음으로, 스텝 S450에 있어서 제1 해시값 산출부(121)가, 도 4에 나타낸 제1 해시값 수신 처리를 행한다.
다음으로, 스텝 S460에 있어서 제1 해시값 산출부(121)가, 시각 통지를 기록할지 여부를 판정한다. 제1 해시값 산출부(121)는, 미리 결정되어 제1 해시값 산출부(121)에 기억되어 있는 판정 기준에 기초하여, 시각 통지를 기록할지 여부를 판정한다.
시각 통지를 기록한다고 판정되었을 경우, 즉 스텝 S460에 있어서 Yes인 경우에는, 스텝 S470에 있어서 제1 해시값 산출부(121)는, 수신한 시각 통지에 기초하여 이벤트 데이터를 작성한다. 즉, 제1 해시값 산출부(121)는 시각 통지의 수신을 이벤트로 한 이벤트 데이터를 작성한다.
다음으로, 스텝 S480에 있어서 제1 해시값 산출부(121)가, 도 2에 나타낸 이벤트 기록 처리를 행하여, 일련의 제3 해시값 수신 처리가 종료된다.
스텝 S410으로 되돌아가, 시각 통지에 해시값이 포함되어 있지 않은 경우, 즉 스텝 S410에 있어서 No인 경우에는, 제1 통신부(130)는 시각 통지를 수신하여 제1 해시값 산출부(121)로 송신하고, 스텝 S460으로 진행한다.
스텝 S430으로 되돌아가, 수신 여부 판정 처리에서의 판정 결과에 기초하여, 해시값을 수신하지 않는다고 결정되었을 경우, 즉 스텝 S430에 있어서 No인 경우에는, 제1 통신부(130)는 해시값을 수신하지 않고 시각 통지만을 수신하여 제1 해시값 산출부(121)로 송신하고, 스텝 S460으로 진행한다.
스텝 S460으로 되돌아가, 시각 통지를 기록하지 않는다고 판정되었을 경우, 즉 스텝 S460에 있어서 No인 경우에는, 일련의 제3 해시값 수신 처리가 종료된다.
제1 PLC(1)는, 도 10에 나타낸 제3 해시값 수신 처리를 실시함으로써, 시각 통지에 포함하여 다른 PLC로부터 송신된 해시값을 기억할 수 있다. 그리고, 제1 PLC(1)는, 시각 통지에 기초하여 기억된 이벤트 이력을 참조함으로써, PLC 시스템(400)에 있어서의 임의의 PLC에서 출현한 해시값을 다른 PLC에서 기록 개시한 것을, 해시 체인 외에, 시각 통지에 기초하여 기억된 이벤트 이력을 비교하는 것으로도 판정하는 것이 가능하게 된다. 또한, 상술한 처리는, 시각 통지의 수신과 해시값의 수신을 하나로 통합한 경우의 처리의 일례이며, 시각 통지의 수신과 해시값의 수신을 하나로 통합한 경우의 처리는 상기의 절차로 한정되지 않는다.
다음으로, 다른 PLC를 탐색하는 탐색 기능으로 사용하는 통신을 해시값의 송신에 이용하는 경우에 대해서 설명한다. PLC의 탐색 기능으로 사용하는 통신을 해시값의 송신에 이용한 경우의 제1 PLC(1)의 해시값의 수신 동작도, 상술한 PLC의 시각 통지 기능을 이용한 경우와 마찬가지의 처리가 된다. 다만, 이 경우에는, 탐색 요구를 송신하는 송신처의 PLC의 정보가 없는 상태에서 탐색 요구의 송신을 행하기 때문에, 브로드캐스트 송신을 행할 필요가 있다. 또한, 탐색 요구의 수신측의 PLC는, 탐색 요구에 대해서 응답을 돌려보낼 필요가 있다.
우선, 탐색 요구의 송신 처리에 대해서 설명한다. 도 11은 본 발명의 실시 형태 1에 따른 제1 PLC(1)에 있어서의 해시값을 포함하는 탐색 요구의 송신 처리의 절차를 나타내는 플로차트이다. 제1 PLC(1)의 기동 후에, 기정된 타이밍으로 해시값을 포함하는 탐색 요구의 송신 처리가 시작한다. 우선, 스텝 S510에 있어서 제1 해시값 산출부(121)가, 제1 해시값 이력 기억부(112)에 기억시킨 해시값을 취득한다.
다음으로, 스텝 S520에 있어서 제1 해시값 산출부(121)가, 해시값을 포함하여 탐색 요구의 데이터를 작성한다.
다음으로, 스텝 S530에 있어서 제1 해시값 산출부(121)가, 해시값을 포함하는 탐색 요구를 브로드캐스트 송신으로 PLC 시스템(400)에 있어서의 모든 PLC로 송신한다.
다음으로, 도 11의 플로차트에 나타내는 처리에서 브로드캐스트 송신된, 해시값을 포함하는 탐색 요구를 수신하는 탐색 요구 수신 처리를 제1 PLC(1)가 행하는 경우에 대해서 설명한다. 도 12는 본 발명의 실시 형태 1에 따른 제1 PLC(1)에 있어서의 해시값을 포함하는 탐색 요구의 수신 처리의 절차를 나타내는 플로차트이다. 제1 PLC(1)의 기동 후에, 탐색 요구가 PLC 시스템(400)에 있어서의 다른 PLC로부터 제1 통신부(130)로 송신되어 오면 해시값을 포함하는 탐색 요구의 수신 처리가 시작한다. 우선, 스텝 S610에 있어서 제1 통신부(130)가, PLC 시스템(400)에 있어서의 다른 PLC로부터 송신된 탐색 요구에 해시값이 포함되어 있는지 여부를 판정한다.
탐색 요구에 해시값이 포함되어 있는 경우, 즉 스텝 S610에 있어서 Yes인 경우에는, 스텝 S620에 있어서 제1 통신부(130)가, 해시값에 대해서 도 8에 나타낸 수신 여부 판정 처리를 행한다.
다음으로, 스텝 S630에 있어서 제1 통신부(130)가, 수신 여부 판정 처리에서의 판정 결과에 기초하여, 해시값을 수신할지 여부를 결정한다.
수신 여부 판정 처리에서의 판정 결과에 기초하여, 해시값을 수신한다고 결정되었을 경우, 즉 스텝 S630에 있어서 Yes인 경우에는, 스텝 S640에 있어서 제1 통신부(130)는, 탐색 요구와 함께 해시값을 수신한다. 그리고, 제1 통신부(130)는 해시값 및 탐색 요구를 제1 해시값 산출부(121)로 송신한다.
다음으로, 스텝 S650에 있어서 제1 해시값 산출부(121)가, 도 4에 나타낸 제1 해시값 수신 처리를 행한다.
다음으로, 스텝 S660에 있어서 제1 해시값 산출부(121)가, 탐색 요구에 대한 응답의 여부를 판정하는 탐색 응답 여부 판정 처리를 실시한다. 탐색 응답 여부 판정 처리에 대해서는 후술한다.
다음으로, 스텝 S670에 있어서 제1 해시값 산출부(121)가, 탐색 응답 여부 판정 처리에서의 판정 결과에 기초하여, 탐색 요구에 응답할지 여부를 결정한다. 제1 해시값 산출부(121)는, 미리 결정되어 제1 해시값 산출부(121)에 기억되어 있는 판정 기준에 기초하여, 탐색 요구에 응답할지 여부를 판정한다.
탐색 응답 여부 판정 처리에서의 판정 결과에 기초하여 탐색 요구에 응답한다고 결정되었을 경우, 즉 스텝 S670에 있어서 Yes인 경우에는, 스텝 S680에 있어서 제1 해시값 산출부(121)는, 탐색 요구에 응답하는 탐색 응답 처리를 행하여, 일련의 탐색 요구 수신 처리가 종료된다.
스텝 S610으로 되돌아가, 탐색 요구에 해시값이 포함되어 있지 않은 경우, 즉 스텝 S610에 있어서 No인 경우에는, 제1 통신부(130)는 탐색 요구를 수신하여 제1 해시값 산출부(121)로 송신하고, 스텝 S660으로 진행한다.
스텝 S630으로 되돌아가, 수신 여부 판정 처리에서의 판정 결과에 기초하여 해시값을 수신하지 않는다고 결정되었을 경우, 즉 스텝 S630에 있어서 No인 경우에는, 제1 통신부(130)는 해시값을 수신하지 않고 탐색 요구만을 수신하여 제1 해시값 산출부(121)로 송신하고, 스텝 S660으로 진행한다.
스텝 S670으로 되돌아가, 탐색 요구에 응답하지 않는 경우, 즉 스텝 S670에 있어서 No인 경우에는, 일련의 탐색 요구 수신 처리가 종료된다.
다음으로, 제1 PLC(1)가 탐색 응답 여부 판정 처리를 행하는 경우에 대해서 설명한다. 도 13은 본 발명의 실시 형태 1에 따른 제1 PLC(1)에 있어서의 탐색 응답 여부 판정 처리의 절차를 나타내는 플로차트이다.
우선, 스텝 S710에 있어서 제1 PLC(1)의 제1 해시값 산출부(121)가, PLC 시스템(400)에 있어서의 다른 PLC로부터 송신된 탐색 요구가, 탐색 요구에의 응답에 대한 등록 제어 장치인 탐색 요구에의 응답에 대한 등록 PLC로부터 송신된 탐색 요구인지 여부를 판정한다. 탐색 요구에의 응답에 대한 등록 PLC는, PLC 시스템(400)에 있어서의 다른 PLC로부터 탐색 요구가 송신되었을 경우에, 탐색 요구에의 응답을 허가하는 PLC로서 등록된 PLC이다. 탐색 요구에의 응답에 대한 등록 PLC의 정보는, 미리 결정되어 제1 통신부(130)에 등록되어 있다. 또한, 등록 PLC의 정보는, 제1 PLC(1)에 있어서의 제1 통신부(130) 이외의 구성부에 기억되어 있어도 된다.
탐색 요구가 등록 PLC로부터 송신된 탐색 요구가 아닌 경우, 즉 스텝 S710에 있어서 No인 경우에는, 스텝 S750에 있어서 제1 해시값 산출부(121)는, 탐색 요구에 응답하지 않는다고 판정한다.
한편, 탐색 요구가 등록 PLC로부터 송신된 탐색 요구인 경우, 즉 스텝 S710에 있어서 Yes인 경우에는, 제1 해시값 산출부(121)는, 스텝 S720으로 진행한다. 스텝 S720에 있어서 제1 해시값 산출부(121)는, 탐색 요구에 포함되는 인증 정보가, 등록 PLC에 부여되어 있는 인증 정보와 일치하는지 여부를 판정한다. 등록 PLC에 부여되어 있는 인증 정보는, 미리 결정되어 제1 해시값 산출부(121)에 등록되어 있다. 또한, 등록 PLC에 부여되어 있는 인증 정보는, 제1 PLC(1)에 있어서의 제1 해시값 산출부(121) 이외의 구성부에 기억되어 있어도 된다.
탐색 요구에 포함되는 인증 정보가 등록 PLC에 부여되어 있는 인증 정보와 일치하지 않는 경우, 즉 스텝 S720에 있어서 No인 경우에는, 스텝 S750에 있어서 제1 해시값 산출부(121)는, 탐색 요구에 응답하지 않는다고 판정한다.
한편, 탐색 요구에 포함되는 인증 정보가 등록 PLC에 부여되어 있는 인증 정보와 일치하는 경우, 즉 스텝 S720에 있어서 Yes인 경우에는, 제1 해시값 산출부(121)는, 스텝 S730으로 진행한다. 스텝 S730에 있어서 제1 해시값 산출부(121)는, 해당 탐색 요구를 송신한 등록 PLC로부터의 전회의 탐색 요구의 수신으로부터, 기정 시간 이상이 경과되어 있는지 여부를 판정한다. 기정 시간은 등록 PLC로부터 송신된 전회의 탐색 요구의 수신으로부터의 수신 후 경과 시간으로, 등록 PLC에 대해서 미리 결정되어 제1 해시값 산출부(121)에 등록되어 있다. 또한, 기정 시간의 정보는, 제1 PLC(1)에 있어서의 제1 해시값 산출부(121) 이외의 구성부에 기억되어 있어도 된다.
기정 시간 이상이 경과되어 있지 않은 경우, 즉 스텝 S730에 있어서 No인 경우에는, 스텝 S750에 있어서 제1 해시값 산출부(121)는, 탐색 요구에 응답하지 않는다고 판정한다.
한편, 기정 시간 이상이 경과되어 있는 경우, 즉 스텝 S730에 있어서 Yes인 경우에는, 스텝 S740에 있어서 제1 해시값 산출부(121)는, 탐색 요구에 응답한다고 판정한다.
다음으로, 제1 PLC(1)가 탐색 응답 처리를 행하는 경우에 대해서 설명한다. 도 14는 본 발명의 실시 형태 1에 따른 제1 PLC(1)에 있어서의 탐색 응답 처리의 절차를 나타내는 플로차트이다.
우선, 스텝 S810에 있어서 제1 해시값 산출부(121)가, 해시값을 탐색 요구의 송신원인 PLC로 송신할지 여부를 판정한다. 해시값을 송신할지 여부는, 기정된 판정 조건에 기초하여 결정된다. 판정 조건은 미리 결정되어 제1 해시값 산출부(121)에 기억되어 있다. 또한, 판정 조건은 제1 PLC(1)에 있어서의 제1 해시값 산출부(121) 이외의 구성부에 기억되어 있어도 된다.
해시값을 탐색 요구의 송신원인 PLC로 송신한다고 판정되었을 경우, 즉 스텝 S810에 있어서 Yes인 경우에는, 스텝 S820에 있어서 제1 해시값 산출부(121)가, 제1 해시값 이력 기억부(112)에 기억시킨 해시값을 취득한다.
다음으로, 스텝 S830에 있어서 제1 해시값 산출부(121)가, 탐색 요구에의 응답으로서, 해시값을 포함한 탐색 응답의 데이터를 작성한다.
다음으로, 스텝 S840에 있어서 제1 해시값 산출부(121)가, 해시값을 포함하는 탐색 응답을 탐색 요구의 송신원인 PLC로 송신하여, 일련의 탐색 응답 처리가 종료된다.
스텝 S810으로 되돌아가, 해시값을 탐색 요구의 송신원인 PLC로 송신하지 않는다고 판정되었을 경우, 즉 스텝 S810에 있어서 No인 경우에는, 스텝 S850에 있어서 제1 해시값 산출부(121)가, 탐색 요구에의 응답으로서, 해시값을 포함하지 않은 탐색 응답의 데이터를 작성한다. 그리고, 스텝 S840이 실시되어, 일련의 탐색 응답 처리가 종료된다.
제1 PLC(1)는, 도 12에 나타낸 탐색 요구의 수신 처리를 실시함으로써, 탐색 요구에 포함하여 다른 PLC로부터 송신된 해시값을 기억할 수 있다. 또한, 제1 PLC(1)는, 도 10에 나타낸 제3 해시값 수신 처리의 경우와 마찬가지로, 탐색 요구에 기초하여 이벤트 이력을 기억해도 된다. 탐색 요구에 기초하여 기억한 이벤트 이력을 참조함으로써, PLC 시스템(400)에 있어서의 임의의 PLC에서 출현한 해시값을 다른 PLC에서 기록 개시한 것을, 해시 체인 외에, 탐색 요구에 기초하여 기억된 이벤트 이력을 비교하는 것으로도 판정하는 것이 가능하게 된다.
또한, 도 12에 있어서는, 탐색 요구의 응답에 앞서 해시값의 수신 처리를 행하고 있지만, 탐색 요구에 응답했을 경우에만, 해시값의 수신 처리를 행하는 처리로 해도 된다. 또한, 상술한 처리는, 탐색 요구의 수신과 해시값의 수신을 하나로 통합한 경우의 처리의 일례이며, 탐색 요구의 수신과 해시값의 수신을 하나로 통합한 경우의 처리는 상기의 절차로 한정되지 않는다.
또한, 브로드캐스트 통신은, 네트워크에 대한 부하가 커서 장해의 요인이 된다. 이 때문에, 탐색 응답을 수신함으로써 통신처의 PLC가 명확하게 되었을 경우에는, 통신 방식을 변경해도 된다. 여기서, 브로드캐스트에 대해서, 수신측의 슬롯이 비어 있는 PLC가 응답하여, 송수신의 관계를 확립하는 방식을 채용함으로써, PLC마다 통신의 인접 관계를 구축할 수 있다. 그리고, 송신측의 PLC가, 인접 관계에 있어서의 이웃 PLC에 해시값을 송신하는 처리를 행함으로써, 네트워크의 부하를 높이지 않고 해시값을 송수신할 수 있다. 즉, 통상의 통신에 있어서의 데이터의 통신 경로와, 해시값의 통신 경로를 별개로 구성해도 된다.
또한, 상기에 있어서는, 해시값을 송신하는 방법으로서, 일대일의 관계의 통신 및 브로드캐스트에 대해서 나타냈지만, 해시값을 송신하는 방식으로서 송신을 일방 통행으로 해도 된다. 사이클릭 통신은 네트워크에 따라서는 확실히 수신되는 방법은 아니다. 이와 같은 사이클릭 통신에 있어서, 항상 데이터를 계속 갱신하는 스테이터스를 공개하는 송신측 PLC의 데이터로서 현재의 최신 해시값을 계속 송신하는 구성을 취할 수도 있다. 또한, 확실하게 수신되는 것을 기대할 수 있는, 미리 등록된 어드레스 또는 탐색의 결과 검출된 하나 또는 복수의 어드레스에 대해서 순서대로 해시값을 송신해도 된다.
다음으로, PLC 시스템(400)에 있어서의 복수의 PLC인 제1 PLC(1), 제2 PLC(2), 제3 PLC(3), … , 제n PLC(n)에 있어서의 각 이벤트 이력 기억부에 축적된 이벤트 이력을, 1지점에 수집했을 때의 이벤트 이력의 예에 대해서 설명한다.
도 15는 본 발명의 실시 형태 1에 따른 이벤트 이력 서버(500)에 수집된 PLC의 이벤트 이력 기억부에 축적된 이벤트 이력의 일례를 설명하는 도면이다. 이벤트 이력 서버(500)는, 상술한 이력 수집용 기억 장치(10)로서, PLC 시스템(400)에 있어서의 복수의 PLC의 각 이벤트 이력 기억부에 축적된 이벤트 이력을 수집하여 축적하는, 이벤트 이력의 축적 서버이다. 도 15에 있어서는, 도면 중의 각 PLC의 아래 쪽에, 각 PLC에 기억된 이벤트의 상세를 나타내고 있다. 여기에서는, 각 PLC에 6개의 이벤트 이력을 기억 가능한 경우에 대해서 나타내고 있다.
제1 PLC(1)의 이벤트 이력 기억부에는, 이벤트 이력 데이터 Ea1, 이벤트 이력 데이터 Ea2, 이벤트 이력 데이터 Ea3, 이벤트 이력 데이터 Ea4, 이벤트 이력 데이터 Ea5 및 이벤트 이력 데이터 Ea6가 기억되어 있고, 이들 이벤트 이력 데이터가 카피되어 이벤트 이력 서버(500)로 송신되고 있다.
제2 PLC(2)의 이벤트 이력 기억부에는, 이벤트 이력 데이터 Eb1, 이벤트 이력 데이터 Eb2, 이벤트 이력 데이터 Eb3, 이벤트 이력 데이터 Eb4, 이벤트 이력 데이터 Eb5 및 이벤트 이력 데이터 Eb6가 기억되어 있고, 이들 이벤트 이력 데이터가 카피되어 이벤트 이력 서버(500)로 송신되고 있다.
제3 PLC(3)의 이벤트 이력 기억부에는, 이벤트 이력 데이터 Ec1, 이벤트 이력 데이터 Ec2, 이벤트 이력 데이터 Ec3, 이벤트 이력 데이터 Ec4 및 이벤트 이력 데이터 Ec5가 기억되어 있고, 이들 이벤트 이력 데이터가 카피되어 이벤트 이력 서버(500)로 송신되고 있다.
제n PLC(n)의 이벤트 이력 기억부에는, 이벤트 이력 데이터 En1, 이벤트 이력 데이터 En2, 이벤트 이력 데이터 En3, 이벤트 이력 데이터 En4, 이벤트 이력 데이터 En5 및 이벤트 이력 데이터 En6가 기억되어 있고, 이들 이벤트 이력 데이터가 카피되어 이벤트 이력 서버(500)로 송신되고 있다.
도 15에 있어서, 이벤트 이력 데이터끼리를 연결하는 실선은, 이벤트 이력 데이터끼리가 해시 체인에 의해 관계를 가지고 있는 것을 나타내고 있다. 또한, 도 15에 있어서, 이벤트 이력 데이터끼리를 연결하는 화살표선은, 이벤트 이력 데이터의 해시값이 다른 PLC로 송신되어 있는 것을 나타내고 있다.
이벤트 이력 서버(500)에 수집된 이벤트 이력을 검증함으로써, 제1 PLC(1)가 이벤트 이력 데이터 Ea1의 해시값을, 제2 PLC(2), 제3 PLC(3), … , 제n PLC(n)로 송신하고 있는 것을 검출할 수 있다. 이벤트 이력 데이터 Ea1의 해시값을 수신한 각 PLC에서는, 이벤트 이력 데이터 Ea1의 해시값의 수신을 이벤트로서 이벤트 데이터가 작성되어 있다. 다만, 제3 PLC(3)에 대해서는, 제2 PLC(2) 및 제n PLC(n)와 마찬가지로, 이벤트 이력 데이터 Ec1 후에 이벤트 이력 데이터 Ea1의 해시값을 수신하고 있는 것이 추측된다. 그렇지만, 제3 PLC(3)에서는, 이벤트 이력 데이터 Ea1의 해시값이 소실되거나, 또는 파손되었기 때문에, 이벤트 이력 데이터 Ea1의 해시값의 수신을 이벤트로 한 이벤트 데이터가 작성되지 않아, 기억되어 있지 않은 것을 검출할 수 있다.
또한, 이벤트 이력 서버(500)에 수집된 이벤트 이력을 검증함으로써, 제1 PLC(1)가 이벤트 이력 데이터 Ea5의 해시값을, 제2 PLC(2), 제3 PLC(3), … , 제n PLC(n)로 송신하고 있는 것을 검출할 수 있다. 또한, 제1 PLC(1)는 이벤트 이력 데이터 Ea5의 해시값과 함께, 이벤트 이력 데이터 Ea1의 해시값을, 제2 PLC(2), 제3 PLC(3), … , 제n PLC(n)로 송신하고 있는 것을 검출할 수 있다. 이벤트 이력 데이터 Ea5의 해시값을 수신한 각 PLC에서는, 이벤트 이력 데이터 Ea5 및 이벤트 이력 데이터 Ea1의 해시값의 수신을 이벤트로서 이벤트 데이터가 작성되어 있다.
또한, 제3 PLC(3)의 이벤트 이력 데이터 Ec5를 검증함으로써, 제3 PLC(3)에서는, 이벤트 이력 데이터 Ea1의 해시값이 미수신인 것을 검출할 수 있다.
따라서, PLC 시스템(400)에 있어서의 복수의 PLC로부터 이벤트 이력 데이터를 이벤트 이력 서버(500)에 수집하고, 검증함으로써, PLC 시스템(400) 전체로서 어느 이벤트 이력 데이터가 소실되었는지를 특정할 수 있다. 또한, PLC 시스템(400) 전체로서 얼마만큼의 양의 이벤트 이력 데이터가 소실되었는지를 정량적으로 검출할 수 있어, PLC 시스템(400) 전체로서의 신뢰도에 대해서도 정량적으로 산출하는 것이 가능하다.
또한, 제1 PLC(1)의 이벤트 이력 데이터에 대해서, 이벤트 이력 데이터 Ea1으로부터 순서대로 해시값을 재계산하여 검증함으로써, 해시 체인에 의해, 제1 PLC(1)에 기억되어 있는 이벤트 이력 데이터끼리가 올바르게 기억되어 있는 것을 확인할 수 있다. 제2 PLC(2), 제3 PLC(3), … , 제n PLC(n)에 있어서도 마찬가지이다. 이것에 의해, 제1 PLC(1), 제2 PLC(2), 제3 PLC(3), … , 제n PLC(n)에 기억되어 있는 이벤트 이력 데이터가, 각 PLC에 있어서 기억된 올바른 데이터인 것을 확인할 수 있다.
또한, PLC 시스템(400)에 있어서는, 제1 PLC(1)에 있어서의 이벤트 이력 데이터 Ea5의 해시값 및 이벤트 이력 데이터 Ea1의 해시값의 송신에 예시되는 바와 같이, 다른 PLC에 이벤트 이력 데이터의 해시값을 송신할 때에 복수의 이벤트 이력 데이터의 해시값을 송신할 수 있다. 즉, PLC 시스템(400)에 있어서는, 최신 이벤트 이력 데이터의 해시값을 송신할 때에, 이전에 송신한 하나 또는 복수의 이벤트 이력 데이터의 해시값을 포함하여 송신할 수 있다. 이것에 의해, 상술한 바와 같이 제3 PLC(3)의 이벤트 이력 데이터 Ec5를 검증함으로써, 제3 PLC(3)에서는, 이벤트 이력 데이터 Ea1의 해시값이 미수신인 것을 검출할 수 있어, 미수신된 이벤트 이력 데이터의 해시값을 기억할 수 있다.
도 16은 상술한 실시 형태 1에 따른 PLC로서의 기능을 실현하는 컴퓨터 장치(600)의 구성의 일례를 모식적으로 나타내는 블록도이다. 상술한 실시 형태 1에 따른 PLC에 있어서 실행되는 처리를, 해당 처리 절차가 격납된 프로그램으로서 구성하고, 이 프로그램을 도 16에 나타내는 바와 같이 CPU, 기억 장치와 같은 구성을 가지는 컴퓨터 장치로 실행함으로써 실현할 수 있다.
도 16에 도시되는 바와 같이, 컴퓨터 장치(600)는, LCD(Liquid Crystal Display)와 같은 표시 장치(601), 간이 키보드와 같은 입력 장치(602), 연산을 행하는 CPU(603), ROM(Read Only Memory)과 같은 불휘발성 메모리(604), RAM(Random Access Memory)과 같은 휘발성 메모리(605), 표시 장치(601)에 표시하는 표시 화면을 기억하는 표시용 메모리(606), 플래시 메모리와 같은 착탈 가능한 외부 메모리와의 인터페이스인 외부 메모리 인터페이스(607), 외부 기기와의 사이에서 통신을 행하는 통신 인터페이스(608) 등이 버스(609)를 통해서 접속된 구성을 가진다. 또한, 표시 장치(601), 입력 장치(602) 및 표시용 메모리(606)가 포함되지 않는 구성으로 해도 된다.
상기의 제1 기억부(110)는 불휘발성 메모리(604)에 의해서 실현된다. 그리고, 불휘발성 메모리(604)에 격납된 상기의 PLC의 처리 절차가 기술된 프로그램이 휘발성 메모리(605)에 로드되고, CPU(603)에 의해서 실행됨으로써, 제1 제어부(120) 및 제1 통신부(130)가 실현된다. 이 프로그램은 하드디스크, CD(Compact Disk)-ROM(Read Only Memory), MO(Magneto-Optical disk), DVD(Digital Versatile Disc)로 예시되는, 컴퓨터 장치(600)로 판독 가능한 기록 매체에 기록되거나, 또는, 이 프로그램은 인터넷 등의 네트워크를 통해서 배포될 수도 있다. 이 경우에는, 통신 인터페이스(608)를 통해서 접속된 정보 처리 단말로부터 프로그램이 불휘발성 메모리(604) 상에 격납된다.
상술한 바와 같이, 본 실시 형태 1에 따른 제1 PLC(1)는, 다른 제어 장치(30)에 이벤트 이력 데이터의 해시값을 송신하는 기능을 가진다. 즉, 제1 PLC(1)는 제1 PLC(1)에 발생한 이벤트에 대응하는 해시값을 다른 제어 장치(30)에 기억시킬 수 있기 때문에, 제1 PLC(1)에서 발생한 이벤트에 대응하는 해시값을 복수의 장치에서 정보 공유할 수 있다. 이것에 의해, 제1 PLC(1)에서는, 검증 장치를 이용하여, 제1 PLC(1)와 다른 제어 장치(30)에 기억되어 있는 하나의 이벤트에 대응하는 2개의 해시값을 비교함으로써, 제1 PLC(1)에 기억된 해시값이 제1 PLC(1)의 기록 처리로 기록된 올바른 해시값인지 여부를 검증하는 것이 가능하다.
즉, 검증 장치를 이용하여, 복수의 다른 제어 장치(30)에 기억되어 있는 해시값과 제1 PLC(1)에 기억된 해시값을 비교하여, 복수의 다른 제어 장치(30)에 기억되어 있는 해시값이 같고, 복수의 다른 제어 장치(30)에 기억되어 있는 해시값과 제1 PLC(1)에 기억된 해시값이 다른 경우에는, 다른 제어 장치(30)에 기억되어 있는 해시값을 올바른 해시값으로서 취급할 수 있다.
또한, 제1 PLC(1)에서는, 검증 장치를 이용하여, 제1 PLC(1)에 기억된 이벤트 이력 데이터의 해시값을 재산출하여, 재계산한 해시값과, 이 이벤트 이력 데이터에 대응하는 해시값으로 다른 제어 장치(30)에 기억되어 있는 해시값을 비교함으로써, 제1 PLC(1)에 기억된 이벤트 이력 데이터가 제1 PLC(1)의 기록 처리로 기록된 올바른 이벤트 이력 데이터인지 여부를 검증하는 것이 가능하다. 즉, 재계산한 해시값과, 이 이벤트 이력 데이터에 대응하는 해시값으로 다른 제어 장치(30)에 기억되어 있는 해시값이 같은 경우에, 제1 PLC(1)에 기억된 이벤트 이력 데이터가 제1 PLC(1)의 기록 처리로 기록된 올바른 이벤트 이력 데이터이다.
또한, 제1 PLC(1)는, 다른 제어 장치(30)에 해시값을 송신할 때마다, 전회의 이벤트의 해시값과, 이번의 이벤트 데이터와, 이번의 이벤트의 해시값을 송신할 수 있다. 그리고, 다른 제어 장치(30)에서는, 이벤트 이력 데이터의 실데이터를 이용하여 해시값을 재계산함으로써, 수신한 이벤트 이력 데이터의 실데이터 및 해시값이 올바른 것을 검증하는 것이 가능하다.
그리고, 제1 PLC(1)에 기억된 해시값이 제1 PLC(1)의 기록 처리로 기록된 올바른 해시값이 아닌 것이 검출되었을 경우에는, 검증 장치에 있어서, 다른 제어 장치(30)에 기억되어 있는 해시값을 올바른 해시값으로서 이용하여, 제1 PLC(1)에 기억된 이벤트 이력 데이터의 해시값을 재산출할 수 있다. 그리고, 검증 장치에 있어서, 재계산한 해시값과, 이 이벤트 이력 데이터에 대응하는 해시값으로 다른 제어 장치(30)에 기억되어 있는 올바른 해시값을 비교함으로써, 제1 PLC(1)에 기억된 이벤트 이력 데이터가 제1 PLC(1)의 기록 처리로 기록된 올바른 이벤트 이력 데이터인지 여부를 검증하는 것이 가능하다. 이것에 의해, 제1 PLC(1)에 기억된 해시값이 조작되어 있었을 경우라도, 제1 PLC(1)에 기억된 이벤트 이력 데이터가 제1 PLC(1)의 기록 처리로 기록된 올바른 이벤트 이력 데이터인지 여부를 검증하는 것이 가능하다. 이 경우, 재계산한 해시값과 다른 제어 장치(30)에 기억되어 있는 해시값이 다른 경우에는, 제1 PLC(1)에 기억된 이벤트 이력 데이터는, 제1 PLC(1)의 기록 처리로 기록된 올바른 이벤트 이력 데이터가 아니라, 조작되어 있다.
또한, 상술한 검증 장치는, 도 16에 도시된 구성을 가지는 컴퓨터 장치(600)에 의해서 실현할 수 있다. 즉, 상술한, 재계산, 해시값의 비교 처리와 같은 처리의 처리 절차가 기술된 프로그램이 휘발성 메모리(605)에 로드되고, CPU(603)에 의해서 실행됨으로써 검증 장치의 기능을 실현할 수 있다.
또한, 본 실시 형태 1에 따른 제1 PLC(1)는, 다른 PLC로부터 송신되는 해시값을 이벤트 이력 데이터에 포함하여 기억하는 기능을 가진다. 즉, 제1 PLC(1)는 다른 PLC에 발생한 이벤트에 대응하는 해시값을 기억할 수 있기 때문에, 다른 PLC에서 발생한 이벤트에 대응하는 해시값을 복수의 장치에서 정보 공유할 수 있다. 이것에 의해, 제1 PLC(1)는 다른 PLC에 있어서의 다른 제어 장치(30)로서의 역할을 할 수 있다.
상술한 제1 PLC(1)를 이용하여 PLC 시스템을 구성함으로써, 다른 PLC에 기억된 이벤트의 해시값의 조작이 행해졌을 경우라도, 해시값의 조작을 용이하게 검출하는 것이 가능한 PLC 시스템을 실현할 수 있다. 그리고, 상술한 제1 PLC(1)를 이용하여 PLC 시스템을 구성함으로써, 제1 PLC(1)에 기억된 이벤트 이력 데이터가 제1 PLC(1)의 기록 처리로 기록된 올바른 이벤트 이력 데이터인지 여부를 검증하는 것이 가능한 PLC 시스템을 실현할 수 있다. 즉, PLC 시스템 내에 있어서 이벤트 이력 데이터의 해시값을 서로 보존함으로써, PLC 시스템 전체에서 이벤트 이력 데이터의 해시값의 체인을 공유하여, 해시값 및 이벤트 이력 데이터의 정당성을 검증할 수 있어, 해시값의 조작에 견딜 수 있는 데이터 보호를 실현할 수 있다. 이것에 의해, 해시값의 암호화와 같은 복잡한 처리 및 계산기 자원의 소비가 불필요하게 된다.
또한, 상기에 있어서 설명한 다양한 기능을 조합함으로써, PLC마다의 계산기 자원인 메모리 및 계산량을 거의 소비하지 않고, 불확실한 네트워크로 구성된 시스템 전체에서 데이터 신뢰성이 높은 이벤트 이력 데이터를 수집할 수 있다.
이상의 실시 형태에 나타낸 구성은, 본 발명 내용 중 일례를 나타내는 것으로, 다른 공지된 기술과 조합하는 것도 가능하며, 본 발명의 요지를 벗어나지 않는 범위에서, 구성의 일부를 생략, 변경하는 것도 가능하다.
1 제1 PLC, 2 제2 PLC, 3 제3 PLC, 10 이력 수집용 기억 장치, 20, 40, 70 통신선, 30 다른 제어 장치, 50 네트워크, 60 피제어 장치, 110 제1 기억부, 111 제1 이벤트 이력 기억부, 112 제1 해시값 이력 기억부, 113 제1 프로그램 기억부, 120 제1 제어부, 121 제1 해시값 산출부, 122 제1 이상 검출부, 130 제1 통신부, 210 제2 기억부, 211 제2 이벤트 이력 기억부, 212 제2 해시값 이력 기억부, 213 제2 프로그램 기억부, 220 제2 제어부, 221 제2 해시값 산출부, 222 제2 이상 검출부, 230 제2 통신부, 300, 400 PLC 시스템, 500 이벤트 이력 서버, 600 컴퓨터 장치, 601 표시 장치, 602 입력 장치, 603 CPU, 604 불휘발성 메모리, 605 휘발성 메모리, 606 표시용 메모리, 607 외부 메모리 인터페이스, 608 통신 인터페이스, 609 버스, n 제n PLC.

Claims (9)

  1. 피제어 장치를 제어하는 제어 장치로서,
    상기 제어 장치의 가동 중에 발생하는 이벤트의 이벤트 이력 데이터에 기초하여 제1 해시값을 산출하는 해시값 산출부와,
    상기 제1 해시값을 상기 제어 장치의 외부에 배치된 제1의 다른 제어 장치로 송신하고, 또한 상기 제어 장치의 외부에 배치된 제2의 다른 제어 장치에서 발생하는 이벤트의 이벤트 이력 데이터에 기초하여 산출된 제2 해시값을 수신하는 통신부와,
    상기 이벤트 이력 데이터와 상기 제1 해시값과 상기 제2 해시값을 기억하는 기억부를 구비하고,
    상기 이벤트 이력 데이터는 상기 제어 장치에 있어서 전회 산출한 제1 해시값과, 상기 제어 장치에서 발생한 이벤트 데이터 또는 상기 제2의 다른 제어 장치로부터 송신된 제2 해시값을 포함하며,
    상기 해시값 산출부는 상기 이벤트 이력 데이터에 기초하여 새로운 상기 제1 해시값을 생성함으로써 해시 체인을 형성하고,
    상기 기억부에 기억된 제1 해시값은, 상기 제어 장치와 상기 제1의 다른 제어 장치와 상기 제2의 다른 제어 장치 중 어느 것과도 다른 검증 장치에 있어서의, 상기 제1 해시값과, 상기 제1의 다른 제어 장치 또는 상기 제2의 다른 제어 장치에 기록된 해시값을 비교함으로써 상기 기억부에 기억된 제1 해시값이 상기 제어 장치로 산출되어 기억된 해시값인지 여부의 검증에 이용되는 것을 특징으로 하는 제어 장치.
  2. 청구항 1에 있어서,
    상기 이벤트 이력 데이터에 기초하여 상기 제1 해시값을 재계산하여 상기 재계산한 해시값의 이상을 검출하는 이상 검출부를 구비하는 것을 특징으로 하는 제어 장치.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 기억부에 상기 이벤트 이력 데이터를 기억할 때에, 상기 이벤트 이력 데이터보다 이전에 상기 제어 장치에서 발생한 이벤트의 이벤트 이력 데이터에 기초하여 산출된 해시값을 상기 이벤트 이력 데이터와 함께 기억하는 것을 특징으로 하는 제어 장치.
  4. 청구항 1 또는 청구항 2에 기재된 제어 장치와, 상기 제1의 다른 제어 장치 및 상기 제2의 다른 제어 장치가 통신 가능하게 구성되어 있는 것을 특징으로 하는 제어 장치 시스템.
  5. 청구항 4에 있어서,
    상기 제1의 다른 제어 장치 및 상기 제2의 다른 제어 장치는, 현재의 시각을 관리하는 현재 시각 관리 서버인 것을 특징으로 하는 제어 장치 시스템.
  6. 청구항 4에 있어서,
    상기 제1의 다른 제어 장치 및 상기 제2의 다른 제어 장치는, 상기 이벤트 이력 데이터를 기억하는 이벤트 이력 기억 서버인 것을 특징으로 하는 제어 장치 시스템.
  7. 청구항 1 또는 청구항 2에 기재된 제어 장치가, 통신 가능하게 복수 대 접속되어 구성되어 있고,
    상기 제어 장치는 상기 해시값 산출부로 산출한 상기 제1 해시값과, 다른 상기 제어 장치 중 적어도 하나의 다른 상기 제어 장치의 상기 해시값 산출부로 산출된 상기 제2 해시값을 기억하는 것을 특징으로 하는 제어 장치 시스템.
  8. 청구항 4에 있어서,
    상기 제어 장치와 상기 제1의 다른 제어 장치와 상기 제2의 다른 제어 장치 중 어느 것과도 다른 검증 장치를 구비하고,
    상기 검증 장치는 상기 제1 해시값과, 상기 제1의 다른 제어 장치 또는 상기 제2의 다른 제어 장치에 기록된 해시값을 비교함으로써, 상기 기억부에 기억된 제1 해시값이 상기 제어 장치로 산출되어 기억된 해시값인지 여부의 검증을 행하는 것을 특징으로 하는 제어 장치 시스템.
  9. 청구항 7에 있어서,
    복수 대의 상기 제어 장치 중 어느 것과도 다른 검증 장치를 구비하고,
    상기 검증 장치는 복수 대의 상기 제어 장치 중 하나의 제어 장치의 상기 해시값 산출부로 산출한 상기 제1 해시값과, 복수 대의 상기 제어 장치 중 다른 상기 제어 장치에 기록된 해시값을 비교함으로써, 상기 하나의 제어 장치의 기억부에 기억된 제1 해시값이 상기 하나의 제어 장치로 산출되어 기억된 해시값인지 여부의 검증을 행하는 것을 특징으로 하는 제어 장치 시스템.
KR1020207007759A 2017-09-25 2017-09-25 제어 장치 및 제어 장치 시스템 KR102182045B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/034575 WO2019058560A1 (ja) 2017-09-25 2017-09-25 制御装置および制御装置システム

Publications (2)

Publication Number Publication Date
KR20200035464A KR20200035464A (ko) 2020-04-03
KR102182045B1 true KR102182045B1 (ko) 2020-11-23

Family

ID=65810156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207007759A KR102182045B1 (ko) 2017-09-25 2017-09-25 제어 장치 및 제어 장치 시스템

Country Status (6)

Country Link
US (1) US10997008B2 (ko)
JP (1) JP6584699B2 (ko)
KR (1) KR102182045B1 (ko)
CN (1) CN111149322B (ko)
DE (1) DE112017007877B4 (ko)
WO (1) WO2019058560A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200119601A (ko) * 2019-04-10 2020-10-20 현대모비스 주식회사 차량의 바이너리 데이터 처리 장치 및 방법
US11366879B2 (en) * 2019-07-08 2022-06-21 Microsoft Technology Licensing, Llc Server-side audio rendering licensing
JP2021061576A (ja) * 2019-10-08 2021-04-15 グラビティ株式会社 データ管理システム、データ管理方法、データ管理装置、及びデータ管理プログラム
JP7327100B2 (ja) * 2019-11-15 2023-08-16 富士フイルムビジネスイノベーション株式会社 データ管理システム、データ管理装置及びデータ管理プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242871A (ja) 2004-02-27 2005-09-08 Denso Corp 通信システム
JP2008216342A (ja) 2007-02-28 2008-09-18 Tokyo Denki Univ カメラを利用した操作記録正当性証明システム及び方法
JP2011188029A (ja) 2010-03-04 2011-09-22 Fujitsu Ltd 電子署名装置、電子署名方法及びコンピュータプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4235193B2 (ja) 2005-06-07 2009-03-11 日本電信電話株式会社 イベント履歴蓄積装置、イベント情報検証装置、イベント履歴蓄積方法、イベント情報検証方法およびイベント情報処理システム
JP4871687B2 (ja) * 2005-10-03 2012-02-08 日立オートモティブシステムズ株式会社 車両制御システム
WO2008026238A1 (fr) 2006-08-28 2008-03-06 Mitsubishi Electric Corporation Système de traitement de données, procédé de traitement de données, et programme
US8549320B2 (en) * 2006-11-02 2013-10-01 Red Hat, Inc. Verifying loaded module during debugging
JP2008134726A (ja) * 2006-11-27 2008-06-12 Toshiba Corp トレーサビリティ情報記録装置、トレーサビリティ情報記録方法及びプログラム
JP5200231B2 (ja) 2008-09-17 2013-06-05 セイコーインスツル株式会社 画像記憶装置
US8458451B2 (en) * 2009-01-20 2013-06-04 New York University Database outsourcing with access privacy
US8108733B2 (en) * 2010-05-12 2012-01-31 International Business Machines Corporation Monitoring distributed software health and membership in a compute cluster
CN102446250A (zh) * 2010-10-13 2012-05-09 索尼公司 数据完整性的保护和验证方法、设备和***
US9419804B2 (en) * 2011-10-14 2016-08-16 Hitachi, Ltd. Data authenticity assurance method, management computer, and storage medium
US10762481B2 (en) * 2017-03-21 2020-09-01 The Toronto-Dominion Bank Secure offline approval of initiated data exchanges
CN107040545B (zh) * 2017-05-26 2019-05-31 中国人民解放军信息工程大学 工程文件全生命周期安全保护方法
US10567369B2 (en) * 2017-07-10 2020-02-18 Intuit Inc. Secure token passing via hash chains

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242871A (ja) 2004-02-27 2005-09-08 Denso Corp 通信システム
JP2008216342A (ja) 2007-02-28 2008-09-18 Tokyo Denki Univ カメラを利用した操作記録正当性証明システム及び方法
JP2011188029A (ja) 2010-03-04 2011-09-22 Fujitsu Ltd 電子署名装置、電子署名方法及びコンピュータプログラム

Also Published As

Publication number Publication date
JPWO2019058560A1 (ja) 2019-11-14
US10997008B2 (en) 2021-05-04
JP6584699B2 (ja) 2019-10-02
DE112017007877T5 (de) 2020-05-07
CN111149322A (zh) 2020-05-12
US20200387421A1 (en) 2020-12-10
CN111149322B (zh) 2021-06-11
WO2019058560A1 (ja) 2019-03-28
KR20200035464A (ko) 2020-04-03
DE112017007877B4 (de) 2021-05-06

Similar Documents

Publication Publication Date Title
KR102182045B1 (ko) 제어 장치 및 제어 장치 시스템
KR102175772B1 (ko) 컨트롤러 기반 데이터 전송 시스템 및 방법
US10680893B2 (en) Communication device, system, and method
US20050165939A1 (en) System, communication network and method for transmitting information
KR102104610B1 (ko) 네트워크 프로토콜의 취약점을 탐지하는 퍼징 방법 및 장치
JP6193185B2 (ja) 通信装置、端末装置およびプログラム
JP7039810B2 (ja) 情報収集システム、情報収集方法、及びプログラム
US20210400040A1 (en) Communication control device and communication system
US20210400026A1 (en) Communication control device and communication system
JP2017084296A (ja) 検知方法及び検知システム
CN113472740B (zh) 基于moas冲突事件的bgp劫持检测方法、装置及设备,可读存储介质
KR101522139B1 (ko) DNS 서버 선별 차단 및 Proxy를 이용한 DNS 주소 변경 방법
JP6709909B2 (ja) 検知システム、ウェブアプリケーション装置、ウェブアプリケーションファイアウォール装置、検知システムにおける検知方法、ウェブアプリケーション装置の検知方法及びウェブアプリケーションファイアウォール装置の検知方法
US11330013B2 (en) Method and device for monitoring data communications
KR101881061B1 (ko) 모드 변경이 가능한 양방향 통신 장치 및 방법
JP7326903B2 (ja) 情報処理装置及びプログラム
JP2019213131A (ja) 中央処理装置、検針システムおよび不正アクセス検出方法
CN115242494A (zh) 一种控制设备接入的方法、***、装置及介质
JP6890073B2 (ja) 情報収集装置、情報収集システム
JP6207784B1 (ja) 中継装置、中継方法およびプログラム
US10931654B2 (en) Method, network node and terminal device in a communication network
US20210400027A1 (en) Communication control device and communication system
KR102588355B1 (ko) 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US20230262095A1 (en) Management of the security of a communicating object
KR102578799B1 (ko) 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant