KR101453266B1 - 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시 - Google Patents

서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시 Download PDF

Info

Publication number
KR101453266B1
KR101453266B1 KR1020137008066A KR20137008066A KR101453266B1 KR 101453266 B1 KR101453266 B1 KR 101453266B1 KR 1020137008066 A KR1020137008066 A KR 1020137008066A KR 20137008066 A KR20137008066 A KR 20137008066A KR 101453266 B1 KR101453266 B1 KR 101453266B1
Authority
KR
South Korea
Prior art keywords
data
usb drive
controller
platform controller
platform
Prior art date
Application number
KR1020137008066A
Other languages
English (en)
Other versions
KR20130058058A (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 KR20130058058A publication Critical patent/KR20130058058A/ko
Application granted granted Critical
Publication of KR101453266B1 publication Critical patent/KR101453266B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

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

Abstract

보안 서버 시스템 관리를 위한 방법, 장치, 시스템 및 컴퓨터 프로그램 제품을 개시한다. 시스템 소프트웨어 및/또는 펌웨어 갱신을 포함한 페이로드는 온디맨드식 보안 I/O 동작으로 분산된다. I/O 동작은 에뮬레이트된 USB 드라이브로 서버 운영체제에 의해 액세스될 수 없는 보안 통신 채널을 통해 수행된다. 보안 통신 채널은 페이로드의 수신자를 인증한 후에만 I/O 동작을 위해 설정될 수 있고, 페이로드는 잠재적으로 감염된 운영체제에 의한 액세스로부터 보호될 수 있다. 더욱이, 페이로드는 BIOS 갱신 스케줄에 의존하기 보다는 온디맨드식으로 전달될 수 있고, 페이로드는 기록 동작의 속도로 USB 드라이브로 전달될 수 있다.

Description

서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 USB 프록시{DEMAND BASED USB PROXY FOR DATA STORES IN SERVICE PROCESSOR COMPLEX}
< 저작권 공고>
여기에는 저작권 보호를 받는 내용이 포함되어 있다. 저작권 소유자는 특허 및 상표청 특허 파일 또는 기록에 나타나는 바와 같이 누군가에 의한 본 특허 개시물의 팩시밀리 복제를 반대하지 않지만, 그 외에는 어떠한 경우에도 저작권에 대한 모든 권리를 보유한다.
본 개시물은 일반적으로 컴퓨팅 환경의 관리에 관한 것이다.
도처에 있는 인터넷으로 인하여, 서버 컴퓨터 시스템의 사용이 급증했다. 서버 컴퓨터 시스템은 종종, 큰 조직 내부의 개인 사용자에게, 또는 인터넷을 통한 공용 사용자에게 네트워크를 통하여 필수 서비스를 제공한다. 다수의 서버는 웹서버, 프린트 서버 및 데이터베이스 서버와 같은 전용 기능을 가진다. 일부 업무는 그들의 업무 기능(business functions)의 운영에 대단히 중요한 "서버팜(server farms)" 또는 "서버 프로세서 컴플렉스(server processor complexes)"에서 수 백 또는 심지어 수 천 서버 컴퓨터 시스템을 유지한다.
엔터프라이즈 서버(enterprise server)는 단기 고장일지라도 시스템을 구매 및 설치하는 것보다 더 많은 비용이 들 수 있으므로 이상적으로는 고장에 상당히 내성이 강하다. 예를 들면 고장난 시스템을 보다 신뢰할만한 시스템으로 완전히 교체하는 비용을 정당화하기 위해 전국 증권 거래소에서는 수 분의 다운 시간만이 걸릴 수 있다. 신뢰성을 증가시키기 위해, 대부분의 서버는 오류 검출 및 보정, 여분의 디스크, 여분의 전력 공급원 등을 가진 메모리를 사용한다. 또한 이러한 구성요소는 관리자가 서버를 셧다운(shutdown)하지 않고 이들을 실행중인 서버 상에 배치할 수 있도록 자주 핫스와프(hot swap)될 수 있다. 서버는 보통 자격있는 엔지니어에 의해 관리되므로, 서버 운영체제는 또한 데스크탑 컴퓨터에서보다는 현저히 큰 퍼센트를 가진 리눅스 운영체제로써 사용자 친근성과 사용의 용이성보다는 안정성과 성능을 위해 더 조정된다. 서버 운영체제, BIOS(Basic Input/Output System) 펌웨어 및 다른 시스템 펌웨어로의 갱신은 안전한 방식 및 가능한 신속하게 수행되어야 한다.
도 1은 본 발명의 일 실시예에 따라서, 보안 서버 플랫폼 관리를 가능하게 하도록 구성된 플랫폼의 블록도.
도 2는 본 발명의 일 실시예에 따라서, 보안 서버 플랫폼 관리 서비스를 제공시에 도 1의 시스템의 구성요소의 동작을 보여주는 흐름 도표.
도 3은 본 발명의 일 실시예예 따라서, 보안 서버 플랫폼 관리 서비스를 제공시에 도 1의 시스템의 구성요소의 동작을 도시하는 흐름도.
서버 운영체제 소프트웨어 및/또는 BIOS와 다른 시스템 펌웨어를 갱신하기 위한 현 메카니즘은 운영체제의 로딩 후에 하드 드라이브 파티션으로부터 또는 플래시 메모리로부터 로딩되는 BIOS 펌웨어 내에 페이로드(payload)를 내장시키는 것으로 제한된다. 이들 갱신은 전형적으로, 시스템이 SMM(System Management Mode)에 있을 시에 발생되는데, 이 SMM은 인텔 386SL로써 먼저 출시되고 후속한 인텔 구조에서 차후 마이크로프로세서에 사용될 수 있는 컴퓨터 시스템의 동작 모드이다. SMM 동안에, (운영체제를 포함한) 모든 정상 실행이 중지되고, 특별한 개별 소프트웨어(주로 펌웨어 또는 하드웨어지원 디버거(hardware-assisted debugger))가 상위 특권 모드로 실행된다. SMM은 독립된 메모리 및 실행 환경을 제공하고, SMM 코드가 운영체제에 가시적이진 않지만, SMM 코드는 호스트 물리적 메모리에 전체 액세스를 유지하고 주변 하드웨어에 대한 제어를 완료한다.
SMM은 일반적으로, 시스템을 구성하고, 메모리 또는 칩셋 오류와 같은 시스템 이벤트를 다루고, 높은 CPU 온도에 도달시에 셧다운하는 것과 같은 시스템 안전 기능을 수행하고, 팬을 돌리는 것과 같은 전력 관리 동작을 수행하고, 그리고 하드웨어를 에뮬레이트(emulate)하는데 사용된다. 통상적으로, SMM은 시스템 관리 인터럽트로 서비스를 제공하기 시작하고, 그 후에 (실행 및 애플리케이션 소프트웨어를 포함한 소프트웨어 스택으로 다시) 프로그램 실행을 재개한다. 전형적으로, BIOS(Basic Input/Output System)는 SMM에 있는 동안에 시스템 동작을 제한하지 않는다.
BIOS 펌웨어는 전형적으로, 크기가 시스템에서 시스템으로 변하는 제한된 공간을 가진 플래시 메모리 장치 상으로 로딩된다. 따라서 BIOS 펌웨어 내 또는 하드 드라이브 파티션에 페이로드로서 시스템 소프트웨어 또는 펌웨어로 추가 변동을 내장하게 되면 페이로드 크기의 제한을 요구한다. 더욱이 페이로드는 일단 로딩되면 서버 운영체제에 의해 판독될 수 있으므로, 페이로드가 바이러스에 감염된 서버 운영체제에 노출될 수 있는 보안 리스크가 존재한다. 하나의 가능한 해결방안은 서명 버전의 페이로드를 제공하는 것이지만, 서명의 검증 및 페이로드 판독은 단일 시스템 관리 인터럽트를 처리하기 위한 시간 제약 하에서 SMM에서 수행되어야 한다. 이들 시간 제약은 서버 시스템을 위한 시스템 소프트웨어 및/또는 펌웨어 갱신을 포함한 페이로드를 분산시키는 능력을 더 제한한다.
이들 제약을 극복하기 위해 제안되는 해결방안은 온디맨드식(on-demand) 보안 I/O 동작으로 서버 시스템을 위한 시스템 소프트웨어 및/또는 펌웨어 갱신을 포함한 페이로드를 분산시키는 것이다. I/O 동작은 에뮬레이트된 USB 드라이브로부터의 서버 운영체제에 의해 액세스될 수 없는 보안 통신 채널을 통해 수행된다. USB 드라이브는 플랫폼 제어기 RAM 및/또는 플래시 메모리를 사용하여 에뮬레이트된다.
BIOS 펌웨어에 페이로드를 내장하고 플래시 메모리의 크기 제한을 겪거나 제한된 크기의 하드 드라이브 파티션으로 페이로드를 배치하는 대신에, 페이로드는 임의 크기일 수 있다. 페이로드는 운영체제 소프트웨어, BIOS 이미지, 진단 소프트웨어 및/또는 UEFI(Unified Extensible Firmware Interface) 모듈을 포함할 수 있다. 페이로드의 수신자를 인증한 후에만 I/O 동작을 위해 보안 통신 채널을 설정할 수 있고, 잠재적으로 감연된 서버 운영체제에 의한 액세스로부터 페이로드를 보호할 수 있다. 더욱이 페이로드는 BIOS 갱신 스케줄에 의존하기 보다는 요구시에 전달될 수 있고, 페이로드는 USB 드라이브로 기록 동작 속도로 전달될 수 있다.
본 발명의 실시예는 서버 컴퓨터 시스템의 BIOS, 다른 시스템 펌웨어 및 운영체제로 갱신을 제공하는 것을 포함하여 서버 플랫폼을 안전하게 관리하기 위한 방법, 장치, 시스템 및 컴퓨터 프로그램 제품을 제공할 수 있다. 일 실시예에서, 방법은 SMI(System Management Interrupt)를 발생시킬 수 있는 I/O 제어기에 연결된 플랫폼 제어기를 가진 시스템에서, 데이터에 대한 보안 액세스를 요구하는 이벤트에 응답하여, 시스템이 시스템 관리 모드로 들어가게 하도록 SMI를 발생시키는 단계, 에뮬레이트된 USB 드라이브를 생성하기 위해 플랫폼 제어기의 자원을 사용하는 단계 -자원은 데이터를 저장함- , 시스템의 운영체제에 의해 액세스될 수 없는 접속을 통해 에뮬레이트된 USB 드라이브로부터 데이터를 복사하는 단계, 그리고 시스템 관리 모드를 벗어나기 전에 데이터를 처리하는 단계를 포함한다. 본 방법은 시스템 관리 모드에 있는 동안에 데이터의 수신자를 인증하는 단계를 더 포함할 수 있다. 본 방법은 플랫폼 제어기가 I/O 이벤트를 I/O 제어기로 어써팅(assert)하는 단계를 더 포함할 수 있다. 본 방법은 I/O 제어기가 I/O 이벤트를 통해 데이터를 수신하는 단계를 더 포함할 수 있다. 일 실시예에서, 플랫폼 제어기는 BMC(Baseboard Management Controller)이다. 다른 실시예에서, 플랫폼 제어기는 시스템 칩셋의 ME(manageability engine)에 의해 제공된다. 일 실시예에서, 본 방법은 엔터프라이즈 서버로부터 에뮬레이트된 USB 드라이브로 데이터를 다운로드하는 단계를 더 포함할 수 있다. 본 방법은 시스템이 시스템 관리 모드에서 벗어나기 전에 운영체제에 의한 시계(visibility)로부터 에뮬레이트된 USB 드라이브를 제거하는 단계를 더 포함할 수 있다. 또한 본 방법을 수행하기 위한 인스트럭션을 가진 시스템 및 컴퓨터 프로그램 제품을 제공한다.
명세서에서 본 발명의 "일 실시예" 또는 "실시예"에 대한 참조는 실시예와 함께 기술된 특정한 특징, 구조 또는 특성이 본 발명의 적어도 일 실시예에 포함된다는 것을 의미한다. 따라서 명세서를 통한 다양한 장소에 나타나는 구문 "일 실시예에서", "일 실시예에 따라서" 등의 출현이 모두 동일 실시예를 참조할 필요는 없다.
설명을 위하여, 특정 구성 및 상세사항은 본 발명의 철저한 이해를 제공하기 위하여 기술된다. 그러나 당업자는 본 발명의 실시예가 여기에 제시된 특정 상세사항없이 실행될 수 있다는 것을 명백히 알 것이다. 더욱이 잘 알려진 특징은 본 발명을 불분명하게 하지 않도록 생략되거나 또는 단순화될 수 있다. 본 설명을 통해 다양한 예가 주어질 수 있다. 이들은 단지 본 발명의 특정 실시예의 설명이다. 본 발명의 범주는 주어진 예로 제한되지 않는다.
용어 "대역외(out-of-band)"는 클라이언트 장치의 OS(operating system)와는 독립적으로 행해지는 클라이언트의 관리 모듈과 서버 장치 간의 통신과 같은 주류로부터 독립적인 통신을 기술하는데 사용된다. 이 명세서에서, 클라이언트 장치는 서버 컴퓨터 시스템일 수 있으며, 반면에 서버 장치는 다른 엔터프라이즈 관리 서버 시스템 상에서 실행중인 엔터프라이즈 관리 모듈일 수 있다.
도 1은 본 발명의 일 실시예에 따라서, 서버 운영체제뿐만 아니라 BIOS 및 다른 시스템 펌웨어의 보안 시스템 관리를 가능하게 하도록 구성된 플랫폼의 블록도이다. 서버 컴퓨터 시스템에 대응한 플랫폼(100)은 DMI(desktop management interface)(111)를 통해 칩셋(120)으로 연결된 프로세서(110)를 포함한다. 프로세서(110)는 플랫폼(100)에 처리 전력을 제공하고, 단일 코어 또는 멀티 코어 프로세서일 수 있고, 하나 이상의 프로세서가 플랫폼(100)에 포함될 수 있다. 프로세서(110)는 하나 이상의 시스템 버스, 통신 경로 또는 매체(도시되지 않음)를 통해 플랫폼(100)의 다른 구성요소로 연결될 수 있다. 프로세서(110)는 서버 운영체제(113)를 로딩할 수 있는 BIOS(114)를 로딩 및 실행함으로써 초기화될 수 있다. 동작 동안에, 프로세서(110)는 결국에 SMM(System Management Mode)으로 들어갈 수 있다. SMM 핸들러(115)를 작동시켜 SMM으로 들어갈 수 있다. SMM 동안에, (운영체제 113을 포함한) 모든 정상 실행이 중지되고, 특별한 개별 소프트웨어(주로 펌웨어 또는 하드웨어지원 디버거)가 상위 특권 모드로 실행된다. SMM은 독립된 메모리 및 실행 환경을 제공하고, SMM 코드는 서버 운영체제(113)에 가시적이진 않지만, 호스트 물리적 메모리에 대한 전체 액세스를 유지하고, 주변 하드웨어에 대한 제어를 완료한다.
다시 도 1을 참조하면, 플랫폼 제어기/BMC(180)는 엔터프라이즈 서비스(170)와 플랫폼 하드웨어 간에 대역외 인터페이스를 관리하기 위한 논리부를 제공한다. 예를 들면 플랫폼 제어기/BMC(180)는 IPMI(Intelligent Platform Management Interface) 구조에 따라서 BMC(Baseboard management Controller)에 의해 제공될 수 있다. IPMI와 같은 대역외 인터페이스는 프로세서(110) 상에서 실행되는 서버 운영체제(113)의 독립적으로 동작하며, 시스템 관리 소프트웨어를 사용하는 관리자로 하여금 가동 운영체제가 없을 때에도 플랫폼(100)을 관리할 수 있도록 해준다. 일 실시예에서, 프로세서(110)는 서버 운영체제(113)의 지시하에서 동작하는 반면에, 플랫폼 제어기/BMC(180)는 서버 운영체제(113)에 의해 액세스될 수 없는 안전한 독립 환경을 제공한다. 플랫폼 제어기/BMC(180)는 네트워크 제어기(160) 및 대역외 통신 채널(171)를 통해 엔터프라이즈 서비스(170)로 통신가능하게 연결된다. 대역외 통신 채널(171)은 엔터프라이즈 서비스(170)가 플랫폼(100) 하드웨어와 직접 통신할 수 있도록 해준다.
엔터프라이즈 서비스(170)를 사용하여, 플랫폼 제어기/BMC(180)는 본 발명의 일 실시예에 따라서 서버 플랫폼 관리를 위한 서비스를 제공하는 것을 포함하여, 플랫폼(100)과 같은 플랫폼의 구성 및 관리를 위한 전사적 정책(enterprise-wide policies)과의 일관성을 유지한다. 플랫폼 관리 서비스(182)는 플랫폼 제어기/BMC(180)에 의해 실행되는 펌웨어로서 구현될 수 있다. 플랫폼 관리 서비스(182)는 BIOS(114), 다른 시스템 펌웨어 및 서버 운영체제(113)를 관리한다. 플랫폼 제어기/BMC(180)는 그 자신의 전용 메모리 자원, 플랫폼 제어기(PC) RAM(184), 그리고 플랫폼 제어기/BMC(180)를 초기화하기 위해 BMC 펌웨어(188)를 포함한 PC 플래시(186)를 가진다. 또한 플랫폼 제어기/BMC(180)는 그 자신의 집적 비디오 제어기(도시되지 않음)를 가질 수 있다. 플랫폼(100)의 다른 구성요소와 함께 플랫폼 관리 서비스(182)의 동작은 아래의 도 2 및 도 3을 참조하여 더 기술된다.
도 1을 다시 참조하면, 칩셋(120)은 플랫폼(100)의 구성 및 동작을 관리하기 위해 프로세서(110)와는 독립적으로 동작하는 내장된 마이크로프로세서로서 구현될 수 있는 ME(manageability engine)(130)를 포함한다. 플랫폼 제어기/BMC(180)에 의해 제공되는 안전한 독립 환경에 부가적으로, ME(130)는 또한 서버 운영체제(113)에 의해 액세스될 수 없는 안전한 독립 환경을 제공할 수 있다. 일 실시예에서, ME(130)는 사용자를 인증하고, 주변 장치에 대한 액세스를 제어하고, 플랫폼(100)의 저장장치에 저장된 데이터의 보호를 위해 암호화 키를 관리하고, 그리고 네트워크 제어기(160)를 통해 엔터프라이즈 서비스(170)로 인터페이스를 제공한다.
물리적 플랫폼 제어기/BMC(180)가 없는 본 발명의 실시예에서, ME(130)는 플랫폼 제어기/BMC(180)에 의해 제공되는 것으로 여기에 기술된 기능을 제공할 수 있다. 이러한 실시예에서, ME(130)는 그 자신의 보안 RAM(도 1에 도시되지 않음)과 같이 서버 플랫폼 관리 서비스를 제공하기 위해 그 자신의 내부 자원을 사용한다. 이들 내부 자원은 예를 들어 USB 가상 드라이브를 에뮬레이트하는데 사용될 수 있는데, 이는 도 2 및 도 3을 참조하여 더 후술될 것이다.
도 1을 다시 참조하면, ME(130)와 엔터프라이즈 서비스(170) 간의 통신은 대역외 통신 채널(171)을 통해 발생한다. 일 실시예에서, 대역외 통신 채널(171)은 서버 시스템 상의 ME(130)와, 서버 컴퓨터 시스템을 관리하는 엔터프라이즈 서비스(170) 사이의 보안 통신 채널이다.
도 1에 도시된 실시예에서, ME(130)는 MECI(Manageability Engine Controller Interface)(131)를 통해 I/O 제어기(140)로 연결된다. 일 실시예에서, I/O 제어기(140)는 저장 커맨드 디코딩 및 다른 가속화 동작을 수행하는 범용 제어기이다. 도시된 실시예에서, ME(130)는 I/O 제어기(140)의 행동을 제어하고, 이어서 I/O 제어기(140)는 USB 제어기(150)의 행동을 제어한다. I/O 제어기(140)는 상호연결부(181)를 통해 플랫폼 제어기/BMC(180)로 연결되는 것으로 도시된다. USB 연결부(152)는 USB 제어기(150)로부터 플랫폼 제어기/BMC(180)로 물리적 USB 와이어를 경로배정하고, USB 연결부(154)는 USB 제어기(150)로부터 ME(130)로 물리적 USB 와이어를 경로배정한다. USB 연결부(152, 154)는 USB 가상 드라이브를 에뮬레이트하기 위해 사용되고, 이는 도 2 및 도 3을 참조하여 더 후술될 것이다.
플랫폼(100)은 DRAM(dynamic random access memory)(112), 칩셋(120) 내 SRAM(static random access memory)(122) 및 플래시 메모리(190)와 같은 메모리 장치를 더 포함한다. 또한 앞에서 언급한 바와 같이, 플랫폼 제어기/BMC(180)는 그 자신의 메모리 장치 PC RAM(184) 및 PC 플래시(186)를 가진다. 이들 메모리 장치는 RAM(random access memory) 및 ROM(read-only memory)를 포함할 수 있다. 이 개시물의 목적을 위하여, 용어 "ROM"은 일반적으로 EPROM(erasable programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 ROM, 플래시 메모리 등과 같은 비휘발성 메모리 장치를 언급하는데 사용될 수 있다. (도시되지 않은) 다른 저장 장치는 IDE(integrated drive electronics) 하드 드라이브와 같은 대용량 저장장치, 그리고/또는 플로피 디스크, 광학 저장소, 테잎, 플래시 메모리, 메모리 스틱, 디지털 비디오 디스크, 생물학적 저장소 등과 같은 다른 장치 또는 매체를 포함할 수 있다.
칩셋(120)은 플래시 인터페이스(191)를 통해 플래시 메모리(190)를 액세스할 수 있다. 메모리 장치 DRAM(112), SRAM(122) 및 플래시 메모리(190)에 저장된 데이터는 암호화될 수 있다. 유사하게, PC RAM(184)과 PC 플래시(186)에 저장된 데이터는 암호화될 수 있다.
플래시 메모리(190)는 플랫폼(100)을 초기화하는데 사용되는 펌웨어를 포함한다. 이 초기화 펌웨어는 (비디오 디스플레이 카드 및 하드 디스크와 같은) 시스템 구성요소 하드웨어 및, ME(130)를 포함한 소정 다른 하드웨어 장치를 식별 및 초기화하기 위해 BIOS(Basic Input/Output System) 펌웨어(192)를 포함한다. BIOS 펌웨어(192)는 기지의 저 능력 상태로 동작하도록 플랫폼(100)의 시스템 구성요소 하드웨어를 준비시키고, 따라서 운영체제를 포함한 다양한 매체 상에 저장된 다른 소프트웨어 프로그램이 로딩 및 실행될 수 있고 플랫폼(100)의 제어를 받을 수 있다. BIOS 펌웨어(192)는 부팅 처리 동안에 ME(130)의 초기 구성을 가능하게 하는 BIOS/ME 통신 모듈(도시되지 않음)을 포함할 수 있다. 일 실시예에서, ME(130)는 플랫폼(100)을 위해 운영체제를 로딩하기 바로 전에 통지를 수신하도록 BIOS/ME 통신 모듈에 등록한다. ME(130)는 이 통지로 인하여 운영체제 로딩을 준비시에 소정 인스트럭션을 수행할 수 있다.
또한 플래시 메모리(190)는 네트워크 제어기(160)를 구성하기 위한 네트워크 제어기 펌웨어(194), 그리고 칩셋(120)을 구성하기 위한 칩셋 펌웨어(196)를 포함한다. 또한 플래시 메모리(190)는 데이터 영역(198)을 포함한다. 일 실시예에서, 데이터 영역(198)은 암호화되고, ME(130)에 의해서만 판독될 수 있다. 서비스 제공을 위해 ME(130)에 의해 사용되는 정보는 플래시 메모리(190)의 데이터 영역(198)에 저장될 수 있다.
또한 프로세서(110)는 비디오 제어기, SCSI(small computer system interface) 제어기, 네트워크 제어기, USB(universal serial bus) 제어기, 키보드 및 마우스와 같은 입력 장치 등과 같은 추가 구성요소로 통신가능하게 연결될 수 있다. 또한 플랫폼(100)은 다양한 시스템 구성요소를 통신가능하게 연결하기 위한 메모리 제어기 허브(memory controller hub), 추가 입력/출력(I/O) 제어기 허브, PCI 루트 브리지(PCI root bridge) 등과 같은 하나 이상의 브리지 또는 허브를 포함할 수 있다. 여기에 사용되는 바와 같이, 용어 "bus"는 공유 통신 경로뿐만 아니라 점대점(point-to-point) 경로를 언급하는데 사용될 수 있다.
예를 들어 네트워크 제어기(160)와 같은 소정 구성요소는 버스와 통신하기 위한 인터페이스(예를 들면 PCI 커넥터)를 가진 어댑터 카드로서 구현될 수 있다. 일 실시예에서, 하나 이상의 장치는 프로그램가능 또는 비프로그램가능 논리 장치 또는 어레이, ASIC(application-specific integrated circuits), 내장 컴퓨터, 스마트 카드 등과 같은 구성요소를 사용하는 내장된 제어기로서 구현될 수 있다.
여기에 사용된 바와 같이, 용어 "처리 시스템"과 "데이터 처리 시스템"은 단일 머신, 또는 함께 동작하며 통신가능하게 연결된 머신 또는 장치의 시스템을 폭넓게 포함하려 한다. 처리 시스템의 예는 분산 컴퓨팅 시스템, 수퍼컴퓨터, 고성능 컴퓨팅 시스템, 컴퓨팅 클러스터, 메인프레임 컴퓨터, 미니 컴퓨터, 클라이언트-서버 시스템, 퍼스널 컴퓨터, 워크스테이션, 서버, 휴대용 컴퓨터, 랩탑 컴퓨터, 태블릿, 전화, PDA(personal digital assistants), 핸드헬드 장치, 오디오 및/또는 비디오 장치와 같은 엔터테인먼트 장치, 그리고 정보를 처리 또는 전송하기 위한 다른 장치를 포함하는데, 이로 제한되지는 않는다.
플랫폼(100)은 키보드, 마우스 등과 같은 통상적 입력 장치로부터의 입력에 의해, 그리고/또는 다른 머신, 바이오메트릭 피드백(biometric feedback) 또는 다른 입력 소스 또는 신호로부터 수신한 커맨드에 의해 적어도 일부분 제어될 수 있다. 플랫폼(100)은 NIC(network interface controller)(160), 모뎀 또는 다른 통신 포트 또는 결합과 같은 것을 통해 하나 이상의 원격 데이터 처리 시스템으로의 하나 이상의 연결을 이용할 수 있다.
플랫폼(100)은 LAN(local area network), WAN(wide area network), 인트라넷, 인터넷 등과 같은 물리적 및/또는 논리적 네트워크에 의해 다른 처리 시스템(도시되지 않음)으로 상호연결될 수 있다. 네트워크를 포함한 통신은 무선 주파수(RF), 위성, 마이크로파, IEEE(Institute of Electrical and Electronics Engineers) 802.11, 블루투스, 광학, 적외선, 캐이블, 레이저 등을 포함한 다양한 유선 및/또는 무선 단거리 또는 장거리 반송파 및 프로토콜을 이용할 수 있다.
도 2를 참조하면, 본 발명의 일 실시예에 따라서 보안 서버 플랫폼 관리 서비스를 제공하기 위하여, 도 1의 시스템의 구성요소의 동작을 보여주는 흐름도를 도시한다. BIOS(214)가 플랫폼 제어기/BMC(280)에 의해 관리되는 프로그램 또는 데이터에 대한 액세스를 요구하는 I/O 동작을 수신하는 것과 같은 보안 플랫폼 관리 서비스를 요구하는 이벤트를 처리한다. 예를 들어 플랫폼 제어기/BMC(280)는 PC 플래시(286)의 미사용 부분 및/또는 PC RAM(284)과 같은 보안 메모리로 BIOS 펌웨어를 복사함으로써 이용가능한 새 버전의 BIOS 펌웨어를 만들었을 수도 있다. 그 후, 플랫폼 제어기/BMC(280)는 BIOS(214)가 새 BIOS 펌웨어를 판독하게 하는 I/O 동작을 트리거했을 수도 있다.
플랫폼 제어기/BMC(280)의 서비스를 수신하고, 운영체제(213)가 플랫폼 제어기/BMC(280)와 통신에 대한 액세스를 가지지 않도록 보장하기 위해, BIOS(214)는 프로세서(210)가 SMM(System Management Mode)으로 배치되게 한다. BIOS(214)는 프로세서(210)가 SMM으로 배치되었음을 플랫폼 제어기/BMC(280)에 증명한다. BIOS(214)와 플랫폼 제어기/BMC(280) 간의 통신은 BIOS(214)의 자격증명서(credentials)의 인증시에만 발생한다. 이들 자격증명서는 시스템 초기화 시에, 그리고 운영체제(213)를 로딩하기 전에 정보 교환에 의해 설정될 수 있다. 이들 자격증명서는 플랫폼 제어기/BMC(280)에 의해 BIOS(214)로 제공되는 임의 발생 식별자의 형태를 가질 수 있으며, 단일 부팅 세션 동안에만 사용될 수 있다. 또한 BIOS(214)를 인증하고, 프로세서(210)가 SMM에 배치되었음을 나타내기 위해 다른 형태의 사용자명 및 패스워드를 사용할 수 있다.
보안 플랫폼 관리 서비스에 대한 요구를 확인하는 것에 응답하여, 액션(2.1)에서, BIOS(214)는 SMM으로 들어가기 위한 요청, 그리고 인증 목적을 위한 사용자명 및 패스워드로써 SMM 핸들러(215)를 호출한다. 일 실시예에서, SMM으로 들어가기 위한 요청은 IPMI(Intelligent Platform Management Interface) SMM 인터페이스에 따라서 발생된다. 액션(2.2)에서, SMM 핸들러(215)는 사용자명 및 패스워드를 전달하며 플랫폼 제어기/BMC(280)를 호출한다. 플랫폼 제어기/BMC(280)는 사용자명 및 패스워드를 수신시에 호출자를 인증하는데, 이는 IPMI 인증 인터페이스에 따라서 수행될 수 있다. 호출자가 인증되면, 액션 2.3에서, 플랫폼 제어기/BMC(280)는 PC RAM(284) 및 PC 플래시(286)의 자원을 사용하여 USB 가상 드라이브(202)의 에뮬레이션을 시작한다. 액션 2.4에서, 플랫폼 제어기/BMC(280)는 SMM 핸들러(215)로 상태 정보를 제공하고, 액션 2.5에서, SMM 핸들러(215)는 BIOS(214)로 다시 장치 상태 정보를 전달한다. BIOS(214)는 장치 상태 정보에 응답하여 플랫폼 제어기/BMC(280)에 연결된 물리적 USB와 관련된 서브시스템에서 USB 드라이브를 발견하기 시작한다. 액션(2.6)에서, BIOS(214)는 SMM 핸들러(215)를 통해 USB 가상 드라이브(202)를 액세스하도록 요청한다. 일단 BIOS(214)가 USB 가상 드라이브(202)와의 통신을 설정했다면, 액션(2.7)에서, BIOS(214)는 데이터를 TSEG(또는 도 1의 DRAM 112과 같은 RAM의 다른 보호 및 보안 부분)으로 전송하기 위해 USB 3.0 속도(4 기가비트/초 또는 3.2 기가비트/초의 유효 전송)로 정상 USB 커맨드를 사용하여 SMM 핸들러(215)를 통해 통신한다. 일단 BIOS(214)가 메모리로의 데이터 전송을 완료했다면, BIOS(214)는 플랫폼 제어기/BMC(280)로 확인응답(acknowledgement)을 송신한다. 플랫폼 제어기/BMC(280)는 확인응답에 응답하여 운영체제(213) 및 SMM 핸들러(215)를 포함한 호스트의 시계로부터 장치를 제거할 것이다. BIOS(214)는 SMM으로부터 호스트 영역으로 재개할 것이다. 모든 데이터 처리는 프로세서(210)가 SMM에 있는 동안에 발생했으므로, 서버 운영체제(113)는 USB 가상 드라이브(202)와 발생한 통신을 인식하지 못한다.
다른 실시예에서, I/O 동작은 도 1의 엔터프라이즈 서비스(170)로부터 인스트럭션을 수신시에 플랫폼 제어기/BMC(280)에 의해 개시될 수 있다. 이러한 시나리오에서, 플랫폼 제어기/BMC(280)는 시스템이 SMM으로 들어가고, 에뮬레이트된 USB 드라이브로 데이터를 기록하고, 그 후에 제공된 데이터를 판독하도록 BIOS(214)에게 통지하게 한다.
도 3을 참조하면, 본 발명의 일 실시예에 따라서 보안 플랫폼 관리 서비스를 제공하기 위해 도 1의 시스템의 구성요소의 동작의 흐름도를 도시한다. 도 3의 동작은 도 2의 시스템 구성요소에 의해 수행되는 것으로 기술될 것이다. BIOS(214)가 플랫폼 제어기/BMC(280)에 의해 관리되는 프로그램 또는 데이터에 대한 액세스를 요구하는 I/O 동작을 수신하는 것과 같은 보안 플랫폼 관리 서비스를 요구하는 이벤트를 처리한다. 단계(302), "BIOS가 보안 데이터에 대한 액세스를 요구"에서, BIOS(214)는 보안 플랫폼 관리에 대한 액세스가 필요하다는 결정을 한다. 제어는 단계(303), "BIOS가 SMM으로 진입"으로 진행되고, 여기서 BIOS(214)는 프로세서(210)가 SMM으로 들어가도록 SMI(System Management Interrupt)를 발생한다.
제어는 단계(304), "BIOS가 SMM 핸들러를 통해 BMC로 요청을 송신"으로 진행되고, 여기서 BIOS(214)는 보안 데이터를 액세스하려는 요청을 송신한다. 제어는 단계(306), "BIOS가 SMM 핸들러를 통해 BMC로 인증을 송신"으로 진행되고, 여기서 BIOS(214)는 사용자명 및 패스워드와 같은 인증 정보를 SMM 핸들러(215)로 송신한다. SMM 핸들러(215)는 플랫폼 제어기/BMC(280)로 인증 정보를 전달한다. 일 실시예에서, 인증 요청은 IPMI 인증 인터페이스에 따라서 제공된다. 그 후, 제어는 단계(308), "BMC가 인증을 확인"으로 진행되고, 여기서 플랫폼 제어기/BMC(280)는 수신자를 인증한다. 이 인증을 수행시에, 플랫폼 제어기/BMC(280)는 플랫폼(100)이 SMM(System Management Mode)으로 동작 중이며 플랫폼 제어기/BMC(280)로 연결된 (I/O 제어기 240와 같은) 범용 I/O 제어기에서 시작되었음을 확인한다.
제어는 단계(308), "BMC가 인증을 확인"로부터 단계(310), "BMC가 USB 드라이브를 에물레이트하기 시작"으로 진행되고, 여기서 플랫폼 제어기/BMC(280)는 USB 가상 드라이브를 에뮬레이트하기 시작한다. USB 드라이브를 에뮬레이트시에, 플랫폼 제어기/BMC(280)는 USB 가상 드라이브를 위한 메모리를 제공하기 위해 PC 플래시(286) 내 여유 공간과 그의 자원 PC RAM(284)을 사용한다.
그 후, 제어는 단계(312), "BMC가 I/O 이벤트를 BIOS로 어써팅"으로 진행되고, 여기서 플랫폼 제어기/BMC(280)는 SMM 핸들러(215)를 통해 BIOS(214)로 I/O 이벤트를 어써팅한다. 그 후에 제어는 단계(314), "BIOS는 보안 USB 드라이브를 열거"로 진행된다. BIOS(214)는 이제 USB 가상 드라이브(202)를 포함한 가시적인 장치를 더 열거한다.
그 후, 제어는 단계(316), "BIOS가 보안 메모리로/로부터 데이터 전송"으로 진행되고, 여기서 BIOS(214)는 에뮬레이트된 USB 가상 드라이브(202)를 사용하여 I/O 동작을 수행한다. I/O 동작이 USB 가상 드라이브로부터 완료될 때, 제어는 단계(318), "BIOS가 BMC를 확인응답"으로 진행되고, 여기서 BIOS(214)는 BIOS(214)가 I/O 이벤트를 완료했음을 나타내는 것으로 I/O 이벤트를 플랫폼 제어기/BMC(280)로 확인응답한다. 플랫폼 제어기/BMC(280)가 BIOS(214)로부터 확인응답을 수신할 때, 플랫폼 제어기/BMC(280)는 단계(320), "BMC가 USB 재지향 드라이브(USB redirected drive)의 에뮬레이션을 정지(halt)"에서 USB 재지향 드라이브의 에뮬레이션을 정시킨다. 그 후, 제어는 단계(322), "BIOS가 데이터를 처리하고(소비하고) SMM을 벗어남"으로 진행되고, 여기서 BIOS(214)는 I/O 동작으로부터 데이터를 처리 및/또는 소비한다. 예를 들어 I/O 동작이 BIOS 펌웨어로 갱신을 전달했다면, BIOS(214)는 도 1의 플래시 메모리(190)에서 BIOS 펌웨어(192)를 중복기재할 수 있다. 이 대신에, BIOS(214)는 다른 메모리로 데이터를 기록할 수 있고, 상이한 SMI(System Management Interrupt)하에서 차후에 데이터를 처리할 수 있다. 데이터의 소비가 완료될 때, 프로세서(210)는 SMM을 벗어난다.
USB 3.0의 고속 대역폭인 경우, 여전히 운영체제 SMI 타임아웃 제한에 따르면서 큰 페이로드를 전달할 수 있다. 플랫폼 제어기/BMC(280)는 운영체제 갱신, BIOS 펌웨어 갱신, 진단 소프트웨어, 그리고 BIOS 갱신 스케줄 또는 크기 제약에 관계없이 다른 시스템 펌웨어 갱신을 관리할 수 있다. 대역외 BIOS 갱신 및/또는 BIOS 복구가 성취될 수 있다.
데이터를 저장하기 위해 플랫폼 제어기/BMC(280)의 PC RAM(284)과 같은 자원을 사용하는 또 다른 이점은 서버 컴퓨터 시스템에 대해 드물게 발생하는 전력 연결해제때까지 데이터를 PC RAM(284)에 보존할 것이라는 것이다.
여기에 개시된 메카니즘의 실시예는 하드웨어, 소프트웨어, 펌웨어, 또는 이러한 구현 접근방안의 결합으로 구현될 수 있다. 본 발명의 실시에는 적어도 하나의 프로세서, (휘발성 및 비휘발성 메모리 및/또는 저장 요소를 포함한) 데이터 저장 시스템, 적어도 하나의 입력 장치, 그리고 적어도 하나의 출력 장치를 포함한 프로그램가능 시스템 상에서 실행되는 컴퓨터 프로그램으로서 구현될 수 있다.
프로그램 코드는 여기에 기술된 기능을 수행하고 출력 정보를 생성하기 위해 적용될 수 있다. 또한 본 발명의 실시예는 여기에 기술된 구조, 회로, 장치, 프로세서 및/또는 시스템 특징을 정의하는 HDL과 같은 설계 데이터를 포함하거나, 또는 본 발명의 동작을 수행하기 위해 인스트럭션을 담고 있는 머신 액세스가능 매체를 포함한다. 또한 이러한 실시예는 프로그램 제품으로 언급될 수 있다.
이러한 머신 액세스가능 저장매체는 하드 디스크, 플로피 디스크, 광학 디스크, CD-ROM(comapct disk read-only memories), CD-RW(compact disk rewritable) 및 광자기 디스크를 포함한 다른 유형의 디스크, ROM, DRAM(synamic random access memories), SRAM(static random access memories)과 같은 RAM, EPROM(erasable programmable read-only memories), FLASH(flash programmable memories), EEPROM(electrically erasable programmable read-only memories), 자기 또는 광학 카드, 또는 전자 인스트럭션을 저장하는데 적당한 임의 다른 유형의 매체와 같은 저장 매체를 포함하여 머신 또는 장치에 의해 제작 또는 형성되는 유형(tangible)의 파티클 배치를 포함할 수 있다.
출력 정보는 잘 알려진 방식으로 하나 이상의 출력 장치로 인가될 수 있다. 이 애플리케이션의 목적을 위해, 처리 시스템은 예를 들어 DSP(digital signal processor), 마이크로제어기, ASIC(application specific integrated circuit) 또는 마이크로프로세서와 같은 프로세서를 가진 임의 시스템을 포함한다.
프로그램은 처리 시스템과 통신하기 위해 상위 레벨 절차 또는 객체지향 프로그래밍 언어로 구현될 수 있다. 또한 프로그램은 원한다면 어셈블리 또는 기계 언어로 구현될 수 있다. 사실상, 여기에 기술된 메카니즘은 임의 특정한 프로그래밍 언어로 범주를 제한하지 않는다. 임의 경우에, 언어는 컴파일 또는 해석된 언어일 수 있다.
여기에 서버 플랫폼을 관리하기 위한 방법 및 시스템의 실시예가 제공된다. 본 발명의 특정 실시예를 도시 및 기술하였지만, 당업자는 첨부된 청구범위의 범주를 벗어나지 않고서도 다수의 변경, 변동 및 변형을 행할 수 있다는 것을 명백히 알 것이다. 따라서 당업자는 보다 넓은 양상에서 본 발명으로부터 벗어나지 않고서도 변경 및 변형을 할 수 있다는 것을 알 것이다. 첨부된 청구범위는 본 발명의 범주 및 사상내에 있는 이러한 모든 변경, 변동 및 변형을 그들의 범주 내에 포함하려 한다.

Claims (21)

  1. SMI(System Management Interrupt)를 발생시킬 수 있는 I/O 제어기에 연결된 플랫폼 제어기(platform controller)를 가진 시스템에서,
    데이터에 대한 보안 액세스를 요구하는 이벤트에 응답하여, 상기 시스템이 시스템 관리 모드로 들어가게 하도록 SMI를 발생시키는 단계와,
    에뮬레이트된(emulated) USB 드라이브를 생성하기 위해 상기 플랫폼 제어기의 자원을 사용하는 단계 -상기 자원은 상기 데이터를 저장함- 와,
    상기 시스템의 운영체제에 의해 액세스될 수 없는 접속을 통해 상기 에뮬레이트된 USB 드라이브로부터 상기 데이터를 복사하는 단계와,
    시스템 관리 모드를 벗어나기 전에 상기 데이터를 처리하는 단계를 포함하는
    컴퓨터로 구현된 방법.
  2. 제 1 항에 있어서,
    시스템 관리 모드에 있는 동안에 상기 데이터의 수신자를 인증하는 단계를 더 포함하는
    컴퓨터로 구현된 방법.

  3. 제 1 항에 있어서,
    상기 플랫폼 제어기는 BMC(baseboard management controller)인
    컴퓨터로 구현된 방법.
  4. 제 1 항에 있어서,
    상기 플랫폼 제어기는 상기 시스템의 칩셋(chipset)의 ME(manageability engine)에 의해 제공되는
    컴퓨터로 구현된 방법.
  5. 제 1 항에 있어서,
    엔터프라이즈 서버(enterprise server)로부터 상기 에뮬레이트된 USB 드라이브로 상기 데이터를 다운로드하는 단계를 더 포함하는
    컴퓨터로 구현된 방법.
  6. 제 1 항에 있어서,
    시스템 관리 모드를 벗어나기 전에 상기 운영체제에 의한 시계(visibility)로부터 상기 에뮬레이트된 USB 드라이브를 제거하는 단계를 더 포함하는
    컴퓨터로 구현된 방법.
  7. 제 1 항에 있어서,
    상기 에뮬레이트된 USB 드라이브를 생성하기 위해 상기 플랫폼 제어기의 자원을 사용하는 단계는, 상기 에뮬레이트된 USB 드라이브에 액세스하라는 요청에 응답하여 수행되는
    컴퓨터로 구현된 방법.
  8. 시스템으로서,
    프로세서와,
    플랫폼 제어기와,
    SMI(System Management Interrupt)를 발생시킬 수 있는 I/O 제어기와,
    상기 프로세서에 연결된 메모리를 포함하되,
    상기 메모리는,
    데이터에 대한 보안 액세스를 요구하는 이벤트에 응답하여, 상기 시스템이 시스템 관리 모드로 들어가게 하도록 SMI를 발생시키는 것과,
    에뮬레이트된 USB 드라이브를 생성하기 위해 상기 플랫폼 제어기의 자원을 사용하는 것 -상기 자원은 상기 데이터를 저장함- 과,
    상기 시스템의 운영체제에 의해 액세스될 수 없는 접속을 통해 상기 에뮬레이트된 USB 드라이브로부터 상기 데이터를 복사하는 것과,
    시스템 관리 모드를 벗어나기 전에 상기 데이터를 처리하는 것을
    수행하기 위한 인스트럭션을 포함하는
    시스템.
  9. 제 8 항에 있어서,
    상기 인스트럭션은 시스템 관리 모드에 있는 동안에 상기 데이터의 수신자를 인증하는 것을 또한 수행하는
    시스템.
  10. 제 8 항에 있어서,
    상기 플랫폼 제어기는 BMC(baseboard management controller)인
    시스템.
  11. 제 8 항에 있어서,
    상기 플랫폼 제어기는 상기 시스템의 칩셋의 ME(manageability engine)에 의해 제공되는
    시스템.
  12. 제 8 항에 있어서,
    상기 인스트럭션은 상기 데이터를 엔터프라이즈 서버로부터 상기 에뮬레이트된 USB 드라이브로 다운로드하는 것을 또한 수행하는
    시스템.
  13. 제 8 항에 있어서,
    상기 인스트럭션은,
    시스템 관리 모드를 벗어나기 전에 상기 운영체제에 의한 시계로부터 상기 에뮬레이트된 USB 드라이브를 제거하는 것을 또한 수행하는
    시스템.
  14. 제 8 항에 있어서,
    상기 에뮬레이트된 USB 드라이브를 생성하기 위해 상기 플랫폼 제어기의 자원을 사용하는 것은, 상기 에뮬레이트된 USB 드라이브에 액세스하라는 요청에 응답하여 수행되는
    시스템.
  15. 인스트럭션을 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 인스트럭션은 SMI(System Management Interrupt)를 발생시킬 수 있는 I/O 제어기에 연결된 플랫폼 제어기를 가진 처리 시스템에서 실행될 경우, 상기 처리 시스템으로 하여금,
    데이터에 대한 보안 액세스를 요구하는 이벤트에 응답하여, 상기 시스템이 시스템 관리 모드에 들어가게 하도록 SMI를 발생시키는 동작과,
    에뮬레이트된 USB 드라이브를 생성하기 위해 상기 플랫폼 제어기의 자원을 사용하는 동작 -상기 자원은 상기 데이터를 저장함- 과,
    상기 시스템의 운영체제에 의해 액세스될 수 없는 접속을 통해 상기 에뮬레이트된 USB 드라이브로부터 상기 데이터를 복사하는 동작과,
    시스템 관리 모드를 벗어나기 전에 상기 데이터를 처리하는 동작을 수행하게 하는
    컴퓨터 판독가능 저장 매체.
  16. 제 15 항에 있어서,
    상기 인스트럭션은,
    시스템 관리 모드에 있는 동안에 상기 데이터의 수신자를 인증하는 동작을 또한 수행하는
    컴퓨터 판독가능 저장 매체.
  17. 제 15 항에 있어서,
    상기 플랫폼 제어기는 BMC(baseboard management controller)인
    컴퓨터 판독가능 저장 매체.
  18. 제 15 항에 있어서,
    상기 플랫폼 제어기는 상기 시스템의 칩셋의 ME(manageability engine)에 의해 제공되는
    컴퓨터 판독가능 저장 매체.
  19. 제 15 항에 있어서,
    상기 인스트럭션은,
    엔터프라이즈 서버로부터 상기 에뮬레이트된 USB 드라이브로 상기 데이터를 다운로드하는 동작을 또한 수행하는
    컴퓨터 판독가능 저장 매체.
  20. 제 15 항에 있어서,
    상기 인스트럭션은,
    시스템 관리 모드를 벗어나기 전에 상기 운영체제에 의한 시계로부터 상기 에뮬레이트된 USB 드라이브를 제거하는 동작을 또한 수행하는
    컴퓨터 판독가능 저장 매체.
  21. 제 15 항에 있어서,
    상기 에뮬레이트된 USB 드라이브를 생성하기 위해 상기 플랫폼 제어기의 자원을 사용하는 동작은, 상기 에뮬레이트된 USB 드라이브에 액세스하라는 요청에 응답하여 수행되는
    컴퓨터 판독가능 저장 매체.
KR1020137008066A 2010-09-30 2011-09-30 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시 KR101453266B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/894,876 US8428929B2 (en) 2010-09-30 2010-09-30 Demand based USB proxy for data stores in service processor complex
US12/894,876 2010-09-30
PCT/US2011/054419 WO2012045038A1 (en) 2010-09-30 2011-09-30 Demand based usb proxy for data stores in service processor complex

Publications (2)

Publication Number Publication Date
KR20130058058A KR20130058058A (ko) 2013-06-03
KR101453266B1 true KR101453266B1 (ko) 2014-10-22

Family

ID=45890843

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137008066A KR101453266B1 (ko) 2010-09-30 2011-09-30 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시

Country Status (8)

Country Link
US (2) US8428929B2 (ko)
EP (1) EP2622533B1 (ko)
JP (2) JP5715256B2 (ko)
KR (1) KR101453266B1 (ko)
CN (1) CN103119560B (ko)
SG (1) SG188991A1 (ko)
TW (1) TWI530872B (ko)
WO (1) WO2012045038A1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8428929B2 (en) * 2010-09-30 2013-04-23 Intel Corporation Demand based USB proxy for data stores in service processor complex
EP2628092B1 (en) * 2010-10-16 2019-01-23 Hewlett-Packard Enterprise Development LP Device hardware agent
CN102479166A (zh) * 2010-11-26 2012-05-30 鸿富锦精密工业(深圳)有限公司 共享串口的***及方法
US9372699B2 (en) * 2011-04-08 2016-06-21 Insyde Software Corp. System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
WO2013067486A1 (en) 2011-11-04 2013-05-10 Insyde Software Corp. Secure boot administration in a unified extensible firmware interface (uefi)- compliant computing device
US8904507B2 (en) * 2011-11-29 2014-12-02 American Megatrends, Inc. System and method for controlling user access to a service processor
US20130297718A1 (en) * 2012-05-07 2013-11-07 Samsung Electronics Co., Ltd. Server device, client device, data sharing system and method for sharing data between client device and server device thereof
US8972969B2 (en) * 2012-06-08 2015-03-03 Adobe Systems Incorporated Out of band services updates
US20140123100A1 (en) * 2012-10-29 2014-05-01 Jump Soft A.S. System and method for implementing information systems
US9043776B2 (en) * 2012-10-31 2015-05-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Transferring files to a baseboard management controller (‘BMC’) in a computing system
TWI478538B (zh) * 2012-11-28 2015-03-21 Inventec Corp 伺服器系統
US9047263B2 (en) 2013-01-24 2015-06-02 Dell Products L.P. System and method for secure SMI memory services
WO2014150478A1 (en) * 2013-03-15 2014-09-25 Insyde Software Corp. System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (uefi)-compliant firmware
US9026635B2 (en) * 2013-03-15 2015-05-05 American Megatrends, Inc. System and method of web-based virtual media redirection
US9304783B2 (en) * 2013-05-09 2016-04-05 American Megatrends, Inc. Digital signage management and content delivery system and method thereof
US9235710B2 (en) 2013-05-23 2016-01-12 Cisco Technology, Inc. Out of band management of basic input/output system secure boot variables
CN104424405B (zh) * 2013-09-09 2017-12-29 联想(北京)有限公司 一种信息处理方法和装置
CN104516800B (zh) 2013-09-27 2018-12-21 联想企业方案(新加坡)有限公司 服务器主板诊断的方法、***和相关电路***
US8910283B1 (en) 2013-11-21 2014-12-09 Kaspersky Lab Zao Firmware-level security agent supporting operating system-level security in computer system
JP2015114841A (ja) * 2013-12-11 2015-06-22 富士通株式会社 情報処理装置、制御プログラム、及びデータ移動方法
US9311504B2 (en) 2014-06-23 2016-04-12 Ivo Welch Anti-identity-theft method and hardware database device
US10360051B2 (en) * 2014-12-22 2019-07-23 International Business Machines Corporation Emulated device firmware testable by native operating system tools
US9910664B2 (en) * 2015-05-04 2018-03-06 American Megatrends, Inc. System and method of online firmware update for baseboard management controller (BMC) devices
US10097534B2 (en) * 2015-08-28 2018-10-09 Dell Products L.P. System and method to redirect hardware secure USB storage devices in high latency VDI environments
WO2017039702A1 (en) 2015-09-04 2017-03-09 Hewlett Packard Enterprise Development Lp Secure login information
CN105160258B (zh) * 2015-09-21 2018-10-02 苏州中太服务器有限公司 一种防止用户非法修改os的方法
CN105808468B (zh) * 2016-03-21 2021-09-14 联想(北京)有限公司 一种控制方法、视频控制器及控制***
US10120740B2 (en) * 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US10331434B2 (en) 2016-12-21 2019-06-25 Quanta Computer Inc. System and method for remotely updating firmware
US10824437B1 (en) * 2017-04-27 2020-11-03 American Megatrends International, Llc Platform management for computing systems without baseboard management controllers
CN107025094A (zh) * 2017-05-16 2017-08-08 郑州云海信息技术有限公司 一种数据读写管理方法及***
EP3454216B1 (en) * 2017-09-08 2020-11-18 Nxp B.V. Method for protecting unauthorized data access from a memory
KR102320313B1 (ko) * 2017-11-16 2021-11-02 한국전자기술연구원 서버 메인보드 제어를 위한 통합 bsp 활용 방법
US11120136B1 (en) * 2018-06-06 2021-09-14 Amazon Technologies, Inc. Managing system firmware
US10452386B1 (en) * 2018-07-19 2019-10-22 American Megatrends International, Llc Non-destructive update of discrete components of firmware
US11137995B2 (en) * 2019-02-13 2021-10-05 International Business Machines Corporation Updating firmware of a microcontroller
US11113188B2 (en) 2019-08-21 2021-09-07 Microsoft Technology Licensing, Llc Data preservation using memory aperture flush order
US11023220B2 (en) * 2019-09-26 2021-06-01 Dell Products L.P. Firmware update with integrated smart sequence and action engine
US11137994B2 (en) 2019-11-08 2021-10-05 Microsoft Technology Licensing, Llc Baseboard management controller firmware update
CN113810209B (zh) * 2020-06-12 2024-03-22 戴尔产品有限公司 通过带外信道进行的服务器初始配置
US11354259B1 (en) 2020-12-08 2022-06-07 Hewlett Packard Enterprise Development Lp Computer system configurations based on accessing data elements presented by baseboard management controllers
US11416233B1 (en) * 2021-04-21 2022-08-16 Dell Products, L.P. Software upgrade system and method for a baseboard management controller configured in an information handling system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010049886A (ko) * 1999-07-27 2001-06-15 이레네 코스투라키스 시스템 바이오스를 플래쉬하는 항바이러스 및 하드웨어독립 방법
US20010056518A1 (en) * 2000-06-27 2001-12-27 Kabushiki Kaisha Toshiba Data-processing apparatus and method of controlling the rewriting of a nonvolatile storage device
US20080005446A1 (en) * 2006-06-28 2008-01-03 Christopher Frantz Emulating a USB host controller
US20080288766A1 (en) * 2007-05-17 2008-11-20 Kabushiki Kaisha Toshiba Information processing apparatus and method for abortting legacy emulation process

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773046A (ja) * 1992-12-07 1995-03-17 Intel Corp コンピュータシステムで回路をエミュレートする 方法及び装置
US6636929B1 (en) * 2000-04-06 2003-10-21 Hewlett-Packard Development Company, L.P. USB virtual devices
DE10027084C2 (de) 2000-05-31 2002-07-18 Honda Motor Co Ltd Leitschaufel und Leitschaufelkaskade für einen Axialverdichter
TW515959B (en) * 2001-05-10 2003-01-01 Via Tech Inc Method for memory data access by system management interrupt and computer system thereof
US6848046B2 (en) * 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
JP3702233B2 (ja) * 2002-02-21 2005-10-05 株式会社東芝 情報処理システムおよびプログラム実行モード制御方法
US7305668B2 (en) * 2002-07-31 2007-12-04 Intel Corporation Secure method to perform computer system firmware updates
US20050021968A1 (en) * 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
US7400648B2 (en) * 2004-05-28 2008-07-15 International Business Machines Corporation Virtual USB communications port
US20060143600A1 (en) * 2004-12-29 2006-06-29 Andrew Cottrell Secure firmware update
US7752428B2 (en) 2005-03-31 2010-07-06 Intel Corporation System and method for trusted early boot flow
US7555676B2 (en) 2005-07-18 2009-06-30 Dell Products L.P. Systems and methods for providing remotely accessible in-system emulation and/or debugging
US7546487B2 (en) 2005-09-15 2009-06-09 Intel Corporation OS and firmware coordinated error handling using transparent firmware intercept and firmware services
US7712145B2 (en) * 2006-03-30 2010-05-04 Intel Corporation Chipset configuration authentication via manageability engine
JP2007280261A (ja) * 2006-04-11 2007-10-25 Silex Technology Inc ネットワーク上の機器を共有可能とする可搬型仮想記憶装置
ES2400961T3 (es) * 2006-12-12 2013-04-15 Agfa Graphics N.V. Método para reducir el derroche de sustrato no impreso durante la impresión digital
US20080250165A1 (en) * 2007-04-03 2008-10-09 Eddy Reynolds USB port access management
JP2011197702A (ja) * 2008-07-14 2011-10-06 Victor Co Of Japan Ltd データ書き込み方法、及びデータ書き込み装置
US9086913B2 (en) 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
EP2433238B1 (en) * 2009-05-18 2015-10-07 Hewlett-Packard Development Company, L.P. Systems and methods of determining a trust level from system management mode
US8566613B2 (en) * 2010-06-11 2013-10-22 Intel Corporation Multi-owner deployment of firmware images
US8428929B2 (en) * 2010-09-30 2013-04-23 Intel Corporation Demand based USB proxy for data stores in service processor complex

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010049886A (ko) * 1999-07-27 2001-06-15 이레네 코스투라키스 시스템 바이오스를 플래쉬하는 항바이러스 및 하드웨어독립 방법
US20010056518A1 (en) * 2000-06-27 2001-12-27 Kabushiki Kaisha Toshiba Data-processing apparatus and method of controlling the rewriting of a nonvolatile storage device
US20080005446A1 (en) * 2006-06-28 2008-01-03 Christopher Frantz Emulating a USB host controller
US20080288766A1 (en) * 2007-05-17 2008-11-20 Kabushiki Kaisha Toshiba Information processing apparatus and method for abortting legacy emulation process

Also Published As

Publication number Publication date
EP2622533A4 (en) 2014-03-12
EP2622533B1 (en) 2015-11-18
KR20130058058A (ko) 2013-06-03
JP2014194820A (ja) 2014-10-09
TWI530872B (zh) 2016-04-21
SG188991A1 (en) 2013-05-31
US8965749B2 (en) 2015-02-24
US20130218551A1 (en) 2013-08-22
US20120084552A1 (en) 2012-04-05
US8428929B2 (en) 2013-04-23
CN103119560B (zh) 2016-09-21
JP5860504B2 (ja) 2016-02-16
CN103119560A (zh) 2013-05-22
WO2012045038A1 (en) 2012-04-05
JP2013537335A (ja) 2013-09-30
TW201220194A (en) 2012-05-16
EP2622533A1 (en) 2013-08-07
JP5715256B2 (ja) 2015-05-07

Similar Documents

Publication Publication Date Title
KR101453266B1 (ko) 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시
US10860305B1 (en) Secure firmware deployment
KR100855803B1 (ko) 협동적 임베디드 에이전트
US10754955B2 (en) Authenticating a boot path update
US8566610B2 (en) Methods and apparatus for restoration of an anti-theft platform
US8201239B2 (en) Extensible pre-boot authentication
EP2339494A1 (en) Automated modular and secure boot firmware update
CN107567629B (zh) 在可信执行环境容器中的动态固件模块加载器
WO2013147825A1 (en) Providing an immutable antivirus payload for internet ready compute nodes
US11592998B2 (en) System and method for secure access to a distributed virtual firmware network drive
WO2022143429A1 (zh) 计算机***、可信功能组件及运行方法
JP2011150499A (ja) シンクライアントシステム、シンクライアント端末およびシンクライアントプログラム
US11748520B2 (en) Protection of a secured application in a cluster
US20210374005A1 (en) Systems and methods for verifying and preserving the integrity of basic input/output system before powering on of host system and management engine
US11068035B2 (en) Dynamic secure ACPI power resource enumeration objects for embedded devices
US11409541B2 (en) Systems and methods for binding secondary operating system to platform basic input/output system
US20240160431A1 (en) Technologies to update firmware and microcode
US20220222349A1 (en) Information handling system host to management controller attestation service channel

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee