KR101572854B1 - 사이버 보안 기능이 강화된 피엘씨 장치 - Google Patents
사이버 보안 기능이 강화된 피엘씨 장치 Download PDFInfo
- Publication number
- KR101572854B1 KR101572854B1 KR1020140073596A KR20140073596A KR101572854B1 KR 101572854 B1 KR101572854 B1 KR 101572854B1 KR 1020140073596 A KR1020140073596 A KR 1020140073596A KR 20140073596 A KR20140073596 A KR 20140073596A KR 101572854 B1 KR101572854 B1 KR 101572854B1
- Authority
- KR
- South Korea
- Prior art keywords
- program
- programming device
- memory area
- memory
- central processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Programmable Controllers (AREA)
Abstract
본 발명에 따른 피엘씨 장치는 중앙처리유닛, 메모리, 프로그래밍 기기 접속부, 입력 모듈부 및 출력 모듈부를 포함하며, 상기 중앙처리유닛은 적어도 실행 모드와 정지 모드를 포함한 2 이상의 상태 모드를 가지며, 상기 메모리와 통신 가능하고, 프로그래밍 기기 접속부를 통하여 프로그래밍 기기와 통신 가능하며, 정지 모드 하에서는 프로그래밍 기기로부터 프로그램 로딩 요청 신호를 수신하면 로딩되는 프로그램을 상기 메모리에 저장하며, 실행 모드 하에서는 스타트업 태스크로서 로딩된 프로그램의 인증 확인 단계를 거친 이후에 입력 모듈부를 통하여 공급되는 입력 신호에 대하여 로딩된 프로그램에 따른 명령을 수행하여 얻어진 결과를 출력 모듈부에 제공하는 반복적 스캔 처리를 수행하는 것을 특징으로 한다. 본 발명에 따른 피엘씨 장치는 미인가된 프로그램의 수정 및 실행을 방지하며, 사용자 프로그램에 대한 보안성을 제고하는 효과를 제공한다.
Description
본 발명은 피엘씨 장치에 관한 것으로서, 구체적으로는 사이버 보안 기능이 강화된 피엘씨 장치에 관한 것이다.
미국 전기제조업협회(NEMA, National Electrical Manufacturers Association)에 따르면 피엘씨(PLC, Programmable Logic Controller)는 "디지털 또는 아날로그 입출력 모듈을 통하여 로직, 시퀀스, 타이밍, 카운트, 연산과 같은 기능을 수행하기 위하여 프로그램 가능한 메모리를 사용하고 여러 종류의 기계나 프로세서를 제어하는 디지털 동작의 전자장치"로 정의하고 있다.
PLC는 1968년 미국 자동차 메이커인 GM사에서 기존의 릴레이 제어반을 대체하기 위한 새로운 전자화 제어기에 대한 요구에 따라 DEC사에서 PDP-14라는 최초의 PLC를 개발함으로써 탄생하게 되었다. 개발 당시 GM사는 PLC에 관하여 10가지 요구조건을 제시하였는데, 그 대표적 조건은 (1) 프로그램 작성 및 변경이 용이하고, 현장 작업자가 쉽게 동작 시퀀스를 작성 및 변경할 수 있을 것,(2) 점검 및 보수가 용이할 것, (3) 메인 시스템을 대폭 변경하지 않고도 기본 유닛이 확장 가능할 것 등이었다. 이 후 PLC는 전자화 제어기기로서 눈부신 발전을 거듭하였으며, 그 태생적 특성으로서 프로그램의 작성이 간편하고, 변경 및 보수도 용이하도록 산업 현장에서 진보되어, 오늘날 공장자동화의 핵심기기로 자리매김하여 산업 전반에 걸쳐 광범위하게 사용되고 있다.
그런데 대부분의 PLC는 여전히 그 기능 및 메모리 사이즈 면에서 간편함을 선호하기 때문에, 사용자 프로그램을 PLC에 로딩하거나 이를 수정하는 것은 현장 작업자를 신뢰하여 작업자 1인에 의하여 수행되는 것이 보통이다. 그리고 일단 PLC에 로딩된 프로그램은 PLC의 동작 결과를 보고 적합성을 판단하는 정도이고, 프로그램의 내용을 직접 확인해 보거나, 착오에 의한 로딩 오류 또는 사이버 침입에 대한 방어 수단은 미미한 실정이다.
그러나 PLC가 대규모 산업이나 국가 기반 시설 등에 사용이 확산됨에 따라, PLC의 사용상 간편성은 유지하더라도, 프로그램의 수정 및 로딩에 더욱 신중을 기하고, 품질 및 보안 관리를 시행할 필요가 있다. 예를 들면, 최근 원자력발전소의 계측 제어 계통에도 PLC가 사용되기 시작하였는데, 이러한 경우에는 엄격한 품질관리와 고도의 보안성이 요구된다. 또한, 급수 시설이나 에너지, 교통 등의 기간 시설이 테러나 스파이의 공격 표적으로 부상되고 있고, 특히 최근 금융기관에서 발생한 대규모 정보 유출 사건의 교훈으로부터 살펴볼 때, PLC를 사용하는 기간 시설에 대해서도 외부 침입에 대한 방어는 물론, 악의적이거나 부주의한 내부 작업자에 의한 프로그램 무단 변조를 예방하는 수단도 필요한 시점에 있다. 본 발명과 관련된 종래기술로는 1996년 9월 17일자로 공개된 대한민국 공개특허공보 특1996-0031213호와 2007년 2월 15일 공개된 일본 공개특허공보 특개2007-41650호에 기재된 피엘씨에 관한 기술 내용을 참고할 수 있다.
본 발명은 피엘씨에 로딩되는 프로그램의 보안성을 제고하기 위하여, 미인가된 프로그램의 수정 및 실행을 방지하는 피엘씨 장치를 제공하기 위한 것이다.
본 발명의 실시예에 따른 피엘씨 장치는 중앙처리유닛, 메모리, 프로그래밍 기기 접속부, 입력 모듈부 및 출력 모듈부를 포함하며, 상기 중앙처리유닛은 적어도 실행 모드와 정지 모드를 포함한 2 이상의 상태 모드를 가지며, 상기 메모리와 통신 가능하고, 프로그래밍 기기 접속부를 통하여 프로그래밍 기기와 통신 가능하며, 정지 모드 하에서는 프로그래밍 기기로부터 프로그램 로딩 요청 신호를 수신하면 로딩되는 프로그램을 상기 메모리에 저장하며, 실행 모드 하에서는 스타트업 태스크로서 로딩된 프로그램의 인증 확인 단계를 거친 이후에 입력 모듈부를 통하여 공급되는 입력 신호에 대하여 로딩된 프로그램에 따른 명령을 수행하여 얻어진 결과를 출력 모듈부에 제공하는 반복적 스캔 처리를 수행하는 것을 특징으로 한다.
본 발명에 따른 피엘씨 장치의 중앙처리유닛은 정지 모드 하에서 접속된 프로그래밍 기기에 대하여 마스터급과 일반급을 포함한 적어도 2등급의 등급 판단이 가능하고, 프로그래밍 기기가 마스터급인 경우 프로그래밍 기기로부터 인증 확인 신호가 수신되면 상기 메모리에 인증 플래그를 온으로 저장하고, 프로그래밍 기기가 일반급인 경우 프로그래밍 기기로부터 프로그램 로딩 요청 신호가 수신되면 상기 메모리에 인증 플래그를 오프로 저장하며, 실행 모드하에서는 인증 플래그의 상태에 의하여 프로그램의 인증 확인을 수행하는 것을 특징으로 할 수 있다.
본 발명에 따른 피엘씨 장치에 접속되는 마스터급 프로그래밍 기기는 프로그래밍 기기 상에 저장된 참조 프로그램과 상기 메모리의 프로그램을 비교하여 일치되는 경우 인증 확인 신호를 발생시키는 것을 특징으로 할 수 있다.
본 발명에 따른 피엘씨 장치의 메모리는 사용자 메모리 영역 및 참조 메모리 영역을 포함하여 구성되며, 중앙처리유닛은 접속된 프로그래밍 기기에 대하여 마스터급과 일반급을 포함한 적어도 2등급의 등급 판단이 가능하고, 정지 모드 하에서는 일반급 프로그래밍 기기로부터 프로그램 로딩 요청 신호를 수신하면 로딩되는 프로그램을 사용자 메모리 영역에 저장하며, 마스터급 프로그래밍 기기로부터 프로그램 로딩 요청 신호를 수신하면 프로그램을 참조 메모리에 저장하며, 실행 모드 하에서는 스타트업 태스크로서 사용자 메모리 영역의 프로그램과 참조 메모리 영역의 프로그램을 비교하여 일치되는 경우에만 프로그램의 인증 확인이 되는 것을 특징으로 할 수 있다.
본 발명에 따른 피엘씨 장치에 접속되는 프로그래밍 기기가 마스터급인 경우, 중앙처리유닛은 프로그램 로딩 요청 신호를 수신하면 프로그래밍 기기 상에 저장된 프로그램을 참조 메모리에 저장하거나 또는 사용자 메모리에 저장된 프로그램을 참조 메모리에 복사 저장하는 것을 특징으로 할 수 있다.
본 발명에 따른 피엘씨 장치의 참조 메모리는 사용자 메모리와 분리된 별도의 메모리 모듈에 구성되는 것을 특징으로 할 수 있다.
본 발명에 따른 피엘씨 장치에 접속되는 프로그래밍 기기의 등급은 프로그래밍 기기에 탑재된 프로그래밍 소프트웨어의 종류에 따라 구분되거나, 또는 프로그래밍 소프트웨어의 사용자 권한 등급에 따라 구분되는 것을 특징으로 할 수 있다.
본 발명에 따른 피엘씨 장치의 중앙처리유닛은 프로그램 인증에 실패하는 경우 출력부에 경고 신호를 출력하는 것을 특징으로 할 수 있다.
본 발명에 따른 피엘씨 장치는 미인가된 프로그램의 수정 및 실행을 방지하는 효과를 제공한다. 나아가서 프로그래밍 기기의 등급을 사용하여 사용자 프로그램 로딩과 프로그램 인증이 분리되어 수행됨으로써 품질 보증 절차의 현실적인 구현을 용이하게 하며, 현장 작업자가 단독으로 프로그램을 임의 변조하는 것을 방지할 수 있는 효과가 있다. 또한 일반급 프로그래밍 기기에 의하여 인증 플래그나 참조 프로그램에 대한 접근 및 변조가 불가능하므로, 사용자 프로그램에 대한 보안성이 제고되는 효과를 갖는다.
도1은 본 발명의 일 실시예에 따른 피엘씨 장치의 구성도이다.
도2는 본 발명의 일 실시예에 따른 메모리 맵 개념도이다.
도2는 본 발명의 일 실시예에 따른 메모리 맵 개념도이다.
이하에서는 본 발명에 따른 구체적인 실시예가 설명된다. 그러나 본 발명은 여러 가지 다양한 형태로 변형하여 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지는 않는다. 본 발명에 첨부된 도면은 설명의 편의를 위한 것으로 간략화 되었으며, 본 발명을 명확하게 하기 위해서 발명과 직접적인 관계가 적은 부분은 생략되었다.
본 발명에 따른 피엘씨(PLC) 장치(10)의 전형적인 실시예는 도1에 도시된 바와 같이, 중앙처리유닛(100; CPU, Central Processing Unit), 메모리(200; Memory), 프로그래밍 기기 접속부(300), 입력 모듈부(500; Input Module) 및 출력 모듈부(600; Output Module)를 포함하여 구성된다. 통상적인 피엘씨 장치는 전원부(900, Power Supply)를 포함하나, 경우에 따라서는 이를 전원공급 모듈(Power Module)로 별도로 구성할 수도 있다.
입력 모듈부(500)는 입력기기(510; Input Device)로부터 신호를 받아 데이터화 하여 중앙처리유닛(100)으로 정보를 전달한다. 입력기기(510)의 예로는 버튼, 스위치, 센서 등을 들 수 있다. 출력 모듈부(600)는 중앙처리유닛(100)의 처리 결과를 수신하여 출력기기(610; Output Device)로 제어정보를 공급한다. 출력기기(610)의 예로는 모터, 전자밸브, 인디케이터, 램프, 외부 제어기 등을 들 수 있다. 입력 모듈부(500) 및 출력 모듈부(600)는 피엘씨와 외부 프로세스 사이의 인터페이스를 제공하며, 통상적으로 입출력 신호로부터 오는 노이즈 및 서지(surge)로부터 피엘씨 내부를 보호하기 위하여 포토커플러(Photo Coupler)를 사용하고, 그 외에도 필요에 따라 A/D(아날로그-디지털) 및 D/A(디지털-아날로그) 컨버터 등의 수단을 사용하여 신호를 가공한다.
PLC에 사용자 프로그램을 로딩하기 위하여 프로그래밍 소프트웨어가 탑재된 노트북 컴퓨터, 개인용 컴퓨터(PC), 또는 휴대용 기기(Hand-held Device)가 사용되는데, 본 발명에서는 이들을 프로그래밍 기기(310, Programming Device)라고 지칭한다. 본 발명에서 특별한 한정이 없는 한, '프로그램'은 사용자가 로딩하는 사용자 프로그램을 의미한다. 프로그래밍 기기(310)는 피엘씨 장치(10)에 구비된 프로그래밍 기기 접속부(300)를 통하여 직렬 또는 병렬 통신 링크나 이더넷 등의 방식에 의하여 피엘씨의 중앙처리유닛(100)과 통신한다.
PLC 장치의 중앙처리유닛(100; CPU)은 적어도 실행 모드(RUN Mode)와 정지 모드(STOP Mode; '프로그램 모드'라고 불리기도 함)를 포함한 2 이상의 상태 모드를 갖는다. 실행 모드는 PLC가 프로그램에 의한 제어 동작을 실행하는 모드이고, 정지 모드는 PLC의 제어 동작이 정지되고 프로그램의 로딩이나 수정이 가능한 모드이다. CPU(100)는 메모리(200)와 통신 가능하고, 프로그래밍 기기 접속부(300)를 통하여 프로그래밍 기기(310)와 통신 가능하다. 실행 모드 하에서는 입력 모듈부(500)를 통하여 공급되는 입력 데이터에 대하여 로딩된 사용자 프로그램에 따른 명령(instruction)을 수행하여 얻어진 결과를 출력 모듈부(600)에 제공한다.
CPU(100)는 실행 모드에서 프로그램에 따른 명령(instruction)을 반복적으로 수행한다. 이러한 반복적인 주기적 프로세스를 스캔(scan)이라 칭하는데, 스캔은 통상적으로 입력 스캔, 프로그램 스캔 및 출력 스캔으로 구성되어 순차적으로 반복된다. 입력스캔은 입력 모듈부의 변수 상태를 메모리의 입력 테이블에 저장하는 프로세스이고, 프로그램 스캔은 입력 테이블에 대하여 사용자가 로딩한 프로그램의 첫 번째 명령부터 마지막 명령까지 실행하여 메모리의 출력 테이블을 갱신시키는 프로세스이며, 출력 스캔은 출력 테이블을 출력 모듈부에 이송(transfer)하는 프로세스이다.
이러한 스캔 프로세스는 운영체제(OS, Operating System)에 의하여 통제되는데, OS는 상기 입출력 및 프로그램 실행 태스크 외에도 진단 태스크(Diagnostic Task), 통신 태스크(Communication Task), 외부 기기 인터페이스 태스크(External Interface Task) 등의 반복적 태스크를 수행하며, 비반복적인 시작 코드(Startup Code) 수행과 프로그래밍 소프트웨어 인터페이스(Programming Software Interface)를 수행한다.
CPU가 실행 모드에 진입하면 OS가 첫 번째 스캔(first scan)인지 여부를 판단하여, 첫 번째 스캔으로 판단되면 스캔을 시작하기 전에 시작 코드(Startup Code)를 수행한다. 시작 코드는 사용자 프로그램이 반복적으로 실행되기 전에 필요한 초기 세팅 및 상태 체크 등을 수행하며, 일단 첫 번째 스캔이 실행된 이후에는 해당 실행 모드 동안 더 이상 실행되지는 않는다.
OS가 첫 번째 스캔인지 여부를 판단하는 절차 및 시작 코드(Startup Code)를 실행하는 것을 포함하여 반복적인 스캔 처리를 시작하기 전에 수행하는 준비 작업을 스타트업 태스크(Startup Task)라 지칭한다.
본 발명에 따른 피엘씨의 CPU는 실행 모드로 진입하면 먼저 스타트업 태스크에서 로딩된 프로그램의 인증(Authentication) 확인을 하는 단계를 거친 이후에, 입력 모듈부를 통하여 공급되는 입력 신호에 대하여 로딩된 프로그램에 따른 명령을 수행하여 얻어진 결과를 출력 모듈부에 제공하는 반복적 스캔 처리를 수행한다.
사용자 프로그램을 PLC에 로딩시키기 위해서는 PLC의 상태 모드를 정지 모드로 전환하는데, 이 때 프로그래밍 소프트웨어 인터페이스(Programming Software Interface) 태스크가 실행되며, 프로그래밍 소프트웨어가 탑재된 프로그래밍 기기(310)를 프로그래밍 기기 접속부(300)에 연결하여, 작성된 프로그램을 선택하여 피엘씨(10)로 전송하여 로딩을 수행한다.
정지 모드 하에서 중앙처리유닛(100)이 프로그래밍 기기(310)로부터 프로그램 로딩 요청 신호(Request)를 수신하면 프로그래밍 기기(310)로부터 전송되는 프로그램을 메모리(200)에 저장한다.
CPU는 정지 모드 하에서 접속된 프로그래밍 기기에 대한 등급 판단이 가능한데, 프로그래밍 기기의 등급은 마스터급과 일반급을 포함하여 적어도 2등급으로 구분된다. 프로그래밍 기기가 마스터급인 경우 프로그래밍 기기로부터 인증 확인 신호가 수신되면 상기 메모리(200)에 인증 플래그(Authentication Flag)를 온으로 저장하고, 프로그래밍 기기가 일반급인 경우 프로그래밍 기기로부터 프로그램 로딩 요청 신호가 수신되면 상기 메모리(200)에 인증 플래그를 오프로 저장하며, 실행 모드하의 스타트업 태스크 단계에서 인증 플래그의 상태에 의하여 프로그램 인증을 확인한다.
메모리(200)에 프로그램이 로딩되면 인증 플래그는 일단 오프 상태에 있게 되며, 마스터급 프로그래밍 기기에 의하여 인증이 완료되어 프로그래밍 기기로부터 인증 확인 신호가 수신되는 절차를 거쳐야만 인증 플래그가 온 상태로 전환된다. 이후 프로그램이 수정 로딩될 때 마다 이러한 인증 작업이 수행되어야만 CPU가 정상적으로 동작한다. 따라서 이러한 방법을 통하여 품질 보증 절차의 현실적인 구현이 용이하게 되며, 현장 작업자가 단독으로 프로그램을 임의로 변조하는 것을 방지할 수 있는 효과가 있다.
마스터급 프로그래밍 기기는 프로그래밍 기기 상에 저장된 참조 프로그램과 상기 메모리의 프로그램을 비교하여 일치되는 경우에 인증 확인 신호를 발생시키는 것으로 할 수 있다. 이러한 경우에는 프로그램이 작성되면 이를 프로그래밍 기기 상에 존재하는 메모리에 저장하고 품질 보증 절차를 통하여 관리하고, 동일한 프로그램은 일반급 프로그래밍 기기를 통하여 피엘씨에 로딩하는 것으로 절차화 함으로써 현장 작업자가 단독으로 프로그램을 변조하는 것을 방지할 수 있다. 여기서 참조 프로그램이 프로그래밍 기기 상에 저장된다 함은 프로그래밍 기기의 내장 메모리 또는 외장 메모리에 저장되는 것을 모두 포함한다.
본 발명에 따른 다른 실시예 중의 하나는 메모리(200)를 사용자 메모리 영역(205; User Memory) 및 참조 메모리 영역(206; Reference Memory)을 포함하여 구성하고, 정지 모드 하에서 일반급 프로그래밍 기기로부터 프로그램 로딩 요청 신호를 수신하면 로딩되는 프로그램을 사용자 메모리 영역(205)에 저장하며, 마스터급 프로그래밍 기기로부터 프로그램 로딩 요청 신호를 수신하면 프로그램을 참조 메모리영역(206)에 저장하며, 실행 모드 하에서는 스타트업 단계로서 사용자 메모리 영역(205)의 프로그램과 참조 메모리 영역(206)의 프로그램을 비교하여 일치되는 경우에만 프로그램의 인증을 확인하는 것으로 할 수 있다. 앞서 설명된 실시예에서는 비교 대상 프로그램을 마스터급 프로그래밍 기기에 저장하는 것인 반면, 후자의 실시예에서는 비교 대상 프로그램을 피엘씨 자체의 참조 메모리 영역(206)에 저장함으로써 품질관리 영역이 프로그래밍 기기까지 확대되는 것을 배제하는 장점이 있다.
마스터급 프로그래밍 기기로부터 프로그램 로딩 요청 신호를 수신하여 CPU가 프로그램을 참조 메모리 영역(206)에 저장하는 방법은 프로그래밍 기기 상에 저장되어 있는 프로그램을 참조 메모리 영역(206)에 직접 저장하거나 또는 사용자 메모리 영역(205)에 이미 저장된 프로그램을 참조 메모리 영역(206)에 복사 저장할 수 있다. 후자의 경우, 사용자 메모리에 저장된 프로그램은 일반급 프로그래밍 기기에 의하여 사전에 로딩된 프로그램이며, 품질 보증 절차에 의하여 마스터급 프로그래밍 기기 사용자가 입회하는 방법으로 그 품질이 보증된 경우에 사용자 메모리 영역(205)에 저장된 프로그램을 참조 메모리 영역(206)에 복사 저장하도록 허용하는 것이 바람직하다.
피엘씨는 종종 유연성과 확장성을 위하여 다수개의 모듈이 결합된 랙(rack)의 형태를 취할 수 있는데, 각 모듈이 슬라이딩 방식으로 랙에 삽입되어 백플레인(backplane)을 통하여 전기적으로 연결된다. 이 경우 상기 참조 메모리 영역(206)은 사용자 메모리 영역(205)과 분리되어 보안 카드(Security Card)라고 불리는 별도의 모듈에 구성될 수 있다.
상기 CPU는 프로그램 인증에 실패하는 경우 출력부(600)를 통하여 경고 또는 오류 신호를 출력하고 피엘씨의 동작을 정지하게 할 수 있다.
CPU에 의하여 판단되는 프로그래밍 기기(310)의 등급은 프로그래밍 기기에 탑재된 프로그래밍 소프트웨어의 종류에 따라 구분되거나, 또는 프로그래밍 소프트웨어의 사용자 권한 등급에 따라 구분되는 것으로 할 수 있다.
메모리는 기능에 따라 휘발성 메모리와 비휘발성 메모리로 구분되며, 휘발성 메모리로서 읽기/쓰기가 가능한 램(RAM)이 사용되며, 비휘발성 메모리는 읽기만 가능한 롬(ROM)과 읽기/쓰기가 가능한 EEPROM이나 플래시 메모리(Flash Memory) 등이 사용되고 있다.
도2는 본 발명의 이해를 돕기 위하여 메모리 영역을 개념적으로 도식화 한 것이다. 메모리는 그 용도에 따라 운영체제 메모리 영역(OS Memory; 201), 시스템 메모리 영역(System Memory; 202), 입출력 상태 메모리 영역(I/O Status Memory; 203), 데이터 메모리 영역(Data Memory; 204), 사용자 메모리 영역(User Memory; 205) 및 참조 메모리 영역(Reference Memory; 206)을 포함하여 구성된다. 도2의 우측 변에는 메모리의 바람직한 유형(type)이 참고적으로 표시되어 있으나, 반드시 이에 국한되는 것은 아니다.
피엘씨의 운영체제(OS, Operating System)는 피엘씨 제조사에 의하여 작성되어 운영체제 메모리 영역(201)으로 할당된 ROM에 영구적으로 저장되는 것이 보통이며, 사용자가 수정할 수 없다. 경우에 따라 OS저장 영역으로 플래시 메모리를 사용할 수도 있다.
시스템 메모리 영역(202)은 OS가 동작하는데 필요한 임시 데이터를 저장하는 영역이며 RAM에 할당된다. 입출력 상태 메모리 영역(203)은 각 입출력 변수 데이터 테이블이 기록된 영역이며 RAM에 할당된다. 데이터 메모리 영역(204)은 사용자 프로그램의 실행을 위하여 필요한 데이터가 저장되며 RAM에 할당된다.
사용자 메모리 영역(205)은 일반급 프로그래밍 기기에 의하여 사용자 프로그램이 저장되는 영역이다. 사용자 프로그램은 일반급 프로그래밍 기기를 통하여 RAM에 직접 저장되거나, 정전이나 백업 배터리 방전시에도 프로그램을 상실하지 않을 목적으로 플래시 메모리 등에 일단 저장한 후 프로그램 실행 속도를 위하여 RAM으로 이송되게 할 수도 있다. 프로그램이 로딩되면, 사용자 메모리 영역(205)에 이미 존재하던 프로그램은 겹쳐 쓰기(overwrite) 되면서 삭제된다.
참조 메모리 영역(206)은 일반급 프로그래밍 기기에 의하여 접근(Access)이 불가능한 영역으로서 앞서 설명된 인증 플래그(Authentication Flag)가 저장되거나, 실행 모드의 스타트업 태스크에서 사용자 프로그램을 비교하여 프로그램 인증을 확인하는 실시예의 경우에는 비교 대상 기준이 되는 참조 프로그램이 저장되는 영역이며, 플래시 메모리(Flash Memory)와 같은 비휘발성의 읽기/쓰기 가능 메모리 영역에 할당되는 것이 바람직하다. 이렇게 하면 일반급 프로그래밍 기기에 의하여 인증 플래그(Authentication Flag)나 참조 프로그램에 대한 접근 및 변조가 불가능하고, 또한 미인증된 사용자 프로그램이 로딩되어 있는 경우 피엘씨 작동이 불가하므로, 사용자 프로그램에 대한 보안성이 제고되는 효과를 갖는다. 참조 프로그램이 로딩되면, 참조 메모리 영역(206)에 이미 존재하던 프로그램은 겹쳐 쓰기(overwrite) 되면서 삭제된다.
위에서 개시된 발명은 기본적인 사상을 훼손하지 않는 범위 내에서 다양한 변형예가 가능하다. 따라서 위의 실시예들은 모두 예시적으로 해석되어야 하며, 한정적으로 해석되지 않는다. 따라서 본 발명의 보호범위는 상술한 실시예가 아니라 첨부된 청구항에 따라 정해진다. 첨부된 청구항의 균등물로의 치환은 첨부된 청구항의 보호범위에 속하는 것이다.
10: 피엘씨(PLC) 장치
100: 중앙처리유닛(CPU, Central Processing Unit)
200: 메모리(Memory)
201: 운영체제 메모리 영역(OS Memory)
202: 시스템 메모리 영역(System Memory)
203: 입출력 상태 메모리 영역(I/O Status Memory)
204: 데이터 메모리 영역(Data Memory)
205: 사용자 메모리 영역(User Memory)
206: 참조 메모리 영역(Reference Memory)
300: 프로그래밍 기기 접속부
310: 프로그래밍 기기(Programming Device)
500: 입력 모듈부(Input Module)
510: 입력기기(Input Device)
600: 출력 모듈부(Output Module)
610: 출력기기(Output Device)
900: 전원부(Power Supply)
100: 중앙처리유닛(CPU, Central Processing Unit)
200: 메모리(Memory)
201: 운영체제 메모리 영역(OS Memory)
202: 시스템 메모리 영역(System Memory)
203: 입출력 상태 메모리 영역(I/O Status Memory)
204: 데이터 메모리 영역(Data Memory)
205: 사용자 메모리 영역(User Memory)
206: 참조 메모리 영역(Reference Memory)
300: 프로그래밍 기기 접속부
310: 프로그래밍 기기(Programming Device)
500: 입력 모듈부(Input Module)
510: 입력기기(Input Device)
600: 출력 모듈부(Output Module)
610: 출력기기(Output Device)
900: 전원부(Power Supply)
Claims (8)
- 중앙처리유닛;
메모리;
프로그래밍 기기 접속부;
입력 모듈부; 및
출력 모듈부;를 포함하며,
상기 중앙처리유닛은 적어도 실행 모드와 정지 모드를 포함한 2 이상의 상태 모드를 가지며, 상기 메모리와 통신 가능하고, 프로그래밍 기기 접속부를 통하여 프로그래밍 기기와 통신 가능하며, 정지 모드 하에서는 프로그래밍 기기로부터 프로그램 로딩 요청 신호를 수신하면 로딩되는 프로그램을 상기 메모리에 저장하며, 실행 모드 하에서는 스타트업 태스크로서 로딩된 프로그램의 인증 확인 단계를 거친 이후에 입력 모듈부를 통하여 공급되는 입력 신호에 대하여 로딩된 프로그램에 따른 명령을 수행하여 얻어진 결과를 출력 모듈부에 제공하는 반복적 스캔 처리를 수행하며,
상기 메모리는 사용자 메모리 영역 및 참조 메모리 영역을 포함하여 구성되며,
상기 중앙처리유닛은 접속된 프로그래밍 기기에 대하여 마스터급과 일반급을 포함한 적어도 2등급의 등급 판단이 가능하고, 정지 모드 하에서는 일반급 프로그래밍 기기로부터 프로그램 로딩 요청 신호를 수신하면 프로그램을 사용자 메모리 영역에 저장하며, 마스터급 프로그래밍 기기로부터 프로그램 로딩 요청 신호를 수신하면 프로그램을 참조 메모리 영역에 저장하며, 실행 모드 하에서는 스타트업 태스크로서 사용자 메모리 영역의 프로그램과 참조 메모리 영역의 프로그램을 비교하여 일치되는 경우에 프로그램의 인증 확인이 되는 피엘씨 장치. - 삭제
- 삭제
- 삭제
- 제1항에 있어서,
프로그래밍 기기가 마스터급인 경우, 상기 중앙처리유닛은 프로그램 로딩 요청 신호를 수신하면 프로그래밍 기기 상에 저장된 프로그램을 참조 메모리 영역에 저장하거나 또는 사용자 메모리 영역에 저장된 프로그램을 참조 메모리 영역에 복사 저장하는 피엘씨 장치. - 제1항 또는 제5항에 있어서,
상기 참조 메모리 영역은 사용자 메모리 영역과 분리된 별도의 메모리 모듈에 구성된 피엘씨 장치. - 제1항에 있어서,
프로그래밍 기기의 등급은 프로그래밍 기기에 탑재된 프로그래밍 소프트웨어의 종류에 따라 구분되거나, 또는 프로그래밍 소프트웨어의 사용자 권한 등급에 따라 구분되는 피엘씨 장치. - 제1항에 있어서,
상기 중앙처리유닛은 프로그램 인증에 실패하는 경우 출력부에 경고 또는 오류 신호를 출력하는 피엘씨 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140073596A KR101572854B1 (ko) | 2014-06-17 | 2014-06-17 | 사이버 보안 기능이 강화된 피엘씨 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140073596A KR101572854B1 (ko) | 2014-06-17 | 2014-06-17 | 사이버 보안 기능이 강화된 피엘씨 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101572854B1 true KR101572854B1 (ko) | 2015-12-01 |
Family
ID=54882774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140073596A KR101572854B1 (ko) | 2014-06-17 | 2014-06-17 | 사이버 보안 기능이 강화된 피엘씨 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101572854B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190080301A (ko) * | 2017-12-28 | 2019-07-08 | 주식회사 포스코아이씨티 | 제어데이터의 정상 시퀀스 패턴 생성 시스템 및 방법 |
CN111413917A (zh) * | 2019-01-04 | 2020-07-14 | 玄盛国际股份有限公司 | 可程式化逻辑控制器热插拔介面总成 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007041650A (ja) | 2005-07-29 | 2007-02-15 | Jtekt Corp | 安全plc |
-
2014
- 2014-06-17 KR KR1020140073596A patent/KR101572854B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007041650A (ja) | 2005-07-29 | 2007-02-15 | Jtekt Corp | 安全plc |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190080301A (ko) * | 2017-12-28 | 2019-07-08 | 주식회사 포스코아이씨티 | 제어데이터의 정상 시퀀스 패턴 생성 시스템 및 방법 |
KR102069954B1 (ko) | 2017-12-28 | 2020-01-23 | 주식회사 포스코아이씨티 | 제어데이터의 정상 시퀀스 패턴 생성 시스템 및 방법 |
CN111413917A (zh) * | 2019-01-04 | 2020-07-14 | 玄盛国际股份有限公司 | 可程式化逻辑控制器热插拔介面总成 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106775716B (zh) | 一种基于度量机制的可信plc启动方法 | |
US10509568B2 (en) | Efficient secure boot carried out in information processing apparatus | |
US20230020278A1 (en) | Secure boot assist for devices, and related systems, methods and devices | |
JP5419776B2 (ja) | 半導体装置及びデータ処理方法 | |
CN103729597A (zh) | ***启动校验方法、***启动校验装置和终端 | |
JP6585072B2 (ja) | 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと | |
WO2015079725A1 (ja) | プログラマブルコントローラ | |
JP2009533736A (ja) | 制御装置における量産型ソフトウェアの機能の拡張 | |
KR101572854B1 (ko) | 사이버 보안 기능이 강화된 피엘씨 장치 | |
CN104679556B (zh) | 应用程序烧录方法及*** | |
JP4833417B2 (ja) | マイクロコンピュータシステムの保護方法,メモリ装置,マイクロコンピュータシステム | |
CN115454517B (zh) | 多介质安全启动的方法、***、存储介质、设备及芯片 | |
US11669641B2 (en) | Method for the computer-aided parameterization of a technical system | |
US20180314830A1 (en) | Process for loading a secure memory image for a microcontroller and assembly including a microcontroller | |
JP2008123106A (ja) | マイクロコンピュータ及びマイクロコンピュータのデバッグ方法 | |
CN203350764U (zh) | 用于电子设备的设备扩展存储模块以及电子设备 | |
KR20230082388A (ko) | 차량 제어기의 부트로더 검증 장치 및 그 방법 | |
CN112783532A (zh) | 用于金融终端设备的程序测试***及装置 | |
JP2023510122A (ja) | インタフェースを備える装置およびインタフェースを備える装置の動作方法 | |
KR101539253B1 (ko) | 프로그램 품질 관리 기능이 구비된 피엘씨 장치 | |
CN110764840A (zh) | 一种无线调试安卓设备的方法、装置及*** | |
CN110888653A (zh) | 存储器中固件读写的控制方法、***、电子设备、芯片 | |
JP5761880B2 (ja) | 自動車 | |
JP5603993B2 (ja) | 電装ユニット及びデータ処理方法 | |
CN110023940A (zh) | 适合于在受保护的和/或开放的运行状态下运行的设备单元以及所属的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180928 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190917 Year of fee payment: 5 |