KR20160110467A - 원천 코드들을 이용한 관리 정보의 브로드캐스트 - Google Patents

원천 코드들을 이용한 관리 정보의 브로드캐스트 Download PDF

Info

Publication number
KR20160110467A
KR20160110467A KR1020167022282A KR20167022282A KR20160110467A KR 20160110467 A KR20160110467 A KR 20160110467A KR 1020167022282 A KR1020167022282 A KR 1020167022282A KR 20167022282 A KR20167022282 A KR 20167022282A KR 20160110467 A KR20160110467 A KR 20160110467A
Authority
KR
South Korea
Prior art keywords
message
client device
management
management data
decoding
Prior art date
Application number
KR1020167022282A
Other languages
English (en)
Other versions
KR101891423B1 (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 KR20160110467A publication Critical patent/KR20160110467A/ko
Application granted granted Critical
Publication of KR101891423B1 publication Critical patent/KR101891423B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • 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]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

관리 정보를 브로드캐스트하기 위한 기술들은 관리 서버 및 다수의 클라이언트 디바이스를 포함한다. 관리 서버는 원천 코드 인코딩 알고리즘을 이용하여 인증서 폐지 리스트와 같은 관리 데이터를 다수의 메시지 단편으로 인코딩하고, 네트워크를 통해 이러한 메시지 단편들을 계속해서 브로드캐스트한다. 각각의 클라이언트 디바이스는 브로드캐스트된 메시지 단편들을 수신하기 위해 부트 프로세스 동안 네트워크를 분석한다. 각각의 클라이언트 디바이스는 원천 코드 디코딩 알고리즘을 이용하여 메시지 단편들을 디코딩하고, 메시지가 완전한지 여부를 결정한다. 메시지가 완전한 경우, 클라이언트 디바이스는 메시지를 파싱하여 관리 데이터를 검색하고, 관리 데이터를 클라이언트 디바이스 상에 설치할 수 있다. 메시지가 불완전한 경우, 클라이언트 디바이스는 미래 부트 이벤트들 동안 처리하기 위해 메시지 단편들을 비휘발성 스토리지에 저장할 수 있다. 클라이언트 디바이스는 그러한 동작들을 사전-부트 펌웨어 환경에서 수행할 수 있다. 다른 실시예들이 설명되고 청구된다.

Description

원천 코드들을 이용한 관리 정보의 브로드캐스트{BROADCASTING MANAGEMENT INFORMATION USING FOUNTAIN CODES}
관련 미국 특허 출원에 대한 상호 참조
본원은 2014년 3월 21일자로 출원되었으며 발명의 명칭이 "BROADCASTING MANAGEMENT INFORMATION USING FOUNTAIN CODES"인 미국 실용 특허 출원 제14/222,014호에 대해 우선권을 주장한다.
기업 및 다른 조직들은 컴퓨터, 모바일 디바이스, 서버 및 네트워크 인프라스트럭처와 같은 네트워크 접속 머신들의 많은 설치를 관리할 수 있다. 관리되는 네트워크 접속 디바이스들의 수는 네트워킹 능력이 많은 수의 유비쿼터스 내장 디바이스를 포함하는 더 많은 디바이스 클래스에 더해짐에 따라 계속 증가할 가능성이 있다. 종종, 동일한 관리 정보가 많은 관리되는 디바이스 클래스에 제공되어야 한다. 예로서, 동일한 보안 인증서 폐지 정보가 기업에 의해 관리되는 모든 보안 부트 인에이블드 머신(secure-boot-enabled machine)에 제공될 수 있다. 관리 정보를 설치하기 위한 통상적인 접근법들은 관리 정보를 이종 머신들의 대형 클래스로 병렬로 멀티캐스트하는 것을 포함한다. 그러나, 그러한 접근법들은 통상적으로 송신자와 수신자들 사이의 동기화를 요구하며, 이는 많은 수의 수신 디바이스가 그들의 활동을 (예로서, 멀티캐스트 정보를 동시에 청취함으로써) 동기화하는 것이 요구될 수 있다는 것을 의미한다. 관리 정보를 설치하기 위한 다른 통상적인 접근법은 사용자 요청에 응답하여 또는 스케줄링된 다운로드로서 운영 체제 컴포넌트 또는 사용자 모드 소프트웨어 애플리케이션에 의해 서버로부터 관리 정보를 다운로딩하는 것을 포함한다. 그러나, 그러한 접근법들은 사용자 개입을 요구할 수 있으며, 운영 체제 및/또는 소프트웨어 애플리케이션의 멀웨어 및/또는 보안 공격들에 취약할 수 있다.
원천 코드로도 공지된 레이트리스 소거 코드(rateless erasure codes)는 k개의 입력 심벌의 유한 세트를 인코딩된 심벌들의 무한 세트로 인코딩한다. 입력 심벌들은 임의의 k'개의 인코딩된 심벌로부터 디코딩될 수 있으며, 여기서 k'는 k와 동일하거나 k보다 약간 클 수 있다. 일반적인 원천 코드들은 루비 변환(Luby transform) 코드들(LT 코드들) 및 Raptor 코드들을 포함한다. 원천 코드들의 통상적인 이용은 인터넷 프로토콜(IP) 네트워크를 통해 전달하기 위해 비디오 신호를 인코딩하는 것을 포함한다.
본 명세서에서 설명되는 개념들은 첨부 도면들에서 한정이 아니라 예로서 예시되어 있다. 예시의 단순성 및 명료성을 위해, 도면들에 예시된 요소들은 반드시 일정한 축척으로 도시되지는 않는다. 적절한 것으로 고려되는 경우, 도면들 사이에서 대응하거나 유사한 요소들을 지시하기 위해 참조 라벨들이 반복되었다.
도 1은 관리 서버로부터 다수의 클라이언트 디바이스로 관리 정보를 브로드캐스트하기 위한 시스템의 적어도 하나의 실시예의 단순화된 블록도이다.
도 2는 도 1의 시스템에 의해 설정될 수 있는 다양한 환경들의 적어도 하나의 실시예의 단순화된 블록도이다.
도 3은 도 1 및 도 2의 관리 서버에 의해 실행될 수 있는 관리 정보를 브로드캐스트하기 위한 방법의 적어도 하나의 실시예의 단순화된 흐름도이다.
도 4는 도 1 및 도 2의 클라이언트 디바이스에 의해 실행될 수 있는 부트 프로세스의 적어도 하나의 실시예의 단순화된 개략도이다.
도 5는 도 1 및 도 2의 클라이언트 디바이스에 의해 실행될 수 있는 브로드캐스트 관리 정보를 수신하기 위한 방법의 적어도 하나의 실시예의 단순화된 흐름도이다.
본 개시내용의 개념들은 다양한 변경들 및 대안 형태들이 가능하지만, 그들의 특정 실시예들은 도면들에 예시적으로 도시되었으며, 본 명세서에서 상세히 설명될 것이다. 그러나, 본 개시내용의 개념들을 개시되는 특정 형태들로 한정하는 것을 의도하는 것이 아니라, 본 개시내용 및 첨부된 청구항들에 따른 모든 변경들, 균등물들 및 대안들을 포괄하는 것을 의도한다는 것을 이해해야 한다.
본 명세서에서 "하나의 실시예", "일 실시예", "예시적인 실시예" 등에 대한 언급들은, 설명되는 실시예들이 특정 특징, 구조 또는 특성을 포함할 수 있지만, 모든 실시예가 그러한 특정 특징, 구조 또는 특성을 포함할 수 있거나 반드시 포함하지는 않을 수 있다는 것을 지시한다. 더욱이, 그러한 표현들은 반드시 동일 실시예를 지칭하지는 않는다. 또한, 특정 특징, 구조 또는 특성이 일 실시예와 관련하여 설명될 때, 명시적으로 설명되는지의 여부에 관계없이 다른 실시예들과 관련하여 그러한 특징, 구조 또는 특성을 달성하는 것은 본 기술분야의 통상의 기술자의 지식 내에 있다는 것을 언급한다. 게다가, "A, B 및 C 중 적어도 하나"의 형태로 리스트 내에 포함되는 아이템들은 (A); (B); (C); (A 및 B); (B 및 C); 또는 (A, B 및 C)를 의미할 수 있다는 것을 알아야 한다. 유사하게, "A, B 또는 C 중 적어도 하나"의 형태로 리스트 내에 포함되는 아이템들은 (A); (B); (C); (A 및 B); (B 및 C); 또는 (A, B 및 C)를 의미할 수 있다.
개시되는 실시예들은 일부 경우들에서 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합에서 구현될 수 있다. 개시되는 실시예들은 일시적 또는 비일시적 머신 판독가능(예로서, 컴퓨터 판독가능) 저장 매체에 의해 운반되거나 그에 저장되는 명령어들로서 구현될 수 있으며, 명령어들은 하나 이상의 프로세서에 의해 판독 및 실행될 수 있다. 머신 판독가능 저장 매체는 머신에 의해 판독될 수 있는 형태로 정보를 저장 또는 전송하기 위한 임의의 스토리지 디바이스, 메커니즘 또는 다른 물리 구조(예로서, 휘발성 또는 비휘발성 메모리, 매체 디스크 또는 다른 매체 디바이스)로서 구현될 수 있다.
도면들에서, 일부 구조적 또는 방법 특징들은 특정 배열들 및/또는 순서들로 도시될 수 있다. 그러나, 그러한 특정 배열들 및/또는 순서들은 요구되지 않을 수 있다는 것을 알아야 한다. 오히려, 일부 실시예들에서, 그러한 특징들은 예시적인 도면들에 도시된 것과 상이한 방식 및/또는 순서로 배열될 수 있다. 게다가, 특정 도면 내의 구조적 또는 방법 특징의 포함은 그러한 특징이 모든 실시예들에서 요구된다는 것을 암시하고자 하는 의도는 없으며, 그러한 특징은 일부 실시예들에서는 포함되지 않을 수 있거나 다른 특징들과 결합될 수 있다.
이제 도 1을 참조하면, 예시적인 실시예에서, 관리 데이터를 브로드캐스트하기 위한 시스템(100)은 네트워크(106)를 통해 통신할 수 있는 관리 서버(102) 및 다수의 클라이언트 디바이스(104)를 포함한다. 이용 시에, 아래에 설명되는 바와 같이, 관리 서버(102)는 "원천 코드"로도 공지된 레이트리스 소거 코드로 인코딩된 갱신된 관리 데이터를 네트워크(106)를 통해 계속적으로, 주기적으로 또는 응답적으로 브로드캐스트한다. 클라이언트 디바이스(104)가 부팅될 때마다, 클라이언트 디바이스(104)는 네트워크(106)를 분석하여, 관리 서버(102)에 의해 브로드캐스트된 메시지 단편들을 수신한다. 충분한 수의 메시지 단편들이 수신된 후, 클라이언트 디바이스(104)는 (이용 중인 특정 원천 코드에 적합한 알고리즘을 적용하여) 메시지 단편들을 디코딩하고, 설치할 관리 데이터를 복원한다. 클라이언트 디바이스(104)는 완전한 메시지를 디코딩할 수 있기 전에 2개의 이상의 부트 사이클에 걸쳐 메시지 단편들을 수집할 수 있다. 개시되는 기술들은 표준화된 관리 정보가 단일 관리 서버(102)에 의해 다수의 클라이언트 디바이스(104)로 비동기적으로 브로드캐스트되는 것을 가능하게 한다. 즉, 클라이언트 디바이스들(104)은 그들의 부트 이벤트들을 동기화하는 것이 요구되지 않으며, 임의적인 시간들에 임의적인 지속 기간들 동안 네트워크(106)를 샘플링할 수 있다. 따라서, 클라이언트 디바이스들(104)은 개선된 성능 및/또는 확장성을 갖도록 관리될 수 있다. 게다가, 관리 데이터는 클라이언트 디바이스(104)의 임의의 운영 체제의 개입 없이 클라이언트 디바이스(104) 상의 펌웨어에 의해 수신 및 설치될 수 있다. 따라서, 잠재적인 공격들, 취약성들, 또는 운영 체제 내의 소프트웨어 결함들을 방지하여, 관리 보안 및/또는 신뢰성을 개선할 수 있다.
관리 서버(102)는 본 명세서에서 설명되는 바와 같이 관리 정보를 브로드캐스트하기 위한 임의의 타입의 디바이스로서 구현될 수 있다. 예로서, 관리 서버(102)는 서버 컴퓨터, 워크스테이션, 데스트톱 컴퓨터, 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 모바일 컴퓨팅 디바이스, 셀룰러 전화, 핸드셋, 메시징 디바이스, 차량 텔레매틱스 디바이스, 분산 컴퓨팅 시스템, 멀티프로세서 시스템, 소비자 전자 디바이스, 및/또는 본 명세서에서 설명되는 기능들을 수행하도록 구성되는 임의의 다른 컴퓨팅 디바이스로서 구현될 수 있지만 이에 한정되지 않는다. 또한, 관리 서버(102)는 단일 서버 컴퓨팅 디바이스 또는 서버들 및 관련 디바이스들의 집합으로서 구현될 수 있다. 예로서, 일부 실시예들에서, 관리 서버(102)는 본 명세서에서 설명되는 기능들을 수행하기 위한 클라우드 서비스로서 구현된다. 그러한 실시예들에서, 관리 서버(102)는 네트워크(106)에 걸쳐 분산되고 공개 또는 비공개 클라우드에서 동작하는 다수의 컴퓨팅 디바이스로 형성되는 "가상 서버"로서 구현될 수 있다. 따라서, 관리 서버(102)가 단일 서버 컴퓨팅 디바이스로서 구현되는 것으로 도 1에 예시되고 아래에 설명되지만, 관리 서버(102)는 아래에 설명되는 기능을 촉진하도록 함께 협력하는 다수의 디바이스로서 구현될 수 있다는 것을 알아야 한다.
도 1에 도시된 바와 같이, 예시적인 관리 서버(102)는 프로세서(120), 입출력 서브시스템(122), 메모리(124) 및 데이터 스토리지 디바이스(126)를 포함한다. 물론, 관리 서버(102)는 다른 실시예들에서 서버 및/또는 고정 컴퓨터(예로서, 다양한 입출력 디바이스들)에서 일반적으로 발견되는 것들과 같은 다른 또는 추가 컴포넌트들을 포함할 수 있다. 게다가, 일부 실시예들에서, 예시적인 컴포넌트들 중 하나 이상은 다른 컴포넌트 내에 통합되거나 달리 그의 일부를 형성할 수 있다. 예로서, 메모리(124) 또는 그의 부분들은 일부 실시예들에서 프로세서(120) 내에 통합될 수 있다.
프로세서(120)는 본 명세서에서 설명되는 기능들을 수행할 수 있는 임의의 타입의 프로세서로서 구현될 수 있다. 예로서, 프로세서(120)는 단일 또는 다중 코어 프로세서(들), 디지털 신호 프로세서, 마이크로컨트롤러, 또는 다른 프로세서 또는 처리/제어 회로로서 구현될 수 있다. 유사하게, 메모리(124)는 본 명세서에서 설명되는 기능들을 수행할 수 있는 임의의 타입의 휘발성 또는 비휘발성 메모리 또는 데이터 스토리지로서 구현될 수 있다. 동작 시에, 메모리(124)는 관리 서버(102)의 동작 동안 이용되는 다양한 데이터 및 소프트웨어, 예로서 운영 체제, 애플리케이션, 프로그램, 라이브러리 및 드라이버를 저장할 수 있다. 메모리(124)는 관리 서버(102)의 프로세서(120), 메모리(124) 및 다른 컴포넌트들과의 입출력 동작들을 촉진하기 위한 회로 및/또는 컴포넌트들로서 구현될 수 있는 I/O 서브시스템(122)을 통해 프로세서(120)에 통신 결합된다. 예로서, I/O 서브시스템(122)은 메모리 제어기 허브들, 입출력 제어 허브들, 펌웨어 디바이스들, 통신 링크들(즉, 점대점 링크들, 버스 링크들, 와이어들, 케이블들, 광 가이드들, 인쇄 회로 보드 트레이스들 등), 및/또는 입출력 동작들을 촉진하기 위한 다른 컴포넌트들 및 서브시스템들로서 구현되거나 달리 그들을 포함할 수 있다. 일부 실시예들에서, I/O 서브시스템(122)은 시스템-온-칩(SoC)의 일부를 형성할 수 있고, 관리 서버(102)의 프로세서(120), 메모리(124) 및 다른 컴포넌트들과 함께 단일 집적 회로 칩 상에 통합될 수 있다.
데이터 스토리지 디바이스(126)는 예로서 메모리 디바이스들 및 회로들, 메모리 카드들, 하드 디스크 드라이브들, 솔리드 스테이트 드라이브들 또는 다른 데이터 스토리지 디바이스들과 같이 데이터의 단기 또는 장기 저장을 위해 구성되는 임의의 타입의 디바이스 또는 디바이스들로서 구현될 수 있다. 데이터 스토리지 디바이스(126)는 클라이언트 디바이스들(104)로 브로드캐스트될 관리 데이터를 저장할 수 있다.
관리 서버(102)는 관리 서버(102), 클라이언트 디바이스들(104) 및/또는 다른 원격 디바이스들 간의 통신을 가능하게 할 수 있는 임의의 통신 회로, 디바이스 또는 이들의 집합으로 구현될 수 있는 통신 회로(128)를 더 포함한다. 통신 회로(128)는 그러한 통신을 실시하기 위해 임의의 하나 이상의 통신 기술(예로서, 무선 또는 유선 통신) 및 관련 프로토콜들(예로서, 이더넷, 블루투스®, Wi-Fi®), WiMAX 등)을 이용하도록 구성될 수 있다. 통신 회로(128)는 무선 네트워크 어댑터를 포함하는 네트워크 어댑터로서 구현될 수 있다.
각각의 클라이언트 디바이스(104)는 본 명세서에서 설명되는 기능들을 수행하기 위한 임의의 타입의 디바이스로서 구현될 수 있다. 예로서, 각각의 클라이언트 디바이스(104)는 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 모바일 컴퓨팅 디바이스, 웨어러블 컴퓨팅 디바이스, 셀룰러 전화, 핸드셋, 메시징 디바이스, 차량 텔레매틱스 디바이스, 서버 컴퓨터, 워크스테이션, 분산 컴퓨팅 시스템, 멀티프로세서 시스템, 소비자 전자 디바이스, 및/또는 본 명세서에서 설명되는 기능들을 수행하도록 구성되는 임의의 다른 컴퓨팅 디바이스로서 구현될 수 있지만 이에 한정되지 않는다. 따라서, 각각의 클라이언트 디바이스(104)는 관리 서버(102)와 유사한 컴포넌트들 및 특징들, 예로서 프로세서(140), I/O 서브시스템(142), 메모리(144), 데이터 스토리지(146), 통신 회로(148) 및 다양한 주변 디바이스들을 포함할 수 있다. 각각의 클라이언트 디바이스(104)의 그러한 개별 컴포넌트들은 관리 서버(102)의 대응하는 컴포넌트들과 유사할 수 있으며, 그들의 설명은 각각의 클라이언트 디바이스(104)의 대응하는 컴포넌트들에 적용될 수 있고, 본 설명의 명료화를 위해 반복되지 않는다.
각각의 클라이언트 디바이스(104)는 펌웨어 캐시(150)를 더 포함한다. 펌웨어 캐시(150)는, 클라이언트 디바이스(104)의 펌웨어 환경에 액세스할 수 있고, 클라이언트 디바이스(104)가 파워 다운되거나 전원으로부터 분리되는 동안 데이터의 지속적인 저장을 위해 구성되는 임의의 디바이스로서 구현될 수 있다. 예시적인 실시예에서, 펌웨어 캐시(150)는 플랫폼 플래시 메모리 칩으로서 구현된다. 다른 실시예들에서, 펌웨어 캐시(150)는 내장형 비휘발성 메모리 시스템(예로서, eMMC 디바이스)으로서 또는 데이터 스토리지 디바이스(146)의 시스템 파티션 상에 유지되는 펌웨어 볼륨의 일부로서 구현될 수 있다. 따라서, 일부 실시예들에서, 펌웨어 캐시(150)는 클라이언트 디바이스(104)의 하나 이상의 다른 컴포넌트 내에, 예로서 I/O 서브시스템(142) 내에 통합될 수 있다. 아래에 설명되는 바와 같이, 펌웨어 캐시(150)는 클라이언트 디바이스(104)에 의해 수신된 브로드캐스트 메시지 단편들을 지속적으로 저장하는 데 이용될 수 있다.
일부 실시예들에서, 클라이언트 디바이스들(104) 중 하나 이상은 관리성 엔진(152)도 포함할 수 있다. 관리성 엔진(152)는 클라이언트 디바이스(104)의 원격 구성, 제어 또는 관리를 제공하는 디바이스로서 구현된다. 예시적인 관리성 엔진(152)은 대역외 프로세서(154)를 포함한다. 대역외 프로세서(154)는 클라이언트 디바이스(104)의 메인 프로세서(140)로부터 분리되며 상이하다. 따라서, 관리성 엔진(152)은 클라이언트 디바이스(104)의 나머지의 상태와 무관하게 동작할 수 있다. 즉, 관리성 엔진(152)은 클라이언트 디바이스(104)가 파워 오프될 때, 클라이언트 디바이스(104)가 사전-부트 펌웨어 환경을 실행하고 있을 때, 클라이언트 디바이스(104)의 운영 체제가 활동할 때 그리고 운영 체제가 충돌하거나 달리 활동하지 않을 때를 포함하는 프로세서(140)의 동작 상태에 관계없이 동작할 수 있다. 관리성 엔진(152)은 또한 클라이언트 디바이스(104)의 상태에 관계없이 통신 회로(148)를 이용하여 통신할 수 있으며, 이는 "대역외" 통신으로도 공지되어 있다. 일부 실시예들에서, 관리성 엔진(152)은 통신 회로(148)를 통한 접속에 더하여 또는 그 대신에 그러한 대역외 통신을 위한 전용 네트워크 어댑터를 포함할 수 있다. 일부 실시예들에서, 관리성 엔진(152)은 I/O 서브시스템(142) 내에 통합되거나 달리 그의 일부를 형성할 수 있다. 따라서, 일부 실시예들에서, 관리성 엔진(152)은 네트워크(106)를 분석하여 관리 서버(102)에 의해 브로드캐스트된 메시지 단편들을 수신하고, 복원된 관리 데이터를 직접 설치하거나, 대안으로서 재시동 이벤트 시에 플랫폼 펌웨어에 의한 설치를 위해 복원된 관리 데이터를 노출할 수 있다.
이제, 도 2를 참조하면, 일부 실시예들에서, 관리 서버(102)는 동작 동안 환경(200)을 설정한다. 예시적인 환경(200)은 클라이언트 관리 모듈(202), 원천 인코딩 모듈(204) 및 브로드캐스트 모듈(206)을 포함한다. 환경(200)의 다양한 모듈들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로서 구현될 수 있다.
클라이언트 관리 모듈(202)은 클라이언트 디바이스들(104) 중 하나 이상으로 브로드캐스트될 관리 데이터를 수신 또는 검색하도록 구성된다. 관리 데이터는 클라이언트 디바이스들(104)을 준비, 구성 또는 달리 관리하는 데 이용될 수 있는 임의의 정보, 코드, 설정들 또는 다른 데이터를 포함할 수 있다. 예로서, 관리 데이터는 기업 보안 정책, 펌웨어 이미지들 또는 소프트웨어 애플리케이션들을 구현하는 데 이용되는 인증 폐지 리스트들 또는 다른 데이터를 포함할 수 있다. 예시적인 실시예에서, 관리 데이터는 클라이언트 관리 모듈(202)에 의해 참조되는 관리 데이터베이스(208) 내에 포함된다. 관리 데이터는 네트워크 관리자, 기업 서버, 또는 클라이언트 디바이스들(104)의 관리를 담당하는 임의의 다른 소스에 의해 제공 또는 유지될 수 있다.
원천 인코딩 모듈(204)은 원천 코드를 이용하여 관리 데이터를 메시지 단편들의 스트림으로 인코딩하도록 구성된다. 아래에 더 설명되는 바와 같이, 레이트리스 소거 코드들로도 공지된 원천 코드들은 유한 소스 메시지가 실질적으로 제한되지 않은 수의 인코딩된 출력 심벌들 또는 메시지 단편들로 인코딩되는 것을 가능하게 한다. 인코딩된 데이터의 수신자들은 임계 수보다 많은 메시지 단편이 수신되는 한은 수신되는 임의의 메시지 단편들로부터 소스 메시지를 복원할 수 있다.
브로드캐스트 모듈(206)은 인코딩된 메시지 단편들을 하나 이상의 클라이언트 디바이스(104)로 브로드캐스트하도록 구성된다. 브로드캐스트 모듈(206)은 네트워크(106)를 통해 메시지 단편들을 계속적으로, 주기적으로 또는 응답적으로 브로드캐스트한다. 브로드캐스트 모듈(206)은 메시지 단편들을 네트워크(106)를 통해 멀티캐스트하여, 현재 네트워크를 분석하고 있는 어떤 클라이언트 디바이스들(104)도 메시지 단편들을 수신하는 것을 가능하게 할 수 있다. 브로드캐스트 모듈(206)은 클라이언트 디바이스들(104)이 임의의 메시지 단편들의 수신을 확인 또는 달리 수신 확인 응답할 것을 요구하지 않을 수 있다.
도 2를 계속 참조하면, 일부 실시예들에서, 각각의 클라이언트 디바이스(104)는 동작 동안 환경(210)을 설정한다. 예시적인 환경(210)은 펌웨어 환경(212) 및 운영 체제(222)를 포함한다. 환경(210)의 다양한 모듈들 또는 컴포넌트들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로서 구현될 수 있다. 게다가, 일부 실시예들에서, 펌웨어 환경(212) 및/또는 운영 체제(222)의 모듈들 중 일부 또는 전부는 다른 모듈들 또는 소프트웨어/펌웨어 구조들과 통합되거나 그들의 일부를 형성할 수 있다.
펌웨어 환경(212)은 네트워크 모듈(214), 원천 디코딩 모듈(216), 갱신 관리 모듈(218) 및 부트 타겟(220)을 포함한다. 펌웨어 환경(212)은 균일 확장가능 펌웨어 인터페이스(uniform extensible firmware interface)(UEFI) 사양(즉, UEFI BIOS)을 구현하는 플랫폼 펌웨어로서 구현될 수 있다. 추가로 또는 대안으로서, 펌웨어 환경(212)은 관리성 엔진(152)의 펌웨어로서 구현될 수 있다. 네트워크 모듈(214)은 네트워크(106)를 주기적으로 분석하여 관리 서버(102)에 의해 브로드캐스트된 임의의 메시지 단편들을 수신하도록 구성된다. 네트워크 모듈(214)은 예로서 네트워크(106)를 통해 수신되는 멀티캐스트 네트워크 트래픽을 필터링하도록 구성되는 필터 드라이버를 포함할 수 있다.
원천 디코딩 모듈(216)은 네트워크 모듈(214)로부터 수신된 메시지 단편들을 디코딩하도록 구성된다. 원천 디코딩 모듈(216)은 충분한 수의 메시지 단편들을 수신한 후에 완성된 메시지를 디코딩할 수 있다. 원천 코드 알고리즘들의 특성들로 인해, 원천 디코딩 모듈(216)은 임의의 특정 메시지 단편들을 수신할 필요가 없을 수 있거나, 메시지 단편들을 임의의 특정 순서로 수신할 필요가 없을 수 있다. 여러 부트 이벤트를 통해 수신되는 메시지 단편들을 디코딩하기 위해, 원천 디코딩 모듈(216)은 (디코딩된 또는 부분적으로 디코딩된 메시지 단편들을 포함하는) 메시지 단편들을 펌웨어 캐시(150)에 저장할 수 있다. 위에서 설명된 바와 같이, 완성된 메시지는 관리 서버(102)에 의해 공급되는 관리 데이터를 포함한다.
갱신 관리 모듈(218)은 관리 서버(102)로부터 수신되는 완성된 메시지를 파싱하고, 포함된 관리 데이터가 클라이언트 디바이스(104) 상에 설치되어야 하는지를 결정하고, 필요한 경우에 관리 데이터를 설치하도록 구성된다. 관리 데이터는 클라이언트 디바이스(104)의 플랫폼 구성 데이터(224)를 갱신함으로써 설치될 수 있다. 그러한 플랫폼 구성 데이터(224)는 임의의 파일들, 볼륨들, 실행 파일들, 펌웨어 이미지들, 전역 변수들, 또는 클라이언트 디바이스(104)의 동작에 영향을 주는 다른 설정들로서 구현될 수 있다. 일부 실시예들에서, 플랫폼 구성 데이터(224)는 클라이언트 디바이스(104) 상에 설치되는 하나 이상의 소프트웨어 애플리케이션으로서 구현될 수 있다.
부트 타겟(220)은 부트 서비스들을 종료하고, 운영 체제 로더를 개시하도록 구성되며, 이어서 운영 체제 로더는 운영 체제(222)를 런칭한다. 부트 타겟(220)은 플랫폼 정책에 기초하여, 예로서 균일 확장가능 펌웨어 인터페이스(UEFI) 사양에 따라 여러 개의 잠재적 부트 타겟 중에서 선택될 수 있다. 부트 타겟(220)은 클라이언트 디바이스(104)가 하나 이상의 메시지 단편을 수신하고 메시지가 아직 완전하지 않은 것으로 결정한 후에 운영 체제(222)가 런칭되게 할 수 있다. 물론, 부트 타겟(220)은 갱신된 관리 데이터의 설치에 응답하여 운영 체제(222)가 런칭되게 할 수도 있다.
이제, 도 3을 참조하면, 이용 시에, 관리 서버(102)는 관리 정보를 브로드캐스트하기 위한 방법(300)을 실행할 수 있다. 방법(300)은 블록 302로부터 시작되며, 여기서 관리 서버(102)는 하나 이상의 클라이언트 디바이스(104) 상의 설치를 위한 관리 데이터를 수신 또는 검색한다. 관리 데이터는 네트워크 관리자로부터, 관리 애플리케이션으로부터, 기업 서버로부터 또는 클라이언트 디바이스들(104)의 관리를 담당하는 임의의 다른 엔티티 또는 프로세스로부터 수신 또는 검색될 수 있다. 관리 데이터는 모든 클라이언트 디바이스들(104) 상에 또는 클라이언트 디바이스들(104)의 서브세트 상에 설치되도록 구성될 수 있다. 관리 데이터는 클라이언트 디바이스들(104)을 준비, 구성 또는 달리 관리하는 데 이용될 수 있는 임의의 정보, 코드, 설정들 또는 다른 데이터로서 구현될 수 있다. 예로서, 일부 실시예들에서, 블록 304에서, 관리 서버(102)는 클라이언트 디바이스들(104) 상의 설치를 위한 이진 펌웨어 이미지를 수신 또는 검색할 수 있다. 이진 펌웨어 이미지는 클라이언트 디바이스(104)에 의해 이용되는 하나 이상의 드라이버, 애플리케이션 또는 구성 설정을 포함할 수 있다. 예로서, 이진 펌웨어 이미지는 각각의 클라이언트 디바이스(104) 상의 소정의 기업 광역 자원들의 이용을 가능하게 할 수 있다. 추가로 또는 대안으로서, 일부 실시예들에서, 블록 306에서, 관리 서버(102)는 인증서 폐지 리스트를 수신 또는 검색할 수 있다. 인증서 폐지 리스트는 디지털 서명들을 인증하기 위해 각각의 클라이언트 디바이스(104)에 의해 이용될 수 있다. 예로서, 아래에 더 설명되는 바와 같이, 인증서 폐지 리스트는 UEFI 사양에 의해 지정되고 보안 부트 프로세스 동안 이용되는 "dbx" 인증서 데이터베이스일 수 있다.
블록 308에서, 관리 서버(102)는 원천 코드 알고리즘을 이용하여 관리 데이터를 다수의 메시지 단편으로 인코딩한다. 레이트리스 소거 코드로도 공지된 원천 코드는 입력 심벌들의 유한 세트를 무한 길이의 인코딩된 출력 심벌들로 인코딩한다. 즉, 원천 코드는 (관리 데이터와 같은) 입력 데이터의 세트를 인코딩된 데이터의 무한 스트림으로 변환한다. 통상적으로, 본래의 입력 심벌들은 임계 수보다 많은 인코딩된 심벌들을 포함하는 인코딩된 심벌들의 임의의 세트로부터 복원될 수 있다. 이상적인 원천 코드는 동일 수의 인코딩된 심벌들이 주어질 경우에 입력 심벌들의 복원을 가능하게 할 것이며; 실제로는 약간 더 많은 수의 인코딩된 심벌들이 입력 심벌들을 복원하는 데 필요할 수 있다. 따라서, 관리 서버(102)는 원천 코드 알고리즘을 관리 데이터 또는 관리 데이터를 포함하는 포맷팅된 메시지(입력 심벌들)에 적용하여, 인코딩된 메시지 단편들(인코딩된 출력 심벌들)을 생성한다. 관리 서버(102)는 LT 코드 알고리즘 또는 Raptor 코드 알고리즘을 포함하지만 이에 한정되지 않는 임의의 적절한 원천 코드 알고리즘을 이용할 수 있다.
블록 310에서, 관리 서버(102)는 네트워크(106)를 통해 메시지 단편들을 브로드캐스트하며, 따라서 하나 이상의 클라이언트 디바이스(104)가 메시지 단편들을 수신할 수 있다. 관리 서버(102)는 메시지 단편들을 멀티캐스트하거나, 달리 각각의 메시지 단편을 임의의 수신 클라이언트 디바이스들(104)로 동시에 전송할 수 있다. 관리 서버(102)는 임의의 클라이언트 디바이스(104)로부터의 수신 확인 응답 또는 확인의 수신을 기다리지 않고서 메시지 단편들을 브로드캐스트할 수 있다. 관리 서버(102)는 네트워크(106)에 적합한 임의의 데이터 레이트로 메시지 단편들을 계속적으로, 주기적으로 또는 응답적으로 브로드캐스트할 수 있다.
블록 312에서, 관리 서버(102)는 관리 데이터가 갱신되었는지 또는 갱신되어야 하는지를 결정한다. 예로서, 관리 서버(102)는 네트워크 관리자로부터 관리 정보를 갱신하기 위한 요청을 수신할 수 있다. 관리 데이터가 갱신되어야 하는 경우, 방법(300)은 블록 302로 루프 백하여, 갱신된 관리 데이터를 수신한다. 관리 데이터가 갱신되지 않아야 하는 경우, 방법(300)은 블록 310으로 루프 백하여, 네트워크(106)를 통해 메시지 단편들을 계속 브로드캐스트한다.
이제, 도 4를 참조하면, 이용 시에, 클라이언트 디바이스(104)는 UEFI 사양에 따라 부트 프로세스(400)를 실행할 수 있다. 부트 프로세스(400)는 클라이언트 디바이스(104)가 완전한 전기 또는 기계적 "오프" 상태로부터 파워 온될 때, 클라이언트 디바이스(104)가 "소프트-오프" 전력 상태로부터 전력공급될 때, 클라이언트 디바이스(104)가 재설정 또는 리부팅될 때 또는 클라이언트 디바이스(104)가 슬립 상태로부터 깨어날 때를 포함하여 클라이언트 디바이스(104)가 파워 온될 때마다 실행될 수 있다. 부트 프로세스(400)의 실행 동안, 클라이언트 디바이스(104)는 펌웨어 환경(212)의 완전한 제어 하에 있을 수 있다. 블록 402에서, 클라이언트 디바이스(104)는 플랫폼 하드웨어를 초기화한다. 예로서, 클라이언트 디바이스(104)는 펌웨어 환경(212)을 로딩하거나 달리 처리하는 데 필요한 특정 컴포넌트들, 예로서 메모리(144) 및 I/O 서브시스템(142)을 초기화할 수 있다.
블록 404에서, 클라이언트 디바이스(104)는 하나 이상의 펌웨어 드라이버(406) 또는 펌웨어 애플리케이션(408)에 대한 펌웨어 이미지를 로딩하고 개시한다. 펌웨어 드라이버들(406) 및 펌웨어 애플리케이션들(408)은 데이터 스토리지 디바이스(146)의 시스템 파티션에 저장될 수 있는 이진 이미지들이다. 로딩될 특정 드라이버들 및 애플리케이션들은 플랫폼에 의존하며, 예로서 클라이언트 디바이스(104)의 플랫폼 플래시 메모리 내에 클라이언트 디바이스(104)의 전역 변수들 내에 열거될 수 있다. 클라이언트 디바이스(104)는 로딩될 펌웨어 드라이버들(406) 및 애플리케이션들(408)을 열거하고, 필요한 부트 순서를 결정할 수 있다. 부트 순서는 펌웨어 드라이버들(406)과 애플리케이션들(408) 간의 의존성에 기초할 수 있다.
펌웨어 드라이버들(406) 및 애플리케이션들(408)은 애플리케이션들(408)이 일반적으로 그들의 엔트리 포인트로부터 복귀한 후에 메모리(144)로부터 언로딩되고 드라이버들(406)이 일반적으로 에러 코드로 복귀하지 않는 한은 메모리(144) 내에 계속 거주한다는 점 외에는 유사하다. 펌웨어 드라이버들(406) 및 애플리케이션들(408)은 클라이언트 디바이스(104)의 하드웨어를 초기화 또는 제어할 수 있다. 펌웨어 드라이버들(406) 및 애플리케이션들(408)은 또한 함수 호출 인터페이스들을 정의하는 펌웨어 프로토콜 인터페이스들을 설치하고, 설치 후에 다른 펌웨어 이미지들이 제공되는 서비스들을 호출하는 것을 가능하게 할 수 있다. 예로서, 하나 이상의 펌웨어 드라이버(406) 또는 애플리케이션(408)은 클라이언트 디바이스(104)가 통신 회로(148)에 액세스하고/하거나 브로드캐스트 관리 정보를 수신하는 것을 가능하게 하기 위한 프로토콜들을 설치할 수 있다. 일부 실시예들에서, 관리 갱신 프로세스(410)가 펌웨어 드라이버(406)로서 그리고/또는 펌웨어 애플리케이션(408)으로서 수행될 수 있다. 관리 갱신 프로세스(410)는 도 5와 관련하여 아래에 더 설명되는 바와 같이 관리 서버(102)에 의해 브로드캐스트되는 관리 데이터를 수신하고/하거나 설치할 수 있다.
부트 프로세스(400)는 보안 부트 서브시스템(412)을 더 포함한다. 보안 부트 서브시스템(412)은 모든 펌웨어 이미지를 이미지가 로딩되기 전에 인증할 수 있다. 보안 부트 서브시스템(412)은 예로서 특정 펌웨어 이미지와 관련된 디지털 서명을 신뢰 인증서들의 세트에 대해 검증함으로써 펌웨어 이미지를 인증할 수 있다. 보안 부트 서브시스템(412)은 인가된 인증서들("화이트리스트") 또는 금지된 인증서들("블랙리스트" 또는 "인증서 폐지 리스트")을 포함하는 하나 이상의 데이터베이스를 유지 또는 달리 참조할 수 있다. 예로서, UEFI 사양은 허가된 인증서들이 (SECURITY_DATABASE로도 공지된) 서명 데이터베이스 "db"에 저장되고, 금지된 인증서들이 (SECURITY_DATABASE1로도 공지된) 서명 데이터베이스 "dbx"에 저장된다는 것을 정의한다. 로딩 전에 각각의 펌웨어 이미지를 인증하는 것은 클라이언트 디바이스(104)로 하여금 (아래에 설명되는 각각의 부트 타겟(416)을 포함하는) 부트 프로세스(400) 동안 실행되는 모든 소프트웨어가 신뢰되는 소스로부터 개시되는 것을 보증하는 것을 가능하게 함으로써 보안을 개선할 수 있다.
블록 414에서, 클라이언트 디바이스(104)는 부트 타겟(416)을 결정하고 로딩한다. 부트 타겟(416)은 클라이언트 디바이스(104)에 의해 로딩되고 개시될 수 있는 펌웨어 애플리케이션이다. 따라서, 부트 타겟(416)은 보안 부트 서브시스템(412)에 종속할 수도 있다. 부트 타겟들은 통상적으로 운영 체제 로더들이지만, 부트 타겟은 진단, 유지 또는 관리 애플리케이션들을 포함할 수 있다. 선택되는 특정 부트 타겟(416)은 예로서 플랫폼 플래시 메모리에 저장되는 클라이언트 디바이스(104)의 전역 변수들에서 지정될 수 있다. 클라이언트 디바이스(104)의 전역 변수들은 부트 타겟들(416)의 상대 순서를 포함하여 여러 부트 타겟(416)을 지정할 수 있다. 일부 실시예들에서, 부트 타겟(416)은 클라이언트 디바이스(104) 상에 제시되는 메뉴 또는 다른 수단을 통해 클라이언트 디바이스(104)의 사용자에 의해 선택될 수 있다. 일부 실시예들에서, 클라이언트 디바이스(104)는 디폴트 부트 타겟(416) 또는 부트 타겟(416)을 선택하기 위한 디폴트 규칙들을 포함할 수 있다.
부트 타겟(416)에서, 클라이언트 디바이스(104)는 제어를 운영 체제 로더(418)로 전달한다. 그러한 운영 체제 로더(418)는 데이터 스토리지 디바이스(146)의 시스템 파티션에 저장되지 않을 수 있다. 그러한 전달의 일부로서, 부트 타겟(416)은 블록 420으로 진행하여, 예로서 UEFI 함수 ExitBootServices()를 호출함으로써 부트 서비스들을 종료할 수 있다. 따라서, 그러한 부트 타겟(416)이 성공적인 경우, 부트 프로세스(400)가 완료되며, 운영 체제(222)는 클라이언트 디바이스(104)를 완전히 제어한다. 제어가 운영 체제(222)로 전달된 후에는, 실행 시간-가능(runtime-capable)으로서 명확히 지정된 펌웨어 서비스들만이 계속 이용 가능하다. 따라서, 많은 실시예에서, 통신 회로(148)에 대한 액세스를 허가하는 임의의 펌웨어 드라이버들(406) 또는 애플리케이션들(408)은 부트 서비스들의 종료 후에는 더 이상 이용 가능하지 않다. 부트 서비스들이 부트 타겟(416)에 의해 종료되지 않는 경우, 예로서 운영 체제 로더(418)가 운영 체제(222)를 로딩하지 못하는 경우, 클라이언트 디바이스(104)는 다른 부트 타겟(416)을 로딩하도록 시도할 수 있다.
이제, 도 5를 참조하면, 이용 시에, 클라이언트 디바이스(104)는 브로드캐스트 관리 데이터를 수신하기 위한 방법(500)을 실행할 수 있다. 방법(500)은 블록 502에서 시작되며, 여기서 클라이언트 디바이스(104)가 부트 업된다. 위에서 설명된 바와 같이, 클라이언트 디바이스(104)는 플랫폼을 파워 온하거나, 플랫폼을 재설정하거나, 슬립 상태로부터 플랫폼을 깨우는 것에 응답하여 부팅될 수 있다. 위에서 더 설명된 바와 같이, 부트 시에, 클라이언트 디바이스(104)는 다양한 펌웨어 드라이버들(406) 및 애플리케이션들(408)의 로딩을 포함하는 부트 프로세스(400)를 실행할 수 있다. 따라서, 방법(500)의 다양한 동작들은 하나 이상의 펌웨어 드라이버(406) 또는 펌웨어 애플리케이션(408)에 의해 수행될 수 있다.
블록 504에서, 클라이언트 디바이스(104)는 펌웨어 드라이버들(406) 및/또는 펌웨어 애플리케이션들(408)을 로딩 및 초기화한다. 위에서 설명된 바와 같이, 펌웨어 드라이버들(406) 및/또는 펌웨어 애플리케이션들(408)은 부트 프로세스(400)의 일부로서 로딩될 수 있다. 클라이언트 디바이스(104)는 클라이언트 디바이스(104)가 브로드캐스트 관리 데이터를 수신하는 것을 가능하게 하기 위해 펌웨어 드라이버들(406) 및/또는 애플리케이션들(408), 예로서 네트워크 인터페이스 드라이버들을 로딩할 수 있다. 블록 506에서, 클라이언트 디바이스(104)는 원천 코드 드라이버를 로딩한다. 원천 코드 드라이버는 네트워크(106)의 분석 및 수신된 메시지 단편들의 디코딩을 포함하는 방법(500)의 다양한 동작들을 수행하도록 구성될 수 있다. 원천 코드 드라이버는 펌웨어 드라이버(406)로서 구현될 수 있다. 따라서, 원천 코드 드라이버는 다른 펌웨어 드라이버들(406) 및/또는 펌웨어 애플리케이션들(408)을 로딩함으로써 의존성이 충족된 후에 로딩될 수 있다. 원천 코드 드라이버를 로딩한 후, 클라이언트 디바이스(104)는 예로서 추가적인 펌웨어 드라이버들(406) 및/또는 펌웨어 애플리케이션들(408)을 로딩함으로써 부트 프로세스(400)를 계속할 수 있다.
블록 508에서, 클라이언트 디바이스(104)는 착신 메시지 단편들에 대해 네트워크(106)를 분석한다. 클라이언트 디바이스(104)는 네트워크(106)로부터 데이터를 샘플링, 판독, 개방 또는 달리 수집하여 착신 메시지 단편들을 수신할 수 있다. 그러한 메시지 단편들은 위에서 설명된 바와 같이 원천 코드 알고리즘을 이용하여 관리 서버(102)에 의해 생성되었을 수 있다. 클라이언트 디바이스(104)는 통신 회로(148) 상에 나타나는 임의의 네트워크 트래픽을 샘플링할 수 있으며; 클라이언트 디바이스(104)는 관리 서버(102)를 기다리거나, 수신 확인 응답하거나, 달리 동기화할 필요가 없다. 일부 실시예들에서, 블록 510에서, 클라이언트 디바이스(104)는 관리 서버(102)로부터 네트워크(106)를 통해 수신된 임의의 멀티캐스트 데이터를 필터링함으로써 네트워크를 샘플링할 수 있다. 예로서, 클라이언트 디바이스(104)는 멀티캐스트 데이터를 인식 및 처리하기 위한 필터 드라이버를 설치할 수 있다.
블록 512에서, 클라이언트 디바이스(104)는 메시지 단편들을 위한 네트워크(106)의 분석에 대한 타임아웃이 발생하였는지를 결정한다. 위에서 설명된 바와 같이, 원천 코드는 완성된 메시지를 디코딩하기 위해 소정의 최소 수의 메시지 단편들을 요구한다. 따라서, 더 긴 시간 동안 네트워크(106)를 분석하여, 잠재적으로 더 많은 메시지 단편들을 수신함으로써, 메시지를 디코딩하는 데 필요한 시간의 양 및/또는 플랫폼 부트 이벤트들의 수를 줄일 수 있다. 그러나, 부트 프로세스의 지속 기간을 줄이는 것이 일반적으로 많은 클라이언트 디바이스(104)에 대해 바람직하며, 많은 운영 체제(222)는 부트 프로세스의 전체 지속 기간에 대한 한도를 지정한다. 따라서, 다양한 실시예들은 샘플링되는 메시지 단편들의 양과 부트 프로세스의 속도를 균형화하기 위해 상이한 타임아웃들을 이용할 수 있다. 타임아웃의 길이는 플랫폼 정책에 따라 결정될 수 있다. 예로서, 소비자 클라이언트 디바이스(104)는 부트 프로세스의 속도를 강조하기 위해 단일 메시지 단편의 수신을 허용할 수 있는 비교적 짧은 타임아웃을 이용할 수 있다. 다른 예로서, 기업 클라이언트 디바이스(104)는 많은 메시지 단편이 각각의 부트 이벤트에 대해 수신될 수 있는 확률을 증가시키기 위해 1초 또는 수 초 정도의 비교적 긴 타임아웃을 이용할 수 있다. 추가로 또는 대안으로서, 일부 실시예들에서, 타임아웃은 부트 프로세스(400)의 종료에 대응할 수 있다. 즉, 그러한 실시예들에서, 클라이언트 디바이스(104)는 부트 프로세스(400)가 완료되고 운영 체제(222)가 로딩될 준비가 될 때까지 네트워크(106)를 분석할 수 있다. 타임아웃이 만료되지 않은 경우, 방법(500)은 블록 508로 루프 백하여, 네트워크(106)를 계속 분석한다. 타임아웃이 만료된 경우, 방법(500)은 블록 514로 진행한다.
블록 514에서, 클라이언트 디바이스(104)는 타임아웃의 만료 전에 네트워크(106)로부터 임의의 메시지 단편들이 수신되었는지를 결정한다. 메시지 단편들이 수신되지 않은 경우, 방법(500)은 블록 536 앞으로 분기하여, 클라이언트 디바이스(104)를 계속 부팅한다. 아래에 더 설명되는 바와 같이, 클라이언트 디바이스(104)는 미래 부트 이벤트들에 응답하여 메시지 단편들을 수신할 수 있다. 그러나, 타임아웃의 만료 전에 임의의 메시지 단편들이 수신된 경우, 방법(500)은 블록 516으로 진행한다.
블록 516에서, 클라이언트 디바이스(104)는 수신된 메시지 단편들을 펌웨어 캐시(150)에 저장한다. 위에서 설명된 바와 같이, 펌웨어 캐시(150)는 펌웨어 환경(212)에 의해 액세스될 수 있는 임의의 비휘발성 저장 매체로서 구현될 수 있다. 따라서, 캐싱된 메시지 단편들은 후속 부트 이벤트들 동안 메시지를 디코딩하는 데 이용될 수 있다. 물론, 펌웨어 캐시(150)는 이전의 부트 이벤트들 동안 저장된 캐싱된 메시지 단편들도 포함할 수 있다. 따라서, 메시지 단편들은 여러 부트 이벤트에 걸쳐 펌웨어 캐시(150) 내에 축적될 수 있다.
블록 518에서, 클라이언트 디바이스(104)는 펌웨어 캐시(150)에 저장된 메시지 단편들을 디코딩하여 소스 메시지의 적어도 일부를 생성한다. 위에서 설명된 바와 같이, 클라이언트 디바이스(104)는 메시지 단편들을 인코딩하는 데 이용되는 특정 원천 코드에 대해 적절한 디코딩 알고리즘을 이용하다. 클라이언트 디바이스(104)에 의해 저장되는 특정 동작들 및 데이터는 이용 중인 원천 코드에 의존할 수 있다. 예로서, LT 코드에 대해, 클라이언트 디바이스(104)는 디코딩된 단편들(즉, 1의 등급을 갖는 단편들)의 콘텐츠에 기초하여 펌웨어 캐시(150)에 저장된 메시지 단편들의 값들을 반복 갱신할 수 있다. 일부 실시예들에서, 개별 메시지 단편들은 더 최근에 수신된 메시지 단편에 기초하여 부분적으로 디코딩될 수 있다. 이전의 예를 계속하면, LT 코드에 대해, 클라이언트 디바이스(104)는 더 최근에 수신된 메시지 단편에 기초하여 캐싱된 메시지 단편의 등급을 낮출 수 있다. 클라이언트 디바이스(104)는 메시지 단편들을 적당히 갱신할 수 있거나, 달리 디코딩되거나 부분적으로 디코딩된 메시지 단편들을 펌웨어 캐시(150)에 저장할 수 있다.
블록 520에서, 클라이언트 디바이스(104)는 완전한 메시지가 수신되었는지를 결정한다. 메시지가 완전한지를 결정하는 데 이용되는 방법은 이용되는 특정 원천 코드에 의존한다. 예로서, LT 코드에 대해, 클라이언트 디바이스(104)는 모든 메시지 단편들이 1의 등급을 갖는지를 결정할 수 있다. 완전한 메시지가 수신되지 않은 경우, 방법(500)은 블록 536 앞으로 분기하여, 아래에 설명되는 바와 같이 부트 타겟(416)을 실행한다. 완전한 메시지가 수신된 경우, 방법(500)은 블록 522로 진행한다.
블록 522에서, 클라이언트 디바이스(104)는 완성된 메시지를 파싱하여, 포함된 관리 데이터를 식별한다. 메시지는 관리 데이터의 전송에 적합한 임의의 데이터 포맷으로 포맷팅될 수 있다. 메시지는 관리 데이터를 설명하는 추가 헤더들 또는 다른 메타데이터도 포함할 수 있다. 예로서, 메시지는 관리 데이터를 포함하는 펌웨어 볼륨으로서 포맷팅될 수 있다. 물론, 일부 실시예들에서, 메시지는 원본 관리 데이터 자체를 포함할 수 있다. 일부 실시예들에서, 블록 524에서, 클라이언트 디바이스(104)는 메시지로부터 이진 펌웨어 이미지, 예로서 펌웨어 드라이버(406) 또는 펌웨어 애플리케이션(408)을 검색한다. 일부 실시예들에서, 블록 526에서, 클라이언트 디바이스(104)는 메시지로부터 인증서 폐지 리스트, 예로서 UEFI 사양에 의해 지정되는 바와 같은 "dbx" 데이터베이스를 검색한다. 관리 데이터는 검색된 펌웨어 이미지 및/또는 인증서 폐지 리스트로서 구현될 수 있다.
블록 528에서, 클라이언트 디바이스(104)는 관리 데이터를 설치할지를 결정한다. 클라이언트 디바이스(104)는 임의의 적절한 기준들을 적용하여 관리 데이터를 설치할지를 결정할 수 있다. 예로서, 클라이언트 디바이스(104)는 관리 데이터가 클라이언트 디바이스(104)에 적합한지 또는 적용 가능한지, 또는 관리 데이터가 클라이언트 디바이스(104) 상에 이미 설치되었는지를 결정할 수 있다. 클라이언트 디바이스(104)가 관리 데이터를 설치하지 않은 것으로 결정되는 경우, 방법(500)은 블록 536 앞으로 분기하여, 아래에 설명되는 바와 같이 부트 타겟(416)을 실행한다. 관리 데이터가 설치되지 않은 경우, 방법(500)은 블록 530으로 진행한다.
블록 530에서, 클라이언트 디바이스(104)는 클라이언트 디바이스(104)의 플랫폼 구성 데이터(224)에 관리 데이터를 적용함으로써 관리 데이터를 설치한다. 클라이언트 디바이스(104)는 임의의 액션을 수행하거나, 임의의 설정을 변경하거나, 관리 데이터를 설치하는 데 필요한 임의의 파일들 또는 데이터를 저장할 수 있다. 또한, 관리 데이터는 (예로서, 메모리(144) 내에) 일시적으로 또는 (예로서, 데이터 스토리지(146) 내에) 영구적으로 설치될 수 있다. 일부 실시예들에서, 블록 532에서, 클라이언트 디바이스(104)는 이진 펌웨어 이미지를 설치할 수 있다. 예로서, 클라이언트 디바이스(104)는 펌웨어 이미지를 로딩 및 실행하고/하거나, 펌웨어 이미지를 데이터 스토리지(146)의 시스템 파티션에 저장할 수 있다. 일부 실시예들에서, 블록 534에서, 클라이언트 디바이스(104)는 인증서 폐지 리스트를 설치할 수 있다. 예로서, 클라이언트 디바이스(104)는 "dbx" 금지된 인증서 데이터베이스를 플랫폼 플래시 메모리 내의 전역 변수에 저장할 수 있다.
블록 536에서, 클라이언트 디바이스(104)는 부트 타겟(416)을 실행하여 방법(500)을 완료한다. 위에서 설명된 바와 같이, 부트 타겟(416)은 통상적으로 운영 체제 로더(418)에서 개시되며, 이어서 운영 체제 로더는 운영 체제(222)를 런칭한다. 운영 체제(222)가 런칭된 후(그리고 부트 서비스들이 종료된 후), 펌웨어 환경(212)은 더 이상 클라이언트 디바이스(104)의 플랫폼 하드웨어를 제어하지 않는다. 따라서, 클라이언트 디바이스(104)는 운영 체제(222)의 실행 동안 원천 코드 메시지 단편들을 수신하고/하거나 그들에 응답하지 않을 수 있다. 방법(500)은 다음 플랫폼 부트 이벤트 동안 다시 실행될 수 있다. 예로서, 방법(500)은 클라이언트 디바이스(104)가 물리적으로 전력 순환되거나 리부팅되거나 슬립 상태로부터 깨어날 때 다시 실행될 수 있다.
선행하는 개시내용은 방법(500)을 플랫폼 부트 이벤트에 응답하여 펌웨어 환경(212)에서 클라이언트 디바이스(104)에 의해 실행되는 것으로 설명하였지만, 일부 실시예들에서 방법(500)은 펌웨어 환경(212)이 클라이언트 디바이스(104)를 제어하는 임의의 시간에 실행될 수 있다는 것을 이해해야 한다. 추가로 또는 대안으로서, 일부 실시예들에서, 방법(500)의 부분들 또는 전부가 대역외 방식으로 관리성 엔진(152)에 의해 실행될 수 있다. 예로서, 방법(500)은 결합된 보안 및 관리성 엔진(combined security and manageability engine)(CSME) 또는 클라이언트 디바이스(104)의 시스템-온-칩(SoC) 패키지에 포함된 다른 마이크로컨트롤러에 의해 실행될 수 있다. 그러한 예들에서, 방법(500)은 프로세서(140)가 달리 활동하는 실행 시간에 또는 SoC의 활성 유휴 상태들(예로서, S0ix 상태)로의 또는 그들로부터의 전이들을 포함하는 부트 이벤트들 외의 추가적인 전력 상태 전이들 동안 실행될 수 있다. 예로서, 관리성 엔진(152)은 네트워크(106)를 계속적으로, 주기적으로 또는 응답적으로 분석하여, 관리 서버(102)에 의해 브로드캐스트된 메시지 단편들을 수신하고 관리 데이터를 복원할 수 있다. 관리성 엔진(152)은 예로서 관리성 엔진(152)이 UEFI 가변 저장소에 대한 직접 액세스를 갖는 경우에 SECURITY_DATABASE 및/또는 SECURITY_DATABASE1을 직접 갱신함으로써 관리 데이터를 직접 적용할 수 있다. 추가로 또는 대안으로서, 관리성 엔진(152)은 후속 플랫폼 재개 이벤트 시에 UEFI 펌웨어에 의한 갱신을 위해 그러한 데이터베이스들에 대한 갱신들을 노출할 수 있다.
예들
본 명세서에서 개시되는 기술들의 예시적인 예들이 아래에 제공된다. 기술들의 실시예는 아래에 설명되는 예들 중 어느 하나 이상 및 임의의 조합을 포함할 수 있다.
예 1은 브로드캐스트 관리 정보를 수신하기 위한 클라이언트 디바이스를 포함하고, 클라이언트 디바이스는 클라이언트 디바이스의 부트 프로세스 동안 클라이언트 디바이스의 네트워크 인터페이스를 분석하여, 관리 서버에 의해 브로드캐스트된 메시지 단편들을 수신하기 위한 네트워크 모듈; (i) 원천 코드 디코딩 알고리즘을 이용하여 메시지 단편들을 디코딩하여 메시지의 적어도 일부를 생성하고, (ii) 메시지의 적어도 일부의 생성에 응답하여 메시지가 완전한지 여부를 결정하기 위한 원천 디코딩 모듈; 및 (i) 메시지가 완전하다는 결정에 응답하여 메시지를 파싱하여 관리 서버에 의해 메시지에 포함된 관리 데이터를 식별하고, (ii) 관리 데이터를 클라이언트 디바이스에 적용하기 위한 갱신 관리 모듈을 포함한다.
예 2는 예 1의 발명 대상을 포함하며, 네트워크 모듈, 원천 코드 모듈 및 갱신 관리 모듈을 설정하기 위한 펌웨어 환경을 더 포함한다.
예 3은 예 1 및 2 중 어느 하나의 발명 대상을 포함하며, 원천 코드 디코딩 모듈은 또한 메시지 단편들을 클라이언트 디바이스의 펌웨어 캐시에 저장하고; 메시지 단편들을 디코딩하는 것은 펌웨어 캐시에 저장된 메시지 단편들을 디코딩하는 것을 포함하고; 메시지가 완전한지 여부를 결정하는 것은 펌웨어 캐시에 저장된 메시지 단편들의 디코딩에 응답하여 메시지가 완전한지 여부를 결정하는 것을 포함한다.
예 4는 예 1-3 중 어느 하나의 발명 대상을 포함하며, 클라이언트 디바이스의 리부트에 응답하여, 다시 네트워크 모듈은 네트워크 인터페이스를 분석하고, 원천 코드 디코딩 모듈은 메시지 단편들을 디코딩하며, 메시지가 완전한지 여부를 결정한다.
예 5는 예 1-4 중 어느 하나의 발명 대상을 포함하며, 메시지가 완전하지 않다는 결정에 응답하여 또는 관리 데이터의 적용에 응답하여 클라이언트 디바이스의 운영 체제를 로딩하기 위한 부트 타겟을 더 포함한다.
예 6은 예 1-5 중 어느 하나의 발명 대상을 포함하며, 갱신 관리 모듈은 또한 메시지의 파싱에 응답하여 관리 데이터가 클라이언트 디바이스에 적합한지 여부를 결정하고; 관리 데이터를 적용하는 것은 관리 데이터가 클라이언트 디바이스에 적합하다는 결정에 응답하여 관리 데이터를 적용하는 것을 더 포함한다.
예 7은 예 1-6 중 어느 하나의 발명 대상을 포함하며, 원천 코드 디코딩 알고리즘은 LT 코드, Raptor 코드 또는 RaptorQ 코드를 포함한다.
예 8은 예 1-7 중 어느 하나의 발명 대상을 포함하며, 관리 데이터는 메시지에 포함된 이진 펌웨어 이미지를 포함한다.
예 9는 예 1-8 중 어느 하나의 발명 대상을 포함하며, 관리 데이터는 메시지에 포함된 인증서 폐지 리스트를 포함한다.
예 10은 예 1-9 중 어느 하나의 발명 대상을 포함하며, 인증서 폐지 리스트는 보안 부트 블랙리스트를 포함한다.
예 11은 예 1-10 중 어느 하나의 발명 대상을 포함하며, 관리 데이터는 메시지에 포함된 소프트웨어 애플리케이션을 포함한다.
예 12는 예 1-11 중 어느 하나의 발명 대상을 포함하며, 네트워크 모듈, 원천 디코딩 모듈 및 갱신 관리 모듈을 포함하는 관리성 엔진을 더 포함한다.
예 13은 예 1-12 중 어느 하나의 발명 대상을 포함하며, 클라이언트 디바이스의 운영 체제를 실행하기 위한 대역내 프로세서를 더 포함하고, 네트워크 모듈은 또한 운영 체제의 실행 동안 클라이언트 디바이스의 네트워크 인터페이스를 분석하여 관리 서버에 의해 브로드캐스트된 메시지 단편들을 수신한다.
예 14는 예 1-13 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 것은 네트워크 인터페이스를 분석하여 원천 코드 인코딩 알고리즘을 이용하여 인코딩된 메시지 단편들을 수신하는 것을 포함한다.
예 15는 예 1-14 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 것은 관리 서버에 의해 네트워크를 통해 브로드캐스트된 멀티캐스트 데이터를 필터링하는 것을 포함한다.
예 16은 예 1-15 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스는 클라이언트 디바이스의 무선 네트워크 인터페이스를 포함한다.
예 17은 관리 정보를 브로드캐스트하기 위한 관리 서버를 포함하고, 관리 서버는 원천 코드 인코딩 알고리즘을 이용하여 관리 데이터를 복수의 메시지 단편으로 인코딩하기 위한 원천 인코딩 모듈; 및 복수의 클라이언트 디바이스에 의해 액세스가능한 네트워크 상에서 복수의 메시지 단편을 계속해서 브로드캐스트하기 위한 브로드캐스트 모듈을 포함한다.
예 18은 예 17의 발명 대상을 포함하며, 관리 데이터는 이진 펌웨어 이미지를 포함한다.
예 19는 예 17 및 18 중 어느 하나의 발명 대상을 포함하며, 관리 데이터는 인증서 폐지 리스트를 포함한다.
예 20은 예 17-19 중 어느 하나의 발명 대상을 포함하며, 인증서 폐지 리스트는 보안 부트 블랙리스트를 포함한다.
예 21은 브로드캐스트 관리 정보를 수신하기 위한 방법을 포함하고, 방법은 클라이언트 디바이스에 의해, 관리 서버에 의해 브로드캐스트된 메시지 단편들을 수신하기 위해, 클라이언트 디바이스의 부트 프로세스 동안 클라이언트 디바이스의 네트워크 인터페이스를 분석하는 단계; 클라이언트 디바이스에 의해, 메시지의 적어도 일부를 생성하기 위해, 원천 코드 디코딩 알고리즘을 이용하여 메시지 단편들을 디코딩하는 단계; 클라이언트 디바이스에 의해, 메시지 단편들의 디코딩에 응답하여 메시지가 완전한지 여부를 결정하는 단계; 클라이언트 디바이스에 의해, 메시지가 완전하다는 결정에 응답하여 관리 서버에 의해 메시지에 포함된 관리 데이터를 식별하기 위해 메시지를 파싱하는 단계; 및 클라이언트 디바이스에 의해, 관리 데이터를 클라이언트 디바이스에 적용하는 단계를 포함한다.
예 22는 예 21의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 단계, 메시지 단편들을 디코딩하는 단계, 메시지가 완전한지 여부를 결정하는 단계, 메시지를 파싱하는 단계 및 관리 데이터를 적용하는 단계는 모두 클라이언트 디바이스의 펌웨어 환경에 의해 수행된다.
예 23은 예 21 및 22 중 어느 하나의 발명 대상을 포함하며, 클라이언트 디바이스에 의해, 메시지 단편들을 클라이언트 디바이스의 펌웨어 캐시에 저장하는 단계를 더 포함하고; 메시지 단편들을 디코딩하는 단계는 펌웨어 캐시에 저장된 메시지 단편들을 디코딩하는 단계를 포함하고; 메시지가 완전한지 여부를 결정하는 단계는 펌웨어 캐시에 저장된 메시지 단편들의 디코딩에 응답하여 메시지가 완전한지 여부를 결정하는 단계를 포함한다.
예 24는 예 21-23 중 어느 하나의 발명 대상을 포함하며, 클라이언트 디바이스를 리부팅하는 단계; 및 클라이언트 디바이스의 리부팅에 응답하여, 다시 네트워크 인터페이스를 분석하고, 메시지 단편들을 디코딩하고, 메시지가 완전한지 여부를 결정하는 단계를 더 포함한다.
예 25는 예 21-24 중 어느 하나의 발명 대상을 포함하며, 클라이언트 디바이스에 의해, 메시지가 완전하지 않다는 결정에 응답하여 또는 관리 데이터의 적용에 응답하여 클라이언트 디바이스의 운영 체제를 로딩하는 단계를 더 포함한다.
예 26은 예 21-25 중 어느 하나의 발명 대상을 포함하며, 클라이언트 디바이스에 의해, 메시지의 파싱에 응답하여 관리 데이터가 클라이언트 디바이스에 적합한지 여부를 결정하는 단계를 더 포함하고; 관리 데이터를 적용하는 단계는 관리 데이터가 클라이언트 디바이스에 적합하다는 결정에 응답하여 관리 데이터를 적용하는 단계를 더 포함한다.
예 27은 예 21-26 중 어느 하나의 발명 대상을 포함하며, 메시지 단편들을 디코딩하는 단계는 LT 코드, Raptor 코드 또는 RaptorQ 코드 중 하나를 이용하여 메시지 단편들을 디코딩하는 단계를 포함한다.
예 28은 예 21-27 중 어느 하나의 발명 대상을 포함하며, 관리 데이터를 적용하는 단계는 메시지에 포함된 이진 펌웨어 이미지를 설치하는 단계를 포함한다.
예 29는 예 21-28 중 어느 하나의 발명 대상을 포함하며, 관리 데이터를 적용하는 단계는 메시지에 포함된 인증서 폐지 리스트를 클라이언트 디바이스에 설치하는 단계를 포함한다.
예 30은 예 21-29 중 어느 하나의 발명 대상을 포함하며, 인증서 폐지 리스트를 설치하는 단계는 보안 부트 블랙리스트를 클라이언트 디바이스에 설치하는 단계를 포함한다.
예 31은 예 21-30 중 어느 하나의 발명 대상을 포함하며, 관리 데이터를 적용하는 단계는 메시지에 포함된 소프트웨어 애플리케이션을 클라이언트 디바이스에 설치하는 단계를 포함한다.
예 32는 예 21-31 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 단계, 메시지 단편들을 디코딩하는 단계 및 메시지가 완전한지 여부를 결정하는 단계는 모두 클라이언트 디바이스의 관리성 엔진에 의해 수행된다.
예 33은 예 21-32 중 어느 하나의 발명 대상을 포함하며, 컴퓨팅 디바이스의 대역내 프로세서에 의해, 클라이언트 디바이스의 운영 체제를 실행하는 단계; 및 컴퓨팅 디바이스의 관리성 엔진에 의해, 관리 서버에 의해 브로드캐스트된 메시지 단편들을 수신하기 위해 운영 체제의 실행 동안 클라이언트 디바이스의 네트워크 인터페이스를 분석하는 단계를 더 포함한다.
예 34는 예 21-33 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 단계는 원천 코드 인코딩 알고리즘을 이용하여 인코딩된 메시지 단편들을 수신하기 위해 네트워크 인터페이스를 분석하는 단계를 포함한다.
예 35는 예 21-34 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 단계는 관리 서버에 의해 네트워크를 통해 브로드캐스트된 멀티캐스트 데이터를 필터링하는 단계를 포함한다.
예 36은 예 21-35 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 단계는 클라이언트 디바이스의 무선 네트워크 인터페이스를 분석하는 단계를 포함한다.
예 37은 관리 정보를 브로드캐스트하기 위한 방법을 포함하고, 방법은 관리 서버에 의해, 원천 코드 인코딩 알고리즘을 이용하여 관리 데이터를 복수의 메시지 단편으로 인코딩하는 단계; 및 관리 서버에 의해, 복수의 클라이언트 디바이스에 의해 액세스가능한 네트워크 상에서 복수의 메시지 단편을 계속해서 브로드캐스트하는 단계를 포함한다.
예 38은 예 37의 발명 대상을 포함하며, 관리 데이터를 인코딩하는 단계는 이진 펌웨어 이미지를 인코딩하는 단계를 포함한다.
예 39는 예 37 및 38 중 어느 하나의 발명 대상을 포함하며, 관리 데이터를 인코딩하는 단계는 인증서 폐지 리스트를 인코딩하는 단계를 포함한다.
예 40은 예 37-39 중 어느 하나의 발명 대상을 포함하며, 인증서 폐지 리스트를 인코딩하는 단계는 보안 부트 블랙리스트를 인코딩하는 단계를 포함한다.
예 41은 컴퓨팅 디바이스를 포함하고, 컴퓨팅 디바이스는 프로세서; 및 프로세서에 의해 실행될 때 컴퓨팅 디바이스로 하여금 예 21-40 중 어느 하나의 방법을 수행하게 하는 복수의 명령어를 저장한 메모리를 포함한다.
예 42는 실행되는 것에 응답하여 컴퓨팅 디바이스로 하여금 예 21-40 중 어느 하나의 방법을 수행하게 하는 저장된 복수의 명령어를 포함하는 하나 이상의 머신 판독가능 저장 매체를 포함한다.
예 43은 예 21-40 중 어느 하나의 방법을 수행하는 수단을 포함하는 컴퓨팅 디바이스를 포함한다.
예 44는 브로드캐스트 관리 정보를 수신하기 위한 클라이언트 디바이스를 포함하고, 클라이언트 디바이스는 관리 서버에 의해 브로드캐스트된 메시지 단편들을 수신하기 위해 클라이언트 디바이스의 부트 프로세스 동안 클라이언트 디바이스의 네트워크 인터페이스를 분석하는 수단; 메시지의 적어도 일부를 생성하기 위해, 원천 코드 디코딩 알고리즘을 이용하여 메시지 단편들을 디코딩하는 수단; 메시지 단편들의 디코딩에 응답하여 메시지가 완전한지 여부를 결정하는 수단; 메시지가 완전하다는 결정에 응답하여 관리 서버에 의해 메시지에 포함된 관리 데이터를 식별하기 위해 메시지를 파싱하는 수단; 및 관리 데이터를 클라이언트 디바이스에 적용하는 수단을 포함한다.
예 45는 예 44의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 수단, 메시지 단편들을 디코딩하는 수단, 메시지가 완전한지 여부를 결정하는 수단, 메시지를 파싱하는 수단 및 관리 데이터를 적용하는 수단을 설정하기 위한 펌웨어 환경을 더 포함한다.
예 46은 예 44 및 45 중 어느 하나의 발명 대상을 포함하며, 메시지 단편들을 클라이언트 디바이스의 펌웨어 캐시에 저장하는 수단을 더 포함하고; 메시지 단편들을 디코딩하는 수단은 펌웨어 캐시에 저장된 메시지 단편들을 디코딩하는 수단을 포함하고; 메시지가 완전한지 여부를 결정하는 수단은 펌웨어 캐시에 저장된 메시지 단편들의 디코딩에 응답하여 메시지가 완전한지 여부를 결정하는 수단을 포함한다.
예 47은 예 44-46 중 어느 하나의 발명 대상을 포함하며, 클라이언트 디바이스를 리부팅하는 수단; 및 클라이언트 디바이스의 리부팅에 응답하여, 다시 네트워크 인터페이스를 분석하는 수단, 메시지 단편들을 디코딩하는 수단, 및 메시지가 완전한지 여부를 결정하는 수단을 더 포함한다.
예 48은 예 44-47 중 어느 하나의 발명 대상을 포함하며, 메시지가 완전하지 않다는 결정에 응답하여 또는 관리 데이터의 적용에 응답하여 클라이언트 디바이스의 운영 체제를 로딩하는 수단을 더 포함한다.
예 49는 예 44-48 중 어느 하나의 발명 대상을 포함하며, 메시지의 파싱에 응답하여 관리 데이터가 클라이언트 디바이스에 적합한지 여부를 결정하는 수단을 더 포함하고; 관리 데이터를 적용하는 수단은 관리 데이터가 클라이언트 디바이스에 적합하다는 결정에 응답하여 관리 데이터를 적용하는 수단을 더 포함한다.
예 50은 예 44-49 중 어느 하나의 발명 대상을 포함하며, 메시지 단편들을 디코딩하는 수단은 LT 코드, Raptor 코드 또는 RaptorQ 코드 중 하나를 이용하여 메시지 단편들을 디코딩하는 수단을 포함한다.
예 51은 예 44-50 중 어느 하나의 발명 대상을 포함하며, 관리 데이터를 적용하는 수단은 메시지에 포함된 이진 펌웨어 이미지를 설치하는 수단을 포함한다.
예 52는 예 44-51 중 어느 하나의 발명 대상을 포함하며, 관리 데이터를 적용하는 수단은 메시지에 포함된 인증서 폐지 리스트를 클라이언트 디바이스에 설치하는 수단을 포함한다.
예 53은 예 44-52 중 어느 하나의 발명 대상을 포함하며, 인증서 폐지 리스트를 설치하는 수단은 보안 부트 블랙리스트를 클라이언트 디바이스에 설치하는 수단을 포함한다.
예 54는 예 44-53 중 어느 하나의 발명 대상을 포함하며, 관리 데이터를 적용하는 수단은 메시지에 포함된 소프트웨어 애플리케이션을 클라이언트 디바이스에 설치하는 수단을 포함한다.
예 55는 예 44-54 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 수단, 메시지 단편들을 디코딩하는 수단 및 메시지가 완전한지 여부를 결정하는 수단을 포함하는 관리성 엔진을 더 포함한다.
예 56은 예 44-55 중 어느 하나의 발명 대상을 포함하며, 컴퓨팅 디바이스의 대역내 프로세서에 의해, 클라이언트 디바이스의 운영 체제를 실행하는 수단; 및 컴퓨팅 디바이스의 관리성 엔진에 의해, 관리 서버에 의해 브로드캐스트된 메시지 단편들을 수신하기 위해 운영 체제의 실행 동안 클라이언트 디바이스의 네트워크 인터페이스를 분석하는 수단을 더 포함한다.
예 57은 예 44-56 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 수단은 원천 코드 인코딩 알고리즘을 이용하여 인코딩된 메시지 단편들을 수신하기 위해 네트워크 인터페이스를 분석하는 수단을 포함한다.
예 58은 예 44-57 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 수단은 관리 서버에 의해 네트워크를 통해 브로드캐스트된 멀티캐스트 데이터를 필터링하는 수단을 포함한다.
예 59는 예 44-58 중 어느 하나의 발명 대상을 포함하며, 네트워크 인터페이스를 분석하는 수단은 클라이언트 디바이스의 무선 네트워크 인터페이스를 분석하는 수단을 포함한다.
예 60은 관리 정보를 브로드캐스트하기 위한 관리 서버를 포함하고, 관리 서버는 원천 코드 인코딩 알고리즘을 이용하여 관리 데이터를 복수의 메시지 단편으로 인코딩하는 수단; 및 복수의 클라이언트 디바이스에 의해 액세스가능한 네트워크 상에서 복수의 메시지 단편을 계속해서 브로드캐스트하는 수단을 포함한다.
예 61은 예 60의 발명 대상을 포함하며, 관리 데이터를 인코딩하는 수단은 이진 펌웨어 이미지를 인코딩하는 수단을 포함한다.
예 62는 예 60 및 61 중 어느 하나의 발명 대상을 포함하며, 관리 데이터를 인코딩하는 수단은 인증서 폐지 리스트를 인코딩하는 수단을 포함한다.
예 63은 예 60-62 중 어느 하나의 발명 대상을 포함하며, 인증서 폐지 리스트를 인코딩하는 수단은 보안 부트 블랙리스트를 인코딩하는 수단을 포함한다.

Claims (25)

  1. 브로드캐스트 관리 정보를 수신하기 위한 클라이언트 디바이스로서,
    관리 서버에 의해 브로드캐스트된 메시지 단편들(message fragments)을 수신하기 위해 상기 클라이언트 디바이스의 부트 프로세스 동안 상기 클라이언트 디바이스의 네트워크 인터페이스를 분석하는 네트워크 모듈;
    (i) 메시지의 적어도 일부를 생성하기 위해 원천 코드 디코딩 알고리즘(fountain code decoding algorithm)을 이용하여 상기 메시지 단편들을 디코딩하고, (ii) 상기 메시지의 적어도 일부의 생성에 응답하여 상기 메시지가 완전한지 여부를 결정하는 원천 디코딩 모듈; 및
    (i) 상기 메시지가 완전하다는 결정에 응답하여, 상기 관리 서버에 의해 상기 메시지에 포함된 관리 데이터를 식별하기 위해 상기 메시지를 파싱하고, (ii) 상기 관리 데이터를 상기 클라이언트 디바이스에 적용하는 갱신 관리 모듈
    을 포함하는 클라이언트 디바이스.
  2. 제1항에 있어서,
    상기 네트워크 모듈, 상기 원천 코드 모듈 및 상기 갱신 관리 모듈을 설정(establish)하는 펌웨어 환경을 더 포함하는 클라이언트 디바이스.
  3. 제1항에 있어서,
    상기 원천 코드 디코딩 모듈은 또한 상기 메시지 단편들을 상기 클라이언트 디바이스의 펌웨어 캐시에 저장하고;
    상기 메시지 단편들을 디코딩하는 것은 상기 펌웨어 캐시에 저장된 상기 메시지 단편들을 디코딩하는 것을 포함하고;
    상기 메시지가 완전한지 여부를 결정하는 것은, 상기 펌웨어 캐시에 저장된 상기 메시지 단편들의 디코딩에 응답하여 상기 메시지가 완전한지 여부를 결정하는 것을 포함하는 클라이언트 디바이스.
  4. 제3항에 있어서,
    상기 클라이언트 디바이스의 리부트에 응답하여, 다시 상기 네트워크 모듈은 상기 네트워크 인터페이스를 분석하고, 상기 원천 코드 디코딩 모듈은 상기 메시지 단편들을 디코딩하며, 상기 메시지가 완전한지 여부를 결정하는 클라이언트 디바이스.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 원천 코드 디코딩 알고리즘은 LT 코드, Raptor 코드 또는 RaptorQ 코드를 포함하는 클라이언트 디바이스.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 관리 데이터는 상기 메시지에 포함된 이진 펌웨어 이미지를 포함하는 클라이언트 디바이스.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 관리 데이터는 상기 메시지에 포함된 인증서 폐지 리스트(certificate revocation list)를 포함하는 클라이언트 디바이스.
  8. 제7항에 있어서,
    상기 인증서 폐지 리스트는 보안 부트 블랙리스트(secure boot blacklist)를 포함하는 클라이언트 디바이스.
  9. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 네트워크 모듈, 상기 원천 디코딩 모듈 및 상기 갱신 관리 모듈을 포함하는 관리성 엔진(manageability engine)을 더 포함하는 클라이언트 디바이스.
  10. 제9항에 있어서,
    상기 클라이언트 디바이스의 운영 체제를 실행하는 대역내 프로세서(in-band processor)를 더 포함하고,
    상기 네트워크 모듈은, 또한 상기 관리 서버에 의해 브로드캐스트된 메시지 단편들을 수신하기 위해 상기 운영 체제의 실행 동안 상기 클라이언트 디바이스의 상기 네트워크 인터페이스를 분석하는 클라이언트 디바이스.
  11. 관리 정보를 브로드캐스트하기 위한 관리 서버로서,
    원천 코드 인코딩 알고리즘을 이용하여 관리 데이터를 복수의 메시지 단편으로 인코딩하는 원천 인코딩 모듈; 및
    복수의 클라이언트 디바이스에 의해 액세스가능한 네트워크 상에서 상기 복수의 메시지 단편을 계속해서 브로드캐스트하는 브로드캐스트 모듈
    을 포함하는 관리 서버.
  12. 제11항에 있어서,
    상기 관리 데이터는 이진 펌웨어 이미지를 포함하는 관리 서버.
  13. 제11항에 있어서,
    상기 관리 데이터는 인증서 폐지 리스트를 포함하는 관리 서버.
  14. 브로드캐스트 관리 정보를 수신하기 위한 방법으로서,
    클라이언트 디바이스에 의해, 관리 서버에 의해 브로드캐스트된 메시지 단편들을 수신하기 위해 상기 클라이언트 디바이스의 부트 프로세스 동안 상기 클라이언트 디바이스의 네트워크 인터페이스를 분석하는 단계;
    상기 클라이언트 디바이스에 의해, 메시지의 적어도 일부를 생성하기 위해 원천 코드 디코딩 알고리즘을 이용하여 상기 메시지 단편들을 디코딩하는 단계;
    상기 클라이언트 디바이스에 의해, 상기 메시지 단편들의 디코딩에 응답하여 상기 메시지가 완전한지 여부를 결정하는 단계;
    상기 클라이언트 디바이스에 의해, 상기 메시지가 완전하다는 결정에 응답하여, 상기 관리 서버에 의해 상기 메시지에 포함된 관리 데이터를 식별하기 위해 상기 메시지를 파싱하는 단계; 및
    상기 클라이언트 디바이스에 의해, 상기 관리 데이터를 상기 클라이언트 디바이스에 적용하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서,
    상기 네트워크 인터페이스를 분석하는 단계, 상기 메시지 단편들을 디코딩하는 단계, 상기 메시지가 완전한지 여부를 결정하는 단계, 상기 메시지를 파싱하는 단계 및 상기 관리 데이터를 적용하는 단계는 모두 상기 클라이언트 디바이스의 펌웨어 환경에 의해 수행되는 방법.
  16. 제14항에 있어서,
    상기 클라이언트 디바이스에 의해, 상기 메시지 단편들을 상기 클라이언트 디바이스의 펌웨어 캐시에 저장하는 단계;
    상기 클라이언트 디바이스를 리부팅하는 단계; 및
    상기 클라이언트 디바이스의 리부팅에 응답하여, 다시 상기 네트워크 인터페이스를 분석하고, 상기 메시지 단편들을 디코딩하고, 상기 메시지가 완전한지 여부를 결정하는 단계
    를 더 포함하고,
    상기 메시지 단편들을 디코딩하는 단계는 상기 펌웨어 캐시에 저장된 상기 메시지 단편들을 디코딩하는 단계를 포함하고,
    상기 메시지가 완전한지 여부를 결정하는 단계는, 상기 펌웨어 캐시에 저장된 상기 메시지 단편들의 디코딩에 응답하여 상기 메시지가 완전한지 여부를 결정하는 단계를 포함하는 방법.
  17. 제14항에 있어서,
    상기 관리 데이터를 적용하는 단계는 상기 메시지에 포함된 이진 펌웨어 이미지를 설치하는 단계를 포함하는 방법.
  18. 제14항에 있어서,
    상기 관리 데이터를 적용하는 단계는 상기 메시지에 포함된 인증서 폐지 리스트를 상기 클라이언트 디바이스에 설치하는 단계를 포함하는 방법.
  19. 제14항에 있어서,
    상기 네트워크 인터페이스를 분석하는 단계, 상기 메시지 단편들을 디코딩하는 단계 및 상기 메시지가 완전한지 여부를 결정하는 단계는 모두 상기 클라이언트 디바이스의 관리성 엔진에 의해 수행되는 방법.
  20. 제14항에 있어서,
    상기 컴퓨팅 디바이스의 대역내 프로세서에 의해, 상기 클라이언트 디바이스의 운영 체제를 실행하는 단계; 및
    상기 컴퓨팅 디바이스의 상기 관리성 엔진에 의해, 상기 관리 서버에 의해 브로드캐스트된 메시지 단편들을 수신하기 위해 상기 운영 체제의 실행 동안 상기 클라이언트 디바이스의 상기 네트워크 인터페이스를 분석하는 단계
    를 더 포함하는 방법.
  21. 관리 정보를 브로드캐스트하기 위한 방법으로서,
    관리 서버에 의해, 원천 코드 인코딩 알고리즘을 이용하여 관리 데이터를 복수의 메시지 단편으로 인코딩하는 단계; 및
    상기 관리 서버에 의해, 복수의 클라이언트 디바이스에 의해 액세스가능한 네트워크 상에서 상기 복수의 메시지 단편을 계속해서 브로드캐스트하는 단계
    를 포함하는 방법.
  22. 제21항에 있어서,
    상기 관리 데이터를 인코딩하는 단계는 이진 펌웨어 이미지를 인코딩하는 단계를 포함하는 방법.
  23. 컴퓨팅 디바이스로서,
    프로세서; 및
    상기 프로세서에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금 제14항 내지 제22항 중 어느 한 항의 방법을 수행하게 하는 복수의 명령어가 저장되어 있는 메모리
    를 포함하는 컴퓨팅 디바이스.
  24. 실행되는 것에 응답하여, 컴퓨팅 디바이스로 하여금 제14항 내지 제22항 중 어느 한 항의 방법을 수행하게 하는 저장된 복수의 명령어를 포함하는 하나 이상의 머신 판독가능 저장 매체.
  25. 제14항 내지 제22항 중 어느 한 항의 방법을 수행하는 수단을 포함하는 컴퓨팅 디바이스.
KR1020167022282A 2014-03-21 2015-03-04 원천 코드들을 이용한 관리 정보의 브로드캐스트 KR101891423B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/222,014 2014-03-21
US14/222,014 US9626196B2 (en) 2014-03-21 2014-03-21 Broadcasting management information using fountain codes
PCT/US2015/018758 WO2015142519A1 (en) 2014-03-21 2015-03-04 Broadcasting management information using fountain codes

Publications (2)

Publication Number Publication Date
KR20160110467A true KR20160110467A (ko) 2016-09-21
KR101891423B1 KR101891423B1 (ko) 2018-08-24

Family

ID=54143236

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167022282A KR101891423B1 (ko) 2014-03-21 2015-03-04 원천 코드들을 이용한 관리 정보의 브로드캐스트

Country Status (6)

Country Link
US (2) US9626196B2 (ko)
EP (1) EP3120498A4 (ko)
JP (1) JP6316978B2 (ko)
KR (1) KR101891423B1 (ko)
CN (1) CN105981332B (ko)
WO (1) WO2015142519A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10262140B2 (en) 2016-09-29 2019-04-16 Intel Corporation Methods and apparatus to facilitate blockchain-based boot tracking
US11025607B2 (en) * 2016-12-15 2021-06-01 At&T Mobility Ii Llc V2X certificate management
US10831897B2 (en) * 2017-07-14 2020-11-10 Dell Products, L.P. Selective enforcement of secure boot database entries in an information handling system
CN107506647A (zh) * 2017-07-28 2017-12-22 努比亚技术有限公司 漏洞自动修复方法及移动终端
CN108234216B (zh) * 2018-01-16 2021-04-20 广东乐心医疗电子股份有限公司 下载数据报文的方法及装置
US10904284B2 (en) * 2018-09-14 2021-01-26 International Business Machines Corporation Enabling software distribution
US10831467B2 (en) * 2018-10-25 2020-11-10 American Megatrends International, Llc Techniques of updating host device firmware via service processor
DE102019123712A1 (de) * 2019-09-04 2021-03-04 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Vorrichtung mit einer fountain-code-dekodiereinheit zum rekonstruieren eines konfigurationsdatensatzes
US20210334380A1 (en) * 2020-04-24 2021-10-28 Vmware, Inc. Trusted firmware verification
US12020021B2 (en) * 2022-06-13 2024-06-25 Xilinx, Inc. Impactless firmware update

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000194562A (ja) * 1998-12-24 2000-07-14 Nec Corp プログラムダウンロードシステムおよびプログラムダウンロード方法、並びに記録媒体
JP2013162470A (ja) * 2012-02-08 2013-08-19 Fujitsu Telecom Networks Ltd 伝送装置管理システムおよびデータバックアップ方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122277A (en) * 1997-08-19 2000-09-19 International Business Machines Corporation Parallel computer network broadcasting and acknowledgement
US20040030768A1 (en) * 1999-05-25 2004-02-12 Suban Krishnamoorthy Unified system and method for downloading code to heterogeneous devices in distributed storage area networks
US7225164B1 (en) * 2000-02-15 2007-05-29 Sony Corporation Method and apparatus for implementing revocation in broadcast networks
JP2005107803A (ja) * 2003-09-30 2005-04-21 Hitachi Ltd システム更新方法、および、それを実行するための計算機システム
WO2005046233A1 (en) * 2003-10-16 2005-05-19 Stmicroelectronics Limited Security integrated circuit
US9161231B2 (en) * 2004-10-14 2015-10-13 Alcatel Lucent Method and system for wireless networking using coordinated dynamic spectrum access
US9455844B2 (en) * 2005-09-30 2016-09-27 Qualcomm Incorporated Distributed processing system and method
US8984265B2 (en) * 2007-03-30 2015-03-17 Intel Corporation Server active management technology (AMT) assisted secure boot
US8578332B2 (en) * 2007-04-30 2013-11-05 Mark Murray Universal microcode image
US7900033B2 (en) * 2007-06-26 2011-03-01 Intel Corporation Firmware processing for operating system panic data
US9461827B2 (en) * 2008-04-11 2016-10-04 Toyota Motor Engineering & Manufacturing North America, Inc. Method for distributing a list of certificate revocations in a vanet
US7917614B2 (en) * 2008-06-10 2011-03-29 International Business Machines Corporation Fault tolerance in a client side pre-boot execution
US20090327741A1 (en) * 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US7853710B2 (en) * 2008-10-15 2010-12-14 Patentvc Ltd. Methods and devices for controlling the rate of a pull protocol
US9288010B2 (en) * 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US8627073B2 (en) * 2010-03-24 2014-01-07 GM Global Technology Operations LLC Adaptive certificate distribution mechanism in vehicular networks using forward error correcting codes
CN101945106B (zh) * 2010-09-08 2013-03-27 东莞电子科技大学电子信息工程研究院 一种富媒体场景在广播网中的传输方法
CN102752184A (zh) * 2011-04-20 2012-10-24 河海大学 用于实时多播业务的数据通信系统及其方法
KR101216110B1 (ko) * 2011-05-18 2012-12-28 목포대학교산학협력단 차량 통신을 위한 인증서 취소 목록 배포 방법 및 시스템과 이를 위한 인증서 취소 목록 획득 장치
US9060252B2 (en) * 2012-07-31 2015-06-16 International Business Machines Corporation Rate adaptive transmission of wireless broadcast packets

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000194562A (ja) * 1998-12-24 2000-07-14 Nec Corp プログラムダウンロードシステムおよびプログラムダウンロード方法、並びに記録媒体
JP2013162470A (ja) * 2012-02-08 2013-08-19 Fujitsu Telecom Networks Ltd 伝送装置管理システムおよびデータバックアップ方法

Also Published As

Publication number Publication date
US10228954B2 (en) 2019-03-12
US20150271297A1 (en) 2015-09-24
KR101891423B1 (ko) 2018-08-24
WO2015142519A1 (en) 2015-09-24
US9626196B2 (en) 2017-04-18
EP3120498A4 (en) 2017-11-29
EP3120498A1 (en) 2017-01-25
CN105981332B (zh) 2019-12-24
JP6316978B2 (ja) 2018-04-25
JP2017513098A (ja) 2017-05-25
CN105981332A (zh) 2016-09-28
US20170185420A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
KR101891423B1 (ko) 원천 코드들을 이용한 관리 정보의 브로드캐스트
US10871953B2 (en) Application update method and apparatus
US9253265B2 (en) Hot pluggable extensions for access management system
US20170012770A1 (en) Key management for a rack server system
KR20130058058A (ko) 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시
KR20210027400A (ko) 구성 시나리오 준수를 위한 모바일 디바이스에 의한 준수 설정 구현
US20040188511A1 (en) System to automatically process components on a device
US11269655B2 (en) Bare metal device management
KR20130107313A (ko) 운영 시스템(os)이 없는 서비스 환경에서 펌웨어를 프로비저닝하는 방법
US11347856B2 (en) Bios method to block compromised preboot features
US10623178B2 (en) System and method for secure messaging between distributed computing nodes
CN110730090A (zh) 云环境中代理端批量更新方法、装置、介质及电子设备
CN110333916B (zh) 请求消息处理方法、装置、计算机系统及可读存储介质
US8392966B2 (en) Limiting the availability of computational resources to a device to stimulate a user of the device to apply necessary updates
US11068035B2 (en) Dynamic secure ACPI power resource enumeration objects for embedded devices
US20210382726A1 (en) Api dynamic processing in hci environment
CN110365839B (zh) 关机方法、装置、介质及电子设备
CN112913215A (zh) 用于管理与启用iot的设备上的对象相关联的操作的方法和系统
US10003463B2 (en) Systems and methods for revoking and replacing signing keys
CN110058866B (zh) 集群组件安装方法及设备
US20240104041A1 (en) Method for starting computing device, computing device, and program product
CN113132324B (zh) 样本鉴定方法及系统
US20230216862A1 (en) Detection of on-premises systems
CN116627668A (zh) 用户交互面板的控制装置、方法、介质和电子设备
WO2024086665A1 (en) Software application management in heterogeneous managed networks

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