KR20040027872A - 특권 모드 모뎀 드라이버를 갖는 컴퓨터 시스템 - Google Patents

특권 모드 모뎀 드라이버를 갖는 컴퓨터 시스템 Download PDF

Info

Publication number
KR20040027872A
KR20040027872A KR10-2004-7000198A KR20047000198A KR20040027872A KR 20040027872 A KR20040027872 A KR 20040027872A KR 20047000198 A KR20047000198 A KR 20047000198A KR 20040027872 A KR20040027872 A KR 20040027872A
Authority
KR
South Korea
Prior art keywords
command
calling program
privilege
privileged
digital
Prior art date
Application number
KR10-2004-7000198A
Other languages
English (en)
Other versions
KR100920495B1 (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 KR20040027872A publication Critical patent/KR20040027872A/ko
Application granted granted Critical
Publication of KR100920495B1 publication Critical patent/KR100920495B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)

Abstract

통신 시스템(10)은 물리 계층 하드웨어(180) 및 프로세싱 유닛(105)을 포함한다. 물리 계층 하드웨어(180)는 복수의 제어 코드들에 따라 통신 채널(40)을 통해 데이터를 통신한다. 물리 계층 하드웨어(180)는 유입 아날로그 신호를 복조하여 디지털 수신 신호를 발생시키고, 디지털 전송 신호를 변조하여 아날로그 전송 신호를 발생시킨다. 프로세싱 유닛(105)은 물리 계층 하드웨어(180)와 인터페이스하는 특권 드라이버(190)를 실행시킨다. 특권 드라이버(190)는, 디지털 수신 수신를 디코드하고, 디지털 전송 신호를 엔코드하며, 그리고 복수의 제어 코드들에 기초하여 디지털 수신 신호를 수신하고 디지털 전송 신호를 전송하도록 물리 계층 하드웨어(180)를 구성하는 프로토콜 계층(80)을 구현하는 프로그램 명령들을 포함한다. 트랜스시버(50)를 구성하는 방법은 복수의 제어 코드들에 기초하여 디지털 수신 신호를 발생시키기 위해 유입 아날로그 신호를 복조하는 단계와; 제어 코드들에 기초하여 아날로그 전송 신호를 발생시키기 위해 디지털 전송 신호를 변조하는 단계와; 그리고 복수의 제어 코드들을 구성하는 특권 드라이버(190)를 실행시키는 단계를 포함한다.

Description

특권 모드 모뎀 드라이버를 갖는 컴퓨터 시스템{COMPOUTER SYSTEM WITH PRIVILEDGE-MODE MODEM DRIVER}
최근, 셀 방식의 전화들이 점점 더 대중화되고 있다. 셀 방식 전화는 "이동국" 또는 "이동 단말기"로서 칭해지는 것의 한 예이다. 이동국은, 셀 방식 전화가 아닌 다양한 형태들(이동 통신 성능을 갖는 컴퓨터(예를 들어, 노트북 컴퓨터)를 포함한다)을 가질 수 있다.
원격 통신 서비스들은 공중 인터페이스(예를 들어, 무선 주파수들)를 통해 셀 방식 원격 통신 네트워크와 이동국 간에 제공된다. 전형적으로, 이동국을 갖는 각 가입자에게는 유일한(unique) 국제 이동 가입자 아이덴티티(IMSI)가 할당된다. 언제 어느 때라도, 액티브 이동국은 공중 인터페이스를 통해 1개 이상의 기지국들과 통신할 수 있다. 기지국들은 기지국 제어기들(이들은 무선 네트워크 제어기들이라고도 알려져있음)에 의해 관리된다. 기지국 제어기는 그의 기지국들과 함께 기지국 시스템을 구성한다. 기지국 시스템의 기지국 제어기들은 제어 노드들을 통해 코어 원격 통신 네트워크(예를 들어, 공중 전화망(PSTN))에 연결된다. 표준 이동 원격 통신 방식의 한 타입은 이동 통신을 위한 글로벌 시스템(GSM)이다. GSM은 다양한 타입의 서비스들에 대한 기능들 및 인터페이스들을 지정하는 표준들을 포함한다. GSM 시스템들은 음성 및 데이터 신호들 모두를 전송하는 데에 이용될 수 있다.
특정 기지국이 다수의 이동국들 간에 공유될 수 있다. 무선 스펙트럼은 제한된 자원이기 때문에, 시간 분할 및 주파수 분할 다중 액세스의 결합(TDMA/FDMA)을 이용하여 대역폭이 분할된다. FDMA는 최대 주파수 대역폭(예를 들어, 25MHz)을 200kHz씩 떨어져있는 124개의 캐리어 주파수들로 분할하는 것을 포함한다. 특정 기지국에는 1개 이상의 캐리어 주파수들이 할당될 수 있다. 각 캐리어 주파수는 또한 시간 슬롯들로 분할된다. 기지국과 이동국 간의 액티브 세션 동안, 기지국은 이동국으로부터 기지국으로의 업스트림 전송을 위한 주파수, 파워 레벨 및 시간 슬롯을 이동 유닛에 할당한다. 기지국은 또한 기지국으로부터 이동국으로 향하는 다운스트림 전송을 위한 특정한 주파수 및 시간 슬롯을 전달한다.
GSM에서 정의되는 기본적인 시간 단위는 버스트 주기(burst period)라 칭해지는바, 이는 15/26ms(또는 약 0.577ms) 동안 지속된다. 8개의 버스트 주기들이, 논리 채널들을 정의하기 위한 기본 단위인 하나의 TDMA 프레임(120/26ms, 또는 약 4.615ms)으로 분류된다. 하나의 물리 채널이 프레임당 하나의 버스트 주기로서 정의된다. 개별적인 채널들은 자신들의 대응하는 버스트 주기들의 수 및 위치에 의해 정의된다.
각 프레임이 8개의 버스트 주기들을 갖는 GSM 프레임들은 트래픽(즉, 음성 또는 데이터 신호들) 및 제어 정보를 모두 포함하는 슈퍼프레임들(예를 들어, 51개의 프레임들의 그룹)로 분류된다. 제어 정보는 슈퍼프레임 구조에서 정의된 공통 채널들을 통해 전달된다. 공통 채널들은 아이들 모드(idle mode) 이동국 및 전용 모드 이동국 둘다에 의해 액세스될 수 있다. 아이들 모드 이동국들은 공통 채널들을 이용하여 시그널링 정보를 교환함으로써, 유입 또는 유출 통화들에 응답하여 전용 모드로 변경을 행한다. 이미 전용 모드에 있는 이동국들은 핸드오버 및 다른 정보를 위해 주변의 기지국들을 모니터한다.
공통 채널들은:
기지국 아이덴티티, 주파수 할당들 및 주파수 호핑 시퀀스들을 포함하는 정보를 계속해서 방송하는 데에 이용되는 방송 제어 채널(BCCH)과;
버스트 주기들의 경계들을 정의함으로써 이동국을 셀의 시간 슬롯 구조와, 그리고 시간 슬롯 넘버링에 동기시키는(즉, GSM 네트워크의 모든 셀은 정확히 한 개의 FCCH 및 한 개의 SCCH를 방송하는바, 이들은 정의에 의해 TDMA 프레임 내의 시간 슬롯 넘버 0에서 전송된다) 데에 이용되는 주파수 정정 채널(FCCH) 및 동기 채널(SCH)과;
네트워크에 액세스를 요구하기 위해 이동국에 의해 이용되는 랜덤 액세스 채널(RACH)과;
이동국에게 유입 통화를 경고하는 데에 이용되는 페이징 채널(PCH)과; 그리고
RACH 상에서의 요구 이후의 시그널링을 위해(즉, 전용 채널을 얻기 위해) 이동국에 독립형 전용 제어 채널(SDCCH)을 할당하는 데에 이용되는 액세스 허가채널(AGCH)을 포함한다.
보안의 이유로, GSM 데이터는 암호화된 형태로 전송된다. 무선 매체는 누구에 의해서든 액세스될 수 있기 때문에, 인증은 이동 네트워크의 중요한 요소이다. 인증은 이동국 및 기지국 모두에 관련된다. 가입자 아이덴티피케이션 모듈(SIM) 카드가 각 이동국에 설치된다. 각 가입자에게는 비밀 키가 할당된다. 이 비밀 키의 한 카피가 SIM 카드에 저장되고, 다른 카피가 기지국에 의해 액세스될 수 있는 통신 네트워크 상의 보호된 데이터베이스에 저장된다. 인증 이벤트 동안, 기지국은 이동국으로 전송하는 임의 번호를 발생시킨다. 이동국은 이 임의 번호, 비밀 키 및 암호 알고리즘(예를 들어, A3)을 이용하여, 기지국으로 다시 전송되는 신호화된 응답을 발생시킨다. 이동국에 의해 전송된 신호화된 응답이 네트워크에 의해 계산된 것과 일치하면, 가입자가 인증된다. 기지국은 비밀 키를 이용하여 이동국으로 전송되는 데이터를 암호화한다. 유사하게, 이동국 또한 기지국으로 전송하는 데이터를 비밀 키를 이용하여 암호화한다. 이동국에 의해 수신된 전송이 해독된 후, 할당된 파워 레벨, 주파수, 및 특정한 이동국에 대한 시간 슬롯을 포함하는 다양한 제어 정보가 이동국에 의해 결정될 수 있다.
일반적으로, 통신 시스템들은 계층들에 관련하여 설명된다. 전송 매체를 통해 데이터 운반 신호(data carrying signal)의 실제 전송을 담당하는 제 1 계층은 물리 계층(PHY)이라 칭한다. 이 물리 계층은 디지털 데이터를 분류하고, 특정한 전송 방식에 따라 데이터에 기초하여 변조된 파형을 발생시킨다. GSM에서, 물리 계층은 전송 파형을 발생시킨 다음, 이동국의 할당된 전송 시간 슬롯 동안 전송한다.유사하게, 물리 계층의 수신부는 할당된 수신 시간 슬롯 동안 이동국에 송신될 데이터를 식별한다.
프로토콜 계층이라 칭하는 제 2 계층은 물리 계층에 의해 수신된 디지털 데이터를 처리하여, 그 내에 포함된 정보를 식별한다. 예를 들어, GSM 시스템에서, 데이터의 해독은 프로토콜 계층의 기능이다. 주목할 사항으로서, 물리 계층의 동작 파라미터들의 변경은 프로토콜 계층에 의한 해독 및 처리 이후에만 식별된다. 이러한 특정한 상호 의존성은 일반적으로 순수한 하드웨어 구현에서는 문제를 일으키지 않지만, 프로토콜 계층의 전부 또는 일부분들이 소프트웨어로 구현될 때 문제를 일으킬 수 있다.
어떠한 컴퓨터 시스템들, 특히 휴대용 노트북 컴퓨터들은 무선 모뎀들을 구비할 수 있다. 모뎀 기술의 한 경향은 소프트웨어 루틴들을 이용하여 전형적인 하드웨어 모뎀들의 실시간 기능들의 일부를 구현하는 소프트웨어 모델들의 이용을 포함한다. 소프웨어 모뎀의 하드웨어적 복잡성은 하드웨어 모뎀 보다 덜하기 때문에, 일반적으로 값이 덜 비싸고 더 유연하다. 예를 들어, 프로토콜 계층의 해독 및 처리는 부분적으로 또는 전적으로 소프트웨어에 의해 구현될 수 있다.
예를 들어 PC 시스템들과 같은 소프트웨어 시스템들은 운영 체제 환경에서 소프트웨어 드라이버들로서 인터페이스 제어 소프트웨어를 가동시킨다. 이러한 드라이버들은 하드웨어 장치들과의 통신을 담당하며, 운영 체제에서 특권 레벨에서 동작한다. 다른 소프트웨어 애플리케이션들은 드라이버들에 영향을 미치지 않는다. 그러나, 드라이버들은 다른 드라이버들로부터 보호되지 않기 때문에, 예를 들어 그의 동작을 손상시킴으로써, 드라이버의 동작에 영향을 줄 수 있는 다양한 문제들이 일어날 수 있다. 이러한 결과들은 우연하게 야기되거나, 고의적인 해킹에 의해 야기될 수 있다. 손상된 (또는 징용된(co-opted)) 드라이버는 컴퓨터의 외부에 부가적인 문제들을 야기시킬 수 있다. 예를 들어, 전화선 또는 무선 채널이 이용되게 하고, 외부 주변기기를 동작시키거나, 또는 중요한 데이터를 삭제한다.
이동국의 전송기의 동작을 제어하는 물리 계층의 동작 파라미터들은 소프트웨어를 이용하여 프로토콜 계층에 의해 제어되기 때문에, 컴퓨터 프로그램 또는 바이러스가 이동국을 제어하여, 그의 할당된 시간 슬롯 바깥으로 우연하게 또는 고의적으로 전송하게 할 수 있다. 예를 들어 셀 방식 네트워크와 같은 무선 통신 네트워크는 공유 인프라 구조에 의존한다. 이동국은 "로드의 법칙(rules of road)"을 따라야한다. 그렇지 않으면, 네트워크 상에서 간섭을 야기시킬 수 있다.
이동국의 어떠한 기능들이 소프웨어로 제어된다면, 프로그래머는 GSM 제어 프레임들이 어떻게 디코드되고 전송기 모듈이 어떻게 트리거(trigger)되는 지를 결정할 수 있다. 이후, 바이러스가 기록되고 네트워크를 통해 퍼져, 소프트웨어 기반 이동국들에 침투한다. 이렇게 되면, 특정한 시간 및 날짜에, 바이러스가 이동국을 직접 제어하여 계속적으로 또는 간헐적으로 전송됨으로써, 기지국들 및 다른 이동 유닛들을 임의 주파수들 및 최대 파워로 넘치게 할 수 있다. 이러한 바이러스 설계는 랜덤 시간에 검출 회피를 인에이블 및 디스에이블하여, 방송 시간 공급자로부터 그의 이용가능한 대역폭의 일부 또는 모두를 빼앗을 수 있으며, 심지어 네트워크를 완전히 셧다운시킬 수 있다. 이러한 공격은 셀 마다 극히 소수(즉, 하나)의 영향을받는 장치들 만을 공격하여 셀을 완전히 디스에이블시킨다.
공유 인프라구조에서 동작하는 이동국들에 관련된 보안 문제들은 3개의 엄정 레벨들(levels of severity), 즉 탬퍼 방지(tamper-proof), 비 탬퍼 방지 및 클래스 브레이크(class break)로 분류될 수 있다. 먼저, 하드웨어/펌웨어 구현(예를 들어, 셀 전화)은 탬퍼하기가 가장 어려운데, 그 이유는 각 장치가 개별적으로 얻어지고 변형(즉, 탬퍼 방지)되어야 하기 때문이다. 반면, 소프트웨어 기반 해결책은 탬퍼하기가 보다 쉬운데, 그 이유는 해커가 소프트웨어 디버거 환경(즉, 비 탬버 방지)에만 전념하기 때문이다. 마지막으로, 모든 시스템들 상에서 유사하고 동일한 타입의 많은 수의 시스템들에 탬퍼링이 분배될 수 있게 하는 탬퍼 성능을 갖는 시스템이 "클래스 브레이크(class-break)"될 수 있다.
소프트웨어 무선 모뎀은 클래스 브레이크에 민감할 뿐만 아니라, IP(인터넷 프로토콜) 또는 다른 포터블 코드 액세스 메커니즘과 동일한 계층으로부터 액세스될 수 있는 코드를 갖는 장치들에 속한다. 많은 소프트웨어 무선 모뎀들은 네트워크들 또는 인터넷에 연결된 컴퓨터들에 통합될 수 있다. 이러한 구성은 탬퍼되고 제어되는 소프트웨어의 민감성(susceptibility)을 증가시킨다.
소프트웨어를 이용하여 다른 통신 프로토콜들을 구현하는 통신 장치들 또한 상기 설명된 문제들의 일부에 영향을 받을 수 있지만, 결과의 정도 및 레벨이 다르다. 예를 들어, 회선 가입자 라인들을 이용하는 통신 장치들을 위한 소프트웨어 드라이버들(예를 들어, 음성 대역 모뎀들(V.90), 비대칭 디지털 가입자 라인(DSL) 모뎀들, 홈 전화 라인 네트워크들(HomePNA) 등)은 공격을 받을 수 있으며, 결과적으로 상기 가입자 라인이 디스에이블되거나 부적절하게 이용된다. 예를 들어, 공격을 받는 소프트웨어 모뎀들의 그룹은 서비스 공격의 거부에 이용되어, 소정의 번호에 계속 전화를 걸어 착신지측을 질리게 할 수 있다. 이 소프트웨어 모뎀은 또한 가입자 라인을 통한 유출 또는 유입 통화들을 막거나 HomePNA 트래픽을 두절(disrupt)시키는 데에 이용될 수 있다. 소프트웨어로 구현되는 다른 무선 통화 장치들(예를 들어, 무선 네트워크 장치들) 또한 무선 네트워크 상의 트래픽을 두절시키는 데에 징용될 수 있다.
본 발명은 상기 설명한 1개 이상의 문제들을 극복하거나 또는 적어도 그 영향을 줄이는 것이다.
본 발명은 일반적으로 모뎀 통신에 관한 것으로서, 특히 특권 모드 모뎀 드라이버를 갖는 컴퓨터 시스템에 관한 것이다.
본 발명은 첨부 도면들을 참조하여 설명되는 하기의 상세한 설명으로부터 보다 명확해질 것이다. 도면들에서, 동일한 요소들에는 동일한 참조 번호가 부여된다.
도 1은 본 발명의 예시적인 일 실시예에 따른 인증 에이젼트를 갖는 사용자국을 포함하는 통신 시스템의 단순 블록도이다.
도 2는 도 1의 통신 시스템의 사용자국을 구현하는 예시적인 컴퓨터의 단순 블록도이다.
도 3은 도 2의 컴퓨터 시스템에서 구현될 수 있는 프로세서의 일 실시예를 도시한다.
도 4는 도 1의 컴퓨터 시스템에서 특권화될 수 있는 예시적인 명령들의 리스트를 도시한다.
본 발명은 많은 변형들 및 대안적인 형태들을 갖지만, 본원에서는 본 발명의 특정한 실시예들을 예시적으로 설명한다. 하지만, 본 발명은 도면들 및 상세한 설명에 개시된 특정한 형태에 한정되지 않는다. 본 발명은 첨부된 청구항들에 의해 정의되는 본 발명의 범주 내에 포함되는 모든 변형들, 등가들 및 대안들을 포함한다.
본 발명의 일 양상에 따르면, 물리 계층 하드웨어 및 프로세싱 유닛을 포함하는 통신 시스템이 제공된다. 물리 계층 하드웨어는 다수의 제어 코드들에 따라 통신 채널을 통해 데이터를 통신한다. 물리 계층 하드웨어는 유입 아날로그 신호를 복조하여 디지털 수신 신호를 발생시키고, 디지털 전송 신호를 복조하여 아날로그 전송 신호를 발생시킨다. 프로세싱 유닛은 물리 계층 하드웨어와 인터페이스하는 특권 드라이버를 실행시킨다. 특권 드라이버는, 디지털 수신 신호를 디코드하고, 디지털 전송 신호를 엔코드하며, 그리고 다수의 제어 코드들에 기초하여 디지털 수신 신호를 수신하고 디지털 전송 신호를 전송하도록 물리 계층 하드웨어를 구성하는 프로토콜 계층을 구현하는 프로그램 명령들을 포함한다.
본 발명의 다른 양상에 따르면, 트랜스시버를 구성하는 방법이 제공된다. 이방법은 다수의 제어 코드들에 기초하여 디지털 수신 신호를 발생시키기 위해 유입 아날로그 신호를 복조하는 단계와; 제어 코드들에 기초하여 아날로그 전송 신호를 발생시키기 위해 디지털 전송 신호를 변조하는 단계와; 그리고 다수의 제어 코드들을 구성하는 특권 드라이버를 실행시키는 단계를 포함한다.
이하, 본 발명의 예시적인 실시예들을 설명한다. 명확성을 위하여, 실제 구현의 모든 특징들을 다 설명하지는 않는다. 물론, 어떠한 실제 실시예의 전개에 있어서, 구현마다 변하게 되는 시스템 관련 및 사업에 관련된 제약들과의 호환성과 같은 개발자의 특정한 목표들을 달성하기 위해서는, 구현마다 특정한 다양한 결정들이 이루어져야 한다는 것을 알 수 있을 것이다. 또한, 이러한 전개 노력은 복잡하고 시간 소모적이지만, 그럼에도 불구하고 본원의 개시의 이익을 갖는 당업자에게 있어서는 일상적인 일이라는 것을 알 수 있을 것이다.
도 1은 통신 시스템(10)의 블록도를 도시한다. 이 통신 시스템(10)은 통신 채널(40)을 통해 중앙국(30)과 통신하는 사용자국(20)을 포함한다. 도시된 실시예에서, 사용자국(20)은 소프트웨어 모델(50)을 이용하여 무선 통신 프로토콜(예를 들어, GSM)에 따라 통신하는 이동 컴퓨팅 장치이다. 중앙국(30)은 다수의 가입자들에게 서비스할 수 있는 공유 기지국이다. 본 발명이 무선 환경에서 구현되는 것으로 설명되기는 하지만, 본 발명의 응용은 이에만 한정되지 않는다. 본원의 개시 내용은 소프트웨어 구현 통신 프로토콜(예를 들어, V.90, ADSL, HomePNA, 무선 LAN 등)을 이용하는 다른 통신 환경들에서 적용될 수 있다.
사용자국(20)은 다양한 컴퓨팅 장치들, 예를 들어 데스크탑 컴퓨터, 노트북 컴퓨터, 개인 휴대 단말기(PDA) 등을 포함할 수 있다. 예시의 목적으로, 사용자국(20)은 노트북 컴퓨터를 이용하여 구현되는 것으로서 설명된다. 소프트웨어 모뎀(50)은 내부 자원으로서 설치될 수 있다. 당업자라면 이해할 수 있는 바와 같이, 소프트웨어 모뎀(50)은 하드웨어로 구현되는 물리 계층(PHY)(70) 및 소프트웨어로 구현되는 프로토콜 계층(80)을 포함한다. 예시의 목적으로, 소프트웨어 모뎀(50)의 기능들은, 비록 다른 프로토콜도 이용될 수 있지 만은, GSM 통신 프로토콜에 대해 구현될 수 있는 것으로서 설명된다.
발명의 일부 및 대응하는 상세한 설명은 소프트웨어, 또는 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 알고리즘들 또는 기호 표현들로 제시된다. 이러한 기재들 및 표현들은 당업자들이 자신들의 작업 내용을 다른 다른 당업자들에게 효과적으로 전달하기 위해 이용되는 것들이다. 본원에서 이용되는 일반적인 용어인 알고리즘은 바람직한 결과를 이끄는 단계들의 일관적인 순서이다. 이러한 단계들은 물리량들의 물리적인 조작을 필요로 한다. 일반적으로, 반드시 그런 것은 아니지만, 이러한 물리량들은 저장, 전달, 결합, 비교될 수 있는(그렇지 않으면 처리될 수 있는) 광학, 전기 또는 자기 신호들의 형태를 가질 수 있다. 주로 공통 이용을 위해, 이러한 신호들을 비트들, 값들, 요소들, 심볼들, 기호들, 용어들, 숫자들 등으로서 설명하는 것이 종종 편리함이 입증되었다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리량들과 관련되며 이러한 물리량들에 적용된 단지 편리한 라벨들일 뿐 이라는 것을 염두해야한다. 특별하게 지정하지 않는한, 또는 설명으로부터 명백한 바와 같이, 예를 들어 "프로세싱", "컴퓨팅", "계산(calculating)", "결정", "디스플레잉" 등과 같은 용어들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적인 전자량들로서 표현된 데이터를 처리하여 컴퓨터 시스템의 메모리들 또는 레지스터들 또는 다른 정보 저장 디바이스, 전송 또는 디스플레이 디바이스들 내의 물리량들로서 유사하게 표현되는 다른 데이터로 변환하는, 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 실행 및 프로세스들을 말한다.
물리 계층(70)은 디지털 전송 신호들을 아날로그 전송 신호 파형으로 변환하고, 유입 아날로그 수신 파형을 디지털 수신 신호들로 변환한다. 전송 신호들에 있어서, 프로토콜 계층(80)의 출력은 약 0 Hz 캐리어(즉, 캐리어가 없는 신호)로 변조되는 전송 "방송(on-air)" 정보이다. PHY 계층(70)은 자신에 의해 전송되는 실제 아날로그 파형을 발생시키기 위해, 중앙국(30)에 의해 사용자국(20)으로 전달되는 시간 슬롯, 주파수 및 파워 레벨 할당들에 따라 프로토콜 계층(80)에 의해 발생된 캐리어가 없는 전송 신호를 혼합(mix)(즉, 이러한 혼합은 또한 업컨버팅(upconverting)이라 칭한다)한다.
중앙국(30)은 또한 유입 데이터에 대해 사용자국(20)에 시간 슬롯 및 주파수 할당들을 전달한다. 유입 아날로그 수신 파형은 샘플링된 다음, 할당된 시간 슬롯 및 주파수 파라미터들에 기초하여 다운컨버트(downconvert)되어, 캐리어가 없는(즉, 약 0 Hz로 변조된) 수신 파형을 재생성한다. 프로토콜 계층(80)은 PHY 계층(70)으로부터 캐리어가 없는 수신 파형을 수신한 다음, 베이스밴드 프로세싱, 해독 및 디코딩을 수행하여, 수신 데이터를 재생한다.
집합적으로, 시간 슬롯, 주파수 및 파워 레벨(즉, 전송 데이터에 대해서만) 할당들은 제어 코드들이라 칭한다. 소프트웨어 모뎀(50)을 구현하는 데에 이용되는특정한 알고리즘들은 특정한 산업 표준(예를 들어, GSM 표준들)에 의해 설명되며 당업자들에게 잘 알려져있다. 따라서, 설명의 명확성 및 용이함을 위해, 본원에서는 본 발명에 따라 변경되는 것을 제외하고는 이들에 대해 상세히 설명하지 않는다.
도 2는 컴퓨터 시스템(100)에서 구현되는 사용자국(20)의 블록도이다. 설명의 명확성 및 용이함을 위해, 컴퓨터 시스템(100)을 구성하는 모든 요소들에 대해 전부 다 상세히 설명하지는 않는다. 이러한 상세한 사항들은 당업자에게 잘 알려져있으며, 특정한 컴퓨터 판매자 및 마이크로프로세서의 타입에 기초하여 변할 수 있다. 컴퓨터 시스템(100)은 프로세서(105), 노쓰 브리지(110), 메모리(115), 주변 요소 연결(PCI) 버스(125), 사우쓰 브리지(130), AT 부착(ATA) 인터페이스(보다 일반적으로는 집적 드라이브 전자장치(IDE) 인터페이스로서 알려져있음)(135), 산업 표준 아키텍쳐(ISA) 버스(145), 입/출력 제어기 칩(150), 키보드 및 마우스 제어기(KBC) 인터페이스, 플로피 디스크 제어기(FDC) 인터페이스, X-버스(155), 판독 전용 메모리(ROM)(160) 및 집적 패킷 버스(IPB)(170)를 포함한다.
노쓰 브리지(110) 및 사우쓰 브리지(130)는 단일 칩 또는 다수의 칩들의 일부가 될 수 있다. 예시된 실시예에서 프로세서(105)는 x86 프로세서이지만, 오직 이에만 한정되지 않는다. x86 프로세서의 아키텍쳐는 "인텔 아키텍쳐 소프트웨어 개발자 매뉴얼 3권(Intel Architecture Software Developer's Manual Volume 3)"이라는 명칭의 문서에 개시되어 있다.
컴퓨터 시스템(100)은, 구현에 따라, 다른 버스들, 디바이스들, 그리고/또는서브 시스템들을 포함할 수 있다. 예를 들어, 컴퓨터 시스템(100)은 캐시들, 모뎀들, 병렬 또는 직렬 인터페이스들, SCSI 인터페이스들, 네트워크 인터페이스 카드들 등을 포함할 수 있다.
도시된 실시예에서, 프로세서(105)는 슈퍼 특권 코드(super-privileged code)가 저장되는 메모리 영역을 정의하는 제 1, 2 레지스터들(162, 164)을 포함한다. 하기에서 보다 상세히 설명되는 바와 같이, 본 발명에 따르면 슈퍼 특권 코드는 컴퓨터 시스템(100)의 선택된 자원들에 대한 액세스를 제어하는 높은 보안 레벨을 갖는 컴퓨터 명령들의 세트를 포함한다.
프로세서(105)는 노쓰 브리지(110)에 결합된다. 이 노쓰 브리지(110)는 프로세서(105), 메모리(115) 및 PCI 버스(125) 간에 인터페이스를 제공한다. 사우쓰 브리지(130)는 PCI 버스(125)와, IDE 인터페이스(135), ISA 버스(145) 및 X-버스(155)에 결합된 주변 장치들 및 하위 시스템들 간에 인터페이스를 제공한다. I/O 인터페이스(150)는 ISA 버스(145)에 결합된다.
노쓰 브리지(110)는 프로세서(105), 메모리(115), PCI 버스(125)에 결합된 디바이스들, 및 사우쓰 브리지(130)에 결합된 장치들 및 하위 시스템들 간에 통신 액세스를 제공한다. 전형적으로, 제거가능한 주변 장치들이 PCI "슬롯들"(미도시) 내에 삽입되는바, 상기 PCI 슬롯들은 컴퓨터 시스템(100)에 결합하기 위해 PCI 버스(125)에 연결된다. 대안적으로, 마더보드 위에 위치하는 장치들은 PCI 버스(125)에 직접 연결될 수 있다.
사우쓰 브리지(130)는 PCI 버스(125)와 다양한 장치들 및 서브 시스템들, 특히 일반적으로 X-버스(155), ISA 버스(145), IDE 인터페이스(135) 및 IPB 버스(170)를 통해 컴퓨터 시스템(100)에 결합된 모뎀, 프린터, 키보드, 마우스 등과 같은 레거시 장치들(legacy devices) 간에 인터페이스를 제공한다. 사우쓰 브리지(130)는 IDE 인터페이스(135), ISA 버스(145), X-버스(155) 및 IPB 버스(170)를 통해 상기 레거시 장치들과 컴퓨터 시스템(100)의 나머지 부분들을 인터페이스하는 데에 필요한 논리를 포함한다.
IPB 버스(170)는 소프트웨어 모뎀(50)의 하드웨어 부분을 호스트한다. 도시된 실시예에서, 소프트웨어 모뎀(50)은 진보 통신 라이저(ACR) 카드(175) 상에 호스트된다. ACR 카드(175) 및 IPB 버스(170)에 대한 사양은 ACR 특별 관심 그룹(ACRSIG.ORG)으로부터 입수할 수 있다. 소프트웨어 모뎀(50)은 PHY 하드웨어 유닛(180) 및 라디오(185)를 포함한다. 도시된 실시예에서, 라디오(185)는 GSM 신호들을 전송 및 수신한다. 집합적으로, PHY 하드웨어 유닛(180) 및 라디오(185)는 PHY 계층(70)(도 1 참조)을 형성한다.
프로세서(105)는 특권 모뎀 드라이버(190)를 실행시킴으로써 프로토콜 계층(80)(도 1 참조)의 기능들을 구현한다. 하기에서 보다 상세히 설명되는 바와 같이, 프로세서(105)는 슈퍼 특권 코드(SPC)가 동작할 수 있는 보안 환경을 제공한다. 특권 모뎀 드라이버(105)는 SPC 환경에서 동작하며, 이에 따라 프로세서들(105)의 표준 동작 모드들에서 보다 높은 정도의 보안이 이루어진다. 이렇게 보안 정도가 보다 높기 때문에, 특권 모뎀 드라이버(190)를 탬퍼링으로부터 보호한다.
소프트웨어 모뎀(50)에 의해 수신되는 유입 데이터에 대해, 특권 모뎀 드라이버(190)는 PHY 하드웨어(180)에 의해 수신되는 암호화된 데이터를 재구성하기 위해 캐리어가 없는 파형을 복조한다. 암호화된 데이터를 재구성하는 프로세스는 당업자에게 널리 알려져있으며, 산업 GSM 표준에서 정의된다. 설명의 명확성 및 용이함을 위해, 본원에서는 이러한 재구성 프로세스에 대해 상세히 설명하지 않는다.
암호화된 데이터를 재구성한 후, 특권 모드 드라이버(190)는 GSM 표준들에 의해 정의되는 산업 표준 해독 기술들을 이용하여 상기 암호화된 데이터를 해독함으로써, 해독된 데이터를 발생시킨다. 특권 모뎀 드라이버(190)는 해독된 데이터를디코드한 다음, 제어 코드들 그리고/또는 사용자 데이터를 추출한다. 특권 모뎀 드라이버(190)는 제어 코드들을 PHY 하드웨어(180)에 전달한다. PHY 하드웨어(180)는 제어 코드들에 포함되어 있는 할당된 시간 슬롯, 주파수 및 파워 레벨 정보에 기초하여 라디오(185)를 구성한다.
소프트웨어 모뎀(50)에 의해 전송되는 데이터에 대해, 특권 모뎀 드라이버(190)는 모든 데이터 처리 기능들(엔코딩, 인터리빙, 버스트 어셈블리, 암호화 및 베이스밴드 처리를 포함한다)을 처리하여 캐리어가 없는 전송 파형을 발생시킨다. 특권 모뎀 드라이버(190)는 제어 코드들에 의해 이전에 정의된 할당된 시간 슬롯, 주파수 및 파워 레벨에 따라 업컨버트하기 위해 상기 전송 파형을 PHY 하드웨어(180) 및 라디오(185)에 전달한다.
하드 드라이브와 같은 저장 장치(195)가 IDE 인터페이스(135)에 결합된다. 이 저장 장치(195)는 1개 이상의 운영 체제(OS), 장치 드라이버들 및 그 내에 포함된 다른 애플리케이션들을 포함할 수 있다. x86 아키텍쳐에서, 운영 체제 및 그에 결합된 장치 드라이버들은 전형적으로 특권 레벨 제로에서 동작하여, OS 및 장치 드라이버들이 시스템(100)의 다양한 자원들을 액세스할 수 있게 한다. 저장 장치(195)에 설치될 수 있는 운영 체제의 예로는 마이크로소프트사의 Windows가 있다. Windows운영 체제에는 일반적으로 시스템(100)의 자원들을 제어하기 위한 다양한 장치 드라이버들(예를 들어, 저장 장치(195), I/O 인터페이스(150) 등을 위한 장치 드라이버들)이 적재되어 있다. 제 3의 장치 드라이버들이 또한 Windows운영 체제에 의해 이용될 수 있다.
ROM(160)은 컴퓨터 시스템(100) 상에서 작동하는 운영 체제와 저장 장치(195), 입/출력 인터페이스(150) 등의 부착 장치들(attached devices) 간의 데이터 흐름을 관리하는 BIOS(기본 입/출력 시스템)를 포함할 수 있다. 본 발명의 일 실시예에서, 슈퍼 특권 코드(SPC)는 ROM(160)에 저장되며, 이에 따라 SPC는 컴퓨터 시스템(100)이 켜질 때 BIOS와 실질적으로 동시에 초기화된다. 주목할 사항으로서, 도시된 실시예에서는 슈퍼 특권 코드가 ROM(160) 내에 존재하지만, SPC는 프로세서(105)의 로컬 메모리(미도시) 및 저장 장치(195)를 포함하는 다른 장소들, 또는 SPC가 실행될 수 있는 다른 어떠한 적절한 메모리 위치에 존재할 수 있다. 대안적인 실시예에서, SPC는 운영 체제의 일부로서 구현될 수 있는바, 이 경우 SPC는 대부분 저장 장치(195)에 저장되지 않는다.
도 3은 프로세서(105)의 특정 실시예를 도시한다. 구체적으로,프로세서(105)는 x86 프로세서이다. 프로세서(105)의 x86 아키텍쳐는 보호 모드, 실재 어드레스 모드(real address mode) 및 시스템 관리 모드를 포함하는 다수의 동작 모드들을 지원한다. 보호 모드는 프로세서(105)의 고유한(native) 동작 모드이다. 보호 모드에서는, 프로세서(105)의 모든 명령들 및 특징들이 이용가능하다. 실재 어드레스 모드는 인텔8086 프로세서의 프로그래밍 환경을 제공하고, 시스템 관리 모드는 운영 체제에 파워 관리 및 OEM 차별 특징들을 구현하기 위한 투명한 메커니즘을 제공한다.
도 3에 도시된 바와 같이, 프로세서(105)는 글로벌 디스크립터 테이블(GDT)(210), 로컬 디스크립터 테이블(LDT)(215), 작업 상태 세그먼트(TSS)(220), 인터럽트 디스크립터 테이블(IDT)(225), IDT 레지스터(230), 5개의 제어 레지스터들(235a-235e) 및 작업 레지스터(240)를 포함한다. 실질적으로 모든 메모리 액세스들은 보호 모드에서 동작할 때 GDT(210) 또는 (선택적인) LDT(215)를 통과한다. GDT(210) 및 LDT(215)는 엔트리 호출 세그먼트 디스크립터들(entries called segment descriptors)을 포함한다. 세그먼트 디스크립터는 세그먼트의 베이스 어드레스, 액세스 권한, 타입 및 이용 정보를 제공한다. 각 세그먼트 디스크립터는 GDT(210) 또는 LDT(215) 내에 인덱스를 제공하는 관련된 세그먼트 선택기를 갖는다.
TSS(220)는 작업에 대한 실행 환경의 상태를 정의한다. TSS(220)는 범용 레지스터들(미도시), 세그먼트 레지스터들, EFLAGS 레지스터(245), 세그먼트 선택기들 및 3개의 스택 세그먼트들(특권 레벨 0, 1 및 2 각각에 대해 한 스택씩)에 대한스택 포인터들의 상태를 포함한다. TSS(220)는 또한 작업 및 페이지 테이블 베이스 어드레스에 관련된 LDT(215)에 대한 세그먼트 선택기를 포함한다.
작업 레지스터(240)는 세그먼트 선택기, 베이스 어드레스, 세그먼트 범위, 및 현재 작업의 TSS(220)에 대한 디스크립터 속성(descriptor attributes)을 보유한다. 작업 레지스터(240)는 GDT(210) 내의 TSS 디스크립터를 참조하는바, 여기서 베이스 어드레스는 TSS(220)의 선형 어드레스를 특정하고, 세그먼트 범위는 TSS(220) 내의 바이트들의 수를 특정한다. LTR 및 STR 명령들은 각각 작업 레지스터(240)의 세그먼트 선택기 부분을 적재 및 저장한다. LTR 명령이 작업 레지스터(240) 내에 세그먼트 선택기를 적재하면, 베이스 어드레스, 범위, 및 TSS 디스크립터로부터의 디스크립터 속성들이 작업 레지스터(240) 내에 자동으로 적재된다. 작업 변경이 일어나면, 새로운 작업에 대한 TSS(220)의 디스크립터 및 세그먼트 선택기가 작업 레지스터(240)에 자동으로 적재된다. 작업 레지스터(240)의 내용은 새로운 TSS 정보를 작업 레지스터(240)에 기록하기 전에 자동으로 저장되지 않는다.
IDT(225)는 외부 인터럽트들, 소프트웨어 인터럽트들 및 예외들을 조정(handle)한다. IDT(225)는 인터럽트 및 예외 조정기들에 대한 액세스를 제공하는 게이트 디스크립터들(gate descriptors)의 수집을 포함한다. IDT(225) 내의 게이트 디스크립터들은 인터럽트-게이트, 트랩-게이트, 또는 작업-게이트 타입이 될 수 있다. 프로세서(105)는 내부 하드웨어, 외부 인터럽트 제어기 또는 소프트웨어로부터 인터럽트 벡터를 수신하면, 인터럽트 또는 예외 조정기를 액세스한다.GDT(210)와 마찬가지로, IDT(225)는 세그먼트가 아니다. IDT(225)의 베이스의 선형 어드레스가 IDT 레지스터(IDTR)(230)에 포함된다.
제어 레지스터들(235a-235e)은 프로세서(105)의 동작 모드 및 현재 실행하는 작업의 특성을 결정한다. 제어 레지스터들(235a-235e)은 시스템 레벨 동작들을 제어하기 위한 다양한 플래그들 및 데이터 필드들을 포함한다. 구체적으로, CR0 레지스터(235a)는 프로세서(105)의 동작 모드 및 상태들을 제어하는 시스템 제어 플래그들을 포함한다. CR1 레지스터(235b)는 예약된다. CR2 레지스터(235c)는 페이지 폴트 선형 어드레스를 포함한다. 페이지 디렉토리 베이스 레지스터라고도 칭해지는 CR3 레지스터(235d)는 페이지 디렉토리(250)의 베이스의 물리 어드레스 및 2개의 플래그들을 포함한다. 상기 2개의 플래그들은 프로세서(105)의 내부 데이터 캐시(미도시) 내에서의 페이지 디렉토리(250)의 캐싱을 제어한다. CR4 레지스터(235e)는 몇 개의 아키텍쳐 확장들을 가능하게 하는 플래그들의 그룹을 포함한다.
프로세서(105)의 x86 아키텍쳐는 메모리(115)(도 1 참조) 또는 (페이징을 통해) 가상 메모리의 직접적인 물리 어드레싱을 지원할 수 있다. 물리 어드레싱이 이용될 때, 선형 어드레스는 물리 어드레스로서 처리된다. 페이징이 이용될 때, 실질적으로 코드, 데이터, 스택, 시스템 세그먼트들, GDT(210) 및 IDT(215) 모두가 페이징될 수 있다.
물리 메모리(115) 내의 페이지들의 위치는 최대 4개의 시스템 데이터 구조들의 타입들 또는 레벨들로 포함된다. 페이징 데이터의 기본 물리 어드레스는 제어 레지스터(CR3)(235d)에 포함된다. 페이징에 있어서, 선형 어드레스는 다수의 부분들로 나뉘어져, 각각의 페이징 테이블들(255) 및 페이지 프레임(260) 내에 개별적인 오프셋들을 제공한다. 도 2에 도시된 예시적인 일 실시예에서는, 2-레벨 시스템 데이터 구조가 개시되어 있다. 페이지 디렉토리(250) 내의 엔트리는 페이지 테이블(255)의 베이스의 물리 어드레스, 액세스 권한 및 메모리 관리 정보를 포함한다. 페이지 테이블(255) 내의 엔트리는 페이지 프레임의 물리 어드레스, 액세스 권한 및 메모리 관리 정보를 포함한다. 페이지 디렉토리(250)의 기본 물리 어드레스는 제어 레지스터(CR3)(235d)에 포함된다. 도 2의 예시적인 실시예에서, 페이징에 있어서, 선형 어드레스는 3개의 부분들로 나뉘어져, 페이지 디렉토리(250), 페이지 테이블(255) 및 페이지 프레임(260) 내에 개별적인 오프셋들을 제공한다.
본 발명에 따르면, SPC는 일련의 "슈퍼 특권" 명령들을 포함하는바, 이러한 명령들은 이들에 대한 액세스를 갖는 프로그램들을 호출함으로써 실행될 수 있다. 본원에서 "프로그램"이라는 용어는, 절차, 함수, 루틴 등과 같은 논리 유닛 또는 코드 블록에 대한 일반적인 용어로서 이용된다. 따라서, 예를 들어, "프로그램"은 운영 체제 또는 다른 어떠한 애플리케이션이 될 수 있다. 선택된 SPC 명령들에 대한 액세스를 제한함으로써 컴퓨터 시스템(100)에 부가된 레벨의 보안을 제공하는바, 이러한 제한된 액세스가 없다면 현재 시스템들에는 이와같은 레벨의 보안이 제공되지 않는다. 즉, 본 발명의 출현으로 인해, 제로 특권 레벨에서 동작하는 프로그램들(예를 들어, 운영 체제들, 관련된 장치 드라이버들)은 시스템(100)의 자원들에 대한 액세스를 자동으로 얻지 못한다. 대신, 하기에서 보다 상세히 설명되는 바와 같이, 본 발명의 SPC는 제로 특권 레벨에서 동작하는 서로 다른 프로그램들에대해 서로 다른 특권들을 선택적으로 허가할 수 있다. 예를 들어, 특권 모뎀 드라이버(190) 만이 (제어 코드들에 기초하여) 라디오(185) 및 PHY 하드웨어(180)의 전송 파라미터들을 구성할 수 있는 권한을 부여받는다.
도 4는 "슈퍼 특권" 명령들(330) 및 이러한 명령들을 호출할 수 있는 권한을 갖는 프로그램들에 허가되는 관련된 액세스 권한들(325)의 예시적인 리스트를 도시한다. 예를 들어, 엔트리(350)는 CR3 레지스터(235d)에 대한 액세스 권한을 갖는 운영 체체 만을 도시한다. 따라서, 운영 체제가 CR3 레지스터(235d)를 액세스하고자 한다면, SPC는 OS 이외의 프로그램들에 의한 CR3 레지스터(235d)에 대한 액세스 요구가 거부되는 동안, 액세스가 완료될 수 있게 한다. SPC가 선택된 프로그램들로 하여금 슈퍼 특권 명령들(330)을 실행할 수 있게 하는 메커니즘이 하기에서 도 5를 참조하여 상세히 설명된다.
주목할 사항으로서, 도 4에 도시된 액세스 권한들은 단지 예시적인 것이다. 당업자라면, 액세스 권한들(325) 및 선택된 특권 명령들(330)이 실행 마다 특정하기 때문에 실행 마다 달라질 수 있다는 것을 알 수 있을 것이다. 엔트리(360)는 GDT(210)에 대한 액세스를 갖는 OS 및 그와 관련된 장치 드라이버들을 나타내고, 엔트리(365)는 제로 특권 레벨에서 동작하는 어떠한 애플리케이션이 IDTR(230)에 대한 액세스를 가짐을 나타낸다. 엔트리(370)는 작업 레지스터(240)에 대한 액세스를 갖는 OS 및 장치 드라이버들을 도시한다. 엔트리(380)는 PHY 하드웨어(180)에 대한 독점적인 액세스를 갖는 특권 모뎀 드라이버(190)를 도시한다.
도 5는 도 1의 컴퓨터 시스템(100)에 의해 이용될 수 있는 방법을 도시한다.도 5의 방법은 컴퓨터 시스템(100)이 턴온될 때 SPC가 초기화되는 블록(410)으로부터 시작된다. 초기화하는 동안, SPC는 자신을 수용하는 보호된 메모리 영역을 정의하기 위해 프로세서(105)의 제 1, 2 레지스터들(162, 164)에 기록한다. 주목할 사항으로서, 대안적인 실시예에서는, 2개의 레지스터들(162, 164) 대신, 1개의 레지스터를 이용하여 보호된 메모리 영역을 정의할 수 있다. 즉, 단일 레지스터가 메모리 영역의 시작 어드레스를 식별하는 데에 이용될 수 있고, 사전에 선택된 오프셋 값이 SPC를 수용하는 메모리 영역의 끝 어드레스를 정의하는 데에 이용될 수 있다.
2개의 레지스터들(162, 164)은, 일단 기록되면, SPC가 존재하는 보호된 메모리 영역을 정의한다. 보호된 메모리 영역은 메모리(115) 내에, ROM(160) 내에, 또는 SPC가 실행될 수 있는 다른 어떠한 저장 영역에 정의될 수 있다. 레지스터들이 메모리(115) 내의 메모리 영역을 지시하도록 프로그램된다면, SPC는 2개의 레지스터들(162, 164)에 의해 정의되는 보호된 메모리 영역에 자신을 복사하며, 이에 따라 다른 모든 프로그램들로부터 SPC를 보호한다. 대안적인 실시예에서, SPC는 자신이 처음에 존재하는 위치인 ROM(160)을 간단히 지시하도록 2개의 레지스터들(162, 164)을 프로그램할 수 있다. 이 경우, 보다 빠른 성능을 위해서는 메모리(115)로부터 SPC를 실행하는 것이 바람직하기는 하지만, SPC는 이후 ROM(160)으로부터 직접 실행될 수 있다.
블록(420)에서, 프로그램(예를 들어, 특권 모뎀 드라이버(190))이 명령을 실행하고자 시도할 때, 블록(430)에서 프로세서(105)는 상기 명령이 SPC의 일부인 선택된 특권 명령들(330)(도 4 참조)중 하나인지를 결정한다. 이 명령이 특권명령들(330)중 하나가 아니라면, 블록(435)에서 프로세서(105)는 명령들이 완료될 수 있게 한다. 그러나, 프로그램에 의해 실행되고 있는 명령이 특권 명령들(330)중 하나라면, 블록(440)에서 프로세서(105)는 예외를 발생시킨다. 블록(450)에서, SPC는 프로세서(105)에 의해 발생된 예외를 트랩한다. 예를 들어, 상기 명령은 PHY 하드웨어(180)의 구성을 변경하도록 내려질 수 있다.
블록(460)에서, SPC는 특권 명령을 실행하고자 시도하는 프로그램이 적절한 액세스 권한을 갖는 지를 결정한다. 호출 프로그램들에 대한 액세스 권한은, 예를 들어 도 3에 도시된 바와 같이 프로그램 단위에 기초하여 허가될 수 있다. 호출 프로그램을 식별하기 위해, 일 실시예에서 SPC는 호출 프로그램의 어드레스에 기초하여 스택을 참조한다. 대안적으로, Soft-Ice와 같이 공개적으로 입수할 수 있는 디버거들이 호출 프로그램의 위치를 인증하는 데에 이용될 수 있다. 호출이 특권 명령을 실행할 수 있는 권한을 부여받은 프로그램으로부터 비롯되면, SPC는 블록(465)에서 특권 명령을 실행시킨다. 예를 들어, PHY 하드웨어(180)에 내려진 구성 커맨드가 검출된다면, SPC는 이것이 특권 모뎀 드라이버(190)로부터 비롯되었음을 검증할 수 있다.
SPC는 호출 프로그램을 설치하는 동안 생성되었을 프로그램의 서명들에 기초하여 호출 프로그램을 인증할 수 있다. 예를 들어, 호출 프로그램이 운영 체제라고 가정하면, 설치하는 동안 생성되었을 운영 체제의 서명들은 이후 운영 제체에 의해 이루어지는 호출들을 인증하는 데에 이용될 수 있다.
블록(460)에서 SPC가 호출 프로그램이 특권 명령에 대한 권한을 가지고 있지않다고 결정하면, 블록(470)에서 요구가 거부된다. 특권 명령들에 대한 액세스는 몇 가지의 이유로 거부될 수 있다. 첫 번째로, 호출 프로그램이 특권 명령들에 대한 액세스 권한을 가지고 있지 않은 경우, 특권 명령을 실행하고자 하는 호출 프로그램의 요구는 거부될 수 있다. 은밀한 프로그램(covert program)이 PHY 하드웨어(180)에 새로운 제어 코드들을 기록하고자 하는 경우, 요구가 거부될 수 있다. 두 번째로, SPC가 호출 프로그램의 확실성을 검증하지 못하는 경우, 특권 명령들에 대한 액세스가 거부될 수 있다. 즉, 호출 프로그램이 특권 명령을 불러낼 수 있는 액세스 권한을 가지고 있다 할지라도, 만일 SPC가 스택을 이용하여 그 인증된 호출 프로그램이 (특권 모뎀 드라이버(190)와 같은 호출 프로그램인척하는 악의적 코드와는 상반됨) 특권 명령을 실행하려한다는 것을 검증할 수 없는 경우, 이 호출 프로그램의 요구는 거부될 수 있다.
도 4의 방법을 보다 상세히 설명하기 위해, 본원에서는 예가 제공된다. 예시적인 목적으로, 블록(420)에서 특권 모뎀 드라이버(190)가 PHY 하드웨어(180)의 구성을 변경하고자 시도한다고 가정하자. 또한, 예시적인 목적으로, SPC는 도 3의 특권 명령들(330)을 포함한다고 가정하고, 도 3에 리스트된 프로그램들은 특권 명령들(330)에 대한 액세스 권한(325)을 갖는 다고 가정하자. 블록(430)에서, 프로세서(105)는 PHY 하드웨어(180)를 액세스하는 것이 특권 명령인 지를 결정한 다음, 특권 명령이라면 도 3에 따라 프로세서(105)가 블록(440)에서 예외를 발생시킨다. 블록(450)에서, SPC는 블록(440)에서 프로세서(105)에 의해 발생되었던 예외를 트랩한다.
SPC는 블록(460)에서 특권 모뎀 드라이버(190)(즉, 호출 프로그램)가 PHY 하드웨어(180)의 구성을 변경할 수 있는 액세스 권한을 갖는 지를 결정한다. PHY 하드웨어(180)의 구성이 변경될 수 있도록 하기 전에, SPC는 먼저 PHY 하드웨어(180)를 변경하고자 하는 최초 요구가 특권 모뎀 드라이버(190)에 의해 실제로 이루어졌는 지를 검증하고자 시도한다. 운영 체제의 요구를 인증하는 한 방법은 스택을 참조하는 것이다. 스택으로부터의 어드레스에 의해, 특권 모드 드라이버(190)가 실제로 PHY 하드웨어(180)의 구성을 변경하고자 하는 요구를 발생했음을 확인하게 되면, SPC는 블록(465)에서 PHY 하드웨어(180)의 구성을 변경하는 명령을 실행시킨다. SPC가 PHY 하드웨어(180)의 구성을 변경하는 명령을 실행시킬 때, 변경 요구는 PHY 하드웨어(180)의 구성을 변경할 수 있는 권한을 부여받은 SPC에 의해 제공되기 때문에, 프로세서(105)는 예외를 발생시키지 않으면서 상기 요구를 완료한다.
상기 개시된 특정한 실시예들은 단지 예시적인 것으로서, 본 발명은 본원의 개시의 이득을 갖는 당업자들에게 명백한 등가의 다른 방법들에 의해 변형되어 실시될 수 있다. 또한, 본 발명은 본원에 개시된 구성 또는 설계의 세부사항들에 한정되지 않는다. 따라서, 상기 개시된 특정 실시예들은 수정 또는 변경될 수 있으며, 이러한 모든 수정 또는 변경들은 본 발명의 범주 내에 포함된다. 본 발명의 보호 범위는 하기의 청구항들에 의해 규정된다.

Claims (10)

  1. 복수의 제어 코드들에 따라 통신 채널(40)을 통해 데이터를 통신하는 물리 계층 하드웨어(180)와, 여기서 상기 물리 계층 하드웨어(180)는 유입 아날로그 신호를 복조하여 디지털 수신 신호를 발생시키고, 디지털 전송 신호를 변조하여 아날로그 전송 신호를 발생시키며; 그리고
    상기 물리 계층 하드웨어(180)와 인터페이스하는 특권 드라이버(190)를 실행시키는 프로세싱 유닛(105)을 포함하며, 상기 특권 드라이버(190)는, 상기 디지털 수신 수신를 디코드하고, 상기 디지털 전송 신호를 엔코드하며, 그리고 상기 복수의 제어 코드들에 기초하여 상기 디지털 수신 신호를 수신하고 상기 디지털 전송 신호를 전송하도록 상기 물리 계층 하드웨어(180)를 구성하는 프로토콜 계층(80)을 구현하는 프로그램 명령들을 포함하는 것을 특징으로 하는 통신 시스템.
  2. 제 1 항에 있어서,
    상기 프로세싱 유닛(105)에 의해 실행될 때, 상기 물리 계층 하드웨어(180)를 구성하는 명령을 특권 명령으로서 정의하고, 호출 프로그램으로부터 상기 특권 명령 실행 요구를 수신하며, 상기 호출 프로그램이 상기 특권 명령을 실행할 권한을 가지고 있는 지를 결정하고, 그리고 상기 호출 프로그램이 상기 프로그램 명령을 실행할 권한을 가지고 있다는 결정에 응답하여 상기 특권 명령을 실행하는 특권 코드를 저장하는 메모리(115)를 더 포함하는 것을 특징으로 하는 통신 시스템.
  3. 제 2 항에 있어서,
    상기 특권 코드는, 실행될 때, 상기 호출 프로그램의 아이덴티티를 검증하기 위해 컴퓨터 시스템(100)의 스택(210, 215)을 참조함으로써 상기 호출 프로그램이 상기 특권 명령을 실행할 권한을 가지고 있는 지를 결정하는 것을 특징으로 하는 통신 시스템.
  4. 제 2 항에 있어서,
    상기 특권 코드는, 실행될 때, 상기 호출 프로그램을 인증함으로써 상기 호출 프로그램이 상기 특권 명령을 실행할 권한을 가지고 있는 지를 결정하는 것을 특징으로 하는 통신 시스템.
  5. 제 2 항에 있어서,
    상기 특권 코드는, 실행될 때, 상기 특권 명령을 실행하고자 시도하는 상기 호출 프로그램에 응답하여 상기 프로세싱 유닛(105)에 의해 발생된 예외를 수신함으로써, 상기 특권 명령의 실행 요구를 수신하는 것을 특징으로 하는 통신 시스템.
  6. 트랜스시버(50)를 구성하는 방법으로서,
    복수의 제어 코드들에 기초하여 디지털 수신 신호를 발생시키기 위해 유입 아날로그 신호를 복조하는 단계와;
    상기 제어 코드들에 기초하여 아날로그 전송 신호를 발생시키기 위해 디지털 전송 신호를 변조하는 단계와; 그리고
    상기 복수의 제어 코드들을 구성하는 특권 드라이버(190)를 실행시키는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서,
    상기 제어 코드들을 구성하는 명령을 특권 명령으로서 정의하는 단계와;
    호출 프로그램으로부터 상기 특권 명령의 실행 요구를 수신하는 단계와;
    상기 호출 프로그램이 상기 특권 명령을 실행할 권한을 가지고 있는 지를 결정하는 단계와; 그리고
    상기 호출 프로그램이 상기 특권 명령을 실행할 권한을 가지고 있다는 결정에 응답하여 상기 특권 명령을 실행시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제 7 항에 있어서,
    상기 호출 프로그램이 상기 특권 명령을 실행할 권한을 가지고 있는 지를 결정하는 단계는 상기 호출 프로그램의 아이덴티티를 검증하기 위해 컴퓨터 시스템(100)의 스택(210, 215)을 참조하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제 7 항에 있어서,
    상기 호출 프로그램이 상기 특권 명령을 실행할 권한을 가지고 있는 지를 결정하는 단계는 상기 호출 프로그램을 인증하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제 7 항에 있어서,
    상기 특권 명령의 실행 요구를 수신하는 단계는 상기 특권 명령을 실행하고자 시도하는 상기 호출 프로그램에 응답하여 예외를 수신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1020047000198A 2001-07-09 2002-06-12 특권 모드 모뎀 드라이버를 갖는 컴퓨터 시스템 KR100920495B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/901,503 US6842803B2 (en) 2001-07-09 2001-07-09 Computer system with privileged-mode modem driver
