KR102402373B1 - 정보 처리 장치 및 정보 처리 방법 - Google Patents

정보 처리 장치 및 정보 처리 방법 Download PDF

Info

Publication number
KR102402373B1
KR102402373B1 KR1020190034017A KR20190034017A KR102402373B1 KR 102402373 B1 KR102402373 B1 KR 102402373B1 KR 1020190034017 A KR1020190034017 A KR 1020190034017A KR 20190034017 A KR20190034017 A KR 20190034017A KR 102402373 B1 KR102402373 B1 KR 102402373B1
Authority
KR
South Korea
Prior art keywords
module
verification
signature
kernel
program
Prior art date
Application number
KR1020190034017A
Other languages
English (en)
Other versions
KR20190113614A (ko
Inventor
요시하루 이토
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20190113614A publication Critical patent/KR20190113614A/ko
Application granted granted Critical
Publication of KR102402373B1 publication Critical patent/KR102402373B1/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
    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • 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
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Landscapes

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

Abstract

복수의 모듈을 순차 기동하는 정보 처리 장치는, 제1 모듈, 제2 모듈, 및 제3 모듈을 포함한다. 제1 모듈은 검증된 제2 모듈을 기동하고, 제2 모듈은 검증된 제3 모듈을 기동한다. 제1 모듈은 제2 모듈 및 제3 모듈 양자를 검증하기 위해 사용되는 검증 정보를 포함하고, 검증 정보를 사용하여 제2 모듈을 검증하고 검증 정보를 사용하여 제3 모듈을 검증한다.

Description

정보 처리 장치 및 정보 처리 방법{INFORMATION PROCESSING APPARATUS, AND INFORMATION PROCESSING METHOD}
본 발명은 정보 처리 장치 및 정보 처리 방법에 관한 것이다.
컴퓨터 시스템에서의 소프트웨어의 취약성들을 활용하여 소프트웨어를 변경하고, 악의적인 의도로 컴퓨터를 이용하는 컴퓨터 공격들이 문제가 되어 왔다. 이러한 공격들에 대한 대책으로서, 프로그램에는 서명이 주어지고 보존되고, 프로그램이 기동하는 때마다 프로그램의 서명을 검증하여 변경의 유 또는 무를 검출하는 방법이 고려된다.
미국 특허 공개 제2014/0089651호는, 프로그램들을 부분적으로 교환가능하게 하기 위해서 프로그램들을 모듈화하고, 각 모듈들 내에 서명 검증 처리 및 키 정보를 임베딩하는 것에 의해 검증에 필요한 키 정보 및 서명 정보 처리를 저장하는 방법을 제안한다.
그러나, 전술한 종래 기술은 이하의 과제를 갖는다. 예를 들어, 전술한 종래 기술에서는, 각 모듈들의 서명들에 동일한 알고리즘이나 동일한 키 정보가 사용되는 경우, 동일한 서명 검증 처리나 동일한 키 정보가 모듈들에서 중복으로 저장된다. 따라서, 메모리 자원들 등의 이용 효율이 낮고, 사이즈나 비용을 축소한 디바이스에서는, 귀중한 메모리 자원들이 현재 유효하게 이용되지 않고 있다.
본 발명은 메모리 자원들을 유효하게 이용하면서, 기동 시에 시스템의 변경을 검출하는 메커니즘의 실현을 가능하게 한다.
본 발명의 일 양태는 복수의 모듈을 순차 기동하는 정보 처리 장치를 제공하며, 이 장치는: 제1 모듈; 제2 모듈; 및 제3 모듈을 포함하고, 제1 모듈은 검증된 제2 모듈을 기동하고, 제2 모듈은 검증된 제3 모듈을 기동하고, 제1 모듈은, 제2 모듈 및 제3 모듈 양자를 검증하기 위해 사용되는 검증 정보를 포함하고, 검증 정보를 사용하여 제2 모듈을 검증하고 검증 정보를 사용하여 제3 모듈을 검증한다.
본 발명의 다른 양태는 정보 처리 방법을 제공하며, 이 방법은: 제1 모듈을 기동하는 단계; 제1 모듈에 의해, 제2 모듈을 검증하는 단계; 제1 모듈에 의해 검증된 제2 모듈을 제1 모듈에 의해 기동하는 단계; 제1 모듈에 의해, 제3 모듈을 검증하는 단계; 제1 모듈에 의해 검증된 제3 모듈을 제1 모듈에 의해 기동하는 단계를 포함하고; 제2 모듈을 검증하는 단계 및 제3 모듈을 검증하는 단계는 제1 모듈에 포함된 동일한 검증 정보를 사용하여 제1 모듈에 의해 수행된다.
본 발명의 추가적인 특징들은 첨부 도면을 참조하여 이하의 예시적인 실시예들의 설명으로부터 명백해질 것이다.
도 1은, 실시예에 따른 복합기의 하드웨어 구성을 도시하는 도면이다.
도 2a 및 도 2b는, 실시예에 따른 복합기의 소프트웨어 구성을 각각 도시하는 도면들이다.
도 3a 내지 도 3d는, 실시예에 따른 기동 시에 수행되는 동작들을 각각 도시하는 개략도들이다.
도 4는, 실시예에 따른 처리 수순을 나타내는 흐름도이다.
도 5a 및 도 5b는, 실시예에 따른 처리 수순을 나타내는 흐름도이다.
본 발명의 바람직한 실시예들이 이제 도면을 참조하여 상세히 설명될 것이다. 이들 실시형태에서 설명되는 컴포넌트들의 상대 배치, 수치 표현들 및 수치값들은 구체적으로 달리 설명되지 않는 한 본 발명의 범위를 제한하는 것이 아니라는 것을 유의해야 한다.
실시예에 따른 정보 처리 장치의 예로서 복합기(디지털 복합기/MFP)를 설명한다는 점을 유의한다. 그러나, 본 발명은 복합기뿐만 아니라 정보 처리 장치에 또한 적용가능하다.
제1 실시예
이하에서는, 첨부 도면을 참조하여, 본 발명의 제1 실시예를 설명한다. 이하의 실시예는 특허청구범위에 의해 정의되는 본 발명을 한정하는 것이 아니고, 실시예에서 설명되는 특징들의 조합들 모두가 본 발명에 의해 해결되어야 할 문제들을 해결하기 위해 반드시 필수적인 것은 아니라는 점을 유의한다. 실시예에 따른 정보 처리 장치의 예로서 복합기(디지털 복합기/MFP)를 설명한다. 그러나, 본 발명은 복합기뿐만 아니라 정보 처리 장치에 또한 적용가능하다.
정보 처리 장치의 하드웨어 구성
먼저, 도 1을 참조하여, 본 실시예에 따른 정보 처리 장치인 복합기(100)와 임베디드 컨트롤러(embedded controller)(113)의 하드웨어 구성들을 설명한다. 복합기(100)는, CPU(101), ROM(read-only memory)(102), RAM(random access memory)(103), HDD(hard disk drive)(104), 네트워크 I/F 제어 유닛(105), 스캐너 I/F 제어 유닛(106), 프린터 I/F 제어 유닛(107), 패널 제어 유닛(108), 스캐너(111), 프린터(112), 임베디드 컨트롤러(113), 플래시 메모리(114) 및 LED(117)를 포함한다. 임베디드 컨트롤러(113)는, CPU(115) 및 RAM(116)을 포함한다.
CPU(101)는, 복합기(100)의 소프트웨어 프로그램들을 실행하는 것에 의해, 장치 전체를 통괄적으로 제어한다. ROM(102)은 리드 온리 메모리이며, 복합기(100)의 BIOS(basic input/output system), 고정 파라미터들 등을 저장한다. RAM(103)은 랜덤 액세스 메모리이며, 예를 들어, CPU(101)가 복합기(100)를 제어할 때 프로그램들 및 일시적인 데이터를 저장하기 위해 사용된다. HDD(104)는 하드디스크 드라이브이며, 일부의 애플리케이션 및 각종 데이터를 저장한다. 플래시 메모리(114)는, 로더, 커널, 및 애플리케이션 등의 각종 모듈들을 저장한다.
임베디드 컨트롤러(113)의 CPU(115)는, 임베디드 컨트롤러(113)의 소프트웨어 프로그램들을 실행하는 것에 의해, 복합기(100)의 일부를 제어한다. RAM(116)은 랜덤 액세스 메모리이며, 예를 들어, CPU(115)가 복합기(100)를 제어할 때 프로그램들 및 일시적인 데이터를 저장하기 위해 사용된다. 복합기(100)는, 임베디드 컨트롤러(113)와 대조적으로 시스템을 통괄적으로 제어하는 메인 컨트롤러를 포함한다. 메인 컨트롤러는, 적어도 CPU(101), ROM(102) 및 RAM(103)을 포함한다.
네트워크 I/F 제어 유닛(105)은, 네트워크(118)로의 데이터 송신 및 네트워크(118)로부터의 데이터 수신을 제어한다. 스캐너 I/F 제어 유닛(106)은, 스캐너(111)에 의해 수행되는 원고 판독을 제어한다. 프린터 I/F 제어 유닛(107)은, 프린터(112)에 의해 수행되는 인쇄 처리 등을 제어한다. 패널 제어 유닛(108)은, 터치 패널식의 조작 패널(110)을 제어하여 다양한 정보 피스들의 표시, 사용자에 의해 행해지는 지시들의 입력을 제어한다. 버스(109)는, CPU(101), ROM(102), RAM(103), HDD(104), 네트워크 I/F 제어 유닛(105), 스캐너 I/F 제어 유닛(106) 및 프린터 I/F 제어 유닛(107)을 서로 접속시킨다. 버스(109)는, 패널 제어 유닛(108), 임베디드 컨트롤러(113) 및 플래시 메모리(114)를 또한 서로 접속시킨다. 버스(109)를 통해, CPU(101)로부터의 제어 신호들 및 각 디바이스들로부터의 데이터 신호들이 송신된다. LED(117)는 필요에 따라서 턴온되어, 소프트웨어나 하드웨어의 이상을 외부에 보고한다.
정보 처리 장치의 소프트웨어 구성
이어서, 도 2a를 참조하여, 본 실시예에 따른 복합기(100)에 포함되는 소프트웨어 모듈을 설명할 것이다. 복합기(100)는, 소프트웨어 모듈로서, 임베디드 컨트롤러(113) 내에 부트 프로그램(부트 프로그램 모듈)(209)을 포함한다. 또한, 복합기(100)는, BIOS(210), 로더(211), 커널(212), 네이티브(Native) 프로그램(213), 자바(Java)(등록 상표) 프로그램(214), UI 제어 유닛(203) 및 통신 관리 유닛(207)을 포함한다.
통신 관리 유닛(207)은, 네트워크(118)에 접속되는 네트워크 I/F 제어 유닛(105)을 제어하는 것에 의해, 네트워크(118)를 통해 외부로 데이터를 송신하고 외부로부터 데이터를 수신한다. UI 제어 유닛(203)은, 패널 제어 유닛(108)을 통해 조작 패널(110) 상에 행해진 입력을 수신하고, 입력에 따른 처리를 수행하고 조작 패널(110)로 화면을 출력한다.
부트 프로그램(209)은 복합기(100)의 전원이 턴온되는 경우, 임베디드 컨트롤러(113)의 CPU(115)에 의해 실행되는 프로그램이며, 기동에 관련된 처리를 실행하고, BIOS의 변경을 검출하는 BIOS 변경 검출 유닛(201)을 포함한다. BIOS(210)는 부트 프로그램(209)이 실행된 후에 CPU(101)에 의해 실행되는 프로그램이며, 기동에 관련된 처리를 실행하고, 로더(211) 및 커널(212)의 변경을 검출하는 로더/커널 변경 검출 유닛(202)을 포함한다.
로더(211)는 BIOS(210)의 처리가 완료된 후에 CPU(101)에 의해 실행되는 프로그램이며, 기동에 관련된 처리를 실행한다. 커널(212)은 로더(211)의 처리가 완료된 후에 CPU(101)에 의해 실행되는 프로그램이며, 기동에 관련된 처리를 실행하고, 네이티브 프로그램(213)의 변경을 검출하는 프로그램 변경 검출 유닛(205)을 포함한다.
네이티브 프로그램(213)은 CPU(101)에 의해 실행되고, 복합기(100)의 자바 프로그램(214)과 협력하여 기능들을 제공하는 복수의 프로그램이다. 예를 들어, 네이티브 프로그램(213)은 스캐너 I/F 제어 유닛(106) 및 프린터 I/F 제어 유닛(107)을 제어하는 프로그램들 및 기동 프로그램을 포함한다. 커널(212)에 의해 네이티브 프로그램의 프로그램들 중에서 기동 프로그램이 호출되고, 기동 처리를 실행한다. 네이티브 프로그램(213)은 또한 프로그램들 중 하나로서, 자바 프로그램의 변경을 검출하는 자바 프로그램 변경 검출 유닛(206)을 포함한다.
자바 프로그램(214)은 CPU(101)에 의해 실행되고, 복합기(100)의 네이티브 프로그램(213)과 협력하여 기능들을 제공하는 프로그램이다. 프로그램의 예들은, 조작 패널(110) 상에 화면을 표시하는 프로그램을 포함한다.
기동 수순
이하에서는, 도 3a 및 도 3b를 참조하여, 복합기(100)의 기동 수순에 대해서 설명한다. 도 3a는 변경 검출이 수행되지 않고서 복합기(100)가 기동되는 순서를 나타낸다. 부트 프로그램(209)이 BIOS(210)를 기동하고, BIOS(210)가 로더(211)를 기동하고, 로더(211)가 커널(212)을 기동하고, 커널(212)이 네이티브 프로그램(213)의 프로그램들 중에서 기동 프로그램을 기동한다. 기동 프로그램에서 자바 프로그램(214)이 기동되고, 이후에 네이티브 프로그램(213)과 자바 프로그램(214)이 협력하여 복합기(100)의 기능들을 제공한다. 전술한 바와 같이, 모듈들의 기동은 미리 결정된 순서로 모듈들을 기동하도록 제어되고, 선행하는 모듈의 기동이 완료하면, 다음 모듈의 기동 처리가 실행된다.
도 3b는 변경 검출이 수행되면서 복합기(100)가 기동되는 순서를 나타낸다. 도시한 바와 같이, 부트 프로그램(209), BIOS(210), 로더(211), 커널(212), 네이티브 프로그램(213), 및 자바 프로그램(214)은 이 순서대로 변경 검출이 수행되면서 기동된다. 기동되는 모듈의 변경은, 기동되는 모듈 직전에 기동되었던 모듈에 의해 검출된다. 예를 들어, BIOS(210)의 변경은 부트 프로그램(209)에 의해 검출된다. 도 3b는 또한 프로그램들, 디지털 서명들(이하, 서명들로서 지칭함), 및 서명들을 검증하기 위한 공개 키들(검증 정보)이 보존되는 장소들을 나타낸다. 도 3b에 도시하는 바와 같이, 모듈들은 그 자신의 서명들을 각각 보존한다. 한편, 미리 결정된 모듈들(예를 들어, 제1 모듈)은 공개 키들을 보존하지만, 일부 모듈들은 공개 키들을 보존하지 않는다. 이는, 본 실시예에서, 복수의 모듈에 대해 동일한 공개 키는 미리 결정된 모듈에 보존되고, 복수의 모듈의 변경은 미리 결정된 모듈에 의해 연속적으로 검출되기 때문이다. 그 결과, 메모리 자원들을 유효하게 이용할 수 있다.
이하 설명에서는, ROM(102)에 부트 프로그램(209)과 BIOS(210)가 보존되고, 플래시 메모리(114)에 로더(211), 커널(212) 및 네이티브 프로그램(제1 프로그램)(213)이 보존되는 것으로 가정한다. 또한, HDD(104)에 자바 프로그램(214)(제2 프로그램)이 보존되는 것으로 가정한다.
부트 프로그램(209)에는 BIOS의 서명 검증용의 공개 키(300)가 보존되고, BIOS(210)에는 BIOS 서명(302)과 로더/커널 검증용의 공개 키(303)가 보존된다. 로더(211)에는 로더 서명(304)이 보존된다. 커널(212)에는 커널 서명(306)과 네이티브 프로그램 검증용의 공개 키(307)가 보존되고, 네이티브 프로그램(213)에는 네이티브 프로그램 서명(308)과 자바 프로그램 검증용의 공개 키(309)가 보존된다. 자바 프로그램(214)에는, 자바 프로그램 서명(310)이 보존된다. 이 공개 키들과 서명들은 바람직하게는, 복합기(100)가 공장에서 출하되기 전에 각 프로그램들에 대하여 할당된다. 본 실시예에 따른 복합기(100)에서는, 다음으로 기동되는 프로그램(모듈)을 검증하고, 문제가 없으면 다음 프로그램을 기동하는 검출 유닛들(201, 202, 205 및 206) 각각에 의해 변경을 검출한다.
처리 수순
이하에서는, 도 4를 참조하여, 본 실시예에 따른 복합기(100)의 기동 시에 수행되는 처리 수순을 설명한다. 복합기(100)의 전원이 턴온되는 경우, ROM(102)로부터 RAM(116)으로 부트 프로그램(209)이 판독되고, CPU(115)에 의해 실행된다.
단계 S401에서, 부트 프로그램(209)에 포함되는 BIOS 변경 검출 유닛(201)은, BIOS 서명을 검증하고, 검증이 성공했는지 여부를 판정한다. 구체적으로는, BIOS 변경 검출 유닛(201)은, ROM(102)으로부터 BIOS(210), 로더/커널 검증용의 공개 키(303), 및 BIOS 서명(302)을 RAM(116)으로 판독한다. 또한, BIOS 변경 검출 유닛(201)은, BIOS 검증용의 공개 키(300)를 사용하여, BIOS 서명(302)을 검증하고 검증이 성공했는지 여부를 판정한다. 서명의 검증에 실패했을 경우, 루틴은 단계 S403으로 진행하고, BIOS 변경 검출 유닛(201)은, LED(117)를 턴온하고, 처리를 종료한다. 대조적으로, 서명의 검증에 성공한 경우, BIOS 변경 검출 유닛(201)은 CPU(101)에 전력을 제공하고, 부트 프로그램의 처리를 종료한다. 그 후, 본 흐름도에 의해 도시된 루틴은 CPU(101)에 의해 실행되는 단계 S402 및 이후의 처리들로 진행한다.
CPU(101)에 전력이 제공되는 경우, CPU(101)는 단계 S402에서, ROM(102)으로부터 BIOS(210)와 로더/커널 검증용의 공개 키(303)를 RAM(103)으로 판독하고, BIOS(210)를 기동한다. 후술되는 모든 이후의 처리는, CPU(101)에 의해 실행된다.
BIOS(210)가 기동되는 경우, 루틴은 단계 S404로 진행한다. 단계 S404에서, BIOS(210)는, 각종 초기화 처리를 실행하고, BIOS(210)에 포함되는 로더/커널 변경 검출 유닛(202)이 플래시 메모리(114)로부터 로더(211) 및 로더 서명(304)을 RAM(103)으로 판독한다. 또한, 로더/커널 변경 검출 유닛(202)은, 로더/커널 검증용의 공개 키(303)를 사용하여, 로더 서명(304)을 검증하고 검증이 성공했는지 여부를 판정한다. 서명의 검증에 실패했을 경우에는, 루틴은 단계 S412로 진행하고, 여기서 로더/커널 변경 검출 유닛(202)은 조작 패널(110)로 하여금 에러 메시지를 표시하게 하고, 기동을 정지하는 것에 의해 처리를 종료한다. 대조적으로, 서명의 검증에 성공했을 경우에는, 로더/커널 변경 검출 유닛(202)은 플래시 메모리(114)로부터 커널(212), 네이티브 프로그램 검증용의 공개 키(307), 및 커널 서명(306)을 RAM(103)으로 판독하고, 그 후 루틴은 단계 S405로 진행한다.
단계 S405에서, 로더/커널 변경 검출 유닛(202)은, 로더/커널 검증용의 공개 키(303)를 사용하여, 커널 서명(306)을 검증하고 검증이 성공했는지 여부를 판정한다. 서명의 검증에 실패했을 경우에는, 루틴은 단계 S412로 진행하고, 여기서 로더/커널 변경 검출 유닛(202)은 조작 패널(110)로 하여금 에러 메시지를 표시하게 하고, 기동을 정지하는 것에 의해 처리를 종료한다. 대조적으로, 서명의 검증에 성공했을 경우, 로더/커널 변경 검출 유닛(202)은 처리를 종료하고, 루틴은 단계 S406으로 진행한다.
단계 S406에서, BIOS(210)는, RAM(103)으로 판독된 로더(211)를 기동한다. 로더(211)가 기동되는 경우, 로더(211)는 각종 초기화 처리를 실행하고, 플래시 메모리(114)로부터 커널(212), 네이티브 프로그램 검증용의 공개 키(307), 및 커널 서명(306)을 RAM(103)으로 판독한다. 루틴은 단계 S407로 진행하고, 여기서 로더(211)는 RAM(103)으로 판독된 커널(212)을 기동한다.
커널(212)이 기동되는 경우, 루틴은 단계 S408로 진행한다. 단계 S408에서, 커널(212)은, 각종 초기화 처리를 실행한다. 또한, 커널(212)에 포함되는 프로그램 변경 검출 유닛(205)이 플래시 메모리(114)로부터 네이티브 프로그램(213), 자바 프로그램 검증용의 공개 키(308), 및 네이티브 프로그램 서명(309)을 RAM(103)으로 판독한다. 프로그램 변경 검출 유닛(205)은, 단계 S408에서 네이티브 프로그램 검증용의 공개 키(307)를 사용하여, 네이티브 프로그램 서명(309)을 검증하고 검증이 성공했는지 여부를 판정한다. 서명의 검증에 실패했을 경우, 단계 S412에서 프로그램 변경 검출 유닛(205)은 조작 패널(110)로 하여금 에러 메시지를 표시하게 하고, 기동을 정지하는 것에 의해 처리를 종료한다. 대조적으로, 서명의 검증에 성공했을 경우, 프로그램 변경 검출 유닛(205)은 처리를 종료하고, 단계 S409에서 네이티브 프로그램(213)이 기동된다.
네이티브 프로그램(213)의 프로그램들 중에서, 변경 검출 처리를 실행하는 자바 프로그램 변경 검출 유닛(206)이 기동되는 경우, 루틴은 단계 S410으로 진행한다. 단계 S410에서, 자바 프로그램 변경 검출 유닛(206)은, HDD(104)로부터 자바 프로그램(214)과 자바 프로그램 서명(310)을 RAM(103)으로 판독한다. 자바 프로그램 변경 검출 유닛(206)은 단계 S410에서, 자바 프로그램 검증용의 공개 키(308)를 사용하여, 자바 프로그램 서명(310)을 검증하고 검증이 성공했는지 여부를 판정한다. 서명의 검증에 실패했을 경우에는, 루틴은 단계 S412로 진행하고, 여기서 자바 프로그램 변경 검출 유닛(206)은, 조작 패널(110)로 하여금 에러 메시지를 표시하게 하고, 기동을 정지하는 것에 의해 처리를 종료한다. 서명의 검증에 성공했을 경우, 자바 프로그램 변경 검출 유닛(206)은 처리를 종료하고, 단계 S411에서 네이티브 프로그램(213)은 자바 프로그램(214)을 기동한다.
전술한 바와 같이, 본 실시예에 따른 정보 처리 장치는, 부트 프로그램의 기동에 후속하여 복수의 모듈을 순차 기동한다. 모듈들 각각은, 그 자신의 서명을 메모리 등에 미리 기억하고, 다음으로 기동되는 모듈의 서명 검증이 성공하는 경우, 다음으로 기동되는 모듈을 기동한다. 또한, 복수의 모듈 중 제1 모듈은, 제2 모듈의 서명의 검증에 사용되는 메모리 등에 미리 기억한 검증 정보를 사용하여, 다음으로 기동되는 제2 모듈의 변경을 검출한다. 또한, 제1 모듈은, 전술한 검증 정보를 사용하여, 제2 모듈 후에 기동되는 적어도 하나의 제3 모듈의 변경을 검출한다. 또한, 제2 모듈이 제1 모듈에 의해 기동되는 경우, 제2 모듈은 다음으로 기동되는 제3 모듈을 기동한다. 전술한 바와 같이, 본 실시예에 따르면, 각 모듈에 서명에 관한 정보가 미리 기억되지만, 검증 정보는, 각 모듈에 미리 기억될 필요가 없다. 즉, 미리 결정된 모듈(제1 모듈)이 검증 정보를 기억하고, 검증 정보를 사용하여, 복수의 모듈들 중 일부의 변경을 검출한다. 따라서, 복수의 모듈 모두에 검증 정보가 기억될 필요가 없고, 따라서 메모리 자원들을 유효하게 이용할 수 있다. 또한, 본 실시예에 따르면, 보다 견고한, 시스템의 변경을 검출하는 메커니즘을 제공할 수 있다.
제2 실시예
이하에서는, 본 발명의 제2 실시예에 대해서 설명한다. 도 3c에 도시하는 바와 같이, 일부 경우들에서, 복합기(100)에 의해 복수의 커널 및 복수의 프로그램이 유지되고, 로더에 의해 기동되는 커널 및 프로그램이 전환된다. 이러한 경우, 전술한 제1 실시예의 구성에 따르면, 커널(212) 이외의 커널 B(220)가 기동되는 경우, 커널 B(220)에 대한 서명이 존재하지 않고, 변경이 실제로 행해지지 않음에도 불구하고 변경이 검출되기 때문에, 커널 B(220)가 기동될 수 없다는 문제가 있다. 따라서, 본 실시예에서는 상이한 커널들, 및 상이한 프로그램들이 유지되는 구성에서 변경 검출이 수행되면서 기동을 수행하는 방법에 대해서 설명할 것이다.
소프트웨어 구성
먼저, 도 2b를 참조하여, 본 실시예에 따른 복합기(100)에 포함되는 소프트웨어 모듈들의 예시적인 구성을 설명할 것이다. 컴포넌트들(201 내지 214)은 도 2a에 도시된 것들과 동등하기 때문에, 그 설명을 생략한다.
로더(223)는 BIOS(210)의 처리가 완료된 후에 CPU(101)에 의해 실행되는 프로그램이며, 기동에 관련된 처리를 실행하고, 조작 패널(110) 상에 행해진 사용자 입력에 따라 기동되는 커널을 전환한다.
커널 B(220)는, CPU(101)에 의해 실행되는 커널(212)과는 상이한 프로그램이며, 기동에 관련된 처리를 실행하고, 네이티브 프로그램 B(222)의 변경을 검출하는 프로그램 변경 검출 유닛 B(221)를 포함한다. 네이티브 프로그램 B(222)는, CPU(101)에 의해 실행되는 프로그램이며, 복합기(100)의 업데이트 기능을 제공한다. 네이티브 프로그램 B(222)는 커널 B(220)에 의해 호출되고, 커널(212), 네이티브 프로그램(213), 및 자바 프로그램(214)을 업데이트하는 기능을 제공한다. 네이티브 프로그램 B(222)는 업데이트 기능을 제공하는 프로그램에 한정되지 않고, 다른 기능을 제공하는 프로그램일 수 있다는 점을 유의한다.
기동 수순
이하에서는 도 3d를 참조하여, 커널(212)와 커널 B(220) 중 어느 것이 로더(223)에 의해 기동되는지에 따라 변경 검출의 대상이 전환되는 기동 처리의 흐름을 설명한다.
로더(223)는, 로더(223)의 서명(304)을 포함하는 것으로 가정한다. 커널 B(220)는, 커널 B 서명(341) 및 네이티브 프로그램 B 검증용의 공개 키(342)를 포함하고, 네이티브 프로그램 B(222)는 네이티브 프로그램 B 서명(343)을 포함한다. 공개 키 및 서명들은 바람직하게는, 복합기(100)가 공장에서 출하되기 전에 각 프로그램들에 대하여 할당된다. 전술한 바와 같이, BIOS(210)는, 다음으로 기동될 수 있는 복수의 커널 각각에 대한 공개 키(검증 정보)를 포함한다.
처리 수순
이하에서는, 도 5a 및 도 5b를 참조하여, 본 실시예에 따른 복합기(100)를 기동할 때 수행되는 처리 수순을 설명한다. 복합기(100)의 전원이 턴온되는 경우, ROM(102)로부터 RAM(116)으로 부트 프로그램(209)이 판독되고, CPU(115)에 의해 실행된다. 단계 S401 내지 단계 S405의 처리는 도 4에 도시된 처리와 동등하기 때문에, 그 설명을 생략한다.
단계 S405에 이어지는 단계 S600에서, 로더/커널 변경 검출 유닛(202)은, 로더/커널 검증용의 공개 키(303)를 사용하여, 커널 B 서명(341)을 검증하고 검증이 성공했는지 여부를 판정한다. 서명의 검증에 실패했을 경우, 루틴은 단계 S412로 진행한다. 서명의 검증에 성공했을 경우, 로더/커널 변경 검출 유닛(202)은 처리를 종료하고, 단계 S406에서, BIOS(210)가 RAM(103)으로 판독된 로더(223)를 기동한다.
단계 S406에서 로더(223)가 기동되는 경우, 로더(223)는, 각종 초기화 처리를 실행한다. 후속하여, 단계 S601에서, 로더(223)는, 조작 패널(110) 상에 행해진 사용자 입력에 기초하여, 커널(212)이 기동 대상으로서 선택되는지 여부를 판정한다. 커널(212)이 기동 대상으서 선택된 경우에는, 루틴은 단계 S407에서의 처리로 진행한다. 이후의 단계 S407 내지 단계 S412의 처리는 도 4에 도시된 처리와 동등하기 때문에, 그 설명을 생략한다. 대조적으로, 커널 B(220)가 선택되면, 루틴은 단계 S602로 진행하고, 여기서 로더(223)는, RAM(103)으로 판독된 커널 B(220)를 기동한다.
커널 B(220)가 기동되는 경우, 커널 B(220)는 각종 초기화 처리를 실행하고, 커널 B(220)에 포함되는 프로그램 변경 검출 유닛 B(221)가 플래시 메모리(114)로부터 네이티브 프로그램 B(222)와 네이티브 프로그램 B 서명(343)을 RAM(103)으로 판독한다. 후속하여, 단계 S603에서, 프로그램 변경 검출 유닛 B(221)는, 네이티브 프로그램 B 검증용의 공개 키(342)를 사용하여, 네이티브 프로그램 B 서명(343)을 검증하고 검증이 성공했는지 여부를 판정한다. 서명의 검증에 실패했을 경우, 루틴은 단계 S412의 처리로 진행한다. 대조적으로, 서명의 검증에 성공했을 경우, 프로그램 변경 검출 유닛 B(221)는 처리를 종료하고, 단계 S604에서, 커널 B(220)는 네이티브 프로그램 B(222)를 기동한다. 네이티브 프로그램 B(222)가 기동되는 경우, 네이티브 프로그램 B(222)는 업데이트 기능을 사용자에게 제공한다.
전술한 바와 같이, 본 실시예에 따르면, 복수의 커널 및 복수의 프로그램이 유지되는 구성이어도, 커널들 및 프로그램들의 변경을 검출하고 커널들 및 프로그램들을 기동할 수 있고, 제1 실시예에서 달성되는 효과들과 동등한 효과들이 달성될 수 있다.
변형 예들
본 발명은 전술한 실시예들에 한정되지 않고 여러가지 변형이 행해질 수 있다. 전술한 제1 및 제2 실시예들에서의 공개 키들이 상이한 공개 키들을 포함하지만, 공개 키들 중 일부는 서로 동일할 수 있다. 프로그램들이 보존되는 장소들로서 ROM(102), 플래시 메모리(114), 및 HDD(104)가 설명되지만, 이 장소들이 한정되는 것이 아니고, 다른 기억 매체를 포함할 수 있다. 또한, 프로그램들이 전술한 각 장소들에 보존되지 않을 수 있고, 예를 들어 ROM(102) 상에 로더(223)가 기억될 수 있다.
다른 실시예들
본 발명의 실시예(들)는 전술된 실시예(들)의 하나 이상의 기능을 수행하기 위해 ('비일시적 컴퓨터 판독가능 저장 매체'로서 보다 완전히 지칭될 수도 있는) 저장 매체 상에 기록된 컴퓨터 실행가능한 명령어들(예를 들면, 하나 이상의 프로그램)을 판독하고 실행시키고/실행시키거나, 전술된 실시예(들)의 하나 이상의 기능을 수행하기 위한 하나 이상의 회로(예를 들면, ASIC(application specific integrated circuit))를 포함하는 장치 또는 시스템의 컴퓨터에 의해, 그리고 예를 들면, 전술된 실시예(들)의 하나 이상의 기능을 수행하기 위해 저장 매체로부터 컴퓨터 실행가능한 명령어들을 판독하고 실행시키고/실행시키거나, 전술된 실시예(들)의 하나 이상의 기능을 수행하기 위해 하나 이상의 회로를 제어함으로써, 장치 또는 시스템의 컴퓨터에 의해 수행되는 방법에 의해서도 실현될 수 있다. 컴퓨터는 하나 이상의 프로세서(예를 들어, 중앙 처리 유닛(CPU), 마이크로 처리 유닛(MPU))를 포함할 수 있고 컴퓨터 실행가능 명령어들을 판독 및 실행하기 위한 별도의 컴퓨터 또는 별도의 프로세서의 네트워크를 포함할 수 있다. 컴퓨터 실행가능 명령어들은 예를 들어 네트워크 또는 저장 매체로부터 컴퓨터에 제공될 수 있다. 저장 매체는, 예를 들어 하드 디스크, 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 분산형 컴퓨팅 시스템의 스토리지, 광 디스크(예를 들어, 콤팩트 디스크(CD), 디지털 다기능 디스크(DVD) 또는 블루레이 디스크(BD)TM), 플래시 메모리 디바이스, 메모리 카드 등 중 하나 이상을 포함할 수 있다.
(기타의 실시예)
본 발명은, 상기의 실시형태의 1개 이상의 기능을 실현하는 프로그램을, 네트워크 또는 기억 매체를 개입하여 시스템 혹은 장치에 공급하고, 그 시스템 혹은 장치의 컴퓨터에 있어서 1개 이상의 프로세서가 프로그램을 읽어 실행하는 처리에서도 실현가능하다.
또한, 1개 이상의 기능을 실현하는 회로(예를 들어, ASIC)에 의해서도 실행가능하다.
본 발명을 예시적인 실시예들을 참조하여 설명하였지만, 본 발명은 개시된 예시적인 실시예들로 제한되지 않는다는 것을 이해할 것이다. 이하의 청구 범위의 범주는 이러한 수정들 및 동등한 구조들 및 기능들 모두를 포함하도록 최광의로 해석되어야 한다.

Claims (11)

  1. 복수의 모듈을 순차 기동하는 정보 처리 장치이며,
    제1 모듈;
    제2 모듈; 및
    제3 모듈을 포함하고,
    상기 제1 모듈은 검증된 상기 제2 모듈을 기동하고, 상기 제2 모듈은 검증된 상기 제3 모듈을 기동하고,
    상기 제1 모듈은, 상기 제2 모듈 및 상기 제3 모듈 양자를 검증하기 위해 사용되는 검증 정보를 포함하고, 상기 검증 정보를 사용하여 상기 제2 모듈을 검증하고 상기 검증 정보를 사용하여 상기 제3 모듈을 검증하고,
    상기 제1 내지 제3 모듈은 소프트웨어 모듈인, 정보 처리 장치.
  2. 제1항에 있어서,
    상기 제2 모듈은 상기 제2 모듈의 서명을 포함하고, 상기 제3 모듈은 상기 제3 모듈의 서명을 포함하고,
    상기 제1 모듈은, 상기 제2 모듈에 포함된 상기 서명 및 상기 제1 모듈에 포함된 상기 검증 정보를 사용하여 상기 제2 모듈을 검증하고, 상기 제3 모듈에 포함된 상기 서명 및 상기 제1 모듈에 포함된 상기 검증 정보를 사용하여 상기 제3 모듈을 검증하는, 정보 처리 장치.
  3. 제1항에 있어서,
    상기 제1 모듈, 상기 제2 모듈, 및 상기 제3 모듈의 각각의 모듈은,
    상기 모듈의 서명을 미리 기억하는 기억 유닛; 및
    다음으로 기동되는 모듈의 서명 검증이 성공하는 경우, 상기 다음으로 기동되는 모듈을 기동하는 기동 유닛을 포함하고,
    상기 제1 모듈은 상기 제1 모듈의 상기 기억 유닛에 포함된 상기 검증 정보를 사용하는 상기 제2 모듈의 검증에 기초하여 상기 제2 모듈의 변경을 검출할 수 있고, 상기 제1 모듈은 상기 제1 모듈의 상기 기억 유닛에 포함된 상기 검증 정보를 사용하는 상기 제3 모듈의 검증에 기초하여 상기 제3 모듈의 변경을 검출할 수 있는, 정보 처리 장치.
  4. 제3항에 있어서,
    부트 프로그램 모듈을 추가로 포함하며,
    상기 부트 프로그램 모듈은,
    상기 제1 모듈의 서명의 검증에 사용되는 검증 정보를 기억하는 유닛;
    상기 제1 모듈의 상기 서명의 검증에 사용되는 상기 검증 정보를 사용하여, 상기 제1 모듈의 변경을 검출하는 유닛; 및
    상기 제1 모듈의 상기 서명의 검증이 성공한 경우에, 상기 제1 모듈을 기동하는 유닛을 포함하는, 정보 처리 장치.
  5. 제3항에 있어서,
    상기 제3 모듈은, 상기 제3 모듈의 상기 기억 유닛에 기억된 검증 정보 및 상기 제3 모듈 다음으로 기동되는 모듈의 서명 양자를 사용하여 상기 제3 모듈 다음으로 기동되는 상기 모듈을 검증하는, 정보 처리 장치.
  6. 제3항에 있어서,
    상기 제2 모듈은, 상기 제1 모듈이 상기 제1 모듈의 상기 기억 유닛에 포함된 상기 검증 정보를 사용하는 상기 제3 모듈의 검증에 기초하여 상기 제3 모듈의 변경을 검출했을 경우, 상기 제3 모듈을 기동하지 않는, 정보 처리 장치.
  7. 제1항에 있어서,
    상기 제1 모듈은, BIOS(Basic Input/Output System)이고, 상기 제2 모듈은 로더이고, 상기 제3 모듈은 커널인, 정보 처리 장치.
  8. 제7항에 있어서,
    상기 BIOS는 ROM(read-only memory)에 보존되고, 상기 로더 및 상기 커널은 플래시 메모리에 보존되는, 정보 처리 장치.
  9. 제7항에 있어서,
    상기 제2 모듈은 사용자 입력에 따라 기동되는 커널을 전환하고 상기 커널을 기동하며,
    상기 제1 모듈은 상기 사용자 입력에 따라 기동될 수 있는 복수의 커널 각각의 변경을 검증하는, 정보 처리 장치.
  10. 제1항에 있어서,
    상기 제1 내지 제3 모듈 각각을 제어하는 메인 컨트롤러; 및
    상기 메인 컨트롤러 이외의 임베디드 컨트롤러- 상기 임베디드 컨트롤러는 프로세서 및 메모리를 포함하고 상기 제1 모듈의 기동을 제어함 -를 추가로 포함하는, 정보 처리 장치.
  11. 정보 처리 방법이며,
    제1 모듈을 기동하는 단계;
    상기 제1 모듈에 의해, 제2 모듈을 검증하는 단계;
    상기 제1 모듈에 의해 검증된 상기 제2 모듈을 상기 제1 모듈에 의해 기동하는 단계;
    상기 제1 모듈에 의해, 제3 모듈을 검증하는 단계;
    상기 제1 모듈에 의해 검증된 상기 제3 모듈을 상기 제1 모듈에 의해 기동하는 단계를 포함하고;
    상기 제2 모듈을 검증하는 단계 및 상기 제3 모듈을 검증하는 단계는 상기 제1 모듈에 포함된 동일한 검증 정보를 사용하여 상기 제1 모듈에 의해 수행되고,
    상기 제1 내지 제3 모듈은 소프트웨어 모듈인, 정보 처리 방법.
KR1020190034017A 2018-03-27 2019-03-26 정보 처리 장치 및 정보 처리 방법 KR102402373B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2018-060737 2018-03-27
JP2018060737A JP6706278B2 (ja) 2018-03-27 2018-03-27 情報処理装置、及び情報処理方法

Publications (2)

Publication Number Publication Date
KR20190113614A KR20190113614A (ko) 2019-10-08
KR102402373B1 true KR102402373B1 (ko) 2022-05-27

Family

ID=65903951

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190034017A KR102402373B1 (ko) 2018-03-27 2019-03-26 정보 처리 장치 및 정보 처리 방법

Country Status (4)

Country Link
US (1) US11748482B2 (ko)
EP (1) EP3547194B1 (ko)
JP (1) JP6706278B2 (ko)
KR (1) KR102402373B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7330681B2 (ja) 2018-10-04 2023-08-22 キヤノン株式会社 情報処理装置、その制御方法、プログラム、及び画像形成装置

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08339295A (ja) * 1995-06-14 1996-12-24 Canon Inc オペレーティング・システム起動方法及びオペレーティング・システム起動装置
US5852720A (en) * 1996-08-16 1998-12-22 Compaq Computer Corp. System for storing display data during first time period prior to failure of computer and during second time period after reset of the computer
US5857074A (en) * 1996-08-16 1999-01-05 Compaq Computer Corp. Server controller responsive to various communication protocols for allowing remote communication to a host computer connected thereto
US6233634B1 (en) * 1996-08-17 2001-05-15 Compaq Computer Corporation Server controller configured to snoop and receive a duplicative copy of display data presented to a video controller
JP2005148934A (ja) * 2003-11-12 2005-06-09 Ricoh Co Ltd 情報処理装置、プログラム起動方法、プログラム起動プログラム及び記録媒体
US20060236122A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Secure boot
US7962738B2 (en) * 2007-12-20 2011-06-14 Intel Corporation Hypervisor runtime integrity support
US8468366B2 (en) * 2008-03-24 2013-06-18 Qualcomm Incorporated Method for securely storing a programmable identifier in a communication station
JP5346608B2 (ja) * 2009-02-06 2013-11-20 Kddi株式会社 情報処理装置およびファイル検証システム
KR101622447B1 (ko) * 2010-11-05 2016-05-31 인터디지탈 패튼 홀딩스, 인크 장치 유효성 확인, 재난 표시, 및 복원
EP2503459B1 (en) * 2011-03-23 2021-01-20 Volvo Car Corporation Complete and compatible function
EP2702480A4 (en) * 2011-04-29 2015-01-07 Hewlett Packard Development Co INTEGRATED CONTROLLER FOR CRTM VERIFICATION
US9251347B2 (en) * 2012-03-30 2016-02-02 Intel Corporation Providing an immutable antivirus payload for internet ready compute nodes
JP5932511B2 (ja) * 2012-06-19 2016-06-08 キヤノン株式会社 情報処理装置、ソフトウェアの更新方法及びコンピュータプログラム
US9141802B2 (en) 2012-09-25 2015-09-22 Intel Corporation Computing device boot software authentication
TWI564747B (zh) * 2012-10-19 2017-01-01 威盛電子股份有限公司 電子裝置與安全開機方法
WO2014127536A1 (en) * 2013-02-25 2014-08-28 Intel Corporation Method, apparatus, system, and machine readable storage medium for providing software security
US9075995B2 (en) * 2013-03-11 2015-07-07 Microsoft Technology Licensing, Llc Dynamically loaded measured environment for secure code launch
JP2015022521A (ja) * 2013-07-19 2015-02-02 スパンション エルエルシー セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム
US9129113B2 (en) * 2013-11-13 2015-09-08 Via Technologies, Inc. Partition-based apparatus and method for securing bios in a trusted computing system during execution
US8756417B1 (en) * 2014-02-04 2014-06-17 Sypris Electronics, Llc Multi-level assurance trusted computing platform
US9325506B2 (en) * 2014-09-23 2016-04-26 Red Hat, Inc. Cryptographically enforcing strict separation of environments
KR102324336B1 (ko) * 2015-03-20 2021-11-11 한국전자통신연구원 사용자 장치 및 그것에 대한 무결성 검증 방법
DE112015007220T5 (de) * 2015-12-24 2018-09-20 Intel Corporation Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit
CN106934289A (zh) * 2015-12-30 2017-07-07 北京展讯高科通信技术有限公司 校验及形成签名映像的方法
JP6631303B2 (ja) * 2016-02-16 2020-01-15 富士通株式会社 認証方法、認証プログラム及び情報処理装置
JP6675227B2 (ja) * 2016-02-26 2020-04-01 キヤノン株式会社 情報処理装置、情報処理システム、情報処理方法、及びプログラム
SG10201602449PA (en) * 2016-03-29 2017-10-30 Huawei Int Pte Ltd System and method for verifying integrity of an electronic device
US10592669B2 (en) * 2016-06-23 2020-03-17 Vmware, Inc. Secure booting of computer system
US20170372073A1 (en) * 2016-06-23 2017-12-28 Vmware, Inc. Secure booting of computer system
US10242196B2 (en) * 2016-07-29 2019-03-26 Vmware, Inc. Secure booting of computer system
JP6942601B2 (ja) * 2017-10-18 2021-09-29 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
EP4010833A1 (en) * 2019-12-18 2022-06-15 Google LLC Machine learning based privacy processing
JP2021140601A (ja) * 2020-03-06 2021-09-16 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
US11768611B2 (en) * 2020-04-02 2023-09-26 Axiado Corporation Secure boot of a processing chip
EP3916600A1 (en) * 2020-05-27 2021-12-01 Mettler-Toledo (Albstadt) GmbH Method for operating an electronic data processing system and electronic data processing system

Also Published As

Publication number Publication date
KR20190113614A (ko) 2019-10-08
JP6706278B2 (ja) 2020-06-03
US20190303580A1 (en) 2019-10-03
EP3547194A1 (en) 2019-10-02
US11748482B2 (en) 2023-09-05
JP2019175000A (ja) 2019-10-10
EP3547194B1 (en) 2023-09-06

Similar Documents

Publication Publication Date Title
KR102347703B1 (ko) 정보 처리 장치, 그 제어 방법 및 저장 매체
US10225426B2 (en) Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
KR20140068867A (ko) 부팅 프로세스 동안 구성요소들을 인증하기 위한 시스템 및 방법
US9576132B2 (en) Information processing apparatus and information processing method
US20170039053A1 (en) Field update of boot loader using regular device firmware update procedure
JP2016058006A (ja) 情報処理装置及びプログラム
JP2021117928A (ja) 情報処理装置とその起動方法
KR102402373B1 (ko) 정보 처리 장치 및 정보 처리 방법
JP7374780B2 (ja) 情報処理装置および情報処理装置の制御方法
JP7182966B2 (ja) 情報処理装置、情報処理装置の起動方法、及びプログラム
US11822928B2 (en) Information processing apparatus, method of controlling same, storage medium, and image forming apparatus
JP2021140601A (ja) 情報処理装置、その制御方法、及びプログラム
JP2020052597A (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP2020181540A (ja) 情報処理装置、データ検証方法
US20180121146A1 (en) Information processing apparatus and non-transitory computer readable medium storing program
JP2020154601A (ja) 情報処理装置とその制御方法、及びプログラム
US20220309145A1 (en) Information processing apparatus, verification method of program, computer readable medium and image processing apparatus
JP2021114156A (ja) 情報処理装置、情報処理装置の処理方法およびプログラム
US20230351029A1 (en) Information processing apparatus, control method for the same, and storage medium
JP2021128469A (ja) 情報処理装置と、情報処理装置における起動方法
JP2019128775A (ja) 情報処理装置及びその制御方法、並びにプログラム

Legal Events

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