KR100758219B1 - 유에스비 장치의 동작을 통제하는 방법 - Google Patents

유에스비 장치의 동작을 통제하는 방법 Download PDF

Info

Publication number
KR100758219B1
KR100758219B1 KR1020050072083A KR20050072083A KR100758219B1 KR 100758219 B1 KR100758219 B1 KR 100758219B1 KR 1020050072083 A KR1020050072083 A KR 1020050072083A KR 20050072083 A KR20050072083 A KR 20050072083A KR 100758219 B1 KR100758219 B1 KR 100758219B1
Authority
KR
South Korea
Prior art keywords
usb
usb device
security controller
host
controller
Prior art date
Application number
KR1020050072083A
Other languages
English (en)
Other versions
KR20070017609A (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 (주)이월리서치
Priority to KR1020050072083A priority Critical patent/KR100758219B1/ko
Publication of KR20070017609A publication Critical patent/KR20070017609A/ko
Application granted granted Critical
Publication of KR100758219B1 publication Critical patent/KR100758219B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Landscapes

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

Abstract

본 발명은 유에스비 장치의 동작을 통제하는 방법에 관한 것으로서, 특히 더욱 상세하게는 USB 포트에 소형의 보안 콘트롤러를 장착하여 USB 장치와 USB 호스트 콘트롤러 사이의 동작을 소형의 보안 콘트롤러에 의해 USB 장치가 허용된 경우, 금지된 경우, 제한적으로 입출력을 허용하는 경우로 동작모드를 통제할 수 있고, 상기 보안 콘트롤러에 타이머가 내장되어 있어 USB 장치의 입출력을 제한적으로 제한하는 경우 해당 바이트에 의해 데이터를 전송하는데 소요시간을 계산하다가 밀리 초 간격으로 데이터 라인을 통제할 수 있으며, USB 장치가 허용되는 경우 상기 보안 콘트롤러에 내장되어 있는 릴레이를 동작시켜 USB 장치와 호스트 콘트롤러를 직접 접속시킬 수 있다. 또한 보안 콘트롤러를 사용하므로 유에스비 장치의 동작을 통제하는 장치를 구현하는데 비용이 절감된다.
USB, 디바이스 드라이버, 보안 콘트롤러, USB 시스템 소프트웨어, USB 호스트 콘트롤러, USB 장치 하드웨어, CPU, Flash 메모리, RAM, 릴레이, 타이머, USB 통제, 보안기능.

Description

유에스비 장치의 동작을 통제하는 방법{Method of managing USB devices}
도 1은 종래의 USB 연결을 위한 블록도.
도 2는 본 발명의 일실시예에 따른 보안 콘트롤러가 부가된 유에스비 통제시스템에서 보안기능이 추가된 USB 연결을 위한 블록도.
도 3은 본 발명의 일실시예에 따른 보안 콘트롤러가 부가된 유에스비 통제시스템에 적용되는 보안 콘트롤러의 구조를 나타낸 블록도.
도 4는 본 발명의 일실시예에 따른 보안 콘트롤러가 부가된 유에스비 통제 시스템에서 유에스비 디바이스를 통제하는데 이용되는 디바이스 클래스를 설명하기 위해 나타낸 도면.
도 5는 본 발명의 일실시예에 따른 보안 콘트롤러가 부가된 유에스비 통제 시스템에서 유에스비 디바이스를 통제하는데 이용되는 디바이스 디스크립터를 설명하기 위해 나타낸 도면.
도 6은 본 발명의 일실시예에 따른 보안 콘트롤러가 부가된 유에스비 통제 시스템에서 유에스비 디바이스를 통제하는데 이용되는 인터페이스 클래스를 설명하기 위해 나타낸 도면.
도 7은 본 발명의 일실시예에 따른 호스트 측에 보안 콘트롤러 기능이 부가 된 USB 장치가 커넥터에 연결되어 동작하는 과정을 나타낸 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 호스트 200 : 장치
101 : 디바이스 드라이버 102, 203 : USB 시스템 소프트웨어
103, 204 : USB 호스트 콘트롤러 104, 205 : USB 장치 하드웨어
202 : 보안 콘트롤러 202-1 : CPU
202-2 : 타이머 202-3 : 플래시 메모리
202-4 : RAM 202-5 : 릴레이
본 발명은 유에스비 장치의 동작을 통제하는 방법에 관한 것으로서, 특히 더욱 상세하게는 USB 포트에 소형의 보안 콘트롤러를 장착하여 USB 장치와 USB 호스트 콘트롤러 사이의 동작을 소형의 보안 콘트롤러에 의해 USB 장치가 허용된 경우, 금지된 경우, 제한적으로 입출력을 허용하는 경우로 동작모드를 통제할 수 있고, 상기 보안 콘트롤러에 타이머가 내장되어 있어 USB 장치의 입출력을 제한적으로 제한하는 경우 해당 바이트에 의해 데이터를 전송하는데 소요시간을 계산하다가 밀리 초 간격으로 데이터 라인을 통제할 수 있으며, USB 장치가 허용되는 경우 상기 보안 콘트롤러에 내장되어 있는 릴레이를 동작시켜 USB 장치와 호스트 콘트롤러를 직 접 접속시킬 수 있고, 보안 콘트롤러를 사용하므로 유에스비 장치의 동작을 통제하는 장치를 구현하는데 비용이 절감되는 유에스비 장치의 동작을 통제하는 방법에 관한 것이다.
USB(Universal Serial Bus)는 CTI(computer telephone interface)라고 알려져 있는 컴퓨터와 전화기를 통합하기 위한 간단한 방식을 제공하기 위한 것으로서, 컴팩, DEC, IBM, 인텔, 마이크로소프트, NEC, Nortel의 7개 회사에 의해 개발된 보편적 버스 규격이라고 할 수 있다. 이 규약이 발전하여, PC에서 최대 127개의 주변 장치들을 쉽게 통합시키기 위한 개념으로 확장되어 USB1.0 규격으로 발표된 것이다. 이 규격에서 USB 기술에 대한 다음과 같은 주요한 목표를 갖게 된다.
우선 PC주변장치를 확장하여 사용하기 쉽게 한 것과, 저가격으로 12Mbps의 속도로 전송을 지원할 수 있는 것을 제시하고자 했으며, 음성과 압축된 비디오에 대한 실시간 데이터에 대한 완벽한 지원과, 혼합된 모드의 동기 데이터 전송과 비동기 메시지에 대한 규약상의 유연성 및 유용한 장치기술로의 통합성 그리고 다양한 PC구성과 형태요소의 이해 및 제품으로의 빠른 확산을 가능하게 하는 표준환경을 제공하고 PC성능을 증가시키는 새로운 장치의 개발 등이 그것이었다.
이러한 목표로 인하여 결국 USB는 master/slave 개념과 호스트와 각 주변장치 간의 직접적인 연결이나 허브를 통한 연결 하에서 작용하게 되었으며, 이는 기본적으로 시리얼버스 즉, 직렬버스 형태로 구성된다. 하지만 이는 우리가 PC에서 사용하는 기본적인 RS-232 시리얼 환경과 혼동되는 것이 아니며, PCI 버스를 대체하는 것도 아니라는 점에 유의해야 한다. 첫 목표였던 PC 주변장치로의 확장을 위 한 쉬운 사용은 USB의 중요한 특색 중의 하나로 컴퓨터의 케이스를 여는 수고를 덜어주는 진정한 플러그앤플레이 개념을 사용하는 호스트 PC에 주변장치를 쉽게 연결하거나 구성할 수 있게 된 것이다.
이로 인하여. 모든 연결되는 주변장치들은 호스트상의 직접적인 USB포트나 USB허브장치를 통해서 외부적으로 연결될 수 있으며, 이러한 주변장치들을 사용할 수 있도록 12Mbps의 Full speed와 1.5Mbps의 low speed를 가지게 되었다. 이러한 USB 규격과 관련하여, 1994년 7개의 USB Core 회사들이 뭉쳐, 1995년 WinHEC(Windows Hardware Engineering Conference)와 USB-IF(USB implementers Forum)를 결성하였다. 그 첫 성과로 1996년 1월15일 USB 1.0 규약이 발표되었으며, USB 첫 제품들이 컴덱스에 소개되기에 이르렀다. 그러던 것이 1.0 규약의 문제점들을 해결하고 실제 사용할 수 있는 주변장치들을 위해 1998년 9월 23일 USB 1.1 규약이 다시 발표되었다. 이러한 USB 1.1 규약의 발표로 인하여 비로소 USB포트를 지원하는 칩셋들이 인텔이나 VIA, SiS, ALi 등과 같은 회사에서 출시되었고, 마더보드에 기본적으로 장착되기 시작했다. 하지만, 이러한 하드웨어상의 진전을 MS사의 윈도우가 지원하지 못하여 여러 가지 문제점을 낳았고, 윈도우95의 OSR 2.1에서 비로소 제대로 지원이 되기 시작했다. 그러나 좀 더 현실적으로 보면 윈도우98에서부터 지원되었다고 보아야 하며, 윈도우98도 SE 버전에서 USB 주변장치들의 드라이버를 포함하는 주요한 버전업이 이루어져서 현재에 이르고 있다.
한편, USB를 지원하는 주변기기는 USB의 장점과 세계적인 표준으로 인하여 최근에는 다양한 종류가 생산되고 있다.
첫째는 USB 방식의 통신장치로서 모뎀이 대표적이다. 본래 모뎀은 ISA, PCI 방식을 사용하는데, 이러한 모뎀은 내장형이며, 외장형 방식의 모뎀으로는 시리얼 방식과 PCMCIA 방식이 있다. 최근에는 여기에 덧붙여 USB 방식이 대두되었다. USB 모뎀은 휴대가 간편하고 별도의 전원 어댑터가 필요 없다는 장점이 있고, 연결방법도 쉬우며, 그 외의 통신장치로는 USB 허브와 USB 케이블이 있다. 여기서 허브는 USB 포트를 여러 개로 확장시켜 주는 것이며, 케이블은 두 대의 PC를 연결해주는 장치이다. USB 케이블을 이용하면 별도의 랜카드 없이도 두 PC를 서로 연결하여 네트워킹을 할 수 있지만, 최근에는 USB 랜카드도 선을 보이고 있다.
둘째는 USB 입력장치인 키보드, 마우스, 조이스틱 등의 장치는 USB를 사용하는 장치로서 가장 이상적이다. 이들 장치는 별도로 드라이버를 설치하지 않아도 바로 연결만 하면 사용이 가능하다. 또한 키보드, 마우스의 경우에는 PS/2 포트에 연결된 키보드, 마우스와 함께 사용이 가능하다. 또 조이스틱의 경우에는 여러 개의 조이스틱을 연결해서도 사용할 수 있다. 본래 조이스틱은 사운드 카드에서 제공되는 조이스틱 포트에 연결하며 물론 포트가 한 개이기 때문에 한 대의 조이스틱만 연결할 수 있다. 그러나 USB 조이스틱을 사용하면 여러 개를 동시에 연결해 사용할 수 있다.
셋째는 USB 저장장치로서, 빠른 USB의 전송 속도로 인하여 USB 방식의 저장장치도 늘어가고 있다. CD-R, 하드디스크, ZIP 드라이브, 슈퍼디스크, 스마트 미디어 등이 USB 방식으로 제공되고 있다. 단 하드디스크의 경우에는 USB 전용 하드디스크가 출시되는 것이 아니라 EIDE 하드디스크를 외장형 하드디스크 케이스에 장착 하여 USB로 변환시켜주는 장치가 사용되고 있다. CD-R은 USB의 전송속도 한계로 인하여 4배속이 최대 한계이나, 상당히 안정적으로 평가를 받고 있다. CD-R을 휴대하며 여러 컴퓨터에 장착하면서 사용하는 것이 타당하며, ZIP 등의 저장매체는 USB로서는 훌륭한 선택이지만 가격이 다른 인터페이스에 비해 비싸다는 단점을 가진다.
넷째는 USB를 지원하는 멀티미디어 기기로서 TV 수신장치, 스피커, 동영상 캡쳐 카드 등이 있다. 사운드 카드도 USB 인터페이스로 출시되고 있다. 이러한 장치들의 장점은 음질이나 화질의 손실이 없다는 점이다. PCI 사운드카드의 경우에는 PC 내부의 여러 장치들로 인하여 노이즈가 생겨 음질이 떨어진다. 반면 USB 사운드카드는 외부에서 케이블로 연결되므로 노이즈와 음질 저하가 없으며, USB 방식의 라디오나 TV 수신카드도 역시 화질이나 음질 저하가 없다. 이러한 장치들은 주로 노트북용으로 적합하며 휴대하면서 사용하기에도 적당하다.
다양한 주변기기들과 쉽고 편리하게 통신할 수 있는 USB 규격이 널리 사용됨에 따라 기업의 입장에서는 정보 보안의 문제가 심각하게 대두 되었다. 대용량 플래시 메모리 가격의 급격한 하락으로 인하여 일회용 라이터의 크기이면서도 용량은 수백 메가 바이트에 이르는 외장 USB 드라이브와 USB 포트에 연결될 수 있으면서 플래시 메모리를 내장한 디지털 카메라 및 휴대용 전화기가 널리 보급됨으로 인하여 거의 모든 PC에 장착된 USB 포트를 통한 기업 내부 정보의 불법 절취가 큰 문제로 대두 되고 있는 것이다.
따라서 USB 포트에 소형의 보안 콘트롤러를 장착하여 USB 장치와 USB 호스트 콘트롤러 사이의 동작을 소형의 보안 콘트롤러에 의해 USB 장치가 허용된 경우, 금 지된 경우, 제한적으로 입출력을 허용하는 경우로 동작모드를 통제할 수 있고, USB 장치의 입출력을 제한적으로 제한하는 경우 해당 바이트에 의해 데이터를 전송하는데 소요시간을 계산하다가 밀리 초 간격으로 데이터 라인을 통제할 수 있으며, USB 장치가 허용되는 경우 상기 보안 콘트롤러에 내장되어 있는 릴레이를 동작시켜 USB 장치와 호스트 콘트롤러를 직접 접속시킬 수 있는 통제하는 방법의 적용이 현재 절실히 요구되고 있는 실정이다.
따라서, 본 발명의 목적은 상기와 같은 문제점을 해결하기 위해 안출된 것으로서, USB 포트에 소형의 보안 콘트롤러를 장착하여 USB 장치와 USB 호스트 콘트롤러 사이의 동작을 소형의 보안 콘트롤러에 의해 USB 장치가 허용된 경우, 금지된 경우, 제한적으로 입출력을 허용하는 경우로 동작모드를 통제할 수 있는 유에스비 장치의 동작을 통제하는 방법을 제공하는데 있다.
다른 본 발명의 목적은 상기 보안 콘트롤러에 타이머가 내장되어 있어 USB 장치의 입출력을 제한적으로 제한하는 경우 해당 바이트에 의해 데이터를 전송하는데 소요시간을 계산하다가 밀리 초 간격으로 데이터 라인을 통제할 수 있는 유에스비 장치의 동작을 통제하는 방법을 제공하는데 있다.
또 다른 본 발명의 목적은 USB 장치가 허용되는 경우 상기 보안 콘트롤러에 내장되어 있는 릴레이를 동작시켜 USB 장치와 호스트 콘트롤러를 직접 접속시킬 수 있는 유에스비 장치의 동작을 통제하는 방법을 제공하는데 있다.
또 다른 본 발명의 목적은 보안 콘트롤러를 사용하므로 유에스비 장치의 동작을 통제하는 장치를 구현하는데 비용이 절감되는 유에스비 장치의 동작을 통제하는 방법을 제공하는데 있다.
상기한 본 발명의 목적을 달성하기 위해서 유에스비 장치의 동작을 통제하는 방법은 USB 장치가 커넥터에 삽입되면 소형 보안 콘트롤러가Get_Descriptor(device) 명령과 Get_Descriptor(configuration) 명령을 발령하여 USB 장치의 제조업체ID, 제품ID 및 인터페이스클래스 ID를 알아내는 단계(a)와; 상기 정보와 플래시 메모리에 저장되어 있는 금지 대상 USB 장치를 대조하여 USB 장치가 허용된 경우, 금지된 경우, 제한적으로 입출력을 허용하는 경우 중에서 어느 경우에 해당되는지를 결정하는 단계(b)와; 상기 USB 장치가 허용된 경우에는 소형의 보안 콘트롤러가 RESET 명령을 발령하여 접속되어있는 USB 장치를 처음 상태로 되돌리고 릴레이를 동작시켜 USB 장치와 호스트 콘트롤러를 직접 접속하도록 하고, 상기 USB 장치가 금지된 경우에는 보안 콘트롤러가 USB 장치에 RESET 명령을 내리고, 호스트에 STATUS = ‘STALL’ 명령을 전달하여 상기 장치와접속이 불가능하다는 사실을 알려주며, 상기 USB 장치가 제한된 입출력을 허용하는 경우에는 데이터 라인에 데이터가 실렸을 때 보안 콘트롤러가 자체 타이머를 통해 해당 바이트에 의해 데이터를 전송하는데 소요시간을 계산하고 해당시간이 경과되면 데이터선로를 차단하고 호스트에는 STATUS = ‘STALL’ 신호를 보내고 USB 장치에는 RESET 명령을 발령하여 접속을 차단하는 단계(c);를 포함함을 특징으로 한다.
상기 본 발명에 있어서, 상기 (c)단계의 USB 장치가 허용된 경우 USB 장치와 호스트 콘트롤러를 직접 접속한 후 호스트 콘트롤러가 Get_Descriptor(device) 및 Get_Descriptor(configuration)명령을 발령하여 정상적인 동작을 수행하는 단계를 더 포함함을 특징으로 한다.
상기 본 발명에 있어서, 상기 (c)단계의 USB 장치가 제한된 입출력을 허용하는 경우 해당 바이트에 따른 데이터의 전송속도는 USB 규약에 따라 12M비트/초로 정해져 있는 것을 환산하여 계산되는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대해서 상세하게 설명한다.
도 1은 종래의 USB 연결을 위한 블록도이고, 도 2는 본 발명의 일실시예에 따른 보안 콘트롤러가 부가된 유에스비 통제시스템에서 보안기능이 추가된 USB 연결을 위한 블록도이며, 도 3은 본 발명의 일실시예에 따른 보안 콘트롤러가 부가된 유에스비 통제시스템에 적용되는 보안 콘트롤러의 구조를 나타낸 블록도이고, 도 4는 본 발명의 일실시예에 따른 보안 콘트롤러가 부가된 유에스비 통제 시스템에서 유에스비 디바이스를 통제하는데 이용되는 디바이스 클래스를 설명하기 위해 나타낸 도면이며, 도 5는 본 발명의 일실시예에 따른 보안 콘트롤러가 부가된 유에스비 통제 시스템에서 유에스비 디바이스를 통제하는데 이용되는 디바이스 디스크립터를 설명하기 위해 나타낸 도면이고, 도 6은 본 발명의 일실시예에 따른 보안 콘트롤러가 부가된 유에스비 통제 시스템에서 유에스비 디바이스를 통제하는데 이용되는 인 터페이스 클래스를 설명하기 위해 나타낸 도면이다.
도 1 내지 도 6에 도시한 바와 같이, 도 1에는 일반적인 USB를 통한 호스트와 장치 간의 연결의 예를 도시하였다. 상기 모든 USB 장치는 USB 규약에 정해진 바에 따라 호스트와 일정한 절차를 따라 통신하도록 되어 있다. USB 규약이 다른 장치와 다른 점은 기존의 장치를 구동하는 디바이스 드라이버들은 장치를 직접 통제하지만 USB 규약에 따르는 디바이스 드라이버(101)는 장치를 직접 통제하지 못하고 항상 USB 시스템 소프트웨어(102)와 USB 호스트 콘트롤러(103)를 통해서만 USB장치(104)와 교신하고 원하는 작동을 명령할 수 있다. 그렇기 때문에 본 발명에서는 USB 시스템 소프트웨어의 상위 레이어에 도 2에 도시한 바와 같이, 보안 콘트롤러(202)를 두어 USB 장치의 접속과 작동을 통제할 수 있게 하였다.
도 3에 도시한 바와 같이, 상기 보안 콘트롤러(202)는 USB 시스템 소프트웨어(203) 상단에 존재하면서 호스트 측과 교신하는 객체이다. 상기 보안 콘트롤러는 소프트웨어로 구현될 수도 있고, 하드웨어로 구현될 수도 있다. 도 3에는 보안 콘트롤러의 구조가 도시되어 있는데, 상기 보안 콘트롤러는 자체 CPU, 타이머, 릴레이, RAM 및 플래시 메모리로 구성되어 있다. 상기 CPU(202-1)는 디스크립터 정보를 취득하고 이에 따라 USB 장치의 통제를 실행하는 역할을 수행하고, 상기 타이머(202-2)는 밀리 초 간격으로 데이터 라인을 통제할 수 있게 하며, 상기 플래시 메모리(202-3)는 허용되는 장치와 제한적으로 동작이 허용되는 장치의 리스트를 저장하는 기능과 이 리스트를 수정하는 기능을 보안 관리자에만 허용하여 일반 사용자가 임의로 이 데이터를 수정하지 못하도록 하여 전사적으로 정보 보안의 일관성과 유연성을 가지도록 하는 역할을 수행한다. 상기 RAM(202-4)은 임의의 허용 메모리이고, 상기 릴레이(202-5)는 USB 장치(205)와 호스트 콘트롤러(204)를 직접 접속하도록 한다.
도 4에 도시한 바와 같이, USB규약은 유사한 기능을 가지는 여러 종류의 USB장치들을 클래스로 구분하고 있는데, USB 규약을 작성한 USB implementers forum(이하 USB IF)에서는 여러 종류의 장치들을 7개의 클래스로 나누었으며, 상기 내용을 도 4에 표시하였다. USB 규약에 따르면 사전에 USB IF에 의해 지정된 클래스를 따르지 않는 장치는 호스트 측에서 인식을 할 수 없어서 호환성이 없기 때문에 USB장치를 제조하는 제조업체에서는 필히 USB 규약에 맞는 클래스를 정해서 자사가 제조하는 USB장치 내에 기록해 두었다가 호스트가 USB장치의 디바이스 정보를 요구할 때, 클래스 정보를 제공할 수 있어야만 한다.
또한 Usb 장치는 내부 메모리에 디바이스 디스크립터와 컨피규레이션 디스크립터를 가지도록 되어 있는데, 이 구조는 도 5와 도 6에 도시하였다. 도 5에 도시한 바와 같이, 디바이스 디스크립터의 3번째 필드가 bcdUSB이다. 상기 bcdUSBUSB에서 USB 장치가 지원하는 USB 스펙 번호를 식별할 수 있기 때문에 스펙 번호에 의해 데이터의 전송속도를 알 수 있다. 디바이스 디스크립터의 4번째 필드가 USB 클래스 코드이다. 상기에 USB 장치가 속하는 클래스를 기록해놓고 있다. 또한 8번째 구성요소가 제조업자의 고유번호인 벤더ID이고, 9번째 구성요소가 제품의 식별번호인 제품ID이다. 여러 종류의 장치를 7종류의 클래스로 분류한 것만 가지고는 이 장치가 구체적으로 어떤 기능을 하며, 구조가 어떻게 되어 있는지 알 수 없기 때문에 도 5에 도시된 것과 같은 컨피규레이션 디스크립터 역시 usb장치의 내부 메모리에 수록되도록 usb 규약이 작성되어 있다. 컨피규레이션 디스크립터는 인터페이스 디스크립터와 엔드포인트 디스트립터를 모두 가지며 이들 간의 관계는 도 6에 도시하였다. 그러므로 도 5의 USB 클래스 코드, 벤더ID, 제품ID를 가지고 USB 장치가 도 6의 어느 장치와 연결되어 있는지를 프로그램을 통해 알 수 있는 것이다.
또한 인터페이스 디스크립터에는 상기 장치가 어떤 일을 하는 종류인지 인터페이스 클래스에 기록되어 있어서 상기 장치가 어떤 종류인지는 도 6인 인터페이스 클래스 도면을 보면 알 수 있다. 예를 들어 인터페이스 클래스 1은 오디오 장치이고, 7은 프린터 장치임을 알 수 있는 것이다.
도 7은 본 발명의 일실시예에 따른 호스트 측에 보안 콘트롤러 기능이 부가된 USB 장치가 커넥터에 연결되어 동작하는 과정을 나타낸 흐름도이다.
도 7에 도시한 바와 같이, USB 장치가 커넥터에 삽입되면 소형 보안 콘트롤러(202)는 호스트 콘트롤러처럼 행동하는데, 이를 더욱 자세하게 설명하면, Get_Descriptor(device) 명령과 Get_Descriptor(configuration) 명령을 발령하여 USB 장치의 제조업체ID, 제품ID 및 인터페이스클래스 ID를 알아낸다(S1). 상기 정보와 플래시 메모리에 저장되어 있는 금지 대상 USB장치를 대조하여 USB 장치가 허용된 경우, 금지된 경우, 제한적으로 입출력을 허용하는 경우 중에서 어느 경우인지를 결정한다(S2).
먼저 허용된 장치의 경우(S2-1)를 살펴보면, 만일 접속된 USB장치가 금지 대상 장치가 아니라면 소형의 보안 콘트롤러(202)는 RESET 명령을 발령하여 접속되어있는 USB 장치를 처음 상태로 되돌리고 릴레이(202-5)를 동작시켜 USB 장치(205)와 호스트 콘트롤러(204)를 직접 접속하도록 한다(S2-1-1). 이어서 진짜 호스트 콘트롤러가 Get_Descriptor(device) 및 Get_Descriptor(configuration)명령을 발령하여 정상적인 동작이 가능하도록 한다(S2-1-2).
또한 금지된 장치의 경우(S2-2)를 살펴보면, 접속되어 있는 USB장치가 예를 들어 인터페이스클래스 번호 7번 대용량 저장장치라면 소형의 보안 콘트롤러는 USB 장치에 RESET 명령을 내리고, 호스트 측에는 STATUS = 'STALL' 명령을 전달하여 이 장치와는 접속이 불가능하다는 사실을 알려준다(S2-2-1).
또한 제한된 입출력을 허용하는 경우(S2-3)를 살펴보면, 접속이 금지된 장치라 하더라도 공인인증서와 같은 특별한 응용을 위하여 제한된 형태의 입출력을 제공해야만 하는 경우가 있기 때문에 일정한 크기, 예를 들어 공인인증서의 경우라면 4K바이트 크기의 데이터의 입출력을 허용해야만 한다. 상기의 경우에는 Get_Descriptor(device) 명령에 응답하여 도 5에 표시된 바와 같이, USB 장치가 전송한 device 디스크립터의 3번째 필드인 bcdUSB에서 상기 장치가 지원하는 USB 스펙 번호를 식별할 수 있기 때문에 스펙 번호에 의해 데이터의 전송속도를 알 수 있다. 예를 들어 장치가 USB 2.0을 지원하는 장치이면서 풀스피드 모드를 지원한다면 USB규약에 따라 데이터 전송 속도는 12M비트/초로 정해져 있기 때문에 이를 바이트로 환산하여 계산하면 4K바이트의 데이터를 전송하는데 소요되는 시간은 31.25 밀리 초(msec)이 걸리게 된다. 따라서 소형의 보안 콘트롤러(202)는 자체 타이머 (202-2)에 의해 밀리 초 간격으로 데이터 라인을 통제할 수 있게 된다. 보다 자세하게는 데이터 라인에 데이터가 실렸을 경우 소형의 보안 콘트롤러(202)는 자체 타이머를 통해 경과 시간을 계산하다가 32 밀리 초가 넘으면 데이터 선로를 차단하고(S2-3-1) 호스트 측에는 STATUS = 'STALL' 신호를 보내고 장치 측에는 RESET 명령을 발령하여 접속을 차단한다(S2-3-2). 또한 어떤 경우에는 10K바이트의 입출력을 허용해야만 하는 수도 있어서 이런 경우에는 78.123 밀리 초가 한계 값이 되므로 79 밀리 초를 기준으로 데이터의 입출력을 차단한다.
본 발명은 상기한 실시예에 한정되지 않고, 본 발명의 기술적 사상을 벗어나 지 않는 범위 내에서 다양하게 수정 및 변경 실시할 수 있음은 이 기술분야에서 통상의 지식을 가진 자라면 누구나 이해할 수 있을 것이다.
이상에서 설명한 바와 같이, 본 발명인 유에스비 장치의 동작을 통제하는 방법은 다음과 같은 효과를 가진다.
첫째, 본 발명은 USB 포트에 소형의 보안 콘트롤러를 장착하여 USB 장치와 USB 호스트 콘트롤러 사이의 동작을 소형의 보안 콘트롤러에 의해 USB 장치가 허용된 경우, 금지된 경우, 제한적으로 입출력을 허용하는 경우로 동작모드를 통제할 수 있다.
둘째, 본 발명은 상기 보안 콘트롤러에 타이머가 내장되어 있어 USB 장치의 입출력을 제한적으로 제한하는 경우 해당 바이트에 의해 데이터를 전송하는데 소요시간을 계산하다가 밀리 초 간격으로 데이터 라인을 통제할 수 있다.
셋째, 본 발명은 USB 장치가 허용되는 경우 상기 보안 콘트롤러에 내장되어 있는 릴레이를 동작시켜 USB 장치와 호스트 콘트롤러를 직접 접속시킬 수 있다.
넷째, 본 발명은 보안 콘트롤러를 사용하므로 유에스비 장치의 동작을 통제하는 장치를 구현하는데 비용이 절감된다.

Claims (3)

  1. 유에스비 장치의 동작을 통제하는 방법에 있어서,
    USB 장치가 커넥터에 삽입되면 소형 보안 콘트롤러가 Get_Descriptor(device) 명령과 Get_Descriptor(configuration) 명령을 발령하여 USB 장치의 제조업체ID, 제품ID 및 인터페이스클래스 ID를 알아내는 단계(a)와;
    상기 정보와플래시 메모리에 저장되어 있는 금지 대상 USB 장치를 대조하여 USB 장치가 허용된 경우, 금지된 경우, 제한적으로 입출력을 허용하는 경우 중에서 어느 경우에 해당되는지를 결정하는 단계(b)와;
    상기 USB 장치가 허용된 경우에는 소형의 보안 콘트롤러가 RESET 명령을 발령하여 접속되어있는 USB 장치를 처음 상태로 되돌리고 릴레이를 동작시켜 USB 장치와 호스트 콘트롤러를 직접 접속하도록 하고, 상기 USB 장치가 금지된 경우에는 보안 콘트롤러가 USB 장치에 RESET 명령을 내리고, 호스트에 STATUS = ‘STALL’ 명령을 전달하여 상기 장치와접속이 불가능하다는 사실을 알려주며, 상기 USB 장치가 제한된 입출력을 허용하는 경우에는 데이터 라인에 데이터가 실렸을 때 보안 콘트롤러가 자체 타이머를 통해 해당 바이트에 의해 데이터를 전송하는데 소요시간을 계산하고 해당시간이 경과되면 데이터선로를 차단하고 호스트에는 STATUS = ‘STALL’ 신호를 보내고 USB 장치에는 RESET 명령을 발령하여 접속을 차단하는 단계(c);를 포함함을 특징으로 하는 유에스비 장치의 동작을 통제하는 방법.
  2. 제 1항에 있어서,
    상기 (c)단계의 USB 장치가 허용된 경우 USB 장치와 호스트 콘트롤러를 직접 접속한 후 호스트 콘트롤러가 Get_Descriptor(device) 및 Get_Descriptor(configuration)명령을 발령하여 정상적인 동작을 수행하는 단계를 더 포함함을 특징으로 하는 유에스비 장치의 동작을 통제하는 방법.
  3. 제 1항에 있어서,
    상기 (c)단계의 USB 장치가 제한된 입출력을 허용하는 경우 해당 바이트에 따른 데이터의 전송속도는 USB 규약에 따라 12M비트/초로 정해져 있는 것을 환산하여 계산되는 것을 특징으로 하는 유에스비 장치의 동작을 통제하는 방법.
KR1020050072083A 2005-08-08 2005-08-08 유에스비 장치의 동작을 통제하는 방법 KR100758219B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050072083A KR100758219B1 (ko) 2005-08-08 2005-08-08 유에스비 장치의 동작을 통제하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050072083A KR100758219B1 (ko) 2005-08-08 2005-08-08 유에스비 장치의 동작을 통제하는 방법

Publications (2)

Publication Number Publication Date
KR20070017609A KR20070017609A (ko) 2007-02-13
KR100758219B1 true KR100758219B1 (ko) 2007-09-12

Family

ID=41628986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050072083A KR100758219B1 (ko) 2005-08-08 2005-08-08 유에스비 장치의 동작을 통제하는 방법

Country Status (1)

Country Link
KR (1) KR100758219B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080250250A1 (en) * 2007-04-04 2008-10-09 Microsoft Corporation Method and Apparatus for Using USB Flash Devices and Other Portable Storage as a Means to Access Prepaid Computing
FR2969788B1 (fr) * 2010-12-27 2013-02-08 Electricite De France Procede et dispositif de controle d'acces a un systeme informatique
KR101349807B1 (ko) * 2012-08-24 2014-01-09 주식회사 포멀웍스 이동식 저장매체 보안시스템 및 그 방법
EP3997837A4 (en) * 2019-08-23 2023-03-29 Siemens Aktiengesellschaft METHOD AND SYSTEM FOR MANAGING SECURITY ON A MOBILE STORAGE DEVICE

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003186819A (ja) 2001-12-17 2003-07-04 Ricoh Co Ltd セキュリティ機能付きusb機器を備えたコンピュータシステム
KR20050039528A (ko) * 2003-10-23 2005-04-29 마이크로소프트 코포레이션 리소스 획득 방법 및 컴퓨터 판독 가능 매체
KR20050049973A (ko) * 2003-11-24 2005-05-27 삼성전자주식회사 이동식 저장 장치의 저장 제어 방법 및 이를 이용한정보단말

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003186819A (ja) 2001-12-17 2003-07-04 Ricoh Co Ltd セキュリティ機能付きusb機器を備えたコンピュータシステム
KR20050039528A (ko) * 2003-10-23 2005-04-29 마이크로소프트 코포레이션 리소스 획득 방법 및 컴퓨터 판독 가능 매체
KR20050049973A (ko) * 2003-11-24 2005-05-27 삼성전자주식회사 이동식 저장 장치의 저장 제어 방법 및 이를 이용한정보단말

Also Published As

Publication number Publication date
KR20070017609A (ko) 2007-02-13

Similar Documents

Publication Publication Date Title
US10445258B1 (en) Method for creation of device drivers and device objects for peripheral devices
US7921244B2 (en) Data sharing and transfer systems and methods
KR101464571B1 (ko) 가상 usb 복합 디바이스 열거
CN100412836C (zh) 利用外部装置通过通用串行总线控制主机的方法及其系统
US7433990B2 (en) Transferring system information via universal serial bus (USB)
JP3497834B2 (ja) ルートリピータ、usb通信システム、usb通信制御方法
US20080276012A1 (en) Driver Loading via a PnP Device
WO2011003257A1 (zh) 通用串行总线数据卡自启动方法和系统
JP2003132305A (ja) メモリカードを制御するための装置および方法
US20080126593A1 (en) Expansion module for a USB port and a method thereof
KR100758219B1 (ko) 유에스비 장치의 동작을 통제하는 방법
US20100180080A1 (en) External storage device having a self-contained security function
KR100705381B1 (ko) 유에스비 호스트에 보안 콘트롤러를 부가하여 유에스비장치를 통제하는 방법
US7725626B2 (en) Multi-media KVM switch
US7184372B2 (en) Apparatus and method for ejecting/loading tray of optical disk player
CN101226424B (zh) 多媒体电子式切换器
JP6693417B2 (ja) リーダライタ装置、情報処理装置、およびデータ転送制御方法、並びにプログラム
TW202205101A (zh) 具自動更新韌體功能的usb集線裝置及具有該usb集線裝置的主機系統
KR20230145767A (ko) 광 디스크 드라이브의 인터페이스 전환 방법
CN113971146B (zh) 具自动更新固件功能的usb集线装置及具有该usb集线装置的主机系统
KR101592591B1 (ko) Usb 호스트 및 usb 디바이스 간의 전환이 가능한 멀티미디어 시스템
KR100741735B1 (ko) 주변장치 제어 방법 및 그 시스템
TWI691892B (zh) 音訊裝置重導向系統之客戶端及相關音訊裝置重導向方法
KR20100027921A (ko) 유에스비 디바이스 및 그 작동방법
JP2003091502A (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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120827

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131004

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140905

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151106

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160906

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170906

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee