KR20180002349A - 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법 및 이를 이용하는 화상 형성 장치 - Google Patents

화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법 및 이를 이용하는 화상 형성 장치 Download PDF

Info

Publication number
KR20180002349A
KR20180002349A KR1020160081762A KR20160081762A KR20180002349A KR 20180002349 A KR20180002349 A KR 20180002349A KR 1020160081762 A KR1020160081762 A KR 1020160081762A KR 20160081762 A KR20160081762 A KR 20160081762A KR 20180002349 A KR20180002349 A KR 20180002349A
Authority
KR
South Korea
Prior art keywords
executable file
encryption key
image forming
forming apparatus
hash value
Prior art date
Application number
KR1020160081762A
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 KR1020160081762A priority Critical patent/KR20180002349A/ko
Priority to PCT/KR2017/006810 priority patent/WO2018004245A1/ko
Publication of KR20180002349A publication Critical patent/KR20180002349A/ko
Priority to US16/230,817 priority patent/US10776494B2/en

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
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • G06F21/575Secure boot
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/3247Cryptographic 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 involving digital signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • H04N1/00244Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server with a server, e.g. an internet server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00928Initialisation or control of normal start-up or shut-down, i.e. non failure or error related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Virology (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

암호화 키를 생성하는 신뢰된 플랫폼 모듈을 이용하여 실행 파일의 위변조 검증을 수행하는 화상 형성 장치 및 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법을 개시한다.

Description

화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법 및 이를 이용하는 화상 형성 장치{method for verifying forged executable file in an image forming apparatus and image forming apparatus using the same}
화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법 및 이를 이용하는 화상 형성 장치에 관한 것이다.
화상 형성 장치를 턴온(turn on)하거나 리셋(reset)함으로써, 화상 형성 장치가 재가동되면, 화상 형성 장치는 부트 프로세스를 처리한다. 부트 프로세스는 운영 체제(OS)를 로드하거나, 화상 형성 장치 내의 하드웨어들을 사용할 수 있는 상태가 되도록 하는 작업들을 포함한다.
화상 형성 장치는 외부로부터 유입된 악성 코드에 따라 실행 파일에 변경 여부가 있는지 실행 파일의 위변조를 검증할 필요가 있다.
암호화 키를 생성하는 신뢰된 플랫폼 모듈을 이용하여 실행 파일의 위변조 검증을 수행하는 화상 형성 장치 및 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법을 제공하는 것이다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
제 1 측면에 따른 화상 형성 장치는, 운영 체제(Operating Systme, OS) 커널 이미지의 해시(hash) 값을 이용하여, 암호화 키를 생성하는 신뢰된 플랫폼 모듈(Trusted Platform Module, TPM); 컴퓨터 실행가능 명령어(computer executable instruction)를 저장하는 메모리; 및 상기 컴퓨터 실행가능 명령어를 실행함으로써, 상기 암호화 키에 기초하여 실행 파일의 위변조 검증을 수행하는 적어도 하나의 프로세서;를 포함한다.
또한, 상기 적어도 하나의 프로세서는, 상기 화상 형성 장치의 부팅 타임에, 상기 신뢰된 플랫폼 모듈로부터 상기 암호화 키를 수신하여 저장하고, 수신된 상기 암호화 키를 이용하여, 상기 실행 파일의 해시 값을 설정하고, 상기 실행 파일의 실행 요청시에, 상기 저장된 암호화 키를 이용하여, 상기 실행 파일의 해시 값을 새로 획득하여, 상기 부팅 타임에 설정된 해시 값이 변경되었는지 확인할 수 있다.
또한, 상기 적어도 하나의 프로세서는, 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 상기 화상 형성 장치의 부팅 타임에, 상기 수신된 상기 암호화 키를 이용하여, 상기 실행 파일의 해시 값을 생성하고, 상기 실행 파일의 헤더에 상기 생성된 해시 값을 저장할 수 있다.
또한, 상기 적어도 하나의 프로세서는, 상기 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 상기 부팅 타임에 상기 실행 파일의 헤더에 저장된 해시 값과 상기 실행 파일의 실행 요청시에 획득한 해시 값의 동일 여부를 판정할 수 있다.
또한, 상기 적어도 하나의 프로세서는, 상기 판정 결과, 동일하지 않다고 판단되면, 상기 실행 파일의 실행을 중지시키고, 사용자 인터페이스를 통해 상기 실행 파일이 위변조 되었음을 통지할 수 있다.
또한, 상기 신뢰된 플랫폼 모듈은, 상기 화상 형성 장치의 부팅 타임에, 상기 운영 체제 커널 이미지의 해시 값과 상기 신뢰된 플랫폼 모듈에서 생성된 랜덤 값을 이용하여 암호화 키를 생성하고, 상기 생성된 암호화 키를 상기 신뢰된 플랫폼 모듈 내의 소정의 영역에 저장할 수 있다.
또한, 상기 신뢰된 플랫폼 모듈은, 상기 신뢰된 플랫폼 모듈에서 생성된 전자 서명 값과 디바이스 고유 정보 중 어느 하나를 더 이용하여 상기 암호화 키를 생성할 수 있다.
또한, 상기 적어도 하나의 프로세서는, 외부 장치의 요청에 따라 상기 신뢰된 플랫폼 모듈로부터 상기 외부 장치에 전송할 암호화 키를 획득하고, 상기 외부 장치의 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 상기 외부 장치에서 실행 파일의 위변조를 검증하도록, 상기 외부 장치로 상기 획득한 암호화 키를 전송하는 통신부를 더 포함할 수 있다.
제 2 측면에 따른 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법은, 신뢰된 플랫폼 모듈(Trusted Platform Module, TPM)에서 운영 체제(Operating Systme, OS) 커널 이미지의 해시(hash) 값을 이용하여, 암호화 키를 생성하는 단계; 및 상기 생성된 암호화 키에 기초하여 실행 파일의 위변조 검증을 수행하는 단계;를 포함한다.
제 3 측면에 따라, 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체가 제공될 수 있다.
도 1은 일 실시예에 따른 화상 형성 장치의 구성을 도시한 도면이다.
도 2는 일 실시예에 따른 화상 형성 장치가 외부 장치 또는 서버와 연결되는 모습을 나타낸 도면이다.
도 3은 일 실시예에 따른 화상 형성 장치에서 실행 파일의 위변조를 검증하는 과정을 설명하기 위한 도면이다.
도 4는 화상 형성 장치의 부팅 타임에, 신뢰된 플랫폼 모듈에서 생성된 암호화 키를 이용하여 실행 파일의 해시 값을 설정하는 과정을 설명하기 위한 도면이다.
도 5는 실행 파일의 실행 요청시에, 화상 형성 장치의 부팅 타임에 설정된 실행 파일의 해시 값이 변경되었는지 확인하는 과정을 설명하기 위한 도면이다.
도 6은 화상 형성 장치의 부팅 타임에, 신뢰된 플랫폼 모듈에서 전자 서명 값을 더 이용하여 암호화 키를 생성하고, 실행 파일의 해시 값을 설정하는 과정을 설명하기 위한 도면이다.
도 7은 실행 파일의 실행 요청시에, 화상 형성 장치의 부팅 타임에 설정된, 전자 서명을 이용한 실행 파일의 해시 값이 변경되었는지 확인하는 과정을 설명하기 위한 도면이다.
도 8은 다른 실시예에 따른 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법을 나타낸 흐름도이다.
도 9는 다른 실시예에 따른 화상 형성 장치에서 실행 파일의 위변조를 검증하는 과정에서 신뢰된 플랫폼 모듈에서 암호화 키를 생성하는 과정을 나타낸 상세 흐름도이다
도 10은 다른 실시예에 따른 화상 형성 장치에서 실행 파일의 위변조를 검증하는 과정에서 생성된 암호화 키에 기초하여 실행 파일의 위변조 검증을 수행하는 과정을 나타낸 상세 흐름도이다
이하에서는 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 이하에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략한다.
한편, 본 명세서에서 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 다른 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들 더 포함할 수도 있다는 것을 의미한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 명세서에서 "화상 형성 작업(image forming job)"이란 화상의 형성 또는 화상 파일의 생성/저장/전송 등과 같이 화상과 관련된 다양한 작업들(e.g. 인쇄, 스캔 또는 팩스)을 의미할 수 있으며, "작업(job)"이란 화상 형성 작업을 의미할 뿐 아니라, 화상 형성 작업의 수행을 위해서 필요한 일련의 프로세스들을 모두 포함하는 의미일 수 있다.
또한, "화상 형성 장치"란 프린터(printer), 스캐너(scanner), 팩스기(fax machine), 복합기(multi-function printer, MFP) 또는 디스플레이 장치 등과 같이 화상 형성 작업을 수행할 수 있는 모든 장치들을 의미할 수 있다.
또한, "하드 카피(hard copy)"란 종이 등과 같은 인쇄 매체에 화상을 출력하는 동작을 의미하며, "소프트 카피(soft copy)"란 TV 또는 모니터 등과 같은 디스플레이 장치에 화상을 출력하는 동작을 의미할 수 있다.
또한, "컨텐츠"란 사진, 이미지 또는 문서 파일 등과 같이 화상 형성 작업의 대상이 되는 모든 종류의 데이터를 의미할 수 있다.
또한, "인쇄 데이터"란 프린터에서 인쇄 가능한 포맷으로 변환된 데이터를 의미할 수 있다.
또한, "스캔 파일"이란 스캐너에서 화상을 스캔하여 생성한 파일을 의미할 수 있다.
또한, "사용자"란 화상 형성 장치를 이용하여, 또는 화상 형성 장치와 유무선으로 연결된 디바이스를 이용하여 화상 형성 작업과 관련된 조작을 수행하는 사람을 의미할 수 있다. 또한, "관리자"란 화상 형성 장치의 모든 기능 및 시스템에 접근할 수 있는 권한을 갖는 사람을 의미할 수 있다. "관리자"와 "사용자"는 동일한 사람일 수도 있다.
도 1은 일 실시예에 따른 화상 형성 장치의 구성을 도시한 도면이다. 도 1을 참조하면, 일 실시예에 따른 화상 형성 장치(100)는, 입출력부(110), 제어부(120), 통신부(130), 메모리(140) 및 화상 형성 작업부(150)를 포함할 수 있다. 또한, 도시되지는 않았으나, 화상 형성 장치(100)는 각 구성들에 전원을 공급하기 위한 전원부를 더 포함할 수도 있다.
입출력부(110)는 사용자로부터 화상 형성 작업의 수행을 위한 입력 등을 수신하기 위한 입력부와, 화상 형성 작업의 수행 결과 또는 화상 형성 장치(100)의 상태 등의 정보를 표시하기 위한 출력부를 포함할 수 있다. 예를 들어, 입출력부(110)는 사용자 입력을 수신하는 조작 패널(operation panel) 및 화면을 표시하는 디스플레이 패널(display panel) 등을 포함할 수 있다.
구체적으로, 입력부는, 예를 들어, 키보드, 물리 버튼, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 사용자 입력을 수신할 수 있는 장치들을 포함할 수 있다. 또한, 출력부는, 예를 들어, 디스플레이 패널 또는 스피커 등을 포함할 수 있다. 다만, 이에 한정되지 않고 입출력부(110)는 다양한 입출력을 지원하는 장치를 포함할 수 있다.
제어부(120)는 화상 형성 장치(100)의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 제어부(120)는 입출력부(110)를 통해 수신한 사용자 입력에 대응되는 동작을 수행하도록 화상 형성 장치(100)에 포함된 다른 구성들을 제어할 수 있다. 제어부(120)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다.
예를 들어, 제어부(120)는 메모리(140)에 저장된 프로그램을 실행시키거나, 메모리(140)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(140)에 저장할 수도 있다.
통신부(130)는 다른 디바이스 또는 네트워크와 유무선 통신을 수행할 수 있다. 이를 위해, 통신부(130)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태일 수도 있고, 또는 통신에 필요한 정보를 포함하는 스티커/바코드(e.g. NFC tag를 포함하는 스티커)등일 수도 있다.
무선 통신은, 예를 들어, Wi-Fi(Wireless Fidelity), Wi-Fi Direct, 블루투스(Bluetooth), UWB(Ultra Wide Band) 또는 NFC(Near Field Communication) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들어, USB 또는 HDMI(High Definition Multimedia Interface) 중 적어도 하나를 포함할 수 있다
통신부(130)는 화상 형성 장치(100)의 외부에 위치한 외부 장치와 연결되어 신호 또는 데이터를 송수신할 수 있다. 도 2를 참조하면, 화상 형성 장치(100)는 통신부(130)를 통해 외부 장치(200)와 연결되어 있다. 통신부(130)는 외부 장치(200)로부터 수신된 신호 또는 데이터를 제어부(120)로 전달하거나, 또는 제어부(120)에서 발생된 신호 또는 데이터를 외부 장치(200)로 전송할 수 있다. 예를 들어, 통신부(130)가 외부 장치(200)로부터 인쇄 명령 신호 및 인쇄 데이터를 수신하면, 제어부(120)는 수신된 인쇄 데이터를 인쇄부(151)를 통해 출력할 수 있다.
도 2에 도시된 바와 같이 외부 장치(200)는 입출력부(210), 제어부(220), 통신부(230) 및 메모리(240)를 포함할 수 있다. 제어부(220)는 메모리(240)에 저장된 프로그램을 실행하고, 그 결과 발생되는 신호 또는 데이터를 통신부(230)를 통해 화상 형성 장치(100)에 전송함으로써 화상 형성 작업을 제어할 수도 있다. 외부 장치(200)는, 예를 들어, 스마트폰, 태블릿, PC, 가전기기, 의료기기, 카메라 및 웨어러블 장치 등을 포함할 수 있다.
한편, 통신부(130)는 서버(300)와 직접 연결되어 신호 또는 데이터를 송수신할 수 있다. 또한, 통신부(130)는 서버(300)를 통해 외부 장치(200)와 연결될 수도 있다. 즉, 화상 형성 장치(100)의 통신부(130)는 서버(300)를 통해 외부 장치(200)의 통신부(230)와 신호 또는 데이터를 송수신할 수 있다.
다시 도 1로 돌아와서, 메모리(140)에는 어플리케이션과 같은 프로그램 및 파일 등과 같은 다양한 종류의 데이터가 설치 및 저장될 수 있다. 제어부(120)는 메모리(140)에 저장된 데이터에 접근하여 이를 이용하거나, 또는 새로운 데이터를 메모리(140)에 저장할 수도 있다. 또한, 제어부(120)는 메모리(140)에 설치된 프로그램을 실행할 수도 있다. 또한, 제어부(120)는 통신부(130)를 통해 외부로부터 수신한 어플리케이션을, 메모리(140)에 설치할 수도 있다.
화상 형성 작업부(150)는 인쇄, 스캔 또는 팩스 등의 화상 형성 작업을 수행할 수 있다.
도 1을 참조하면, 화상 형성 작업부(150)는 인쇄부(151), 스캔부(152) 및 팩스부(153)를 포함하는 것으로 도시되었는데, 필요에 따라서 이들 중 일부 구성만을 포함하거나, 또는 다른 종류의 화상 형성 작업 수행을 위한 구성을 더 포함할 수도 있다.
인쇄부(151)는 전자 사진 방식, 잉크젯 방식, 열전사 방식 및 감열 방식 등 다양한 인쇄 방식에 의하여 기록매체에 화상을 형성할 수 있다.
스캔부(152)는 원고에 광을 조사하고, 반사되는 광을 수광하여 원고에 기록된 화상을 읽어들일 수 있다. 원고로부터 화상을 읽어들이는 이미지 센서로서, 예를 들어 CCD (Charge Coupled Device), CIS(contact type image sensor) 등이 채용될 수 있다. 스캔부(152)는 원고가 고정된 위치에 위치되고, 이미지 센서가 이동되면서 화상을 읽어들이는 플랫베드(flatbed) 구조, 이미지 센서가 고정된 위치에 위치되고 원고가 이송되는 원고이송(document feed) 구조과, 이들의 복합 구조를 가질 수 있다.
팩스부(153)의 경우, 화상을 스캔하기 위한 구성은 스캔부(152)와 공유할 수 있고, 수신한 파일을 인쇄하기 위한 구성은 인쇄부(151)와 공유할 수 있으며, 스캔 파일을 목적지로 전송하거나, 외부로부터 파일을 수신할 수 있다.
신뢰된 플랫폼 모듈(Trusted Platform module, 이하 TPM)(160)은 암호화 키를 안전하게 생성하고, 생성된 암호화 키를 저장할 수 있다. TPM(160)은 운영 체제(Operating Systme, OS) 커널 이미지의 해시(hash) 값을 이용하여, 암호화 키를 생성할 수 있다. TPM(160)에서 생성된 암호화 키를 실행 파일의 무결성 검사에 이용함으로써, 실행 파일의 해시 값만을 체크하는 무결성 검사보다 무결성 보장이 강화될 수 있다.
전술한 화상 형성 장치(100)의 구성 요소들의 명칭은 달라질 수 있다. 또한, 본 개시에 따른 화상 형성 장치(100)는 전술한 구성요소들 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다.
도 3은 일 실시예에 따른 화상 형성 장치에서 실행 파일의 위변조를 검증하는 과정을 설명하기 위한 도면이다.
메모리(140)는 운영체제 커널 이미지를 저장할 수 있으며, 비휘발성 저장 장치일 수 있다. 메모리(140)는 컴퓨터 실행가능 명령어를 저장할 수 있다.
제어부(120)는 도 3에 도시된 바와 같이 각 기능 블럭에 따라 각각의 프로세서를 구비할 수 있으나, 이에 한정되는 것은 아니다. 도 3에 도시된 바와 달리, 제어부(120)는 여러 기능을 수행할 수 있는 하나의 프로세서로 구현될 수도 있고, 도 3에 도시된 일부 블록들을 하나로 통합한 형태로 구현될 수 있다.
도 3을 참조하면, 제어부(120)는 부트단과 커널단으로 구분할 수 있다. 도 3에서 부트단은 부트 프로세서, 부트 TPM 프로세서, 해시 생성 프로세서를 포함하고, 커널단은 커널 프로세서, 커널 TPM 프로세서, IMA(Integrity Measurement Architecture)를 포함할 수 있다.
제어부(120)는 메모리(140)에 저장된 컴퓨터 실행가능 명령어를 실행함으로써, 암호화 키에 기초하여 실행 파일의 위변조 검증을 수행하는 적어도 하나의 프로세서를 포함할 수 있다.
제어부(120)를 구성하는 적어도 하나의 프로세서는 화상 형성 장치(100)의 부팅 타임에, TPM(160)으로부터 암호화 키를 수신하여 저장하고, 수신된 상기 암호화 키를 이용하여, 실행 파일의 해시 값을 설정할 수 있다. 제어부(120)를 구성하는 적어도 하나의 프로세서는 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 화상 형성 장치(100)의 부팅 타임에, 수신된 암호화 키를 이용하여, 실행 파일의 해시 값을 생성하고, 실행 파일의 헤더에 생성된 해시 값을 저장할 수 있다.
제어부(120)를 구성하는 적어도 하나의 프로세서는 실행 파일의 실행 요청시에, 저장된 암호화 키를 이용하여, 실행 파일의 해시 값을 새로 획득하여, 부팅 타임에 설정된 해시 값이 변경되었는지 확인할 수 있다. 제어부(120)를 구성하는 적어도 하나의 프로세서는 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 부팅 타임에 실행 파일의 헤더에 저장된 해시 값과 실행 파일의 실행 요청시에 획득한 해시 값의 동일 여부를 판정할 수 있다.
제어부(120)를 구성하는 적어도 하나의 프로세서는 해시 값의 동일 여부 판정 결과, 동일하지 않다고 판단되면, 실행 파일의 실행을 중지시키고, 사용자 인터페이스를 통해 실행 파일이 위변조 되었음을 통지한다.
제어부(120)를 부트단과 커널단의 동작으로 구분하여 설명하면 다음과 같다.
부트단의 동작을 살펴보면, 부트 프로세서는 메모리(140)로부터 커널 이미지를 읽어오고 부트단의 전반적인 제어를 담당한다. 해시 생성 프로세서는 커널 이미지를 이용하여 해시 값을 계산한다. 부트 TPM 프로세서는 해시 생성 프로세서에서 계산된 해시 값을 TPM(160)으로 전송하여 TPM(160)에 저장되도록 제어한다.
커널단의 동작을 살펴보면, 커널 프로세서는 커널단의 전반적인 제어를 담당하며, 데이터를 확인할 수 있다. 커널 TPM 프로세서는 TPM(160)을 제어하여 TPM(160)으로부터 암호화 키를 독출할 수 있다. IMA는 실행 파일의 해시 값을 체크하여, 무결성 검사 즉, 실행 파일의 위변조 검증을 수행할 수 있다.
한편, 제어부(120)를 구성하는 적어도 하나의 프로세서가 외부 장치(200)의 요청에 따라 TPM(160)으로부터 외부 장치(200)에 전송할 암호화 키를 획득하는 경우, 외부 장치(200)의 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 외부 장치(200)에서 실행 파일의 위변조를 검증하도록, 외부 장치(200)로 획득한 암호화 키를 통신부(130)통신부(130)전송할 수 있다.
TPM(160)은 운영 체제(Operating Systme, OS) 커널 이미지의 해시(hash) 값을 이용하여, 암호화 키를 생성할 수 있다. TPM(160)은 화상 형성 장치(100)의 부팅 타임에, 운영 체제 커널 이미지의 해시 값과 TPM(160)에서 생성된 랜덤 값을 이용하여 암호화 키를 생성하고, 생성된 암호화 키를 TPM(160) 내의 소정의 영역에 저장할 수 있다. 또한, TPM(160)은 TPM(160)에서 생성된 전자 서명 값과 디바이스 고유 정보 중 어느 하나를 더 이용하여 암호화 키를 생성할 수 있다.
부트단에서 운영체제 커널 이미지의 해시(hash) 값을 생성하고, H/W 보안칩인 TPM(160)에서 IMA 용 암호화 키를 생성하는데 운영 체제 커널 이미지의 해시 값을 이용하도록 하여 부트-커널-파일시스템 간에 시큐리티 체인을 구성함으로써 기존 IMA보다 강력한 보안기능을 제공할 수 있다.
도 4는 화상 형성 장치(100)의 부팅 타임에, TPM(160)에서 생성된 암호화 키를 이용하여 실행 파일의 해시 값을 설정하는 과정을 설명하기 위한 도면이다.
화상 형성 장치(100)가 부팅을 시작하면, 제어부(120)의 부트단에서는 메모리(140)로부터 커널의 이미지를 읽어온 후 커널 이미지에 대한 해시 값을 생성한다. 생성된 해시 값은 TPM(160) 내의 소정의 영역에 저장된다.
TPM(160)은 커널 이미지의 해시 값과 TPM(160)에서 생성한 랜덤 값을 이용하여 암호화 키를 생성하며, TPM(160) 내의 일정 영역에 저장한다.
부트단에서 커널단으로 제어권이 넘어오면, 제어부(120)의 커널단은 TPM(160)에 저장된 암호화 키를 읽어와 IMA에 전달한다. 암호화 키를 전달받은 IMA는 IMA의 일정 영역에 암호화 키를 저장해 둔 후, 암호화 키를 이용하여, 실행 파일의 해쉬 값을 계산하고, 실행 파일의 inode 즉, 헤더에 이를 저장한다.
IMA의 해시 설정수단이 실행 파일들에 대해 해시 값을 각 헤더에 모두 저장하면, 프로그램 실행의 제어권이 애플리케이션 제어부(미도시)로 전달되어, 사용자가 사용할 수 있는 준비 상태가 된다.
도 5는 실행 파일의 실행 요청시에, 화상 형성 장치(100)의 부팅 타임에 설정된 실행 파일의 해시 값이 변경되었는지 확인하는 과정을 설명하기 위한 도면이다.
실행 파일의 실행 요청 시, IMA는 IMA에 저장된 암호화 키를 이용하여, 실행 파일의 해시 값을 새로 획득하고, 부팅 타임에 설정된 해시 값이 변경되었는지 확인한다. 즉, IMA는 부팅 타임에 실행 파일의 헤더에 저장된 해시 값과 실행 파일의 실행 요청시에 획득한 해시 값의 동일 여부를 판정함으로서, 실행파일의 무결성이 훼손되었는지를 판단할 수 있다.
도 6은 화상 형성 장치(100)의 부팅 타임에, TPM(160)에서 전자 서명 값을 더 이용하여 암호화 키를 생성하고, 실행 파일의 해시 값을 설정하는 과정을 설명하기 위한 도면이다.
화상 형성 장치(100)가 부팅을 시작하면, 제어부(120)의 부트단에서는 메모리(140)로부터 커널의 이미지를 읽어온 후 커널 이미지에 대한 해시 값을 생성한다. 생성된 해시 값은 TPM(160) 내의 소정의 영역에 저장된다.
TPM(160)은 전자 서명 생성 수단을 이용하여 전자서명 키 쌍(PK_k, SK_k)를 생성한 후, 커널 이미지의 해시 값(h1)과 TPM(160)에서 생성한 랜덤 값(r)을 이용하여 전자 서명을 이용한 해시 값 즉, 전자 서명 값 S1을 생성하며, TPM(160) 내의 일정 영역에 저장한다. TPM(160)은 "[전자서명 키 쌍, 메시지, 서명] = [PK_k, SK_k, r∥h1, S1]" 을 저장한 후, 커널단의 IMA로 전달한다.
부트단에서 커널단으로 제어권이 넘어오면, 제어부(120)의 커널단은 TPM(160)에 저장된 전자서명 키 쌍, 메시지, 서명 값을 읽어와 IMA에 전달한다. 암호화 키를 전달받은 IMA는 서명의 정당성을 검증한 후, 실행 파일의 해쉬 값과 서명 값을 계산하고, 실행 파일의 inode 즉, 헤더에 이를 저장한다. 예를 들어, IMA는 “[전자서명 키 쌍, 메시지, 서명] = [PK_k, SK_k, r∥h1, S1]” 중 (PK_k, r∥h1, S1)의 서명의 정당성을 검증한 후 “S1”이 옳바른 서명이면, “SK_k”를 이용하여 실행 파일의 해쉬값 “hash(exc)=ef1”을 계산하고 일정한 길이로 줄여 준 후, 전자 서명 값 “Sig(SK_k, r∥ef1)=S2”계산하여 실행 파일의 inode에 “[PK_k, r, S2]” 혹은 “[S2]”를 저장한다.
IMA의 해시 설정수단이 실행 파일들에 대해 전자 서명 값을 각 헤더에 모두 저장하면, 프로그램 실행의 제어권이 애플리케이션 제어부(미도시)로 전달되어, 사용자가 사용할 수 있는 준비 상태가 된다.
도 7은 실행 파일의 실행 요청시에, 화상 형성 장치(100)의 부팅 타임에 설정된, 전자 서명을 이용한 실행 파일의 해시 값이 변경되었는지 확인하는 과정을 설명하기 위한 도면이다.
실행 파일의 실행 요청 시, IMA는 IMA에 저장된 암호화 키를 이용하여, 실행 파일의 전자 서명을 이용한 해시 값을 새로 획득하고, 부팅 타임에 설정된 전자 서명을 이용한 해시 값이 변경되었는지 확인한다. 즉, IMA는 부팅 타임에 실행 파일의 헤더에 저장된 전자 서명을 이용한 해시 값과 실행 파일의 실행 요청시에 획득한 전자 서명을 이용한 해시 값의 동일 여부를 판정함으로서, 실행파일의 무결성이 훼손되었는지를 판단할 수 있다.
도 8은 다른 실시예에 따른 화상 형성 장치(100)에서 실행 파일의 위변조를 검증하는 방법을 나타낸 흐름도이다. 이하에서 생략된 내용이라 하더라도, 이상에서 기술한 내용은 화상 형성 장치(100)에서 실행 파일의 위변조를 검증하는 방법에 적용될 수 있다.
810 단계에서, 화상 형성 장치(100)는 TPM(160)에서 운영 체제(Operating Systme, OS) 커널 이미지의 해시(hash) 값을 이용하여, 암호화 키를 생성한다.
820 단계에서, 화상 형성 장치(100)는 생성된 암호화 키에 기초하여 실행 파일의 위변조 검증을 수행한다.
도 9는 다른 실시예에 따른 화상 형성 장치(100)에서 실행 파일의 위변조를 검증하는 과정에서 TPM(160)에서 암호화 키를 생성하는 과정을 나타낸 상세 흐름도이다
910 단계에서, 화상 형성 장치(100)는 화상 형성 장치(100)의 부팅 타임에, 운영 체제 커널 이미지의 해시 값과 TPM(160)에서 생성된 랜덤 값을 이용하여 암호화 키를 생성할 수 있다. 화상 형성 장치(100)는 TPM(160)에서 생성된 전자 서명 값과 디바이스 고유 정보 중 어느 하나를 더 이용하여 상기 암호화 키를 생성할 수 있다.
920 단계에서, 화상 형성 장치(100)는 TPM(160)에서 생성된 암호화 키를 TPM(160) 내의 소정의 영역에 저장할 수 있다.
도 10은 다른 실시예에 따른 화상 형성 장치(100)에서 실행 파일의 위변조를 검증하는 과정에서 생성된 암호화 키에 기초하여 실행 파일의 위변조 검증을 수행하는 과정을 나타낸 상세 흐름도이다.
1010 단계에서, 화상 형성 장치(100)는 화상 형성 장치(100)의 부팅 타임에, TPM(160)으로부터 암호화 키를 수신하여 저장하고, 수신된 암호화 키를 이용하여, 실행 파일의 해시 값을 설정할 수 있다. 화상 형성 장치(100)는 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 화상 형성 장치(100)의 부팅 타임에, 수신된 암호화 키를 이용하여, 실행 파일의 해시 값을 생성하고, 실행 파일의 헤더에 생성된 해시 값을 저장할 수 있다.
1020 단계에서, 화상 형성 장치(100)는 실행 파일의 실행 요청시에, 저장된 암호화 키를 이용하여, 실행 파일의 해시 값을 새로 획득하여, 부팅 타임에 설정된 해시 값이 변경되었는지 확인할 수 있다. 화상 형성 장치(100)는 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 부팅 타임에 실행 파일의 헤더에 저장된 해시 값과 실행 파일의 실행 요청시에 획득한 해시 값의 동일 여부를 판정할 수 있다. 화상 형성 장치(100)는 판정 결과, 동일하지 않다고 판단되면, 실행 파일의 실행을 중지시키고, 사용자 인터페이스를 통해 실행 파일이 위변조 되었음을 통지할 수 있다.
한편, 상술된 실시예들은 컴퓨터에 의하여 실행 가능한 명령어 및 데이터를 저장하는 컴퓨터로 읽을 수 있는 기록매체의 형태로 구현될 수 있다. 상기 명령어 및 데이터 중 적어도 하나는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다.
컴퓨터로 읽을 수 있는 기록매체란, 예를 들어 하드디스크 등과 같은 마그네틱 저장매체, CD 및 DVD 등과 같은 광학적 판독매체 등을 의미할 수 있으며, 네트워크를 통해 접근 가능한 서버에 포함되는 메모리를 의미할 수도 있다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 화상 형성 장치(100)의 메모리(140) 및 입출력부(110)의 메모리(미도시) 중 적어도 하나가 될 수도 있으며, 또는, 화상 형성 장치(100)와 네트워크를 통하여 연결된 외부 장치(200)에 포함되는 메모리(240)가 될 수도 있다.
이제까지 실시예들을 중심으로 살펴보았다. 개시된 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자는 개시된 실시예들이 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 실시예들에 따른 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 발명의 범위에 포함된 것으로 해석되어야 할 것이다.

Claims (17)

  1. 운영 체제(Operating Systme, OS) 커널 이미지의 해시(hash) 값을 이용하여, 암호화 키를 생성하는 신뢰된 플랫폼 모듈(Trusted Platform Module, TPM);
    컴퓨터 실행가능 명령어(computer executable instruction)를 저장하는 메모리; 및
    상기 컴퓨터 실행가능 명령어를 실행함으로써, 상기 암호화 키에 기초하여 실행 파일의 위변조 검증을 수행하는 적어도 하나의 프로세서;
    를 포함하는 화상 형성 장치.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 화상 형성 장치의 부팅 타임에, 상기 신뢰된 플랫폼 모듈로부터 상기 암호화 키를 수신하여 저장하고, 수신된 상기 암호화 키를 이용하여, 상기 실행 파일의 해시 값을 설정하고,
    상기 실행 파일의 실행 요청시에, 상기 저장된 암호화 키를 이용하여, 상기 실행 파일의 해시 값을 새로 획득하여, 상기 부팅 타임에 설정된 해시 값이 변경되었는지 확인하는, 화상 형성 장치.
  3. 제 2 항에 있어서,
    상기 적어도 하나의 프로세서는,
    리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 상기 화상 형성 장치의 부팅 타임에, 상기 수신된 상기 암호화 키를 이용하여, 상기 실행 파일의 해시 값을 생성하고, 상기 실행 파일의 헤더에 상기 생성된 해시 값을 저장하는, 화상 형성 장치.
  4. 제 3 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 상기 부팅 타임에 상기 실행 파일의 헤더에 저장된 해시 값과 상기 실행 파일의 실행 요청시에 획득한 해시 값의 동일 여부를 판정하는, 화상 형성 장치.
  5. 제 2 항에 있어서,
    상기 적어도 하나의 프로세서는
    상기 판정 결과, 동일하지 않다고 판단되면, 상기 실행 파일의 실행을 중지시키고, 사용자 인터페이스를 통해 상기 실행 파일이 위변조 되었음을 통지하는, 화상 형성 장치.
  6. 제 1 항에 있어서,
    상기 신뢰된 플랫폼 모듈은,
    상기 화상 형성 장치의 부팅 타임에, 상기 운영 체제 커널 이미지의 해시 값과 상기 신뢰된 플랫폼 모듈에서 생성된 랜덤 값을 이용하여 암호화 키를 생성하고, 상기 생성된 암호화 키를 상기 신뢰된 플랫폼 모듈 내의 소정의 영역에 저장하는, 화상 형성 장치.
  7. 제 6 항에 있어서,
    상기 신뢰된 플랫폼 모듈은,
    상기 신뢰된 플랫폼 모듈에서 생성된 전자 서명 값과 디바이스 고유 정보 중 어느 하나를 더 이용하여 상기 암호화 키를 생성하는, 화상 형성 장치.
  8. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    외부 장치의 요청에 따라 상기 신뢰된 플랫폼 모듈로부터 상기 외부 장치에 전송할 암호화 키를 획득하고,
    상기 외부 장치의 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 상기 외부 장치에서 실행 파일의 위변조를 검증하도록, 상기 외부 장치로 상기 획득한 암호화 키를 전송하는 통신부를 더 포함하는, 화상 형성 장치.
  9. 신뢰된 플랫폼 모듈(Trusted Platform Module, TPM)에서 운영 체제(Operating Systme, OS) 커널 이미지의 해시(hash) 값을 이용하여, 암호화 키를 생성하는 단계; 및
    상기 생성된 암호화 키에 기초하여 실행 파일의 위변조 검증을 수행하는 단계;
    를 포함하는 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법.
  10. 제 9 항에 있어서,
    상기 위변조 검증을 수행하는 단계는,
    상기 화상 형성 장치의 부팅 타임에, 상기 신뢰된 플랫폼 모듈로부터 상기 암호화 키를 수신하여 저장하고, 수신된 상기 암호화 키를 이용하여, 상기 실행 파일의 해시 값을 설정하는 단계; 및
    상기 실행 파일의 실행 요청시에, 상기 저장된 암호화 키를 이용하여, 상기 실행 파일의 해시 값을 새로 획득하여, 상기 부팅 타임에 설정된 해시 값이 변경되었는지 확인하는 단계;
    를 포함하는, 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법.
  11. 제 10 항에 있어서,
    상기 실행 파일의 해시 값을 설정하는 단계는,
    리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 상기 화상 형성 장치의 부팅 타임에, 상기 수신된 상기 암호화 키를 이용하여, 상기 실행 파일의 해시 값을 생성하는 단계; 및
    상기 실행 파일의 헤더에 상기 생성된 해시 값을 저장하는 단계;
    를 포함하는, 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법.
  12. 제 11 항에 있어서,
    상기 부팅 타임에 설정된 해시 값이 변경되었는지 확인하는 단계는,
    상기 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 상기 부팅 타임에 상기 실행 파일의 헤더에 저장된 해시 값과 상기 실행 파일의 실행 요청시에 획득한 해시 값의 동일 여부를 판정하는 단계를 포함하는, 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법.
  13. 제 10 항에 있어서,
    상기 위변조 검증을 수행하는 단계는,
    상기 판정 결과, 동일하지 않다고 판단되면, 상기 실행 파일의 실행을 중지시키고, 사용자 인터페이스를 통해 상기 실행 파일이 위변조 되었음을 통지하는 단계를 더 포함하는, 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법.
  14. 제 9 항에 있어서,
    상기 암호화 키를 생성하는 단계는,
    상기 화상 형성 장치의 부팅 타임에, 상기 운영 체제 커널 이미지의 해시 값과 상기 신뢰된 플랫폼 모듈에서 생성된 랜덤 값을 이용하여 암호화 키를 생성하는 단계; 및
    상기 생성된 암호화 키를 상기 신뢰된 플랫폼 모듈 내의 소정의 영역에 저장하는 단계;
    를 포함하는, 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법.
  15. 제 14 항에 있어서,
    상기 암호화 키를 생성하는 단계는,
    상기 신뢰된 플랫폼 모듈에서 생성된 전자 서명 값과 디바이스 고유 정보 중 어느 하나를 더 이용하여 상기 암호화 키를 생성하는, 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법.
  16. 제 9 항에 있어서,
    외부 장치의 요청에 따라 상기 신뢰된 플랫폼 모듈로부터 상기 외부 장치에 전송할 암호화 키를 획득하는 단계; 및
    상기 외부 장치의 리눅스 커널에서 제공하는 IMA(Integrity Measurement Architecture) 기능에 따라, 상기 외부 장치에서 실행 파일의 위변조를 검증하도록, 상기 외부 장치로 상기 획득한 암호화 키를 전송하는 단계;
    를 포함하는, 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법.
  17. 제 9 항 내지 제 16 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020160081762A 2016-06-29 2016-06-29 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법 및 이를 이용하는 화상 형성 장치 KR20180002349A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160081762A KR20180002349A (ko) 2016-06-29 2016-06-29 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법 및 이를 이용하는 화상 형성 장치
PCT/KR2017/006810 WO2018004245A1 (ko) 2016-06-29 2017-06-28 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법 및 이를 이용하는 화상 형성 장치
US16/230,817 US10776494B2 (en) 2016-06-29 2018-12-21 Method for verifying forgery and falsification of executable file in image forming apparatus and image forming apparatus using same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160081762A KR20180002349A (ko) 2016-06-29 2016-06-29 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법 및 이를 이용하는 화상 형성 장치

Publications (1)

Publication Number Publication Date
KR20180002349A true KR20180002349A (ko) 2018-01-08

Family

ID=60787353

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160081762A KR20180002349A (ko) 2016-06-29 2016-06-29 화상 형성 장치에서 실행 파일의 위변조를 검증하는 방법 및 이를 이용하는 화상 형성 장치

Country Status (3)

Country Link
US (1) US10776494B2 (ko)
KR (1) KR20180002349A (ko)
WO (1) WO2018004245A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345804B (zh) * 2018-03-22 2021-01-08 北京可信华泰信息技术有限公司 一种可信计算环境中的存储方法和装置
KR20210117850A (ko) * 2020-03-20 2021-09-29 삼성전자주식회사 보안 장치 및 이의 제어 방법
CN111523129A (zh) * 2020-04-09 2020-08-11 太原理工大学 一种基于tpm的数据泄漏防护方法
US11928205B1 (en) 2022-03-01 2024-03-12 CSP Inc. Systems and methods for implementing cybersecurity using blockchain validation
US11822647B1 (en) * 2022-03-01 2023-11-21 CSP Inc. Data structure for trust store

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343493B2 (en) * 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US7716494B2 (en) * 2004-07-15 2010-05-11 Sony Corporation Establishing a trusted platform in a digital processing system
US7805765B2 (en) * 2004-12-28 2010-09-28 Lenovo (Singapore) Pte Ltd. Execution validation using header containing validation data
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
WO2008070688A1 (en) * 2006-12-04 2008-06-12 Commvault Systems, Inc. Systems and methods for creating copies of data, such as archive copies
JP5085287B2 (ja) * 2007-11-21 2012-11-28 株式会社リコー 情報処理装置、正当性検証方法および正当性検証プログラム
JP5369502B2 (ja) * 2008-06-04 2013-12-18 株式会社リコー 機器、管理装置、機器管理システム、及びプログラム
KR20120034755A (ko) * 2009-03-06 2012-04-12 인터디지탈 패튼 홀딩스, 인크 무선 장치들의 플랫폼 입증 및 관리
US8930686B2 (en) * 2009-12-23 2015-01-06 International Business Machines Corporation Deduplication of encrypted data
US9294282B1 (en) * 2013-07-01 2016-03-22 Amazon Technologies, Inc. Cryptographically verified repeatable virtualized computing
EP3230935A1 (en) * 2014-12-12 2017-10-18 Cryptomathic Ltd Systems and method for enabling secure transaction
US10025932B2 (en) * 2015-01-30 2018-07-17 Microsoft Technology Licensing, Llc Portable security device

Also Published As

Publication number Publication date
US10776494B2 (en) 2020-09-15
WO2018004245A1 (ko) 2018-01-04
US20190121984A1 (en) 2019-04-25

Similar Documents

Publication Publication Date Title
US10776494B2 (en) Method for verifying forgery and falsification of executable file in image forming apparatus and image forming apparatus using same
US8601280B2 (en) Application executing apparatus and application execution method
US9921784B2 (en) Information processing program product, information processing apparatus, and information processing system
US9930492B2 (en) Information processing system, information storage apparatus, and location information storing method
US20200334360A1 (en) Information processing apparatus and method for controlling the same
KR101766169B1 (ko) 기기, 시스템 및 방법
JP7170482B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2007079902A (ja) ログ情報管理システム及びログ情報管理方法
US20220021788A1 (en) Information processing apparatus, information processing method, and storage medium
US20160226855A1 (en) Image forming system having user authentication function, image forming apparatus, method of controlling image forming system, and storage medium
US9013735B2 (en) Image forming system and image forming method providing controls of settings of image position and restriction
JP2021114304A (ja) 画像処理装置、その制御方法、及びプログラム
KR102538458B1 (ko) 화상 처리 장치, 그 제어 방법, 및 기억 매체
US20170242742A1 (en) Data processing device, control method for data processing device, and storage medium
JP2007249575A (ja) 情報処理装置、コンピュータ読み取り可能な可搬性記録媒体、情報処理方法、情報処理プログラム及び情報処理システム
US10572182B2 (en) Image forming apparatus, image forming system, control method, and recording medium
US20080225311A1 (en) Image forming apparatus, image forming method and computer readable medium
JP5124241B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム及び記録媒体
JP2007150447A (ja) 電子文書管理装置および電子文書管理プログラム
US20180129538A1 (en) Electronic apparatus, storage medium storing computer program, and method of performing settings of electronic apparatus
US20170353616A1 (en) Authentication control apparatus, image reading apparatus, and non-transitory computer readable medium
US11816233B2 (en) Information processing apparatus
JP2005252891A (ja) 電子透かし情報認証システム及び画像形成装置
JP2006222811A (ja) 画像形成装置、電子署名添付方法、電子署名添付プログラム及び記録媒体
KR20190009600A (ko) 화상 형성 장치에서 계정 연동이 설정된 계정들의 계정 처리 방법 및 이를 이용하는 화상 형성 장치

Legal Events

Date Code Title Description
N231 Notification of change of applicant