KR101599695B1 - 네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하는 시스템 및 방법 - Google Patents

네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하는 시스템 및 방법 Download PDF

Info

Publication number
KR101599695B1
KR101599695B1 KR1020147014952A KR20147014952A KR101599695B1 KR 101599695 B1 KR101599695 B1 KR 101599695B1 KR 1020147014952 A KR1020147014952 A KR 1020147014952A KR 20147014952 A KR20147014952 A KR 20147014952A KR 101599695 B1 KR101599695 B1 KR 101599695B1
Authority
KR
South Korea
Prior art keywords
computer system
message
wake
nic
computer
Prior art date
Application number
KR1020147014952A
Other languages
English (en)
Other versions
KR20140088896A (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 KR20140088896A publication Critical patent/KR20140088896A/ko
Application granted granted Critical
Publication of KR101599695B1 publication Critical patent/KR101599695B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Power Sources (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은, 네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하기 위한 시스템 및 방법에 관한 것이다. 네트워크를 통해서 제 1 컴퓨터 시스템의 네트워크 인터페이스 컨트롤러(NIC)로부터 서버에 의해 등록 메시지가 수신될 수 있다. 제 1 컴퓨터 시스템은 슬립 모드에 있을 수 있다. 제 1 컴퓨터 시스템은 서버에 의해 등록될 수 있고; 제 1 컴퓨터 시스템에 대한 식별 정보는 메모리에 저장될 수 있다. 웨이크업 메시지는 네트워크를 통해서 제 2 컴퓨터 시스템으로부터 수신될 수 있다. 웨이크업 메시지는 제 1 컴퓨터 시스템을 식별하는 정보 및 인증 정보를 포함할 수 있다. 웨이크업 메시지는 네트워크를 통해서 제 1 컴퓨터 시스템에 전송될 수 있다. 웨이크업 메시지는 제 1 컴퓨터 시스템을 웨이크 업하도록 NIC에 나타낼 수 있다. 인증 정보는, 제 1 컴퓨터 시스템을 웨이크 업하기 전에 NIC 또는 서버 둘 중 하나 또는 둘 다에 의해 인증될 수 있다.

Description

네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하는 시스템 및 방법{SYSTEM AND METHOD FOR SECURELY WAKING A COMPUTER SYSTEM OVER A NETWORK}
본 발명은, 일반적으로 컴퓨터 시스템들에 관한 것이고, 더욱 구체적으로는 네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하기 위한 시스템 및 방법에 관한 것이다.
컴퓨터 시스템들은 오늘날의 사회에서 아주 흔하다. 컴퓨터 시스템들의 공통적인 특징은, 전력을 아끼기 위해 "슬립"(또는 "대기" 또는 "저전력") 상태로 진입하는 능력이다. 통상적으로, 이러한 상태에서 컴퓨터 시스템을 "웨이킹(waking)"하는 것은, 컴퓨터 시스템에 아주 가까이 있으면 간단하며: 전원 버튼, "웨이크-업" 버튼을 누르는 것 또는 다른 로컬 입력 디바이스(예컨대, 키보드 또는 마우스)를 트리거하는 것이 컴퓨터 시스템을 로컬로 웨이킹하기 위한 통상적인 수단들이다.
그러나, 컴퓨터 시스템들의 증가하는 이동성 및 결합 관계(connectedness)를 통해, 컴퓨터 시스템으로의 원격 액세스는 또한 바람직한 성능이 되었다. 예를 들어, 네트워크 인터페이스 컨트롤러들을 통한 네트워크 접속들은, 컴퓨터 시스템들이 로컬 및/또는 광역 네트워크들을 통해서 통신하게 할 수 있다. 그러나, 컴퓨터가 슬리핑 상태에 있으면, 컴퓨터 시스템은 이러한 네트워크를 통해 다른 컴퓨터 시스템들에 접근하기 어려울 수도 있다.
네트워크를 통해서 컴퓨터 시스템을 웨이킹하기 위한 해결책들이 제안되어 있지만, 이러한 해결책들은 일반적으로 상당한 연관 문제들을 갖는다. 예를 들어, 슬리핑 컴퓨터 디바이스가 네트워크 주소 변환(NAT; network address translation)을 겪으면(예컨대, 컴퓨터 디바이스가 라우터 뒤에 있으면), 이는 웨이크 커맨드(wake command)의 송신과 간섭할 수 있다. 몇몇 경우들에서, 이러한 슬리핑 디바이스는, 적절한 비무장 구역(DMZ; de-militarized zone)/포트 포워딩 및 정적 주소 해결 프로토콜(ARP; address resolution protocol)이 NAT 라우터에서 설정되지 않는 한, 웨이크 커맨드를 수신하지 못할 수도 있다. 이는, 복잡하며, (예컨대, 보안상의 이유들로) 바람직하지 않을 수도 있거나, 또는, 사업 상황들에서, 회사 정책에 의해 허용되지 않을 수도 있다.
추가적으로, 기존의 해결책들은 어떠한 보안도 제공하지 않는다. 기존의 기법들을 이용하여, IP 어드레스 또는 MAC 어드레스가 알려져 있으면, 누구나 슬리핑 컴퓨팅 디바이스를 웨이크업할 수 있다. 결과적으로, 슬리핑 컴퓨터는, 웨이크 커맨드와 우연히 일치하는 패킷을 수신하는 것에 대한 결과로서 뜻밖에 웨이킹될 수 있거나, 또는, 예를 들어, 해커에 의한 악의적인 목적들로 의도적으로 웨이킹될 수 있다.
이에 따라, 이 분야에서의 개선들이 바람직할 것이다.
본 개시물의 실시예들은, 네트워크를 통해서 슬리핑 컴퓨터 시스템을 안전하게 웨이킹하기 위한 보안 시스템 및 방법을 제공하기 위해 제시된다. 본 개시물의 몇몇 실시예들은, 네트워크(예컨대, 인터넷과 같은 광역 네트워크)를 통해서 서버가 컴퓨터 시스템의 보안 웨이크업을 용이하게 하기 위한 방법, 그 방법을 구현하도록 구성된 서버, 및 그 방법을 구현하기 위해 컴퓨터 시스템(예컨대, 서버)에 의해 실행가능한 메모리 매체 상에 구성된 프로그램 명령들에 관한 것이다. 본 개시물의 실시예들은, 네트워크를 통해서 네트워크 인터넷 컨트롤러(NIC; network interface controller)가 컴퓨터 시스템의 보안 웨이크업할 수 있게 하기 위한 방법, 및 그 방법을 구현하도록 구성되고 컴퓨터 시스템에서의 이용을 위해 구성된 NIC에 관한 것이다.
본원에 개시된 시스템들 및 방법들의 하나의 이점은, 컴퓨터 시스템이 네트워크 주소 변환(NAT; network address translation)되는 경우, 컴퓨터 시스템을 웨이크 업하는 능력이다. 예를 들어, 로컬 영역 네트워크를 제공하고 그리고 그 로컬 영역 네트워크의 광역 네트워크로의 접속을 제공하도록 통상적으로 이용되는 수많은 라우터들은, 로컬 영역 네트워크의 컴퓨팅 디바이스들에 NAT를 제공한다. 이러한 컴퓨팅 디바이스들은, 적절한 비-무장 구역(DMZ)/포트 포워딩 및 정적 주소 해결 프로토콜(ARP)이 NAT를 제공하는 라우터에서 설정되지 않는 한, 웨이크 커맨드들을 수신하는데 어려움을 겪을 수 있다. 이는, 복잡한 프로세스이며, 몇몇 상황들(예컨대, 사업 설정들)에서는 회사 IT 정책에 의해 허용되지 않을 수도 있다.
몇몇 실시예들에 따르면, 본원에 개시된 시스템들 및 방법들은 슬리핑 클라이언트가 웨이크업 촉진 서버(wakeup facilitating server)에 등록을 개시하는 단계를 유리하게 포함할 수 있다. 서버와의 콘택을 개시하고, 그리고 그 콘택을 주기적으로 갱신함으로써, 예를 들어, 새로운 등록 메시지들을 주기적으로 전송함으로써, 슬리핑 컴퓨터 시스템과 서버 사이에 라이브 접속(live connection)이 유지될 수 있다. 이는, 서버가, NAT를 내비게이팅할 필요 없이 슬리핑 컴퓨터 시스템에 웨이크업 메시지들을 전송하도록 허용할 수 있다.
본원에 개시된 시스템들 및 방법들의 다른 이점은, 보안의 제공이다. 보안이 없으면, 누구나 기본적인 정보(예컨대, IP 어드레스)가 부여된 슬리핑 컴퓨터 시스템을 웨이크 업하는 것은 가능할 수 있다. 이는, 예를 들어, 해커에 의해 악의적으로 발생할 수 있거나, 또는 슬리핑 클라이언트에 전송된 패킷들이 특정된 웨이크 업 패턴들(예컨대, WOL(Wake Over Lan) 패턴들)에 우연히 일치하기 때문에 발생할 수 있다.
몇몇 실시예들에 따르면, 본원에 개시된 시스템들 및 방법들은 웨이크업 서버와 슬리핑 컴퓨터 시스템 자체 중 하나 또는 둘 다에 의해 웨이크업 메시지들을 인증하는 단계를 유리하게 포함할 수 있다. 추가적으로, 몇몇 실시예들에서, 시스템들 및 방법들에 제공된 웨이크업 메시지들 및 다른 메시지들 모두는 추가적인 계층의 보안을 위해 암호화될 수 있다.
네트워크를 통해서 컴퓨터 시스템의 보안 웨이크업을 용이하게 하기 위해 컴퓨터 시스템에 사용하기 위해 구성된 NIC 및 서버에 대한 방법들의 실시예들이 후술하는 바와 같이 수행될 수 있다.
등록 메시지는 네트워크를 통해서 제 1 컴퓨터 시스템으로부터 수신될 수 있다. 제 1 컴퓨터 시스템은, 네트워크 인터페이스 컨트롤러(NIC)를 포함할 수 있고, 이 컨트롤러로부터, 제 1 컴퓨터 시스템이 슬립 모드에 있는 동안 등록 메시지가 수신될 수 있다. 등록 메시지는 제 1 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보를 포함할 수 있다. 제 1 컴퓨터 시스템이 등록될 수 있고, 이는, 제 1 컴퓨터 시스템에 대한 (사용자가-선택한 인간이-판독가능한 식별 정보를 포함할 수 있는) 식별 정보를 메모리에 저장하는 것을 포함할 수 있다. 몇몇 실시예들에서, 또한, 등록 메시지는 또한 메모리에 저장될 수 있는 암호화 알고리즘 및 임시어(nonce)를 포함할 수 있다.
몇몇 실시예들에서, 질의 요청은, 네트워크를 통해서 제 2 컴퓨터 시스템으로부터 수신될 수 있다. 질의 요청은, 제 1 컴퓨터 시스템에 대한 식별 정보를 포함할 수 있다.
질의 요청이 제 2 컴퓨터 시스템으로부터 수신되는 이러한 실시예들에서, 질의 응답은 네트워크를 통해서 제 2 컴퓨터 시스템에 전송될 수 있다. 질의 응답은, 실시예에 따라, 제 1 컴퓨터 시스템에 대한 식별 정보, 임시어, 암호화 알고리즘, 및/또는 다른 정보를 포함할 수 있다.
웨이크업 메시지는 네트워크를 통해서 제 2 컴퓨터 시스템으로부터 수신될 수 있다. 웨이크업 메시지는 제 1 컴퓨터 시스템을 식별하는 정보를 포함할 수 있다. 몇몇 실시예들에서, 제 1 컴퓨터 시스템을 식별하는 정보는, 제 1 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보, 및/또는 제 1 컴퓨터 시스템의 등록 동안 메모리에 저장되었던 다른 식별 정보를 포함할 수 있다. 웨이크업 메시지는 또한 인증 정보를 포함할 수 있다. 몇몇 실시예들에서, 인증 정보는, 암호화 알고리즘에 따라 암호화될 수 있는 임시어를 포함할 수 있다. 몇몇 실시예들에서, 추가적으로 또는 대안적으로, 패스워드 또는 다른 사전-공유된 키(예컨대, 제 1 컴퓨터 시스템 및 제 2 컴퓨터 시스템에 알려져 있음)가 임시어를 암호화하는 것의 일부로서 및/또는 인증 정보의 다른 유형으로서 이용될 수 있다.
웨이크업 메시지는 제 1 컴퓨터 시스템에 전송될 수 있다. 몇몇 실시예들에서, 웨이크업 메시지는, 그 웨이크업 메시지에 포함된 인증 정보에 기초하여 서버에 의해 인증될 수 있다. 이러한 실시예들에서, 웨이크업 메시지를 제 1 컴퓨터 시스템으로 전송하는 것은, 웨이크업 메시지의 인증 정보를 성공적으로 인증하는 것에 기초할 수 있다. 대안적으로, 서버는 웨이크업 메시지를 제 1 컴퓨터 시스템으로 단순히 전송할 수 있고, 제 1 컴퓨터 시스템의 NIC가 웨이크업 메시지를 인증하도록 허용할 수 있다.
NIC는 웨이크업 메시지를 수신할 수 있다. 웨이크업 메시지는 인증 정보에 기초하여 NIC에 의해 인증될 수 있다. 몇몇 실시예들에서, NIC는, 예를 들어, 추가의 보안을 위해, 서버가 또한 웨이크업 메시지에 대해 인증을 수행할지 여부에 상관없이 웨이크업 메시지를 인증하도록 구성될 수 있음을 주목해야 한다. 웨이크업 메시지가 성공적으로 인증되면, NIC는 제 1 컴퓨터 시스템을 웨이크업할 수 있다.
몇몇 실시예들에서, NIC가 등록 메시지를 서버에 전송하고 그리고 서버가 NIC로부터 등록 메시지를 수신하는 것에 기초하여, 등록 메시지가 수신된 이후에 미리결정된 시간의 기간 동안 NIC와 서버 사이에 접속이 유지될 수 있다. 앞서 언급된 바와 같이, 몇몇 실시예들에서, 이렇게 액티브로 유지되는 접속은, 서버와 제 1 컴퓨터 시스템 사이의 임의의 NAT와 상관없이 서버가 NIC에 웨이크업 메시지들을 전송하도록 유리하게 허용할 수 있다. 따라서, 몇몇 실시예들에 따르면, 제 1 컴퓨터 시스템을 등록하는 것, 질의 요청을 수신하는 것 및 질의 응답을 전송하는 것, 그리고 웨이크업 메시지를 수신하고 전송하는 것은, NIC와의 접속이 유지되는 동안 수행될 수 있다. 즉, 컴퓨터 시스템으로부터 서버에 의해 수신된 웨이크업 메시지는, 제 1 컴퓨터 시스템과의 접속이 여전히 액티브이면 제 1 컴퓨터 시스템으로 오직 포워딩될 수 있다.
접속이 유지되는 동안의 미리결정된 시간의 기간은, 그 미리결정된 시간의 기간의 종료 이전에 서버와 NIC 사이에서 어떠한 추가적인 메시지들도 교환되지 않으면 만료할 수 있다. 이에 따라, 몇몇 실시예들에서, (예컨대, 연속적인 접속을 유지하기 위해, NIC와의 접속의 만료 이전에) 새로운 등록 메시지가 NIC로부터 주기적으로 수신될 수 있다. 각각 새로운 등록 메시지를 수신하는 것에 기초하여, NIC와 서버 사이의 접속이 연장될 수 있다. 예를 들어, 실시예에 따라서, 새로운 미리-결정된 시간의 기간이 확립될 수 있고, 또는 추가적인 미리결정된 시간의 기간이 남아있는 미리결정된 시간의 기간에 부가될 수 있다.
실시예들의 후술하는 상세한 설명이 이하의 도면들과 관련하여 판독되는 경우, 본 발명의 더 나은 이해가 획득될 수 있다.
도 1은, 일 실시예에 따라서, 몇몇 네트워킹된 컴퓨터 시스템들을 포함하는 예시적인 시스템을 예시한다.
도 2는, 일 실시예에 따라서 컴퓨터 시스템의 가능한 컴포넌트들을 예시하는 블록도이다.
도 3은, 네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하기 위한 방법의 실시예들을 예시하는 흐름도이다.
도 4는, 일 실시예에 따라서 디바이스들 사이의 예시적인 메시지 흐름을 포함하고 다양한 네트워킹된 디바이스들을 포함하는 예시적인 시스템을 예시한다.
도 5는, 일 실시예에 따른 통상적인 메시지 포맷을 예시하는 도면이다.
본 발명은 다양한 변형들 및 대안적인 형태들이 가능하지만, 이들의 특정한 실시예들이 도면들에서 예시에 의해 나타나고 본원에 상세하게 설명된다. 그러나, 도면들 및 이에 대한 상세한 설명은 본 발명을 개시된 특정한 형태로 한정하도록 의도하는 것이 아니라, 반대로, 본 발명은, 첨부된 청구항들에 의해 정의된 바와 같이 본 발명의 사상 및 범위 내에 포함되는 모든 변형들, 등가물들 및 대안책들을 커버하기 위함임을 이해해야 한다.
용어들
본 출원에 이용되는 용어들의 해설 목록이 후술된다.
메모리 매체 - 임의의 다양한 유형들의 메모리 디바이스들 또는 저장 디바이스들. 용어들 "메모리" 및 "메모리 매체"는 설치 매체(installation medium), 예를 들어, CD-ROM, 플로피 디스크들, 또는 테이프 디바이스; 컴퓨터 시스템 메모리 또는 랜덤 액세스 메모리, 예를 들어, DRAM, DDR RAM, SRAM, EDO RAM, 램버스 RAM, 등; 또는 비-휘발성 메모리, 예를 들어, 플래시 메모리, 하드웨어 레지스터들, 자기 매체(예컨대, 하드 드라이브), 또는 광학 저장부를 포함하는 것으로 의도된다. 메모리 매체는, 다른 유형들의 메모리뿐만 아니라, 또는 이들의 조합들을 포함할 수 있다. 용어 "메모리 매체"는 2개 또는 그 초과의 메모리 매체들을 포함할 수 있다.
컴퓨터 시스템 - 개인용 컴퓨터 시스템(PC), 메인프레임 컴퓨터 시스템, 워크스테이션, 네트워크 어플라이언스, 인터넷 어플라이언스, 모바일 폰, 스마트 폰, 랩탑, 노트북, 넷북, 또는 태블릿 컴퓨터 시스템, 개인 휴대 정보 단말기(PDA), 멀티미디어 디바이스, 또는 다른 디바이스 또는 디바이스들의 조합들을 포함하는, 임의의 다양한 유형들의 이동형 또는 고정형 컴퓨팅 또는 프로세싱 시스템들. 일반적으로, 용어 "컴퓨터 시스템"은 메모리 매체로부터의 명령들을 실행하는 적어도 하나의 프로세서를 갖는 임의의 디바이스(또는 디바이스들의 조합)를 포함하는 것으로 광범위하게 정의될 수 있다.
인터넷의 확대 영향 그리고 고정형 및 이동형 컴퓨팅 디바이스들 둘 다의 수에 있어서의 폭증으로, 하나의 컴퓨터 시스템으로부터 다른 컴퓨터 시스템에 원격으로 액세스하는 것은 아주 흔한 일(commonplace activity)이 되었다. 그러나, 통상적으로 컴퓨터 시스템에 원격으로 액세스하기 위해, 컴퓨터 시스템은 전원 on되어야만 한다. 이에 따라, 이동하고 있는 (또는 심지어 그들의 사무실에 있는) 사용자가 그들의 랩탑 컴퓨터로부터 집에 있는 자신의 개인용 컴퓨터에 액세스하기 원하면, 그 개인용 컴퓨터는 사용자가 멀리 가 있는 전체 시간 동안 on상태로 남겨져 있어야만 하는 것으로 보인다. 그러나, 이렇게 긴 시간 동안 개인용 컴퓨터를 on상태로 두는 것은, 에너지를 낭비할 수 있고 개인용 컴퓨터에 대한 노후화를 촉진시킬 수 있다. 다양한 다른 이러한 문제 상황들이 쉽게 상상될 수 있다.
거의 모든 각각의 컴퓨터 시스템은 전력을 아끼기 위해 "슬립"(또는 "대기" 또는 "저전력") 상태로 진입하는 성능을 포함한다. 이러한 상태에서 컴퓨터 시스템을 "웨이킹하는 것"(즉, 컴퓨터 시스템을 완전하게-on 상태로 복귀시키는 것)은, 사용자가 컴퓨터 시스템에 아주 가까이 있으면 간단할 수 있으며: 전원 버튼, "웨이크-업" 버튼을 누르는 것, 또는 다른 로컬 입력 디바이스(예컨대, 키보드 또는 마우스)를 트리거링하는 것이 컴퓨터 시스템을 로컬로 웨이킹하기 위한 통상적인 수단들이다.
그러나, 사용자가 원격으로 컴퓨터에 액세스하기 원할(그러나, 가능한 한 드물게) 수 있다는 점점 더 일반적이되는 가능성을 고려해 볼 때, 슬리핑 컴퓨터 시스템을 원격으로 웨이킹하는 것도 또한 가능하게 되어야만 한다. 이는, 사용자가 컴퓨터 시스템을 슬립 상태에 놓도록 허용할 수 있어, 이에 의해, 예를 들어, 인터넷을 통해서 원격으로 컴퓨터 시스템에 나중에 액세스하기 위한 능력을 여전히 유지하면서 컴퓨터 시스템에 대한 노후화 및 전력을 절약할 수 있다.
그렇지만, 동일한 앞서 언급된 인터넷의 확대 영향으로 인해, 보안 없이 네트워크(예컨대, 인터넷과 같은 광역 네트워크)를 통해서 컴퓨터 시스템을 웨이킹하기 위한 수단을 제공하는 것은 컴퓨터 시스템을 공격당하도록 또는 우연히 웨이킹하도록 개방하여 둘 수 있다는 점에 주목해야 한다. 그러면, 보안은 슬리핑 컴퓨터 시스템을 원격으로 웨이킹하기 위한 시스템 및 방법을 설계하는데 있어서 주요 관심사항(primary consideration)이어야만 한다.
도 1
이에 따라, 본 개시물의 실시예들은 네트워크를 통해서 슬리핑 컴퓨터 시스템을 안전하게 웨이킹하는 것에 관한 것이다. 도 1은 다양한 네트워킹된 디바이스들을 포함하는 예시적인 시스템(100)을 예시하며, 이 다양한 네트워킹된 디바이스들 중 일부 또는 전부는 본 개시물의 실시예들을 구현하는데 이용될 수 있다.
시스템(100)은, 네트워크(102)에 커플링된 다양한 디바이스들 사이의 통신가능한(communicative) 커플링을 제공하는 네트워크(102)를 포함할 수 있다. 네트워크(102)는, 몇몇 실시예들에서, 인터넷과 같은 광역 네트워크일 수 있다. 네트워크(102)는, 이에 따라, 하나 또는 그 초과의 로컬 영역 네트워크들과 같은 복수의 다른 네트워크들을 포함할 수 있고 그리고/또는 이들에 통신가능하게 커플링될 수 있다. 당업자들에 의해 인식되는 바와 같이, 네트워크(102)(임의의 "서브네트워크들"을 포함함)는, 임의의 다양한 표준들 및 버전들(예컨대, 이더넷, 전력선 통신 시스템들, 광 섬유 네트워크들, IEEE 102.11(WiFi), IEEE 102.16(WiMAX) 등)에 따라서, 임의의 다양한 통신가능 매체를 포함하는 유선 및/또는 무선 네트워크들을 포함할 수 있다.
다양한 컴퓨터 시스템들은, 컴퓨터 시스템들(104, 106 및 108)을 포함하는 네트워크(102)에 커플링될 수 있다. 컴퓨터 시스템들(104, 106, 및 108)은, 예를 들어, 임의의 다양한 표준들 및 버전들에 따라서 유선 및/또는 무선 네트워크들을 또한 포함할 수 있는, 네트워크(102)와 같은, 하나 또는 그 초과의 중간 네트워크들을 통해 직접적으로 또는 간접적으로 네트워크(102)에 커플링될 수 있다. 몇몇 실시예들에서, 다른 컴퓨터 시스템들 및/또는 디바이스들도 또한 네트워크(102)에 커플링될 수 있다.
하나의 세트의 실시예들에 따르면, 컴퓨터 시스템(104)은 서버 컴퓨터 시스템(108)을 통해 말단-사용자 컴퓨터 시스템(106)에 의해 네트워크(102)를 통해서 안전하게 웨이킹업되도록 구성된 슬리핑 클라이언트 컴퓨터 시스템일 수 있다. 예를 들어, 컴퓨터 시스템들(104, 106, 및 108)은 도 3과 관련하여 이하 설명된 방법의 양상들을 구현하도록 구성될 수 있다.
당업자들에 의해 이해되는 바와 같이, 컴퓨터 시스템들(104, 106, 및 108) 각각은, 다양한 방식들로 구현될 수 있다. 도 2는 하나의 세트의 실시예들에 따라 컴퓨터 시스템들(104, 106, 및 108) 중 하나 또는 그 초과를 구현하는데 이용될 수 있는 기본적인 컴포넌트들을 예시한다. 컴퓨터 시스템(104, 106, 및 108)에 대한 다른 시스템 구성들도 또한 가능하다.
도 2
도 2는 컴퓨터 시스템(200)의 다양한 컴포넌트들을 예시하는 간략화된 블록도이다. 다양한 실시예들에 따르면, 컴퓨터 시스템(200)은 도 1에 나타낸 컴퓨터 시스템들(104, 106, 및/또는 108) 중 하나 또는 그 초과를 구현하는데 이용될 수 있고; 이에 따라, 컴퓨터 시스템(200)의 하나 또는 그 초과의 엘리먼트들은 도 3과 관련하여 이하 설명된 방법의 하나 또는 그 초과의 양상들을 구현하도록 구성될 수 있다.
컴퓨터 시스템(200)은, 메모리 매체(204)에 커플링될 수 있는 프로세서(202)를 포함할 수 있다. 컴퓨터 시스템(200)은 프로세서(202)에 커플링된 네트워크 인터페이스 컨트롤러(NIC)(206)를 더 포함할 수 있다. NIC(206)는 컴퓨터 시스템(200)이 네트워크를 통해서 통신하는 것을 가능하게 할 수 있다. 예를 들어, 나타낸 바와 같이, NIC(206)는, 포트(210), 및 독립적으로 및/또는 프로세서(202)와 함께 포트(210)를 제어하도록 구성된 로직(208)을 포함할 수 있다. 포트(210)는 유선(예컨대, 이더넷, 전력선, 전화 선로, 동축 케이블, 또는 다른 유선 접속) 또는 무선(예컨대, IEEE 102.11(WiFi), IEEE 102.16(WiMAX), 블루투스, 또는 다른 무선 접속)일 수 있다. 몇몇 실시예들에서, NIC는, 다수의 포트들을 포함할 수 있고 그리고/또는 다수의 통신가능한 매체(예컨대, 복수의 유선 및/또는 무선 접속들)를 통해 네트워크 통신들을 지원할 수 있다.
제어 로직(208)은, 임의의 다양한 유형들의 로직, 예를 들어, 아날로그 로직, 디지털 로직, 프로세서(예컨대, CPU, DSP, 마이크로컨트롤러 등), ASIC(주문형 집적 회로), FPGA(필드 프로그래머블 게이트 어레이), 또는 전술한 것들의 임의의 조합을 이용하여 구현될 수 있다. 일 실시예에서, 제어 로직(208)은, 전체적으로 또는 부분적으로, 하드웨어-기반 상태 머신으로서 구현될 수 있다. 예를 들어, 컴퓨터 시스템(200)이 도 1의 슬리핑 클라이언트 컴퓨터 시스템(104)을 구현하는데 이용되는 실시예에서, NIC(206)는 서버 컴퓨터 시스템(108)에 등록 메시지들을 전송하고 서버 컴퓨터 시스템(108)으로부터 웨이크업 메시지들을 수신하기 위해, 그리고 이러한 웨이크업 메시지들을 인증하고 슬리핑 클라이언트 컴퓨터 시스템(104)을 웨이크업하기 위해 구성된 유한 상태 머신을 포함할 수 있다.
몇몇 실시예들에서, 프로세서(202)는 범용 프로세서일 수 있다. 예를 들어, 프로세서(202)는 메모리 매체(204)에 저장된 임의의 다양한 프로그램 명령들(예컨대, 소프트웨어)을 실행하도록 구성될 수 있다. 대안적으로, 또는 이에 더해, 컴퓨터 시스템(200)은 하나 또는 그 초과의 전용(예컨대, 특수 목적) 프로세싱 유닛들, 예를 들어, 마이크로컨트롤러들, 디지털 신호 프로세서들, 및/또는 다른 내장형 시스템들을 포함할 수 있다. 예를 들어, 컴퓨터 시스템(200)이 도 1의 서버 컴퓨터 시스템(208)을 구현하는데 이용되는 하나의 세트의 실시예들에서, 메모리 매체(204)는, 예를 들어, 도 3과 관련하여 이하 설명된 방법의 실시예들에 따라서 네트워크(102)를 통해서 슬리핑 클라이언트 컴퓨터 시스템(104)의 안전한 웨이크-업을 용이하게 하기 위한 프로그램 명령들을 포함할 수 있다. 또한, 프로세서(202)는 원하는 대로 (예컨대, 컴퓨터 시스템(200)의 컴퓨팅 성능을 증가시키기 위해) 단일 프로세서 또는 복수의 프로세서들을 포함할 수 있음을 주목해야 한다.
컴퓨터 시스템(200)은, 임의의 다양한 유형들의 디바이스일 수 있고, 다양한 실시예들에 따라서 임의의 다양한 기능들을 구현할 수 있다. 예를 들어, 컴퓨터 시스템(200)은, 모바일 폰 또는 스마트 폰, 태블릿, 넷북, 랩탑, 데스크탑, 서버, 또는 다른 컴퓨터 시스템, 휴대용 미디어 플레이어, 개인 휴대 정보 단말기, 또는 유선 또는 무선 방식으로 네트워크를 통해서 통신하는데 이용될 수 있는 일반적으로 임의의 다른 유형들의 컴퓨팅 디바이스일 수 있다.
앞서 간략하게 언급된 바와 같이, 컴퓨터 시스템(200)은 다양한 실시예들에 따라서 다양한 방식들로 구현될 수 있다. 따라서, 예를 들어, 예시적인 컴퓨터 시스템(200)은 도 1에 나타낸 임의의 컴퓨터 시스템들(104, 106, 및 108)을 나타내는 것으로서 앞서 설명되고; 당업자들은, 이것이, 컴퓨터 시스템들(104, 106, 및 108) 각각이 필수적으로 동일한 것을 의미하는 것으로 이해해서는 안된다는 것을 인식해야 할 것이다. 컴퓨터 시스템들(104, 106, 및 108)이 상이한 컴포넌트들 및 상이한 구성들을 포함하는 것은, 가능하고, 실제로, 통상적일 수 있다. 예를 들어, 클라이언트 컴퓨터 시스템들/말단 사용자 디바이스들은 통상적으로 성능 및 기능면에 있어서 서버 컴퓨터 시스템들과는 상당한 차이들을 가질 수 있다.
게다가, 본 개시물을 고려하여 당업자들에 의해 이해되는 바와 같이, 구현에 따라, 컴퓨터 시스템(200)은 또한, 예를 들어, 다른 기능을 구현하기 위한 임의의 다양한 다른 컴포넌트들(예컨대, 디스플레이, 사용자 입력 디바이스(들), 스피커(들), 추가적인 입력/출력 성능 등)을 원하는 대로 포함할 수 있다. 이러한 컴포넌트들은 본 개시물의 세부사항들을 모호하게 하는 것을 회피하기 위해 나타내지 않는다.
도 3
도 3은 네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하기 위한 방법의 실시예들을 예시하는 흐름도이다. 이 방법의 실시예들은 서버 컴퓨터 시스템, 슬리핑 클라이언트 컴퓨터 시스템(본원에서는 제 1 컴퓨터 시스템으로 지칭됨), 및/또는 말단 사용자 컴퓨터 시스템(본원에서는 제 2 컴퓨터 시스템으로 지칭됨)에 의해 구현될 수 있다. 예를 들어, 도 3의 방법의 양상들은 통상적으로 본 개시물의 도 1 및 도 2의 디바이스들에 의해 구현될 수 있다.
따라서, 제 1 컴퓨터 시스템은, 제 1 컴퓨터 시스템이 슬립 모드에 있는 동안 모두, 서버에 등록하고 그 서버를 통해서 웨이크업 메시지들을 수신하고, 이러한 웨이크업 메시지들을 인증하고, 그리고 제 1 컴퓨터 시스템을 웨이킹하도록 구성된 로직 및 포트를 포함하는 네트워크 인터페이스 컨트롤러(NIC)를 포함할 수 있다.
추가적으로, 서버 컴퓨터 시스템은 네트워크를 통해서 제 2 컴퓨터 시스템에 의해 제 1 컴퓨터 시스템의 웨이킹을 용이하게 하기 위해 프로세서에 의해 실행가능한 프로그램 명령들을 포함하는 메모리 매체 및 프로세서를 포함할 수 있다.
도 3을 참조하여 이하 설명된 단계들이 특정 순서로 나타나지만, 다양한 실시예들에 따라서, 단계들의 하나 또는 그 초과는 생략될 수 있거나, 반복될 수 있거나, 또는 나타난 것과는 상이한 순서로 수행될 수 있다는 점에 주목해야 한다. 하나 또는 그 초과의 추가적인 단계들은 또한 또는 대안적으로 원하는 대로 부가될 수 있다. 이 방법은 후술하는 바와 같이 수행될 수 있다.
단계(302)에서, 등록 메시지는 서버에 의해 수신될 수 있다. 등록 메시지는 네트워크를 통해서 제 1 컴퓨터 시스템의 NIC에 의해 전송될 수 있다. 네트워크는, 인터넷과 같은 광역 네트워크일 수 있다. 등록 메시지는, 제 1 컴퓨터 시스템이 슬리핑하는 동안 NIC에 의해 전송될 수 있다. 예를 들어, NIC는, 컴퓨터 시스템이 그와는 달리 슬립 모드에 있는 동안에도, 등록 메시지를 전송하고, 웨이크업 메시지를 수신하여 인증하고 컴퓨터 시스템을 웨이킹하기 위한 성능을 유지하는 것과 관련된 다른 기능들을 수행하는데 필요한 한정된 기능을 보존하기 위해 소량의 전력을 계속 이끌어낼 수 있다. 실시예에 따라, 단순한 하드웨어 로직 시스템, 예를 들어, 상태 머신으로서 보안 웨이크업 성능을 유지하는데 책임이 있는 로직을 NIC에서 구현함으로써 용이하게 될 수 있는데, 이는, 이러한 시스템이 다른 시스템들보다 더 낮은 전력 요건을 가질 수 있기 때문이다. 그러나, "웨이크업" 로직이 메모리 매체에 저장된 프로그램 명령들을 실행하는 프로세서(예컨대, 내장형 프로세서)로서 구현되는 실시예들을 포함하는 다양한 다른 실시예들도 또한 가능하다.
등록 메시지는 제 1 컴퓨터 시스템을 식별하는 정보를 포함할 수 있다. 예를 들어, 몇몇 실시예들에서, 등록 메시지는 제 1 컴퓨터의 호스트네임(hostname), 및/또는 넷바이오스(netbios) 공유 폴더들을 포함할 수 있다. 몇몇 실시예들에서, 제 1 컴퓨터의 IP 어드레스는 등록 메시지에 (예컨대, 함축적으로 또는 명시적으로) 포함될 수 있다. 몇몇 실시예들에 따르면, IPv4 및 IPv6 중 하나 또는 둘 모두가 지원될 수 있다. 추가로(또는 대안적으로), 등록 메시지는 제 1 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보를 포함할 수 있다. 예를 들어, 제 1 컴퓨터 시스템은, 사용자에 의해 선택된 식별 명칭 및/또는 번호, 예를 들어, "home123" 또는 "bobsworkstation"를 갖도록 (예컨대, 슬립 모드로 진입하기 전에) 사용자에 의해 구성될 수 있다.
몇몇 실시예들에서, 등록 메시지는 또한 인증 목적들을 위해 이용될 수 있는 정보를 포함할 수 있다. 예를 들어, 일 실시예에서, 등록 메시지는 임시어(예컨대, 랜덤 또는 의사랜덤수, 예를 들어, 랜덤 옥텟) 및 임시어(및/또는 다른 정보)를 암호화하는데 이용될 수 있는 암호화 방법을 포함할 수 있다. 대안적으로, 또는 이에 더해, 패스워드 또는 다른 인증 정보(예컨대, 구현에 따름)는 등록 메시지에 포함될 수 있다. 몇몇 실시예들에서, 인증 정보(예컨대, 임시어 및/또는 암호화 방법)는 제 1 컴퓨터 시스템에 의해 생성될 수 있고 그리고/또는 사용자에 의해 선택될 수 있다.
단계(304)에서, 제 1 컴퓨터는 서버에 의해 등록될 수 있다. 제 1 컴퓨터 시스템을 등록하는 단계는, 제 1 컴퓨터 시스템으로부터의 등록 메시지에 포함된 정보 중 일부 또는 전부를 메모리에 저장하는 단계를 포함할 수 있다. 예를 들어, 호스트네임, 넷바이오스 공유 폴더들, IP 어드레스, 사용자가-선택한 인간이-판독가능한 ID, 및/또는 제 1 컴퓨터 시스템에 대한 인증 정보 중 임의의 것 또는 전부가 메모리에 저장될 수 있다.
몇몇 실시예들에서, 제 1 컴퓨터 시스템의 NIC와 서버는, 제 1 컴퓨터 시스템이 등록 메시지를 서버에 전송한 후 미리결정된 시간의 기간 동안 액티브 접속을 유지할 수 있다. 예를 들어, 서버는 등록 메시지를 수신하면 미리결정된 길이의 타임아웃 타이머를 개시할 수 있다. (5, 15, 30, 또는 60초, 또는 원하는 대로 임의의 다른 시간의 길이일 수 있는) 미리결정된 시간의 기간 이후에, 접속은 만료할 수 있다. 접속이 타임아웃하면, 서버는 NIC에 메시지들(예컨대, 웨이크업 메시지)을 전송하지 못할 수도 있다. 대안적으로, 서버는 메시지들을 NIC에 전송할 수 있지만, 등록 정보의 일부 또는 전부(예컨대, 임시어 및/또는 암호화 알고리즘)는 더 이상 유효하지 않을 수 있다.
이에 따라, 제 1 컴퓨터 시스템이 슬립 모드에 남아있는 한, 서버와의 액티브 접속을 유지하고 이에 의해 네트워크를 통해서 웨이크업 메시지를 수신하기 위한 성능을 유지하기 위해, 제 1 컴퓨터 시스템이 서버에 새로운 등록 메시지를 주기적으로 전송하는 것이 바람직할 수 있다. 따라서, 몇몇 실시예들에서, 서버는 NIC로부터 새로운 등록 메시지를 주기적으로 수신할 수 있다. 각각의 새로운 등록 메시지는, 오리지널 등록 메시지에 포함되어 있던 것들과 유사한 유형들의 정보를 포함할 수 있다. 몇몇 실시예들에서, 각각의 새로운 등록 메시지는 이전의 등록 메시지들과 동일할 수 있다. 대안적으로, 일부 또는 전부의 새로운 등록 메시지들에서의 몇몇 정보가 업데이트될 수 있거나 또는 변경될 수 있으며; 예를 들어, 몇몇 실시예들에서, 임시어가 보안상의 이유로 주기적으로 업데이트될 수 있다. 새로운 등록 메시지(들)는, 각각의 새로운 등록 메시지가 NIC와의 접속의 만료 이전에 서버에 의해 수신되도록, 주기성을 가지고 전송될 수 있다. 각각의 새로운 등록 메시지를 수신하는 결과로서, 제 1 컴퓨터 시스템의 NIC와 서버 사이의 접속이 제 1 컴퓨터 시스템이 슬립 모드에 있는 한 연속적으로 액티브로 유지될 수 있도록, 서버는 추가적인 미리결정된 시간의 기간 동안 NIC와의 접속을 연장할 수 있거나 또는 단순히 타임-아웃 타이머를 갱신할 수 있다.
단계(306)에서, 질의 요청은 서버에 의해 수신될 수 있다. 질의 요청은 제 2 컴퓨터 시스템에 의해 전송될 수 있다. 몇몇 실시예들에서, 제 1 단계가 네트워크를 통해서 제 1 컴퓨터 시스템을 웨이킹하는 것을 향함에 따라서, 질의 요청은, 제 2 컴퓨터 시스템의 사용자(예컨대, 제 1 컴퓨터 시스템 및 제 2 컴퓨터 시스템 둘 다의 사용자)에 의해 개시될 수 있다. 질의 요청은 제 1 컴퓨터 시스템에 대한 식별 정보를 포함할 수 있다. 예를 들어, 질의 요청은 제 1 컴퓨터의 호스트네임, IP 어드레스, 및/또는 사용자가-선택한 인간이-판독가능한 ID를 포함할 수 있다. 일 실시예에서, 질의 요청은 제 1 컴퓨터의 사용자가-선택한 인간이-판독가능한 ID만을 포함할 수 있다. 이는, 사용자가, 이들(또는 다른 인간 사용자)이 선택했을 수도 있는 (아마도 기억하기 더 쉬운) ID만을 이용하여 질의 요청을 행하도록 허용할 수 있기 때문에, 몇몇 실시예들에서는 바람직할 수 있다.
다른 실시예들에서, 추가적인 정보는 또한 또는 대안적으로 질의 요청에 포함될 수 있다. 예를 들어, 몇몇 실시예들에서, 질의 요청은, 서버가 질의 요청에 응답하기 전에 인증할 수 있는, 인증 정보(예컨대, 구현에 따라, 패스워드, 대칭 또는 비대칭 키 암호화된 정보, 및/또는 다른 인증 정보)를 포함할 수 있다.
단계(308)에서, 질의 응답은 서버에 의해 제 2 컴퓨터 시스템에 전송될 수 있다. 질의 응답은, 웨이크업 메시지를 생성하여 이를 제 1 컴퓨터 시스템에 전송하기 위해 제 2 컴퓨터 시스템에 의해 필요한 정보를 포함할 수 있다. 예를 들어, 질의 응답은 등록 메시지에서 제 1 컴퓨터 시스템으로부터 서버에 의해 수신된 정보의 일부 또는 전부를 포함할 수 있다. 일 예시로서, 등록 메시지가 임시어 및 암호화 알고리즘을 포함하는 앞서 설명된 실시예에서, 질의 응답은 제 1 컴퓨터의 사용자가-선택한 인간이-판독가능한 ID, 임시어, 및 암호화 알고리즘을 포함할 수 있다. 몇몇 실시예들에서, 질의 응답은 또한 또는 대안적으로 제 1 컴퓨터 시스템의 호스트네임 및/또는 넷바이오스 공유 폴더들을 포함할 수 있다. 질의 응답은 제 2 컴퓨터 시스템에 의해 수신될 수 있다.
단계(310)에서, 웨이크업 메시지는 서버에 의해 수신될 수 있다. 웨이크업 메시지가 생성될 수 있고 제 2 컴퓨터 시스팀에 의해 전송될 수 있다. 웨이크업 메시지는 제 1 컴퓨터 시스템에 대한 식별 정보 및 인증 정보를 포함할 수 있다.
몇몇 실시예들에서, 웨이크업 메시지에 포함된 식별 정보는 제 1 컴퓨터의 사용자가-선택한 인간이-판독가능한 ID를 다시 포함할 수 있다. 추가적으로, 또는 대안적으로, 제 1 컴퓨터 시스템에 대한 식별 정보의 하나 또는 그 초과의 다른 형태들이 웨이크업 메시지에 포함될 수 있다. 예를 들어, 몇몇 실시예들에서, 제 1 컴퓨터 시스템의 호스트네임, 넷바이오스 공유 폴더들, 및/또는 IP 어드레스 중 하나 또는 그 초과는 웨이크업 메시지에 포함될 수 있다.
몇몇 실시예들에서, 제 2 컴퓨터 시스템은 웨이크업 메시지에 포함될 인증 정보를 생성하기 위해 질의 응답에서 수신된 정보를 이용할 수 있다. 예를 들어, 질의 응답이 앞서 언급된 임시어 및 암호화 알고리즘을 포함하면, 제 2 컴퓨터 시스템은 임시어를 암호화하기 위해 암호화 알고리즘을 이용할 수 있고, 암호화된 임시어를 웨이크업 메시지에 포함할 수 있다. 대안적으로, 또는 추가적으로, 웨이크업 메시지는 사전-공유 키를 포함할 수 있다. 즉, 웨이크업 메시지는, 제 1 컴퓨터 시스템에 그리고 제 2 컴퓨터 시스템(의 사용자)에 알려진 정보를 포함할 수 있고, 이를 이용하여 제 1 컴퓨터 시스템은 웨이크업 메시지를 인증할 수 있다. 몇몇 실시예들에 이용될 수 있는 예시는 패스워드, 예를 들어, 알파벳 문자들의 사용자-선택 시퀀스이다. 다른 실시예들은 사전-공유 키들의 다른 유형들을 포함할 수 있다.
몇몇 실시예들에서, 단계들(306 및 308)(질의 요청 및 질의 응답)이 생략될 수 있다는 점에 주목해야 한다. 예를 들어, 몇몇 실시예들에서, 제 2 컴퓨터 시스템에서의 사용자는 웨이크업 메시지를 생성하여 제 1 컴퓨터 시스템에 (즉, 서버를 통해) 전송하기 위해 필요한 정보 전부를 이미 가지고 있을 수 있다. 예를 들어, 몇몇 실시예들에 따르면, 제 2 컴퓨터의 사용자는, 제 1 컴퓨터의 사용자가-선택한 인간이-판독가능한 ID 및 사용자-선택 사전-공유된 패스워드를 입력들로서 제공할 수 있고, 이 입력들에 기초하여, 제 2 컴퓨터 시스템은 웨이크업 메시지를 생성하여 서버에 전송할 수 있고, 이에 의해 질의 요청 및 질의 응답 단계들을 바이패싱할 수 있다.
단계(312)에서, 웨이크업 메시지는 서버에 의해 제 1 컴퓨터 시스템에 전송될 수 있다. 몇몇 실시예들에서, 웨이크업 메시지는 제 2 컴퓨터 시스템으로부터 수신되는 것으로서 제 1 컴퓨터 시스템에 서버에 의해 전송될 수 있다. 대안적으로, 서버는 웨이크업 메시지를 제 1 컴퓨터 시스템에 전송하기 전에 웨이크업 메시지를 변형시키거나 또는 인증할 수 있다.
제 1 컴퓨터 시스템은 서버 컴퓨터 시스템으로부터 웨이크업 메시지를 수신할 수 있다. 구체적으로, 웨이크업 메시지는 제 1 컴퓨터 시스템의 NIC에 의해 (예컨대, 그 컴퓨터 시스템이 일반적으로 슬립 모드에 있을 수 있기 때문에) 수신될 수 있다. NIC는 (예컨대, 서버에 더해 또는 서버 대신에) 웨이크업 메시지를 인증할 수 있고, 웨이크업 메시지가 성공적으로 인증되면, NIC는 제 1 컴퓨터 시스템을 웨이크업할 수 있다. 웨이킹 이후에, 제 1 컴퓨터 시스템은 완전히-on 상태에 있을 수 있고, 네트워크를 통해서 (제 2 컴퓨터 시스템과 같은) 다른 컴퓨터 시스템들과 상호작용할 수 있다.
NIC가 웨이크업 메시지를 인증하도록 구성되는 방식은, 실시예에 따라 변화할 수 있다. 예를 들어, 웨이크업 메시지가 암호화 알고리즘에 따라 암호화된 임시어를 포함하면, 웨이크업 메시지를 인증하는 단계는, 웨이크업 메시지에 포함된 암호화된 임시어를 해독하는 단계 및 이것을 오리지널 임시어와 비교하는 단계, 또는 수신된 암호화된 임시어를 (예컨대, 암호화 알고리즘에 기초하여 제 1 컴퓨터에 의해 생성된) 사전-구성된 암호화된 임시어와 비교하는 단계를 포함할 수 있다. 이 비교가 이들이 동일한 것으로 나타내면, 웨이크업 메시지는 인증될 수 있고, NIC는 제 1 컴퓨터 시스템을 웨이크업할 수 있다. 웨이크업 메시지에 포함된 임시어는 제 2 컴퓨터 시스템에 의해 제공된 키에 따라 (예컨대, 암호화 알고리즘을 이용하여) 암호화될 수 있다. 키는, 패스워드, 사전-공유된 x.509 인증서로부터의 키, 또는 몇몇 다른 종류의 사전-공유된 키일 수 있다. 따라서, 몇몇 실시예들에서, 사전-공유된 키는 임시어를 암호화하기 위해 이를 이용함으로써 포함될 수 있다. 즉, 몇몇 실시예들에서, 사전-공유된 키는, 예를 들어, 보안상의 이유로 평문(plain text)으로는 트랜스퍼될 수 없으며; 그러나, 다른 실시예들에서, 원하는 경우 패스워드가 그렇게 트랜스퍼될 수 있다.
인증 시스템들의 특정한 예시들이 (예컨대, 패스워드들, 사전-공유된 키들) 앞서 주어졌지만, 또한 또는 대안적으로, 임의의 다양한 다른 인증 시스템들은 몇몇 실시예들에서 구현될 수 있다는 점에 주목해야 한다. 예를 들어, 임의의 대칭적 또는 비대칭적 암호시스템(cryptosystem)이 구현될 수 있다. 게다가, 인증 서버, 예를 들어, Kerberos, RADIUS, 도메인 인증, 또는 다른 인증 서버가 원하는 경우에 이용될 수 있다.
게다가, 허가되지 않은 사용자들이 제 1 컴퓨터 시스템을 웨이크업하도록 허용할 수 있는 정보로의 액세스를 획득하는 것을 방지하기 위해, 앞서-설명된 메시지들(예컨대, 등록 메시지들, 질의 요청들, 질의 응답들, 웨이크업 메시지들) 중 일부 또는 전부가 (예를 들어, 대칭적, 비대칭적, 또는 다른 암호화 시스템을 이용하여) 암호화되는 실시예들이 또한 고려된다.
방법의 실시예들은 슬리핑 컴퓨터 시스템을 원격으로 웨이킹하기 위한 기존의 방법들을 통한 몇몇 이점들을 포함할 수 있다. 예를 들어, 대부분의 기존의 방법들은 로컬 영역 네트워크를 통해서 슬리핑 컴퓨터를 웨이킹하기 위한 방법들에 관한 것이다. 예시들은, WOL(wake over LAN) 패턴들(여기서, 특정된 오프셋 및 일치하는 패턴은 웨이크 커맨드를 나타냄), 매직 WOL(여기서, 패킷은 슬리핑 컴퓨터 시스템의 16개의 지속적인 MAC 어드레스들을 포함함), 및 링크 변경(여기서, 네트워크 케이블과 같은 미디어가 접속됨)을 포함한다. 이러한 방법들은 NAT를 통해서 수행되도록 의도되지 않는다. NAT를 통해서 이용될 수 있는 것들 조차도, 타겟 컴퓨터 시스템의 보안을 저하시키는 바람직하지 않은 부작용을 가질 수 있는 확장형 구성을 요구할 수 있다. 게다가, 이러한 방법들 중 어느 것도 보안을 포함하지 않는다. 따라서, 어떠한 특수한 구성도 없이 NAT를 통해서 수행될 수 있고 그리고 보안/인증 특징들을 포함하는 도 3의 방법의 실시예들은, 기존의 해결책들에 비해 현저한 개선을 나타낸다.
도 4
도 4는, 도 3과 관련하여 앞서 설명된 방법이 일 실시예에 따라서 구현될 수 있는 예시적인 시스템(400)의 예시이다. 도 4의 시스템(400)은, 본 개시물의 실시예들이 구현될 수 있는 방식 및 시스템의 더욱 특정적인 예시를 제공하기 위해 본원에 나타나고 설명된다. 그러나, 당업자가 이해하는 바와 같이, 도 4의 시스템의 특정한 세부사항들에 대한 수많은 변화들 및 대안들이 가능하며, 도 4 또는 그에 대한 상세한 설명 중 어느 것도 그 전체로서 본 개시물을 한정하는 것으로 고려되지 않아야만 한다.
나타낸 바와 같이, 시스템(400)은, 인터넷과 같은 광역 네트워크(WAN)일 수 있는 네트워크(402)를 포함할 수 있다. 서버 컴퓨터 시스템(404)은 제 1 위치에서 WAN(402)에 커플링될 수 있다. 말단 사용자 컴퓨터 시스템(406)은 제 2 위치에서 WAN(402)에 커플링될 수 있다. 슬리핑 클라이언트 컴퓨터 시스템들(408 및 410)은, 로컬 영역 네트워크(LAN)(412)를 통해 WAN(402)에 커플링될 수 있다. LAN(412)은 방화벽(416)의 LAN(412) 측 상에 NAT(network address translation)를 제공할 수 있는 라우터(414)에 의해 (예컨대, 무선으로) 제공될 수 있다.
슬리핑 클라이언트(408)는 LAN(412) 및 WAN(402)을 통해 서버(404)에 등록할 수 있다. 도 4의 실시예에서, 등록하는 것은, 슬리핑 클라이언트(408)에서 NIC(미도시)에 의해 수행될 수 있고, 슬리핑 클라이언트(408)의 인코딩된 호스트네임 및 넷바이오스 공유 폴더들, (예컨대, 슬리핑 클라이언트(408)가 슬립 모드에 진입하기 전에 사용자-선택될 수 있는) 슬리핑 클라이언트(408)의 인코딩된 ID, (슬리핑 클라이언트(408)에 의해 랜덤하게 생성된 옥텟일 수 있는) 임시어, 및 암호화 알고리즘을 포함하는 메시지를 전송하는 것을 포함할 수 있다. 서버는 이러한 정보 전체를 저장할 수 있다.
슬리핑 클라이언트(408)가 서버(404)에 등록한 후, 말단 사용자(406)는 질의 요청을 생성하여 이를 서버(404)에 전송할 수 있다. 질의 요청은 슬리핑 클라이언트(408)의 인코딩된 ID를 단순히 포함할 수 있다.
말단 사용자(406)로부터의 질의 요청을 수신하는 것에 기초하여, 서버(404)는 말단 사용자(406)에 질의 응답을 전송할 수 있다. 질의 응답은, 슬리핑 클라이언트(408)의 인코딩된 ID, 및 등록 메시지로부터의 임시어 및 암호화 알고리즘을 포함할 수 있다.
서버(404)로부터 질의 응답을 수신하면, 말단 사용자(406)는 보안 키를 갖는 웨이크업 메시지를 생성할 수 있다. 웨이크업 메시지는, 슬리핑 클라이언트(408)의 인코딩된 ID, 및 말단 사용자의 키 입력에 따라서 암호화된 임시어를 포함할 수 있다. 즉, 임시어는 말단 사용자(406)에 의해 키 입력(예컨대, 패스워드 또는 다른 사전-공유된 키)에 따른 등록 메시지에 포함된 암호화 알고리즘을 이용하여 암호화될 수 있다.
말단 사용자(406)는 웨이크업 메시지를 슬리핑 클라이언트(408)에 포워딩할 수 있는 웨이크업 메시지를 서버(404)에 전송할 수 있다. 슬리핑 클라이언트(408)의 NIC는 웨이크업 메시지를 수신할 수 있고, 암호화된 임시어를 체크할 수 있다. 정확한 키를 이용하여 암호화되면, NIC는 슬리핑 클라이언트(408)를 웨이크업할 수 있다.
도 5
도 5는 일 실시예에 따라서 네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하기 위한 시스템 및 방법의 일부로서 이용될 수 있는 예시적인 메시지 포맷을 예시한다. 예시된 메시지 포맷은 사용자 데이터그램 프로토콜(UDP) 패킷의 형태를 취할 수 있다.
나타낸 바와 같이, 메시지는 MAC(media access control) 헤더, 인터넷 프로토콜(IP) 헤더, 및 UDP 헤더를 포함할 수 있다. UDP 프로토콜에 따라 당업계에 알려져 있는 바와 같이 구현될 수 있는 이러한 헤더들에 후속하여, "SWOI(secure wake over internet)" 헤더가 포함될 수 있다. SWOI 헤더는, 일 실시예에 따라서, 버전 정보, 커맨드(CMD) 표시자, 길이 필드, XID, 및 에러 코드를 포함할 수 있다. 버전 필드는 메시지 포맷의 버전을 나타낼 수 있다. CMD 필드는, SWOI 메시지의 유형, 예를 들어, 등록 메시지, 질의 요청, 질의 응답, 또는 웨이크업 메시지를 나타낼 수 있다. 길이 필드는 후속하는 옵션 리스트의 길이를 (예컨대, 바이트 단위로) 나타낼 수 있다. 에러 정정 코딩 정보 및/또는 다른 정보가 또한 몇몇 실시예들에 포함될 수 있다. 몇몇 실시예들에서, 메시지 포맷의 일부는 메시지 포맷에 대한 미래의 변경에 대한 변경들을 위해 예약될 수 있다. SWOI 헤더 필드들에 대해 바이트 단위의 특정한 길이들이 나타나지만(예컨대, 버전에 대해 1 바이트, CMD에 대해 1 바이트, 길이에 대해 2 바이트, XID에 대해 4 바이트, 및 에러 코드에 대해 2 바이트), 이들은 단지 예시적이며, 다른 길이들도 또한 고려된다.
옵션 리스트는 메시지의 핵심(substance)을 포함할 수 있다. 예를 들어, 가능한 옵션들은, 메시지 유형에 따라 잠재적으로, 인코딩된 호스트네임, 사용자-선택 ID, 임시어, 암호화 알고리즘, 또는 임의의 다양한 다른 옵션들을 포함할 수 있다. 일 실시예에 따르면, 각각의 옵션은 3개의 필드들: 옵션 유형(예컨대, 옵션의 유형을 식별하는 것), 옵션 길이(예컨대, 옵션 데이터 필드의 길이를 식별하는 것), 및 옵션 데이터 자신을 포함할 수 있다. 일 실시예에 따르면, 옵션 유형 필드는 1 바이트 길이일 수 있고, 옵션 길이 필드는 2 바이트 길이일 수 있고, 옵션 데이터 필드는 옵션 길이 필드에 의해 나타나는 길이일 수 있으며; 다른 필드 길이들도 또한 가능하다. 몇몇 실시예들에서, 단일 패킷은 옵션 리스트에서의 다수의 옵션들을 포함할 수 있다. 몇몇 다른 실시예들에서, 각각의 패킷은 오직 단일 옵션만을 포함할 수 있다.
도 5에 나타낸 메시지 포맷이 하나의 가능한 UDP 기반 메시지 포맷이지만, 당업자들은 다른 UDP 기반 메시지 포맷들, 또는 임의의 다양한 다른 유형들의 패킷들(예컨대, TCP와 같은 다른 프로토콜들을 이용함)이 원하는 대로 이용될 수 있다는 것을 인식할 것이다. 따라서, 도 5에 나타낸 메시지 포맷은 본원에 설명된 메시지들을 구현하는 하나의 가능한 수단들을 나타내지만, 도 5 또는 그에 대한 이러한 상세한 설명 중 어느 것도 그 전체가 본 개시물을 한정하는 것으로 고려되지 않아야 한다.
앞선 실시예들이 상당히 상세하게 설명되지만, 앞선 개시물이 완전하게 인식되면 수많은 변화들 및 변형들이 당업자들에게 명백하게 될 것이다. 이하의 청구항들은 모든 이러한 변화들 및 변형들을 포괄하도록 해석되는 것으로 의도된다.

Claims (22)

  1. 네트워크를 통해서 서버가 컴퓨터 시스템의 보안 웨이크업을 용이하게 하기 위한 컴퓨터-구현 방법으로서,
    상기 네트워크를 통해서 제 1 컴퓨터 시스템으로부터 등록 메시지(registration message)를 수신하는 단계 ― 상기 제 1 컴퓨터 시스템은 네트워크 인터페이스 컨트롤러(NIC; network interface controller)를 포함하고, 상기 등록 메시지는 상기 제 1 컴퓨터 시스템이 슬립 모드에 있는 동안 상기 NIC로부터 수신됨 ―;
    상기 제 1 컴퓨터 시스템을 등록하는 단계 ― 상기 등록하는 단계는, 상기 제 1 컴퓨터 시스템에 대한 식별 정보를 메모리에 저장하는 단계를 포함함 ―;
    상기 네트워크를 통해서 제 2 컴퓨터 시스템으로부터 웨이크업 메시지를 수신하는 단계 ― 상기 웨이크업 메시지는 상기 제 1 컴퓨터 시스템을 식별하는 정보 및 인증 정보를 포함함 ―;
    상기 네트워크를 통해서 상기 제 1 컴퓨터 시스템에 상기 웨이크업 메시지를 전송하는 단계 ― 상기 웨이크업 메시지는 상기 제 1 컴퓨터 시스템을 웨이크 업하도록 상기 NIC에 나타냄 ―; 및
    상기 NIC로부터 상기 등록 메시지를 수신한 후 미리-결정된 시간의 기간 동안 상기 NIC와의 접속을 유지하는 단계를 포함하고,
    상기 제 1 컴퓨터 시스템을 등록하는 단계, 상기 웨이크업 메시지를 수신하는 단계, 및 상기 웨이크업 메시지를 전송하는 단계는, 상기 NIC와의 접속이 유지되는 동안 수행되고,
    상기 등록 메시지는, 상기 제 1 컴퓨터 시스템에 대한 식별 정보, 임시어(nonce) 및 암호화 알고리즘을 포함하고,
    상기 등록하는 단계는, 상기 임시어 및 상기 암호화 알고리즘을 상기 메모리에 저장하는 단계를 더 포함하고, 그리고
    상기 웨이크업 메시지의 상기 인증 정보는 상기 임시어를 포함하고, 상기 임시어는 상기 암호화 알고리즘에 따라 암호화되는,
    컴퓨터-구현 방법.
  2. 제 1 항에 있어서,
    상기 NIC로부터 새로운 등록 메시지를 주기적으로 수신하는 단계 ― 상기 새로운 등록 메시지는 상기 NIC와의 접속의 만료 이전에 수신됨 ―; 및
    개별적인 새로운 등록 메시지를 수신하는 것에 기초하여 각각의 개별적인 새로운 등록 메시지를 수신한 후 추가적인 미리-결정된 시간의 기간 동안 상기 NIC와의 접속을 유지하는 단계를 더 포함하는,
    컴퓨터-구현 방법.
  3. 제 1 항에 있어서,
    상기 등록 메시지는, 상기 제 1 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보를 포함하고;
    상기 제 1 컴퓨터 시스템에 대한 식별 정보를 저장하는 단계는, 상기 제 1 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보를 저장하는 단계를 포함하고; 그리고
    상기 웨이크업 메시지에서 상기 제 1 컴퓨터 시스템을 식별하는 정보는, 상기 제 1 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보를 포함하는,
    컴퓨터-구현 방법.
  4. 제 1 항에 있어서,
    상기 인증 정보는 사전-공유된 키를 포함하고, 그리고
    상기 사전-공유된 키는 상기 제 1 컴퓨터 시스템 및 상기 제 2 컴퓨터 시스템에 알려져 있는,
    컴퓨터-구현 방법.
  5. 제 1 항에 있어서,
    상기 네트워크는 광역 네트워크이고, 그리고
    상기 방법은 서버 컴퓨터 시스템에 의해 구현되는,
    컴퓨터-구현 방법.
  6. 제 1 항에 있어서,
    상기 방법은:
    상기 제 2 컴퓨터 시스템으로부터 질의 요청(query request)을 수신하는 단계 ― 상기 질의 요청은 상기 제 1 컴퓨터 시스템에 대한 식별 정보를 포함함 ―; 및
    상기 제 2 컴퓨터 시스템에 질의 응답(query response)을 전송하는 단계 ― 상기 질의 응답은 상기 제 1 컴퓨터 시스템에 대한 식별 정보, 상기 임시어, 및 상기 암호화 알고리즘을 포함함 ― 를 더 포함하는,
    컴퓨터-구현 방법.
  7. 제 1 항에 있어서,
    상기 웨이크업 메시지의 상기 인증 정보에 기초하여 상기 웨이크업 메시지를 인증하는 단계를 더 포함하고,
    상기 웨이크업 메시지를 상기 제 1 컴퓨터 시스템에 전송하는 단계는, 상기 웨이크업 메시지의 상기 인증 정보를 성공적으로 인증하는 것에 기초하는,
    컴퓨터-구현 방법.
  8. 컴퓨터-판독가능 메모리 매체로서,
    네트워크를 통해서 서버가 제 1 컴퓨터 시스템의 보안 웨이크업을 용이하게 하기 위한 프로그램 명령들을 포함하고,
    상기 프로그램 명령들은, 프로세서에 의해:
    상기 네트워크를 통해서 상기 제 1 컴퓨터 시스템으로부터 등록 메시지를 수신하고 ― 상기 제 1 컴퓨터 시스템은 네트워크 인터페이스 컨트롤러(NIC)를 포함하고, 상기 등록 메시지는 상기 제 1 컴퓨터 시스템이 슬립 모드에 있는 동안 상기 NIC로부터 수신됨 ―;
    상기 제 1 컴퓨터 시스템을 등록하고 ― 상기 등록하는 것은, 상기 제 1 컴퓨터 시스템에 대한 식별 정보를 메모리에 저장하는 것을 포함함 ―;
    상기 네트워크를 통해서 제 2 컴퓨터 시스템으로부터 웨이크업 메시지를 수신하고 ― 상기 웨이크업 메시지는 상기 제 1 컴퓨터 시스템을 식별하는 정보 및 인증 정보를 포함함 ―;
    상기 네트워크를 통해서 상기 제 1 컴퓨터 시스템에 상기 웨이크업 메시지를 전송하고 ― 상기 웨이크업 메시지는 상기 제 1 컴퓨터 시스템을 웨이크 업하도록 상기 NIC에 나타냄 ―; 그리고
    상기 NIC로부터 상기 등록 메시지를 수신한 후 미리-결정된 시간의 기간 동안 상기 NIC와의 접속을 유지하도록 실행가능하고,
    상기 프로그램 명령들은, 상기 미리-결정된 시간의 기간 내에 상기 제 1 컴퓨터 시스템을 등록하고, 상기 웨이크업 메시지를 수신하고, 그리고 상기 웨이크업 메시지를 전송하도록 실행가능하고,
    상기 등록 메시지는, 상기 제 1 컴퓨터 시스템에 대한 식별 정보, 임시어 및 암호화 알고리즘을 포함하고,
    상기 등록하는 것은, 상기 임시어 및 상기 암호화 알고리즘을 상기 메모리에 저장하는 것을 더 포함하고, 그리고
    상기 웨이크업 메시지의 상기 인증 정보는 상기 임시어를 포함하고, 상기 임시어는 상기 암호화 알고리즘에 따라 암호화되는,
    컴퓨터-판독가능 메모리 매체.
  9. 제 8 항에 있어서,
    상기 프로그램 명령들은:
    상기 NIC로부터 새로운 등록 메시지를 주기적으로 수신하고 ― 상기 새로운 등록 메시지는 상기 NIC와의 접속의 만료 이전에 수신됨 ―;
    개별적인 새로운 등록 메시지를 수신하는 것에 기초하여 각각의 개별적인 새로운 등록 메시지를 수신한 후 추가적인 미리-결정된 시간의 기간 동안 상기 NIC와의 접속을 유지하도록 추가로 실행가능한,
    컴퓨터-판독가능 메모리 매체.
  10. 제 8 항에 있어서,
    상기 등록 메시지는, 상기 제 1 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보를 포함하고,
    상기 프로그램 명령들은:
    상기 제 1 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보를 저장하도록 추가로 실행가능하고,
    상기 웨이크업 메시지에서 상기 제 1 컴퓨터 시스템을 식별하는 정보는, 상기 제 1 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보를 포함하는,
    컴퓨터-판독가능 메모리 매체.
  11. 제 8 항에 있어서,
    상기 인증 정보는 사전-공유된 키를 포함하고, 그리고
    상기 사전-공유된 키는 상기 제 1 컴퓨터 시스템 및 상기 제 2 컴퓨터 시스템에 알려져 있는,
    컴퓨터-판독가능 메모리 매체.
  12. 제 8 항에 있어서,
    상기 네트워크는 광역 네트워크인,
    컴퓨터-판독가능 메모리 매체.
  13. 제 8 항에 있어서,
    상기 등록 메시지는, 상기 제 1 컴퓨터 시스템에 대한 식별 정보, 임시어, 및 암호화 알고리즘을 포함하고,
    상기 등록하는 것은, 상기 임시어 및 상기 암호화 알고리즘을 상기 메모리에 저장하는 것을 더 포함하고,
    상기 프로그램 명령들은:
    상기 제 2 컴퓨터 시스템으로부터 질의 요청을 수신하고 ― 상기 질의 요청은 상기 제 1 컴퓨터 시스템에 대한 식별 정보를 포함함 ―;
    상기 제 2 컴퓨터 시스템에 질의 응답을 전송하도록 ― 상기 질의 응답은 상기 제 1 컴퓨터 시스템에 대한 식별 정보, 상기 임시어, 및 상기 암호화 알고리즘을 포함함 ― 추가로 실행가능하고, 그리고
    상기 웨이크업 메시지의 상기 인증 정보는 상기 임시어를 포함하고, 상기 임시어는 상기 암호화 알고리즘에 따라 암호화되는,
    컴퓨터-판독가능 메모리 매체.
  14. 제 8 항에 있어서,
    상기 프로그램 명령들은:
    상기 웨이크업 메시지의 상기 인증 정보에 기초하여 상기 웨이크업 메시지를 인증하도록 추가로 실행가능하고,
    상기 웨이크업 메시지를 상기 제 1 컴퓨터 시스템에 전송하는 것은, 상기 웨이크업 메시지의 상기 인증 정보를 성공적으로 인증하는 것에 기초하는,
    컴퓨터-판독가능 메모리 매체.
  15. 컴퓨터 시스템에서 이용하기 위해 구성된 네트워크 인터페이스 컨트롤러(NIC)로서,
    네트워크를 통해서 통신하기 위한 제 1 포트;
    네트워크를 통해서 상기 컴퓨터 시스템을 안전하게 웨이킹(waking)하는 것을 용이하게 하도록 구성된 로직 ― 상기 로직은 상기 컴퓨터 시스템이 슬립 모드에 있는 동안 동작하도록 구성됨 ― 을 포함하고,
    상기 로직은:
    상기 네트워크를 통해, 등록 메시지를 서버에 전송하고;
    상기 네트워크를 통해, 상기 서버로부터 인증 정보를 포함하는 웨이크업 메시지를 수신하고;
    상기 인증 정보에 기초하여 상기 웨이크업 메시지를 인증하고;
    상기 컴퓨터 시스템을 웨이킹하고; 그리고
    상기 등록 메시지를 전송한 후 미리-결정된 시간의 기간 동안 상기 서버와의 접속을 유지하도록 추가로 구성되고,
    상기 로직은, 상기 서버와의 접속의 만료 이전에 상기 서버로부터 상기 웨이크업 메시지를 수신하도록 구성되고,
    상기 등록 메시지는, 상기 제 1 컴퓨터 시스템에 대한 식별 정보, 임시어 및 암호화 알고리즘을 포함하고,
    상기 등록하는 것은, 상기 임시어 및 상기 암호화 알고리즘을 메모리에 저장하는 것을 더 포함하고, 그리고
    상기 웨이크업 메시지의 상기 인증 정보는 상기 임시어를 포함하고, 상기 임시어는 상기 암호화 알고리즘에 따라 암호화되는,
    네트워크 인터페이스 컨트롤러(NIC).
  16. 제 15 항에 있어서,
    상기 로직은:
    상기 서버와의 접속의 만료 이전에 새로운 등록 메시지를 상기 서버에 주기적으로 전송하고; 그리고
    개별적인 새로운 등록 메시지를 전송하는 것에 기초하여 각각의 개별적인 새로운 등록 메시지를 전송한 후 추가적인 미리-결정된 시간의 기간 동안 상기 서버와의 접속을 유지하도록 추가로 구성되는,
    네트워크 인터페이스 컨트롤러(NIC).
  17. 제 15 항에 있어서,
    상기 등록 메시지는, 상기 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보를 포함하고, 그리고
    상기 웨이크업 메시지는, 상기 컴퓨터 시스템에 대한 사용자가-선택한 인간이-판독가능한 식별 정보를 포함하는,
    네트워크 인터페이스 컨트롤러(NIC).
  18. 제 15 항에 있어서,
    상기 인증 정보는, 사전-공유된 키를 포함하고,
    상기 사전-공유된 키는, 상기 컴퓨터 시스템 및 다른 컴퓨터 시스템에 알려져 있고, 그리고
    상기 웨이크업 메시지는 상기 다른 컴퓨터 시스템으로부터 발신되는,
    네트워크 인터페이스 컨트롤러(NIC).
  19. 제 15 항에 있어서,
    상기 네트워크는 광역 네트워크인,
    네트워크 인터페이스 컨트롤러(NIC).
  20. 삭제
  21. 삭제
  22. 삭제
KR1020147014952A 2011-11-01 2011-11-01 네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하는 시스템 및 방법 KR101599695B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/081627 WO2013063758A1 (en) 2011-11-01 2011-11-01 System and method for securely waking a computer system over a network

Publications (2)

Publication Number Publication Date
KR20140088896A KR20140088896A (ko) 2014-07-11
KR101599695B1 true KR101599695B1 (ko) 2016-03-14

Family

ID=48191190

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147014952A KR101599695B1 (ko) 2011-11-01 2011-11-01 네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하는 시스템 및 방법

Country Status (7)

Country Link
US (1) US9746907B2 (ko)
EP (1) EP2774325B1 (ko)
JP (1) JP5823627B2 (ko)
KR (1) KR101599695B1 (ko)
CN (1) CN104025512B (ko)
IN (1) IN2014CN02454A (ko)
WO (1) WO2013063758A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10756918B2 (en) * 2008-12-02 2020-08-25 ioBridge, Inc. Activating a device via a module-based device interaction system
EP2817755B1 (en) * 2012-02-20 2021-03-24 Intel Corporation Directed wakeup into a secured system environment
US9152195B2 (en) * 2013-01-21 2015-10-06 Lenovo (Singapore) Pte. Ltd. Wake on cloud
US10488909B2 (en) * 2014-02-14 2019-11-26 Hewlett-Packard Development Company, L.P. Communicating commands to an embedded controller of a system
JP6373087B2 (ja) * 2014-06-20 2018-08-15 キヤノン株式会社 情報処理装置と、その制御方法及びプログラム
TWI646799B (zh) * 2016-08-29 2019-01-01 物聯智慧科技(深圳)有限公司 遠端喚醒方法、連線伺服器及具有休眠模式的連網裝置
EP3513601A4 (en) * 2016-09-13 2020-05-20 Link II, Charles M. METHOD AND SYSTEM FOR LOW-POWER INTER-NETWORK COMMUNICATION WITH MACHINE DEVICES
CN110622470B (zh) * 2017-03-31 2022-09-20 交互数字Ce专利控股公司 从因特网唤醒网络接入设备的方法
US10771439B2 (en) * 2017-06-28 2020-09-08 Microsoft Technology Licensing, Llc Shielded networks for virtual machines
US10871815B2 (en) * 2018-09-28 2020-12-22 Sonos, Inc. Network identification of portable electronic devices while changing power states

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210519A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Efficient and transparent remote wakeup
WO2009104828A1 (en) * 2008-02-22 2009-08-27 Logicplant Method for remote wake-up a computer connected to a network

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311276B1 (en) 1998-08-25 2001-10-30 3Com Corporation Secure system for remote management and wake-up commands
US6493824B1 (en) * 1999-02-19 2002-12-10 Compaq Information Technologies Group, L.P. Secure system for remotely waking a computer in a power-down state
US6678728B1 (en) 1999-12-03 2004-01-13 3Com Corporation Method and apparatus for automatically loading device status information into a network device
US7082129B2 (en) * 2002-04-29 2006-07-25 International Business Machines Corporation Secure method and system to prevent external unauthorized remotely initiated power up events in computer
JP2004199543A (ja) * 2002-12-20 2004-07-15 Fuji Xerox Co Ltd サーバ、クライアントおよびネットワークシステム
US7574600B2 (en) * 2004-03-24 2009-08-11 Intel Corporation System and method for combining user and platform authentication in negotiated channel security protocols
US7594116B2 (en) * 2005-04-28 2009-09-22 Proofpoint, Inc. Mediated key exchange between source and target of communication
JP4741292B2 (ja) * 2005-06-09 2011-08-03 株式会社日立製作所 デバイス管理システム
JP2007036624A (ja) 2005-07-26 2007-02-08 Matsushita Electric Ind Co Ltd 通信管理装置、機器、および通信システム
US20070067445A1 (en) * 2005-09-16 2007-03-22 Smart Link Ltd. Remote computer wake-up for network applications
US20080025279A1 (en) 2006-07-31 2008-01-31 Motorola, Inc. Synchronization of multi-system wakeup
US8369254B2 (en) * 2007-06-28 2013-02-05 Intel Corporation Network interface apparatus
US20090073481A1 (en) * 2007-09-17 2009-03-19 Ferlitsch Andrew R Method and system for external preprocessing of service requests directed to a sleeping node
US8095667B1 (en) 2008-02-19 2012-01-10 Marvell International Ltd. Methods and apparatus for remotely waking up a computer system on a computer network
US8533506B2 (en) * 2010-06-04 2013-09-10 Lenovo (Singapore) Pte. Ltd. System wakeup on wireless network messages
US8498229B2 (en) * 2008-12-30 2013-07-30 Intel Corporation Reduced power state network processing
US8291258B2 (en) * 2010-01-08 2012-10-16 Juniper Networks, Inc. High availability for network security devices
US8286011B2 (en) * 2010-02-28 2012-10-09 Freescale Semiconductor, Inc. Method of waking processor from sleep mode
US8379540B2 (en) * 2010-05-03 2013-02-19 Microsoft Corporation System for synchronous and asynchronous gaming modes
US8850219B2 (en) * 2010-05-13 2014-09-30 Salesforce.Com, Inc. Secure communications
US9223583B2 (en) * 2010-12-17 2015-12-29 Oracle International Corporation Proactive token renewal and management in secure conversations
US20160192403A1 (en) * 2014-12-30 2016-06-30 Qualcomm Incorporated Mechanism to provide lte voice, internet and embms services over ethernet for connected home architecture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090210519A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Efficient and transparent remote wakeup
WO2009104828A1 (en) * 2008-02-22 2009-08-27 Logicplant Method for remote wake-up a computer connected to a network

Also Published As

Publication number Publication date
EP2774325A1 (en) 2014-09-10
JP5823627B2 (ja) 2015-11-25
US20140298066A1 (en) 2014-10-02
JP2015504544A (ja) 2015-02-12
IN2014CN02454A (ko) 2015-08-07
CN104025512A (zh) 2014-09-03
EP2774325B1 (en) 2018-02-28
EP2774325A4 (en) 2015-06-24
KR20140088896A (ko) 2014-07-11
CN104025512B (zh) 2017-10-13
US9746907B2 (en) 2017-08-29
WO2013063758A1 (en) 2013-05-10

Similar Documents

Publication Publication Date Title
KR101599695B1 (ko) 네트워크를 통해서 컴퓨터 시스템을 안전하게 웨이킹하는 시스템 및 방법
EP1998528B1 (en) Method and apparatus to provide secure communication
KR101197885B1 (ko) 전력이 감소된 상태의 네트워크 프로세싱을 위한 방법, 장치 및 머신 판독가능 매체
Sathyadevan et al. Protean authentication scheme–a time-bound dynamic keygen authentication technique for iot edge nodes in outdoor deployments
WO2017168228A1 (en) Methods and apparatus for secure device authentication
US9288269B2 (en) Network presence offload
US9489023B1 (en) Secure wake on LAN with white list
US20090154701A1 (en) On device number lock driven key generation for a wireless router in wireless network security systems
Chom Thungon et al. A lightweight authentication and key exchange mechanism for IPv6 over low‐power wireless personal area networks‐based Internet of things
US11863532B2 (en) Enabling efficient communication in a hybrid network
US10243741B2 (en) Key exchange and mutual authentication in low performance devices
TW201537938A (zh) 通信控制裝置、方法及系統
CN114302356A (zh) 共享密钥的通信方法、系统及存储介质
Masuduzzaman et al. Two phase authentication and VPN-based secured communication for IoT home networks
Lee et al. Server authentication for blocking unapproved WOW access
US11888820B2 (en) Adjusting data communication in a virtual private network environment
Pavan An Encrypted MAC for the Authentication Process in WSN
Choi et al. An extensible authentication protocol with transport layer security and one time password in the multi hop mesh network
Mišic ZigBee: A long way to go?
Kumar et al. Authentication Protocol against Malicious Attack in Wireless Sensor Networks: A Review
Mardenov ANALYSIS AND CREATION OF A THREEFACTOR AUTHENTICATION MODEL AND A KEY MATCHING SCHEME IN WIRELESS SENSOR NETWORKS
JP2013255141A (ja) 認証スイッチ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee