[go: up one dir, main page]

KR20050002575A - 서버에서 클라이언트로 전송된 부트 파일의 3방향 확인 및인증 - Google Patents

서버에서 클라이언트로 전송된 부트 파일의 3방향 확인 및인증 Download PDF

Info

Publication number
KR20050002575A
KR20050002575A KR1020040048624A KR20040048624A KR20050002575A KR 20050002575 A KR20050002575 A KR 20050002575A KR 1020040048624 A KR1020040048624 A KR 1020040048624A KR 20040048624 A KR20040048624 A KR 20040048624A KR 20050002575 A KR20050002575 A KR 20050002575A
Authority
KR
South Korea
Prior art keywords
client
server
boot files
network
authenticated
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020040048624A
Other languages
English (en)
Other versions
KR101085631B1 (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 KR20050002575A publication Critical patent/KR20050002575A/ko
Application granted granted Critical
Publication of KR101085631B1 publication Critical patent/KR101085631B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several 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
    • 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)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 부트 파일들을 서버에서 사전 설치 환경을 갖은 클라이언트로 전송하는 방법, 및 시스템에 관한 것이다. 서버는 클라이언트를 인증한다. 클라이언트는 서버를 인증한다. 부트 파일들은 인증된 서버에서 인증된 클라이언트로 전송된다. 부트 파일들은 운영 시스템을 생성하기 위해 실행되기 전에 클라이언트에 의해 인증될 수 있다.

Description

서버에서 클라이언트로 전송된 부트 파일의 3방향 확인 및 인증{THREE WAY VALIDATION AND AUTHENTICATION OF BOOT FILES TRANSMITTED FROM SERVER TO CLIENT}
본 발명은 클라이언트(client), 서버(server), 및 부트 파일(boot file)들의 확인 및 인증 분야에 관한 것이다. 특히, 본 발명은 네트워크를 통해 서버에 연결된 사전 운영 시스템 환경 내의 클라이언트에 관련된 부트 파일들의 확인 및 인증에 관한 것이다.
사전 운영 시스템(pre-OS) 개인용 컴퓨터(PC)를 부팅(booting)시키는 네트워크의 중요 쟁점은 서버에 PC의 보안을 확인시키기 위한 어려움 및/또는 불가능성이다. 추가적으로, 많은 서버들은 그들의 클라이언트들을 인증할 수 없고, 많은 클라이언트들은 그들의 서버 및/또는 서버에 의해 클라이언트에 제공되는 부트 파일의 무결성을 확인할 수 없다. 게다가, 운영 시스템이 설치되지 않은 새로운 또는 손상된 PC를 부팅할 때 상당한 제한이 있다. 특히 사전 운영 시스템 환경에서 클라이언트, 서버, 또는 부트 파일의 무결성을 확인할 필요가 있다. 또한 클라이언트를 부트시키고 운영 시스템을 배치하기 위한 더 안전하고 튼튼한 방법을 제공하기 위해 운영 시스템 상태에 상관 없이 클라이언트가 안전하게 부트되도록 허용할 필요가 있다.
클라이언트, 서버, 또는 부트 파일의 무결성을 확인할 수 있는 사전 설치 환경을 클라이언트에 위치시키고, 이런 사전 설치 환경에 구성 요소들을 위치시킴으로써, 본 발명은 클라이언트를 부트시키고 운영 시스템을 배치시키는 더 안전하고 튼튼한 방법을 제공한다. 추가적으로, 클라이언트가 운영 시스템 상태에 상관없이 보안적으로 부트하는 것을 허용하는 것은 클라이언트를 부트시키고 운영 시스템을배치하는 더 안전하고 튼튼한 방법을 더 제공한다. 그러므로, 본 발명은 클라이언트, 서버, 부트 파일(들)의 세가지 중 임의의 것 또는 세가지 모두의 무결성을 확인하기 위해 사용될 수 있는 사전 설치 환경의 상주 구성 요소를 제공하는 시스템 및 방법의 필요성을 만족시킨다.
일반적으로, 본 발명은 네트워크 환경에서 운영 시스템 부트를 확인 및 인증하기 위한 시스템 및 방법이다. 전형적인 네트워크 기반 부트는 서버/클라이언트를 위한 확인 및 인증 구성 요소를 포함하지 않는다. 본 발명은 서버/클라이언트 인증 및 검증을 위한 세가지 인증 프레임워크(framework)를 제공한다. 본 발명은 클라이언트 및 서버 구성 요소 양자에서 디지털 인증서(digital certificate)와 같은 확인 장치를 이용한다. 확인 장치들을 교환하므로써, 클라이언트는 자기 자신을 서버에 인증할 수 있고, 서버는 자기 자신을 클라이언트에 인증할 수 있고, 클라이언트는 서버에 의해 전송된 부트 파일들이 올바르게 확인됐음을 검증할 수 있다.
본 발명의 한 양상에 따라, 방법은 네트워크를 통해 부트 파일들을 서버에서 사전 운영 시스템 환경을 갖는 클라이언트로 전송한다. 이 방법은 클라이언트 내에 클라이언트 인증서(client certificate of authenticity)를 설치하는 단계, 클라이언트가 네트워크를 통해 서버가 클라이언트에 부트 파일들을 전송할 것을 요구하는 단계, 클라이언트가 네트워크를 통해 설치된 클라이언트 인증서를 송신하는 단계, 서버가 수신된 클라이언트 인증서로 클라이언트를 인증하는 단계, 서버가 클라이언트를 인증하는 것에 대한 응답으로 서버가 네트워크를 통해 서버인증서(server certificate of authenticity)를 클라이언트에 송신하고, 클라이언트가 수신된 서버 인증서로 서버를 인증하는 단계, 인증된 클라이언트가 네트워크를 통해 인증된 서버가 부트 파일을 인증된 클라이언트로 전송할 것을 요구하는 단계, 인증된 클라이언트의 요구에 대한 응답으로 인증된 서버에서 인증된 클라이언트로 부트 파일들을 전송하는 단계, 인증된 클라이언트가 전송된 부트 파일들을 인증하는 단계, 및 인증된 클라이언트가 인증된 부트 파일들을 실행시키는 단계를 포함한다.
또다른 형태에서, 본 발명은 서버에서 클라이언트로 부트 파일들을 전송하는 방법을 포함한다. 이 방법은 서버가 클라이언트를 인증하는 단계, 클라이언트가 서버를 인증하는 단계, 및 인증된 서버에서 인증된 클라이언트로 부트 파일들이 전송되는 단계를 포함한다.
또다른 형태에서, 본 발명은 네트워크를 통해 부트 파일들을 서버에서 사전 운영 시스템 환경을 갖은 클라이언트로 전송하는 방법을 포함한다. 이 방법은 클라이언트 내에 클라이언트 인증서를 설치하는 단계, 클라이언트가 네트워크를 통해 서버가 클라이언트로 부트 파일들을 전송할 것을 요구하는 단계, 클라이언트가 네트워크를 통해 설치된 클라이언트 인증서를 송신하는 단계, 서버가 수신된 클라이언트 인증서로 클라이언트를 인증하는 단계, 및 서버에서 인증된 클라이언트로 부트 파일들이 전송되는 단계를 포함한다.
또다른 형태에서, 본 발명은 네트워크를 통해 부트 파일들을 서버에서 사전 운영 시스템 환경을 갖는 클라이언트로 전송하는 방법을 포함한다. 이 방법은 클라이언트에 클라이언트 인증서를 설치하는 단계, 클라이언트가 네트워크를 통해 서버가 클라이언트에 부트 파일들을 전송할 것을 요구하는 단계, 클라이언트가 네트워크를 통해 설치된 클라이언트 인증서를 송신하는 단계, 및 클라이언트가 부트 파일들을 서버로부터 수신하는 단계를 포함한다.
또다른 형태에서, 본 발명은 네트워크를 통해 서버에서 사전 운영 시스템 환경을 갖은 클라이언트로 부트 파일들을 전송하는 방법을 포함한다. 이 방법은 서버가 네트워크를 통해 클라이언트로부터 서버가 클라이언트에 부트 파일들을 전송하라는 요구를 수신하는 단계, 서버가 네트워크를 통해 클라이언트로부터 사전 설치된 클라이언트 인증서를 수신하는 단계, 서버가 수신된 클라이언트 인증서로 클라이언트를 인증하는 단계, 및 부트 파일들이 서버에서 인증된 클라이언트로 전송되는 단계를 포함한다.
또다른 형태에서, 본 발명은 네트워크를 통해 서버에서 사전 운영 시스템 환경을 갖은 클라이언트로 부트 파일들을 전송하는 방법을 포함한다. 이 방법은 클라이언트가 네트워크를 통해 서버가 클라이언트에게 부트 파일을 전송할 것을 요구하는 단계, 서버가 네트워크를 통해 클라이언트에게 서버 인증서를 송신하는 단계, 클라이언트가 수신된 서버 인증서로 서버를 인증하는 단계, 클라이언트가 네트워크를 통해 인증된 서버가 클라이언트에게 부트 파일들을 전송할 것을 요구하는 단계, 및 클라이언트의 요구에 대한 응답으로 인증된 서버에서 클라이언트로 부트 파일들이 전송되는 단계를 포함한다.
또다른 형태에서, 본 발명은 네트워크를 통해 부트 파일들을 서버에서 사전운영 시스템 환경을 갖는 클라이언트로 전송하는 방법을 포함한다. 이 방법은 서버가 네트워크를 통해 클라이언트로부터 서버가 클라이언트에게 부트 파일을 전송하라는 요구를 수신하는 단계, 서버가 네트워크를 통해 클라이언트로부터 사전 설치된 클라이언트 인증서를 수신하는 단계, 서버가 수신된 클라이언트 인증서로 클라이언트를 인증하는 단계, 및 서버가 네트워크를 통해 인증된 클라이언트에게 부트 파일을 송신하는 단계를 포함한다.
또다른 형태에서, 본 발명은 네트워크를 통해 부트 파일을 서버에서 사전 운영 시스템 환경을 갖은 클라이언트로 전송하는 방법을 포함한다. 이 방법은 클라이언트가 네트워크를 통해 서버가 부트 파일을 클라이언트에 전송할 것을 요구하는 단계, 클라이언트가 네트워크를 통해 서버로부터 서버 인증서를 수신하는 단계, 클라이언트가 수신된 서버 인증서로 서버를 인증하는 단계, 클라이언트가 네트워크를 통해 인증된 서버가 클라이언트에게 부트 파일을 전송할 것을 요구하는 단계, 및 클라이언트의 요구에 대한 응답으로 인증된 서버에서 클라이언트로 부트 파일들이 수신되는 단계를 포함한다.
또다른 형태에서, 본 발명은 네트워크를 통해 부트 파일을 서버에서 사전 운영 시스템 환경을 갖은 클라이언트로 전송하는 방법을 포함한다. 이 방법은 클라이언트가 네트워크를 통해 서버가 클라이언트에게 부트 파일을 전송할 것을 요구하는 단계, 클라이언트의 요구에 대한 응답으로 서버에서 클라이언트로 부트 파일들이 전송되는 단계, 클라이언트가 전송된 부트 파일을 인증하는 단계, 인증된 클라이언트가 인증된 부트 파일을 실행시키는 단계를 포함한다.
또다른 형태에서, 본 발명은 클라이언트, 부트 파일을 갖는 서버, 서버에게 클라이언트를 인증하는 소프트웨어, 클라이언트에게 서버를 인증하는 소프트웨어, 및 인증된 서버에서 인증된 클라이언트로 부트 파일을 전송하는 소프트웨어를 포함하는 부트 파일들을 전송하기 위한 시스템을 포함한다.
또다른 형태에서, 본 발명은 네트워크를 통해 서버에서 사전 운영 시스템 환경을 갖은 클라이언트로 부트 파일을 전송하기 위한 컴퓨터 판독 가능 매체를 포함한다. 이 매체는 클라이언트가 네트워크를 통해 서버가 클라이언트로 부트 파일을 전송할 것을 요구하기 위한, 클라이언트가 네트워크를 통해 사전 설치된 클라이언트 인증서를 송신하기 위한, 및 클라이언트가 서버로부터 부트 파일을 수신하기 위한 명령들을 포함한다.
또다른 형태에서, 본 발명은 네트워크를 통해 서버에서 사전 운영 시스템 환경을 갖은 클라이언트로 부트 파일을 전송하기 위한 컴퓨터 판독 매체를 포함한다. 이 매체는 서버가 네트워크를 통해 클라이언트로부터 서버가 클라이언트로 부트 파일을 전송하라는 요구를 수신하기 위한, 서버가 클라이언트로부터 네트워크를 통해 사전 설치된 클라이언트 인증서를 수신하기 위한, 서버가 수신된 클라이언트 인증서로 클라이언트를 인증하기 위한, 및 부트 파일을 서버에서 인증된 클라이언트로 전송하기 위한 명령들을 갖는다.
또다른 형태에서, 본 발명은 네트워크를 통해 서버에서 사전 운영 시스템 환경을 갖은 클라이언트로 부트 파일을 전송하기 위한 컴퓨터 판독 매체를 포함한다. 이 매체는 서버가 네트워크를 통해 클라이언트로부터 서버가 클라이언트에게 부트파일을 전송하라는 요구를 수신하기 위한, 서버가 네트워크를 통해 클라이언트로부터 사전 설치된 클라이언트 인증서를 수신하기 위한, 서버가 수신된 클라이언트 인증서로 클라이언트를 인증하기 위한, 및 서버가 네트워크를 통해 인증된 클라이언트에게 부트 파일을 송신하기 위한 명령들을 포함한다.
또다른 형태에서, 본 발명은 네트워크를 통해 서버에서 사전 운영 시스템 환경을 갖은 클라이언트로 부트 파일을 전송하기 위한 컴퓨터 판독 매체를 포함한다. 이 매체는 클라이언트가 네트워크를 통해 서버가 부트 파일을 클라이언트에 전송할 것을 요구하기 위한, 클라이언트가 네트워크를 통해 서버로부터 서버 인증서를 수신하기 위한, 클라이언트가 수신된 서버 인증서로 서버를 인증하기 위한, 클라이언트가 네트워크를 통해 인증된 서버가 부트 파일을 클라이언트에 전송할 것을 요구하기 위한, 클라이언트의 요구에 대한 응답으로 인증된 서버에서 클라이언트로 부트 파일을 수신하기 위한 명령들을 포함한다.
대안적으로, 본 발명은 다양한 기타 방법 및 장치들을 포함할 수 있다.
기타 특징들은 다음에 부분적으로 명백해지고 부분적으로 지적될 것이다.
도 1은 본 발명에 따르는 클라이언트(client)와 서버(server) 간의 통신을 도시하는 블럭도.
도 2는 본 발명에 따르는 시스템의 방법 및 작동을 도시하는 순서도.
도 3은 본 발명이 구현될 수 있는 적절한 컴퓨팅(computing) 시스템 환경의 한 예를 도시하는 블럭도.
*도면의 주요 부분에 대한 부호의 설명*
102: 부트 파일들
106: 클라이언트 컴퓨터
108: 전송된 부트 파일들
112: 클라이언트 인증서
118: 서버 인증서
본 발명은 부트될 클라이언트에 저장된 디지털 인증서 또는 기타 디지털 검증 또는 확인 장치, 및 부트 서버에 저장된 또다른 디지털 인증서 또는 기타 디지털 검증 또는 확인 장치를 포함한다. 본 발명에 따르는 구조 및 방법은 세가지의 인증을 허용한다. 내장된 인증서를 갖는 사전 운영 시스템 환경을 포함하는 클라이언트는 (사전 부트 실행 환경(PXE) 또는 기타 관련 프로토콜을 통해) 서버로부터의 부트 파일을 요구한다. PXE는 운영 시스템이 아직 로드(load)되지 않은 네트워크 컴퓨터가 관리자에 의해 원거리으로 구성되고 부트되도록 허용하는 산업 표준 클라이언트/서버 인터페이스이다. 클라이언트 기계가 원거리로 구성되고 클라이언트의 운영 시스템이 원거리로 부팅될 수 있도록 하기 위해 PXE 코드(code)는 롬(ROM) 칩 또는 부트 디스크를 통해 전형적으로 새로운 컴퓨터에 전달된다. PXE는 다음의 세가지를 제공한다.
1)클라이언트가 네트워크 서버로의 액세스(access)를 얻기 위한 인터넷 프로토콜(IP) 주소를 수신하도록 허용하는 동적 호스트 설정 통신 규약(DHCP).
2)클라이언트의 기본 입출력 운영 시스템(BIOS) 또는 운영 시스템 부팅 및 기타 구성 단계들을 자동으로 만드는 다운로드된 네트워크 부트스트랩 프로그램(downloaded network bootstrap program; NBP)에 의해 사용되는 어플리케이션 프로그램 인터페이스(API)의 세트(set).
3)PXE 롬 칩 또는 부트 디스크 내의 PXE 코드를 초기화하는 표준 방법.
비록 시나리오는 기획되지만, 서버와 클라이언트 간의 초기 연결은 주로 클라이언트로부터의 요구에 의해 초기화된다. 서버와 클라이언트 간의 초기 연결에서, 각 측에, 즉, 클라이언트에 대한 서버의 신뢰 간에 및 서버에 대한 클라이언트의 신뢰 간에, 확립된 신뢰는 없다. 서버가 클라이언트로부터 요구를 수신한 후, 클라이언트는 자신의 증명서 또는 인증서를 제출한다. 그후 서버는 클라이언트가 제출한 인증서가 유효하고 취소되지 않았는지를 판정한다. 만약 그것이 무효(invaild)하고 취소되면, 서버는 응답하지 않는다. 만약 유효하면, 서버는 자신의 인증서로 응답한다. 그후 클라이언트는 서버의 인증 및 취소 상태를 판정하기 위해 유사한 분석을 수행한다. 만약 클라이언트가 서버가 믿을만 하다고 검증하면, 그후 클라이언트는 실제적인 부트 파일(들)을 위한 요구를 더 만든다. 서버는 디지털로 서명된 파일로 응답한다. 클라이언트는 파일이 믿을만하게 서명됐는지를 판정하기 위해 자신의 로컬(local) 인증서를 사용해 파일을 검사할 것이다. 만약 디지털 서명이 믿을만하면, 클라이언트는 부트 파일(들)을 실행시킬 것이다.
도 1은 본 발명에 따라 클라이언트와 서버 간의 통신을 설명하는 블럭도이다. 특히, 도 1을 참조하여, 네트워크(100)를 통해 부트 파일(102)들을 서버(104)에서 사전 운영 시스템 환경을 갖은 클라이언트 컴퓨터(106)로 전송하기 위한 시스템 및 방법이 설명된다. 일반적으로, 부팅은 컴퓨터를 기동(start)시키고 또는 리셋(reset)시키는 프로세스이다. 처음으로 컴퓨터를 켜거나 리셋시킬 때, 컴퓨터는 자신의 운영 시스템을 로드하고 기동시키기 위해, 및/또는 컴퓨터를 사용할 수 있도록 준비하기 위해 부트 파일을 실행시킨다.
클라이언트(106) 상의 전송된 부트 파일(108)은 클라이언트를 위한 운영 시스템(110)을 생성, 재생성, 수정, 확장, 또는 강화하기 위해 클라이언트에 의해 실행될 수 있다. 일반적으로, 본 발명에 따르는 인증은 하나 이상의 다음의 것들을 포함한다. 서버(104)에 의한 클라이언트(106)의 인증, 및/또는 클라이언트(106)에 의한 서버(104)의 인증, 및/또는 클라이언트(106)를 위한 운영 시스템(110)에 영향을 주기 위해 인증되고 실행될 수 있는 전송된 부트 파일을 클라이언트(106) 상에 생성하기 위해 인증된 서버(104)에서 인증된 클라이언트(106)로 인증된 부트파일(102)을 전송.
도 2는 본 발명에 따르는 시스템의 방법 및 작동을 설명하는 순서도이다. 도 1 및 2를 참조하여, 네트워크(100)를 통해 하나 이상의 부트 파일(102)을 서버(104)에서 사전 운영 시스템 환경을 갖은 클라이언트(106)로 전송하는 방법이 설명된다. 처음으로 202에서, 클라이언트 인증서(112)가 클라이언트(116)에 설치된다. (클라이언트와 서버 간의 임의의 기타 통신 뿐만 아니라) 이 설치는 수동적으로 또는 네트워크(100)를 통해 달성될 수 있다. 도 1의 화살표(114)에 의해 표시된 것처럼, 204에서 클라이언트(106)는 네트워크(100)를 통해 서버(104)가 클라이언트(106)에게 부트 파일(102)을 전송할 것을 요구하고, 206에서 클라이언트는 네트워크를 통해 설치된 클라이언트 인증서(112)를 송신하므로써 자신의 증명서를 제출한다. 208에서, 서버(104)는 수신된 클라이언트 인증서(112)로 클라이언트를 인증한다. 만약 클라이언트가 인증되지 않으면(예를 들어, 클라이언트의 인증서가 무효하거나, 소멸되거나, 또는 취소되면), 프로세스는 끝난다.
도 1 내의 화살표(116)에 의해 표시된 것처럼, 만약 클라이언트(106)가 서버(104)에 대해 인증되기 위해 클라이언트 인증서(112)가 서버(104)가 유지하거나 또는 액세스하는 인증된 클라이언트들의 사전 존재 리스트(pre-exiting list)에 매치되면, 210에서 서버에 의한 클라이언트의 인증에 대한 응답으로 서버(104)는 네트워크(100)를 통해 서버 인증서(118)를 클라이언트(106)에게 송신한다.
212에서, 클라이언트(106)는 수신된 서버 인증서(118)로 서버(104)를 인증한다. 만약 서버(104)가 인증되지 않으면 (예를 들어, 만약 서버 인증서가 무효, 소멸, 또는 취소되면), 프로세스는 끝난다. 클라이언트(106)는 몇몇 방법들 중 하나로 서버의 인증서(118)를 인증할 수 있다. 예를 들어, 서버의 인증서(118)는 클라이언트의 인증서(112)에 대응할 수 있다. 다른 한편으로, 서버(104)가 클라이언트에 대해 인증되기 위해, 서버 인증서(118)는 클라이언트(106)가 유지하거나 액세스하는 인증된 서버의 사전 존재 리스트에 매치될 수 있다. 도 1의 화살표(120)로 표시된 것처럼, 만약 서버 인증서(118)가 매치되거나 검증되면 클라이언트(106)는 서버(104)에 응답한다. 특히, 214에서, 인증된 클라이언트는 네트워크를 통해 인증된 서버가 인증된 클라이언트에 부트 파일(102)을 전송할 것을 요구한다. 도 1 내의 화살표(122)에 의해 표시된 것처럼, 서버(104)는 인증된 클라이언트의 요구에 대한 응답으로 부트 파일(102)에 서명을 추가하므로써 응답하고, 216에서 서명된 부트 파일을 인증된 서버에서 인증된 클라이언트로 전송한다.
다음으로, 218에서 인증된 클라이언트는 부트 파일들이 클라이언트 인증서 및/또는 서버 인증서에 대응하는 서명을 갖음을 확증하므로써, 서명되어 전송된 부트 파일을 인증한다. 특히, 전송된 부트 파일들은 서버로부터의 클라이언트 인증서에 대응하는 서명을 포함해야하고, 클라이언트는 서명이 인증의 자신의 인증서에 대응함을 검증한다(도 2의 124). 만약 부트 파일들이 인증되지 않으면(예를 들어, 만약 부트 파일들이 부정확하게 서명, 확인, 소멸, 또는 취소되면), 프로세스는 끝난다. 220에서, 인증된 부트 파일들은 운영 시스템(110)을 생성하기 위해 클라이언트에 의해 실행된다.
본 발명에 따르는 본 시스템 및 방법은 단지 클라이언트 인증만을 포함할 수도 있다. 이 실시예는 다음과 같이 구현된다. 클라이언트 인증서(112)가 클라이언트(106) 상에 설치된다. 이는 수동적으로, 네트워크(100)를 통해, 또는 서버(104)에 의해 설치될 수 있다. 클라이언트는 네트워크를 통해 서버가 부트 파일을 클라이언트에 전송할 것을 요구한다. 클라이언트는 네트워크를 통해 설치된 클라이언트 인증서를 송신한다. 서버는 수신된 클라이언트 인증서로 클라이언트를 인증하고, 서버에서 인증된 클라이언트로 부트 파일(102)을 전송한다. 선택적으로, 부트 파일들은 서명될 수 있고, 인증된 클라이언트는 부트 파일들을 실행시키기 전에 서명되어 전송된 부트 파일들을 인증할 수 있다.
클라이언트 관점에서, 클라이언트 인증 시스템 및 방법은 클라이언트 상에 설치된 클라이언트 인증서를 포함할 것이다. 클라이언트는 서버가 부트 파일을 클라이언트에 전송할 것을 요구하는 소프트웨어를 갖을 것이다(또는 수동적인 프롬프팅(prompting)을 통해). 클라이언트는 네트워크를 통해 설치된 클라이언트 인증서를 송신하고 서버로부터 부트 파일들을 수신한다. 선택적으로, 인증된 클라이언트는 부트 파일을 실행시키기 전에 그 전송된 부트 파일을 인증할 수 있다.
서버 관점에서, 클라이언트 인증 시스템 및 방법은 네트워크를 통해 클라이언트로부터 서버가 부트 파일을 클라이언트에게 전송하라는 요구를 수신하기 위한 소프트웨어를 서버 상에 포함할 것이다. 이 소프트웨어는 또한 네트워크를 통해 클라이언트 상에 사전 설치된 클라이언트 인증서를 수신할 것이다. 서버는 수신된 클라이언트 인증서로 클라이언트를 인증하기 위한 소프트웨어를 포함할 것이다. 서버의 소프트웨어는 그후 (선택적으로 서명된) 부트 파일들을 서버에서 인증된 클라이언트로 전송할 것이다.
본 발명에 따르는 본 시스템 및 방법은 또한 단지 서버 인증만 포함할 수도 있다. 이 실시예에서, 클라이언트(106)는 네트워크를 통해 서버(104)가 부트 파일(102)들을 클라이언트에 전송할 것을 요구한다. 서버는 네트워크를 통해 서버 인증서(118)를 클라이언트에 송신한다. 클라이언트는 수신된 서버 인증서로 서버를 인증한다. 클라이언트는 네트워크를 통해 인증된 서버가 부트 파일들을 클라이언트에 전송할 것을 요구한다. 클라이언트의 요구에 대한 응답으로, 부트 파일들은 네트워크를 통해 인증된 서버에서 클라이언트로 전송된다. 선택적으로, 부트 파일들이 클라이언트에 의해 인증될 수 있도록 하기 위해 부트 파일들은 서명될 수 있다.
서버의 관점에서, 서버 인증 시스템 및 방법은 네트워크를 통해 클라이언트로부터 서버가 부트 파일을 클라이언트에 전송하라는 요구를 수신하기 위한 소프트웨어, 네트워크를 통해 사전 설치된 클라이언트 인증서를 클라이언트로부터 수신하는 소프트웨어, 수신된 클라이언트 인증서로 클라이언트를 인증하기 위한 소프트웨어, 및 네트워크를 통해 (선택적으로 서명된) 부트 파일들을 인증된 클라이언트에 송신하는 소프트웨어를 포함할 것이다.
클라이언트의 관점에서, 서버 인증 시스템 및 방법은 네트워크를 통해 서버가 부트 파일들을 클라이언트에 전송할 것을 요구하는 소프트웨어, 네트워크를 통해 서버 인증서를 서버로부터 수신하는 소프트웨어, 수신된 서버 인증서로 서버를 인증하는 소프트웨어, 네트워크를 통해 인증된 서버가 부트 파일을 클라이언트에전송할 것을 요구하는 소프트웨어, 및 클라이언트의 요구에 대한 응답으로 (선택적으로 서명된) 부트 파일들을 인증된 서버로부터 수신하는 소프트웨어를 포함할 것이다.
본 발명에 따르는 시스템 및 방법은 또한 부트 파일 인증만을 포함할 수도 있다. 이 실시예에서, 클라이언트(106)는 네트워크(100)를 통해 서버(104)가 부트 파일(102)들을 클라이언트에 전송할 것을 요구한다. 서명된 부트 파일들은 클라이언트의 요구에 대한 응답으로 서버에서 클라이언트로 전송된다. 클라이언트는 서명되어 전송된 부트 파일들을 인증하고 인증된 부트 파일들을 실행시킨다.
클라이언트의 운영 시스템을 생성하기 위해 클라이언트에 의해 사용되는 부트 파일들의 구성 요소로 포함되는 디지털 서명 또는 기타 디지털 검증 장치를 가짐으로써, 클라이언트, 서버, 및 부트 파일들을 철저하게 확인할 수 있다. 클라이언트 소프트웨어가 판독 가능, 또는 판독/쓰기 컴퓨터 판독 가능 메모리(CRM) 장치 상에 있던지 간에, 사전 설치 환경은 다음과 같은 것들을 할 수 있다.
서버가 인증됨을 확인;
클라이언트가 인증됨을 서버에 대해 인증; 및
부트 파일들의 무결성을 확인.
선택적으로, 상술된 것처럼, 상이한 부분들은 보안의 상이한 레이어(layer)들을 허용하기 위해 단지 클라이언트 무결성만을 검증하거나, 단지 서버 무결성만을 검증하거나, 또는 단지 부트 파일(들)의 무결성만을 검증할 수 있다. 본 발명을 따르는 한 보안 해결 방법은 세가지 모두를 허용한다. 그러므로 프로세스의 모든 보안 단계들을 검증한다.
인증을 실패했을 경우에 다음의 지침들은 위험을 줄이기 위해 또한 구현될 수 있다.
무효한 또는 취소된 인증서를 갖은 클라이언트들은 서버에 의해 대답되지 않는다.
무효한 또는 취소된 인증서를 갖은 서버들은 클라이언트에 의해 알려지지 않는다.
부정확하게 서명되어 수신된 부트 파일들은 클라이언트에 의해 실행되지 않는다. 본 발명은 특히 네트워크 배치 회사들, 및 배치/관리 회사들에 적용될 수 있다. 본 발명은 네트워크 부트 프로토콜의 보안, 이전 기술에 의해 만족되지 않았던 기업 소비자의 요구에 초점을 맞췄다.
도 3은 클라이언트(106) 또는 서버(104)일 수 있는 컴퓨터(130) 형태의 범용 컴퓨팅 장치의 한 예를 나타낸다. 본 발명의 한 실시예에서, 컴퓨터(130)와 같은 컴퓨터는 클라이언트 및/또는 서버로 여기에 도시되고 기재된 기타 도면들 내에 사용되기에 적절하다. 컴퓨터(130)는 하나 이상의 프로세서들 또는 프로세싱 유닛(132), 및 시스템 메모리(134)를 갖는다. 도시된 실시예에서, 시스템 버스(136)는 시스템 메모리(134)를 포함하는 다양한 시스템 구성 요소들을 프로세서(132)에 연결한다. 버스(136)는 메모리 버스 또는 제어기, 주변 장치 버스, 가속 그래픽 포트(graphics port), 및 프로세서 또는 다양한 버스 구조들 중 임의의 것을 사용하는 로컬 버스를 포함하는 몇몇 유형의 버스 구조들 중 하나 이상의 임의의 것을 나타낸다. 예를 들어, 이런 구조들은 산업 표준 구조(ISA) 버스, 마이크로 채널 구조(MCA) 버스, 강화된 ISA(EISA) 버스, 비디오 전자 공학 협회(VESA) 로컬 버스, 및 메자닌 버스(Mezzanine)버스로도 알려진 주변 장치 구성 요소 상호 접속(PCI) 버스를 포함하지만 이에 한정된 것은 아니다.
컴퓨터(130)는 전형적으로 적어도 몇몇의 컴퓨터 판독 가능 매체의 형태를 갖는다. 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함하는 컴퓨터 판독 가능 매체는 컴퓨터(130)에 의해 액세스될 수 있는 임의의 이용 가능 매체일 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 컴퓨터 스토리지(storage) 매체, 및 통신 매체를 포함할 수 있지만, 이에 한정된 것은 아니다. 컴퓨터 스토리지 매체는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 또는 기타 데이터와 같은 정보의 스토리지를 위한 임의의 방법 또는 기술들로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 예를 들어, 컴퓨터 스토리지 매체는 램(RAM), 롬(ROM), 전기적 소거 가능 롬(EEPROM), 플래시(flash) 메모리 또는 기타 메모리 기술, 씨디롬(CD-ROM), 디지털 다기능 디스크(DVD), 또는 기타 광학 디스크 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지, 또는 기타 자기 스토리지 장치, 또는 원하는 정보를 저장하기 위해 사용될 수 있고 컴퓨터(130)에 의해 액세스될 수 있는 임의의 기타 매체들을 포함한다. 통신 매체들은 전형적으로 반송파 또는 기타 전송 메커니즘(mechanism) 등의 변조된 데이터 신호에 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 또는 기타 데이터를 구현하고, 임의의 정보 전달 매체를 포함한다. 본 기술에 숙련된 사람들은 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 변조된 데이터 신호에 익숙할 것이다. 유선 네트워크 또는 직접 유선 접속 등의 유선 매체, 및 음향, RF, 적외선, 및 기타 무선 매체 등의 무선 매체들은 통신 매체의 예들이다. 상술한 것들 중의 임의의 조합이 또한 컴퓨터 판독 가능 매체의 영역에 포함된다.
시스템 메모리(134)는 분리형 및/또는 비분리형, 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 스토리지 매체를 포함한다. 도시된 실시예에서, 시스템 메모리(134)는 롬(138), 및 램(140)을 포함한다. 시동중과 같은 때에 컴퓨터(130) 내의 요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(BIOS; 142)은 전형적으로 롬(138)에 저장된다. 램(140)은 전형적으로 프로세싱 유닛(132)에 즉시 액세스될 수 있고 및/또는 프로세싱 유닛(132)에 의해 현재 작동되고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예를 들어, 도 3은 운영 시스템(144), 어플리케이션 프로그램(146), 기타 프로그램 모듈(148), 및 프로그램 데이터(150)를 도시하지만 이에 한정된 것은 아니다.
컴퓨터(130)는 또한 기타 분리형/비분리형, 휘발성/비휘발성 컴퓨터 스토리지 매체도 포함할 수 있다. 예를 들어, 도 3에는 비분리형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(154)가 도시되어 있다. 도 3에는 또한 분리형 비휘발성 자기 디스크(158)로부터 판독하거나 그 자기 디스크(158)에 기록하는 자기 디스크 드라이브(156), 및 씨디롬 또는 기타 광학 매체와 같은 분리형 비휘발성 광학 디스크(162)로부터 판독하거나 그 광학 디스크(162)에 기록하는 광학 디스크 드라이브(160)가 도시되어있다. 예시적인 운영 환경 내에서 사용될 수 있는 기타 분리형/비분리형, 휘발성/비휘발성 컴퓨터 스토리지 매체는 자기 테이프 카세트, 플래시 메모리 카드, 디지털 다기능 디스크, 디지털 비디오 테이프, 반도체 램, 반도체 롬 등을 포함하지만 이에 한정된 것은 아니다. 하드 디스크 드라이브(154), 및 자기 디스크 드라이브(156) 및 광학 디스크 드라이브(160)은 전형적으로 인터페이스(166)와 같은 비휘발성 메모리 인터페이스를 통해 시스템 버스(136)에 연결된다.
드라이브 또는 기타 대용량 스토리지 장치, 및 상술되고 도 3 내에 도시된 그 관련 컴퓨터 스토리지 매체는 컴퓨터(130)를 위한 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 및 기타 데이터의 스토리지를 제공한다. 도 3에서, 예를 들어, 하드 디스크 드라이브(154)는 운영 시스템(170), 어플리케이션 프로그램(172), 기타 프로그램 모듈(174), 및 프로그램 데이터(176)를 저장하는 것으로 도시된다. 이런 구성 요소들은 운영 시스템(144), 어플리케이션 프로그램(146), 기타 프로그램 모듈(148), 및 프로그램 데이터(150)와 동일할 수 있고 상이할 수도 있다. 운영 시스템(170), 어플리케이션 프로그램(172), 기타 프로그램 모듈(174), 및 프로그램 데이터(176)는 최소한 그들이 상이한 복사본(copy)임을 나타내기 위해 여기에 상이한 번호를 부여하였다.
사용자는 키보드(180) 및 포인팅 장치(182)(예를 들어, 마우스, 트랙볼(trackball), 또는 터치 패드(touch pad))와 같은 입력 장치 및 사용자 인터페이스 선택 장치를 통해 컴퓨터(130)에 코맨드(command) 및 정보를 입력할 수 있다. 기타 입력 장치(도시되지 않음)는 마이크로폰(microphone),조이스틱(joystick), 게임 패드(game pad), 위성 안테나, 스캐너(scanner) 등을 포함할 수 있다. 이들 입력 장치 및 기타 입력 장치들은 시스템 버스(136)에 연결된 사용자 입력 인터페이스(184)를 통해 프로세싱 유닛(132)에 연결되지만, 병렬 포트, 게임 포트 또는 범용 시리얼 버스(UBS)와 같은 기타 인터페이스 및 버스 구조에 의해 연결될 수 있다. 모니터(188) 또는 기타 유형의 디스플레이 장치는 또한 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(136)에 연결된다. 모니터(188) 외에도, 컴퓨터는 종종 출력 주변 장치 인터페이스(도시되지 않음)를 통해 연결될 수 있는 프린터 및 스피커 등의 기타 주변 출력 장치(도시되지 않음)를 포함한다.
컴퓨터(130)는 원거리 컴퓨터(194)와 같은 하나 이상의 원거리 컴퓨터로 향하는 논리적 연결을 사용하는 네트워크 환경에서 작동될 수 있다. 원거리 컴퓨터(194)는 개인용 컴퓨터, 서버(server), 라우터(router), 네트워크 개인용 컴퓨터, 피어(peer) 장치, 또는 기타 공통 네트워크 노드일 수 있고, 전형적으로 컴퓨터(130)에 관하여 상술한 요소 중 다수 또는 모든 요소를 포함할 수 있다. 도 3에 기재된 논리적 연결들은 근거리 통신망(196) 및 원거리 통신망(198)을 포함하지만, 기타 네트워크들도 포함할 수 있다. 근거리 통신망(136) 및/또는 원거리 통신망(138)은 유선 네트워트, 무선 네트워크, 및 그들의 조합 등 일 수 있다. 이런 네트워킹 환경들은 사무실, 기업 광역 컴퓨터 네트워크, 인트라넷(intranet) 및 세계 컴퓨터 네트워크(예를 들어, 인터넷들)에서 일반적이다.
근거리 네트워크 환경에서 사용될 때, 컴퓨터(130)는 네트워크 인터페이스또는 어댑터(adapter; 186)를 통해 근거리 통신망(196)에 연결된다. 원거리 네트워크 환경에서 사용될 때, 컴퓨터(130)는 전형적으로 인터넷과 같은 원거리 통신망(198)을 통해 통신을 확립하기 위한 모뎀(178) 또는 기타 수단들을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(178)은 사용자 입력 인터페이스(184), 또는 기타 적절한 메커니즘을 통해 시스템 버스(136)에 연결된다. 네트워크 환경에서, 컴퓨터(130)에 관하여 도시된 프로그램 모듈들, 또는 그 일부분들은 원거리 메모리 스토리지(도시되지 않음) 내에 저장될 수 있다. 예를 들어, 도 3은 메모리 장치 상에 상주하는 원거리 어플리케이션 프로그램(192)을 도시한다. 도시된 네트워크 연결들은 예시적인 것이며, 컴퓨터들 간의 통신 링크를 확립하는 기타 수단들이 사용될 수 있다.
일반적으로, 컴퓨터(130)의 데이터 프로세서들은 컴퓨터의 다양한 컴퓨터 판독 가능 스토리지 매체 내에 상이한 시간에 저장된 명령들에 의해 프로그램된다. 프로그램들 및 운영 시스템들은 전형적으로, 예를 들어, 플로피 디스크 또는 씨디롬 상에, 분산되어있다. 그곳에서부터, 그들은 컴퓨터의 제 2 메모리로 설치되거나 로드(load)된다. 실행에서, 그들은 최소한 특히 컴퓨터의 주 전자 메모리로 로드된다. 여기에 기재된 본 발명은 이런 및 기타 다양한 유형의 컴퓨터 판독 가능 스토리지 매체가 마이크로프로세서(microprocessor) 또는 기타 데이터 프로세스의 조합 내의 후술된 단계들을 구현하기 위한 명령들 또는 프로그램들을 포함할 때, 이 매체를 포함한다. 본 발명은 여기에 기재된 방법들 및 기술들에 따라 프로그램된 컴퓨터도 포함한다.
도시의 목적을 위해, 운영 시스템과 같은 프로그램들 및 기타 실행 가능 프로그램 구성 요소들은 분리된 블럭으로 여기에 도시된다. 그러나 이런 프로그램들 및 구성 요소들은 컴퓨터의 상이한 스토리지 구성 요소들 내에 다양한 시간에 상주하고 컴퓨터의 데이터 프로세서(들)에 의해 실행된다.
컴퓨터(130)를 포함하는 예시적인 컴퓨팅 시스템 환경에 결합하여 기재됐지만, 본 발명은 수많은 기타 범용 또는 특수 목적 컴퓨팅 시스템 환경 또는 구성들에서 작동된다. 컴퓨팅 시스템 환경은 본 발명의 사용 또는 기능성의 영역에 임의의 제한을 두기 위한 것은 아니다. 게다가, 컴퓨팅 시스템 환경은 예시적인 운영 환경 내에 도시된 구성 요소들 중 임의의 하나 또는 그들의 조합에 관한 의존성 또는 요구를 갖는 것으로 해석되서는 안된다. 본 발명이 사용되기에 적절할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성들의 예는 개인용 컴퓨터, 서버 컴퓨터, 핸드 헬드(hand-held) 또는 랩탑(laptop) 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스(set top box), 프로그램 가능 가전 제품, 모바일(mobile) 전화, 네트워크 개인용 컴퓨터, 미니컴퓨터(minicomputer), 메인프레임(mainframe) 컴퓨터, 상술한 시스템들 또는 장치 등과 같은 임의의 것을 포함하는 분산형 컴퓨팅 환경들을 포함하지만 이에 한정된 것은 아니다.
본 발명은 하나 이상의 컴퓨터 또는 기타 장치에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행 가능 명령들의 일반적인 문맥으로 기재될 수 있다. 일반적으로, 프로그램 모듈들은 특정 태스크(task)를 수행하거나 특정 추상 데이터 유형들을 구현하는 루틴, 프로그램, 오브젝트, 구성 요소, 및 데이터 구조들을 포함하지만 이에 한정된 것은 아니다. 본 발명은 또한 태스크들이 통신 네트워크를 통해 링크(link)된 원거리 프로세싱 장치들에 의해 수행되는 분산형 컴퓨팅 환경 내에서도 구현될 수도 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈들은 메로리 스토리지 장치들을 포함하는 로컬 및 원거리 컴퓨터 스토리지 매체 내에 위치할 수 있다.
운영에서, 컴퓨터(130)는 부트 파일(102)들과 같은 컴퓨터 실행 가능 명령들을 실행한다.
다음의 예들은 본 발명을 더 설명한다. 컴퓨터(130)가 서버(104)로 사용되면, 그것의 메모리는 서버 인증서(118) 및 상술된 것처럼 클라이언트(106)와 통신하고 클라이언트(106)를 인증하기 위한 소프트웨어를 포함한다. 만약 컴퓨터(130)가 클라이언트(106)로 사용되면, 그것의 메모리는 클라이언트 인증서(112), 및 상술된 것처럼 서버(104)와 통신하기 위한, 서버(104)를 인증하고, 부트 파일(102)들을 인증하고, 및 부트 파일(102)들을 실행시키기 위한 소프트웨어를 포함할 것이다.
본 발명 또는 그것의 실시예(들)의 요소들을 소개할 때, "한(a, an), "본(the)", 및 "상기(said)"들은 하나 이상의 요소들이 있음을 의미하기 위한 것이다. 용어 "포함한다(comprising, including)", 및 "갖는다(having)"는 포함된다는 것을 의미하며, 리스트된 요소들 외에 추가적인 요소들이 있을 수 있다.
상기의 관점에서, 본 발명의 몇몇의 오브젝트들이 달성되고 기타 잇점들이 얻어짐이 보일 것이다.
다양한 수정들이 본 발명의 영역을 벋어나지 않고 상기 구조, 제품, 및 방법내에 만들어질 수 있었던 것처럼, 상술된 것들 내에 포함된 및 동반하는 도면들 내에 나타난 모든 것들은 도시적인 것일뿐 제한을 두기 위한 것은 아니다.
본 발명은 클라이언트, 서버, 부트 파일(들)의 세가지 중 임의의 것 또는 세가지 모두의 무결성을 확인하기 위해 사용될 수 있는 사전 설치 환경의 상주 구성 요소를 제공한다.

Claims (20)

  1. 부트 파일(boot file)들을 서버(server)에서 클라이언트(client)로 전송하는 방법에 있어서,
    상기 서버가 상기 클라이언트를 인증하는 단계;
    상기 클라이언트가 상기 서버를 인증하는 단계; 및
    상기 인증된 서버에서 상기 인증된 클라이언트로 상기 부트 파일들을 전송하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서, 상기 인증된 클라이언트가 상기 전송된 부트 파일들을 인증하는 단계를 더 포함하는 방법.
  3. 제 2 항에 있어서, 상기 인증된 클라이언트가 상기 인증된 부트 파일들을 실행시키는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서, 무효(invalid)하거나 취소된 인증서를 갖는 클라이언트들은 상기 서버에 의해 인증되지 않거나 응답되지 않는 방법.
  5. 제 1 항에 있어서, 무효하거나 취소된 인증서를 갖는 서버는 상기 클라이언트에 의해 승인(acknowledge)되지 않는 방법.
  6. 제 1 항에 있어서, 상기 클라이언트에 의해 수신되고 부정확하게 서명된 부트 파일들은 상기 클라이언트에 의해 실행되지 않는 방법.
  7. 제 1 항에 있어서, 상기 전송된 부트 파일들은 서명을 포함하고, 상기 클라이언트는 상기 서명을 검증하는 방법.
  8. 네트워크를 통해 부트 파일들을 서버에서 사전 운영 시스템 환경(pre-OS environment)을 갖는 클라이언트로 전송하는 방법에 있어서,
    상기 클라이언트 내에 클라이언트 인증서를 설치하는 단계;
    상기 클라이언트가 상기 네트워크를 통해 상기 서버가 상기 부트 파일들을 상기 클라이언트에 전송할 것을 요구하는 단계;
    상기 클라이언트가 상기 네트워크를 통해 상기 설치된 클라이언트 인증서를 송신하는 단계;
    상기 서버가 상기 수신된 클라이언트 인증서로 상기 클라이언트를 인증하는 단계; 및
    상기 부트 파일들을 상기 서버에서 상기 인증된 클라이언트로 전송하는 단계를 포함하는 방법.
  9. 제 8 항에 있어서,
    상기 인증된 클라이언트가 상기 전송된 부트 파일들을 인증하는 단계; 및
    상기 인증된 클라이언트가 상기 인증된 부트 파일들을 실행시키는 단계를 더 포함하는 방법.
  10. 네트워크를 통해 부트 파일들을 서버에서 사전 운영 시스템 환경을 갖는 클라이언트로 전송하는 방법에 있어서,
    상기 클라이언트 내에 클라이언트 인증서를 설치하는 단계;
    상기 클라이언트가 상기 네트워크를 통해 상기 서버가 상기 부트 파일들을 상기 클라이언트에 전송할 것을 요구하는 단계;
    상기 클라이언트가 상기 네트워크를 통해 상기 설치된 클라이언트 인증서를 송신하는 단계; 및
    상기 클라이언트가 상기 부트 파일들을 상기 서버로부터 수신하는 단계를 포함하는 방법.
  11. 제 10 항에 있어서,
    상기 인증된 클라이언트가 상기 전송된 부트 파일들을 인증하는 단계; 및
    상기 인증된 클라이언트가 상기 인증된 부트 파일들을 실행하는 단계를 더 포함하는 방법.
  12. 네트워크를 통해 부트 파일들을 서버에서 사전 운영 시스템 환경을 갖는 클라이언트로 전송하는 방법에 있어서,
    상기 클라이언트가 상기 네트워크를 통해 상기 서버가 상기 부트 파일들을 상기 클라이언트에 전송할 것을 요구하는 단계;
    상기 서버가 상기 네트워크를 통해 서버 인증서를 상기 클라이언트에 송신하는 단계;
    상기 클라이언트가 상기 수신된 서버 인증서로 상기 서버를 인증하는 단계;
    상기 클라이언트가 상기 네트워크를 통해 상기 인증된 서버가 상기 부트 파일들을 상기 클라이언트에 전송할 것을 요구하는 단계; 및
    상기 클라이언트의 요구에 대한 응답으로 상기 부트 파일들을 상기 인증된 서버에서 상기 클라이언트로 전송하는 단계를 포함하는 방법.
  13. 네트워크를 통해 부트 파일들을 서버에서 사전 운영 시스템 환경을 갖는 클라이언트로 전송하는 방법에 있어서,
    상기 서버가, 상기 네트워크를 통해 상기 클라이언트로부터 상기 서버가 상기 부트 파일을 상기 클라이언트에 전송하라는 요구를 수신하는 단계;
    상기 서버가 상기 네트워크를 통해 사전에 설치된 클라이언트 인증서를 상기 클라이언트로부터 수신하는 단계;
    상기 서버가 상기 수신된 클라이언트 인증서로 상기 클라이언트를 인증하는 단계; 및
    상기 서버가 상기 네트워크를 통해 상기 부트 파일들을 상기 인증된 클라이언트에 송신하는 단계를 포함하는 방법.
  14. 네트워크를 통해 부트 파일들을 서버에서 사전 운영 시스템 환경을 갖는 클라이언트로 전송하는 방법에 있어서,
    상기 클라이언트가, 상기 네트워크를 통해 상기 서버가 상기 부트 파일들을 상기 클라이언트에 전송할 것을 요구하는 단계;
    상기 클라이언트가 상기 네트워크를 통해 서버 인증서를 상기 서버로부터 수신하는 단계;
    상기 클라이언트가 상기 수신된 서버 인증서로 상기 서버를 인증하는 단계;
    상기 클라이언트가, 상기 네트워크를 통해 상기 인증된 서버가 상기 부트 파일들을 상기 클라이언트에 전송할 것을 요구하는 단계; 및
    상기 클라이언트의 요구에 대한 응답으로 상기 부트 파일들이 상기 인증된 서버에서 상기 클라이언트로 수신하는 단계를 포함하는 방법.
  15. 제 14 항에 있어서, 무효하거나 취소된 인증서를 갖는 서버들은 상기 클라이언트에 의해 승인되지 않는 방법.
  16. 제 14 항에 있어서, 상기 전송된 부트 파일들은 서명을 포함하고, 상기 클라이언트는 상기 서명을 검증하는 방법.
  17. 제 14 항에 있어서, 상기 클라이언트로부터 수신되고 부정확하게 서명된 부트 파일들은 상기 클라이언트에 의해 실행되지 않는 방법.
  18. 네트워크를 통해 부트 파일들을 서버에서 사전 운영 시스템 환경을 갖는 클라이언트로 전송하는 방법에 있어서,
    상기 클라이언트가, 상기 네트워크를 통해 상기 서버가 상기 부트 파일들을 상기 클라이언트에 전송할 것을 요구하는 단계;
    상기 클라이언트의 요구에 대한 응답으로 상기 부트 파일들을 상기 서버에 상기 클라이언트로 전송하는 단계;
    상기 클라이언트가 상기 전송된 부트 파일들을 인증하는 단계; 및
    상기 인증된 클라이언트가 상기 인증된 부트 파일들을 실행시키는 단계를 포함하는 방법.
  19. 제 18 항에 있어서, 상기 전송된 부트 파일들은 서명을 포함하고, 상기 클라이언트는 상기 서명을 검증하는 방법.
  20. 제 19 항에 있어서, 상기 클라이언트로부터 수신되고 부정확하게 서명된 부트 파일들은 상기 클라이언트에 의해 실행되지 않는 방법.
KR1020040048624A 2003-06-27 2004-06-26 서명된 부트 파일 전송 방법 Expired - Fee Related KR101085631B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/609,152 2003-06-27
US10/609,152 US7313690B2 (en) 2003-06-27 2003-06-27 Three way validation and authentication of boot files transmitted from server to client

Publications (2)

Publication Number Publication Date
KR20050002575A true KR20050002575A (ko) 2005-01-07
KR101085631B1 KR101085631B1 (ko) 2011-11-22

Family

ID=33418743

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040048624A Expired - Fee Related KR101085631B1 (ko) 2003-06-27 2004-06-26 서명된 부트 파일 전송 방법

Country Status (15)

Country Link
US (1) US7313690B2 (ko)
EP (1) EP1491983B1 (ko)
JP (1) JP2005018786A (ko)
KR (1) KR101085631B1 (ko)
CN (1) CN100550722C (ko)
AT (1) ATE403901T1 (ko)
AU (1) AU2004202717C1 (ko)
BR (1) BRPI0402447A (ko)
CA (1) CA2469749A1 (ko)
DE (1) DE602004015533D1 (ko)
MX (1) MXPA04006354A (ko)
MY (1) MY142353A (ko)
RU (1) RU2365987C2 (ko)
TW (1) TWI347769B (ko)
ZA (1) ZA200404377B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063752B2 (en) 2008-09-30 2015-06-23 Aristocrat Technologies Australia Pty Limited Security method

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487547B1 (en) 1999-01-29 2002-11-26 Oracle Corporation Database appliance comprising hardware and software bundle configured for specific database applications
US20070162420A1 (en) * 2004-01-21 2007-07-12 Oracle International Corporation Techniques for automatically discovering a database device on a network
US7536686B2 (en) 2000-09-08 2009-05-19 Oracle International Corporation Techniques for automatically installing and configuring database applications
US6993657B1 (en) 2000-09-08 2006-01-31 Oracle International Corporation Techniques for managing database systems with a community server
US7134122B1 (en) 2001-05-31 2006-11-07 Oracle International Corporation One click deployment
JP2005070968A (ja) * 2003-08-21 2005-03-17 Toshiba Corp 情報処理装置およびプログラム
US20050149729A1 (en) * 2003-12-24 2005-07-07 Zimmer Vincent J. Method to support XML-based security and key management services in a pre-boot execution environment
US20050161495A1 (en) * 2004-01-22 2005-07-28 Shepherd Russell A. Stackable display container, its preassembly and blank for making same
US7588578B2 (en) * 2004-06-02 2009-09-15 Facet Solutions, Inc Surgical measurement systems and methods
US7702907B2 (en) * 2004-10-01 2010-04-20 Nokia Corporation System and method for safe booting electronic devices
US7401212B2 (en) 2004-11-01 2008-07-15 Microsoft Corporation Self-contained computer servicing device
KR100925732B1 (ko) * 2005-05-27 2009-11-11 엘지전자 주식회사 장치관리에서의 부트스트랩 메시지 보안 전송 방법 및 장치
US8468591B2 (en) * 2006-10-13 2013-06-18 Computer Protection Ip, Llc Client authentication and data management system
US8239688B2 (en) 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US8254568B2 (en) 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US8291480B2 (en) 2007-01-07 2012-10-16 Apple Inc. Trusting an unverified code image in a computing device
US20220147634A1 (en) * 2007-05-22 2022-05-12 Computer Protection Ip, Llc Client authentication and data management system
US7962737B2 (en) * 2007-11-21 2011-06-14 Dell Products L.P. Methods, media and apparatus for booting diskless systems
US20090129597A1 (en) * 2007-11-21 2009-05-21 Zimmer Vincent J Remote provisioning utilizing device identifier
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US8543799B2 (en) 2008-05-02 2013-09-24 Microsoft Corporation Client authentication during network boot
RU2481616C2 (ru) * 2008-06-16 2013-05-10 Нокиа Сименс Нетуоркс Ой Способ и устройство для загрузки программного обеспечения
US8127146B2 (en) * 2008-09-30 2012-02-28 Microsoft Corporation Transparent trust validation of an unknown platform
US8447977B2 (en) 2008-12-09 2013-05-21 Canon Kabushiki Kaisha Authenticating a device with a server over a network
GB201005479D0 (en) * 2010-03-31 2010-05-19 Becrypt Ltd System and method for unattended computer system access
WO2012032628A1 (ja) * 2010-09-08 2012-03-15 株式会社東芝 情報処理装置
US8839363B2 (en) 2011-04-18 2014-09-16 Bank Of America Corporation Trusted hardware for attesting to authenticity in a cloud environment
US9191275B1 (en) * 2011-06-22 2015-11-17 Amazon Technologies, Inc. Global computer provisioning
US8707402B1 (en) 2011-06-22 2014-04-22 Amazon Technologies, Inc. Secure computer provisioning
US8745730B1 (en) 2011-09-13 2014-06-03 Amazon Technologies, Inc. Secure computer provisioning and operation
US8874703B1 (en) 2011-09-20 2014-10-28 Amazon Technologies, Inc. System and method of selectively implementing network configurations
US9064117B1 (en) 2011-09-20 2015-06-23 Amazon Technologies, Inc. Mobile provisioning device
US9195475B2 (en) 2013-05-01 2015-11-24 Hewlett-Packard Development Company, L.P. Data relay by server
US9984256B2 (en) 2014-05-15 2018-05-29 Seagate Technology Llc Storage device tampering detection
JP6312087B2 (ja) * 2014-09-29 2018-04-18 三菱電機ビルテクノサービス株式会社 ソフトウェアインストールシステム、インストール装置、端末装置およびソフトウェアインストール方法
US9489542B2 (en) 2014-11-12 2016-11-08 Seagate Technology Llc Split-key arrangement in a multi-device storage enclosure
US9489508B2 (en) 2014-11-13 2016-11-08 Seagate Technology Llc Device functionality access control using unique device credentials
WO2016144354A1 (en) * 2015-03-11 2016-09-15 Hewlett-Packard Development Company, L.P. Booting user devices to custom operating system (os) images
US10102378B2 (en) 2016-09-29 2018-10-16 Hewlett Packard Enterprise Development Lp Boot images for units under test
JP6889263B2 (ja) 2017-01-27 2021-06-18 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ユーザ機器の二次認証
KR101816651B1 (ko) * 2017-02-14 2018-01-09 주식회사 코인플러그 Utxo 기반 프로토콜의 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버
KR101816653B1 (ko) 2017-02-14 2018-02-21 주식회사 코인플러그 스마트 컨트랙트 및 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버
KR101816652B1 (ko) * 2017-02-14 2018-01-09 주식회사 코인플러그 Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버
US11107068B2 (en) 2017-08-31 2021-08-31 Bank Of America Corporation Inline authorization structuring for activity data transmission
CN107896224A (zh) * 2017-12-04 2018-04-10 宁波升维信息技术有限公司 一种基于双链路安全校验的网络信息发布方法
CN111856135A (zh) * 2020-07-29 2020-10-30 中国电力科学研究院有限公司 一种采用5g技术的移动式宽频测量系统及配置方法
CN113285855B (zh) * 2021-07-14 2021-12-07 天聚地合(苏州)数据股份有限公司 服务器监控方法及系统
US12362825B2 (en) * 2023-02-06 2025-07-15 Dell Products L.P. Systems and methods for adding nodes to a network using light-carrier enabled network

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758165A (en) * 1995-07-07 1998-05-26 Sun Microsystems, Inc. Local area network and network operating system for formatting a client disk and installing a client operating system
US5892904A (en) * 1996-12-06 1999-04-06 Microsoft Corporation Code certification for network transmission
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6560706B1 (en) * 1998-01-26 2003-05-06 Intel Corporation Interface for ensuring system boot image integrity and authenticity
US6298443B1 (en) * 1998-04-24 2001-10-02 Dell Usa, L.P. Method and system for supplying a custom software image to a computer system
US6219652B1 (en) * 1998-06-01 2001-04-17 Novell, Inc. Network license authentication
US6080207A (en) 1998-06-04 2000-06-27 Gateway 2000, Inc. System and method of creating and delivering software
US6131192A (en) * 1998-06-18 2000-10-10 Microsoft Corporation Software installation
US6189100B1 (en) * 1998-06-30 2001-02-13 Microsoft Corporation Ensuring the integrity of remote boot client data
RU2163729C2 (ru) * 1998-09-11 2001-02-27 Щеглов Андрей Юрьевич Система защиты информации в корпоративной сети, построеннной на каналах и средствах коммутации сети связи общего пользования
US6327660B1 (en) * 1998-09-18 2001-12-04 Intel Corporation Method for securing communications in a pre-boot environment
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6330670B1 (en) * 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6438550B1 (en) * 1998-12-10 2002-08-20 International Business Machines Corporation Method and apparatus for client authentication and application configuration via smart cards
US6341312B1 (en) * 1998-12-16 2002-01-22 International Business Machines Corporation Creating and managing persistent connections
US6263431B1 (en) * 1998-12-31 2001-07-17 Intle Corporation Operating system bootstrap security mechanism
US6314455B1 (en) * 1999-02-24 2001-11-06 International Business Machines Corporation Data processing system and method for permitting a server to remotely initiate a client's boot block recovery
EP1186039B1 (de) * 1999-05-03 2006-11-08 Infineon Technologies AG Verfahren und vorrichtung zur sicherung eines mehrdimensional aufgebauten chipstapels
US6385766B1 (en) * 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
RU2169942C1 (ru) * 1999-10-25 2001-06-27 Щеглов Андрей Юрьевич Распределенная система защиты вычислительных систем и сетей
US6871210B1 (en) * 2000-09-05 2005-03-22 International Business Machines Corporation Automatic allocation of least loaded boot server to PXE client on a network VIA DHCP server
EP1425745A2 (en) * 2001-08-27 2004-06-09 Gracenote, Inc. Playlist generation, delivery and navigation
US7093124B2 (en) * 2001-10-30 2006-08-15 Intel Corporation Mechanism to improve authentication for remote management of a computer system
US7114018B1 (en) * 2004-01-06 2006-09-26 American Megatrends, Inc. Methods, systems, and computer program products for communication of non-keyboard related data via a keyboard connection

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9063752B2 (en) 2008-09-30 2015-06-23 Aristocrat Technologies Australia Pty Limited Security method

Also Published As

Publication number Publication date
RU2365987C2 (ru) 2009-08-27
DE602004015533D1 (de) 2008-09-18
ZA200404377B (en) 2005-03-30
TWI347769B (en) 2011-08-21
MXPA04006354A (es) 2005-02-24
AU2004202717A1 (en) 2005-01-20
BRPI0402447A (pt) 2005-05-24
EP1491983A1 (en) 2004-12-29
US20050005096A1 (en) 2005-01-06
US7313690B2 (en) 2007-12-25
CN1578214A (zh) 2005-02-09
KR101085631B1 (ko) 2011-11-22
HK1069231A1 (en) 2005-05-13
JP2005018786A (ja) 2005-01-20
ATE403901T1 (de) 2008-08-15
RU2004119442A (ru) 2006-01-10
AU2004202717B2 (en) 2009-12-17
TW200511795A (en) 2005-03-16
CN100550722C (zh) 2009-10-14
AU2004202717C1 (en) 2010-07-08
EP1491983B1 (en) 2008-08-06
CA2469749A1 (en) 2004-12-27
MY142353A (en) 2010-11-15

Similar Documents

Publication Publication Date Title
KR101085631B1 (ko) 서명된 부트 파일 전송 방법
JP4310063B2 (ja) クライアント側のデジタルコンテンツロード方法
US8201239B2 (en) Extensible pre-boot authentication
US7305549B2 (en) Filters to isolate untrusted ports of switches
JP4731817B2 (ja) ボリュームライセンスキー環境においてソフトウェアの著作権侵害を阻止するシステムおよび方法
US11206141B2 (en) Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates
EP2065800B1 (en) Remote provisioning utilizing device identifier
EP2550769B1 (en) System and method for remote maintenance of multiple clients in an electronic network using virtual machines
US8544092B2 (en) Integrity verification using a peripheral device
US20080022380A1 (en) Method of patching applications on small resource-constrained secure devices
US20050044363A1 (en) Trusted remote firmware interface
US8332928B2 (en) Location attestation service
JP2010073193A (ja) モバイルインターネットデバイス(mid)でuefiファームウェア及びuefiアウェアなオペレーティングシステムのセキュアなブートのためのシステム及び方法
US20120266259A1 (en) Approaches for firmware to trust an application
JP2010073193A5 (ko)
KR20070121647A (ko) 볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하는컴퓨터 구현 방법, 시스템 및 컴퓨터 판독가능 매체
US20050166041A1 (en) Authentication in a distributed computing environment
US11240246B2 (en) Secure confirmation exchange for offline industrial machine
JP2008539482A (ja) クライアントをネットワークに接続する方法、システム、及びプログラム製品
US8904487B2 (en) Preventing information theft
HK1069231B (en) Three way validation and authentication of boot files transmitted from server to client

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20040626

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20090623

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20040626

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20110113

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20110826

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20111115

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20111115

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20151009