KR20230020239A - 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램 - Google Patents

플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20230020239A
KR20230020239A KR1020210102086A KR20210102086A KR20230020239A KR 20230020239 A KR20230020239 A KR 20230020239A KR 1020210102086 A KR1020210102086 A KR 1020210102086A KR 20210102086 A KR20210102086 A KR 20210102086A KR 20230020239 A KR20230020239 A KR 20230020239A
Authority
KR
South Korea
Prior art keywords
firmware
flash memory
firmware update
user device
security method
Prior art date
Application number
KR1020210102086A
Other languages
English (en)
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 시큐리티플랫폼 주식회사
Priority to KR1020210102086A priority Critical patent/KR20230020239A/ko
Publication of KR20230020239A publication Critical patent/KR20230020239A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 Micron 사의 Authenta Flash의 특정 영역을 펌웨어 이미지를 저장하는 위치로 지정한 후 펌웨어 이미지를 쓰고 lock 설정하여, 해당 위치에 대한 접근 권한이 없는 사용자가 펌웨어 이미지를 읽거나 훼손하는 것을 차단하기 위한 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램에 관한 것이다.
상기 목적을 달성하기 위하여, 본 발명은, 제조사 서버에서 펌웨어 업데이트의 대상이 되는 사용자 디바이스의 정보 및 펌웨어 정보 중 적어도 어느 하나 이상의 정보를 수신 받아 펌웨어 데이터로서 등록하는 펌웨어 데이터 등록 단계; 상기 등록된 펌웨어 데이터가 저장된 펌웨어 업데이트 서버로부터 요청을 받아 네크워크(network)를 통해 사용자 디바이스에 포함된 플래시 메모리의 특정 영역에 상기 등록된 펌웨어 데이터를 저장하여 관리하는 펌웨어 데이터 관리 단계; 및 펌웨어 업데이트 대상이 되는 사용자 디바이스에 접속하여 상기 관리되는 데이터를 기초로 상기 사용자 디바이스의 펌웨어 업데이트를 수행하는 펌웨어 업데이트 수행 단계;를 포함하는 것을 특징으로 한다.

Description

플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램{FIRMWARE UPDATE SECURITY METHOD USING FLASH MEMORY AND COMPUTER PROGRAMS STORED IN RECORDING MEDIA FOR EXECUTING THE SAME}
본 발명은 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 Micron 사의 Authenta Flash의 특정 영역을 펌웨어 이미지를 저장하는 위치로 지정한 후 펌웨어 이미지를 쓰고 lock 설정하여, 해당 위치에 대한 접근 권한이 없는 사용자가 펌웨어 이미지를 읽거나 훼손하는 것을 차단하기 위한 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램에 관한 것이다.
전자 디바이스는 다양한 기능들을 수행하기 위한 소프트웨어(software)를 내재하고 있다. 상기 소프트웨어를 임베디드 소프트웨어 또는 펌웨어라고 한다. 프로세서의 급격한 발전에 따라 펌웨어의 역할 역시 다양하게 늘어나고 있다.
일반적으로 펌웨어는 고객의 추가 요구 사항을 반영하기 위해서, 또는 하 드웨어(hardware)나 소프트웨어(software)에 내재되어 있던 문제를 해결하기 위해서 지속적으로 실시되며, 디바이스의 펌웨어 업데이트는 유선 및 무선을 포함한 다양한 방식으로 이루어진다.
하지만, 경우에 따라 펌웨어의 불량으로 인해 디바이스들의 오동작을 유발하는 경우가 있는데, 그러한 경우에는 펌웨어의 업데이트가 요구된다. 또한 디바이스들의 하드웨어가 업그레이드되는 과정에서도 펌웨어의 업데이트가 요구된다.
그러나, 그러한 디바이스들의 펌웨어를 업데이트하는 데는 많은 시간과 비용이 소요되는 것이 현실이다. 이러한 점을 고려하여 통신망을 이용하여 펌웨어를 업데이트하는 기술이 요구되고 있는 실정이다. 물론, 최근에는 통신망을 이용하여 펌웨어를 업데이트하는 기술이 소개되고는 있으나 단순한 펌웨어 업데이트만을 소개하고 있을 뿐 업데이트에 대한 신뢰성이나 안정성을 보장하지는 못하고 있다.
이에 따라, 업데이트에 대한 신뢰성이나 안정성을 보장하고자 Micron 사의 Authenta Flash의 특정 영역을 펌웨어 이미지를 저장하는 위치로 지정한 후 펌웨어 이미지를 쓰고 lock 설정하여, 해당 위치에 대한 접근 권한이 없는 사용자가 펌웨어 이미지를 읽거나 훼손하는 것을 차단하기 위한 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램이 절실하게 요구되고 있는 실정이다.
대한민국 공개특허공보 제10-2017-0056018호 대한민국 공개특허공보 제10-2021-0027499호
본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 안출된 것으로서, Authenta flash가 아닌 기존의 flash disk에 펌웨어 이미지를 저장하고 동작 시키는 경우, 일반 사용자가 펌웨어 이미지를 읽거나 지우는 것도 가능하고, 악성코드를 삽입하는 것을 방지하기 어려운 환경 및 펌웨어 이미지를 보호하기 위해 추가적인 하드웨어를 사용할 경우 보드 구성을 변경해야 하고, 시간과 비용이 추가로 발생하게 되는 환경을 벗어나, 기존 flash disk 대신 Micron 사의 Authenta Flash를 사용하여 보드 구성의 변경 없이 효율적이고 간편하게 펌웨어 이미지를 보호할 수 있고, 설치된 펌웨어 이미지를 업데이트할 경우 업데이트 서버를 통하여 안전하게 업데이트하는 것이 가능한 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램을 제공하는데 그 목적이 있다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기 목적을 달성하기 위하여, 본 발명은, 제조사 서버에서 펌웨어 업데이트의 대상이 되는 사용자 디바이스의 정보 및 펌웨어 정보 중 적어도 어느 하나 이상의 정보를 수신 받아 펌웨어 데이터로서 등록하는 펌웨어 데이터 등록 단계; 상기 등록된 펌웨어 데이터가 저장된 펌웨어 업데이트 서버로부터 요청을 받아 네크워크(network)를 통해 사용자 디바이스에 포함된 플래시 메모리의 특정 영역에 상기 등록된 펌웨어 데이터를 저장하여 관리하는 펌웨어 데이터 관리 단계; 및 펌웨어 업데이트 대상이 되는 사용자 디바이스에 접속하여 상기 관리되는 데이터를 기초로 상기 사용자 디바이스의 펌웨어 업데이트를 수행하는 펌웨어 업데이트 수행 단계;를 포함하는 것을 특징으로 한다.
또는, 상기 펌웨어 데이터 관리 단계는, gRPC(gRPC Remote Procedure Calls) 프로토콜을 기반으로 네트워크를 구성하는 하는 것을 특징으로 한다.
또는, 상기 펌웨어 데이터 관리 단계는, 사용자 디바이스로부터 펌웨어 업데이트 서버에 포함된 업데이트 애플리케이션을 통해 플래시 메모리의 특정 영역에 등록된 펌웨어 데이터 저장을 요청받는 것을 특징으로 한다.
또는, 상기 펌웨어 데이터 관리 단계는, 등록된 펌웨어 데이터를 펌웨어 이미지로써 플래시 메모리의 특정 영역에 저장하여 관리하는 것을 특징으로 한다.
또는, 상기 펌웨어 데이터 관리 단계는, 플래시 메모리의 특정 영역 중 A 영역에 부트 이미지(Boot Image)를 저장하여 사용자 디바이스가 동작되도록 하는 것을 특징으로 한다.
또는, 상기 펌웨어 데이터 관리 단계는, 플래시 메모리의 특정 영역 중 A 영역을 AM(Authenticated Modify) block으로 설정하는 것을 특징으로 한다.
또는, 상기 펌웨어 데이터 관리 단계는, 부트 이미지(Boot Image)를 변경할 경우, 명령어를 통해 새로운 부트 이미지(New Boot Image)를 플래시 메모리의 특정 영역 중 B 영역에 저장하고, 새로운 부트 이미지(New Boot Image)의 해시(hash) 값을 도출하는 것을 특징으로 한다.
또는, 상기 펌웨어 데이터 관리 단계는, 플래시 메모리의 특정 영역 중 B 영역에 저장된 새로운 부트 이미지(New Boot Image)를 플래시 메모리의 특정 영역 중 A 영역에 복사하는 것을 특징으로 한다.
또는, 상기 펌웨어 데이터 관리 단계는, 플래시 메모리의 특정 영역 중 A 영역에 복사된 부트 이미지(Boot Image)를 기반으로 해당 이미지의 해시(hash) 값을 도출하는 것을 특징으로 한다.
또는, 상기 펌웨어 데이터 관리 단계는, 복사된 부트 이미지(Boot Image)를 기반으로 도출된 해시(hash) 값과 새로운 부트 이미지(New Boot Image)의 해시(hash) 값 동일 여부를 확인하고, 해시(hash) 값이 동일할 경우, 사용자 디바이스를 리셋(reset)하여 새로운 부트 이미지(New Boot Image)로 해당 사용자 디바이스가 동작하는지를 확인하는 것을 특징으로 한다.
또한, 추가적으로, 상기 방법을 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램을 포함하는 것을 특징으로 한다.
본 발명에 따른 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램은, 기존 flash disk 대신 Micron 사의 Authenta Flash를 사용하여 보드 구성의 변경 없이 효율적이고 간편하게 펌웨어 이미지를 보호할 수 있고, 설치된 펌웨어 이미지를 업데이트할 경우 업데이트 서버를 통하여 안전하게 업데이트하는 것이 가능한 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램을 제공할 수 있다.
또한, 상기 효과를 토대로 Flash disk에 설치된 펌웨어를 권한이 없는 접근으로부터 방어하여 안전하게 펌웨어를 보호하고, 업데이트 서버를 통해 안전하게 업데이트도 가능하도록 제공한다.
또한, 상기 효과를 토대로 Authenta flash를 사용하는 디바이스는 일반적으로 동일한 기능을 하는 디바이스가 복수 개 존재하기 때문에 이를 서버에서 일괄 적으로 업데이트하도록 하여 업데이트 시간 단축 등의 관리 편의성도 향상된다.
다만, 본 발명의 효과가 상술한 효과들로 제한되는 것은 아니며, 언급되지 아니한 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 순서도
도 2는 본 발명의 일 실시예에 따른 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 개념도
도 3은 본 발명의 일 실시예에 따른 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법에 사용되는 플래시 메모리 예시도
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 설정된 용어들로서 이는 생산자의 의도 또는 관례에 따라 달라질 수 있으므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이고, 본 명세서에서 본 발명에 관련된 공지의 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에 이에 관한 자세한 설명은 생략하기로 한다.
이하, 도면을 참조로 하여 본 발명인 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램을 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 순서도이다.
본 방법은 기본적으로 펌웨어 데이터 등록 단계, 펌웨어 데이터 관리 단계 및 펌웨어 업데이트 수행 단계로 구성될 수 있다.
보다 구체적으로, 상기 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법은, 제조사 서버에서 펌웨어 업데이트의 대상이 되는 사용자 디바이스의 정보 및 펌웨어 정보 중 적어도 어느 하나 이상의 정보를 수신 받아 펌웨어 데이터로서 등록하는 펌웨어 데이터 등록 단계, 상기 등록된 펌웨어 데이터가 저장된 펌웨어 업데이트 서버로부터 요청을 받아 네크워크(network)를 통해 사용자 디바이스에 포함된 플래시 메모리의 특정 영역에 상기 등록된 펌웨어 데이터를 저장하여 관리하는 펌웨어 데이터 관리 단계 및 펌웨어 업데이트 대상이 되는 사용자 디바이스에 접속하여 상기 관리되는 데이터를 기초로 상기 사용자 디바이스의 펌웨어 업데이트를 수행하는 펌웨어 업데이트 수행 단계를 포함하는 것일 수 있다.
또한, 본 방법 발명에서 이루어 지는 방법은 서버 내에서 수행될 수도 있으며, 해당 서버는 일종의 웹서버, 데이터베이스 서버, 모바일 서버로서 역할을 하도록 구축될 수 있는데, 예를 들어 처리된 결과를 온라인 네트워크를 통해 웹페이지 상에서 보여주거나 필요한 입력 데이터를 웹페이지를 통해 전송 받을 수 있고, 여기서 웹페이지는 단순한 텍스트, 이미지, 사운드, 동영상 등 이외에도 웹 애플리케이션과 같은 특정 작업을 수행하기 위한 소프트웨어를 포함하는 것일 수 있다.
또한, 데스크탑, 노트북, 스마트폰, 태블릿 PC 등에 설치되는 애플리케이션과 인터페이스를 제공하도록 구축될 수 있다.
또한, 본 발명에서 언급하는 온라인 네트워크라 함은 유선 공중망, 무선 이동 통신망, 또는 휴대 인터넷 등과 통합된 코어 망일 수도 있고, TCP/IP 프로토콜 및 그 상위 계층에 존재하는 여러 서비스, 즉 HTTP(Hyper Text Transfer Protocol), HTTPS(Hyper Text Transfer Protocol Secure), Telnet, FTP(File Transfer Protocol), DNS(Domain Name System), SMTP(Simple Mail Transfer Protocol) 등을 제공하는 전 세계적인 개방형 컴퓨터 네트워크 구조를 의미할 수 있으며, 이러한 예에 한정하지 않고 다양한 형태로 데이터를 송수신할 수 있는 데이터 통신망을 포괄적으로 의미하는 것일 수 있다.
또한, 상술한 서버는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체를 통해 데이터 교환 및 관리가 이루어질 수도 있으며, 서버 내에서 이루어지는 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함하고, 상기 서버들의 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 하기 설명되는 사용자 디바이스라 함은, 스마트폰(smartphone), 태블릿 PC(tablet Personalcomputer), 이동 전화기(mobile phone), 영상 전화기, 데스크탑 PC(dasktoppersonal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia plater), 웨어러블 장치(wearable device)(예: 스마트 안경, 머리 착용형 장치(head-mounted-device(HMD) 등), 스마트미러(smart mirrors), 키오스크 장치(kiosk) 또는 스마트 와치(smart watch)) 중 적어도 하나를 포함할 수 있으며, 이러한 예에 한정하지 않고 다양한 형태로 전기적인 신호로 변화된 값을 송수신 할 수 있는 디바이스를 의미하는 것이다.
또한, 상기 사용자 디바이스의 일례로, 입력 모듈을 포함할 수도 있는데, 해당 모듈은 숫자 또는 문자 정보를 입력 받고 각종 기능들을 설정하기 위한 다수의 입력키 및 기능키들을 포함할 수 있는데, 기능키들은 특정 기능을 수행하도록 설정된 방향키, 사이드 키 및 단축키 등을 포함하고, 입력 모듈은 사용자 디바이스의 기능 제어와 관련한 키 신호를 생성하여 사용자 디바이스로 전달할 수도 있다.
또한, 사용자 디바이스가 풀 터치스크린을 지원하는 경우, 해당 사용자 디바이스의 케이스 측면에 형성되는 볼륨 조절을 위한 볼륨 키, 화면 온/오프 및 디바이스 온/오프를 위한 전원 키 만을 포함할 수도 있고, 특히, 본 발명에서 설명되는 서버에 접속하여 펌웨어 업데이트를 수행, 제어 및 지시하는 입력 신호 등과 같은 다양한 입력 신호 등을 생성하고, 이를 본 발명에서 설명되는 서버에 전달할 수도 있다.
또한, 상기 사용자 디바이스의 일례로, 사용자 디바이스 제어모듈을 포함할 수도 있는데, 사용자 디바이스의 전송받고자 하는 사용자 디바이스 펌웨어 관리 방법의 전반적인 동작 및 사용자 디바이스의 내부 블록들 간 신호 흐름을 제어하고, 데이터를 처리하는 데이터 처리 기능을 수행할 수도 있으며, 사용자 디바이스 제어모듈은 중앙 처리 장치(Central Processing Unit: CPU), 애플리케이션 프로세서(Application Processor) 및 SDK(Software Development Kit) 등을 구비할 수도 있으며, 이러한 예에 한정하지 않고 다양한 형태로 사용자 디바이스를 제어할 수 있는 모듈을 포괄적으로 의미하는 것일 수 있다.
또한, 상기 펌웨어 데이터 등록 단계는, 제조사 서버에서 펌웨어 업데이트의 대상이 되는 사용자 디바이스의 정보, 펌웨어 정보 및 서명키 정보 중 적어도 어느 하나 이상의 정보를 수신 받아 펌웨어 데이터로서 등록할 수도 있다.
또한, 상기 펌웨어 데이터 등록 단계는, 등록된 데이터가 제조사 서버의 펌웨어 업데이트 대상이 되는 사용자 디바이스의 정보, 펌웨어 정보 및 서명키 정보 중 적어도 어느 하나 이상의 정보 데이터와 대응되도록 데이터를 동기화하는 데이터 동기화 단계를 더 포함할 수도 있다.
또한, 펌웨어 데이터 등록 단계는, 펌웨어 업데이트 대상이 되는 디바이스 및 디바이스의 모듈 타입 정보를 등록하는데, 제조사 서버를 통해 디바이스/모듈 타입 등록 페이지에 접속하여 모듈 타입 목록을 조회하고, 제조사 서버를 통해 디바이스/모듈 타입 정보를 입력하고, 디바이스/모듈 타입 중복체크를 수행하고, 제조사 서버로부터 등록 요청을 수신 받아 펌웨어 업데이트 대상이 되는 디바이스의 디바이스/모듈 타입 정보를 저장할 수도 있다.
여기서, 디바이스의 모듈 목록은 디바이스에 포함된 모듈을 타입별로 일관 업데이트하기 위한 것으로, 모듈 명, 디바이스 종류(예: DCU, PLC, LTE, MCU 등) 및 모듈 세부 정보(펌웨어 정보) 등을 나타내는 것으로 할 수도 있다.
또한, 여기서, 디바이스 목록은, 모듈 식별자 ID, 디바이스 명, 제조사, 디바이스 모델, 시리얼 번호, 디바이스 접속 정보(IP), 디바이스 물리 정보, 등록 일자, 디바이스 세부 정보(펌웨어 정보) 등을 나타내는 것으로 할 수도 있다.
또한, 펌웨어 데이터 등록 단계는, 펌웨어 업데이트 대상이 되는 사용자 디바이스에 의해 펌웨어 정보를 등록하는데, 제조사 서버의 펌웨어 등록 페이지를 통해 디바이스 목록 및 펌웨어 관리 정보를 조회하고, 제조사 서버로부터 디바이스가 선택되어 디바이스 정보를 구성하고 해당 디바이스에 포함된 모듈 타입 정보를 조회할 수도 있다.
또한, 펌웨어 데이터 등록 단계는, 펌웨어 업데이트 대상이 되는 모듈에 의해 펌웨어 정보를 등록하는데, 제조사 서버가 상기 조회된 모듈 타입 정보를 기초로 모듈을 선택하고, 펌웨어 목록을 조회하고, 제조사 서버로부터 펌웨어 데이터가 입력되면 펌웨어 중복을 체크하고, 이에 따라 제조사 서버로부터 등록 요청을 수신 받아 펌웨어 정보를 저장할 수도 있다.
여기서, 펌웨어 관리 정보는, 디바이스 식별자 ID(모듈별 펌웨어 관리), 현재 펌웨어 식별자 ID, DIFF 이미지 식별자 ID, 서명 키 식별자, 업데이트 스케쥴링 활성화 여부, 무결성 검증 스케쥴링 활성화 여부, 새로운 펌웨어 등록 여부, 최종 업데이트 날짜, 최종 무결성 검사 일정, 최종 무결성 검사 값 등을 나타내는 것으로 할 수도 있다.
또한, 여기서, 펌웨어 정보는, 디바이스 식별자, 메인 모듈 펌웨어 ID, 펌웨어 버전, 펌웨어 데이터, 해당 데이터 사이즈, 펌웨어 데이터 무결성 값, 등록 시간 등을 나태내는 것으로 할 수도 있다.
또한, 상기 펌웨어 데이터 관리 단계는, gRPC(gRPC Remote Procedure Calls) 프로토콜을 기반으로 네트워크를 구성하는 하는 것을 특징으로 한다.
또한, 상기 네트워크는 다양한 통신 프로토콜을 포함하고 있으며, 네트워크 또는 다른 미디어를 통해 디바이스 간에 교환되는 정보는 통신 프로토콜 사양에서 설정할 수 있는 규칙 및 규칙에 따라 관리된다.
또한, 의사소통의 성격, 교환된 실제 데이터 및 모든 상태에 따른 행동은 이 사양에 의해 정의되고, 디지털 컴퓨팅 시스템에서 규칙은 알고리즘 및 데이터 구조로 표현될 수 있으며, 프로토콜은 알고리즘이나 프로그래밍 언어가 계산과 통신하는 것이다.
또한, 운영 체제에는 대개 공유 데이터를 조작하여 서로 통신하는 일련의 협력 프로세스가 있다. 이 통신은 프로세스 코드 자체에 내장될 수 있는 잘 이해된 프로토콜에 의해 제어된다. 대조적으로, 공유 메모리가 없으므로 통신 시스템은 공유 전송 매체를 사용하여 서로 통신해야 한다. 전송은 반드시 신뢰할 만한 것은 아니며 개별 시스템은 다른 하드웨어 또는 운영 체제를 사용할 수 있다.
또한, 네트워킹 프로토콜을 구현하기 위해 프로토콜 소프트웨어 모듈은 기계의 운영 체제에 구현된 프레임 워크와 인터페이스 된다. 이 프레임 워크는 운영 체제의 네트워킹 기능을 구현한다. 프로토콜 알고리즘이 휴대용 프로그래밍 언어로 표현될 때 프로토콜 소프트웨어는 운영 체제에 독립적일 수 있으며, 가장 잘 알려진 프레임 워크는 TCP/IP 모델과 OSI 모델이다.
또한, 일반적으로 단일 프로토콜을 사용하여 전송을 처리하지 않는다. 대신 프로토콜 스위트(protocol suite)라 불리는 일련의 협력 프로토콜을 사용한다. 가장 잘 알려진 프로토콜 제품군은 TCP/IP, IPX/SPX, X.25, AX.25 및 AppleTalk이다.
또한, 프로토콜은 그룹의 기능성을 기반으로 정렬될 수 있다. 예를 들어 전송 프로토콜 그룹이 있다. 기능은 레이어에 매핑되며 각 레이어는 응용 프로그램, 전송, 인터넷 및 네트워크 인터페이스 기능과 관련된 별개의 문제 클래스를 해결한다. 또한, 메시지를 전송하려면 각 계층에서 프로토콜을 선택해야 한다. 다음 프로토콜의 선택은 각 계층에 대한 프로토콜 선택기로 메시지를 확장함으로써 달성된다.
또한, 여기서 상기 다양한 통신 프로토콜의 예로서, HTTP(Hyper Text Transfer Protocol), HTTPS(Hyper Text Transfer Protocol Secure), FTP(File Transfer Protocol), SFTP(Secure File Transfer Protocol), Telnet(Terminal Network), POP3(Post Office Protocol version 3), SMTP(Simple Mail Transfer Protocol), SSH(Secure Shell), SSL(Secure Socket Layer), SOAP(Simple Object Access Protocol), ARP(Address Resolution Protocol) 등이 포함될 수도 있으며, 이러한 예에 한정하지 않고 일반적으로 공지된 다양한 형태의 모든 통신 프로토콜을 포괄적으로 의미하는 것일 수 있다.
또한, 상기 펌웨어 데이터 관리 단계는, 사용자 디바이스로부터 펌웨어 업데이트 서버에 포함된 업데이트 애플리케이션을 통해 플래시 메모리의 특정 영역에 등록된 펌웨어 데이터 저장을 요청받는 것을 특징으로 하고, 상기 펌웨어 데이터 관리 단계는, 등록된 펌웨어 데이터를 펌웨어 이미지로써 플래시 메모리의 특정 영역에 저장하여 관리하는 것을 특징으로 한다.
또한, 여기서 상기 플래시 메모리는, Micron 사의 Authenta Flash로써, Micron 사는 Flash Drive에 기기의 고유 키를 저장시키되 펌웨어, 업데이트 과정에서 발생될 수 있는 개조 펌웨어 활용 등에 의한 보안 기능 저하를 방지하는 방법으로써 펌웨어 코드의 해시(hash) 값을 반영하여 새로운 Device ID를 생성하는 DICE라는 기능을 활용하는 Authenta 기술을 제공하고 있다.
또한, 비 휘발성 메모리에 고유의 암호 정보를 내장하고 있으나, 펌웨어 업데이트 시 이 암호 정보가 펌웨어에 포함된 고유 값과 연산되어 변화되는 특징을 갖추어, 외부 관리 서버에서는 인증 과정을 통해 암호 정보를 디코딩 하면서 해당 기기에 적용된 펌웨어의 무결성도 검증할 수 있어 우회적인 방법으로 악성 펌웨어를 적용시키기 더욱 어려워진다는 장점을 갖추고 있는 기술이다.
또한, 상기 펌웨어 데이터 관리 단계는, 플래시 메모리의 특정 영역 중 A 영역에 부트 이미지(Boot Image)를 저장하여 사용자 디바이스가 동작되도록 하는 것을 특징으로 한다.
또한, 상기 펌웨어 데이터 관리 단계는, 플래시 메모리의 특정 영역 중 A 영역을 AM(Authenticated Modify) block으로 설정하는 것을 특징으로 하며, 플래시 메모리의 특정 영역 중 A 영역은 AM(authenticated modify) block으로 설정해 두고 일반적인 접근으로는 데이터를 쓸 수 없도록 한다.
또한, 상기 펌웨어 데이터 관리 단계는, 부트 이미지(Boot Image)를 변경할 경우, 명령어를 통해 새로운 부트 이미지(New Boot Image)를 플래시 메모리의 특정 영역 중 B 영역에 저장하고, 새로운 부트 이미지(New Boot Image)의 해시(hash) 값을 도출하는 것을 특징으로 한다.
또한, 상기 명령어는 "DYB_Write: Unlock the legacy block", "Subsector_Erase: Erase data", "Page_Program: write image data", "DYB_Write: Lock the legacy block" 등과 같은 명령어를 사용하여 새로운 부트 이미지(New Boot Image)를 플래시 메모리의 특정 영역 중 B 영역에 저장할 수도 있다.
또한, 상기 펌웨어 데이터 관리 단계는, 플래시 메모리의 특정 영역 중 B 영역에 저장된 새로운 부트 이미지(New Boot Image)를 플래시 메모리의 특정 영역 중 A 영역에 복사하는 것을 특징으로 한다.
또한, 상기 펌웨어 데이터 관리 단계는, legacy block인 Area B(플래시 메모리의 특정 영역 중 B 영역)에 쓴 이미지를 AM block인 Area A(플래시 메모리의 특정 영역 중 A 영역)로 복사하는데, Auth_modify 명령어를 통해 Area B의 이미지를 Area A로 복사하고, Measure 명령어를 통해 Area A에 쓴 이미지의 해시(hash) 값을 구할 수도 있다.
상기 펌웨어 데이터 관리 단계는, 플래시 메모리의 특정 영역 중 A 영역에 복사된 부트 이미지(Boot Image)를 기반으로 해당 이미지의 해시(hash) 값을 도출하는 것을 특징으로 하며, 상기 펌웨어 데이터 관리 단계는, 복사된 부트 이미지(Boot Image)를 기반으로 도출된 해시(hash) 값과 새로운 부트 이미지(New Boot Image)의 해시(hash) 값 동일 여부를 확인하고, 해시(hash) 값이 동일할 경우, 사용자 디바이스를 리셋(reset)하여 새로운 부트 이미지(New Boot Image)로 해당 사용자 디바이스가 동작하는지를 확인하는 것을 특징으로 한다.
또한, 상술한 본 발명에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있고, 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며, 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 기술분야에서 통상의 지식을 가진 사람에게 공지되어 사용 가능한 것일 수도 있다.
또한, 여기서 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
또한, 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 본 발명은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있으며, 이러한 임의의 소프트웨어는 삭제 가능 또는 재기록 가능 여부와 상관없이 휘발성 또는 비휘발성 저장 장치나, RAM, 메모리 칩, 집적 회로와 같은 메모리나, CD, DVD, 자기 디스크, 자기테이프 등과 같은 광학적/자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다.
따라서, 본 발명은 상술된 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계로 읽을 수 있는 저장 매체를 포함하며, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명은 이와 균등한 것을 적절하게 포함한다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 개념도이다.
보다 구체적으로, Firmware Update Server의 Authenta Update application 은 사용자의 요청을 받아 Device의 authenta flash에 데이터를 쓰는 작업을 수행한다.
또한, Firmware Update Server와 Device 간 통신에는 gRPC(gRPC Remote Procedure Calls) 프로토콜이 사용된다.
또한, gPRC 통신을 수행하는 gRPC client는 명령어를 생성해서 gRPC server에 전달하면, gRPC server는 해당 명령을 Authenta Flash에 전달하여 Flash에 데이터를 쓰는 작업을 수행한다.
도 3은 본 발명의 일 실시예에 따른 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법에 사용되는 플래시 메모리 예시도이다.
1. Authenta Flash의 메모리의 Area A에 Boot Image를 저장해 두고 해당 이미지를 이용하여 디바이스가 동작하도록 구성한다.
2. Area A는 AM(authenticated modify) block으로 설정해 두고 일반적인 접근으로는 데이터를 쓸 수 없도록 한다.
3. Boot Image를 변경해야 할 상황이 발생한 경우 새로운 Boot Image를 아래의 명령어를 사용해서 Area B에 쓴다.
- DYB_Write: Unlock the legacy block
- Subsector_Erase: Erase data
- Page_Program: write image data
- DYB_Write: Lock the legacy block
4. legacy block인 Area B에 쓴 이미지를 AM block인 Area A로 복사한다.
- Auth_modify: Area B의 이미지를 Area A로 복사한다.
- Measure: Area A에 쓴 이미지의 해시(hash) 값을 구한다.
5. Area A에 쓴 이미지의 해시(hash) 값이 새로운 Boot Image의 해시(hash) 값과 같은지 확인한다.
6. 장치를 리셋 시켜 "New" Boot Image로 동작하는 것을 확인한다.
이상에서 첨부된 도면을 참조하여 본 발명을 설명함에 있어 특정형상 및 방향을 위주로 설명하였으나, 본 발명은 그 발명에 속하는 기술분야에서 통상의 지식을 가진 사람에 의하여 다양한 변형 및 변경이 가능하고, 이러한 변형 및 변경은 본 발명의 권리범위에 포함되는 것으로 해석되어야 한다.

Claims (11)

  1. 제조사 서버에서 펌웨어 업데이트의 대상이 되는 사용자 디바이스의 정보 및 펌웨어 정보 중 적어도 어느 하나 이상의 정보를 수신 받아 펌웨어 데이터로서 등록하는 펌웨어 데이터 등록 단계;
    상기 등록된 펌웨어 데이터가 저장된 펌웨어 업데이트 서버로부터 요청을 받아 네크워크(network)를 통해 사용자 디바이스에 포함된 플래시 메모리의 특정 영역에 상기 등록된 펌웨어 데이터를 저장하여 관리하는 펌웨어 데이터 관리 단계; 및
    펌웨어 업데이트 대상이 되는 사용자 디바이스에 접속하여 상기 관리되는 데이터를 기초로 상기 사용자 디바이스의 펌웨어 업데이트를 수행하는 펌웨어 업데이트 수행 단계;를 포함하는 것을 특징으로 하는,
    플래시 메모리를 이용한 펌웨어 업데이트 보안 방법.
  2. 청구항 1에 있어서,
    상기 펌웨어 데이터 관리 단계는,
    gRPC(gRPC Remote Procedure Calls) 프로토콜을 기반으로 네트워크를 구성하는 하는 것을 특징으로 하는,
    플래시 메모리를 이용한 펌웨어 업데이트 보안 방법.
  3. 청구항 1에 있어서,
    상기 펌웨어 데이터 관리 단계는,
    사용자 디바이스로부터 펌웨어 업데이트 서버에 포함된 업데이트 애플리케이션을 통해 플래시 메모리의 특정 영역에 등록된 펌웨어 데이터 저장을 요청받는 것을 특징으로 하는,
    플래시 메모리를 이용한 펌웨어 업데이트 보안 방법.
  4. 청구항 1에 있어서,
    상기 펌웨어 데이터 관리 단계는,
    등록된 펌웨어 데이터를 펌웨어 이미지로써 플래시 메모리의 특정 영역에 저장하여 관리하는 것을 특징으로 하는,
    플래시 메모리를 이용한 펌웨어 업데이트 보안 방법.
  5. 청구항 1에 있어서,
    상기 펌웨어 데이터 관리 단계는,
    플래시 메모리의 특정 영역 중 A 영역에 부트 이미지(Boot Image)를 저장하여 사용자 디바이스가 동작되도록 하는 것을 특징으로 하는,
    플래시 메모리를 이용한 펌웨어 업데이트 보안 방법.
  6. 청구항 1에 있어서,
    상기 펌웨어 데이터 관리 단계는,
    플래시 메모리의 특정 영역 중 A 영역을 AM(Authenticated Modify) block으로 설정하는 것을 특징으로 하는,
    플래시 메모리를 이용한 펌웨어 업데이트 보안 방법.
  7. 청구항 5에 있어서,
    상기 펌웨어 데이터 관리 단계는,
    부트 이미지(Boot Image)를 변경할 경우, 명령어를 통해 새로운 부트 이미지(New Boot Image)를 플래시 메모리의 특정 영역 중 B 영역에 저장하고, 새로운 부트 이미지(New Boot Image)의 해시(hash) 값을 도출하는 것을 특징으로 하는,
    플래시 메모리를 이용한 펌웨어 업데이트 보안 방법.
  8. 청구항 7에 있어서,
    상기 펌웨어 데이터 관리 단계는,
    플래시 메모리의 특정 영역 중 B 영역에 저장된 새로운 부트 이미지(New Boot Image)를 플래시 메모리의 특정 영역 중 A 영역에 복사하는 것을 특징으로 하는,
    플래시 메모리를 이용한 펌웨어 업데이트 보안 방법.
  9. 청구항 8에 있어서,
    상기 펌웨어 데이터 관리 단계는,
    플래시 메모리의 특정 영역 중 A 영역에 복사된 부트 이미지(Boot Image)를 기반으로 해당 이미지의 해시(hash) 값을 도출하는 것을 특징으로 하는,
    플래시 메모리를 이용한 펌웨어 업데이트 보안 방법.
  10. 청구항 9에 있어서,
    상기 펌웨어 데이터 관리 단계는,
    복사된 부트 이미지(Boot Image)를 기반으로 도출된 해시(hash) 값과 새로운 부트 이미지(New Boot Image)의 해시(hash) 값 동일 여부를 확인하고,
    해시(hash) 값이 동일할 경우, 사용자 디바이스를 리셋(reset)하여 새로운 부트 이미지(New Boot Image)로 해당 사용자 디바이스가 동작하는지를 확인하는 것을 특징으로 하는,
    플래시 메모리를 이용한 펌웨어 업데이트 보안 방법.
  11. 청구항 1 내지 청구항 10 중 어느 한 항에 따른 방법을 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램.
KR1020210102086A 2021-08-03 2021-08-03 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램 KR20230020239A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210102086A KR20230020239A (ko) 2021-08-03 2021-08-03 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210102086A KR20230020239A (ko) 2021-08-03 2021-08-03 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR20230020239A true KR20230020239A (ko) 2023-02-10

Family

ID=85223364

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210102086A KR20230020239A (ko) 2021-08-03 2021-08-03 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR20230020239A (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056018A (ko) 2014-10-06 2017-05-22 마이크론 테크놀로지, 인크. 보안 공유 키 공유 시스템들 및 방법들
KR20210027499A (ko) 2018-08-01 2021-03-10 마이크론 테크놀로지, 인크. 보안 메모리 시스템 프로그래밍

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056018A (ko) 2014-10-06 2017-05-22 마이크론 테크놀로지, 인크. 보안 공유 키 공유 시스템들 및 방법들
KR20210027499A (ko) 2018-08-01 2021-03-10 마이크론 테크놀로지, 인크. 보안 메모리 시스템 프로그래밍

Similar Documents

Publication Publication Date Title
US11916911B2 (en) Gateway enrollment for Internet of Things device management
US10964110B2 (en) Managed actions using augmented reality
CN107430657B (zh) 通过代理的认证
US11277400B2 (en) Reminder terminal apparatus and authentication method
US11902268B2 (en) Secure gateway onboarding via mobile devices for internet of things device management
JP2020524836A (ja) ソフトウェア起動及びライセンス追跡用のシステム及び方法
US11165780B2 (en) Systems and methods to secure publicly-hosted cloud applications to run only within the context of a trusted client application
TW201619866A (zh) 客製化資訊設備的方法
JP2013052556A (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP2021519471A (ja) 商用オフザシェルフ又はモノのインターネットデバイスを使用して安全な金融取引を処理するための方法
CA2840158C (en) Information processing device, control method therefor, program, and information storage medium
KR102510167B1 (ko) 플래시 메모리를 이용한 펌웨어 대용량 업데이트 개선 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
KR20230020239A (ko) 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
KR102573894B1 (ko) 플래시 메모리를 이용한 펌웨어 업데이트 공유키 관리 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
US11496304B2 (en) Information processing device, information processing method, and storage medium
CN114691157A (zh) 基于云的fpga管理控制系统、方法及电子设备
JP2008176506A (ja) 情報処理装置、情報処理方法、および管理サーバ
US20220216987A1 (en) Device and method for managing shared digital key
KR20130053867A (ko) 보안 어플리케이션 다운로드 관리방법, 이를 적용한 보안 어플리케이션 다운로드 관리서버, 단말기, 및 관리시스템
US20140372612A1 (en) Information processing device, information processing method, and program
KR102549842B1 (ko) 다양한 통신 프로토콜이 적용 가능한 통합 디바이스 펌웨어 관리 방법 및 시스템
KR102525600B1 (ko) 다양한 통신 프로토콜 적용에 따른 멀티 프로세싱이 가능한 디바이스 펌웨어 관리 방법 및 시스템
WO2018008124A1 (ja) 計算機、計算機システム及びセキュリティの制御方法
KR102586649B1 (ko) 분산형 파일 시스템을 이용한 펌웨어 관리 시스템 및 펌웨어 관리 방법
JP2005209069A (ja) データベース制御装置