KR20240077747A - Plc 및 plc의 제어방법 - Google Patents

Plc 및 plc의 제어방법 Download PDF

Info

Publication number
KR20240077747A
KR20240077747A KR1020220159981A KR20220159981A KR20240077747A KR 20240077747 A KR20240077747 A KR 20240077747A KR 1020220159981 A KR1020220159981 A KR 1020220159981A KR 20220159981 A KR20220159981 A KR 20220159981A KR 20240077747 A KR20240077747 A KR 20240077747A
Authority
KR
South Korea
Prior art keywords
file
installation
information
plc
encrypted
Prior art date
Application number
KR1020220159981A
Other languages
English (en)
Inventor
김효중
Original Assignee
엘에스일렉트릭(주)
Filing date
Publication date
Application filed by 엘에스일렉트릭(주) filed Critical 엘에스일렉트릭(주)
Publication of KR20240077747A publication Critical patent/KR20240077747A/ko

Links

Classifications

    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

본 발명의 일 실시예에 따른 PLC(Programmable Logic Controller)에 있어서, 상기 PLC의 OS(Operating System) 설치를 위한 패키지 파일 및 상기 패키지 파일에 대응하는 해시 정보 파일을 저장하는 제1메모리; 상기 OS가 설치되는 제2메모리; 및 OS 설치 요청 신호에 따라 상기 해시 정보 파일을 이용하여 상기 패키지 파일의 유효성을 검증하고, 상기 패키지 파일의 유효성이 검증된 경우, 상기 패키지 파일 내 암호화되어 저장되고, OS 설치 데이터들에 대한 정보를 포함하는 파일 구성 정보를 복호화하고, 복호화된 상기 파일 구성 정보 및 설치 정보에 따라 상기 패키지 파일 내 암호화되어 저장된 상기 OS 설치 데이터들을 복호화하여 상기 제2메모리에 설치하는 프로세서를 포함한다.

Description

PLC 및 PLC의 제어방법{Programmable Logic Controller and the control method thereof}
본 발명은 PLC 및 PLC의 제어방법에 관한 것이다.
PLC(Programmable Logic Controller)란 기존에 사용하던 제어반(Control panel) 내의 릴레이, 타이머, 카운터 등의 기능을 IC, 트랜지스터 등의 반도체 소자로 대체하고, 기본적인 시퀀스 제어 기능에 연산 기능을 추가하여 프로그램 제어가 가능하도록 한 범용 제어 장치이다. 
PLC는 로직, 시퀀스, 타이밍, 카운트 및 연산 등의 제어 동작을 수행하며, 공장 자동화 설비 등 산업 현장에 주로 사용된다.
PLC는 동작을 위해 OS(Operating System) 설치가 필수적이고, OS 설치를 위해서는 많은 구성 파일을 필요로 한다. 이러한 많은 구성 파일을 운용하는 과정에서 아래와 같은 제약 및 문제점이 발견되고 있다.
예를 들어, OS 설치에 필요한 다수의 파일을 사용자가 PLC의 메모리에 복사하는 과정에서 일부 누락하거나, 파일 버전을 혼용하는 등 실수를 할 수 있고, 이러한 실수가 발생되는 경우 정상적인 OS 설치가 불가할 뿐 아니라 복구 불능 상태에 이르게 될 수 있다.
또한, 각 파일은 PLC를 구성하는 주요 정보가 담겨있으며, 시스템 해커 등 악의적인 의도를 가진 외부 접근으로부터 데이터 위, 변조 및 주요 데이터의 복호화를 통해 시스템 주요 정보가 유출될 수 있는 위험을 가질 수 있다.
따라서, 파일 운용의 편의성을 증대시키면서도 무결성을 보장할 수 있는 기술 개발이 요구되는 실정이다.
본 발명의 목적은 파일 운용의 편의성을 증대시키면서도 무결성을 보장할 수 있는 PLC 및 PLC의 제어방법을 제공하는 것이다.
본 발명의 목적은 OS 설치에 필요한 다수 파일을 보다 편리하게 운용할 수 있도록 하는 전자장치를 제공하는 것이다.
본 발명의 일 실시예에 따른 PLC(Programmable Logic Controller)에 있어서, 상기 PLC의 OS(Operating System) 설치를 위한 패키지 파일 및 상기 패키지 파일에 대응하는 해시 정보 파일을 저장하는 제1메모리; 상기 OS가 설치되는 제2메모리; 및 OS 설치 요청 신호에 따라 상기 해시 정보 파일을 이용하여 상기 패키지 파일의 유효성을 검증하고, 상기 패키지 파일의 유효성이 검증된 경우, 상기 패키지 파일 내 암호화되어 저장되고, OS 설치 데이터들에 대한 정보를 포함하는 파일 구성 정보를 복호화하고, 복호화된 상기 파일 구성 정보 및 설치 정보에 따라 상기 패키지 파일 내 암호화되어 저장된 상기 OS 설치 데이터들을 복호화하여 상기 제2메모리에 설치하는 프로세서를 포함한다.
상기 설치 정보는 OS 설치 순서 및 상기 OS 설치 데이터들의 상기 제2메모리 내 OS 설치 영역을 포함할 수 있다.
상기 파일 구성 정보는 상기 각 OS 설치 데이터를 저장하고자 하는 데이터 영역에 대한 암호화 블록 단위에 기초하여 암호화될 수 있다.
상기 OS 설치 데이터들은 상기 암호화 블록 단위에 기초하여 암호화될 수 있다.
상기 패키지 파일은 상기 암호화 블록 단위에 대한 정보를 더 포함할 수 있다.
상기 패키지 파일 내 암호화된 파일 구성 정보, 암호화된 OS 설치 데이터들은 서로 다른 암호화 방식을 통해 암호화될 수 있다.
본 발명의 일 실시예에 따른 PLC(Programmable Logic Controller)의 제어방법에 있어서, OS(Operating System) 설치 요청 신호에 따라 상기 PLC의 OS 설치를 위한 패키지 파일에 대응하는 해시 정보 파일을 이용하여 상기 패키지 파일의 유효성을 검증하는 단계; 상기 패키지 파일의 유효성이 검증된 경우, 상기 패키지 파일 내 암호화되어 저장되고, OS 설치 데이터들에 대한 정보를 포함하는 파일 구성 정보를 복호화하는 단계; 복호화된 상기 파일 구성 정보 및 설치 정보에 따라 상기 패키지 파일 내 암호화되어 저장된 상기 OS 설치 데이터들을 복호화하여 상기 PLC에 설치하는 단계를 포함한다.
본 발명의 일 실시예에 따른 전자장치에 있어서, PLC(Programmable Logic Controller)의 OS(Operating System) 설치를 위한 복수의 파일을 수신하여 각 파일을 저장하고자 하는 데이터 영역에 대한 암호화 블록 단위를 기록하고, 상기 암호화 블록 단위에 기초하여 상기 각 파일에 대한 정보를 포함하는 파일 구성 정보를 암호화하고, 상기 암호화 블록 단위에 기초하여 상기 각 파일에 포함된 OS 설치 데이터들을 암호화하고, 상기 암호화 블록 단위에 대한 정보, 암호화된 상기 파일 구성 정보, 암호화된 상기 OS 설치 데이터들을 포함하는 패키지 파일을 생성하는 프로세서를 포함한다.
상기 프로세서는, 해시 함수를 이용하여 상기 패키지 파일의 유효성을 검증하기 위한 해시 정보 파일을 생성할 수 있다.
상기 프로세서는, 상기 생성된 패키지 파일의 내용이 업데이트 되는 경우, 상기 해시 정보 파일을 재생성할 수 있다.
상기 프로세서는, 상기 복수의 파일로부터 상기 각 파일에 대한 정보를 추출하여 상기 파일 구성 정보를 생성할 수 있다.
상기 프로세서는, OS 설치 순서 및 상기 OS 설치 데이터들의 OS 설치 영역을 포함하는 설치 정보를 더 포함하는 상기 패키지 파일을 생성할 수 있다.
상기 프로세서는, 상기 파일 구성 정보에 기재된 순서와 대응되도록 상기 OS 설치 데이터들을 암호화할 수 있다.
본 발명의 일 실시예에 따르면, OS 설치를 위한 복수의 파일들이 하나의 파일에 통합되어 기록됨으로써, PLC에서 파일 운용의 효율성이 극대화될 수 있다.
본 발명의 일 실시예에 따르면, 복수 파일의 복사, 이동 시 발생될 수 있는 파일 누락, 버전 혼용 등의 실수를 방지할 수 있다.
본 발명의 일 실시예에 따르면, 통합 파일 운영에 따라 기존 개별 파일에 대한 데이터 분석을 통한 악의적 데이터 위변조, 훼손 등의 위협으로부터 보호할 수 있다.
본 발명의 일 실시예에 따르면, 하나의 패키지 파일에 통합되더라도 각 정보들은 서로 다른 암호키를 이용하여 암호화/복호화가 될 수 있는 바, 데이터의 무결성을 보장할 수 있다.
본 발명의 일 실시예에 따르면, 패키지 파일에 대한 해시 제공을 통해 원본 파일에 대한 진위를 가릴 수 있으며, 이를 통해 패키지 파일의 훼손 등에 의한 OS 설치 과정 중 발생될 수 있는 이상 동작에 대한 안전성을 보장할 수 있다.
도 1은 본 발명의 일 실시예에 따른 PLC의 구성을 도시한 블럭도이다.
도 2는 본 발명의 일 실시예에 따른 PLC의 동작 흐름도를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 제1메모리에 저장되는 파일을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 전자장치의 구성을 도시한 블럭도이다.
도 5는 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 전자장치의 동작 모습을 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 PLC 동작의 전체 개략도를 도시한 도면이다.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략할 수 있고, 명세서 전체를 통하여 동일 또는 유사한 구성 요소에 대해서는 동일한 참조 부호를 사용할 수 있다. 또한, 본 발명의 실시예에서, 제1, 제2 등과 같이 서수를 포함하는 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 발명에서는 PLC에 파일들을 저장하는 과정에서 파일을 일부 누락하거나, 파일 버전을 혼용하는 등의 실수를 방지하기 위해, PLC의 OS 설치에 있어 필요한 복수의 파일을 1개의 패키지 파일로 통합하고, 패키지 파일을 이용하여 OS 설치를 수행하는 기술에 대해 제안한다.
그에 따라, 패키지 파일을 생성하는 별도의 전자장치 및 생성된 패키지 파일을 이용하여 OS 설치를 수행하는 PLC 및 그 제어방법에 대해 제안한다.
본 발명에서는 복수의 파일을 1개의 패키지 파일로 통합함에 따라, 단일 파일 운용의 편의성이 증대될 수 있다.
또한, 패키지 파일에 대한 유효성 검증, 패키지 파일에 포함된 정보들의 암호화를 통해 OS 설치를 위한 패키지 파일의 무결성을 보장할 수 있다.
이하, 도면들을 참조하여 본 발명의 일 실시예에 따른 PLC의 구성 및 동작, 전자장치의 구성 및 동작에 대해 구체적으로 설명한다.
도 1은 본 발명의 일 실시예에 따른 PLC의 구성을 도시한 블럭도이다.
본 발명의 일 실시예에 따르면, PLC(100)는 범용 제어 장치로, 공장 자동화 설비 등 산업 현장에 사용되는 다양한 설비들을 제어하는 장치이다.
본 발명의 일 실시예에 따른 PLC(100)는 통신부(110)(이하 제1 통신부(110)라 한다.), 메모리(120) 및 프로세서(130)(이하 제1프로세서(130)라 한다.)를 포함한다.
제1통신부(110)는 OS 설치를 위한 패키지 파일, 패키지 파일에 대응하는 해시 정보 파일 등을 송수신하기 위해 전자장치 등 외부장치와의 통신을 수행한다. 이를 위해, 제1통신부(110)는 TCP/IP, Serial 통신 방식을 이용할 수 있다.
본 발명의 일 실시예에 따르면, PLC(100)에서 지원하는 TCP/IP 등의 통신은 특정 목적을 가지고 설계된 전용 통신 방식과 다르게 일반적으로 표준화된 파일을 전송할 수 있는 통신 방법을 아우른다.
이 외에도, 제1통신부(110)는 5G(5th generation communication), LTE-A(long term evolution-advanced), LTE(long term evolution), Wi-Fi(wireless fidelity) 등의 무선 통신 혹은 LAN(local area network), WAN(Wide Area Network), 전력선 통신 등의 유선 통신을 수행할 수 있다.
메모리(120)는 패키지 파일 및 해시 정보 파일을 저장하는 제1메모리(121)와 OS가 설치되는 제2메모리(122)를 포함한다.
제1메모리(121)는 SD(Secure Digital) Memory Card로 구현될 수 있으나, 이에 한정되지 않으며, 전원의 제공 유무와 무관하게 데이터(정보)를 보존할 수 있는 비휘발성 속성의 스토리지(storage)로, 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive) ROM(Read Only Memory) 등을 포함할 수 있다.
본 발명의 일 실시예에 따르면, 제1메모리(121)와 제2메모리(122)는 별도의 하드웨어로 분리되어 구현될 수 있으나, 이에 한정되지 않으며 하나의 메모리로 구현되지만 서로 다른 정보를 저장하는 것으로 분리하여 기재한 것일 수 있다.
메모리(120)는 이 외에도 검증키 파일, 암호키 파일을 저장하거나, 다양한 설비를 제어하기 위한 PLC(100)의 동작 프로그램 등을 저장할 수 있다.
제1프로세서(130)는 프로그램 등 소프트웨어를 실행하여 PLC(100)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다.
제1프로세서(130)는 PLC(100)의 OS 설치를 위한 일련의 동작들을 수행하거나, PLC(100)를 제어하는데 필요한 연산처리를 수행함으로써 PLC(100)의 전체 동작을 제어하며, 부트 로더(Boot loader)로 구현될 수 있다.
제1프로세서(130)는 OS 설치 요청 신호에 따라 해시 정보 파일을 이용하여 상기 패키지 파일의 유효성을 검증하고, 패키지 파일의 유효성이 검증된 경우, 패키지 파일 내 암호화되어 저장되고, OS 설치 데이터들에 대한 정보를 포함하는 파일 구성 정보를 복호화하고, 복호화된 파일 구성 정보 및 설치 정보에 따라 패키지 파일 내 암호화되어 저장된 OS 설치 데이터들을 복호화하여 제2메모리(122)에 설치한다.
본 발명에서 암호화/복호화하기 위한 인증키 파일은 메모리(120)에 기 저장되거나, 외부로부터 수신할 수 있으며, 암호화/복호화 방식은 어느 하나에 한정되지 않는다.
또한, 패키지 파일 내 각 정보들은 서로 다른 암호화/복호화 방식으로 암호화/복호화될 수 있다.
이 외에도, 제1프로세서(130)는 PLC(100)에 연결된 설비에 대한 인식, 제어 및 감시를 수행할 수 있다.
이하, 제1프로세서(130)의 파일 구성 정보, OS 설치 데이터 등 패키지 파일에 포함된 정보들을 복호화하여 데이터를 얻는 동작을 제1메모리(121)에 접근(Access)한다거나, 데이터를 읽는(Read 혹은 read access) 것으로 해석할 수 있다.
또한, 제1프로세서(130)가 복호화한 정보나 데이터들을 제2메모리(122)의 적절한 영역에 설치하는 동작을 제2메모리(122)에 접근(Access)한다거나, 데이터를 쓰는(Write 혹은 write access) 것으로 해석할 수 있다.
한편, 제1프로세서(130)는 상기 동작들을 수행하기 위한 데이터 분석, 처리, 및 결과 정보 생성 중 적어도 일부를 규칙 기반 또는 인공지능(Artificial Intelligence) 알고리즘으로서 기계학습, 신경망 네트워크(neural network), 또는 딥러닝 알고리즘 중 적어도 하나를 이용하여 수행할 수 있다. 신경망 네트워크의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network)과 같은 모델을 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 PLC의 동작 흐름도를 도시한 도면이다.
본 발명의 일 실시예에 따르면, 제1프로세서(130)는 OS 설치 요청 신호에 따라 해시 정보 파일을 이용하여 패키지 파일의 유효성을 검증한다(S10).
OS 설치 요청 신호는 OS 설치를 요청하는 신호로 PLC(100)에 OS 설치를 시작하는 일종의 트리거(trigger) 신호일 수 있다. 제1프로세서(130)는 제1통신부(110)를 통해 PADT(Programmable And Debugging Tool) 등 외부로부터 OS 설치 요청 신호를 수신할 수 있다. 다만, 이에 한정되지 않으며, 제1프로세서(130)가 OS 설치가 되지 않음을 감지하는 것에 기초하여 자동적으로 생성하는 등 다양하게 생성될 수 있다.
본 발명의 일 실시예에 따르면, 해시(hash) 정보 파일은 패키지 파일의 유효성 검증을 수행하기 위한 해시값들이 기록된 파일로, 패키지 파일에 대응하여 생성된다. 따라서, 패키지 파일에 포함되는 데이터들이 업데이트되는 등 데이터에 변동이 있는 경우, 해시 정보 파일도 새로이 생성되어야 한다. 해시 정보 파일은 후술하는 전자장치(200)에 의해 생성될 수 있으며, PLC(100)는 패키지 파일과 대응되는 해시 정보 파일을 함께 수신한다.
제1프로세서(130)는 해시 정보 파일을 원본 대조 데이터로 사용하여 패키지 파일의 유효성을 검증함으로써 OS 설치 전 패키지 파일의 적합성을 판단할 수 있다.
본 발명의 일 실시예에 따르면, 패키지 파일(package file)은 OS 설치를 위해 필요한 많은 파일을 통합하여 만든 단일 파일로, 패키지 파일은 암호화 블록 단위에 대한 정보, 암호화된 파일 구성 정보, 암호화된 OS 설치 데이터들, 설치 정보 등을 포함할 수 있다. 패키지 파일을 생성하는 과정에 대해서는 도 5를 참조하여 설명한다.
본 발명의 일 실시예에 따르면, 제1프로세서(130)는 패키지 파일의 유효성이 검증된 경우, 패키지 파일 내 암호화되어 저장되고, OS 설치 데이터들에 대한 정보를 포함하는 파일 구성 정보를 복호화한다(S20).
본 발명의 일 실시예에 따르면, 패키지 파일의 유효성이 검증된 경우에만 OS 설치를 계속 진행할 수 있으므로 1차적으로 OS 설치의 안전성을 담보할 수 있다.
본 발명의 일 실시예에 따르면, 파일 구성 정보는 OS 설치 데이터들에 대한 정보로서, OS 설치 데이터들을 탐색하는데 활용하기 위해 만들어진 정보이다.
파일 구성 정보에는 OS 설치 데이터들 각각이 저장되어 있던 원본 파일명, 크기 등이 기록될 수 있으며, 이외 추가 정보를 포함할 수 있다. 파일 구성 정보는 OS 설치 데이터 개수만큼 존재할 수 있다.
이때, 파일 구성 정보가 제1메모리(121) 내 저장되는 영역은 보호 대상으로, 파일 구성 정보는 각 OS 설치 데이터를 저장하고자 하는 데이터 영역에 대한 암호화 블록 단위에 기초하여 암호화될 수 있다. 암호화 블록 단위에 대한 구체적인 내용은 도 5의 S510을 참조하여 설명한다.
따라서, 제1프로세서(130)는 OS 설치를 위해 필요한 OS 설치 데이터들을 탐색하기 위해 파일 구성 정보를 복호화한다.
본 발명의 일 실시예에 따르면, 제1프로세서(130)는 복호화된 파일 구성 정보 및 설치 정보에 따라 패키지 파일 내 암호화되어 저장된 OS 설치 데이터들을 복호화하여 제2메모리(122)에 설치한다(S30).
본 발명의 일 실시예에 따르면, 설치 정보는 OS 설치 순서(Sequence) 및 OS 설치 영역을 포함한다. OS 설치 영역은 OS 설치 데이터들의 제2메모리(122) 내 저장 영역일 수 있으며, 예를 들어, OS 이미지 영역(OS Image Area), 파티션 이미지 #N 영역(Partition Image #N Area), 다양한 기능 영역(various Functional Area) 등을 포함할 수 있다.
설치 정보는 스크립트(Script) 데이터 형식으로 저장될 수 있으며, 제1프로세서(130)는 설치 정보에 정의된 동작에 따라 패키지 파일에서 필요한 OS 설치 데이터들에 접근하여 복호화함으로써 최종 데이터를 획득하고, 제2메모리(122) 내 적절한 영역에 설치한다. 적절한 영역이란, 설치 정보에 기재된 각 OS 설치 데이터 별 OS 설치 영역을 의미한다. 이때, 제1프로세서(130)는 필요한 OS 설치 데이터들에 접근하기 위해 복호화된 파일 구성 정보를 참조할 수 있다.
앞서 파일 구성 정보와 마찬가지로 OS 설치 데이터들이 제1메모리(121) 내 저장되는 영역은 보호 대상으로, OS 설치 데이터들은 암호화 블록 단위에 기초하여 암호화될 수 있다. 따라서, 제1프로세서(130)는 설치 정보에 따라 필요한 OS 설치 데이터들을 복호화한다.
본 발명의 일 실시예에 따르면, OS 설치를 위한 복수의 파일들이 하나의 파일에 통합되어 기록됨으로써, PLC에서 파일 운용의 효율성이 극대화될 수 있다.
본 발명의 일 실시예에 따르면, 복수 파일의 복사, 이동 시 발생될 수 있는 파일 누락, 버전 혼용 등의 실수를 방지할 수 있다.
본 발명의 일 실시예에 따르면, 통합 파일 운영에 따라 기존 개별 파일에 대한 데이터 분석을 통한 악의적 데이터 위변조, 훼손 등의 위협으로부터 보호할 수 있다.
본 발명의 일 실시예에 따르면, 하나의 패키지 파일에 통합되더라도 각 정보들은 서로 다른 암호키를 이용하여 암호화/복호화가 될 수 있는 바, 데이터의 무결성을 보장할 수 있다.
본 발명의 일 실시예에 따르면, 패키지 파일에 대한 해시 제공을 통해 원본 파일에 대한 진위를 가릴 수 있으며, 이를 통해 패키지 파일의 훼손 등에 의한 OS 설치 과정 중 발생될 수 있는 이상 동작에 대한 안전성을 보장할 수 있다.
도 3은 본 발명의 일 실시예에 따른 제1메모리에 저장되는 파일을 도시한 도면이다.
도 3을 참조하여 살펴보면, 제1메모리(121)에는 패키지 파일(10), 해시 정보 파일(20)이 저장되어 제1메모리(121)의 파일 엑세스 동작을 위한 파일 시스템이 구성되어 있다.
패키지 파일(10)은 암호화 블록 단위 정보, 설치 정보, 파일 구성 정보(#1 파일 정보, ..., #N 파일 정보), OS 설치 데이터들(#1 파일 설치 데이터, ..., #N 파일 설치 데이터)을 포함한다. 이때, 파일 구성 정보와 OS 설치 데이터들을 서로 대응하게 마련될 수 있으며, 예를 들어, #1 파일 설치 데이터에 대한 정보는 #1 파일 정보에 담긴다.
이하, 도 4 내지 도 6을 참조하여 패키지 파일(10)을 생성하는 방법에 대해 설명한다.
도 4는 본 발명의 일 실시예에 따른 전자장치의 구성을 도시한 블럭도이다.
본 발명의 일 실시예에 따르면, 전자장치(200)는 패키지 파일을 생성하기 위한 장치로, 컴퓨터, 서버 등으로 구현될 수 있다.
본 발명의 일 실시예에 따른 전자장치(200)는 입력부(210), 통신부(220)(이하, 제2통신부(220)라 한다.), 표시부(230), 저장부(240) 및 프로세서(250)(이하, 제2프로세서(250)라 한다.)를 포함한다.
입력부(210)는 전자장치(200)의 사용자 입력에 대응하여 입력데이터를 발생시킨다. 예를 들어, 사용자 입력은 전자장치(200)가 동작을 시작하게 하는 사용자 입력, 패키지 데이터를 생성하기 위한 정보 등을 선택하기 위한 입력 등 패키지 데이터를 생성하기 위해 필요한 사용자 입력인 경우 제한하지 않고 적용 가능하다.
입력부(210)는 적어도 하나의 입력수단을 포함한다. 입력부(210)는 키보드(key board), 키패드(key pad), 돔 스위치(dome switch), 터치패널(touch panel), 터치 키(touch key), 마우스(mouse), 메뉴 버튼(menu button) 등을 포함할 수 있다.
제2통신부(220)는 PLC(100) 등 외부장치와의 통신을 수행한다. 이를 위해, 제2통신부(220)는 TCP/IP, Serial 통신 방식을 이용할 수 있다.
본 발명의 일 실시예에 따르면, 전자장치(200)에서 지원하는 TCP/IP 등의 통신은 특정 목적을 가지고 설계된 전용 통신 방식과 다르게 일반적으로 표준화된 파일을 전송할 수 있는 통신 방법을 아우른다.
이 외에도, 제2통신부(220)는 5G(5th generation communication), LTE-A(long term evolution-advanced), LTE(long term evolution), Wi-Fi(wireless fidelity) 등의 무선 통신 혹은 LAN(local area network), WAN(Wide Area Network), 전력선 통신 등의 유선 통신을 수행할 수 있다.
표시부(230)는 전자장치(200)의 동작에 따른 표시 데이터를 표시한다. 표시부(230)는 패키지 파일을 생성하는데 필요한 표시 데이터, 예를 들면 파일을 수집하는 화면 등을 표시할 수 있다.
표시부(230)는 액정 디스플레이(LCD; liquid crystal display), 발광 다이오드(LED; light emitting diode) 디스플레이, 유기 발광 다이오드(OLED; organic LED) 디스플레이, 마이크로 전자기계 시스템(MEMS; micro electro mechanical systems) 디스플레이 및 전자 종이(electronic paper) 디스플레이를 포함한다. 표시부(230)는 입력부(210)와 결합되어 터치 스크린(touch screen)으로 구현될 수 있다.
저장부(240)는 전자장치(200)의 동작 프로그램들을 저장한다. 저장부(240)는 전원의 제공 유무와 무관하게 데이터(정보)를 보존할 수 있는 비휘발성 속성의 스토리지(storage)와, 제2프로세서(250)에 의해 처리되기 위한 데이터가 로딩되며 전원이 제공되지 않으면 데이터를 보존할 수 없는 휘발성 속성의 메모리(memory)를 포함한다. 스토리지에는 플래시메모리(flash-memory), HDD(hard-disc drive), SSD(solid-state drive) ROM(Read Only Memory) 등이 있으며, 메모리에는 버퍼(buffer), 램(RAM; Random Access Memory) 등이 있다.
저장부(240)는 OS 설치를 위한 복수의 파일, 복수의 파일로부터 혹은 복수의 파일과 관련하여 획득한 정보 등을 저장하거나, 암호화 블록 단위를 기록하거나, 파일 구성 정보 등을 암호화하거나, 패키지 파일을 생성하는 과정에서 필요한 연산 프로그램 등을 저장할 수 있다.
제2프로세서(250)는 프로그램 등 소프트웨어를 실행하여 전자장치(200)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다.
제2프로세서(250)는 PLC(100)의 OS 설치를 위한 복수의 파일을 수신하여 각 파일을 저장하고자 하는 데이터 영역에 대한 암호화 블록 단위를 기록하고, 상기 암호화 블록 단위에 기초하여 상기 각 파일에 대한 정보를 포함하는 파일 구성 정보를 암호화하고, 상기 암호화 블록 단위에 기초하여 상기 파일 구성 정보에 따라 상기 각 파일에 포함된 OS 설치 데이터들을 암호화하고, 상기 암호화 블록 단위에 대한 정보, 암호화된 상기 파일 구성 정보, 암호화된 상기 OS 설치 데이터들을 포함하는 패키지 파일을 생성한다.
한편, 제2프로세서(250)는 상기 동작들을 수행하기 위한 데이터 분석, 처리, 및 결과 정보 생성 중 적어도 일부를 규칙 기반 또는 인공지능(Artificial Intelligence) 알고리즘으로서 기계학습, 신경망 네트워크(neural network), 또는 딥러닝 알고리즘 중 적어도 하나를 이용하여 수행할 수 있다. 신경망 네트워크의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network)과 같은 모델을 포함할 수 있다.
도 5는 본 발명의 일 실시예에 따른 전자장치의 동작 흐름도를 도시한 도면이다.
이때, 전자장치(100)에서 생성된 패키지 파일은 앞서 도 1 및 도 2를 참조하여 설명한 바와 같이 PLC(100)에 저장되어 OS 설치에 이용된다. 따라서, 도 1 및 도 2에서 설명한 내용들은 본 도면에도 적용되는 바 중복되는 내용에 대해서는 설명을 생략한다.
본 발명의 일 실시예에 따르면, 제2프로세서(250)는 PLC(100)의 OS 설치를 위한 복수의 파일을 수신하여 각 파일을 저장하고자 하는 데이터 영역에 대한 암호화 블록 단위를 기록한다(S510).
본 발명의 일 실시예에 따르면, 기록한 암호화 블록단위의 역할은 암호화 데이터의 파편화를 통한 암호화 수준의 향상 및 기록되는 데이터 접근 성능에 영향을 주는 바이트 얼라인먼트(byte alignment)를 맞춰주기 위한 목적을 함께 가진다. 따라서, 사용되는 파일 시스템의 규격에 따라 적당한 값을 정하는 것이 바람직하다.
암호화 블록 크기 단위 기록 시 여러 암호화 방식의 혼합 사용 또한 가능하며, 이 경우 보다 높은 암호화 수준을 가질 수 있다.
제2프로세서(250)는 각 파일 별 데이터 영역에 대한 암호화 블록 단위를 기록하여 암호화 블록 단위 정보를 생성할 수 있다. 이때, 암호화 블록 단위 정보를 저장하는 영역은 별도의 암호화를 수행하지 않는 바, 암호화 블록 단위 외에 암호화 시키지 않을 정보 추가 기록이 가능하다.
본 발명의 일 실시예에 따르면, 제2프로세서(250)는 암호화 블록 단위에 기초하여 파일 구성 정보를 암호화한다(S520).
앞서 서술한 바와 같이, 파일 구성 정보는 각 파일에 대한 정보를 포함한다. 제2프로세서(250)는 복수의 파일로부터 각 파일에 대한 정보를 추출하여 파일 구성 정보를 생성할 수 있다.
파일 구성 정보에는 복수의 파일 각각이 저장되어 있던 원본 파일명, 크기 등이 기록될 수 있으며, 이외 추가 정보를 포함할 수 있다.
이때, 파일 구성 정보가 저장되는 영역은 보호 대상으로, 파일 구성 정보는 각 OS 설치 데이터를 저장하고자 하는 데이터 영역에 대한 암호화 블록 단위에 기초하여 암호화된 후 기록될 수 있다.
본 발명의 일 실시예에 따르면, 제2프로세서(250)는 암호화 블록 단위에 기초하여 파일 구성 정보에 따라 각 파일에 포함된 OS 설치 데이터들을 암호화한다(S530).
OS 설치 데이터들이 저장되는 영역은 복수의 파일 각각의 실제 데이터가 저장되는 영역으로, 제2프로세서(250)는 모든 개별 파일에 대한 데이터를 연속적으로 저장하고, 이때 기록되는 순서는 파일 구성 정보의 기록 순서와 동일하게 할 수 있다. 즉, 제2프로세서(250)는 파일 구성 정보에 기재된 순서와 대응되도록 OS 설치 데이터들을 암호화할 수 있다. 각 OS 설치 데이터들의 위치를 빠르게 파악하기 위함이다.
다만, 이에 한정되지 않으며, OS 설치 데이터 각각이 시작되는 시작점마다 데이터의 정보를 기재하는 등의 방식을 이용할 수 있다.
이때, OS 설치 데이터가 저장되는 영역은 보호 대상으로, OS 설치 데이터는 암호화 블록 단위에 기초하여 암호화된 후 기록될 수 있다.
본 발명의 일 실시예에 따르면, 제2프로세서(250)는 암호화 블록 단위에 대한 정보, 암호화된 파일 구성 정보, 암호화된 OS 설치 데이터들을 포함하는 패키지 파일을 생성한다(S540).
상기 절차에 따라 OS 설치를 위한 복수의 파일 내 모든 파일의 데이터 기록이 완료된 경우, 제2프로세서(250)는 암호화 블록 단위에 대한 정보, 암호화된 파일 구성 정보, 암호화된 OS 설치 데이터들을 포함하는 패키지 파일을 생성할 수 있다. 이 외에도, 제2프로세서(250)는 향후 PLC(100)가 원활하게 OS를 설치할 수 있도록, OS 설치 순서 및 OS 설치 데이터들의 OS 설치 영역을 포함하는 설치 정보를 더 포함하도록 패키지 파일을 생성할 수 있다.
추가로, 제2프로세서(250)는 해시 함수를 이용하여 완성된 패키지 파일에 대한 해시값을 획득하여 해시 정보 파일을 생성할 수 있다. 이때, 해시 정보 파일은 md5, SHA256 등 적절한 해시 알고리즘을 이용하여 생성될 수 있으며, 해시 정보 파일의 생성 과정이나 획득 과정은 어느 하나에 한정되지 않는다.
이때, 해시정보 파일은 패키지 파일에 대응하여 생성되는 바, 패키지 파일에 포함되는 데이터들이 업데이트되는 등 데이터에 변동이 있는 경우, 제2프로세서(250)는 해시 정보 파일을 새로이 생성한다.
본 발명의 일 실시예에 따르면, 복수로 운용되던 파일을 1개의 파일로 패키지화 함과 동시에 저장되는 데이터에 대한 암호화를 함께 수행하기 때문에 기록된 데이터의 기밀성을 보장한다.
본 발명의 일 실시예에 따르면, 블록암호운용 방식을 적용하여, 보다 높은 수준의 암호화가 가능하고, 단일화된 패키지 파일의 무결성을 보장할 수 있다.
도 6은 본 발명의 일 실시예에 따른 전자장치의 동작 모습을 도시한 도면이다.
도 6을 참조하면, OS 설치를 위한 복수의 파일을 포함하는 원본 폴더(610)와 전자장치(100)의 동작에 의해 생성된 패키지 파일(620) 및 해시 정보 파일(630)이 도시되어 있다.
원본 폴더(610)에는 설치 정보와 복수의 파일(#1 파일, ..., #N 파일)들이 개별 파일로 구비되어 있다. 따라서, 이를 복사 및 설치하는 과정에서 누락이나 혼용 등 실수가 발생할 수 있고, 개별 파일에 대한 위, 변조 발생 위험이 존재한다.
반면, 본 발명에 따라 생성된 패키지 파일(620)은 하나의 단일 파일로 내부에 암호화 블록 단위 정보, 설치 정보, 파일 구성 정보, OS 설치 데이터들이 기록되어 있고, 이들은 암호화 블록 단위에 따라 기록되는 바 서로 다른 암호화 방식을 채용하는 것도 가능하여 무결성을 더욱 보장할 수 있다.
도 7은 본 발명의 일 실시예에 따른 PLC 동작의 전체 개략도를 도시한 도면이다.
도 7에서는 앞서 도 1 내지 도 6을 참조하여 설명한 본 발명의 내용들을 개략적으로 도시한 것으로, 도 7을 살펴보면, PLC(100)의 제1프로세서(130)가 제1메모리(121)에 접근(Read)하여 제1메모리(121) 내의 정보들을 읽고, 제2메모리(122)의 각 영역(OS Image Area, Partition Image #N Area, various Functional Area 등)에 제1메모리(121)로부터 읽은 정보들을 쓸 수 있다.
이때, 제1프로세서(130)는 데이터 버스를 이용하여 제2메모리(122)에 접근할 수 있다.
100: PLC
110: 제1통신부
120: 메모리
121: 제1메모리
122: 제2메모리
130: 제1프로세서
200: 전자장치
210: 입력부
220: 제2통신부
230: 표시부
240: 저장부
250: 프로세서

Claims (18)

  1. PLC(Programmable Logic Controller)에 있어서,
    상기 PLC의 OS(Operating System) 설치를 위한 패키지 파일 및 상기 패키지 파일에 대응하는 해시 정보 파일을 저장하는 제1메모리;
    상기 OS가 설치되는 제2메모리; 및
    OS 설치 요청 신호에 따라 상기 해시 정보 파일을 이용하여 상기 패키지 파일의 유효성을 검증하고,
    상기 패키지 파일의 유효성이 검증된 경우, 상기 패키지 파일 내 암호화되어 저장되고, OS 설치 데이터들에 대한 정보를 포함하는 파일 구성 정보를 복호화하고,
    복호화된 상기 파일 구성 정보 및 설치 정보에 따라 상기 패키지 파일 내 암호화되어 저장된 상기 OS 설치 데이터들을 복호화하여 상기 제2메모리에 설치하는 프로세서를 포함하는 PLC.
  2. 제1항에 있어서,
    상기 설치 정보는 OS 설치 순서 및 상기 OS 설치 데이터들의 상기 제2메모리 내 OS 설치 영역을 포함하는 것을 특징으로 하는 PLC.
  3. 제1항에 있어서,
    상기 파일 구성 정보는 상기 각 OS 설치 데이터를 저장하고자 하는 데이터 영역에 대한 암호화 블록 단위에 기초하여 암호화되는 것을 특징으로 하는 PLC.
  4. 제3항에 있어서,
    상기 OS 설치 데이터들은 상기 암호화 블록 단위에 기초하여 암호화되는 것을 특징으로 하는 PLC.
  5. 제3항에 있어서,
    상기 패키지 파일은 상기 암호화 블록 단위에 대한 정보를 더 포함하는 것을 특징으로 하는 PLC.
  6. 제1항에 있어서,
    상기 패키지 파일 내 암호화된 파일 구성 정보, 암호화된 OS 설치 데이터들은 서로 다른 암호화 방식을 통해 암호화된 것을 특징으로 하는 PLC.
  7. PLC(Programmable Logic Controller)의 제어방법에 있어서,
    OS(Operating System) 설치 요청 신호에 따라 상기 PLC의 OS 설치를 위한 패키지 파일에 대응하는 해시 정보 파일을 이용하여 상기 패키지 파일의 유효성을 검증하는 단계;
    상기 패키지 파일의 유효성이 검증된 경우, 상기 패키지 파일 내 암호화되어 저장되고, OS 설치 데이터들에 대한 정보를 포함하는 파일 구성 정보를 복호화하는 단계;
    복호화된 상기 파일 구성 정보 및 설치 정보에 따라 상기 패키지 파일 내 암호화되어 저장된 상기 OS 설치 데이터들을 복호화하여 상기 PLC에 설치하는 단계를 포함하는 PLC의 제어방법.
  8. 제7항에 있어서,
    상기 설치 정보는 OS 설치 순서 및 상기 OS 설치 데이터들의 OS 설치 영역을 포함하는 것을 특징으로 하는 PLC의 제어방법.
  9. 제7항에 있어서,
    상기 파일 구성 정보는 상기 각 OS 설치 데이터를 저장하고자 하는 데이터 영역에 대한 암호화 블록 단위에 기초하여 암호화되는 것을 특징으로 하는 PLC의 제어방법.
  10. 제9항에 있어서,
    상기 OS 설치 데이터들은 상기 암호화 블록 단위에 기초하여 상기 파일 구성 정보에 따라 암호화되는 것을 특징으로 하는 PLC의 제어방법.
  11. 제9항에 있어서,
    상기 패키지 파일은 상기 암호화 블록 단위에 대한 정보를 더 포함하는 것을 특징으로 하는 PLC의 제어방법.
  12. 제7항에 있어서,
    상기 패키지 파일 내 암호화된 파일 구성 정보, 암호화된 OS 설치 데이터들은 서로 다른 암호화 방식을 통해 암호화된 것을 특징으로 하는 PLC의 제어방법.
  13. 전자장치에 있어서,
    PLC(Programmable Logic Controller)의 OS(Operating System) 설치를 위한 복수의 파일을 수신하여 각 파일을 저장하고자 하는 데이터 영역에 대한 암호화 블록 단위를 기록하고,
    상기 암호화 블록 단위에 기초하여 상기 각 파일에 대한 정보를 포함하는 파일 구성 정보를 암호화하고,
    상기 암호화 블록 단위에 기초하여 상기 각 파일에 포함된 OS 설치 데이터들을 암호화하고,
    상기 암호화 블록 단위에 대한 정보, 암호화된 상기 파일 구성 정보, 암호화된 상기 OS 설치 데이터들을 포함하는 패키지 파일을 생성하는 프로세서를 포함하는 전자장치.
  14. 제13항에 있어서,
    상기 프로세서는,
    해시 함수를 이용하여 상기 패키지 파일의 유효성을 검증하기 위한 해시 정보 파일을 생성하는 전자장치.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 생성된 패키지 파일의 내용이 업데이트 되는 경우, 상기 해시 정보 파일을 재생성하는 전자장치.
  16. 제13항에 있어서,
    상기 프로세서는,
    상기 복수의 파일로부터 상기 각 파일에 대한 정보를 추출하여 상기 파일 구성 정보를 생성하는 전자장치.
  17. 제13항에 있어서,
    상기 프로세서는,
    OS 설치 순서 및 상기 OS 설치 데이터들의 OS 설치 영역을 포함하는 설치 정보를 더 포함하는 상기 패키지 파일을 생성하는 전자장치.
  18. 제13항에 있어서,
    상기 프로세서는,
    상기 파일 구성 정보에 기재된 순서와 대응되도록 상기 OS 설치 데이터들을 암호화하는 전자장치.
KR1020220159981A 2022-11-25 Plc 및 plc의 제어방법 KR20240077747A (ko)

Publications (1)

Publication Number Publication Date
KR20240077747A true KR20240077747A (ko) 2024-06-03

Family

ID=

Similar Documents

Publication Publication Date Title
EP3458999B1 (en) Self-contained cryptographic boot policy validation
CN110968844B (zh) 离线状态下的软件授权方法、服务器及可读存储介质
CN104156642B (zh) 一种基于安全触控屏控制芯片的安全密码输入系统和方法
ES2692900T3 (es) Certificación criptográfica de entornos de ejecución alojados seguros
TW202009778A (zh) 韌體升級方法及裝置
CN102624699B (zh) 一种保护数据的方法和系统
TWI569169B (zh) 用可重新程式設計的密碼操作來管理對現場可程式設計閘陣列的使用
EP2795829B1 (en) Cryptographic system and methodology for securing software cryptography
CN107003866A (zh) 来自加密模板的加密虚拟机的安全创建
EP2879327A1 (en) Encryption and decryption processing method, apparatus and device
CN101441601B (zh) 一种硬盘ata指令的加密传输的方法及系统
US11755499B2 (en) Locally-stored remote block data integrity
CN1647443A (zh) 初始化、维护、更新和恢复利用数据访问控制功能的集成系统中的安全操作
CN105612715A (zh) 具有可配置访问控制的安全处理单元
CN104486355A (zh) 防止代码被恶意篡改的方法和装置
CN109284585A (zh) 一种脚本加密方法、脚本解密运行方法和相关装置
WO2022126644A1 (zh) 模型保护装置及方法、计算装置
CN113342425A (zh) 一种Linux嵌入式系统的启动方法、装置和存储介质
EP2689367A1 (en) Data protection using distributed security key
CN112270002A (zh) 全盘加密方法、系统运行方法和电子设备
CN110932853A (zh) 一种基于可信模块的密钥管理装置和密钥管理方法
TW201738802A (zh) 用以防止檔案的未授權利用及控制存取的可卸式安全裝置及方法
KR20240077747A (ko) Plc 및 plc의 제어방법
CN113542303A (zh) 秘钥在非可信环境的软件导入系统及方法
US11310218B2 (en) Password streaming