KR102039113B1 - 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법 - Google Patents

호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102039113B1
KR102039113B1 KR1020147003085A KR20147003085A KR102039113B1 KR 102039113 B1 KR102039113 B1 KR 102039113B1 KR 1020147003085 A KR1020147003085 A KR 1020147003085A KR 20147003085 A KR20147003085 A KR 20147003085A KR 102039113 B1 KR102039113 B1 KR 102039113B1
Authority
KR
South Korea
Prior art keywords
data
host
peripheral
security
procedure
Prior art date
Application number
KR1020147003085A
Other languages
English (en)
Other versions
KR20140048238A (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 KR20140048238A publication Critical patent/KR20140048238A/ko
Application granted granted Critical
Publication of KR102039113B1 publication Critical patent/KR102039113B1/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
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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

Abstract

호스트 컴퓨팅 디바이스와 통신 인터페이스를 통하여 호스트 컴퓨팅 디바이스와 커플링된 주변기기 중 적어도 하나의 보안을 향상시키는 방법. 데이터는 주변기기 또는 호스트 컴퓨팅 디바이스로부터 투명하게 수신되며, 수신된 데이터는 저장된다. 저장된 데이터는 보안문제와 연계된 환경을 검출하기 위하여 분석된다. 만약 이와 같은 환경이 검출되지 않으면, 데이터는 다른 주변기기 또는 호스트로 투명하게 전달된다. 그러나, 만약 보안에 대한 위험과 관련된 환경이 검출되면, 규정에 의해 정의 된 보안절차가 수행된다. 관련된 장치와 기타 방법들 및 장치들도 제공된다.

Description

호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법{APPARATUS AND METHOD FOR ENHANCING SECURITY OF DATA ON A HOST COMPUTING DEVICE AND A PERIPHERAL DEVICE}
본 발명은 호스트 컴퓨팅 디바이스와 주변기기 중 적어도 하나 이상의 보안을 강화하기 위한 장치와 방법에 관한 것으로서, 보다 구체적으로는 이러한 디바이스들이 통신 인터페이스를 통하여 통신을 하고 있을 경우에 관한 것이다.
버스 네트워크 토폴로지는 두 명 또는 그 이상의 고객들이 버스라고 부르는 공유된 통신선로를 통해 연결되는 컴퓨터 네트워크 아키텍처이다. 버스는 직렬 또는 병렬 신호표시와 주소 및 데이터 전송을 사용할 수 있다. 버스의 사례로는 범용직렬버스 (이하 USB로 칭함) 와 IEEE 1394('FireWire'로 통칭)를 포함한다. 몇몇 경우에, 주어진 버스를 개별 인터페이스를 경유하여 몇몇 고객들로 '분기(fan out)'하기 위해 '허브'가 사용된다. 이와 같은 허브는 컴퓨터 시스템 사용자들로 하여금 단일 컴퓨터 시스템에 키보드, 마우스 및 회전식 또는 반도체 대용량 스토리지 디바이스들(자기 및 반도체 '디스크 드라이브')과 같은 몇몇 디바이스들을 부착할 수 있도록 하는데 일반적으로 사용된다. 몇몇 경우에, 허브는 컴퓨터 시스템의 외부에 있을 수 있으며, 다른 경우에 허브는, 컴퓨터 시스템의 마더보드 위와 같이, 내부에 있을 수 있다.
버스 네트워크 토폴로지에서, 허브를 경유하는 식으로, 버스에 연결된 한 명 이상의 고객이 버스의 대역폭을 공유한다. 뿐만 아니라, 한 명 이상의 고객이 버스로 보내진 명령어, 주소 및 데이터에 접근이 가능하다. 각 고객은 하나의 주소가 지정되며, 이들 버스에 대해 정의된 프로토콜은 고객들이 해당 고객들에게 보내지 않은 명령이나 데이터를 무시하도록 명시한다.
그러나, 종래 기술의 버스 네트워크 토폴로지에서는, 불량고객이 버스에 의해 전송되는 명령어, 주소 및 데이터를 읽을 수 도 있다 (하지만 그것은 고객 자신에 대한 것이 아님). 이러한 불량고객은, 예를 들어, 이렇게 엿본 데이터의 복사본을 기억장치에 저장하고 후에 저장된 데이터를, 버스가 설치된 시스템의 주인이 모르는 사이에, 제 3자가 이용할 수 있게 한다. 그러므로, 이러한 불량고객은 시스템의 주인에게 잠재적인 보안 문제를 제공한다.
예를 들어, 가상적인 공격자가 일반적인 사용자들에게 흔한 USB 대용량 스토리지 디바이스('엄지드라이브')로 보이는 USB을 제공할 수 있다. 처음 컴퓨터 시스템에 연결이 되는 경우, 그 디바이스는 디바이스를 조정하기 위하여 디바이스 드라이버를 자동으로 설치할 수 있다. 수많은 이와 같은 디바이스들은 사용자들에 의해 의구심을 일으키지 않은 채 디바이스 드라이버를 자동으로 설치한다. 불량 디바이스는 일반적인 USB 대용량 스토리지 디바이스 와 일치하는 기능들을 수행할 수 있으며, 사용자들에게는 기대하는 바와 같이 동작하는 것처럼 보인다.
그러나, 그 디바이스는 사용자에게 개방되지 않은 추가적인 기억장치 및 회로 또는 프로그래밍을 또한 포함할 수 있다. 디바이스가 USB에 연결되어 있는 동안에 디바이스는, 디바이스로 지정되지 않은, USB가 보유하는 선별된 데이터의 복사본을 추가적인 기억장치에 저장할 수 있다. 이 데이터 중 일부는 사용자에 관한 이름, 생일, 은행 계좌번호 또는 비밀번호 같은 중요정보 또는 개인적으로 식별 가능한 정보와 같이 민감할 수 있다. 후에, 디바이스 드라이버가 컴퓨터 시스템이 인터넷에 연결되었다는 것을 감지하면, 디바이스 또는 디바이스 드라이버는 인터넷을 경유해서 남모르게 획득한 데이터를 공격자에게 보낼 수 있다. 또 다른 불량 디바이스는 무선송신기를 포함할 수 있으며, 디바이스는 무선신호를 통하여 데이터를 공격자에게 보낼 수 있다.
그러므로, 종래 기술의 버스 네트워크 토폴로지들은 데이터가 제 3자에 의해 남모르게 획득될 수 있는 공격에 취약하다.
수많은 종래 기술에 의한 버스 아키텍처에 있어서 데이터는 호스트로부터 버스 상에 있는 전부 또는 몇몇 주변기기들로 전파된다. 이러한 경우에, 주변기기는 자신에게 지정된 데이터에 대해서만 응답해야 한다. 그러나, 언급한 바와 같이, 불량한 주변기기들은 예를 들어 그 주변기기에 지정되지 않은 데이터를 복사함으로써 응답할 수 있다. 이들 환경은 보안에 대한 위험을 제기할 수 있으며, 데이터가 의도한 주변기기 또는 주변기기들에 한해서 데이터를 전송하거나 또는 그렇지 않으면 호스트와 어떤 주변기기들 간의 데이터의 흐름을 제어하거나 감시하는 것이 유용할 수 있다. 본 발명의 실시예들은 이와 같은 전송, 제어 및/또는 감시를 수행한다. 그리하여, 본 발명의 실시예들은 데이터가 의도되지 않은 버스 주변기기들에게 제공되는 것을 방지함으로써 종래 기술에 의해 제기된 문제를 해결한다.
본 발명의 제1 실시예에서는 호스트 컴퓨팅 디바이스와 주변기기 중 적어도 하나 이상의 보안을 강화하기 위한 방법이 제공된다. 호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 커플링(coupling)된다. 본 방법은 주변기기와 호스트 컴퓨팅 디바이스 중 하나로부터 투명하게 데이터를 수신하는 것과 자동으로 수신된 데이터를 저장하는 것과, 보안문제를 야기하는 환경을 식별하기 위하여 저장된 데이터를 자동으로 분석하는 것을 포함한다. 본 방법은 만약 분석에 의하여 이와 같은 환경이 식별되지 않을 경우에, 데이터를 다른 주변기기나 호스트로 자동적으로 투명하게 전달하는 것을 더 포함한다. 본 방법은 만약 분석에 의하여 이와 같은 환경이 식별될 경우에 규정에 의하여 정의된 보안절차를 자동으로 수행하는 것을 포함한다. 본 방법은 기기간 통신 중단을 자동으로 방지하는 보호절차를 실행하는 것을 선택적으로 더 포함할 수 있다.
호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 분리가능하게 커플링될 수 있다.
본 발명의 다른 실시예에서는 호스트 컴퓨팅 디바이스와 주변기기 중 하나 이상의 보안을 향상시키는 방법이 제공된다. 호스트 컴퓨팅 디바이스는 주변기기와 통신 인터페이스를 통해 커플링된다. 본 방법은 주변기기와 호스트 컴퓨팅 디바이스의 하나로부터 데이터를 수신하는 것, 수신된 데이터를 자동으로 저장하는 것, 디바이스간 통신 단절을 자동으로 배제하는 보호절차를 수행하는 것, 및 보안에 위험을 야기하는 환경을 식별하기 위해 저장된 데이터를 자동으로 분석하는 것을 포함한다. 본 방법은 분석이 이러한 환경을 식별하지 않은 경우에 데이터를 주변기기와 호스트로 자동으로 데이터를 전달하는 것을 더 포함한다. 본 방법은 만약 이러한 환경이 식별된 경우 규정에 정의된 보안절차를 자동으로 수행하는 것을 더 포함한다. 대안으로, 또는 추가하여, 보호절차는 데이터 전달 이외에도 자동으로 신호를 송신하는 것을 포함한다. 더 구체적으로 연관된 실시예에서, 상기 신호는 (흔히 'NAK' 또는 'NACK'로 지칭하는) 신호를 포함할 수 있다.
앞의 문단에 있는 실시예에 대하여, 분석은 보안에 대한 위험을 야기하는 환경을 식별하기 위해 데이터베이스에 대해 수신된 데이터를 검사하는 분석절차를 실행하는 것을 선택적으로 포함한다. 또한 선택적으로, 또 하나의 실시예는 보안에 위험을 야기하는 추가적인 환경을 포함하기 위하여 데이터베이스를 갱신토록 하는 것을 더 포함한다. 그 대안으로 또는 추가하여, 분석 절차는 해쉬(hash) 알고리즘으로 데이터베이스에 접속하는 것을 포함한다. 호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 분리가능하게 커플링될 수 있다.
관련된 실시예에서 보안 절차는 주변기기로 보내지는 데이터를 암호화 하는 것을 포함한다. 보안 절차는 선택적으로 다음의 하나 또는 그 이상을 포함한다: 규정에 따라 호스트와 주변기기 사이의 통신을 자동으로 제한 하는 것, 규정에 따라 데이터를 자동으로 수정하는 것, 규정에 따라 호스트와 주변기기 간의 데이터 전송을 자동으로 지연시키는 것. 또한 선택적으로, 보안 절차는 적어도 데이터의 일부에 대한 로그 사본을 저장하는 것을 포함하는 보조 절차를 실행한다. 보안 절차는 선택적으로 사용자에게 보조 통신 인터페이스를 통해 통보하는 것을 포함하는 보조 절차를 실행한다. 규정은 선택적으로 주변기기의 본성에 근거하여 선정한다. 또 다른 실시예에 있어서 규정은 동적이며 호스트 디바이스에 의해 제공되는 입력에 근거하여 선정된다. 또 다른 실시예에 있어서 규정은 동적이며 사용자에 의해 제공되는 입력에 근거하여 선정된다. 또 다른 실시예에 있어서 규정은 동적이며 호스트, 주변기기 및 통신 인터페이스 중 하나 이상을 나타내는 상태에 근거하여 선정된다. 또 다른 실시예에 있어서 규정은 동적이며 복수규정들로부터 선정되며 복수규정들은 호스트 디바이스에 저장된다. 또 다른 관련 실시예에 있어서, 규정은 동적이며 복수규정들로부터 선정되며 복수규정들은 주변기기에 저장된다. 또 다른 관련 실시예에 있어서, 규정은 동적이며 복수규정들로부터 선정되며 복수규정들은 보안을 강화하기 위한 절차를 실행하는 모듈에 저장된다. 호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 분리가 가능한 상태로 커플링될 수 있다.
선택적으로, 규정은 데이터의 특성에 의존한다. 또한 선택적으로, 규정은 호스트 컴퓨팅 디바이스의 구성에 근거하여 선정된다. 대안으로, 규정은 통신 인터페이스의 프로토콜에 근거하여 선정된다. 대안으로, 보안 절차는 주변기기를 호스트 컴퓨팅 디바이스로부터 전기적으로 격리시키는 격리 절차로 구성된다.
또 다른 실시예에 있어서, 휴먼 인터페이스를 가진 호스트 컴퓨팅 디바이스와 주변기기 중 하나 이상의 보안을 강화시키는 방법을 제공하며, 여기에서 호스트 컴퓨팅 디바이스는 주변기기와 분리할 수 있는 상태로 통신 인터페이스를 통해 커플링된다. 본 실시예의 방법은 주변기기로부터 그 본성을 특징짓는 데이터를 수신하고, 수신 데이터에 근거하여 인증절차를 실행하는 것을 포함하며, 이와 같은 절차는 주변기기에 입력할 사용자 응답을 요구하는 챌린지(challenge)를 발급하는 것을 포함한다. 본 방법은 또한 주변기기가 그 본성에 근거하여 예상되는 태도로 행동하는가를 결정하기 위하여 사용자 응답에 기인된다고 추정되는 주변기기로부터 수신된 데이터를 분석하는 것을 포함한다.
관련된 실시예에 있어서, 챌린지는 디스플레이, 또는, 대안으로, 소리를 통하여 발급된다. 본 방법은 만약 주변기기가 정해진 시간 동안 유휴 상태로 있을 경우, 인증 절차와 데이터 분석을 실행하는 절차를 반복하는 것을 선택적으로 더 포함한다.
또 다른 실시예에 있어서, 주변기기로부터 호스트 컴퓨팅 디바이스로 사용자 입력 기능의 개별화 방법을 제공하며, 여기에서 호스트 컴퓨팅 디바이스는 주변기기와 분리할 수 있는 상태로 통신 인터페이스를 통해 커플링된다. 본 발명의 방법은 (a) 주변기기로부터 그 본성을 특징짓는 데이터를 수신하는 것, (b) 주변기기로부터 사용자 입력에 기인한다고 추정되는 데이터를 수신하는 것, (c) 단계 (a)와 (b)에서 수신된 데이터를 저장하는 것과 단계와 식별 규정에 의해 정의 된 환경을 식별하기 위해 단계 (c)에서 저장된 데이터를 분석하는 것을 포함한다. 본 방법은 만약 분석이 이와 같은 환경을 식별하지 못하면 데이터를 호스트 컴퓨팅 디바이스로 전달하는 것을 더 포함한다. 본 방법은 만약 분석이 이와 같은 환경을 식별할 경우 개별화 규정에 의해 정의된 개별화 절차를 수행하는 것을 포함한다. 호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 분리가 가능한 상태로 커플링될 수 있다.
관련된 실시예에 있어서 식별 규정은 악의적인 활동의 위험과 연계된 환경을 식별한다. 또 다른 실시예에 있어서 식별 규정은 사용자가 지정한 비상상황을 식별하며 개별화 규정은 비상상황에 대한 응답을 촉발하는 것을 포함한다. 선택적으로, 개별화 절차는 사용자 입력에 기인된다고 추정되는 데이터를 수정하는 것을 포함한다. 선택적으로, 개별화 절차는 호스트 컴퓨팅 디바이스에 대한 사용자 입력에 기인된다고 추정되는 데이터의 적어도 한 부분의 통신을 배제한다. 관련 실시예에 있어서, 환경은 보안에 대한 위험을 제기하고 개별화 절차는 보안의 위험을 줄이기 위한 규정에 의해 결정된 보호조치를 실행하는 것을 포함한다. 또 다른 관련 실시예에 있어서, 보호조치를 실행하는 것은 그것을 호스트 컴퓨팅 디바이스에 실행하는 것을 포함한다.
구체적인 실시예에서 통신 인터페이스를 통해 주변기기와 커플링된 호스트 컴퓨팅 디바이스 간에 통신이 이루어진 데이터의 보안을 강화하는 방법이 제공된다. 본 실시예의 방법은 주변기기에 대한 쓰기 명령에 적용되는 데이터를 파일 수준에서 식별하는 것, 파일 수준의 데이터를 규정에 따라 암호화 절차로 암호화 하는 것, 그리고 주변기기에 암호화된 파일 수준의 데이터를 저장하는 것을 포함한다. 관련 실시예에서 암호화 절차는 암호화된 각 파일에 대해 독립적으로 선정된다. 호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 분리가 가능한 상태로 커플링될 수 있다.
구체적인 실시예에서, 통신 인터페이스를 통해 주변기기와 커플링된 호스트 컴퓨팅 디바이스 간에 통신이 이루어진 데이터의 보안을 강화하는 방법이 제공된다. 본 실시예의 방법은 주변기기에 대한 읽기 명령에 적용되는 데이터를 파일 수준에서 식별하는 것, 파일 수준의 데이터를 규정에 따라 해독 절차로 해독 하는 것, 그리고 호스트 컴퓨팅 디바이스에 해독된 파일 수준의 데이터를 저장하는 것을 포함한다. 호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 분리가 가능한 상태로 커플링될 수 있다.
관련 실시예에서 해독 절차는 해독된 각 파일에 대해 독립적으로 선정된다. 관련 실시예에서, 규정은 송신하려는 데이터의 특성에 근거하여 선정된다. 다른 실시예에서, 규정은 주변기기의 본성과 주변기기를 나타내는 상태 중 하나 이상에 근거하여 선정된다. 또 다른 관련 실시예에서, 규정은 호스트 컴퓨팅 디바이스의 구성과 호스트 컴퓨팅 디바이스를 나타내는 상태 중 하나 이상에 근거하여 선정된다. 또 다른 실시예에서 규정은 인증 절차에서 결정된 사용자의 신원에 근거하여 선정된다.
구체적인 실시예에서, 통신 인터페이스를 통해 주변기기와 커플링된 호스트 컴퓨팅 디바이스 간에 통신이 이루어진 데이터의 보안을 강화하는 방법이 제공된다. 본 실시예의 방법은 호스트 컴퓨팅 디바이스로부터 데이터를 수신하는 것, 수신된 데이터를 저장하는 것, 디바이스 간 통신 단절을 방지하는 보호 절차를 시행하는 것, 분석의 어떤 부분을 (혹시 있다면) 암호화 할 것인지에 대한 분석을 결정하기 위하여 저장된 데이터를 분석하는 것, 분석에 부합되게 저장된 데이터를 암호화 하는 것, 그리고 암호화된 데이터를 주변기기로 이송케 하는 것을 포함한다.
구체적인 실시예에서, 통신 인터페이스를 통해 주변기기와 커플링된 호스트 컴퓨팅 디바이스 간에 통신이 이루어진 데이터의 보안을 강화하는 방법이 제공된다. 본 실시예의 방법은 주변기기로부터 데이터를 수신하는 것, 수신된 데이터를 저장하는 것, 디바이스 간 통신 단절을 방지하는 보호 절차를 시행하는 것, 분석의 어떤 부분을 (혹시 있다면) 해독할 것인지에 대한 분석을 결정하기 위하여 저장된 데이터를 분석하는 것, 분석에 부합되게 저장된 데이터를 해독하는 것, 그리고 해독된 데이터를 호스트 컴퓨팅 디바이스로 이송케 하는 것을 포함한다. 호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 분리가 가능한 상태로 커플링될 수 있다.
관련 실시예에서, 분석은 송신하려는 데이터의 특성에 근거하여 수행된다. 다른 실시예에서, 분석은 주변기기의 본성과 주변기기를 나타내는 상태 중 하나 이상에 근거하여 수행된다. 또 다른 실시예에서, 분석은 호스트 컴퓨팅 디바이스의 구성과 호스트 컴퓨팅 디바이스를 나타내는 상태 중 하나 이상에 근거하여 수행된다. 또 다른 실시예에서 분석은 인증 절차에서 결정된 사용자의 신원에 근거하여 수행된다.
구체적인 실시예에서 이전에 기술된 어떠한 실시예에 따른 방법의 실행을 유도하도록 구성된 하드웨어 배열로 이루어진 보안 장치가 제공된다.
구체적인 실시예에 있어서 호스트 컴퓨팅 디바이스와 주변기기 중 하나 이상의 보안을 강화시키는 방법을 제공하며, 호스트 컴퓨팅 디바이스는 통신 인터페이스를 통해 주변기기와 커플링된다. 본 실시예의 보안 장치는 데이터를 주변기기와 호스트 컴퓨팅 디바이스의 하나로부터 투명하게 수신하는 것, 수신된 데이터를 저장하는 것, 그리고 보안의 위험을 야기하는 환경을 식별하기 위해 저장된 데이터를 분석하는 것을 포함하는 기기 구동 절차를 포함한다. 본 방법은 만약 분석이 이와 같은 환경을 식별하지 못할 경우에, 데이터를 다른 주변기기나 호스트로 투명하게 전달하는 것을 더 포함한다. 본 방법은 만약 분석이 이와 같은 환경을 식별할 경우에 규정에 의하여 정의된 보안 절차를 수행하는 것을 더 포함한다. 호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 분리가 가능한 상태로 커플링될 수 있다.
구체적인 실시예에 있어서, 호스트 컴퓨팅 디바이스와 주변기기 중 하나 이상의 보안을 강화시키는 보안 장치가 제공하며, 여기에서 호스트 컴퓨팅 디바이스는 주변기기와 통신 인터페이스를 통해 커플링된다. 보안 장치는 데이터를 주변기기와 호스트 컴퓨팅 디바이스의 하나로부터 수신하는 것, 수신된 데이터를 저장하는 것, 디바이스간 통신 단절을 방지하는 보호절차를 실행하는 것, 그리고 보안의 위험을 야기하는 환경을 식별하기 위해 저장된 데이터를 분석하는 것을 포함하는 기기 구동 절차를 포함한다. 기기에 의해 실행되는 절차는 만약 분석이 이러한 환경을 식별하지 못하는 경우에는 데이터를 다른 주변기기와 호스트로 데이터를 전달하는 것과, 분석이 이러한 환경을 식별하는 경우에는 규정에 의해 정의된 보안절차를 수행하는 것을 더 포함한다. 호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 분리가 가능한 상태로 커플링될 수 있다.
수많은 종래 기술에 의한 버스 아키텍처에 있어서 데이터는 호스트로부터 버스 상에 있는 전부 또는 몇몇 주변기기들로 전파된다. 이러한 경우에, 주변기기는 자신에게 지정된 데이터에 대해서만 응답해야 한다. 그러나, 언급한 바와 같이, 불량한 주변기기들은 예를 들어 그 주변기기에 지정되지 않은 데이터를 복사함으로써 응답할 수 있다. 이들 환경은 보안에 대한 위험을 제기할 수 있으며, 데이터가 의도한 주변기기 또는 주변기기들에 한해서 데이터를 전송하거나 또는 그렇지 않으면 호스트와 어떤 주변기기들 간의 데이터의 흐름을 제어하거나 감시하는 것이 유용할 수 있다. 본 발명의 실시예들은 이와 같은 전송, 제어 및/또는 감시를 수행한다. 그리하여, 본 발명의 실시예들은 데이터가 의도되지 않은 버스 주변기기들에게 제공되는 것을 방지함으로써 종래 기술에 의해 제기된 문제를 해결한다.
본 발명의 다른 실시예에서는 네트워크 상의 통신을 관리하는 방법을 제공한다. 본 방법은 네트워크로부터 데이터를 수신하는 것, 수신된 데이터를 자동으로 저장하는 것, 및 보안에 대한 위험을 나타내는 환경이 존재하는 지를 검출 또는 확인하기 위해 저장된 데이터를 자동적으로 분석하는 것을 포함한다. 만약 분석이 이와 같은 환경이 존재한다고 판단하면, 바로 규정에 의하여 정의된 보안 절차가 자동적으로 수행된다. 본 방법은 선택적으로 네트워크 내의 하나 또는 그 이상의 노드와의 통신을 자동적으로 배제하는 것을 더 포함할 수 있다. 본 방법은 선택적으로 하나 또는 그 이상의 주변기기들과의 통신을 배제하는 것을 더 포함할 수 있다.
본 발명의 다른 실시예에서 네트워크 상의 통신을 관리하는 방법이 제공된다. 본 방법은 네트워크로부터 데이터를 수신하는 것, 수신된 데이터를 저장하는 것, 및 보안에 대한 위험을 나타내는 환경이 존재하는 지를 확인하기 위해 저장된 데이터를 분석하는 것을 포함한다. 만약 분석이 이와 같은 환경이 존재한다고 판단하면, 바로 규정에 의해 정의된 절차가 수행된다. 절차는 선택적으로 제어 신호를 수신하는 것을 더 포함할 수 있다.
본 발명의 다른 실시예에서 네트워크 상의 통신 관리 방법이 제공된다. 본 방법은 네트워크로부터 데이터를 수신하는 것, 수신된 데이터를 저장하는 것, 및 보안에 대한 위험을 나타내는 환경이 존재하는 지를 확인하기 위해 저장된 데이터를 분석하는 것을 포함한다. 만약 분석이 이와 같은 환경이 존재한다고 판단하면, 바로 규정에 의해 정의된 절차가 수행된다. 본 절차는 선택적으로 통신 선로를 종단하는 것을 더 포함할 수 있다.
본 발명의 다른 실시에서 네트워크 상의 통신 관리 방법이 제공된다. 본 방법은, 다운스트림 허브를 불능화하는 것을 포함할 수 있는, 각 종단점과의 통신을 격리시키는 것을 포함한다. 본 방법은 선택적으로 어떠한 주변기기(들) 혹은 호스트와의 통신을 격리하는 것을 포함할 수 있다.
본 방법은 네트워크 상의 통신 관리 방법을 제공한다. 본 방법은 네트워크로부터 데이터를 수신하는 것, 그리고 수신된 데이터를 저장하는 것을 포함한다. 본 방법은 보안에 대한 위험을 나타내는 환경이 존재하는 지를 확인하기 위해 저장된 데이터를 분석하는 것을 더 포함한다. 만약 분석이 이와 같은 환경과 일치한다고 판단하면, 본 방법은 규정에 의해 정의된 절차를 수행하는 것을 포함한다. 관련 장치뿐만 아니라 다른 방법들과 장치들도 제공된다.
네트워크 상에서 데이터 흐름을 제어하는 방법이 제공된다. 본 방법은 네트워크로부터 데이터를 수신하는 것, 그리고 수신된 데이터를 저장하는 것을 포함한다. 본 방법은 보안에 대한 위험을 나타내는 환경이 존재하는 지를 확인하기 위해 저장된 데이터를 분석하는 것을 더 포함한다. 만약 분석이 이와 같은 환경과 일치한다고 확신하면, 본 방법은 데이터의 수신자들을 제어하는 것을 포함한다. 관련 기기뿐만 아니라 다른 방법들과 기기들도 제공된다.
선로를 따라서 호스트와 주변기기(들) 간의 데이터 흐름을 제어하는 방법이 제공된다. 본 발명의 한 실시예에서, 본 방법은 어떤 데이터가 지나가는 동안 선로를 침묵시키는 것을 포함하지만, 프레임 패킷의 시작과 같은, 다른 통신이 통과하도록 신속하게 침묵-해제를 함으로써 연결을 유지보수 한다. 어떤 면에서, 이는 보호 절차이다. 그것은 전략적 침묵을 포함하는데 그러므로 특정 주변기기로 지정되지 않은 데이터는 바로 그 특정 주변기기에 의해 수신되지 않는다. 다시 말하면, 데이터는 그것이 의도한 주변기기에 의해서만 수신된다. 관련 기기뿐만 아니라 다른 방법들과 기기들도 제공된다.
본 발명의 다른 실시예에서 지정되지 않은 주변기기로 변형(garble)된 또는 암호화 된 데이터를 보내는 방법이 제공된다. 암호화된 데이터는 예를 들어 길이 규격, 패킷 구획문자의 시작 또는 종료, 패킷 식별자, 또는 다른 유사한 특성들에 부합하는 데이터 패킷을 포함한다. 변형(garble)된 데이터는 예를 들어 하나 또는 그 이상의 방법으로 규격에 부착(부합)되지 않을 수 있는 데이터 패킷을 포함한다. 다른 경우에, 실시예는 의도되지 않은 버스 주변기기들에 데이터가 가용되는 것을 배제한다.
본 발명의 또 다른 실시예는 호스트 컴퓨팅 디바이스와 주변기기 중 하나 이상의 보안을 향상시키는 방법이 제공된다. 호스트 컴퓨팅 디바이스는 주변기기와 통신 인터페이스를 통해 커플링된다. 본 방법은 주변기기 및 호스트 컴퓨팅 디바이스 의 하나로부터 데이터를 수신하는 것을 포함한다. 수신된 데이터는 자동적으로 저장되며 저장된 데이터는 자동적으로 분석된다. 호스트 컴퓨팅 디바이스 및 주변기기의 하나는 호스트 컴퓨팅 디바이스 및 주변기기의 다른 하나에 자동적으로 에뮬레이팅(emulating)된다.
호스트 컴퓨팅 디바이스는 통신 인터페이스를 통하여 주변기기에 분리가 가능한 상태로 커플링될 수 있다.
본 발명의 다른 실시예는 디바이스를 제공한다. 디바이스는 기기 동작 절차를 포함한다. 절차들은 네트워크로부터 데이터를 수신하기 위하여 구성된 절차 및 수신된 데이터를 저장하기 위하여 구성된 절차를 포함한다. 다른 절차는 보안에 대한 위험과 연관된 환경을 검출하기 위하여 저장된 데이터를 분석하도록 구성된다. 또 다른 절차는 보안에 대한 위험과 연관된 환경이 검출되면 규정에 의해 정의된 절차를 수행하도록 구성된다.
상기 어떤 방법에 있어서, 통신 인터페이스는 주변기기와 호스트 간 또는 그와 반대로의 통신을 지원하는 형태일 수 있으나, 주변기기와 동일한 통신 인터페이스를 통하여 호스트 컴퓨팅 디바이스와 커플링된 다른 어떤 주변기기들 간의 통신은 지원하지 않는다. 네트워크는 마스터/슬레이브 네트워크를 포함할 수 있다. 보안절차는 규정에 따라서 네트워크에 있는 하나 또는 그 이상의 노드와의 통신을 자동으로 배제하는 것을 포함할 수 있다. 보안절차는 규정에 따라서 송신선로를 자동으로 종단하는 것을 포함할 수 있다. 보안절차는 데이터의 수신자를 제어하는 필터링 절차를 자동으로 수행하는 것을 포함할 수 있다. 호스트 컴퓨팅 디바이스는 한 또는 그 이상의 주변기기들과 분리가 가능한 상태로 커플링될 수 있다. 보안절차는 호스트 및 하나 또는 그 이상의 주변기기들 간의 통신을 자동으로 제한하는 것을 포함할 수 있다. 저장된 데이터를 분석하는 것은 주소가 지정된 주변기기를 자동으로 결정하는 것을 포함할 수 있다. 보안절차를 수행하는 것은 호스트와 주소가 지정되지 않은 주변기기들 간의 통신을 자동으로 제한하는 것을 포함할 수 있다. 보안절차를 수행하는 것은 규정에 따라서 호스트와 주변기기 간의 통신을 투명하게 자동으로 제한하는 것을 포함할 수 있다. 본 절차는 제어신호를 수신하는 것을 포함할 수 있다. 보안절차를 수행하는 것은 데이터 송신을 자동으로 종단하는 것을 포함할 수 있다. 보안절차를 수행하는 것은 어떤 데이터가 송신될 때 자동으로 선로를 침묵시키는 것을 포함할 수 있으나, 호스트, 주변기기, 및 송신하고자 하는 데이터 중 어떤 것의 특성에 근거하여 송신하려고 하는 다른 데이터 또는 통신에 대한 침묵-해제를 허용한다.
본 방법은 호스트 컴퓨팅 디바이스 (이하 '호스트'라 칭함) 및 하나 이상의 주변 디바이스 (이하 '주변기기'라 칭함) 간의 커플링을 위한 보안 장치의 사용을 포함할 수 있다. 각 주변기기는 주소가 지정될 수 있다. 보안 장치는 업스트림 링크를 경유하여 호스트와 커플링되며 명령과 데이터를 업스트림 링크를 경유하여 호스트로부터 자동으로 수신하기 위하여 구성된 하나의 업스트림 인터페이스를 포함할 수 있다. 업스트림 인터페이스는 데이터를 업스트림 링크를 경유하여 호스트로 자동으로 보내도록 구성될 수 있다. 명령들의 적어도 몇 개의 각각은 하나 이상의 주변기기 중 하나의 주소를 포함할 수 있다. 보안 장치는 또한 하나 이상의 다운스트림 인터페이스를 포함할 수 있다. 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나이상의 주변기기 중 하나에 커플링되며 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 자동으로 수신하도록 구성될 수 있다. 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 한 주변기기로 명령들과 데이터를 자동적으로 보내도록 구성될 수 있다. 보안 장치는 또한 업스트림 및 다운스트림 인터페이스들과 커플링되고 업스트림 인터페이스를 경유하여 수신된 명령들과 데이터를 수신된 주소에 근거하여 하나 이상의 다운스트림 인터페이스 중 선택된 적어도 하나로 전달하도록 구성된 컨트롤러를 포함할 수 있다. 컨트롤러는 다운스트림 인터페이스를 경유하여 수신된 데이터를 업스트림 인터페이스로 전달하도록 구성될 수 있다.
선택적으로, 컨트롤러는 하나이상의 다운스트림 인터페이스 중 어떤 하나를 경유하여 수신된 데이터가 하나이상의 다운스트림 인터페이스 중 다른 하나로 전달되는 것을 방지하도록 구성될 수 있다.
본 발명의 또 다른 실시예는 호스트 컴퓨팅 디바이스 (이하 '호스트'라 칭함) 및 하나 이상의 주변 디바이스 (이하 '주변기기'라 칭함) 간의 커플링을 위한 보안 장치를 제공한다. 각 주변기기는 주소가 지정될 수 있다. 보안 장치는 업스트림 링크를 경유하여 호스트와 커플링되며 명령과 데이터를 업스트림 링크를 경유하여 호스트로부터 수신하기 위하여 구성된 하나의 업스트림 인터페이스를 포함한다. 업스트림 인터페이스는 업스트림 링크를 경유하여 호스트로 데이터를 보내기 위하여 구성된다. 명령들의 적어도 몇 개의 각각은 하나 이상의 주변기기 중 하나의 주소를 포함한다. 보안 장치는 또한 하나 이상의 다운스트림 인터페이스를 포함한다. 각 다운스트림 인터페이스는 하나 이상의 주변기기 중 하나와 해당 다운스트림 링크를 경유하여 커플링되며 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하도록 구성된다. 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나의 주변기기로 명령들과 데이터를 보내도록 구성된다. 보안 장치는 또한 업스트림 및 다운스트림 인터페이스들과 커플링된 컨트롤러를 포함한다. 컨트롤러는: 업스트림 인터페이스를 경유하여 명령들과 데이터를 수신하며 수신된 명령들과 데이터에 있는 주소에 근거하여 하나 이상의 다운스트림 인터페이스 중 적어도 하나를 선택하며 수신된 명령들과 데이터에 있는 주소에 근거하여 하나 이상의 다운스트림 인터페이스 중 적어도 하나를 선택하며 및 수신된 명령들과 데이터를 하나이상의 다운스트림 인터페이스 중 선택된 적어도 하나에게 전달하도록 구성된다.
선택적으로, 컨트롤러는 수신된 명령들과 데이터를 변형(garble)하며 변형(garble)된 명령들과 데이터를, 하나 이상의 다운스트림 인터페이스 중 선택된 적어도 하나가 아닌, 적어도 하나의 다운스트림 인터페이스 중 적어도 하나로 전달하도록 구성된다.
본 발명의 다른 실시예는 상기 방법 중 어떤 것이라도 충족되도록 구성된 하드웨어 배열을 포함하는 보안 장치를 제공한다.
본 발명의 한 실시예는 호스트 컴퓨팅 디바이스 (이하 '호스트'라 칭함) 및 하나 이상의 주변 디바이스 (이하 '주변기기'라 칭함) 간의 커플링을 위한 보안 장치를 제공한다. 각 주변기기는 주소가 지정될 수 있다. 보안 장치는 하나의 업스트림 인터페이스와 하나 이상의 다운스트림 인터페이스를 포함한다. 업스트림 인터페이스는 업스트림 인터페이스를 경유하여 호스트와 커플링되도록 구성된다. 업스트림 인터페이스는 업스트림 링크를 경유하여 호스트로부터 명령들과 데이터를 수신하도록 구성된다. 업스트림 인터페이스는 업스트림 링크를 경유하여 데이터를 호스트로 보내도록 구성된다. 명령들 중 적어도 몇몇의 각각은 하나 이상의 주변기기 중 하나의 주소를 포함한다. 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나이상의 주변기기 중 하나와 커플링되도록 구성된다. 각 다운스트림 인터페이스는 데이터를 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 수신하며 명령들과 데이터를 해당 다운스트림 링크를 경유하여 하나의 주변기기로 보내도록 구성된다. 보안 장치는 또한 업스트림 및 다운스트림 인터페이스들과 커플링된 컨트롤러를 포함한다. 컨트롤러는 업스트림 인터페이스를 경유하여 명령들과 데이터를 수신하도록 구성된다. 컨트롤러는 수신된 명령들과 데이터에 있는 주소에 근거하여 하나 이상의 다운스트림 인터페이스 중 하나 이상을 선택하도록 구성된다. 컨트롤러는 수신된 명령들과 데이터를 하나 이상의 다운스트림 인터페이스 중 선택된 적어도 하나로 전달하도록 구성된다.
컨트롤러는 수신된 명령들과 데이터를, 하나 이상의 다운스트림 인터페이스 중 선택된 적어도 하나가 아닌, 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달하는 것을 방지하도록 구성될 수 있다.
컨트롤러는 해당 다운스트림 링크를 경유하여 하나 이상의 주변기기 중 어떤 두 주변기기들 간에 직접 통신을 방지하도록 구성될 수 있다.
컨트롤러는 수신된 명령들과 데이터를 변형(garble)하며 변형(garble)된 명령들과 데이터를, 하나 이상의 다운스트림 인터페이스 중 선택된 적어도 하나가 아닌, 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달하도록 구성될 수 있다.
각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나 이상의 주변기기 중 하나와 분리가 가능한 상태로 커플링될 수 있다.
컨트롤러는 분석 간격 동안 수신 데이터를 분석함으로써 하나 이상의 다운스트림 인터페이스 중 적어도 하나를 선택하도록 구성될 수 있다. 컨트롤러는, 분석 간격의 적어도 한 부분 동안, 호스트와 주변기기의 다른 하나에 호스트 또는 주변기기를 에뮬레이팅하도록 구성될 수 있다.
컨트롤러는 확인응답 (통상 'ACK'로 칭함) 패킷 또는 무-확인응답 패킷을 생성하고 생성된 확인응답 또는 무-확인응답 패킷을 호스트와 주변기기의 다른 하나로 보냄으로써 호스트 또는 주변기기를 적어도 부분적으로 에뮬레이팅하도록 구성될 수 있다.
청구항 6에 따른 디바이스, 여기서 컨트롤러는 종단저항을 업스트림 링크에 커플링함으로써 호스트 또는 주변기기를 적어도 부분적으로 에뮬레이팅하도록 구성된다.
컨트롤러는 수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하도록 구성될 수 있다. 만약 수신된 데이터가 보안에 위험을 제기하지 않는다고 확인되면, 컨트롤러는 하나이상의 다운스트림 인터페이스 중 선택된 적어도 하나에게 수신된 데이터를 전달하도록 구성될 수 있다. 만약 수신된 데이터가 보안에 위험을 제기한다고 확인되면, 컨트롤러는 하나 이상의 다운스트림 인터페이스 중 어떤 것으로든지 수신된 데이터를 전달하는 것을 방지하도록 구성될 수 있다.
컨트롤러는 업스트림 링크를 링크 상태로부터 전기적으로 종단된 상태로 변화시키며, 하나 이상의 해당 다운스트림 링크에서 링크 상태로부터 전기적으로 종단된 상태로 변화시킴으로써 수신된 데이터를 전달하는 것을 방지하도록 구성될 수 있다.
컨트롤러는 종단 저항을 업스트림 링크에 커플링시킴으로써 업스트림 링크를 링크 상태로부터 전기적으로 종단된 상태로 변화하도록 구성될 수 있다.
본 발명의 다른 실시예는 호스트 컴퓨팅 디바이스 (이하 '호스트'라 칭함) 및 하나 이상의 주변 디바이스 (이하 '주변기기'라 칭함) 간의 커플링을 위한 보안 장치를 제공한다. 보안 장치는 하나의 업스트림 인터페이스와 하나 이상의 다운스트림 인터페이스를 포함한다. 업스트림 인터페이스는 업스트림 링크를 경유하여 호스트와 커플링되며 업스트림 링크를 경유하여 호스트로부터 데이터를 수신하며 업스트림 링크를 경유하여 데이터를 호스트로 보내도록 구성된다. 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나이상의 주변기기와 커플링되며 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하며 해당 다운스트림 링크를 경유하여 데이터를 하나의 주변기기로 보내도록 구성된다. 보안 장치는 또한 업스트림 및 다운스트림 인터페이스들과 커플링된 컨트롤러를 포함한다. 컨트롤러는 업스트림 인터페이스를 경유하여 명령들과 데이터를 수신하며 수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하도록 구성된다. 만약 수신된 데이터가 보안에 위험을 제기하지 않는다고 확인되면, 컨트롤러는 하나 이상의 다운스트림 인터페이스 중 적어도 하나에게 수신된 데이터를 전달하도록 구성된다. 만약 수신된 데이터가 보안에 위험을 제기한다고 확인되면, 컨트롤러는 하나 이상의 다운스트림 인터페이스 중 어느 것으로든지 수신된 데이터를 전달하는 것을 방지하도록 구성된다.
컨트롤러는 업스트림 링크를 링크 상태로부터 전기적으로 종단된 상태로 변화시키고 하나 이상의 해당 다운스트림 링크에서 링크 상태로부터 전기적으로 종단된 상태로 변화시킴으로써 수신된 데이터를 전달하는 것을 방지하도록 구성될 수 있다
컨트롤러는 종단 저항을 업스트림 링크에 커플링시킴으로써 업스트림 링크를 링크 상태로부터 전기적으로 종단된 상태로 변화하도록 구성될 수 있다.
본 발명의 또 다른 실시예는 호스트 컴퓨팅 디바이스 (이하 '호스트'라 칭함) 또는 하나 이상의 주변 디바이스(이하 '주변기기'라 칭함)의 보안을 강화하는 보안 장치-구현 방법을 제공한다. 보안 장치는 하나의 업스트림 인터페이스와 하나 이상의 다운스트림 인터페이스를 포함한다. 업스트림 인터페이스는 업스트림 링크를 경유하여 호스트와 커플링되며 호스트로부터 해당 업스트림 링크를 경유하여 명령들과 데이터를 수신하며 업스트림 링크를 경유하여 데이터를 호스트로 보내도록 구성된다. 명령들 중 적어도 몇몇의 각각은 하나 이상의 주변기기 중 하나의 주소를 포함한다. 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나이상의 주변기기 중 하나와 커플링되며 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하며 해당 다운스트림 링크를 경유하여 하나의 주변기기로 명령들과 데이터를 보내도록 구성된다. 각 주변기기는 주소가 지정된다. 본 방법은 업스트림 인터페이스를 경유하여 명령들과 데이터를 수신하는 것과 수신된 명령들과 데이터에 있는 주소에 근거하여 하나이상의 다운스트림 인터페이스 중 적어도 하나를 선택하는 것을 포함한다. 본 방법은 또한 수신된 명령들과 데이터를 하나이상의 다운스트림 인터페이스 중 선택된 적어도 하나로 전달하는 것을 포함한다.
본 방법은 수신된 명령들과 데이터를, 하나이상의 다운스트림 인터페이스 중 선택된 적어도 하나가 아닌, 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달하는 것을 방지하는 것을 포함할 수 있다.
본 방법은 해당 다운스트림 링크를 경유하여 하나 이상의 주변기기 중 어떤 두 주변기기들 간에 직접 통신을 방지하는 것을 포함할 수 있다
본 방법은 수신된 명령들과 데이터를 변형(garble)하는 것과 변형(garble)된 명령들과 데이터를, 하나 이상의 다운스트림 인터페이스 중 선택된 적어도 하나가 아닌, 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달하는 것을 포함할 수 있다.
본 방법은 분석 간격 동안 수신 데이터를 분석함으로써 하나 이상의 다운스트림 인터페이스 중 적어도 하나를 선택하는 것을 포함할 수 있다. 분석 간격의 적어도 한 부분 동안, 호스트 또는 주변기기를 호스트와 주변기기의 다른 하나에 에뮬레이팅할 수 있다.
호스트 또는 주변기기를 에뮬레이팅하는 것은, 적어도 부분적으로, 확인응답 패킷 또는 무-확인응답 패킷을 생성하는 것과 생성된 확인응답 패킷 또는 무-확인응답 패킷을 호스트와 주변기기의 다른 하나로 보내는 것을 포함할 수 있다.
본 방법은 종단저항을 업스트림 링크에 커플링함으로써 적어도 부분적으로 호스트 또는 주변기기를 에뮬레이팅하는 것을 포함할 수 있다.
본 방법은 수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하는 것을 포함할 수 있다. 만약 수신된 데이터가 보안에 위험을 제기하지 않는다고 확인되면, 본 방법은 하나 이상의 다운스트림 인터페이스 중 선택된 적어도 하나에게 수신된 데이터를 전달하는 것을 포함할 수 있다. 만약 수신된 데이터가 보안에 위험을 제기한다고 확인되면, 본 방법은 하나 이상의 다운스트림 인터페이스 중 어느 것으로든지 수신된 데이터를 전달하는 것을 방지하는 것을 포함할 수 있다.
수신된 데이터를 전달하는 것을 방지하는 것은 업스트림 링크를 링크 상태로부터 전기적으로 종단된 상태로 변화시키는 것과 하나 이상의 해당 다운스트림 링크를 링크 상태로부터 전기적으로 종단된 상태로 변화시키는 것을 포함할 수 있다.
업스트림 링크를 링크 상태로부터 전기적으로 종단된 상태로 변화하는 것은 종단 저항을 업스트림 링크에 커플링시키는 것을 포함할 수 있다.
본 발명의 한 실시예는 호스트 컴퓨팅 디바이스 (이하 '호스트'라 칭함) 또는 하나 이상의 주변 디바이스(이하 '주변기기'라 칭함)의 보안을 강화하는 보안 장치-구현방법을 제공한다. 보안 장치는 하나의 업스트림 인터페이스와 하나 이상의 다운스트림 인터페이스를 포함한다. 업스트림 인터페이스는 업스트림 인터페이스를 경유하여 호스트와 커플링되며, 호스트로부터 해당 업스트림 인터페이스를 경유하여 데이터를 수신하며 업스트림 링크를 경유하여 데이터를 호스트로 보내도록 구성된다. 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나이상의 주변기기 중 하나와 커플링되며 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하며 해당 다운스트림 링크를 경유하여 하나의 주변기기로 명령들과 데이터를 보내도록 구성된다. 본 방법은 수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하는 것을 포함한다. 만약 수신된 데이터가 보안에 위험을 제기하지 않는다고 확인되면, 본 방법은 하나 이상의 다운스트림 인터페이스 중 선택된 적어도 하나에게 수신된 데이터를 전달하는 것을 포함한다. 만약 수신된 데이터가 보안에 위험을 제기한다고 확인되면, 본 방법은 하나 이상의 다운스트림 인터페이스 중 어느 것으로든지 수신된 데이터를 전달하는 것을 방지하는 것을 포함한다.
수신된 데이터를 전달하는 것을 방지하는 것은 업스트림 링크를 링크 상태로부터 전기적으로 종단된 상태로 변화시키며 하나 이상의 해당 다운스트림 링크를 링크 상태로부터 전기적으로 종단된 상태로 변화시키는 것을 포함할 수 있다.
업스트림 링크를 링크 상태로부터 전기적으로 종단된 상태로 변화하는 것은 종단 저항을 업스트림 링크에 커플링시키는 것을 포함할 수 있다.
본 발명의 또 다른 실시예는 호스트 컴퓨팅 디바이스 (이하 '호스트'라 칭함) 또는 하나 이상의 주변 디바이스(이하 '주변기기'라 칭함)의 보안을 강화하는 프로그램 제품을 제공한다. 보안 장치는 하나의 업스트림 인터페이스와 하나 이상의 다운스트림 인터페이스를 포함한다. 업스트림 인터페이스는 업스트림 인터페이스를 경유하여 호스트와 커플링되며, 호스트로부터 해당 업스트림 인터페이스를 경유하여 명령들과 데이터를 수신하며 업스트림 링크를 경유하여 데이터를 호스트로 보내도록 구성된다. 명령들 중 적어도 몇몇의 각각은 하나 이상의 주변기기 중 하나의 주소를 포함한다. 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나이상의 주변기기 중 하나와 커플링되며 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하며 해당 다운스트림 링크를 경유하여 하나의 주변기기로 명령들과 데이터를 보내도록 구성된다. 각 주변기기는 주소가 지정된다. 프로그램 제품은 컴퓨터-판독가능 프로그램 코드가 저장된 비-일시적 컴퓨터-판독가능 매체를 포함한다. 컴퓨터-판독가능 프로그램은 업스트림 인터페이스를 경유하여 명령들과 데이터를 수신하고 수신된 명령들과 데이터에 있는 주소에 근거하여 하나 이상의 다운스트림 인터페이스 중 적어도 하나를 선택하도록 구성된다. 컴퓨터-판독가능 프로그램은 수신된 명령들과 데이터를 하나 이상의 다운스트림 인터페이스 중 선택된 적어도 하나로 전달하도록 구성된다.
본 발명의 다른 실시예는 호스트 컴퓨팅 디바이스 (이하 '호스트'라 칭함) 또는 하나 이상의 주변 디바이스(이하 '주변기기'라 칭함)의 보안을 강화하는 컴퓨터 프로그램 제품을 제공한다. 보안 장치는 하나의 업스트림 인터페이스와 하나 이상의 다운스트림 인터페이스를 포함한다. 업스트림 인터페이스는 업스트림 인터페이스를 경유하여 호스트와 커플링되며, 호스트로부터 업스트림 인터페이스를 경유하여 데이터를 수신하며 업스트림 링크를 경유하여 데이터를 호스트로 보내도록 구성된다. 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나이상의 주변기기 중 하나와 커플링되며 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하며 해당 다운스트림 링크를 경유하여 하나의 주변기기로 데이터를 보내도록 구성된다. 컴퓨터 판독가능 프로그램은 업스트림 인터페이스를 경유하여 데이터를 수신하고 수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하도록 구성된다. 만약 수신된 데이터가 보안에 위험을 제기하지 않는다고 확인되면, 본 컴퓨터 판독가능 프로그램은 하나 이상의 다운스트림 인터페이스 중 적어도 하나에게 수신된 데이터를 전달하도록 구성된다. 만약 수신된 데이터가 보안에 위험을 제기한다고 확인되면, 본 컴퓨터 판독가능 프로그램은 하나 이상의 다운스트림 인터페이스 중 어느 것으로든지 수신된 데이터를 전달하는 것을 방지하도록 구성된다.
제한이 없이, 청구권을 주장할 수 있는 잠재적 주제(이하에 제시된 실제 특허청구항목들과의 혼동을 피하기 위하여 두문자 'P'로 표시된)는 다음을 포함한다:
(P13) 호스트 컴퓨팅 디바이스('호스트')와 하나 이상의 주변 디바이스('주변기기') 간을 커플링하기 위한 보안 장치로서:
업스트림 링크를 경유하여 호스트와 커플링되고, 업스트림 링크를 경유하여 호스트로부터 데이터를 수신하고, 업스트림 링크를 경유하여 호스트로 데이터를 보내기 위하여 구성된 업스트림 인터페이스
각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나 이상의 주변기기 중의 하나에 커플링되며, 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하고, 해당 다운스트림 링크를 경유하여 데이터를 하나의 주변기기로 보내도록 구성되는, 하나 이상의 다운스트림 인터페이스 및
업스트림 및 다운스트림 인터페이스들과 커플링되고:
업스트림 인터페이스를 경유하여 데이터를 수신하고
수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하며
수신된 데이터가 보안에 대한 위험을 제기하지 않는다고 확인되면, 수신된 데이터를 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달하며 및
수신된 데이터가 보안에 대한 위험을 제기한다고 확인되면, 수신된 데이터가 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달되는 것을 방지하는 컨트롤러로 구성된 보안 장치.
(P14) 제 P13 항의 장치에 있어서, 컨트롤러는:
업스트림 링크를 링크 상태로부터 전기적 종단 상태로 변화시키고 및
해당 다운스트림 링크의 하나 이상을 링크 상태로부터 전기적 종단 상태로 변화시킴으로써 수신된 데이터가 전달되는 것을 방지하도록 구성된 장치.
(P15) 제 P14 항의 장치에 있어서, 컨트롤러는 종단 저항을 업스트림 링크에 커플링시킴으로써 업스트림 링크를 링크 상태에서 전기적 종단 상태로 변화시키도록 구성된 장치.
(P24) 하나 이상의 호스트 컴퓨팅 디바이스 ('호스트') 또는 하나 이상의 주변 디바이스('주변기기')의 보안을 강화하는 보안 장치-구현 방법으로, 보안 장치는 업스트림 링크를 경유하여 호스트와 커플링되며, 호스트로부터 해당 업스트림 링크를 경유하여 데이터를 수신하며 업스트림 링크를 경유하여 데이터를 호스트로 보내도록 구성된 업스트림 인터페이스로 구성되며, 보안 장치는 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나 이상의 주변기기 중 하나에 커플링되며, 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하며, 해당 다운스트림 링크를 경유하여 데이터를 하나의 주변기기로 보내도록 구성된 하나 이상의 다운스트림 인터페이스를 더 포함하여 구성되며, 상기 방법은:
데이터를 업스트림 인터페이스를 경유하여 수신하는 것
수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하는 것
만약 수신된 데이터가 보안에 대한 위험을 제기하지 않는 것으로 확인되면, 수신된 데이터를 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달하는 것 및
만약 수신된 데이터가 보안에 대한 위험을 제기하는 것으로 확인되면, 수신된 데이터를 하나 이상의 다운스트림 인터페이스 중 어떤 것으로 전달되는 것을 방지하는 것으로 구성된 방법.
(P25) 제 P24 항의 방법에 있어서, 수신된 데이터를 전달하는 것을 방지하는 것은:
업스트림 링크를 링크 상태로부터 전기적 종단 상태로 변화하는 것 및
하나 이상의 해당 다운스트림 링크를 링크 상태로부터 전기적 종단 상태로 변화시키는 것을 포함하는 방법.
(P26) 제 P25 항의 방법에 있어서, 업스트림 링크를 링크 상태로부터 전기적 종단 상태로 변화하는 것은 종단 저항을 업스트림 링크에 커플링시키는 것을 포함하는 방법.
(P27) 하나 이상의 호스트 컴퓨팅 디바이스 ('호스트') 및 하나 이상의 주변 디바이스('주변기기')의 보안을 강화하는 컴퓨터 프로그램 제품으로, 보안 장치는 업스트림 링크를 경유하여 호스트와 커플링되며 호스트로부터 해당 업스트림 링크를 경유하여 데이터를 수신하며 업스트림 링크를 경유하여 데이터를 호스트로 보내도록 구성된 업스트림 인터페이스로 구성되며, 보안 장치는 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나 이상의 주변기기 중 하나에 커플링되며, 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하며 해당 다운스트림 링크를 경유하여 데이터를 하나의 주변기기로 보내도록 구성된 하나 이상의 다운스트림 인터페이스를 더 포함하여 구성되며, 컴퓨터 판독가능 프로그램은:
데이터를 업스트림 인터페이스를 경유하여 수신하며
수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하며
만약 수신된 데이터가 보안에 대한 위험을 제기하지 않는 것으로 확인되면, 수신된 데이터를 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달하며 및
만약 수신된 데이터가 보안에 대한 위험을 제기하는 것으로 확인되면, 수신된 데이터를 하나이상의 다운스트림 인터페이스 중 어떤 것으로 전달되는 것을 방지하도록 구성된 컴퓨터 프로그램 제품.
수많은 종래 기술에 의한 버스 아키텍처에 있어서 데이터는 호스트로부터 버스 상에 있는 전부 또는 몇몇 주변기기들로 전파된다. 이러한 경우에, 주변기기는 자신에게 지정된 데이터에 대해서만 응답해야 한다. 그러나, 언급한 바와 같이, 불량한 주변기기들은 예를 들어 그 주변기기에 지정되지 않은 데이터를 복사함으로써 응답할 수 있다. 이들 환경은 보안에 대한 위험을 제기할 수 있으며, 데이터가 의도한 주변기기 또는 주변기기들에 한해서 데이터를 전송하거나 또는 그렇지 않으면 호스트와 어떤 주변기기들 간의 데이터의 흐름을 제어하거나 감시하는 것이 유용할 수 있다. 본 발명의 실시예들은 이와 같은 전송, 제어 및/또는 감시를 수행한다. 그리하여, 본 발명의 실시예들은 데이터가 의도되지 않은 버스 주변기기들에게 제공되는 것을 방지함으로써 종래 기술에 의해 제기된 문제를 해결한다.
앞서 언급한 실시예의 형태는 이하 첨부된 도면을 참조한 세부 설명을 참고함으로써 보다 쉽게 이해될 것이다, 여기서:
도 1은 본 발명의 실시예에 따라 수행된 논리절차의 구성도 이며
도 2는 호스트 컴퓨팅 디바이스로부터 주변기기로의 통신 절차에 있어서 도 1의 보호 절차 104의 실행의 세부를 포함한 본 발명의 또 다른 실시예에 대한 구성도이며
도 3은 주변기기로부터 호스트 컴퓨팅 디바이스로의 통신 절차들에서 도 1의 보호 절차 104의 실행의 세부를 포함한 도 2의 실시예에 대한 구성도이며
도 4는 본 발명의 하드웨어의 아키텍처에 대한 구성도이며
도 5는 본 발명의 하드웨어 구현을 보여주는 구성도로서 도 4의 실시예의 실행을 위한 더 깊은 세부를 제공하며
도 6은 도 5의 실시예를 위한 데이터 모듈의 세부를 보여주는 구성도이며
도 7은 도 5의 실시예에 있어서 전력모듈의 세부를 보여주는 구성도이며
도 8은 본 발명의 실시예에 따른 주변기기의 인증절차의 논리적인 흐름을 보여주는 구성도이며
도 9는 도 8에 도시된 절차의 더 깊은 세부를 보여주는 구성도이며
도 10은 본 발명의 한 실시예에 따른 입력 개별화와 관련된 논리적 흐름을 보여주는 구성도이며
도 11은 본 발명의 한 실시예에 따른 파일 수준의 암호화와 연관된 논리적 흐름을 보여주는 구성도이며
도 12는 본 발명의 한 실시예에 따른 파일 수준의 해독과 연관된 논리적 흐름을 보여주는 구성도이며
도 13은 본 발명의 한 실시예에 따른 송신 암호화와 연관된 논리적 흐름을 보여주는 구성도이며
도 14는 본 발명의 한 실시예에 따른 송신 독해와 연관된 논리적 흐름을 보여주는 구성도이며
도 15는 본 발명의 한 실시예에 따른 공격 식별과 연관된 논리적 흐름을 보여주는 구성도이며
도 16은 본 발명의 한 실시예에 따라 수행된 논리적인 절차들의 구성도이며
도 17은 본 발명의 한 실시예에 따른 논리적인 흐름을 보여주는 구성도이며
도 18은 본 발명의 한 하드웨어 실시예의 아키텍처에 대한 구성도이며
도 19는 도 18의 실시예의 구현을 위한 더 자세한 내용을 제공하는 본 발명의 한 하드웨어 실시예의 구성도이며
도 20은 종래 기술에 의한 하나의 호스트 또는 하나 또는 그 이상의 주변기기들에서 수행된 논리적인 절차들의 순차 구성도이며
도 21은 도 20의 호스트 및 주변기기들에서 수행된 논리적인 절차들의 순차 구성도이며
도 22는 본 발명의 한 실시예에 따라 수행된 논리적인 절차들의 순차 구성도이며
도 23은 본 발명의 한 실시예에 따른 보안 장치의 개략적인 구성도이며 및
도 24는 본 발명의 또 다른 실시예에 따른 보안 장치의 개략적인 구성도이다.
도 25는 종래 기술에 의한 하나의 호스트 또는 하나 또는 그 이상의 주변기기들에서 수행된 논리적인 절차들의 순차 구성도이다.
도 26은 종래 기술에 의한 하나의 호스트 또는 하나 또는 그 이상의 주변기기들에서 수행된 논리적인 절차들의 순차 구성도이다.
도 27은 종래 기술에 의한 하나의 호스트 또는 하나 또는 그 이상의 주변기기들에서 수행된 논리적인 절차들의 순차 구성도이다.
도 28은 본 발명의 한 실시예에 따라 수행된 논리적인 절차들의 순차 구성도이다.
도 29는 본 발명의 한 대안적 실시예에 따라 수행된 논리적인 절차들의 순차 구성도이다.
도 30은 본 발명의 한 대안적 실시예에 따라 수행된 논리적인 절차들의 순차 구성도이다.
정의. 문맥에서 별도의 요구가 없다면, 본 명세서와 이에 수록된 청구항에 사용된 바와 같이 아래 용어들은 표시된 의미를 갖는다:
'호스트 컴퓨팅 디바이스'란 호스트 컴퓨팅 절차를 실행하기 위하여 구성된 프로세서를 가진 디바이스이다. 호스트 컴퓨팅 디바이스는 컴퓨팅 시스템의 전부 또는 부분일 수 있다.
'주변기기'란 호스트 컴퓨팅 디바이스와 분리가 가능하게 또는 분리가 불가능하게 커플링할 수 있으며 물리적으로 호스트 컴퓨팅 디바이스와 인접해 있는 부품으로 통신 인터페이스를 통하여 호스트 컴퓨팅 디바이스와 양방향 통신이 가능하도록 구성되어있다. 주변기기는 적어도 다음 중 하나일 수 있다: 호스트 컴퓨팅 디바이스에 내장되어 있고, 호스트 컴퓨팅 디바이스에 꽂을 수 있고, 그리고 호스트 컴퓨팅 디바이스와 물리적으로 구별된다. 주변기기는 만약 그것이 통신 인터페이스를 통해 주변기기와 호스트 컴퓨팅 디바이스 간에 통신이 가능하도록 디바이스와 충분히 근접하여 있다면 호스트 컴퓨팅 디바이스에 ""물리적으로 인접""한 것이다. 한 예로서, 주변기기는 USB 포트를 통하여 호스트 컴퓨팅 디바이스와 분리할 수 있는 상태로 접속이 가능한 USB 디바이스일 수 있다. 다른 예로서, 주변기기는 비디오, 키보드, 마우스, 터치패드 또는 랩톱 또는 데스크-사이드 컴퓨터의 마더보드에 납땜하기 위하여, 마더보드 상의 적절한 버스 또는 다른 인터페이스와 납땜을 통하여, 연결하기 위하여 집적회로로 패키지 된 다른 컨트롤러일 수 있다. 주변기기는 또한 무선 USB 연결로 동작할 수 있다. 주변기기는 또한 허브일 수 있다. 주변기기는 또한 USB커넥터에 직접 설치된 수신기와 같은 호스트 디바이스에 물리적으로 커플링될 수 있으며, 그리하여 커넥터가 플러그에 삽입되면 수신기는 USB커넥터를 경유하여 호스트 컴퓨팅 디바이스에 장착된다. 대안으로, 주변기기는 물리적으로 호스트 내에 포함될 수 있으며 커넥터, 납땜된 전기적 연결 또는 다른 적절한 인터페이스를 경유하여 그것과 연결될 수 있다.
'네트워크 상의 노드'는 호스트 컴퓨팅 디바이스 또는 주변기기 중의 하나일 수 있다.
'분석'은 컴퓨터에 의해 수행된 기능이다.
두 소스 중 '하나로부터 수신하는 것'은 양쪽으로부터 수신하는 것을 포함한다.
'보안에 대한 위험을 제기하는 환경'이란, 물리계층 또는 송신계층에 있는 데이터의 변형(garble)이 아닌, 데이터를 인가되지 않은 접근, 파괴, 또는 가용성의 중단의 위험에 처하게 하는 환경이다.
"디바이스 간의 통신 중단을 배제하는 보존 절차의 실행"은 (i) 디바이스 간의 중단이 일어나지 않을 만큼 신속하게 행동하는 것, (ii) 데이터의 수신을 나타내는 신호를 발급하는 것, (iii) 프레임 패킷의 시작과 같은 주기적인 신호를 발급하는 것, (iv) 타임아웃 조건을 방지하는 방법으로 데이터를 보내거나 수신하는 것, (v) 트랜잭션이 다시 시도되도록 트랜스미션을 발행하는 것, (x) 성공적인 연결을 나타내는 것과 같은 전기적 종단을 추가하는 것, (vii) 무-확인응답을 보내는 것, (viii) 주변기기를 유예 또는 비-가동 상태에 들어가도록 하는 것, (ix) 시스템을 익숙하고 바람직한 상태에 있도록 버스 프로토콜을 유지하는 것, (x) 다른 디바이스를 대신하여 신호를 보내는 것, (x) 다른 디바이스를 에뮬레이팅하는 신호를 보내는 것뿐만 아니라 (xii) 변형(garble)된 데이터처럼 재 발송 하려는 데이터에 대한 필요를 나타내는 신호를 발급하는 것을 포함하며 이에 한정되지 않는다.
본 보호절차의 적어도 하나의 이점은 통신을 유지하는 것을 포함한다. 수많은 버스 아키텍처들에서, 데이터는 하나 이상의 트랜잭션을 통하여 통신되어야만 한다. 예를 들어, 만약 데이터가 두 번의 트랜잭션을 통하여 통신되어야만 한다면, 제2 트랜잭션에 수행되는 분석절차는 시스템이 제1 트랜잭션에 의해 도달된 상태를 잃어버리지 않는 방법으로 수행되어야만 한다. 예를 들어, 통신 선로들이 규격에 따라 전기적으로 종단되지 않으면, 호스트는 규격에 따른 전기적 종단의 결핍을 주변기기의 접속을 끊으라는 것으로 해석할 수 있으며, 향후 통신이 일어나기 위해서는 주변기기의 열거 절차들이 다시 수행되어야만 한다.
특정 트랜잭션들은 오류 확인이 없으며 무-확인응답이나 확인응답 신호의 송신을 필요로 하지 않는다. 이는 오류 확인보다 데이터 흐름의 유지를 강조하는 오디오 데이터 전달과 같은 등시성 이송을 포함한다. 이러한 트랜잭션들이 본 발명의 범위 내에 있도록 의도되었다. 이해를 돕기 위해, 확인응답과 무-확인응답 신호들이 본 발명의 특정 실시예의 설명에 포함되었다.
주변기기의 "본성"이란 그 기능성(예로서, 키보드, 허브, 또는 프린터) 및 선택적으로 그 신원(벤더 ID, 제품 ID, MAC 주소)을 포함한다.
호스트의 "구성"은 그 하드웨어 구성의 하나 이상, 그 소프트웨어 구성(그 운영시스템을 포함), 그 네트워크 구성(예로서, 네트워크 크기/형태, 네트워크 연결성) 및 그 신원(벤더 ID, 제품 ID, MAC 주소)을 포함한다.
데이터의 "특성"은 그 형태의 하나 이상 (예로서, 메타데이터, 실행가능, 또는 텍스트 파일), 크기, 데이터를 보내기 위해 사용되는 프로토콜, 데이터 값, 및 데이터로부터 추출할 수 있는 다른 특성을 포함한다.
호스트, 또는 주변기기, 또는 통신 인터페이스의 "상태"란 그것들에 상응하는 상태 기계의 상황을 특정 짓는 논리값의 셋을 의미한다.
"규정"은 네트워크 상의 노드, 네트워크 상의 데이터의 특성, 또는 네트워크의 구성의 본성 또는 상태에 의존할 수 있다.
"커플링된" 것은 중개 디바이스를 통한 간접 커플링을 포함한다.
"투명하게"란 통신의 수신자가 통신 중에 추가 노드를 탐지할 수 없는 형태로 통신을 수행하는 것을 의미한다. 이와 같이 어떤 디바이스가 주변기기나 호스트 컴퓨팅 디바이스와 통신하면서 주변기기 또는 호스트 컴퓨팅 디바이스에, 경우에 따라, 추가 노드로 나타나지 않을 때 그 통신은 "투명하게" 수행된 것이다. 하나의 디바이스가 한 경우에 주변기기 또는 호스트와 통신을 할 수 있으며, 예를 들어, 처음에 호스트에 노드로 나타나기 위한 방법으로 호스트에 연결되고, 같은 디바이스가 나중에 호스트와 주변기기와 통신을 할지라도 호스트와 주변기기에 노드로 나타나지 않을 수 있다. 후자의 경우, 그런데도 통신은 "투명하게" 수행되었다고 간주된다
기술된 "절차"는 소프트웨어, 펌웨어, 하드웨어 (프로세서 또는 조합논리와 같은) 또는 이들로 이루어진 어떤 조합을 사용하여 컴퓨터 내에서 기술된 기능의 수행이다. 기술된 기능의 전부 또는 일부는 트랜지스터 또는 저항과 같은 능동 또는 수동 전자부품에 의해서 수행될 수 있다. 용어 "절차'를 사용함에 있어서 비록 몇몇 실시예에서 절차가 스케쥴 엔티티에 의해 실행될 수도 있지만 반드시 스케쥴 엔티티를 필요로 하지 않는다. 더욱이, 만약 문맥에서 요구하지 않으면, "절차"는 하나 이승의 프로세서 또는 하나 이상의 (단일- 또는 멀티-프로세서) 컴퓨터를 이용해서 수행될 수도 있다.
도 1은 본 발명의 실시예에 따라 수행된 논리절차의 구성도이다. 이 실시예에서, 절차 101에서, 데이터는 주변기기와 호스트 컴퓨팅 디바이스의 하나로부터 "투명하게" 수신된다. 용어 "투명하게"의 사용은, 위에서 정의된 대로, 데이터의 통신이 데이터를 수신할 때 호스트와 주변기기가 추가 노드를 인지하지 못하는 방법으로 이루어 졌다는 것을 의미한다. 절차 102에서 수신된 데이터는 저장된다. 또한, 본 실시예는 선택적으로 기기간 통신 중단을 배제하는 보호절차 104를 수행하는 것을 포함한다- 특별히, 보호절차 104는 주변기기와 호스트 간의 통신의 중단을 배제한다. 또한, 절차 104가 진행되는 동안, 절차 103은 저장된 데이터를 분석한다. 결정 절차 105에서, 보안의 위험성 제기 여부에 대한 결정이 있다. 만약 위험이 제기되지 않았다면, 데이터는 절차 107에서 다른 주변기기와 호스트로 투명하게 전달된다. 다시 말하면, 이곳의 절차들은 호스트와 주변기기 사이의 통신에 개입된다. 만약 위험이 제기되지 않았다면, 호스트와 주변기기 간의 데이터 통신은 가능해진다. 다른 한편으로는, 만약 절차 105에서 보안 위험이 제기되었다고 결정하면 보안 절차 106이 수행된다.
도 1에 있는 절차들은 호스트와 주변기기로부터 물리적으로 분리된 기기에서 선택적으로 수행될 수 있다. 그러나 다른 실시예에서 호스트 컴퓨팅 디바이스에 집적화된 하드웨어에서 수행될 수도 있다. 예로서, 절차를 수행하기 위한 소프트웨어가 커널이나 바이오스 수준에서 호스트에 집적화 될 수도 있다. 대안으로, 절차들은 USB 기간 허브와 사우스브리지 중 하나 이상에 집적화 될 수 있다. 또 추가 실시예에 있어서 절차들은 주변기기 혹은 복합 디바이스를 만들기 위하여 주변기기에 물리적으로 커플링된 부품에 바로 직접화함으로써 주변기기 자체에서 수행될 수 있다. 그밖에 특별히 보안 절차는 앞서 언급한 위치 중 어디에라도 있는 하드웨어 또는 소프트웨어에서 수행 될 수 있다.
한 실시예에서, 분석할 데이터와 데이터 분석으로부터 유도된 결과들 중 하나 이상은 데이터베이스에 저장된다. 사용자는 또한 선택적으로 일어나는 절차들에 대해 통보 받을 수 있다. 예를 들면 호스트 컴퓨팅 디바이스와 주변기기 중 적어도 하나의 현황을 나타내기 위하여 발광다이오드 표시기를 사용할 수 있다. 선택적으로, 도 1의 절차들이 호스트와 주변기기로부터 물리적으로 분리된 기기에서 수행될 때, 발광다이오드 표시기들은 장치와 커플링될 수 있으며, 구체적인 실시예에서 장치에 장착될 수 있다.
보안절차 106의 작동을 주관하는 규정들은 사용자들에 의해 또한 구성될 수 있다. 예를 들면 사용자는 어떤 종류의 주변기기(예: 카메라, 프린터)가 호스트에 연결되어야 할 것인지를 명시할 수 있다. 또한 종료에 이르기 위한 데이터 이동에 의해 소요된 시간의 양에 따른 대체 규정의 사양과 같은 추가적인 파라미터들도 구성될 수 있다. 하나의 규정이 모든 다운스트림 허브들을 무능화 시킬 수 있다. 다운스트림 허브들을 무능화 시키는 적어도 하나의 이점은 부적절하거나 악의적인 허브 운영을 통하여 잠재적인 데이터 누설의 예방이다. 규정들은 지역적 또는 글로벌 하게 저장될 수 있으며 동적일 수 있다. 규정들은 호스트 컴퓨팅 디바이스 또는 주변기기의 운영시스템 또는 드라이버에 의존적일 수 있다. 또한 규정들은 주변기기의 종류들(예: 키보드, 하드드라이브, 카메라, 전화기 등), 데이터 파일의 종류들(예: 실행가능, 텍스트 파일, .xls 등), 호스트 종류들(예: A라는 명칭을 가진 컴퓨터, 그룹 A 소속 컴퓨터, 윈도우 기기 등), 인터셉트 디바이스/모듈(예: 모델 번호 또는 그룹 번호), 및 차별을 위해 기타 가능한 바람직한 기준들 간에 차별을 둔다. 호스트는 컴퓨터, 스마트폰, 태블릿, 휴대정보단말기(PDA) 또는 이와 같은 것들일 수 있다. 그러므로, 흔히 주변기기들로 생각되는 스마트폰 같은 몇몇 디바이스들은 호스트가 될 수 있다.
도 2는 호스트 컴퓨팅 디바이스로부터 주변기기로의 통신 절차에 있어서 도 1의 보호 절차 104의 실행의 세부를 포함한 본 발명의 또 다른 실시예에 대한 구성도이다. 도 2의 절차 201에서 호스트 컴퓨팅 디바이스는 유니버설 시리얼 버스 (USB)를 통하여 도 1의 절차들을 수행하며 "USB 리피터"라고 부르는 디바이스로 데이터를 전송한다. 절차 202에서 USB 리피터는 데이터를 수신한다. 절차 203에서 리피터는 그 국부 기억장치에 수신된 데이터를 저장한다. 절차 204에서 데이터는 테스트 프로그램에 제공되며 절차 205에서는 도 1의 절차 103, 105 및 106에 따라 데이터를 분석한다. 도 1에 관련하여 논의한 바와 같이 만약 절차 103에 연이은 분석 절차 105에서 보안의 위험성에 대한 결정이 없다면 데이터는 절차 107에서 전달된다. 만약 보안의 위험성에 대한 결정이 있을 경우에는 절차 205에서 데이터 또는 수정된 패킷은 발급되지 않는다.
[00128] 또한 도 2의 실시예에는 보호절차를 포함한다. 더 특별하게는 도 1의 절차 103과 105는 종료하기 까지 얼마간의 시간을 필요로 할 수 있으며 보호절차 104는 이 시간을 제공하기 위하여 도 2의 실시예에서 실행된다. 결정 절차 206에서는 타임아웃 이전에 절차 205에 의한 데이터 가용여부에 대한 결정이 있으며 그래서 만약 데이터가 가용 하다면 절차 209에서 데이터는 주변기기로 전송된다. 만약 절차 205로부터 데이터의 전송이 없으면 프로그램 로직은 절차 207에서 무-확인응답 신호를 보내기 위해 그리고 절차 208에서 호스트에 의하여 패킷을 보내기 위한 반복되는 시도를 기다리기 위하여 동작한다. 이 보호절차의 사례는 호스트 컴퓨팅 디바이스와 주변기기 간의 기기간 통신의 중단을 예방한다.
도 3은 주변기기로부터 호스트 컴퓨팅 디바이스로의 통신 절차들에서 도 1의 보호절차 104의 실행의 세부를 포함한 도 2의 실시예에 대한 구성도이다. 묘사된 절차들은 도 2에 있는 절차들과 대칭적이다. 데이터는 호스트 컴퓨팅 디바이스 대신에 주변기기로부터 수신된다. 그리하여 도 3의 절차 301에서 주변기기는 데이터를 USB를 통하여 USB 리피터로 전송하며 이는 (이전에 기술한 바와 같이) 도 1의 절차들을 실행한다. 절차 302에서 USB 리피터는 데이터를 수신한다. 절차 303에서 리피터는 수신된 데이터를 그것의 국부 기억장치에 저장한다. 절차 304에서 데이터는 테스트 프로그램에 제공되며 절차 305에서는 도 1의 절차 103, 105 및 106에 따라 데이터를 분석한다. 도 1에 관련하여 논의한 바와 같이 만약 절차 103에 연이은 분석 절차 105에서 보안의 위험성에 대한 결정이 없다면 데이터는 절차 107에서 전달된다. 도 2와 유사한 방법으로, 만약 보안의 위험성에 대한 결정이 있을 경우에는 절차 305에서 데이터 또는 수정된 패킷은 발급되지 않는다.
도 2의 실시예와 관련하여 기술한 바와 같이, 도3의 실시예는 이와 유사하게 보호 절차를 포함한다. 더 특별하게는 도 1의 절차 103과 105는 종료하기 까지 얼마간의 시간을 필요로 할 수 있으며 보호절차 104는 이 시간을 제공하기 위하여 도 3의 실시예에서 실행된다. 결정 절차 306에서는 타임아웃 이전에 절차 305에 의한 데이터 가용여부에 대한 결정이 있으며 그래서 만약 데이터가 가용 하다면 절차 309에서 데이터는 주변기기로 전송된다. 만약 절차 305로부터 데이터의 전송이 없으면 프로그램 로직은 절차 307에서 무-확인응답 신호를 보내기 위해 그리고 절차 308에서 호스트에 의하여 패킷을 보내기 위한 반복되는 시도를 기다리기 위하여 동작한다. 도 2에서와 같이 이 보호절차의 사례는 호스트 컴퓨팅 디바이스와 주변기기 간의 기기간 통신의 중단을 예방한다.
도 4는 본 발명의 하드웨어의 설계에 대한 구성도이다. 하드웨어는 호스트 컴퓨팅 디바이스 401과 주변기기 405 사이에 위치한 하드웨어 USB 리피터 407처럼 보일 수 있다. 도 4에 보여준 실시예는 3개의 모듈을 보여준다. 호스트 컴퓨팅 디바이스 인터페이스는 물리계층 402를 통한다. 주변기기 인터페이스는 물리계층 404를 통한다. 물리계층 402와 404는 CPU 인터페이스 408과 리피터 403을 포함하는 주 모듈 406과 통신한다. 필드 프로그래머블 게이트 어레이(FPGA)에 내장될 수도 있는 모듈 406은 도 1 내지 도 3과 연계하여 위에 개시되고 이하 부연 설명된 절차를 수행한다. 대안적인 실시예에서 품목 402, 406, 및 404은 단일 모듈로 집적화 될 수도 있다.
도 5는 본 발명의 하드웨어 구현을 보여주는 구성도로서 도 4의 실시예의 실행을 위한 세부를 보여준다. 도 5의 실시예는 3개의 모듈을 포함한다: 전력 모듈, 데이터 모듈, 및 상호간 그리고 호스트 컴퓨팅 디바이스 401 및 주변기기 405, 506 및 507과 통신하는 신뢰 허브 504이다. 전력 모듈의 한 실시예는 전력시스템 502이다. 데이터 모듈의 한 실시예는 보호계층 503이다. 허브 모듈의 한 실시예는 신뢰허브 504이다. 보호계층 503은 선택적으로 데이터 선로들을 전기적으로 격리시키는 격리 방안을 포함한다. 격리 방안은 데이터 선로의 분리 방법을 추가하기 위하여 광학적 격리, 기계적 릴레이, 전기적 버퍼링 중 하나 또는 그 이상에 의해 실행될 수 있다.
도 6은 도 5의 실시예를 위한 데이터 모듈의 세부를 보여주는 구성도이다. 도 6에 보여준 실시예에서, 데이터 모듈은 주 모듈 FPGA 406과 통신하는 USB 물리계층 402와 404와 같이 구현되는 보호계층 503이다. 또한 비 휘발성 기억장치 607과 랜덤 액세스 기억장치 (RAM) 608은 클락 발진기 모듈 603을 따라서 FPGA 406에 커플링된다.
도 7은 도 5의 실시예에 있어서 전력모듈의 세부를 제공하는 구성도이다. 전력모듈은 호스트 컴퓨팅 디바이스 401 및 주변기기 405와 커플링된다. 통상 전자적으로 동작되는 스위치 704는 정류기 702를 통한 선로 전압 또는 퓨즈 703에 의해 보호된 호스트 컴퓨팅 디바이스 전력으로부터 선택적으로 제공한다. 선로 전압은, 예를 들어, 110V 교류일 수 있다. 이 전력은 FPGA 406에 (전력을) 공급하며, 무정전 전원 705는, 플라이백 컨버터 706과 보호회로 707을 통하여 주변기기 405에 전력을 공급한다.
구체적으로 관련된 실시예에서 전력모듈은 전력 중단으로부터 호스트 컴퓨팅 디바이스와 주변기기를 보호하기 위한 전용 전력시스템 방위를 제공하기 위한 내부 능동형 클램프 회로를 포함한다. 전력시스템 방위는 전기적으로 5V와 접지 전력선로를 격리한다. 전기적 격리는 과전압 또는 과전류와 같은 상태로부터 호스트 컴퓨팅 디바이스와 주변기기를 보호한다. 본 실시예에서 허용된 것보다 더 많은 전류를 뽑아내기 위한 호스트 컴퓨팅 디바이스 또는 주변기기에 의한 시도는 다음 대응방안 중 적어도 하나를 수행하는 보호 절차를 촉발한다: 문제의 포트를 잠금, 규격 위반을 사용자에게 통지, 위반 디바이스의 연결을 물리적으로 해제할 것을 사용자에게 요구, 및 다시 연결을 가능케 함. 몇몇 실시예에서 전력 서-지 시에 전력의 격리를 제공하기 위하여 슈퍼-커패시터 또는 배터리 기술이 사용될 수도 있다.
도 8은 본 발명의 실시예에 따른 주변기기의 인증절차의 논리적인 흐름을 보여주는 구성도이다. 도시된 절차는 항목 801에서 시작된다. 항목 802에서 주변기기가 연결되며 주변기기의 본성을 특징짓는 데이터가 주변기기로부터 수신된다. 결정 절차 803에서는 만약 주변기기의 본성이 사용자 인터페이스를 가진 것을 포함하면 인증절차는 사용자 804에게 챌린지를 발급한다. 몇몇 실시예에 따르면 챌린지는 호스트 컴퓨팅 디바이스, 보안 모듈, 주변기기 및 외부 모듈의 하나에 위치한 디스플레이를 통하여 발급될 수도 있다. 대안으로 또는 추가하여 챌린지는 청각 또는 촉각 챌린지일 수도 있다. 더우기 호스트 컴퓨팅 디바이스 와 주변기기는 보안을 추가하기 위하여 챌린지에 접근하는 것을 막을 수도 있다. 호스트 컴퓨팅 디바이스 및 주변기기를 접근으로부터 방지할 수 있는 방법으로 사용자 챌린지를 표현하는 하나의 실시는 보안 모듈의 추가적인 계산 능력에 의해 제어되는 외부 화면 또는 스피커를 통하는 것이다. 이러한 계산적인 능력은 호스트 또는 주변기기의 어느 것과 어떤 다른 방법으로 반드시 인터랙션하지 않을 수 있다. 결정 절차 805에서 주변기기로부터 수신된 데이터는 분석된다. 도시된 실시예에서 사용자 반응에 의존하여 실패 절차 806 또는 성공 절차 807이 실행된다.
도 9는 도 8에 도시된 절차의 구체적인 세부를 보여주는 구성도이다. 도시된 절차는 항목 901에서 시작된다. 항목 902에서 주변기기의 본성을 특징짓는 데이터가 주변기기로부터 수신된다. 절차 903에서 디바이스가 데이터에 근거하여 승인 되었는지를 시험한다. 만약 디바이스가 절차 903에서 승인이 되면 데이터는 절차 904에서 주변기기로부터 호스트 디바이스로 보내진다. 만약 디바이스가 절차 903에서 승인이 되지 않으면 주변기기에 사용자 응답을 입력하도록 요구하는 챌린지 절차 905가 수행된다. 주변기기로부터 수신되고 사용자 응답에 기인한다고 추정되는 데이터를 분석한다. 만약 데이터가 챌린지 절차 905을 만족하지 못하면 실패 절차 909가 개시되고 뒤이어 절차 913에서 호스트로 NA가 보내진다. 만약 주변기기로부터 수신된 데이터가 챌린지 절차 905를 만족하면 절차 906에서 추가적인 이의 제기가 제시 된다. 절차 908에서 챌린지 절차들의 완료 여부에 대한 시험이 있으며, 만약 완료되지 않았다면 절차 910에서 무-확인응답이 호스트로 보내진다. 만약 절차 908에서 챌린지 절차가 완료되었다고 결정되면 절차 911에서 디바이스 승인이 발급되고 무-확인응답이 절차 912에서 호스트로 보내진다.
도 10은 본 발명의 한 실시예에 따른 입력 개별화와 관련된 논리적 흐름을 보여주는 구성도이다. 본 절차는 항목 1001에서 시작된다. 절차 1002에서 주변기기가 연결되고 그 본성을 특징짓는 데이터가 주변기기로부터 수신된다. 만약 디바이스의 본성이 사용자 인터페이스 절차 1003를 가져야 한다고 결정되면 절차 1004에서 프로그램 로직은 사용자 입력을 기다린다. 절차 1005에서 사용자 입력에 기인된다고 추정되는 주변기기로부터 사용자입력 데이터가 수신되며 저장된다. 그 다음 절차 1006에서 저장된 데이터는 식별 규정에 의하여 정의된 환경을 식별하기 위하여 분석된다. 절차 1007에서 데이터가 규정에 의하여 정의된 환경과 일치하는지 여부에 대한 결정이 이루어진다. 만약 일치된다는 결정이 있게 되면 개별화 규정에 의해 정의된 개별화 절차 1009가 실행되며 프로그램 흐름은 절차 1011에서 종료된다. 만약 절차 1007에서의 결정이 일치되는 것이 없다는 것이라면 절차 1008에서 데이터는 호스트 컴퓨팅 디바이스로 전달되며 프로그램 흐름은 종료된다. 한 실시예에서 환경은 화면인쇄, 복사/붙여 넣기, 우 클릭, 또는 삽입 키 등과 같은 특정 키보드 또는 마우스 기능들의 불허를 유발할 수도 있다. 또한 환경은 특정 소프트웨어가 호스트 컴퓨팅 디바이스, 주변기기, 또는 이들 중 하나의 네트워크 상에서 실행될 때 특정 기능들이 허용되지 않는 것과 같은 형태로 소프트웨어에 연계될 수도 있다. 또 다른 실시예에서 키 스트로크와 같은 데이터는 키 스트로크의 특정 조합을 감지하기 위해 로그 될 수 있다. 만약 키 스트로크의 유해한 조합이 수신되면 예를 들어 유해한 통신을 차단 및/또는 사용자에게 통보할 수 있는 보호절차가 실행된다. 만약 키 스트로크의 특정 조합, 또는 "패닉 키 스트로크"가 수신되면 비상 절차가 실행될 수 있다. 비상 절차에서 예를 들어 통상적인 키 스트로크의 전달이 금지될 수도 있으며 보안 모듈 자체, 또는 호스트 컴퓨팅 디바이스, 또는 주변기기, 또는 이들의 네트워크 어디에선가 수행된 절차들이 있을 수도 있다. 몇몇 실시예는 무음 경보의 촉발, 청색 화면 표시, 인터넷 접근, 자발적 파괴, 또는 보안 모듈, 호스트 컴퓨팅 디바이스, 주변기기 또는 이들의 네트워크 중 하나에서 데이터를 삭제하는 것들을 포함한다.
도 11은 본 발명의 한 실시예에 따른 파일 수준의 암호화와 연관된 논리적 흐름을 보여주는 구성도이다. 데이터는 처음으로 절차 1101에서 호스트 컴퓨팅 디바이스로부터 수신된다. 절차 1102에서는 주변기기로의 쓰기 명령에 적용을 받는 파일 수준에서 데이터 식별이 실행된다. 절차 1103에서는 데이터가 규정에 따라 암호화 되어야 할지를 결정한다. 만약 절차 1103이 데이터를 암호화 해야 한다는 결정에 도달하면 절차 1104에서 암호화 절차가 결정된다. 절차 1105에서 파일 수준의 데이터는 각 파일에 대해 차별화 될 수 있는 암호화 절차에 따른다. 절차 1103에서 데이터를 암호화 하지 않는다고 결정하면 암호화 단계는 계속되지 않는다. 마지막으로 절차 1106에서 데이터는 암호화 되었든지 또는 암호화가 안 되었든지 주변기기에 저장된다. 한 실시예에서 주변기기는 호스트 컴퓨팅 디바이스의 부분일 수 있기 때문에 암호화된 데이터는 호스트 컴퓨팅 디바이스의 하드드라이브 상에 저장될 수도 있다. 한 실시예에서 암호화 절차는 또한 암호화 후에 저장된 데이터가 저장된 위치나 주소에 의존한다. 암호화 절차는 또한 암호화 된 각 파일과 함께 키가 변하도록 하는 방법처럼 의사랜덤 숫자와 마찬가지로 사용자 패스워드로부터 유도된 키에 연관되게 구성될 수도 있다. 한 실시예에서 타이밍 조건들을 만족시키기 위해 최신의 해쉬(hash) 검색 알고리즘들을 실행시킨다.
도 12는 본 발명의 한 실시예에 따른 파일 수준의 해독과 연관된 논리적 흐름을 보여주는 구성도이다. 데이터는 처음으로 절차 1201에서 주변기기로부터 수신된다. 절차 1202에서는 호스트 컴퓨팅 디바이스로의 읽기 명령에 적용을 받는 파일 수준에서 데이터 식별이 실행된다. 절차 1203에서는 데이터가 규정에 따라 해독 되어야 할지를 결정한다. 만약 절차 데이터를 해독해야 한다고 결정하면 절차 1204에서 해독 절차가 결정된다. 다음으로 절차 1205에서 파일 수준의 데이터는 각 파일에 대해 차별화 될 수 있는 해독 절차에 따른다. 절차 1203에서 데이터를 해독하지 않는다고 결정하면 암호화 단계는 계속되지 않는다. 마지막으로 절차 1206에서 데이터는 해독되었든지 또는 해독되지 않았든지 호스트 컴퓨팅 디바이스에 저장된다. 한 실시예에서 규정은 어떤 호스트 컴퓨팅 디바이스가 특정 파일이나 파일 형태의 해독이 허용되었는지를 정의한다.
도 13은 본 발명의 한 실시예에 따른 송신 암호화와 연관된 논리적 흐름을 보여주는 구성도이다. 데이터는 처음으로 절차 1301에서 호스트 컴퓨팅 디바이스로부터 수신되며 이어서 절차 1302에서 저장된다. 이에 이어서 두 서브-절차가 병행하여 수행된다. 서브-절차 1303에서 저장된 데이터는 암호화 하기 위하여 그것의 어떤 부분을, 만약 있다면, 분석할 지 결정하기 위해 분석된다. 절차 1304에서는 이 분석에 근거하여 데이터 암호화 여부가 결정된다. 만약 절차 1304에서 데이터를 암호화 하기로 결정하면 절차 1308에서 (앞으로 설명할 데이터 준비상태 테스트 후에) 주변기기로 전달하기 위하여 분석에 따른 암호화 절차 1305가 실행된다. 만약 절차 1304에서 데이터를 암호화 하지 않기로 결정하면 암호화 되지 않은 데이터는 절차 1308에서 (또다시 앞으로 설명할 데이터 준비상태 테스트 후에) 주변기기로 전송된다. 서브-절차 1306에서 블록 1304 및 1305로부터 데이터 준비상태가 테스트된다. 만약 데이터가 준비되었다고 결정되면 데이터는 암호화 되었든지 암호화 안 되었든지 절차 1308에서 주변기기로 전송된다. 만약 데이터가 준비되지 않았다고 결정되면 (도 2 및 도 3과 연계하여 이전에 설명한 바와 같이) 기기간 통신 중단을 배제하는 보호절차 1307이 실행된다.
도 14는 본 발명의 한 실시예에 따른 송신 독해와 연관된 논리적 흐름을 보여주는 구성도이다. 데이터는 처음으로 절차 1401에서 주변기기로부터 수신되며 이어서 절차 1402에서 저장된다. 이에 이어서 두 서브-절차가 병행하여 수행된다. 서브-절차 1403에서 저장된 데이터는 해독하기 위하여 그것의 어떤 부분을, 만약 있다면, 분석할지 결정하기 위해 분석된다. 만약 절차 1403에서 데이터를 해독하기로 결정하면 절차 1408에서 호스트 컴퓨팅 디바이스로 전달하기 위한 분석에 따른 해독 절차 1405가 실행된다. 만약 절차 1404에서 데이터를 해독하지 않기로 결정하면 절차 1408에서 암호화 된 데이터는 호스트 컴퓨팅 디바이스로 전송된다. 다른 서브-절차 1406에서는 블록 1404 및 1405로부터 데이터 준비상태가 테스트 된다. 만약 데이터가 준비되었다고 결정되면 데이터는 해독되었든지 암호화 되었든지 절차 1408에서 호스트 컴퓨팅 디바이스로 전송된다. 만약 데이터가 준비되지 않았다고 결정되면 기기간 통신 중단을 배제하는 보호 절차 1407이 실행된다.
도 15는 본 발명의 한 실시예에 따른 공격 지문분석과 연관된 논리적 흐름을 보여주는 구성도이다. 절차 1501에서 데이터는 주변기기와 호스트 컴퓨팅 디바이스 중 하나로부터 수신된다. 절차 1502에서 수신된 데이터는 저장된다. 추가하여, 절차 1503은 보안 위험을 야기하는 주변환경을 식별하기 위하여 수신된 데이터를 데이터 베이스에 대해 테스트하는 분석 절차를 실행한다. 한 실시예에서 데이터베이스를 검색하기 위해 해쉬(hash) 검색 알고리즘이 사용된다. 한 실시예에서 데이터베이스는 공격 패턴들 및/또는 알려진 혹은 예상되는 공격의 지문들을 포함한다. 이 데이터베이스는 예를 들어 직접적으로 또는 호스트 컴퓨팅 디바이스 또는 주변기기를 통하여 갱신될 수 있다. 절차 1504에서는 분석절차가 보안의 위험을 야기하는 환경을 식별하였는지를 결정한다. 만약 절차 1504에서 보안의 위험에 대한 결정이 없었다면 절차 1506에서 데이터는 다른 주변기기 및 호스트 컴퓨팅 디바이스로 전달 된다. 그러나 만약 절차 1504에서 보안에 위험을 야기하는 환경이 결정되면 규정에 의하여 정의된 보안 절차 1505가 수행된다. 한 실시예에서 보안 절차는 다른 주변기기와 호스트 컴퓨팅 디바이스로 수정된 데이터를 보낼 수도 있다. 다른 실시예에서 보안 절차는 데이터 차단, 공격의 로깅 및 사용자 통보 중 적어도 하나를 포함할 수도 있다. 보안 절차는 또한 공격에 관한 정보를 중앙 위치로 전송하는 것을 포함할 수도 있다. 보안 절차는 또한 데이터베이스를 갱신하고 미래 공격을 예측하기 위해 공격에 관한 정보를 사용할 수도 있다.
도 26은 종래 기술에 의한 하나의 호스트 또는 하나 또는 그 이상의 주변기기들에서 수행된 논리적인 절차들의 순차 구성도이다. 화살표가 지시하는 것처럼 시간은 아래 쪽으로 이동하면서 증가한다. 이 순서에서, 주변기기 1 2602는 USB를 경유하여 호스트 2601과 커플링된다. 절차 2603에서, 호스트 2601은 주변기기로 OUT 토큰 패킷을 보낸다. 주변기기 2602는 절차 2604에서 패킷을 수신한다. 호스트는 그 다음 절차 2605에서, 절차 2606에서 주변기기에 의해 수신되는, DATA 패킷을 보낸다. 주변기기는 절차 2607에 표시된 바와 같이 선택적으로 무-확인응답을 보낼 수 있다. 만약 이런 일이 일어나면, 호스트는 그 다음 2608에서 처음으로 이 무-확인응답을 수신하며 그 다음 얼마 후에 OUT 및 DATA 패킷의 송신을 다시 시도한다. 호스트는 절차 2609에서, 2610에서 주변기기에 의해 수신되는, OUT 패킷을 재송신한다. 호스트는 그 다음 절차 2611에서, 절차 2612에서 주변기기에 의해 수신되는, DATA 패킷을 재송신한다. 이 지점에서, 주변기기는 다른 재송신을 요구하기 위하여 다른 무-확인응답 패킷을 발급할 수 있으며, 루프는 (이를) 반복한다. 그러나 주변기기는 어느 지점에서, 절차 2613에 나타난 바와 같이, 확인응답으로 응답하고, 이는 절차 2614에서 호스트에 의해 수신되며, 이는 트랜잭션을 종료한다.
도 27은 종래 기술에 의한 하나의 호스트 또는 하나 또는 그 이상의 주변기기들에서 수행된 논리적인 절차들의 순차 구성도이다. 화살표가 지시하는 것처럼 시간은 아래 쪽으로 이동하면서 증가한다. 이 순서에서, 주변기기 1 2702는 허브일 수 있으며 호스트 2701에 커플링된다. 제2 주변기기 2703은 주변기기 1 2702에 커플링된다. 처음 절차 2704에서 호스트 2701은 주변기기 2에 지정된 OUT 패킷을 보낸다. 이 신호는 주변기기 1 2702에 의해 수신되며 절차 2705에서 주변기기 2 2703으로 재송신 된다. 주변기기는 그 다음 절차 2706에서 이 신호를 수신한다. 다음, 호스트는 절차 2707에서 DATA 패킷을 보낸다. 주변기기 1은 절차 2708에서 이 패킷을 수신하고 재송신한다. 패킷은 절차 2709에서 주변기기에 의해 수신된다. 이 지점에서, 주변기기는 선택적으로 절차 2710에서 무-확인응답으로 응답할 수 있다. 주변기기가 무-확인응답을 보내는 이유는 주변기기가 데이터를 수신할 준비가 안 되었을 뿐만 아니라 송신된 데이터가 변질되었거나 그렇지 않으면 재송신의 필요성을 포함할 수 있다. 이런 일이 일어나면, 주변기기 1은 이 무-확인응답을 수신하고 그것을 절차 2711에서 호스트로 송신한다. 호스트는 절차 2712에서 이 무-확인응답을 수신한다. 무-확인응답을 수신함에 따라 호스트는 얼마 후에 절차 2713에서 최초의 OUT 패킷을 재송신한다. 주변기기 1은 절차 2714에서 이 신호를 수신하고 재송신하며, 주변기기는 절차 2715에서 OUT 패킷을 수신한다. 호스트는 그 다음 절차 2716에서, 절차 2717에서 주변기기 1에 의해 수신되고 재송신되는, DATA 패킷을 재송신한다. 주변기기는 절차 2718에서 이 데이터를 수신한다. 이 지점에서, 주변기기는 또 다른 무-확인응답으로 응답하는 것을 선택할 수 있다. 이런 일이 일어나면, 루프는 반복된다. 그러나, 주변기기는 어느 지점에서 절차 2719에 표시된 바와 같이 확인응답으로 응답한다. 주변기기 1은 절자 2720에 표시된 바와 같이 이 신호를 수신하고 재송신한다. 마지막으로, 호스트는 절차 2721에서 이 데이터를 수신한다. 이 순서는 허브가 호스트와 주변기기 사이에 위치할 때 USB 프로토콜에서 일어나는 트랜잭션을 설명한다.
도 28은 본 발명의 한 실시예에 따라 수행된 논리적인 절차들의 순차 구성도이다. 화살표가 지시하는 것처럼 시간은 아래 쪽으로 이동하면서 증가한다.
세 디바이스들의 각각에서 수행되는 절차들을 보여준다. 본 발명의 장치의 한 실시예가 도 28에 2802로 표시된다. 실시예 2802는 호스트 2801과 커플링되며, 주변기기 2803은 실시예 2802와 커플링된다. 호스트 2801은 절차 2804에서 주변기기 2803으로 주소가 지정된 OUT 패킷을 보낸다. 실시예는 절차 2805에서 이 OUT 패킷을 수신한다. 호스트는 그 다음 절차 2806에서, 절차 2807에서 실시예에 의해 수신되는, DATA 패킷을 송신한다. 실시예는 그 다음 절차 2808에서, 절차 2809에서 호스트에 의해 수신되는, 확인응답 패킷을 호스트로 송신한다. 비록 확인응답 패킷이 주변기기보다는 실시예에 의해 송신되지만, 실시예는 확인응답 패킷을 보낼 때 주변기기를 에뮬레이팅하기 때문에 호스트는 확인응답 패킷이 주변기기에 의해 송신되는 것으로 해석한다. 이해를 돕기 위해 확인응답 패킷이 선택된 것에 주목하며, 기타 응답들은 아직(not yet), 스톨(stall), 오류, 망가진 패킷, 변질된 패킷, 또는 등시성 이송의 경우의 무-응답 같은 다른 실시예들에 적합할 수 있다. 도 29는 무-확인응답을 이용한 사례를 묘사한다. 도 28로 돌아가서, 확인응답 패킷을 보내는 하나의 이점은 호스트와의 트랜잭션이 종결된다는 것이다. 이는 실시예에게 호스트로부터 수신한 데이터의 처리를 위한 시간을 허용한다. 절차 2810에서, 실시예는 분석, 개조, 암호화, 변형(garble), 또는 데이터의 다른 처리를 포함할 수 있는 데이터를 처리한다. 처리된 DATA 패킷은, 예를 들어, 호스트로부터 수신한, 그러나 특정 부분들이 암호화된, DATA 패킷과 동일할 수도 있다. 그 다음, 실시예는 호스트를 에뮬레이팅하며 절차 2811에서, 절차 2812에서 주변기기에 의해 수신되는, OUT 패킷의 송신을 개시한다. 실시예는 호스트 에뮬레이팅을 계속하며 절차 2813에서, 절차 2814에서 주변기기에 의해 수신되는, 처리된 DATA 패킷을 보낸다. 이 지점에서, 주변기기는 절차 2815에 묘사된 바와 같이 주변기기는 무-확인응답 신호를 가지고 선택적으로 응답할 수 있다. 이 무-확인응답은 절차 2816에서 실시예에 의해 수신된다. 얼마 후, 실시예는 절차 2817에서, 절차 2818에서 수신되는, OUT 패킷을 재송신 한다. 실시예는 그 다음 절차 2819에 표시된 바와 같이, 절차 2820에 표시된 바와 같이 주변기기에 의해 수신되는, 처리된 DATA 패킷을 보낸다. 주변기기는 무-확인응답 패킷의 송신을 다시 선택할 수 있으며 이 지점에서 루프는 반복된다. 그렇지 않으면, 주변기기는 절차 2821에 표시된 바와 같이, 절차 2822에서 실시예에 의해 수신되는, 확인응답 패킷을 전송한다. 이는 트랜잭션을 종결한다.
도 28은 어떤 시간에 실시예가 호스트 또는 주변기기를 에뮬레이팅할 수 있는 상황을 설명한다. 에뮬레이팅의 적어도 하나의 이점은 실시예가 그들(패킷)을 처리하기 위하여 송신되는 패킷들을 가로챌 수 있게 한다는 것이다. 패킷들을 가로채기 위하여 에뮬레이팅을 사용하는 이 방법은 통신을 보존하는 것을 도와준다. 예를 들어, 만약 대신에 실시예가 OUT 패킷을 수신하고 그것을 주변기기로 보내고, DATA 패킷을 수신하고, 데이터를 처리하려고 시도하고, 그 다음에 어떠한 에뮬레이팅을 수행하지 않고 처리된 데이터를 주변기기로 보내면, 통신 인터페이스 또는 버스는 타임아웃 상황 또는 기타 오류적인 상황으로 돌입할 수 있다. 이와 같은 상황은 통신의 종단 또는 방해의 위험이 있다.
실시예는 도 28에 도시된 바와 같이 아래를 포함하나 이에 한정되지 않는 부가적인 기능성을 제공할 수 있다. 장치가 호스트로 통신을 보내지 않을 경우, 장치는, 전기적으로 D+/D- 선로를 45Ω 저항으로 종단시키는 것처럼, 주변기기를 닮은 방법으로 통신을 유지할 수 있다. 뿐만 아니라, 장치가 주변기기로 통신을 보내지 않을 경우, 장치는, 전기적으로 D+/D- 선로를 45Ω 저항으로 종단시키며 프레임 시작 또는 부활(keep alive) 패킷과 IN 패킷을 보냄으로써, 호스트를 닮은 방법으로 통신을 유지할 수 있다.
한가지 주목할 만한 추가 이점을 이하에 설명한다. 도 26 및 도 27에 설명된 종래 기술에서, 만약 주변기기가 무-확인응답을 보내면 호스트는 반드시 OUT 패킷 및 DATA 패킷을 루프로 계속 보내야 한다. 주변기기가 계속해서 무-응답확인을 보내면 이 루프는 반복되며 이는 수 천 번 일어날 수 있다. 이 절차는 버스의 대역폭을 점유한다. 도 28에 보인 바와 같이, 장치의 한 실시예에서, 이 절차는 장치와 주변기기 간에만 일어나도록 격리될 수 있다. 이는 호스트 및 기타 주변기기들 간의 버스에 대한 대역폭 요구조건을 경감시킨다. 이러한 방법으로, 본 발명의 한 실시예는 이러한 통신으로부터 그들을 격리시킴으로써 호스트와 버스 중 하나 또는 그 이상을 보호할 수 있다.
어떤 실시예에서, 장치가 주변기기를 에뮬레이팅함으로써 호스트로부터 데이터의 수신을 확인 했다는 상황이 있을 수 있으나, 하나의 조건은 장치가 이 데이터를 주변기기로 보내는 것을 배제한다. 이러한 상황은 주변기기 오작동 또는 접속차단을 포함할 수 있다. 장치는 호스트와 별개의 주변기기로서 자체를 식별하는 부분을 포함할 수 있다. 한 실시예에서, 이러한 부분은, 예를 들어 사용자에게 위에 설명한 바와 같은 상황을 통보하는 것으로 사용자와 접속할 수 있다. 다른 실시예에서, 장치는 사용자에게 이러한 상황을 통보하기 위하여, 예를 들어, LED를 밝히는 것과 같은 다른 수단을 이용할 수 있다.
도 29는 본 발명의 한 대안적 실시예에 따라 수행된 논리적인 절차들의 순차 구성도이다. 화살표가 지시하는 것처럼 시간은 아래 쪽으로 이동하면서 증가한다.
세 디바이스들의 각각에서 수행되는 절차들을 보여준다. 본 발명의 장치의 한 실시예가 도 29에 2902로 표시된다. 실시예 2902는 호스트 2901과 커플링되며, 주변기기 2903은 실시예 2902와 커플링된다. 호스트 2901은 절차 2904에서 주변기기 2903으로 주소가 지정된 OUT 패킷을 보낸다. 실시예 2902는 절차 2905에서 이 패킷을 수신한다. 호스트는 그 다음 절차 2906에서 표시한 바와 같이 DATA 패킷을 보내며 실시예는 이 패킷을 절차 2907에서 수신한다. 실시예는 절차 2908에서 주변기기를 에뮬레이팅하며, 절차 2909에서 호스트에 의해 수신되는, 무-확인응답을 보낸다. 무-확인응답 패킷은 호스트에게 뒤에 데이터를 재송신하라고 시사하며, 호스트로부터 보내진 그 다음의 OUT 및 DATA 패킷은 절차 2904 및 2906에서 보낸 OUT 및 DATA 패킷과 각각 동일하다. 그러므로 절차 2914 및 2923에서 보내진 DATA 패킷은 처리될 필요가 없다. 이 지점에서, 실시예는 호스트로부터 수신한 데이터를 절차 2910에 도시된 바와 같이 처리한다. 도시되지는 않았지만, 호스트는 절차 2910이 완료되기 전에 OUT 패킷을 보낼 수 있다. 이런 경우라면, 실시예는 OUT 패킷을 수신하며, 호스트는 DATA 패킷을 송신하며, 실시예는 DATA 패킷을 수신하며, 실시예는 주변기기를 에뮬레이팅하여 무-응답확인을 송신하며, 호스트는 절차 2904 내지 2909와 유사하게 무-확인응답을 수신한다. 일단 절차 2910이 완료되면, 호스트는 얼마 후 절차 2911에서 OUT 패킷을 송신한다. 실시예는 호스트를 에뮬레이팅하며 절차 2912에서 이 패킷을 수신하고 송신한다. 주변기기는 그 다음 절차 2913에서 이 패킷을 수신한다. 호스트는 그 다음 절차 2914에서 DATA 패킷을 송신한다. 실시예는 이 DATA 패킷을 수신하며 호스트를 에뮬레이팅하며 절차 2915에서 처리된 DATA 패킷을 송신한다. 이것은 절차 2910에서 생성된 처리된 DATA 패킷이다. 이 패킷은 그 다음 절차 2916에서 주변기기에 의해 수신된다. 이 지점에서, 주변기기는 패킷 2917에 묘사된 바와 같이 선택적으로 무-확인응답으로 응답할 수 있다. 이런 일이 일어나면, 실시예는 무-확인응답 패킷을 수신하며 절차 2918에 표시된 바와 같이 주변기기를 에뮬레이팅하여 송신한다. 호스트는 그 다음 절차 2919에서 무-확인응답을 수신한다. 얼마 후, 호스트는 절차 2920에 묘사한 바와 같이 OUT 패킷을 송신한다. 실시예는 이 OUT 패킷을 수신하고 호스트를 에뮬레이팅하여 절차 2921에서 이것을 송신한다. 주변기기는 절차 2922에서 OUT 패킷을 수신한다. 호스트는 그 다음 절차 2923에 묘사된 바와 같이 DATA 패킷을 송신한다. 실시예는 이 패킷을 수신하고 호스트를 에뮬레이팅하여 절차 2924에서 처리된 DATA 패킷을 송신한다. 이것은 아직 절차 2910에서 생성된 처리된 DATA 패킷이다. 주변기기는 이 DATA 패킷을 절차 2925에서 수신한다. 주변기기는 무-확인응답으로 응답하는 것을 다시 선택할 수 있으며 이 경우 루프는 반복된다. 그러나, 어떤 지점에서 주변기기는 절차 2926에 묘사된 바와 같이 확인응답 패킷으로 응답한다. 실시예는 주변기기를 에뮬레이팅하여 절차 2927에 묘사된 바와 같이 확인응답 패킷을 수신하고 송신한다. 호스트는 절차 2928에서 이 확인응답 패킷을 수신하며 트랜잭션은 종결된다.
도 28과 유사하게, 도 29는 또한 통신을 보존하는 동안 데이터를 가로채고 처리하기 위하여 에뮬레이팅이 사용된 하나의 실시예를 설명한다. 절차 2908에서, 실시예가 도 28의 절차 2808과 같이 확인응답 패킷을 가지고 호스트에 응답하는 대신에, 실시예는 무-확인응답으로 응답한다. 무-확인응답은 트랜잭션을 종결하지 않지만, 그것은 여전히 실시예로 하여금 데이터를 처리하기 위한 추가 시간을 제공한다. 도 29에 묘사된 절차들의 적어도 하나의 이점은 절차 2908에서 보내진 무-확인응답 패킷이 실시예가 처리된 DATA 패킷 이외에 에뮬레이팅 기간 중 생성해야 할 유일한 패킷이라는 점이다. 실시예가 2912, 2915, 2918, 2921, 및 2927을 포함하여 에뮬레이팅을 수행하는 다른 절차들에 있어서, 실시예는 호스트 및 주변기기의 하나로부터 수신한 트랜스미션을 호스트 및 주변기기의 다른 하나로 전달할 수 있다. 이것의 적어도 하나의 이점은 버스 시간 배정에 대한 고려가 실시예 보다는 호스트에 의해 관리될 수 있다는 점이다.
도 30은 본 발명의 한 대안적 실시예에 따라 수행된 논리적인 절차들의 순차 구성도이다. 화살표가 지시하는 것처럼 시간은 아래 쪽으로 이동하면서 증가한다. 세 디바이스들의 각각에서 수행되는 절차들을 보여준다. 본 발명의 장치의 한 실시예가 도 30의 3002로 도시되어 있다. 실시예 3002는 호스트 3001과 커플링되고, 주변기기 3003은 실시예 3002에 커플링된다. 호스트 3001은 주변기기 3003으로 주소가 지정된 IN 패킷을 절차 3004에서 송신한다. 실시예 3002는 절차 3005에서 IN 패킷을 수신하고 호스트를 에뮬레이팅하며 그것을 송신한다. 주변기기는 그 다음 절차 3006에서 IN 패킷을 수신한다. 도시되지는 않았지만 주변기기는 이 지점에서 무-확인응답으로 응답할 수 있음에 주목한다. 이 경우에, 실시예는 이 무-확인응답을 수신하고 송신하며, 호스트는 무-확인응답을 수신하며, 얼마 지난 지점에서, 호스트는 IN 패킷을 다시 송신하며, 실시예는 IN 패킷을 수신하고 송신하며 주변기기는 IN 패킷을 수신한다. 그렇지만, 몇몇 지점에서, 주변기기는 절차 3007에 묘사된 바와 같이 DATA 패킷으로 응답한다. 이 DATA 패킷은 그 다음 절차 3008에서 장치에 의해 수신된다. 실시예는 그 다음 절차 3009에서 주변기기를 에뮬레이팅하며 무-확인응답 패킷을 송신하며, 이는 절차 3010에서 호스트에 의해 수신된다. 절차 3009의 적어도 하나의 이점은 통신을 방해하거나 단절할 수 있는 상황을 유발하지 않고 데이터를 처리하기 위한 추가적인 시간을 취할 수 있다는 점이다. 실시예는 그 다음 절차 3011에 묘사된 바와 같이 호스트를 에뮬레이팅하며 주변기기로 확인응답 패킷을 송신한다. 이해를 돕기 위하여 확인응답 및 무-확인응답 패킷이 선택된 것을 주목한다. 다른 패킷들은 본 발명의 대안적인 실시예에 적합할 수 있다. 실시예는 그 다음 절차 3013에 묘사된 바와 같이 데이터를 처리한다. 호스트는 절차 3013이 완료되기 전에 IN 패킷을 보낼 수 있음에 주목한다. 이런 일이 일어나면, 실시예는 IN 패킷을 수신하고 그 다음 무-확인응답 패킷을 보내며, 그 다음 호스트는 무-확인응답 패킷을 수신한다. 몇몇 지점에서, 절차 3013은 완료되며, 얼마 후에 호스트는 절차 3014에 묘사된 바와 같이 IN 패킷을 보낸다. 실시예는 그 다음 절차 3015에서 이 패킷을 수신한다. 실시예는 주변기기를 에뮬레이팅하여 절차 3016에서 처리된 DATA 패킷을 보내며 이는 그 다음 절차 3017에서 호스트에 의해 수신된다. 호스트는 그 다음 선택적으로 절차 3020에 묘사된 바와 같이 무-확인응답으로 응답할 수 있다. 이 경우에, 실시예는 절차 3019에서 무-확인응답 패킷을 수신한다. 호스트는 얼마 후 절차 3020에서 또 다른 IN 패킷을 발급하며 이는 절차 3021에서 실시예에 의해 수신된다. 실시예는 주변기기를 에뮬레이팅하여 절차 3022에서 처리된 DATA 패킷을 송신하며 이는 절차 3023에서 호스트에 의해 수신된다.호스트는 다시 무-확인응답 패킷으로 응답할 수 있으며 이 경우에 루프는 반복된다. 그러나, 몇몇 지점에서, 호스트는 절차 3024에 묘사된 바와 같이 확인응답 패킷으로 응답한다. 이 패킷은 절차 3025에서 실시예에 의해 수신되며 이는 트랜잭션을 종결한다.
언급한 바와 같이, 수많은 종래 기술의 버스 아키텍처에 있어서, 데이터는 호스트로부터 버스에 커플링된 하나 이상의 주변기기들로 전파된다. 이런 경우들에 있어서, 주변기기들은 그들에게로 주소가 지정된 데이터에 대해서만 응답해야 한다. 하지만, 불량한 주변기기가 그 주변기기로 주소가 지정되지 않은 데이터를 복사하는 것과 같이 응답할 수 있다. 이러한 불량 주변기기는 보안에 대한 위험을 제기할 수 있다. 이러한 상황을 도 20을 참고하여 지금부터 설명한다.
도 20은 종래 기술에 의한 하나의 호스트 또는 하나 또는 그 이상의 주변기기들에서 수행된 논리적인 절차들의 순차 구성도이다. 화살표가 지시하는 것처럼 시간은 아래 쪽으로 이동하면서 증가한다. 처음 절차 2004는 주변기기 1 2002에서 일어난다. 이 절차에서, 주변기기 1은 포트에 플러그로 접속되며 주변기기의 속도를 표시하기 위하여 D+ 및 D- 선로들 (포트들이 USB를 경유하여 커플링된 것으로 가정함) 중 하나로 치켜세운다. 호스트 2001은 이 표시를 수신하고 절차 2005에 보이는 바와 같이 주변기기를 에뮬레이팅하기 시작한다. 에뮬레이팅의 주소설정 부분에 앞서, 주변기기들은 디폴트 주소 0으로 설정된다. 다음, 절차 2006에서, 호스트는 주변기기가 그것의 주소를 1로 설정하도록 명령을 보낸다. 절차 2007에서 주변기기 1은 이 명령을 수신하고 절차 2008에 보인 바와 같이 그것의 주소를 1로 설정한다. 절차 2009에서 호스트는 주소 1에 있는 주변기기의 에뮬레이팅을 완료한다. 다음, 절차 2010에서 주변기기 2 2003이 포트에 플러그로 접속되며 주변기기의 속도를 표시하기 위하여 D+ 및 D- 선로들 중 하나로 치켜세운다. 호스트는 이 표시를 수신하고 절차 2011에 보인 바와 같이 주변기기를 에뮬레이팅하기 시작한다. 다음, 절차 2012 하에서, 호스트는 주변기기가 그 주소를 2로 설정하도록 명령을 보낸다. 도 20에 묘사된 버스 아키텍처에서, 데이터는 호스트로부터 모든 주변기기들로 전파된다. 그러므로 그것(명령)이 단지 주변기기 2로만 주소가 지정되었더라도 주변기기 1 및 주변기기 2 모두는 주소설정 명령을 수신한다. 이들 두 절차들은 2013과 2014이다. 이 버스 규격에 따르면, 주변기기 1은 그것에 주소가 지정되지 않은 데이터는 폐기하게 되어있다. 하지만 종래 기술은 주변기기 1이 그 데이터를 버렸는지 판단할 방법을 제공하지 못한다. 그러므로, 데이터를 버렸는지 혹은 안 버렸는지를 알려주기 위한 절차를 알려주지 않는다. 데이터가 버려지지 않을 수 있다는 사실은 이곳에 묘사된 전파 아키텍처에 의해 제시된 보안에 대한 위험이다. 다음 절차 2015는 주변기기 2에서 수행된다. 주변기기는 그것의 주소를 2로 설정한다. 마지막으로 절차 2016에서 호스트는 주소 2에 있는 주변기기의 에뮬레이팅을 완료한다.
도 21은 종래 기술에 의한 호스트 및 주변기기들에서 수행된 논리적인 절차들의 순차 구성도이다. 화살표가 지시하는 것처럼 시간은 아래 쪽으로 이동하면서 증가한다. 호스트 2101은 절차 2104에서 주소가 1로 지정된 데이터를 보낸다. 도 21에 도시된 버스 아키텍처에서, 데이터는 호스트로부터 모든 주변기기로 전파된다. 그러므로 그것(데이터)이 단지 주변기기 1로만 주소가 지정되었더라도 주변기기 1 2102 및 주변기기 2 2103은 모두 그 데이터를 수신한다. 주변기기들에 의한 데이터의 수신은 절차 2105 및 2106에 도시된다. 버스 규격에 따르면 주변기기 2는 그것으로 주소가 지정되지 않은 데이터를 폐기하게 되어있다. 그러나 종래 기술은 주변기기 2가 데이터를 버렸는지를 결정할 방법을 제공하지 않는다. 그러므로, 데이터가 버려졌는지 또는 그렇지 않은지를 표시하기 위한 절차를 보여주지 않는다. 데이터가 버려지지 않을 수도 있다는 사실이 이곳에 묘사된 전파 아키텍처에 의해 제기된 보안에 대한 위험이다. 다음 절차 2017은 주변기기 1에서 수행된다. 주변기기는 데이터의 수신의 확인응답을 호스트로 보낸다. 절차 2108에서, 호스트는 데이터 수신의 확인응답을 수신한다.
도 25는 종래 기술에 따른 전파 아키텍처에 의해 제기된 보안에 대한 위험을 보여준다는 점에서 도 21과 유사하다. 도 25는 통신에 허브의 포함에도 지속되는 보안에 대한 위험을 보여주는 허브 2502를 포함한다. 도 25는 종래 기술에 의한 하나의 호스트 및 주변기기 2502, 2503 및 2504에 의해 예시된 하나 또는 그 이상의 주변기기들에서 수행되는 논리절차의 순차 구성도이다. 화살표가 지시하는 것처럼 시간은 아래 쪽으로 이동하면서 증가한다.
이 순서에서 주변기기 1 2502는 허브일 수 있으며 호스트 2501과 커플링된다. 주변기기 2 및 3인 2503 및 2504는 주변기기 1 2502에 커플링된다. 절차 2505는 호스트 2501에서 일어난다. 절차 2505에서 호스트 2501은 주변기기 2 2504로 주소가 지정된 데이터를 보낸다. 절차 2506에서 주변기기 1 2502는 이 정보를 수신한다. 절차 2507에서 주변기기 1 2502는 주변기기 2 2503으로 주소가 지정된 이 데이터를 재송신한다. 이 데이터는 절차 2508에서 주변기기 2에 의해 수신된다. 그러나, 문제가 있게도, 이 데이터는 또한 절차 2509에서 주변기기 3 2504에 의해 수신된다. 주변기기 3 2504는 데이터가 의도하는 수신자가 아니며, 주변기기 3 2504는 데이터를 폐기해야 하는 점에 주목해야 한다. 하지만, 불량한 주변기기 3 2504는 수신된 데이터를 악용할 수 있다.
절차 2510에서, 주변기기 2는 데이터 수신의 확인응답을 보냄으로써 응답한다. 절차 2511에서, 주변기기 1은 이 확인응답 신호를 수신하며, 절차 2512에서 주변기기 1 2502는 이 확인응답을 호스트 2501로 재송신한다. 마지막으로, 절차 2513에서 호스트 2501은 데이터의 수신의 확인응답을 수신한다.
본 발명의 실시예들은 데이터가 의도되지 않은 버스 주변기기들에게 가용되는 것을 방지함으로써 종래 기술에 의해 제기된 문제를 해결한다. 이러한 한 실시예를 도 16을 참조하여 지금부터 설명한다. 도 16은 본 발명의 한 실시예에 따라 수행된 논리적인 절차들의 구성도이다. 이 실시예에서, 절차 1601 하에서, 데이터는 네트워크 또는 다른 데이터 소스로부터 수신된다. 절차 1602에서, 수신된 데이터는 저장된다. 또한, 절차 1603은 저장된 데이터를 분석한다. 결정 절차 1604에서, 데이터가 환경과 일치하는 지에 대한 결정이 있다. 만약 절차 1604가 데이터가 환경과 일치한다고 결정하면, 그 다음 규정에 의해 정의된 절차 1605가 수행된다.
도 16에 보여준 절차들은 선택적으로 네트워크 상의 노드로부터 물리적으로 분리된 장치에서 수행될 수 있다. 그러나 다른 실시예에서, 절차들은 호스트 컴퓨팅 디바이스 안에 집적된 하드웨어에서 수행될 수 있다. 예를 들어, 절차들을 수행하기 위한 소프트웨어가 커널이나 또는 BIOS 수준에서 호스트 안으로 집적화 될 수 있다. 대안으로, 절차들은 USB 기간 허브와 사우스브리지 중 하나 이상에 집적화 될 수 있다. 또 추가 실시예에 있어서 절차들은 주변기기 혹은 복합 디바이스를 만들기 위하여 주변기기에 물리적으로 커플링된 부품에 바로 직접화함으로써 주변기기 자체에서 수행될 수 있다. 그밖에 특별히 절차는 앞서 언급한 위치 중 어디에라도 있는 하드웨어 또는 소프트웨어에서 수행 될 수 있다. 또 다른 실시예에서, 절차들은 복합 디바이스를 만들기 위해 주변기기에 물리적으로 커플링된 부품 내에서 수행될 수 있다. 또 다른 추가적인 실시예에서, 절차들은 복합 디바이스를 만들기 위해 주변기기에 물리적으로 커플링된 부품 내에서 수행될 수 있다.
도 23은 본 발명의 한 실시예에 따른 보안 장치 2304의 개략적인 구성도이다. 호스트 컴퓨터 2301은 USB 호스트 컨트롤러 2302 및 USB 다운스트림 인터페이스 2303을 포함한다. USB 주변기기들 2311, 2313 및 2315는 보안 장치 2304를 경유하여 호스트 컴퓨터 2301에 커플링된다. 보안 장치 2304는 업스트림 인터페이스 2305 및 하나 이상의 다운스트림 USB 인터페이스 2308, 2309, 2310을 포함한다. 용어 '업스트림' 및 '다운스트림'은 호스트 2301과 업스트림 인터페이스 2305 사이 또는 다운스트림 인터페이스 2308, 2309 및 2310과 주변기기 2311, 2313 및 2315 사이의 어떤 특정 거리를 암시하기 위한 것은 아니다. 호스트 2301은 케이블을 경유하여, 호스트 2301 및 업스트림 인터페이스 2305 둘 다 연결된 회로기판의 인쇄회로배선을 경유하거나 또는 다른 연결에 의하여 업스트림 인터페이스 2305에 연결될 수 있다. 특별히, 업스트림 인터페이스 2305는 호스트 2301 또는 호스트 2301의 부분과 같은 동일한 인쇄회로 내에 구현될 수 있다. 유사하게, 다운스트림 인터페이스 2308, 2309 및 2310도 어떤 적절한 연결을 이용하여 주변기기 2311, 2313 및 2315에 연결될 수 있으며, 두 개 또는 그 이상의 이들 부품들이 단일 집적회로 내에 구현될 수 있다.
다른 수의 다운스트림 USB 인터페이스들이 사용될 수 있다. 업스트림 USB 인터페이스 2305는 컨트롤러 2307에 의해 제어되는 스위치 2306을 경유하여 다운스트림 USB 인터페이스 2308 내지 2310에 연결된다. 컨트롤러 2307은, 예를 들어, 기억장치(도시되지 않음)에 저장된 명령들을 실행하는 마이크로 프로세서일 수 있다.
주변기기 2311, 2313 및 2315와 통신하기 위하여, 호스트 컴퓨터 2301은 주변기기 2311, 2313 및 2315 중 하나로 주소가 지정된 명령뿐만 아니라 주소가 지정된 주변기기가 수신해야 하는 데이터를 보낸다. 컨트롤러 2307은 2311, 2313 및 2315중 어느 주변기기가 명령과 데이터를 수신해야 하는지 확인하기 위하여 명령, 특별히 주소를 분석한다. 컨트롤러 2307은 수신된 명령과 데이터가 2308 내지 2310중, 주소가 지정된 주변기기가 커플링된, 단 하나의 다운스트림 USB 인터페이스로만 보내지도록 스위치 2306을 제어한다. 만약 필요하다면 컨트롤러 2307은 컨트롤러가 명령을 분석하는 동안 명령과 데이터를 기억장치에 일시로 저장할 수 있으며, 그 다음에 일시 저장된 명령과 데이터를 주소가 지정된 주변기기로 보낸다. 마지막으로, 주소가 지정된 주변기기는 그것의 업스트림 인터페이스 2312, 2314, 2316에서 데이터를 수신한다.
주변기기 2311, 2313 및 2315 중 하나가 데이터를 보낼 경우, 컨트롤러 2307은 데이터가 업스트림 USB 인터페이스를 경유하여 호스트 컴퓨터 2301에 전달되도록 스위치 2306을 제어한다. 컨트롤러 2307은 주변기기 2311, 2313 및 2315의 어떤 것이라도 어떤 다른 주변기기와 직접 통신하는 것을 방지하도록 스위치 2306을 제어한다.
개시된 보안 장치는 적어도 네트워크 스위치 또는 라우터와 커플링된 컴퓨터들은 스위치와 라우터를 경유하여 서로 통신할 수 있으며, 반면에 개시된 보안 장치와 커플링된 주변기기들은 보안 장치를 경유하여 서로 통신할 수 없기 때문에 기존의 컴퓨터 네트워크 스위치 또는 라우터와 다르다. 예를 들어, 컴퓨터 네트워크 스위치의 경우에, 하나 또는 그 이상의 컴퓨터들이 스위치 상의 각 포트에 커플링될 수 있으며, 하나의 포트에 커플링된 컴퓨터는 어떤 다른 포트에 커플링된 컴퓨터와 통신할 수 있다. 컴퓨터 네트워크 스위치, 라우터 등은, 도 23을 참고하여 설명한 바와 같이, 업스트림 및 다운스트림 인터페이스를 포함하고 있지 않으며, 적어도 개시된 업스트림 인터페이스(예를 들어, 업스트림 USB 인터페이스 2305)를 경유하여 수신된 명령들과 데이터는 항상 다운스트림 인터페이스(2308-2310) 중 하나로 전달되며, 다운스트림 인터페이스 중 하나를 경유하여 수신된 데이터는 업스트림 인터페이스(2305)로만 전달된다. 업스트림 인터페이스는 호스트 컴퓨터에 커플링되어 있고 다운스트림 인터페이스는 주변기기에 커플링되어 있기 때문에 업스트림 인터페이스는 다운스트림 인터페이스의 어떤 것과도 서로 교환할 수 없다. 이와는 대조적으로, 컴퓨터 네트워크 상의 포트들은 모두 서로 교환할 수 있다.
개시된 보안 장치는 적어도 L3 스위치들이 라우팅 테이블로 프로그래밍 되어야 하는 반면에 본 인터페이스 기능들은 자동이기 때문에 L3(layer 3) 스위치들과 또한 다르다. 업스트림 및 다운스트림 인터페이스들의 특성들은 고유하며 또한 자동적으로 바꿀 수 있다. 만약 그것들을 바꾼다면, 미리 구성된 라우팅 테이블을 갱신할 필요 없이 그렇게 할 수 있다.
도 23은 본 발명의 한 실시예에 따른 보안 장치 2403의 개략적인 구성도이다. 도 24의 보안 장치 2403은 보안 장치 2403이 호스트 컴퓨터 2401에 포함된 것을 제외하고는 도 23의 보안 장치 2304와 유사하다. 또한 호스트 컴퓨터 2401 내에 있는 USB 호스트 컨트롤러 2402는 보안 장치 2403에 커플링된다. 보안 장치 2403의 다운스트림 인터페이스 2404 내지 2406은 그들의 업스트림 인터페이스 2408, 2410, 2412을 통하여 USB 주변기기 2407, 2409, 2411에 커플링된다. 보안 장치 2403은 호스트 컨트롤러 2402와 집적화 될 수 있음을 주목한다.
도 17은 본 발명의 한 실시예에 따른 논리적인 흐름을 보여주는 구성도이다. 도시된 절차는 절차 1701에서 시작한다. 절차 1702에서, 주변기기는 연결되고 주변기기의 본성을 특징짓는 데이터는 주변기기로부터 수신된다. 절차 1703에서 호스트 컴퓨팅 디바이스는 주변기기에 주소를 지정한다. 절차 1704에서, 호스트 컴퓨팅 디바이스는 호스트 컴퓨팅 디바이스가 주변기기에 지정한 주소를 사용하라고 지시하는 주소설정명령을 주변기기로 보낸다. 이 주소는 데이터 저장 절차 1705에 의해 저장된다. 이 지점 이후에, 절차 1706에서 데이터가 호스트 컴퓨팅 디바이스로부터 주변기기로 보내지면, 결정 절차 1707은 데이터가 주변기기를 의도한 것인지를 결정하기 위해 데이터의 주소를 확인한다. 만약 데이터가 데이터의 주소가 저장된 주소에 의해 정의된 상황과 일치하지 않기 때문에 주변기기를 의도한 것이 아니라면, 실패절차 1708이 수행된다. 몇몇 실시예에 의하면 실패절차는 네트워크 내에 있는 하나 또는 그 이상의 노드로의 통신을 배제할 수 있다. 대안으로, 또는 추가하여, 실패절차는 통신을 중단하는 것을 포함할 수 있다. 만약에 결정 절차 1707의 결과가 긍정적이면, 성공절차 1709가 수행된다. 한 실시예에서, 절차 1706은 단계 1701부터 1705까지 모두 시행된 후부터 계속 몇 번이라도 반복될 수 있다.
도 18은 본 발명의 한 하드웨어 실시예의 아키텍처에 대한 구성도이다. 하드웨어는 호스트 컴퓨팅 디바이스 1801과 주변기기 1804, 1805 및 1806 사이에 위치한 하드웨어 장치 1802로 볼 수 있다. 도 18에 보여준 실시예는 스위치 모듈 1803을 포함한다. 장치 1802는 도 16 내지 17에 연계하여 위에 설명하고 이하 더 구체적으로 설명하는 바와 같은 절차들을 실행한다. 대안적인 한 실시예에서, 장치와 하나 또는 그 이상의 주변기기들은 단일 모듈로 집적화 될 수 있다.
도 19는 도 18의 실시예의 구현을 위한 더 자세한 내용을 제공하는 본 발명의 한 하드웨어 실시예의 구성도이다. 하드웨어는 호스트 컴퓨팅 디바이스 1901의 D+ 및 D- 선로의 각각과 이곳에 단일 주변기기 1902로 표시된 주변기기들 사이에 위치한 하드웨어 장치 1903으로 볼 수 있다. 도 19에 보여준 실시예는 송신선로를, 호스트와 주변기기가 연결된, 링크 상태로부터, 선로들이 저항들에게 묶인, 전기적 종단 상태로 전환시키는 스위치 모듈 1905을 포함한다. 장치 1905는 선택적으로 제어신호 1904를 포함할 수 있다. 링크 상태에서, 통신은 호스트로부터 주변기기를 직접 통과하며 그 반대도 또한 마찬가지다. 전기적 종단 상태는 장치에서 통신이 직접 통과하지 않고 중단되게 한다. 전기적 종단 상태는, 예를 들어, 호스트 또는 주변기기의 비-가동 상태를 에뮬레이팅할 수 있다. 도 19에서 보여준 45Ω 저항은 한 실시예의 한 예이다.
본 실시예의 한 이점의 사례는 아래와 같다. 호스트는 스위치가 링크상태에서 주변기기로 통신을 보낼 수 있다. 제어신호는 보안에 대한 위험을 제기하는 데이터가 오고 있다는 것을 표시하기 위해 발급될 수 있다. 송신 선로는 전기적인 종단 상태로 전환 된다. 호스트는 장치 내부의 전기적인 종단을 그것과 통신하고 있던 주변기기와 다른 것으로 검출하지 않는다. 호스트는 계속해서 보안에 위험을 제기하는 데이터를 보낸다. 스위치가 링크 상태에 있지 않기 때문에 데이터는 주변기기로 송신되지 않고 보안에 대한 위험을 보낸다. 그 뒤에 제어신호는 다가오는 다음 데이터 셋은 안전에 대한 위험을 제기하지 않는다고 표시한다. 송신 선로는 링크 상태로 전환된다. 호스트는 주변기기와 통신을 계속한다.
전기적으로 송신선로를 종단하는 한 이점은 주변기기와 호스트가 다시 연결되어도 통신을 다시 재가동하지 않아도 되며 에뮬레이팅절차나 핸드셰이크(handshake) 같은 조치들의 수행을 피하는 식으로 통신을 보존한다는 것이다.
도 22는 본 발명의 한 실시예에 따라 수행된 논리적인 절차들의 순차 구성도이다. 본 발명의 장치의 한 실시예는 도 22에서 장치 2202로 도시되어 있다. 네 개의 디바이스 2201, 2202, 2203 및 2204 내에서 수행된 절차들이 도시되어 있다. 화살표가 지시하는 것처럼 시간은 아래 쪽으로 이동하면서 증가한다.
절차 2205에서, 호스트 2201은 주변기기 1 2203으로 주소가 지정된 데이터를 보낸다. 절차 2206에서, 주변기기 1 2203으로 주소가 지정된 데이터가 수신된다. 절차 2207에서, 장치는 주변기기 1 2203으로 주소가 지정된 데이터를 관련된 주변기기로 전송한다. 다음, 절차 2208에서, 주변기기 1 2203은 데이터를 수신한다. 주변기기 2 2204는 데이터를 수신하지 않는다. 절차 2209에서, 주변기기 1 2203은 데이터의 수신에 대한 확인응답을 보낸다. 절차 2210에서, 장치 2202는 확인응답을 수신하고, 절차 2211에서, 장치 2202는 호스트 2201에게 확인응답을 보낸다. 절차 2212에서, 호스트 2201은 이 확인응답을 수신한다.
비록 몇몇 사례들이 USB 호스트들과 USB 주변기기들의 연관관계에서 설명되었지만, 다른 형태의 연결방식도 사용될 수 있다. 본 발명의 몇몇 실시예들은 기간 허브에 실행할 수 있다. 또한, 본 발명의 실시예들은 호스트, 호스트의 일부, 주변기기 및/또는 주변기기의 일부와 직접화 될 수 있다. 예를 들어, 언급한 바와 같이, 데이터를 주소가 지정되지 않은 주변기기로 전달되는 것을 방지하기 위한 스위치를 포함하는 실시예들, 또는 부적절한 데이터 또는 기타 상황들이 검출될 경우 호스트와 주변기기간의 논리적 또는 물리적인 연결을 침묵시키는 실시예들과 같은 본 발명의 실시예들은 일반적으로 '호스트'라고 간주되거나 또는 일반적으로 '주변기기'라고 간주되는 것들에서 실행될 수 있다. 한 예에서, 본 발명의 한 실시예는 프로세서, 마더보드 또는 데스크-사이드 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터와 같은 컴퓨터의 기타 부품, 스마트폰 또는 일반적을 호스트로 생각될 수 있는 기타 디바이스 내에 포함될 수 있다.
다른 예에서, 본 발명의 한 실시예는 회전 또는 반도체 디스크 드라이브 같은 '주변기기', 디스크 드라이브의 외부 인터페이스와 디스크 드라이브 내부의 데이터 저장 부품들 사이에 포함될 수 있다. 디스크 드라이브로 보내진 명령들 및 디스크 주소들을 해석함으로써 디스크 드라이브를 제어하는 디스크 드라이브 내의 프로세서는 포함된 실시예의 기능성의 전부 또는 일부를 또한 수행할 수 있다. 대안으로, 분리된 프로세서 또는 기타 회로는 포함된 실시예의 기능성을 실시할 수 있다. 유사하게, 본 발명의 한 실시예는 일반적으로 USB '엄지' 드라이브로 지칭되는 것에 포함될 수 있다.
본 발명의 다양한 실시예들이 본 문단 이하의 문단들(및 본 출원의 말미에 제공된 실제 특허청구항목들 이전)에 수록된 잠재적인 특허청구항목들에 의해 특징지어 질 수 있다. 이들 잠재적인 특허청구항목들은 본 출원의 명세서의 일부를 형성한다. 이에 따라, 잠재적인 특허청구항목들의 주제는 이후 본 출원 또는 본 출원에 근거한 우선권 주장 출원이 개입된 소송절차에서 실제 특허청구항목들로 제시될 수 있다. 이와 같은 잠재적인 특허청구항목들의 포함이 실제 특허청구항목들이 잠재적인 특허청구항목들의 주제를 커버하지 않는 다는 의미로 유추되어서는 아니 된다. 따라서, 이후의 소송절차에서 이들 잠재적 특허청구항목들을 제시하지 말라는 판결이 주제를 대중에게 기부하는 것으로 유추되어서는 아니 된다.
제한이 없이, 청구권을 주장할 수 있는 잠재적 주제(이하에 제시된 실제 특허청구항목들과의 혼동을 피하기 위하여 두문자 'P'로 표시된)는 다음을 포함한다:
(P13) 호스트 컴퓨팅 디바이스('호스트')와 하나 이상의 주변 디바이스('주변기기') 간을 커플링하기 위한 보안 장치로서:
업스트림 링크를 경유하여 호스트와 커플링되고, 업스트림 링크를 경유하여 호스트로부터 데이터를 수신하고, 업스트림 링크를 경유하여 호스트로 데이터를 보내기 위하여 구성된 업스트림 인터페이스
각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나 이상의 주변기기 중의 하나에 커플링되며, 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하고, 해당 다운스트림 링크를 경유하여 데이터를 하나의 주변기기로 보내도록 구성되는, 하나 이상의 다운스트림 인터페이스
업스트림 및 다운스트림 인터페이스들과 커플링되고:
업스트림 인터페이스를 경유하여 데이터를 수신하고
수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하며
수신된 데이터가 보안에 대한 위험을 제기하지 않는다고 확인되면, 수신된 데이터를 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달하며 및
수신된 데이터가 보안에 대한 위험을 제기한다고 확인되면, 수신된 데이터가 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달되는 것을 방지하는 컨트롤러로 구성된 보안 장치.
(P14) 제 P13 항의 장치에 있어서, 컨트롤러는:
업스트림 링크를 링크 상태로부터 전기적 종단 상태로 변화시키고 및
해당 다운스트림 링크의 하나 이상을 링크 상태로부터 전기적 종단 상태로 변화시킴으로써 수신된 데이터가 전달되는 것을 방지하도록 구성된 장치.
(P15) 제 P14 항의 장치에 있어서, 컨트롤러는 종단 저항을 업스트림 링크에 커플링시킴으로써 업스트림 링크를 링크 상태에서 전기적 종단 상태로 변화시키도록 구성된 장치.
(P24) 하나 이상의 호스트 컴퓨팅 디바이스 ('호스트') 또는 하나 이상의 주변 디바이스('주변기기')의 보안을 강화하는 보안 장치-구현 방법으로, 보안 장치는 업스트림 링크를 경유하여 호스트와 커플링되며, 호스트로부터 해당 업스트림 링크를 경유하여 데이터를 수신하며 업스트림 링크를 경유하여 데이터를 호스트로 보내도록 구성된 업스트림 인터페이스로 구성되며, 보안 장치는 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나 이상의 주변기기 중 하나에 커플링되며, 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하며, 해당 다운스트림 링크를 경유하여 데이터를 하나의 주변기기로 보내도록 구성된 하나 이상의 다운스트림 인터페이스를 더 포함하여 구성되며, 상기 방법은:
데이터를 업스트림 인터페이스를 경유하여 수신하는 것
수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하는 것
만약 수신된 데이터가 보안에 대한 위험을 제기하지 않는 것으로 확인되면, 수신된 데이터를 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달하는 것 및
만약 수신된 데이터가 보안에 대한 위험을 제기하는 것으로 확인되면, 수신된 데이터를 하나 이상의 다운스트림 인터페이스 중 어떤 것으로 전달되는 것을 방지하는 것으로 구성된 방법.
(P25) 제 P24 항의 방법에 있어서, 수신된 데이터를 전달하는 것을 방지하는 것은:
업스트림 링크를 링크 상태로부터 전기적 종단 상태로 변화하는 것 및
하나 이상의 해당 다운스트림 링크를 링크 상태로부터 전기적 종단 상태로 변화시키는 것을 포함하는 방법.
(P26) 제 P25 항의 방법에 있어서, 업스트림 링크를 링크 상태로부터 전기적 종단 상태로 변화하는 것은 종단 저항을 업스트림 링크에 커플링시키는 것을 포함하는 방법.
(P27) 하나 이상의 호스트 컴퓨팅 디바이스 ('호스트') 및 하나 이상의 주변 디바이스('주변기기')의 보안을 강화하는 컴퓨터 프로그램 제품으로, 보안 장치는 업스트림 링크를 경유하여 호스트와 커플링되며 호스트로부터 해당 업스트림 링크를 경유하여 데이터를 수신하며 업스트림 링크를 경유하여 데이터를 호스트로 보내도록 구성된 업스트림 인터페이스로 구성되며, 보안 장치는 각 다운스트림 인터페이스는 해당 다운스트림 링크를 경유하여 하나 이상의 주변기기 중 하나에 커플링되며, 해당 다운스트림 링크를 경유하여 하나의 주변기기로부터 데이터를 수신하며 해당 다운스트림 링크를 경유하여 데이터를 하나의 주변기기로 보내도록 구성된 하나 이상의 다운스트림 인터페이스를 더 포함하여 구성되며, 컴퓨터 판독가능 프로그램은:
데이터를 업스트림 인터페이스를 경유하여 수신하며
수신된 데이터가 보안에 대한 위험을 제기하는지 확인하기 위하여 수신된 데이터를 분석하며
만약 수신된 데이터가 보안에 대한 위험을 제기하지 않는 것으로 확인되면, 수신된 데이터를 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전달하며 및
만약 수신된 데이터가 보안에 대한 위험을 제기하는 것으로 확인되면, 수신된 데이터를 하나이상의 다운스트림 인터페이스 중 어떤 것으로 전달되는 것을 방지하도록 구성된 컴퓨터 프로그램 제품.
이곳에 설명된 절차들과 방법들은 저장장치 내에 저장된 명령들을 실행하는 프로세서에 의해 수행될 수 있다. 기억장치는, 제어 소프트웨어 또는 기타 명령 및 데이터를 저장하기에 적합한, 랜덤 액세스 기억장치 (RAM), 읽기 전용 기억장치 (ROM), 플래시 메모리 또는 기타 기억장치, 또는 이들의 조합일 수 있다. 개시된 절차, 방법, 및 장치에 의해 수행된 몇몇 기능들이 흐름도 및/또는 구성도를 참조하여 설명되었다. 당업자들은 각 블록, 또는 블록들의 조합, 흐름도 또는 구성도의 전부 또는 일부분에 대한 기능, 동작, 판단 등이 컴퓨터 프로그램 명령, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합으로 실행될 수 있다는 것을 쉽게 알 수 있을 것이다. 당업자들은 또한 본 발명의 기능을 정의하는 명령 또는 프로그램이, 유형의 쓰기-불가 저장 매체(예, 컴퓨터 내의 ROM과 같은 읽기 전용 기억장치, 또는 CD-ROM 또는 DVD 디스크 같은 컴퓨터 입출력장치 부착에 의해 판독이 가능한 디바이스)에 영구적으로 저장된 정보 변경 가능한 형태로 유형의 쓰기가능 저장매체(예, 플로피 디스크, 분리가 가능한 플래시 저장장치 및 하드 드라이브)에 저장된 정보 및 유선 또는 무선 컴퓨터 네트워크를 포함하는 통신 매체를 통하여 전달된 정보를 포함하되 이에 한정되지 않는 여러 형태로 프로세서로 전달될 수 있다는 것을 쉽게 알 수 있을 것이다. 또한, 본 발명이 소프트웨어에 내재될 수 있으며, 본 발명을 실행하기 위하여 필요한 기능들은 선택적으로 또는 대안으로 조합논리, 주문형반도체(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 기타 하드웨어 또는 하드웨어, 소프트웨어 및/또는 펌웨어 부품들의 몇몇 조합과 같은 펌웨어 및/또는 하드웨어 부품들을 사용하여 일부 또는 전체 내에 내장될 수 있다.
본 발명이 상기 실시예들을 통하여 설명된 한편, 당업자들에 의해 이곳에 개시된 발명의 개념을 벗어나지 않고 묘사된 실시예들에 대한 개조 및 변형이 이루어 질 수 있음이 이해될 것이다. 예를 들어, 비록 절차, 방법 및 시스템의 몇몇 측면이 흐름도를 참조하여 설명되었지만, 당업자는 흐름도의 각 블록 또는 블록들의 조합의 전부 또는 일부의 기능, 동작, 판단 등이 조합되거나 분리되어 별도의 동작에 통합되거나 다른 순서로 수행될 수 있다는 것을 쉽게 알 수 있을 것이다. 더욱이, 개시된 측면, 또는 이들 측면의 부분은 위에 열거되지 않은 방법으로 커플링될 수 있다. 따라서 본 발명은 개시된 실시예들에 국한되는 것으로 보아서는 아니 된다.
위에 설명된 본 발명의 실시예들은 단지 예시를 위하여 의도된 것이며 수많은 변형과 개조가 당업자들에게는 자명할 것이다. 이와 같은 모든 변형과 개조가 첨부된 특허청구범위에서 정의된 본 발명의 범위 내에 있도록 의도되었다.

Claims (24)

  1. 호스트 컴퓨팅 디바이스('호스트')와 각각 주소가 할당된 하나 이상의 주변 디바이스('주변기기') 간을 커플링하기 위한 보안 장치에 있어서,
    상기 보안 장치는
    업스트림 링크를 통하여 상기 호스트와 커플링되고, 상기 업스트림 링크를 통하여 상기 호스트로부터 명령어들 및 데이터를 수신하고, 상기 업스트림 링크를 통하여 상기 호스트로 데이터를 송신하되, 상기 명령어들 중 적어도 일부의 각각은 상기 하나 이상의 주변기기 중 하나의 주소를 포함하도록 구성된 업스트림 인터페이스;
    각각의 다운스트림 링크를 통하여 상기 하나 이상의 주변기기 중의 하나에 각각 커플링되며, 상기 각각의 다운스트림 링크를 통하여 상기 하나의 주변기기로부터 데이터를 수신하고 상기 각각의 다운스트림 링크를 통하여 명령어들 및 데이터를 상기 하나의 주변기기로 송신하도록 구성된 하나 이상의 다운스트림 인터페이스; 및
    상기 업스트림 인터페이스 및 상기 다운스트림 인터페이스에 커플링되는 컨트롤러;를 포함하고,
    상기 컨트롤러는
    상기 업스트림 인터페이스를 통하여 명령어 및 데이터를 수신하고;
    상기 수신된 명령어를 분석하기 위한 보안 절차를 수행하며;
    상기 보안 절차가 보안 위험을 식별하지 않으면, 상기 하나 이상의 다운스트림 인터페이스 중 하나를 선택하고, 상기 보안 절차가 보안 위험을 식별하면, 상기 하나 이상의 다운스트림 인터페이스 중 어느 것도 선택하지 않고;
    상기 하나 이상의 다운스트림 인터페이스 중 하나가 선택되면, 상기 수신된 명령어 및 데이터를 상기 하나 이상의 다운스트림 인터페이스 중 상기 선택된 하나에만 전송하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  2. 제 1항에 있어서,
    상기 컨트롤러는 상기 수신된 명령어 및 데이터를, 상기 하나 이상의 다운스트림 인터페이스 중 상기 선택된 하나가 아닌, 상기 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전송하는 것을 방지하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  3. 제 1항에 있어서,
    상기 컨트롤러는 각각의 다운스트림 링크를 통하여 상기 하나 이상의 주변기기들 중 어느 두 개의 주변기기 간에 직접통신을 방지하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  4. 제 1항에 있어서,
    상기 컨트롤러는:
    상기 수신된 명령어들 및 데이터를 변형(garble)하고,
    상기 변형된 명령어들 및 데이터를, 상기 하나 이상의 다운스트림 인터페이스 중 상기 선택된 하나가 아닌, 상기 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전송하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  5. 제 1항에 있어서,
    각각의 다운스트림 인터페이스는 상기 각각의 다운스트림 링크를 통하여 상기 하나 이상의 주변기기 중 하나에 분리가능하게 커플링되도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  6. 제 1항에 있어서,
    상기 컨트롤러는:
    분석 간격 동안 상기 보안 절차를 수행하며;
    상기 분석 간격의 적어도 한 부분 동안, 상기 호스트 및 상기 주변기기의 어느 하나를 상기 호스트 및 상기 주변기기의 다른 하나에 에뮬레이팅하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  7. 제 6항에 있어서,
    상기 컨트롤러는 적어도 부분적으로 ACK 패킷을 생성하고 상기 생성된 ACK 패킷을 상기 호스트 및 상기 주변기기의 상기 다른 하나로 송신함으로써 상기 호스트 및 상기 주변기기의 상기 하나를 에뮬레이팅하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  8. 제 6항에 있어서,
    상기 컨트롤러는 적어도 부분적으로 NAK 패킷을 생성하고 상기 생성된 NAK 패킷을 상기 호스트 및 상기 주변기기의 상기 다른 하나로 송신함으로써 상기 호스트 및 상기 주변기기의 상기 하나를 에뮬레이팅하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  9. 제 6항에 있어서,
    상기 컨트롤러는 적어도 부분적으로 종단저항을 상기 업스트림 링크에 커플링함으로써, 상기 호스트 및 상기 주변기기의 상기 하나를 에뮬레이팅하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  10. 제 1항에 있어서,
    상기 컨트롤러는, 상기 수신된 데이터가 보안 위험을 제기하는지 확인하기 위하여 상기 수신된 데이터를 분석함으로써, 상기 보안 절차를 수행하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  11. 제 2항에 있어서,
    상기 컨트롤러는, 상기 업스트림 링크를 링크된 상태로부터 전기적으로 종단된 상태로 변경하고;
    상기 각각의 다운스트림 링크의 적어도 하나를 링크된 상태로부터 전기적으로 종단된 상태로 변경함으로써, 상기 수신된 데이터를 전송하는 것을 방지하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  12. 제 11항에 있어서,
    상기 컨트롤러는 종단 저항을 상기 업스트림 링크에 커플링시킴으로써 상기 업스트림 링크를 링크된 상태로부터 전기적으로 종단된 상태로 변경하도록 구성된 것을 특징으로 하는 호스트 및 주변기기 간을 커플링하기 위한 보안장치.
  13. 하나 이상의 호스트 컴퓨팅 디바이스 ('호스트') 및 각각 주소가 할당된 하나 이상의 주변 디바이스('주변기기')의 보안을 강화하는 보안 장치-구현 방법에 있어서,
    상기 보안 장치는 업스트림 링크를 통하여 상기 호스트와 커플링되며, 호스트로부터 상기 업스트림 링크를 통하여 명령어들 및 데이터를 수신하며 상기 업스트림 링크를 통하여 데이터를 상기 호스트로 송신하되, 상기 명령어들 중 적어도 일부의 각각은 상기 하나 이상의 주변기기 중 하나의 주소를 포함하도록 구성된 업스트림 인터페이스를 포함하고,
    상기 보안 장치는 각각의 다운스트림 링크를 통하여 상기 하나 이상의 주변기기 중의 하나에 각각 커플링되며, 상기 각각의 다운스트림 링크를 통하여 상기 하나의 주변기기로부터 데이터를 수신하고 상기 각각의 다운스트림 링크를 통하여 명령어들 및 데이터를 상기 하나의 주변기기로 송신하도록 구성된 하나 이상의 다운스트림 인터페이스를 더 포함하며,
    상기 보안 장치-구현방법은
    상기 업스트림 인터페이스를 통하여 명령어 및 데이터를 수신하는 단계;
    상기 수신된 명령어를 분석하기 위한 보안 절차를 수행하는 단계;
    상기 보안 절차가 보안 위험을 식별하지 않으면, 상기 하나 이상의 다운스트림 인터페이스 중 하나를 선택하고, 상기 보안 절차가 보안 위험을 식별하면, 상기 하나 이상의 다운스트림 인터페이스 중 어느 것도 선택하지 않는 단계;
    상기 하나 이상의 다운스트림 인터페이스 중 하나가 선택되면, 상기 수신된 명령어 및 데이터를 상기 하나 이상의 다운스트림 인터페이스 중 상기 선택된 하나에만 전송하는 단계;를 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  14. 제 13항에 있어서,
    상기 수신된 명령어들 및 데이터를, 상기 하나 이상의 다운스트림 인터페이스 중 상기 선택된 하나가 아닌, 상기 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전송하는 것을 방지하는 단계;를 더 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  15. 제 13항에 있어서,
    각각의 다운스트림 링크를 통하여 상기 하나 이상의 주변기기들 중 어느 두 개의 주변기기 간에 직접통신을 방지하는 단계;를 더 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  16. 제 13항에 있어서,
    상기 수신된 명령어들 및 데이터를 변형(garble)하는 단계;
    상기 변형된 명령어들 및 데이터를, 상기 하나 이상의 다운스트림 인터페이스 중 상기 선택된 하나가 아닌, 상기 하나 이상의 다운스트림 인터페이스 중 적어도 하나로 전송하는 단계를 더 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  17. 제 13항에 있어서,
    분석 간격 동안 상기 보안 절차를 수행하는 단계; 및
    상기 분석 간격의 적어도 한 부분 동안, 상기 호스트 및 상기 주변기기의 어느 하나를 상기 호스트 및 상기 주변기기의 다른 하나로 에뮬레이팅하는 단계;를 더 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  18. 제 17항에 있어서,
    상기 호스트 및 상기 주변기기의 상기 하나를 에뮬레이팅하는 단계는 적어도 부분적으로, ACK 패킷을 생성하는 단계 및 상기 생성된 ACK 패킷을 상기 호스트 및 상기 주변기기의 상기 다른 하나로 송신하는 단계;를 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  19. 제 17항에 있어서,
    상기 호스트 및 상기 주변기기의 상기 하나를 에뮬레이팅하는 단계는 적어도 부분적으로, NAK패킷을 생성하는 단계 및 상기 생성된 NAK 패킷을 상기 호스트 및 상기 주변기기의 상기 다른 하나로 송신하는 단계;를 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  20. 제 17항에 있어서,
    상기 호스트 및 상기 주변기기의 상기 하나를 에뮬레이팅하는 단계는 적어도 부분적으로, 종단저항을 상기 업스트림 링크에 커플링하는 단계;를 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  21. 제 13항에 있어서,
    상기 보안 절차를 수행하는 단계는,
    상기 수신된 데이터가 보안 위험을 제기하는지 확인하기 위하여 상기 수신된 데이터를 분석하는 단계를 더 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  22. 제 14항에 있어서,
    상기 수신된 데이터를 전송하는 것을 방지하는 단계는:
    상기 업스트림 링크를 링크된 상태로부터 전기적으로 종단된 상태로 변경하는 단계; 및
    상기 각각의 다운스트림 링크 중 적어도 하나를 링크된 상태로부터 전기적으로 종단된 상태로 변경하는 단계;를 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  23. 제 22항에 있어서,
    상기 업스트림 링크를 링크된 상태로부터 전기적으로 종단된 상태로 변경하는 단계는 종단 저항을 상기 업스트림 링크에 커플링시키는 단계;를 포함하는 것을 특징으로 하는 호스트 및 주변기기의 보안을 강화하는 보안장치-구현방법.
  24. 하나 이상의 호스트 컴퓨팅 디바이스 ('호스트') 및 각각 주소가 할당된 하나 이상의 주변 디바이스('주변기기')의 보안을 강화하는 보안 장치를 실행하기 위한 컴퓨터-판독가능 프로그램 코드를 저장하는 비-일시적 컴퓨터-판독가능 저장 매체에 있어서,
    상기 보안 장치는
    업스트림 링크를 통하여 상기 호스트와 커플링되고, 상기 업스트림 링크를 통하여 상기 호스트로부터 명령어들 및 데이터를 수신하고, 상기 업스트림 링크를 통하여 상기 호스트로 데이터를 송신하되, 상기 명령어들 중 적어도 일부의 각각은 상기 하나 이상의 주변기기 중 하나의 주소를 포함하도록 구성된 업스트림 인터페이스;를 포함하고,
    상기 보안 장치는
    각각의 다운스트림 링크를 통하여 상기 하나 이상의 주변기기 중의 하나에 각각 커플링되며, 상기 각각의 다운스트림 링크를 통하여 상기 하나의 주변기기로부터 데이터를 수신하고 상기 각각의 다운스트림 링크를 통하여 명령어들 및 데이터를 상기 하나의 주변기기로 송신하도록 구성된 하나 이상의 다운스트림 인터페이스;를 더 포함하고,
    상기 컴퓨터-판독가능 프로그램 코드는:
    상기 업스트림 인터페이스를 통하여 명령어 및 데이터를 수신하며;
    상기 수신된 명령어를 분석하기 위한 보안 절차를 수행하며,
    상기 보안 절차가 보안 위험을 식별하지 않으면, 상기 하나 이상의 다운스트림 인터페이스 중 하나를 선택하고, 상기 보안 절차가 보안 위험을 식별하면, 상기 하나 이상의 다운스트림 인터페이스 중 어느 것도 선택하지 않고;
    상기 하나 이상의 다운스트림 인터페이스 중 하나가 선택되면, 상기 수신된 명령어 및 데이터를 상기 하나 이상의 다운스트림 인터페이스 중 상기 선택된 하나에만 전송하도록 구성된 호스트 및 주변기기의 보안을 강화하는 보안 장치를 실행하기 위한 컴퓨터-판독가능 프로그램 코드를 저장하는 비-일시적 컴퓨터-판독가능 저장 매체.


KR1020147003085A 2011-08-10 2012-08-09 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법 KR102039113B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161522138P 2011-08-10 2011-08-10
US61/522,138 2011-08-10
PCT/US2012/050213 WO2013023105A1 (en) 2011-08-10 2012-08-09 Apparatus and method for enhancing security of data on a host computing device and a peripheral device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197031583A Division KR102195788B1 (ko) 2011-08-10 2012-08-09 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140048238A KR20140048238A (ko) 2014-04-23
KR102039113B1 true KR102039113B1 (ko) 2019-10-31

Family

ID=47668977

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197031583A KR102195788B1 (ko) 2011-08-10 2012-08-09 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법
KR1020147003085A KR102039113B1 (ko) 2011-08-10 2012-08-09 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197031583A KR102195788B1 (ko) 2011-08-10 2012-08-09 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법

Country Status (5)

Country Link
US (3) US8869273B2 (ko)
KR (2) KR102195788B1 (ko)
DE (1) DE112012003293T5 (ko)
GB (1) GB2506803B (ko)
WO (1) WO2013023105A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102195788B1 (ko) 2011-08-10 2020-12-28 기타 스리바스타바 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법
DE102012219940A1 (de) * 2012-10-31 2014-04-30 Trumpf Werkzeugmaschinen Gmbh + Co. Kg Repeater, CAN-Kommunikationssystem und Verfahren zur Übertragung eines Datentelegramms innerhalb eines CAN-Kommunikationssystems
US9141820B2 (en) * 2013-07-25 2015-09-22 Adobe Systems Incorporated Network-based service content protection
US9860216B2 (en) * 2013-09-16 2018-01-02 Axis Ab Anonymous decisions in an access control system
CN106295381B (zh) * 2015-05-19 2019-05-07 澜起科技股份有限公司 用于监控对内部存储器的数据访问的装置以及内部存储器
EP3308321B1 (en) * 2015-06-09 2021-08-04 Datex Inc. Peripheral bus security interface and method
IL244557A0 (en) * 2016-03-13 2016-07-31 Cyber Sepio Systems Ltd A system and method for protecting a computer system from USB-related weaknesses such as cyber attacks
US10715501B2 (en) * 2016-10-26 2020-07-14 Intel Corporation Providing secure data transmission over a universal serial bus (USB) interface
CN110476167B (zh) * 2017-02-27 2023-10-13 英万齐股份有限公司 基于上下文的计算机安全风险缓解的系统和方法
WO2019030748A1 (en) 2017-08-03 2019-02-14 Cyber Sepio Systems Ltd SYSTEM AND METHOD FOR SECURING A COMPUTER SYSTEM AGAINST THREATS INTRODUCED ÈAR FROM USB DEVICES
IL254573A0 (en) 2017-09-18 2017-11-30 Cyber Sepio Systems Ltd Install a method and computer software product for securing a local network from threats posed by foreign or hostile accessories
CN109543475B (zh) * 2018-10-29 2020-07-07 北京博衍思创信息科技有限公司 一种外接式终端防护设备及防护系统
US11132441B2 (en) * 2019-05-06 2021-09-28 The Florida International University Board Of Trustees Systems and methods for inhibiting threats to a computing environment
IL289845A (en) * 2022-01-13 2023-08-01 Chaim Yifrach Amichai A system for detecting and preventing cyber attacks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002124966A (ja) * 2000-10-13 2002-04-26 Hitachi Cable Ltd スイッチングハブ及びそれを用いたlanシステム
US20040168009A1 (en) * 2003-02-24 2004-08-26 Piotr Szabelski Universal serial bus hub with shared high speed handler
US20080276302A1 (en) * 2005-12-13 2008-11-06 Yoggie Security Systems Ltd. System and Method for Providing Data and Device Security Between External and Host Devices

Family Cites Families (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW386215B (en) 1997-03-24 2000-04-01 Seiko Epson Corp Emulation system and information processor
JPH10293641A (ja) 1997-04-17 1998-11-04 Toshiba Corp コンピュータシステムおよびusbデバイス制御方法
US5968176A (en) * 1997-05-29 1999-10-19 3Com Corporation Multilayer firewall system
US6088802A (en) 1997-06-04 2000-07-11 Spyrus, Inc. Peripheral device with integrated security functionality
US6886055B2 (en) 1997-12-15 2005-04-26 Clearcube Technology, Inc. Computer on a card with a remote human interface
KR100290729B1 (ko) 1998-01-07 2001-05-15 클라크 3세 존 엠. 유에스비 등시 데이타를 전송 및 수신하는 장치 및 방법
US6625790B1 (en) * 1998-07-08 2003-09-23 Microsoft Corporation Method and apparatus for detecting the type of interface to which a peripheral device is connected
US6311294B1 (en) 1998-10-20 2001-10-30 Cypress Semiconductor Corp. Device and method for efficient bulk data retrieval using a universal serial bus
US6321335B1 (en) 1998-10-30 2001-11-20 Acqis Technology, Inc. Password protected modular computer method and device
US6389029B1 (en) 1998-11-10 2002-05-14 Nortel Networks Limited Local area network incorporating universal serial bus protocol
US6216183B1 (en) 1998-11-20 2001-04-10 Compaq Computer Corporation Apparatus and method for securing information entered upon an input device coupled to a universal serial bus
US6584519B1 (en) 1998-12-22 2003-06-24 Canon Kabushiki Kaisha Extender for universal serial bus
TW420796B (en) 1999-01-13 2001-02-01 Primax Electronics Ltd Computer system equipped with portable electronic key
US6389495B1 (en) 1999-01-16 2002-05-14 Cypress Semiconductor Corp. Dedicated circuit and method for enumerating and operating a peripheral device on a universal serial bus
US6343260B1 (en) 1999-01-19 2002-01-29 Sun Microsystems, Inc. Universal serial bus test system
US6389560B1 (en) 1999-01-19 2002-05-14 Sun Microsystems, Inc. Universal serial bus interpreter
US7003613B1 (en) 1999-01-26 2006-02-21 Transdimension Inc. System for transferring data using a USB host system with a dedicated processor
US6601109B1 (en) 1999-03-31 2003-07-29 International Business Machines Corporation USB-based networking and I/O hub
JP4371466B2 (ja) 1999-04-15 2009-11-25 株式会社東芝 コンピュータシステム及びそのi/o装置の制御方法
US6708247B1 (en) 1999-07-21 2004-03-16 Clearcube Technology, Inc. Extending universal serial bus to allow communication with USB devices at a remote location
US7447037B2 (en) 1999-08-04 2008-11-04 Super Talent Electronics, Inc. Single chip USB packages by various assembly methods
US6251014B1 (en) 1999-10-06 2001-06-26 International Game Technology Standard peripheral communication
US7704147B2 (en) 1999-10-06 2010-04-27 Igt Download procedures for peripheral devices
CN1088218C (zh) 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
US6804243B1 (en) 1999-11-22 2004-10-12 Texas Instruments Incorporated Hardware acceleration for segmentation of message packets in a universal serial bus peripheral device
US6523081B1 (en) 1999-11-22 2003-02-18 Texas Instruments Incorporated Architecture using dedicated endpoints and protocol for creating a multi-application interface and improving bandwidth over universal serial bus
US6671765B1 (en) 1999-11-22 2003-12-30 Texas Instruments Incorporated Architecture enabling code overlay using a dedicated endpoint
US6684402B1 (en) 1999-12-01 2004-01-27 Cognex Technology And Investment Corporation Control methods and apparatus for coupling multiple image acquisition devices to a digital data processor
US6526468B1 (en) * 1999-12-15 2003-02-25 Robotel Electronique Inc. Peripheral bus extender
US6934774B1 (en) 1999-12-20 2005-08-23 Fujitsu Limited Method and system for reliable device configuration in a computer system
FR2804816B1 (fr) 2000-02-03 2003-10-31 Gemplus Card Int Transport d'unites de protocole d'objet electronique portable par protocole pour peripheriques de micro- ordinateur
CN100495420C (zh) 2000-02-21 2009-06-03 特科2000国际有限公司 便携式数据存储装置
FR2806505A1 (fr) 2000-03-15 2001-09-21 Schlumberger Systems & Service Procede de communication entre une carte a puce et une station hote
US6839771B1 (en) 2000-04-13 2005-01-04 Hewlett-Packard Development Company, L.P. Method and system for using a universal serial bus (USB) as a peer-to-peer network
US6754811B1 (en) 2000-06-16 2004-06-22 International Business Machines Corporation Operating system device centric agent
US7870599B2 (en) 2000-09-05 2011-01-11 Netlabs.Com, Inc. Multichannel device utilizing a centralized out-of-band authentication system (COBAS)
US6959257B1 (en) 2000-09-11 2005-10-25 Cypress Semiconductor Corp. Apparatus and method to test high speed devices with a low speed tester
US6571305B1 (en) * 2000-09-27 2003-05-27 Lantronix, Inc. System for extending length of a connection to a USB peripheral
US6968462B2 (en) 2000-12-11 2005-11-22 International Business Machines Corporation Verifying physical universal serial bus keystrokes
US6718412B2 (en) 2000-12-14 2004-04-06 Agilent Technologies, Inc. Apparatus and method for universal serial bus communications
US6839793B2 (en) 2001-03-28 2005-01-04 Intel Corporation Method and apparatus to maximize bandwidth availability to USB devices
US6678761B2 (en) 2001-03-30 2004-01-13 Intel Corporation Method and apparatus for budget development under universal serial bus protocol in a multiple speed transmission environment
US7272831B2 (en) 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US6931465B1 (en) 2001-03-31 2005-08-16 Cypress Semiconductor Corp. Intelligent, extensible SIE peripheral device
EP1248179A1 (en) * 2001-04-03 2002-10-09 Hewlett-Packard Company Selective activation and deactivation of peripheral devices connected to a USB system
CA2345596C (en) 2001-04-27 2007-12-04 Icron Systems Inc. Method and apparatus for extending the range of the universal serial bus protocol
JP3680762B2 (ja) 2001-05-14 2005-08-10 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6435904B1 (en) * 2001-06-01 2002-08-20 Fellowes, Inc. Multiple peripheral connection device for connecting multiple peripheral devices to a host device
WO2003003295A1 (en) 2001-06-28 2003-01-09 Trek 2000 International Ltd. A portable device having biometrics-based authentication capabilities
US7228366B2 (en) 2001-06-29 2007-06-05 Intel Corporation Method and apparatus for deterministic removal and reclamation of work items from an expansion bus schedule
US6904489B2 (en) 2001-10-23 2005-06-07 Digi International Inc. Methods and systems for remotely accessing universal serial bus devices
US6889265B2 (en) 2001-11-05 2005-05-03 Intel Corporation Apparatus and method to allow and synchronize schedule changes in a USB enhanced host controller
US6996705B2 (en) 2001-11-21 2006-02-07 Lenovo (Singapore) Pte. Ltd. Method and system for configuring the language of the BIOS in a computer system
US6744634B2 (en) 2001-11-23 2004-06-01 Power Quotient International Co., Ltd. Low height USB interface connecting device and a memory storage apparatus thereof
US7162407B2 (en) 2001-12-03 2007-01-09 Ms1-Microsoft Corporation Testing a host's support for peripheral devices
AU2002327271A1 (en) 2001-12-29 2003-07-15 Tai Guen Enterprise Co., Ltd A portable data conversion processor with standard data port
CN2517012Y (zh) 2002-01-23 2002-10-16 台均实业有限公司 可随意升级扩容更换存储介质的usb移动存储器
US6792501B2 (en) 2002-01-31 2004-09-14 Phision Electronic Corp Universal serial bus flash memory integrated circuit device
TW569013B (en) 2002-02-21 2004-01-01 Via Tech Inc Chip test method for testing host controller of universal serial bus
US20030184960A1 (en) 2002-03-28 2003-10-02 Compaq Information Technologies Group, L.P. Enumeration, manageability, and security of a KVM extension device
DE60209115T2 (de) 2002-05-13 2006-10-26 Trek 2000 International Ltd. System und vorrichtung zum komprimieren und dekomprimieren von in einem tragbaren datenspeichergerät gespeicherten daten
JP4960594B2 (ja) 2002-06-03 2012-06-27 トムソン ライセンシング Dslモデムとそのデータ転送モードを確立する方法
US6904493B2 (en) 2002-07-11 2005-06-07 Animeta Systems, Inc. Secure flash memory device and method of operation
US6745264B1 (en) 2002-07-15 2004-06-01 Cypress Semiconductor Corp. Method and apparatus for configuring an interface controller wherein ping pong FIFO segments stores isochronous data and a single circular FIFO stores non-isochronous data
US6757776B1 (en) 2002-07-17 2004-06-29 Cypress Semiconductor Corp. Control transaction handling in a device controller
TW588243B (en) 2002-07-31 2004-05-21 Trek 2000 Int Ltd System and method for authentication
ATE544111T1 (de) 2002-11-01 2012-02-15 Saslite Corp Ablösbare usb einrichtung mit getrennten einheiten
US7069373B2 (en) 2002-11-07 2006-06-27 Nec Electronics America, Inc. USB endpoint controller flexible memory management
JP4050135B2 (ja) 2002-11-25 2008-02-20 富士通株式会社 通信デバイス、ホスト装置、及び通信方法
US7114105B2 (en) 2002-12-05 2006-09-26 Qualcomm, Inc. System and method for software download to wireless communication device
US7460535B2 (en) 2002-12-18 2008-12-02 Synopsys, Inc. Device and method that allows single data recovery circuit to support multiple USB ports
US7222201B2 (en) 2003-01-06 2007-05-22 Plx Technology, Inc. Virtual endpoint for USB devices
US7069370B2 (en) 2003-01-31 2006-06-27 Toshiba Corporation USB memory storage apparatus with integrated circuit in a connector
EP1609048A4 (en) 2003-03-27 2009-01-14 Milsys Ltd DATA STORAGE DEVICE HAVING COMPLETE ACCESS FOR ALL USERS
US7243237B2 (en) 2003-05-02 2007-07-10 Microsoft Corporation Secure communication with a keyboard or related device
US7469343B2 (en) 2003-05-02 2008-12-23 Microsoft Corporation Dynamic substitution of USB data for on-the-fly encryption/decryption
US7373522B2 (en) 2003-05-09 2008-05-13 Stmicroelectronics, Inc. Smart card with enhanced security features and related system, integrated circuit, and methods
US6783078B1 (en) 2003-05-09 2004-08-31 Stmicroelectronics, Inc. Universal serial bus (USB) smart card having read back testing features and related system, integrated circuit, and methods
US7080789B2 (en) 2003-05-09 2006-07-25 Stmicroelectronics, Inc. Smart card including a JTAG test controller and related methods
US7181649B2 (en) 2003-05-09 2007-02-20 Stmicroelectronics, Inc. Universal serial bus (USB) smart card having enhanced testing features and related system, integrated circuit, and methods
US7143224B2 (en) 2003-05-09 2006-11-28 Stmicroelectronics, Inc. Smart card for performing advance operations to enhance performance and related system, integrated circuit, and methods
US7044390B2 (en) 2003-06-02 2006-05-16 Stmicroelectronics, Inc. Smart card emulator and related methods using buffering interface
US7369982B2 (en) 2003-06-04 2008-05-06 Stmicroelectronics, Inc. Multi-mode smart card emulator and related methods
JP3649227B2 (ja) 2003-06-06 2005-05-18 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
US7127649B2 (en) 2003-06-09 2006-10-24 Stmicroelectronics, Inc. Smartcard test system and related methods
US7493431B2 (en) 2003-08-06 2009-02-17 Icron Technologies Corporation Method and apparatus for extending the range of the universal serial bus protocol
US7454783B2 (en) 2003-08-08 2008-11-18 Metapass, Inc. System, method, and apparatus for automatic login
USD494969S1 (en) 2003-08-11 2004-08-24 Benq Corporation USB flash memory drive
KR100557215B1 (ko) 2003-08-19 2006-03-10 삼성전자주식회사 유에스비 디바이스의 엔드포인트 제어 장치 및 그 방법
TWI296083B (en) 2003-09-29 2008-04-21 Sharp Kk Communication controller, host-side controller, communication system, usb system, communication equipment, communication method, packet-based communication method, packet-based communication program, and storage medium
US7145481B2 (en) 2003-09-30 2006-12-05 Intel Corporation Method and apparatus for trusted keyboard scanning
US7489417B2 (en) 2003-09-30 2009-02-10 Toshiba Corporation USB print
TWI238320B (en) 2003-10-07 2005-08-21 Sunplus Technology Co Ltd USB composite device using hub connection layer and UTMI interface
US7636844B2 (en) 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US7213766B2 (en) 2003-11-17 2007-05-08 Dpd Patent Trust Ltd Multi-interface compact personal token apparatus and methods of use
US7321951B2 (en) 2003-11-17 2008-01-22 Micron Technology, Inc. Method for testing flash memory power loss recovery
US7762470B2 (en) 2003-11-17 2010-07-27 Dpd Patent Trust Ltd. RFID token with multiple interface controller
US7597250B2 (en) 2003-11-17 2009-10-06 Dpd Patent Trust Ltd. RFID reader with multiple interfaces
US7318101B2 (en) * 2003-11-24 2008-01-08 Cisco Technology, Inc. Methods and apparatus supporting configuration in a network
US7073010B2 (en) 2003-12-02 2006-07-04 Super Talent Electronics, Inc. USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US7213096B2 (en) 2004-03-31 2007-05-01 Intel Corporation Operating a remote USB host controller
US7328849B2 (en) 2004-04-21 2008-02-12 Stmicroelectronics, Inc. Smart card providing data mapping for multiple applications and related methods
JP2005328280A (ja) 2004-05-13 2005-11-24 Canon Inc データ処理装置
US7480931B2 (en) 2004-07-24 2009-01-20 Bbs Technologies, Inc. Volume mount authentication
US7831748B2 (en) * 2004-08-10 2010-11-09 Microsoft Corporation Extended USB protocol with selective broadcast mechanism
US20060059293A1 (en) * 2004-09-14 2006-03-16 Henry Wurzburg Universal serial bus switching hub
US7747797B2 (en) 2004-09-28 2010-06-29 Microsoft Corporation Mass storage device with near field communications
US7493487B2 (en) 2004-10-15 2009-02-17 Microsoft Corporation Portable computing environment
US7188206B2 (en) 2004-10-22 2007-03-06 Conwise Technology Corporation Ltd. USB compound device without embedded hub and implement method in USB system
US7496493B1 (en) 2004-11-09 2009-02-24 Western Digital Technologies, Inc. External memory device to provide disk device and optical functionality
US7478424B2 (en) 2004-11-30 2009-01-13 Cymtec Systems, Inc. Propagation protection within a network
US7644211B2 (en) 2004-12-07 2010-01-05 Cisco Technology, Inc. Method and system for controlling transmission of USB messages over a data network between a USB device and a plurality of host computers
US7823214B2 (en) 2005-01-07 2010-10-26 Apple Inc. Accessory authentication for electronic devices
EP1920304A1 (en) 2005-02-23 2008-05-14 Stonewood Electronics Ltd User authentication for a computer system
US7640378B2 (en) 2005-03-11 2009-12-29 Icron Technologies Corporation Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays
JP4502389B2 (ja) 2005-03-15 2010-07-14 キヤノン株式会社 通信装置及びその制御方法
US7711874B1 (en) 2005-03-23 2010-05-04 American Megatrends, Inc. Usage of EHCI companion USB controllers for generating periodic events
US7396257B2 (en) 2005-05-26 2008-07-08 Itt Manufacturing Enterprises, Inc. Computer input/output (I/O) connector assembly having a security circuit disposed therein
US7702825B2 (en) 2005-06-29 2010-04-20 Intel Corporation Enhancements to universal serial bus (USB) suspend and resume operations
US7743409B2 (en) 2005-07-08 2010-06-22 Sandisk Corporation Methods used in a mass storage device with automated credentials loading
US7788704B2 (en) * 2005-09-15 2010-08-31 Cisco Technology, Inc. Method and system for secure connection of peripheral device to processing device
US7664960B1 (en) 2005-09-23 2010-02-16 Kenneth Wayne Clubb Password enhancing device
US7246189B2 (en) * 2005-11-18 2007-07-17 Vetra Systems Corporation Method and apparatus for enhancing universal serial bus
US7877788B1 (en) 2006-02-27 2011-01-25 Teradici Corporation Method and apparatus for securing a peripheral data interface
US7516261B2 (en) 2006-04-21 2009-04-07 Sandisk Corporation Method for U3 adapter
US7447821B2 (en) 2006-04-21 2008-11-04 Sandisk Corporation U3 adapter
DE102006018871A1 (de) * 2006-04-24 2007-10-25 OCé PRINTING SYSTEMS GMBH Verfahren zum Betreiben eines Datenbusses und Datenbussystem
US7480753B2 (en) * 2006-04-27 2009-01-20 Standard Microsystems Corporation Switching upstream and downstream logic between ports in a universal serial bus hub
US7975304B2 (en) 2006-04-28 2011-07-05 Trend Micro Incorporated Portable storage device with stand-alone antivirus capability
US7490255B2 (en) 2006-06-30 2009-02-10 Intel Corporation Power efficient flow control model for USB asynchronous transfers
US7734841B2 (en) 2006-06-30 2010-06-08 Palm, Inc. System and method for providing serial bus connectivity
US7587536B2 (en) 2006-07-28 2009-09-08 Icron Technologies Corporation Method and apparatus for distributing USB hub functions across a network
US7647446B2 (en) 2006-10-03 2010-01-12 Silex Technology, Inc. Networked isochronous USB communication
WO2008087317A2 (fr) 2006-12-14 2008-07-24 Sagem Securite Dispositif peripherique de securite
US7908501B2 (en) * 2007-03-23 2011-03-15 Silicon Image, Inc. Progressive power control of a multi-port memory device
US20090064273A1 (en) 2007-08-31 2009-03-05 Broadcom Corporation Methods and systems for secure data entry and maintenance
TW200939022A (en) 2008-03-13 2009-09-16 Powerflash Technology Corp Data access system
US8560864B2 (en) * 2008-03-26 2013-10-15 Fego Precision Industrial Co., Ltd. Firewall for removable mass storage devices
US8176216B1 (en) * 2008-03-31 2012-05-08 Total Phase, Inc. Methods for analyzing USB data traffic using a single USB host controller
US8484736B2 (en) 2008-06-06 2013-07-09 Sandisk Il Ltd. Storage device having an anti-malware protection
US8091115B2 (en) 2008-10-03 2012-01-03 Microsoft Corporation Device-side inline pattern matching and policy enforcement
USD610156S1 (en) 2009-01-01 2010-02-16 Orion Photo Industries, Inc. USB flash drive
US20110289548A1 (en) 2010-05-18 2011-11-24 Georg Heidenreich Guard Computer and a System for Connecting an External Device to a Physical Computer Network
US8140733B2 (en) 2010-08-12 2012-03-20 Emcon Emanation Control Ltd. Secure external computer hub
US8667303B2 (en) * 2010-11-22 2014-03-04 Motorola Mobility Llc Peripheral authentication
US8566934B2 (en) 2011-01-21 2013-10-22 Gigavation, Inc. Apparatus and method for enhancing security of data on a host computing device and a peripheral device
KR102195788B1 (ko) 2011-08-10 2020-12-28 기타 스리바스타바 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002124966A (ja) * 2000-10-13 2002-04-26 Hitachi Cable Ltd スイッチングハブ及びそれを用いたlanシステム
US20040168009A1 (en) * 2003-02-24 2004-08-26 Piotr Szabelski Universal serial bus hub with shared high speed handler
US20080276302A1 (en) * 2005-12-13 2008-11-06 Yoggie Security Systems Ltd. System and Method for Providing Data and Device Security Between External and Host Devices

Also Published As

Publication number Publication date
DE112012003293T5 (de) 2014-05-08
US8869273B2 (en) 2014-10-21
US10678913B2 (en) 2020-06-09
KR20190124807A (ko) 2019-11-05
GB2506803A (en) 2014-04-09
KR20140048238A (ko) 2014-04-23
GB2506803B (en) 2020-07-01
KR102195788B1 (ko) 2020-12-28
US20180137278A1 (en) 2018-05-17
WO2013023105A1 (en) 2013-02-14
US20130031629A1 (en) 2013-01-31
US9875354B1 (en) 2018-01-23
GB201401140D0 (en) 2014-03-12

Similar Documents

Publication Publication Date Title
KR102039113B1 (ko) 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법
KR101939078B1 (ko) 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치및 방법
US8862803B2 (en) Mediating communciation of a univeral serial bus device
CN107820604B (zh) 具有联网设备的计算机驱动系统的半虚拟化安全威胁防护
EP2885739B1 (en) System and method for providing a secure computational environment
US9081911B2 (en) Mediating communication of a universal serial bus device
US20160373408A1 (en) Usb firewall devices
US20090049307A1 (en) System and Method for Providing a Multifunction Computer Security USB Token Device
JP2012508931A (ja) モバイル装置とコンピュータを組み合わせ、安全な個人ごとの環境を生成する装置および方法
WO2020087783A1 (zh) 一种基于硬件控制逻辑的数据转发控制方法及系统
WO2013069695A1 (ja) 安全ボックス
KR101534566B1 (ko) 클라우드 가상 데스크탑 보안 통제 장치 및 방법
CN111444519A (zh) 保护日志数据的完整性
Neugschwandtner et al. A transparent defense against USB eavesdropping attacks
CN113557515A (zh) 外围设备与安全电路系统的兼容性
US8954624B2 (en) Method and system for securing input from an external device to a host
CN101420299B (zh) 提高智能密钥设备稳定性的方法和智能密钥设备
JP6138224B1 (ja) インターフェースのセキュリティ・システム、周辺機器の接続方法、電子機器、およびコンピュータ・プログラム
EP3039567A1 (en) Improving tamper resistance of aggregated data
WO2016209203A1 (en) Usb firewall devices
Liu et al. A Secure and Efficient USB-based In-band Communication Interface between Host and BMC
KR20130030132A (ko) 컴퓨팅 시스템의 보안기능 제공장치 및 제공방법
Parno et al. Challenges in bootstrapping trust in secure hardware
Beitler et al. A Transparent Defense Against USB Eavesdropping Attacks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right