US09/901,503 2001-07-09
PCT/US2002/018859 WO2003007644A1 (en) 2001-07-09 2002-06-12 Computer system with privileged-mode modem driver

Publications (2)

Publication Number Publication Date
KR20040027872A true KR20040027872A (ko) 2004-04-01
KR100920495B1 KR100920495B1 (ko) 2009-10-08

Family

ID=25414316

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047000198A KR100920495B1 (ko) 2001-07-09 2002-06-12 특권 모드 모뎀 드라이버를 갖는 컴퓨터 시스템

Country Status (8)

Country Link
US (1) US6842803B2 (ko)
EP (1) EP1405536B1 (ko)
JP (1) JP3976730B2 (ko)
KR (1) KR100920495B1 (ko)
CN (1) CN1248529C (ko)
DE (1) DE60211163T2 (ko)
TW (1) TWI253246B (ko)
WO (1) WO2003007644A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993010B1 (en) * 2000-07-07 2006-01-31 Mindspeed Technologies, Inc. Spoofing to preserve a communication link
SE0004326D0 (sv) * 2000-11-24 2000-11-24 Ericsson Telefon Ab L M Base station identification
US6985519B1 (en) * 2001-07-09 2006-01-10 Advanced Micro Devices, Inc. Software modem for communicating data using separate channels for data and control codes
FI115257B (fi) * 2001-08-07 2005-03-31 Nokia Corp Menetelmä informaation käsittelemiseksi elektroniikkalaitteessa, järjestelmä, elektroniikkalaite ja suoritinlohko
US7318225B1 (en) * 2001-09-21 2008-01-08 Novatel Wireless, Inc. Object oriented software architecture for software reconfigurable wireless modem
US20030231649A1 (en) * 2002-06-13 2003-12-18 Awoseyi Paul A. Dual purpose method and apparatus for performing network interface and security transactions
US8213994B2 (en) * 2002-08-07 2012-07-03 Interdigital Technology Corporation Mobile communications system and method for providing common channel coverage using beamforming antennas
US8861466B2 (en) 2002-08-07 2014-10-14 Interdigital Technology Corporation Mobile communication system and method for providing common channel coverage using beamforming antennas
US8595394B1 (en) 2003-06-26 2013-11-26 Nvidia Corporation Method and system for dynamic buffering of disk I/O command chains
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US7120794B2 (en) * 2003-10-29 2006-10-10 Qualcomm Inc. System for invoking a privileged function in a device
US7395083B2 (en) * 2003-10-30 2008-07-01 Research In Motion Limited Methods and apparatus for the communication of cellular network information between a wireless local area network and a mobile station
US8356142B1 (en) 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
EP1690417B1 (en) * 2003-11-19 2009-07-15 Research In Motion Limited Methods and apparatus for providing network broadcast information to wlan enabled wireless communication devices
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US7084758B1 (en) 2004-03-19 2006-08-01 Advanced Micro Devices, Inc. Location-based reminders
US7587347B2 (en) * 2004-10-19 2009-09-08 Citadel Investment Group, L.L.C. Computer implemented and/or assisted methods and systems for detecting, tracking and responding to toxic, or likely toxic, orders in an equities order flow using toxicity and/or profit analyzers
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
US8000735B1 (en) 2004-12-01 2011-08-16 Globalfoundries Inc. Wireless modem architecture for reducing memory components
US8332198B1 (en) 2005-03-22 2012-12-11 Advanced Micro Devices, Inc. Data generation and collection from a real-time system for non-real-time software simulation
CN101005308B (zh) * 2006-01-17 2012-08-29 上海原动力通信科技有限公司 宽带时分双工移动通信系统的物理层随机接入方法
US20080155159A1 (en) * 2006-12-22 2008-06-26 Rivas Mario A Integrated communication and information processing system
US8645965B2 (en) 2007-12-31 2014-02-04 Intel Corporation Supporting metered clients with manycore through time-limited partitioning
TWI460657B (zh) 2008-09-05 2014-11-11 Asustek Comp Inc 更新與修復基本輸入輸出系統的方法
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
US8943552B2 (en) 2009-04-24 2015-01-27 Blackberry Limited Methods and apparatus to discover authentication information in a wireless networking environment
US8467359B2 (en) 2010-05-13 2013-06-18 Research In Motion Limited Methods and apparatus to authenticate requests for network capabilities for connecting to an access network
US8665842B2 (en) 2010-05-13 2014-03-04 Blackberry Limited Methods and apparatus to discover network capabilities for connecting to an access network
US8644276B2 (en) 2010-05-13 2014-02-04 Research In Motion Limited Methods and apparatus to provide network capabilities for connecting to an access network

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3828327A (en) 1973-04-30 1974-08-06 Ibm Simplified storage protection and address translation under system mode control in a data processing system
US5347636A (en) * 1985-11-08 1994-09-13 Nec Corporation Data processor which efficiently accesses main memory and input/output devices
JPH01147723A (ja) * 1987-12-04 1989-06-09 Nec Corp 情報処理装置のパイプライン処理方式
US6014705A (en) * 1991-10-01 2000-01-11 Intermec Ip Corp. Modular portable data processing terminal having a higher layer and lower layer partitioned communication protocol stack for use in a radio frequency communications network
JP2679363B2 (ja) * 1989-06-20 1997-11-19 日本電気株式会社 マイクロプロセッサ
WO1992017839A1 (en) * 1991-04-01 1992-10-15 Cray Research, Inc. Privileged instruction trap for operating system control
US5812639A (en) * 1994-12-05 1998-09-22 Bell Atlantic Network Services, Inc. Message communication via common signaling channel
US5784615A (en) * 1994-12-13 1998-07-21 Microsoft Corporation Computer system messaging architecture
US5948097A (en) * 1996-08-29 1999-09-07 Intel Corporation Method and apparatus for changing privilege levels in a computer system without use of a call gate
US5925114A (en) 1997-03-21 1999-07-20 Motorola, Inc. Modem implemented in software for operation on a general purpose computer having operating system with different execution priority levels
US6154818A (en) 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US6360281B1 (en) * 1998-05-29 2002-03-19 3Com Corporation System and method for communicating with a serial communications device using multiple virtual ports
DE69929366T2 (de) 1998-10-12 2006-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Verbindungs- und funkzellanpassung
JP2000196611A (ja) * 1998-12-25 2000-07-14 Sony Corp 情報受信装置、及び情報送受信システム
US7423983B1 (en) * 1999-09-20 2008-09-09 Broadcom Corporation Voice and data exchange over a packet based network
FI991134A (fi) 1999-05-18 2000-11-19 Sonera Oyj Ohjelmiston testaus
US6718485B1 (en) * 1999-11-16 2004-04-06 Parasoft Corporation Software emulating hardware for analyzing memory references of a computer program
US7003571B1 (en) * 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
US6883099B2 (en) * 2001-01-04 2005-04-19 Troika Networks, Inc. Secure virtual interface
US6976174B2 (en) * 2001-01-04 2005-12-13 Troika Networks, Inc. Secure multiprotocol interface

Also Published As

Publication number Publication date
EP1405536A1 (en) 2004-04-07
KR100920495B1 (ko) 2009-10-08
DE60211163D1 (de) 2006-06-08
TWI253246B (en) 2006-04-11
JP2004535734A (ja) 2004-11-25
CN1248529C (zh) 2006-03-29
US6842803B2 (en) 2005-01-11
EP1405536B1 (en) 2006-05-03
CN1526250A (zh) 2004-09-01
US20030031148A1 (en) 2003-02-13
DE60211163T2 (de) 2007-04-19
WO2003007644A1 (en) 2003-01-23
JP3976730B2 (ja) 2007-09-19

Similar Documents

Publication Publication Date Title
KR100920495B1 (ko) 특권 모드 모뎀 드라이버를 갖는 컴퓨터 시스템
US7383432B1 (en) Software modem with hidden authentication commands
US6973566B2 (en) Software modem with privileged mode oversight of control parameters
US7206933B2 (en) Software modem with privileged mode driver authentication
US7096353B2 (en) Software modem with privileged mode decryption of control codes
US20030009676A1 (en) Peripheral device with secure driver

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120907

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130906

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee