KR20190043473A - 정보 처리 장치, 그 제어 방법 및 저장 매체 - Google Patents

정보 처리 장치, 그 제어 방법 및 저장 매체 Download PDF

Info

Publication number
KR20190043473A
KR20190043473A KR1020180122927A KR20180122927A KR20190043473A KR 20190043473 A KR20190043473 A KR 20190043473A KR 1020180122927 A KR1020180122927 A KR 1020180122927A KR 20180122927 A KR20180122927 A KR 20180122927A KR 20190043473 A KR20190043473 A KR 20190043473A
Authority
KR
South Korea
Prior art keywords
program
signature
module
verification
kernel
Prior art date
Application number
KR1020180122927A
Other languages
English (en)
Other versions
KR102347703B1 (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 KR20190043473A publication Critical patent/KR20190043473A/ko
Application granted granted Critical
Publication of KR102347703B1 publication Critical patent/KR102347703B1/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/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

본 정보 처리 장치는, 부트 프로그램의 기동 후에 복수의 모듈을 순차 기동한다. 각각의 모듈은, 다음에 기동될 모듈의 서명을 검증하는 검증 정보를 사용하여, 다음에 기동될 모듈의 변경을 검지하고, 서명의 검증이 성공하는 경우에, 다음에 기동될 모듈을 기동한다. 또한, 각각의 모듈은, 검증 정보 및 그 자신의 서명을 미리 보유한다.

Description

정보 처리 장치, 그 제어 방법 및 저장 매체{INFORMATION PROCESSING APPARATUS, METHOD FOR CONTROLLING SAME, AND STORAGE MEDIUM}
본 발명은 정보 처리 장치, 그 제어 방법 및 저장 매체에 관한 것이다.
컴퓨터 시스템에서의 소프트웨어의 취약성에 관하여, 소프트웨어를 변경하고, 컴퓨터를 이용하는 공격이 문제가 되고 있다. 이러한 공격에 대한 대응책으로서, 비특허 문서("About TPM", [online], [2017년 10월 12일자로 검색], Insight International Inc., 인터넷: <http://www.insight-intl.com/jigyou/securitysystem/about_TPM/about_TPM20.html>)에는, TCG(Trusted Computing Group)에 있어서, 컴퓨터 시스템(플랫폼)에서의 컴퓨팅 환경의 보안 강화를 목적으로 한 TPM(Trusted Platform Module)을 제안하고 있다. TPM에서는, BIOS/UEFI, 및 부트 로더의 해시값들은, 그것들이 기동되는 타이밍에서 CRTM(Core Root of Trust for Measurement)으로부터 연속적으로 취득되고, 이들은 잇따라 TPM의 PCR들을 확장하면서 기동된다. 또한, TPM에서는, 기동 완료 후, TPM에서의 PCR 값들과 정답 값들이 일치하는지를 판정함으로써 변경 검지를 행한다. 이러한 보안 기동은 트러스티드 부트(Trusted Boot)(보안 부트(Secure Boot))로서 지칭된다. CRTM이나 TPM은 재기입될 수 없는 구성들이기 때문에, 변경 검지 처리를 실행하는 부분을 변경하여 회피하는 공격은 이론적으로 불가능하다는 점을 유의해야 한다.
그러나, 전술한 종래의 기술에는 이하에 기재된 문제가 있다. 예를 들어, 저비용 디바이스 등의, TPM을 갖지 않은 구성에서는, 트러스티드 부트를 실현할 수 없다. 이러한 구성의 경우, 변경에 대한 검증 처리는, 이 처리를 실행하는 애플리케이션의 기동이 완료한 후에 실행된다. 따라서, 변경이 수행되고 있었다고 해도, 변경을 즉시 검지할 수 없고, BIOS나 OS가 어느 정도 동작한 후에 변경이 검지되기 때문에, 예를 들어, 악의에 의해 변경된 애플리케이션이 동작하는 여지를 준다.
본 발명은 TPM을 갖지 않은 구성에 있어서도, 기동 시에 시스템의 변경을 검지하는 메커니즘의 실현을 가능하게 한다.
본 발명의 일 양태는 내장형 콘트롤러에 의한 부트 프로그램의 기동 후에 복수의 모듈을 순차 기동하도록 동작 가능한 정보 처리 장치를 제공하고, 각각의 모듈은: 다음에 기동될 모듈의 서명을 검증하는 검증 정보를 사용하여, 다음에 기동될 모듈의 변경을 검지하는 검지 유닛, 검지 유닛에 의한 서명의 검증이 성공하는 경우, 다음에 기동될 모듈을 기동하는 기동 유닛을 포함하고, 각각의 모듈은, 검증 정보와 그 자신의 서명을 미리 보유한다.
본 발명의 다른 양태는 내장형 콘트롤러에 의한 부트 프로그램의 기동 후에 복수의 모듈을 순차 기동하도록 동작 가능한 정보 처리 장치를 제어하는 방법을 제공하고,
각각의 모듈은: 다음에 기동될 모듈의 서명을 검증하는 검증 정보를 사용하여, 다음에 기동될 모듈의 변경을 검지하는 단계, 및 서명의 검증이 성공하는 경우, 다음에 기동될 모듈을 기동하는 단계를 포함한다.
본 발명의 또 다른 양태는 내장형 콘트롤러에 의한 부트 프로그램의 기동 후에 복수의 모듈을 순차 기동하도록 동작 가능한 정보 처리 장치를 제어하는 방법의 각 단계를 컴퓨터로 하여금 실행하게 하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능 저장 매체를 제공하고, 각각의 모듈은: 다음에 기동될 모듈의 서명을 검증하는 검증 정보를 사용하여, 다음에 기동될 모듈의 변경을 검지하는 단계, 및 서명의 검증이 성공하는 경우, 다음에 기동될 모듈을 기동하는 단계를 포함한다.
본 발명의 추가의 특징들이 첨부 도면들을 참조하여 예시적인 실시예들에 대한 아래의 설명으로부터 명백할 것이다.
도 1은, 실시예에 따른 복합기의 하드웨어 구성도이다.
도 2a 및 도 2b는, 실시예에 따른 복합기의 소프트웨어 구성도들이다.
도 3a 내지 도 3e는, 실시예에 따른 기동 시의 동작들을 나타내는 패턴 다이어그램들이다.
도 4는, 실시예에 따른 처리 수순을 설명하는 흐름도이다.
도 5는 실시예에 따른 처리 수순을 설명하는 흐름도이다.
도 6은, 실시예에 따른 처리 수순을 설명하는 흐름도이다.
이제 본 발명의 바람직한 실시예를 도면을 참조하여 상세하게 설명한다. 이들 실시예에서 설명되는 구성요소의 상대적인 배치, 수치 표현 및 수치 값은 구체적으로 달리 설명되지 않는 한 본 발명의 범위를 한정하지 않는다는 것을 유의해야 한다.
<제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)는 판독 전용 메모리(read-only memory)이며, 복합기(100)의 BIOS(Basic Input/Output System), 고정 파라미터들 등을 저장한다. RAM(103)은 랜덤 액세스 메모리이며, CPU(101)가 복합기(100)를 제어할 때 예를 들어, 프로그램이나 일시적인 데이터를 저장하는데 사용된다. HDD(104)는 하드디스크 드라이브이며, 일부의 애플리케이션 및 각종 데이터를 저장한다. 플래시 메모리(114)는, 로더(loader), 커널(kernel), 애플리케이션들 등의 각종 모듈들을 저장한다.
내장형 콘트롤러(113)의 CPU(115)는, 내장형 콘트롤러(113)의 소프트웨어 프로그램을 실행하여, 복합기(100)에서의 일부 제어를 행한다. RAM(116)은 랜덤 액세스 메모리이며, CPU(115)가 복합기(100)를 제어할 때 예를 들어, 프로그램이나 일시적인 데이터를 저장하는데 사용된다. 내장형 콘트롤러(113)에 대해, 복합기(100)에는, 시스템을 통괄적으로 제어하는 메인 콘트롤러가 제공된다. 메인 콘트롤러는, 적어도 CPU(101), ROM(102) 및 RAM(103)을 포함하여 구성된다.
네트워크 I/F 제어 유닛(105)은, 네트워크(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), 네이티브 프로그램(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)의 변경을 검지하는 로더 변경 검지 유닛(202)을 포함한다.
로더(211)는 BIOS(210)에 대한 처리가 완료한 후에 CPU(101)에 의해 실행되는 프로그램이며, 기동에 관련한 처리를 실행하는 것 이외에, 커널의 변경을 검지하는 커널 변경 검지 유닛(204)을 갖는다. 커널(212)은 로더(211)에 대한 처리가 완료한 후에 CPU(101)에 의해 실행되는 프로그램이며, 기동에 관련한 처리를 실행하는 것 이외에, 네이티브(native) 프로그램들(213)의 변경을 검지하는 네이티브 변경 검지 유닛(205)을 갖는다.
네이티브 프로그램들(213)은 CPU(101)에 의해 실행되는 프로그램이며, 복합기(100)의 자바(등록 상표) 프로그램(214)과 제휴해서 각종 기능들을 제공하는 복수의 프로그램을 포함한다. 예를 들어, 네이티브 프로그램들(213)은 스캐너 I/F 제어 유닛(106)이나 프린터 I/F 제어 유닛(107)을 제어하는 프로그램이나 부트 프로그램을 포함한다. 커널(212)에 의해 네이티브 프로그램들로부터 부트 프로그램이 호출되고, 기동 처리가 실행된다. 또한, 네이티브 프로그램들(213)은 이러한 프로그램들 중 하나로서 자바 프로그램의 변경을 검지하는 자바 프로그램 변경 검지 유닛을 갖는다.
자바 프로그램(214)은 CPU(101)에 의해 실행되는 프로그램이며, 복합기(100)의 네이티브 프로그램들(213)과 제휴해서 각종 기능들을 제공하는 프로그램이다. 예를 들어, 자바 프로그램(214)은 조작 패널(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는 각 프로그램의 저장 장소들, 디지털 서명들(이하, 서명들로서 지칭됨), 및 서명들을 검증하기 위한 공개 키들(검증 정보)의 저장 장소들을 나타낸다.
이하에서는, ROM(102)에 부트 프로그램(209)과 BIOS(210)가 저장되고, 플래시 메모리(114)에 로더(211), 커널(212), 및 네이티브 프로그램들(제1 프로그램)(213)이 저장되는 것으로 가정한다. 또한, HDD(104)에 자바 프로그램(214)(제2 프로그램)이 저장되는 것으로 가정한다.
부트 프로그램(209)에는 BIOS 서명 검증 공개 키(300)가 저장되고, BIOS(210)에는 BIOS 서명(302)과 로더 검증 공개 키(303)가 저장된다. 로더(211)에는 로더 서명(304)과 커널 검증 공개 키(305)가 저장된다. 또한, 커널(212)에는 커널 서명(306)과 네이티브 프로그램 검증 공개 키(307)가 저장되고, 네이티브 프로그램들(213)에는 네이티브 프로그램 서명(308)과 자바 프로그램 검증 공개 키(309)가 저장된다. 또한, 자바 프로그램(214)에는, 자바 프로그램 서명(310)이 저장된다. 이러한 공개 키들 및 서명들은 미리 복합기(100)의 공장 출하 전에 프로그램들에 할당되는 것이 바람직하다. 본 실시예에 따른 복합기(100)에 있어서는, 참조 번호들 201, 202 및 204 내지 206에 대한 각 검지 유닛들이, 다음에 기동될 각 프로그램(각 모듈)을 검증하고, 문제가 없으면 다음 프로그램을 기동함으로써 변경 검지를 행한다.
<처리 수순>
이어서, 도 4를 참조하면, 본 실시예에 따른 복합기(100)의 기동 시에서의 처리 수순을 설명한다. 복합기(100)에 전원이 입력되면, 부트 프로그램(209)이 ROM(102)로부터 RAM(116)으로 판독되고, CPU(115)에 의해 실행된다.
단계 S401에서, 부트 프로그램(209)에 포함되는 BIOS 변경 검지 유닛(201)은, BIOS의 서명 검증을 행하고, 서명 검증이 성공했는지를 판정한다. 구체적으로는, BIOS 변경 검지 유닛(201)은, 플래시 메모리(114)로부터 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)는 전류가 인가되는 경우, 단계 S402에서, 플래시 메모리(114)로부터 BIOS(210) 및 로더 검증 공개 키(303)를 RAM(103)으로 판독하고, BIOS(210)를 기동한다. 이후 처리는, 모두 CPU(101)에 의해 처리되는 처리로서 설명한다.
BIOS(210)가 기동되는 경우, 처리는 단계 S404로 이행한다. 단계 S404에서, BIOS(210)는, 각종 초기화 처리를 실행하고, BIOS(210)에 포함되는 로더 변경 검지 유닛(202)이 플래시 메모리(114)로부터 로더(211), 커널 검증 공개 키(305), 및 로더 서명(304)을 RAM(103)으로 판독한다. 또한, 로더 변경 검지 유닛(202)은, 로더 검증 공개 키(305)를 사용하여 로더 서명(304)의 검증을 행하고 검증이 성공했는지 판정한다. 서명의 검증이 실패한 경우에는, 처리는 단계 S412로 진행하고, 로더 변경 검지 유닛(202)은, 조작 패널(110)에 에러 메시지를 표시하고, 처리를 종료한다. 한편, 서명의 검증이 성공하는 경우에는, 로더 변경 검지 유닛(204)은 처리를 종료하고, 단계 S405로 진행하고, BIOS(210)가 RAM(103)으로 판독되었던 로더(211)를 기동한다.
로더(211)가 기동되는 경우, 처리는 단계 S406으로 이행한다. 단계 S406에서, 로더(211)는, 각종 초기화 처리를 실행하고, 로더(211)에 포함되는 커널 변경 검지 유닛(204)이 플래시 메모리(114)로부터 커널(212), 네이티브 프로그램 검증 공개 키(307) 및 커널 서명(306)을 RAM(103)으로 판독한다. 또한, 커널 변경 검지 유닛(204)은 단계 S406에서, 커널 검증 공개 키(305)를 사용하여, 커널 서명(306)의 검증을 행하고 검증이 성공했는지 판정한다. 서명의 검증이 실패한 경우에, 처리는 단계 S412로 진행하고, 커널 변경 검지 유닛(204)은 조작 패널(110)에 에러 메시지를 표시하고, 처리를 종료한다. 한편, 서명의 검증이 성공하는 경우, 커널 변경 검지 유닛(204)은 처리를 종료하고, 단계 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)을 기동한다.
이상 설명한 것 같이, 본 실시예에 따른 정보 처리 장치는, 부트 프로그램의 기동 후에 복수의 모듈을 순차 기동한다. 각각의 모듈은, 다음에 기동될 모듈의 서명을 검증하는 검증 정보를 사용하여, 다음에 기동될 모듈의 변경을 검지하고, 서명의 검증이 성공하는 경우, 다음에 기동될 모듈을 기동한다. 또한, 각각의 모듈은, 검증 정보와 그 자신의 서명을 미리 보유하고 있다. 이에 의해, 본 정보 처리 장치는, TPM 구성을 갖지 않고서도, BIOS(210), 로더(211), 커널(212), 네이티브 프로그램(213), 또는 자바 프로그램(214) 중 어느 것이 변경되든 관계없이 변경을 검지할 수 있다. 또한, 각각의 소프트웨어 프로그램이 기동하기 직전에 변경 검지가 수행되고, 변경이 발견된 경우에는 즉시 기동이 정지되기 때문에, 변경된 소프트웨어 프로그램이 순간 동안이라도 동작하지 않고 항상 보안 상태에서만 복합기(100)가 동작하는 것을 보장할 수 있다. 또한, 본 정보 처리 장치는, 다른 양태에 따르면, 보다 견고한, 시스템에서의 변경을 검지하는 메커니즘을 제공할 수 있다.
<제2 실시예>
이하에서는, 본 발명의 제2 실시예에 대해서 설명한다. 전술한 제1 실시예에서는, HDD(104)가 자바 프로그램들을 저장하는 구성이 존재한다. HDD(104)는 데이터 저장에 사용되는 영역이기 때문에, HDD(104)는 판독되거나 기입될 수 있고, 가장 높은 변경될 가능성을 갖는다. 전술한 제1 실시예에 있어서, 변경이 존재하는 경우 복합기(100)의 기동이 정지되기 때문에, 가용성이 저하한다는 문제가 있다. 따라서, 본 실시예에서는 HDD(104)에 저장된 자바 프로그램이 변경되어도 가용성이 저하되지 않는 방법에 대해서 설명한다.
<기동 수순>
이어서, 도 3c를 참조하면, 본 실시예에서의 각 프로그램, 서명, 공개 키의 저장 장소 및 기동 순서를 설명한다. 도 3c에 도시하는 바와 같이, 각각의 모듈의 기동 수순은, 전술한 제1 실시예에서 설명된 도 3b와 유사하다. 그러나, 본 실시예에서는, 전술한 제1 실시예와 상이하게, HDD(104)에 더하여 플래시 메모리(114)에 또한 자바 프로그램이 저장된다. 또한, 자바 프로그램(331)과 함께, 자바 프로그램(214)의 서명(310)과 동일한 서명(330)이 플래시 메모리(114)에 저장된다. 서명(330)은 변경되지 않는 한, 그것은 HDD(104)에 저장된 서명(310)과 동일하다.
<처리 수순>
이어서, 도 5을 참조하면, 본 실시예에 따른 복합기(100)의 기동 시에서의 처리 수순을 설명한다. 단계 S401 내지 단계 S407, 단계 S409, 단계 S410 및 단계 S412는 전술한 제1 실시예의 처리와 유사한 처리를 갖기 때문에 그 설명을 생략한다.
단계 S407에서, 커널(212)이 기동되는 경우, 각종 초기화 처리가 실행되고, 처리는 단계 S501로 진행한다. 또한, 커널(212)에 포함되는 프로그램 변경 검지 유닛(205)은 플래시 메모리(114)로부터 네이티브 프로그램들(213) 및 자바 프로그램(214)을 RAM(103)으로 판독한다. 또한, 프로그램 변경 검지 유닛(205)은, 플래시 메모리(114)로부터 자바 프로그램 검증 공개 키(308), 네이티브 프로그램 서명(309), 및 자바 프로그램(331)의 서명(330)을 RAM(103)으로 판독한다.
후속하여, 단계 S501에서, 프로그램 변경 검지 유닛(205)은, 네이티브 프로그램 검증 공개 키(307)를 사용하여, 네이티브 프로그램들(213)의 서명(309)의 검증을 행한다. 또한, 프로그램 변경 검지 유닛(205)은 자바 프로그램 검증 공개 키(308)를 사용하여 자바 프로그램(331)의 서명(330)의 검증을 행하고, 서명 검증들 양자 모두가 성공했는지를 판정한다. 서명 검증들 양자 모두가 성공하는 경우, 처리는 단계 S409로 천이한다. 한편, 어느 하나의 서명 검증이 실패한 경우, 처리는 단계 S412로 천이한다.
단계 S409의 처리가 종료되고, 단계 S410에서, 자바 프로그램(214)의 서명 검증이 실패했다고 판정하는 경우, 처리는 단계 S502로 천이한다. 단계 S502에서, 자바 프로그램 변경 검지 유닛(206)은, HDD(104)로부터 자바 프로그램(214)을 삭제하고, 플래시 메모리(114)에 저장된 자바 프로그램(331)과 그 서명(330)을 HDD(104)로 기입하는 재전개 처리를 실행한다. 재전개 처리를 종료하는 경우, 자바 프로그램 변경 검지 유닛(206)은 처리를 종료하고, 처리는 단계 S411로 진행하고, 자바 프로그램(214)이 기동된다.
이상 설명한 것 같이, 본 실시예에 의하면, HDD(104)에 더하여, 플래시 메모리(114)에서 자바 프로그램들이 보유된다. 이 때문에, 변경될 가능성이 높은 HDD(104)의 자바 프로그램이 변경되어도, 플래시 메모리(114)에 있는 자바 프로그램(331)이 재전개됨으로써, 변경을 수복(restore)할 수 있기 때문에, 가용성이 저하되는 것을 회피할 수 있다.
<제3 실시예>
이하에서는, 본 발명의 제3 실시예에 대해서 설명한다. 도 3d에 도시하는 바와 같이, 복합기(100)가 복수의 커널 및 프로그램을 보유하고, 로더에 의해, 기동하는 커널 및 프로그램들이 전환되는 구성을 취할 경우가 있다. 이러한 구성에 의하면, 전술한 제1 및 제2 실시예들의 구성 하에 커널(212)이 아닌 커널 B(220)를 기동하고자 한 경우, 커널 B(220)에 대한 서명이 존재하지 않기 때문에, 그것이 변경되지 않음에도, 변경된 것으로 검지될 것이고, 기동하지 않을 것이라는 문제가 있다. 따라서, 본 실시예에서는 다른 커널, 다른 프로그램을 보유하는 구성에 의해서도 변경 검지 및 기동을 행하는 방법에 대해서 설명한다.
<소프트웨어 구성>
먼저, 도 2b를 참조하면, 본 실시예에 따른 복합기(100)에 의해 보유되는 소프트웨어 모듈들의 구성예를 설명한다. 참조 번호들 201 내지 214는 도 2a와 동일하기 때문에 그 설명을 생략한다.
로더(223)는 BIOS(210)에 대한 처리가 완료된 후에 CPU(101)에 의해 실행되는 프로그램이며, 기동에 관련한 처리를 실행하는 것 이외에 커널의 변경을 검지하는 커널 변경 검지 유닛(224)을 갖는다. 로더(223)는, 조작 패널(110)을 통한 사용자 입력에 따라 기동하는 커널을 전환한다.
커널 B(220)는, CPU(101)에 의해 실행되는 커널(212)과는 다른 프로그램이며, 기동에 관련한 처리를 실행하고, 네이티브 프로그램 B(222)의 변경 검지를 행하는 프로그램 변경 검지 유닛(221)을 또한 갖는다. 네이티브 프로그램 B(222)는, CPU(101)에 의해 실행되는 프로그램이며, 복합기(100)의 업데이트 기능을 제공한다. 그것은 커널 B(220)에 의해 호출되고, 커널(212), 네이티브 프로그램들(213) 또는 자바 프로그램(214)을 업데이트하는 기능을 제공한다. 네이티브 프로그램 B(222)는 업데이트 기능에 한정되지 않고, 다른 기능을 제공하는 프로그램일 수 있다는 점을 유의한다.
<기동 수순>
이어서, 도 3e를 참조하면, 로더(223)에 의해 기동되는 커널이 커널(212)인지, 또는 커널 B(220)인지에 따라 변경 검지에 대한 대상이 전환되고 기동될 수 있는 처리의 흐름을 설명한다.
로더(223)는, 로더(223)의 서명(304), 커널(212)의 검증을 위한 공개 키(305), 및 커널 B(220)의 검증을 위한 공개 키(340)를 포함하는 것으로 가정한다. 또한, 커널 B(220)에는, 커널 B의 서명(341) 및 네이티브 프로그램 B의 검증을 위한 공개 키(342)가 포함되고, 네이티브 프로그램 B(222)에는 네이티브 프로그램 B의 서명(343)이 포함된다. 이러한 공개 키들 및 서명들은 미리 복합기(100)의 공장 출하 전에 프로그램들에 할당되는 것이 바람직하다. 이러한 방식으로, 로더(223)는, 다음에 기동 가능한 복수의 커널에 대한 각각의 공개 키들(검증 정보)를 포함한다.
<처리 수순>
이어서, 도 6을 참조하면, 본 실시예에 따른 복합기(100)의 기동 시에서의 처리 수순을 설명한다. 단계 S401 내지 단계 S404, 및 단계 S406 내지 단계 S412의 처리는 도 4의 처리와 유사하기 때문에, 그 설명을 생략한다.
단계 S600에서, 로더(223)가 기동되는 경우, 각종 초기화 처리를 행한다. 이어서, 단계 S601에서, 로더(223)는, 조작 패널(110)을 통해 커널 B(220)가 기동 대상으로서 선택되었는지를 판정한다. 커널 B(220)가 기동 대상으로서 선택되지 않은 경우에는, 단계 S406에 처리로 천이된다. 한편, 커널 B(220)가 선택되는 경우, 로더(223)에 포함되는 커널 변경 검지 유닛(224)이 플래시 메모리(114)로부터 커널 B(220), 네이티브 프로그램 B의 검증을 위한 공개 키(342) 및 커널 B의 서명(341)을 RAM(103)으로 판독한다. 커널 변경 검지 유닛(224)은, 단계 S602에서 커널 B의 검증을 위한 공개 키(342)를 사용하여, 커널 B의 서명(341)의 검증을 행하고 검증이 성공했는지를 판정한다. 서명의 검증이 실패한 경우, 처리는 단계 S412로 천이한다. 한편, 서명의 검증이 성공하는 경우, 커널 변경 검지 유닛(221)은 처리를 종료하고, 단계 S603에서, 로더(223)는 RAM(103)으로 판독되었던 커널 B(220)를 기동한다.
커널 B(220)가 기동되는 경우, 각종 초기화 처리를 행하고, 커널 B(220)에 포함되는 프로그램 변경 검지 유닛(221)이 플래시 메모리(114)로부터 네이티브 프로그램 B(222) 및 네이티브 프로그램 B의 서명(343)을 RAM(103)으로 판독한다. 프로그램 변경 검지 유닛(221)은 단계 S604에서 네이티브 프로그램 B의 검증을 위한 공개 키(342)를 사용하여, 네이티브 프로그램 B의 서명(343)의 검증을 행하고 검증이 성공했는지를 판정한다. 서명의 검증이 실패한 경우, 처리는 단계 S412로 천이한다. 한편, 서명의 검증이 성공하는 경우, 프로그램 변경 검지 유닛(221)은 처리를 종료하고, 단계 S605에서 네이티브 프로그램 B(222)를 기동한다. 네이티브 프로그램 B(222)를 기동하는 경우, 업데이트 기능을 사용자에게 제공한다.
이상 설명한 것 같이, 본 실시예에 의하면, 복수의 커널 및 복수의 프로그램이 보유되는 구성에 의해서도 이들에 대한 변경 검지를 행한 후 기동을 행할 수 있고, 전술한 제1 및 제2 실시예들의 효과와 유사한 효과를 달성할 수 있다.
<변형예>
본 발명은 전술한 실시예들에 한정되지 않고, 다양한 변형들이 가능하다. 전술한 제1 내지 제3 실시예들에서는, 공개 키들이 모두 서로 상이한 것으로서 설명했지만, 그것들이 동일할 수도 있다. 또한, 각 프로그램들의 저장 장소로서 ROM(102), 플래시 메모리(114), 및 HDD(104)가 설명되었지만, 이는 저장 장소를 한정하는 것이 아니며, 저장 장소는 상이한 저장 매체일 수도 있다. 또한, 프로그램의 저장 장소가 설명된 장소일 필요는 없고, ROM(102)에서 로더(223)를 저장하는 구성이 취해질 수도 있다.
기타 실시예들
본 발명의 실시예(들)는, 설명된 실시예(들) 중 하나 이상의 기능을 수행하기 위해 저장 매체(보다 완전하게는 '비일시적 컴퓨터가 판독 가능한 저장 매체'라 지칭될 수 있음)에 기록된 컴퓨터가 실행 가능한 지시(예를 들어, 하나 이상의 프로그램)를 판독 및 수행하고 그리고/또는 설명된 실시예(들) 중 하나 이상의 기능을 수행하는 하나 이상의 회로[예를 들어, 주문형 집적 회로(ASIC)]를 포함하는 시스템 또는 장치의 컴퓨터에 의해, 그리고 예를 들어 설명된 실시예(들) 중 하나 이상의 기능을 실행하기 위해 저장 매체로부터 컴퓨터가 실행 가능한 지시를 판독 및 실행함으로써 그리고/또는 설명된 실시예(들) 중 하나 이상의 기능을 수행하기 위해 하나 이상의 회로를 제어함으로써 시스템 또는 장치의 컴퓨터에 의해 수행되는 방법에 의해 실현될 수도 있다. 컴퓨터는 하나 이상의 프로세서(예를 들어, 중앙 처리 유닛(CPU), 마이크로 처리 유닛(MPU))를 포함할 수 있고 컴퓨터 실행가능 명령어들을 판독 및 실행하기 위한 별도의 컴퓨터들 또는 별도의 프로세서들의 네트워크를 포함할 수 있다. 컴퓨터가 실행 가능한 지시는 예를 들어, 네트워크 또는 저장 매체로부터 컴퓨터에 제공될 수 있다. 저장 매체는, 예를 들어 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 분산형 컴퓨팅 시스템들의 스토리지, 광 디스크(예를 들어, 콤팩트 디스크(CD), 디지털 다기능 디스크(DVD) 또는 블루레이 디스크(BD)™), 플래시 메모리 디바이스, 메모리 카드 등 중 하나 이상을 포함할 수 있다.
(기타의 실시예)
본 발명은, 상기의 실시형태의 1개 이상의 기능을 실현하는 프로그램을, 네트워크 또는 기억 매체를 개입하여 시스템 혹은 장치에 공급하고, 그 시스템 혹은 장치의 컴퓨터에 있어서 1개 이상의 프로세서가 프로그램을 읽어 실행하는 처리에서도 실현가능하다.
또한, 1개 이상의 기능을 실현하는 회로(예를 들어, ASIC)에 의해서도 실행가능하다.
본 발명이 예시적인 실시예를 참조하여 설명되었지만, 본 발명은 개시된 예시적인 실시예로 제한되지 않는다는 것이 이해되어야 한다. 이하의 청구항의 범위는 이러한 모든 변형과 등가인 구조 및 기능을 포함하도록 최광의로 해석되어야 한다.

Claims (9)

  1. 내장형 콘트롤러에 의한 부트 프로그램의 기동 후에 복수의 모듈을 순차 기동하도록 동작 가능한 정보 처리 장치로서,
    각각의 모듈은:
    다음에 기동될 모듈의 서명을 검증하는 검증 정보를 사용하여, 상기 다음에 기동될 모듈의 변경을 검지하는 검지 유닛, 및
    상기 검지 유닛에 의한 상기 서명의 검증이 성공하는 경우, 상기 다음에 기동될 모듈을 기동하는 기동 유닛
    을 포함하고,
    각각의 모듈은, 상기 검증 정보와 그 자신의 서명을 미리 보유하는, 정보 처리 장치.
  2. 제1항에 있어서,
    상기 부트 프로그램을 실행하는 상기 내장형 콘트롤러는:
    상기 검지 유닛 및 상기 기동 유닛을 포함하고,
    상기 검증 정보를 미리 보유하는, 정보 처리 장치.
  3. 제1항에 있어서,
    상기 기동 유닛은, 상기 검지 유닛에 의한 서명의 검증이 실패하는 경우, 상기 정보 처리 장치의 기동을 정지하는, 정보 처리 장치.
  4. 제1항에 있어서,
    상기 복수의 모듈은, BIOS(Basic Input/Output System), 로더, 커널, 제1 프로그램 및 제2 프로그램을 포함하고,
    상기 부트 프로그램 및 상기 BIOS는 ROM(Read-Only Memory)에 저장되고, 상기 로더, 상기 커널 및 상기 제1 프로그램은 플래시 메모리에 저장되고, 상기 제2 프로그램은 HDD(Hard Disk Drive)에 저장되는, 정보 처리 장치.
  5. 제4항에 있어서,
    상기 플래시 메모리는 또한 상기 제2 프로그램을 저장하고,
    상기 제2 프로그램을 기동하는 모듈의 상기 기동 유닛은, 상기 HDD에 저장된 상기 제2 프로그램에 관한 상기 검지 유닛에 의한 서명의 검증이 실패하는 경우, 상기 플래시 메모리에 저장된 상기 제2 프로그램을 상기 HDD에 재전개하고, 상기 제2 프로그램을 기동하는, 정보 처리 장치.
  6. 제1항에 있어서,
    상기 기동 유닛은, 사용자 입력에 따라 다음에 기동될 모듈을 전환 및 기동하고,
    각각의 모듈은, 다음에 기동 가능한 복수의 모듈 각각에 대한 검증 정보, 및 그 자신의 서명을 미리 보유하는, 정보 처리 장치.
  7. 제1항에 있어서,
    각각의 모듈을 제어하는 메인 콘트롤러를 추가로 포함하고,
    상기 내장형 콘트롤러는, 상기 메인 콘트롤러와는 별도로 프로세서 및 메모리를 갖는, 정보 처리 장치.
  8. 내장형 콘트롤러에 의한 부트 프로그램의 기동 후에 복수의 모듈을 순차 기동하도록 동작 가능한 정보 처리 장치의 제어 방법으로서,
    각각의 모듈은:
    다음에 기동될 모듈의 서명을 검증하는 검증 정보를 사용하여, 상기 다음에 기동될 모듈의 변경을 검지하는 단계, 및
    상기 서명의 검증이 성공하는 경우, 상기 다음에 기동될 모듈을 기동하는 단계
    를 포함하는, 정보 처리 장치의 제어 방법.
  9. 내장형 콘트롤러에 의한 부트 프로그램의 기동 후에 복수의 모듈을 순차 기동하도록 동작 가능한 정보 처리 장치를 제어하는 방법의 각 단계를 컴퓨터로 하여금 실행하게 하기 위한 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 저장 매체로서,
    각각의 모듈은:
    다음에 기동될 모듈의 서명을 검증하는 검증 정보를 사용하여, 상기 다음에 기동될 모듈의 변경을 검지하는 단계, 및
    상기 서명의 검증이 성공하는 경우, 상기 다음에 기동될 모듈을 기동하는 단계
    를 포함하는, 컴퓨터 판독 가능 저장 매체.
KR1020180122927A 2017-10-18 2018-10-16 정보 처리 장치, 그 제어 방법 및 저장 매체 KR102347703B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2017-201956 2017-10-18
JP2017201956A JP6942601B2 (ja) 2017-10-18 2017-10-18 情報処理装置、その制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
KR20190043473A true KR20190043473A (ko) 2019-04-26
KR102347703B1 KR102347703B1 (ko) 2022-01-06

Family

ID=63708142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180122927A KR102347703B1 (ko) 2017-10-18 2018-10-16 정보 처리 장치, 그 제어 방법 및 저장 매체

Country Status (6)

Country Link
US (1) US11055413B2 (ko)
EP (1) EP3474179B1 (ko)
JP (1) JP6942601B2 (ko)
KR (1) KR102347703B1 (ko)
CN (1) CN109684849B (ko)
RU (1) RU2720068C2 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6942601B2 (ja) * 2017-10-18 2021-09-29 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
JP6706278B2 (ja) * 2018-03-27 2020-06-03 キヤノン株式会社 情報処理装置、及び情報処理方法
JP7182966B2 (ja) 2018-09-12 2022-12-05 キヤノン株式会社 情報処理装置、情報処理装置の起動方法、及びプログラム
CN112292678A (zh) * 2019-01-04 2021-01-29 百度时代网络技术(北京)有限公司 用于验证将要由主机系统的数据处理加速器执行的内核对象的方法与系统
JP7425797B2 (ja) * 2019-06-10 2024-01-31 グーグル エルエルシー ファームウェアのセキュアな検証
JP2021002081A (ja) 2019-06-19 2021-01-07 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
JP7321795B2 (ja) * 2019-06-27 2023-08-07 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP7282616B2 (ja) * 2019-06-27 2023-05-29 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP7367471B2 (ja) * 2019-11-07 2023-10-24 株式会社リコー 情報処理装置、ファイル保証方法、及びファイル保証プログラム
JP7393226B2 (ja) * 2020-01-29 2023-12-06 キヤノン株式会社 情報処理装置とその起動方法
CN111523124B (zh) * 2020-07-06 2020-10-13 飞天诚信科技股份有限公司 一种云音箱固件保护方法及系统
JP2022135443A (ja) * 2021-03-05 2022-09-15 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US11409865B1 (en) * 2021-08-16 2022-08-09 Cyberark Software Ltd. Verification code injection at build time

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012148422A1 (en) * 2011-04-29 2012-11-01 Hewlett-Packard Development Company, L.P. Embedded controller to verify crtm
US20170103209A1 (en) * 2015-10-12 2017-04-13 Microsoft Technology Licensing, Llc Trusted platforms using minimal hardware resources

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3293760B2 (ja) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
US20050005101A1 (en) * 2003-07-03 2005-01-06 Yenduri Bhargava K. Kernel cryptographic module signature verification system and method
US8028172B2 (en) 2005-01-14 2011-09-27 Microsoft Corporation Systems and methods for updating a secure boot process on a computer with a hardware security module
US20070136807A1 (en) 2005-12-13 2007-06-14 Deliberato Daniel C System and method for detecting unauthorized boots
JP4769608B2 (ja) * 2006-03-22 2011-09-07 富士通株式会社 起動検証機能を有する情報処理装置
FR2899702A1 (fr) 2006-04-10 2007-10-12 France Telecom Procede et dispositif pour engendrer une suite pseudo-aleatoire
JP4939851B2 (ja) * 2006-06-21 2012-05-30 パナソニック株式会社 情報処理端末、セキュアデバイスおよび状態処理方法
JP4227641B2 (ja) * 2006-11-20 2009-02-18 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法
AU2008246243B2 (en) * 2008-11-19 2011-12-22 Canon Kabushiki Kaisha DVC as generic file format for plenoptic camera
JP2011003020A (ja) * 2009-06-18 2011-01-06 Toyota Infotechnology Center Co Ltd コンピューターシステムおよびプログラム起動方法
US8949565B2 (en) * 2009-12-27 2015-02-03 Intel Corporation Virtual and hidden service partition and dynamic enhanced third party data store
JP2012008641A (ja) * 2010-06-22 2012-01-12 Toshiba Tec Corp セキュリティデバイス及び情報処理装置
NO335189B1 (no) * 2010-10-26 2014-10-20 Cupp Computing As Sikkert databehandlingssystem
JP5822527B2 (ja) * 2011-05-09 2015-11-24 キヤノン株式会社 情報処理装置、その制御方法、および制御プログラム
US8732527B2 (en) * 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method
JP6069852B2 (ja) 2011-08-29 2017-02-01 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
JP2013117910A (ja) * 2011-12-05 2013-06-13 Canon Inc 情報処理装置、その制御方法、およびプログラム
US9367328B2 (en) * 2012-06-28 2016-06-14 Intel Corporation Out-of-band host OS boot sequence verification
CN102830990A (zh) * 2012-07-20 2012-12-19 大唐移动通信设备有限公司 一种计算机系统启动方法及计算机终端
JP5980050B2 (ja) * 2012-08-29 2016-08-31 キヤノン株式会社 情報処理装置
US9990666B2 (en) * 2012-09-12 2018-06-05 Canon Kabushiki Kaisha Method, system and apparatus for delivering a recommendation
US9792439B2 (en) * 2012-09-19 2017-10-17 Nxp B.V. Method and system for securely updating firmware in a computing device
EP2972819B1 (en) * 2013-03-15 2020-01-01 Huawei Technologies Co., Ltd. Booting method for computer system with multiple central processing units
JP2015052996A (ja) * 2013-09-09 2015-03-19 キヤノン株式会社 画像形成装置、及び画像形成装置の制御方法
JP6226709B2 (ja) * 2013-11-15 2017-11-08 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
JP6399763B2 (ja) * 2014-02-19 2018-10-03 キヤノン株式会社 情報処理装置、情報処理方法
CN103927490A (zh) * 2014-04-25 2014-07-16 华为技术有限公司 操作系统安全启动方法及装置
CN104200153B (zh) * 2014-09-12 2019-04-16 北京赛科世纪科技股份有限公司 一种启动验证方法和系统
KR20160076371A (ko) * 2014-12-22 2016-06-30 삼성전자주식회사 워크플로우를 처리하는 방법 및 이를 수행하는 모바일 디바이스
DE102015001801A1 (de) * 2015-02-16 2016-08-18 IAD Gesellschaft für Informatik, Automatisierung und Datenverarbeitung mbH Autonom bootendes System mit einer Verschlüsselung des gesamten Datenspeichers und Verfahren hierfür
CN104794393B (zh) * 2015-04-24 2017-11-10 杭州字节信息技术有限公司 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
JP6659150B2 (ja) 2016-02-05 2020-03-04 キヤノン株式会社 装置及びその制御方法、並びにプログラム
CN106775716B (zh) * 2016-12-15 2020-04-17 中国科学院沈阳自动化研究所 一种基于度量机制的可信plc启动方法
JP6942601B2 (ja) * 2017-10-18 2021-09-29 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012148422A1 (en) * 2011-04-29 2012-11-01 Hewlett-Packard Development Company, L.P. Embedded controller to verify crtm
US20170103209A1 (en) * 2015-10-12 2017-04-13 Microsoft Technology Licensing, Llc Trusted platforms using minimal hardware resources

Also Published As

Publication number Publication date
CN109684849B (zh) 2023-06-27
CN109684849A (zh) 2019-04-26
JP2019075000A (ja) 2019-05-16
RU2720068C2 (ru) 2020-04-23
EP3474179A1 (en) 2019-04-24
US11055413B2 (en) 2021-07-06
EP3474179B1 (en) 2021-07-07
US20190114429A1 (en) 2019-04-18
RU2018136581A3 (ko) 2020-04-17
RU2018136581A (ru) 2020-04-17
KR102347703B1 (ko) 2022-01-06
JP6942601B2 (ja) 2021-09-29

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
US20150235028A1 (en) Information processing apparatus and information processing method
JP2019212114A (ja) 情報処理装置、その制御方法およびプログラム
US20200134232A1 (en) Information processing apparatus and control method thereof
KR102402373B1 (ko) 정보 처리 장치 및 정보 처리 방법
JP7374780B2 (ja) 情報処理装置および情報処理装置の制御方法
JP7182966B2 (ja) 情報処理装置、情報処理装置の起動方法、及びプログラム
US20200344066A1 (en) Information processing apparatus and data verification method
JP2021140601A (ja) 情報処理装置、その制御方法、及びプログラム
EP3654183B1 (en) Information processing apparatus and method of controlling information processing apparatus
US11822928B2 (en) Information processing apparatus, method of controlling same, storage medium, and image forming apparatus
JP2020154601A (ja) 情報処理装置とその制御方法、及びプログラム
JP2020052597A (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP2021114156A (ja) 情報処理装置、情報処理装置の処理方法およびプログラム
JP2021128469A (ja) 情報処理装置と、情報処理装置における起動方法
JP2022182837A (ja) 情報処理装置、及びその制御方法
JP2020135645A (ja) 情報処理装置、その制御方法およびプログラム
JP2019128775A (ja) 情報処理装置及びその制御方法、並びにプログラム

Legal Events

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