KR20090018125A - 신뢰되지 않는 기계에 기밀 정보를 입력하기 위한 컴퓨터 구현 방법 - Google Patents

신뢰되지 않는 기계에 기밀 정보를 입력하기 위한 컴퓨터 구현 방법 Download PDF

Info

Publication number
KR20090018125A
KR20090018125A KR1020087030395A KR20087030395A KR20090018125A KR 20090018125 A KR20090018125 A KR 20090018125A KR 1020087030395 A KR1020087030395 A KR 1020087030395A KR 20087030395 A KR20087030395 A KR 20087030395A KR 20090018125 A KR20090018125 A KR 20090018125A
Authority
KR
South Korea
Prior art keywords
computer
user
confidential information
information
implemented method
Prior art date
Application number
KR1020087030395A
Other languages
English (en)
Other versions
KR101429304B1 (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 KR20090018125A publication Critical patent/KR20090018125A/ko
Application granted granted Critical
Publication of KR101429304B1 publication Critical patent/KR101429304B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

비보안 컴퓨터와 사용자가 원하는 정보를 갖는 컴퓨터 사이에서 통신중인 프록시 컴퓨터에 기밀 정보가 제공된다. 프록시 컴퓨터는 암호화된 형태로, 또는 자신과 결합된 임의 정보를 갖는 식 중 한쪽으로 기밀 정보를 수신한다. 프록시 컴퓨터는 기밀 정보를 확인하여 이를 사용자가 원하는 정보를 갖는 컴퓨터에 전송한다.
비보안 컴퓨터, 프록시 컴퓨터, 기밀 정보, 임의 정보, 프롬프트

Description

신뢰되지 않는 기계에 기밀 정보를 입력하기 위한 컴퓨터 구현 방법{ENTERING CONFIDENTIAL INFORMATION ON AN UNTRUSTED MACHINE}
이하의 설명은 일반적인 배경 정보를 위해 제공될 뿐 청구되는 요지의 범위를 결정하는 목적으로 사용되기 위한 것은 아니다.
정보에 액세스하는 능력은 인터넷의 대중화로 상당히 향상되고 있다. 이제는 도서관, 커피숍, 호텔 등과 같은 곳에 있는 컴퓨터들처럼 공개적으로 이용가능한 컴퓨터들을 사용하여 직장이나 가정에 있는 컴퓨터에 액세스하기, 또는 은행, 중개소(brokerage), 이메일 서비스 등과 같은 개인 정보를 갖는 웹사이트에 액세스 하기가 상당히 용이하고 편리하다.
불행하게도, 이러한 공개적으로 이용가능한 컴퓨터들은 일반적으로 스파이웨어 또는 키로거(keyloggers)로 알려진 악성 프로그램들을 포함하는 경우가 흔하다. 스파이웨어는 일반적으로, 사용자의 인지 및 허가가 없이 사용자 정보를 은밀히 모으는 임의의 소프트웨어 애플리케이션으로 간주된다. 스파이웨어는 사용자 활동을 몰래 엿보거나(snoop on user activity) 트로이 목마 다운로더들(Trojan downloaders)을 배포하거나, 컴퓨터가 애드웨어(adware)로 들끓게 하는 광대한 범위의 기술들을 포함한다.
키로거가 키스트로크 또는 컴퓨터 사용자의 다른 형태의 입력을 캡처하여 그 것들을 저장하는 점에서, 키로거들은 스파이웨어의 특정 형태, 또는 모니터링 소프트웨어로 간주될 수 있다. 작금의 키로거들은 또한 사용자의 화면의 이미지와 같은 추가 정보를 저장할 수 있다. 대부분의 악성 키로거들은 이 데이터를 제3자에게 이메일 등을 통해 원격으로 전송하는데, 여기서 기록된 정보는, 패스워드, 신용 카드 번호, 사회 보장 번호 등과 같은 개인적이고 종종 귀중한 정보를 확인하기(ascertain) 위해 분석될 수 있다.
관리자 측에서의 악의(malice) 또는 부주의(negligence) 중 어느 한쪽으로 인해, 공개적으로 이용가능한 컴퓨터들은 스파이웨어 및 키로거들에 대해 특히 취약(vulnerable)하다. 사용자가 기계의 제어를 갖지 않고 그 기계를 주로 단지 짧은 시간동안에만 사용하기 때문에, 사용자는 그 컴퓨터가 감염되지 않았는지(not infected) 확인하는 것이 불가능하다. 이러한 경우에, 사용자는 비록 이용가능 하더라도 그 컴퓨터를 사용하지 않는 쪽으로 결정하고 보다 안전한 컴퓨터를 찾으려 시도하거나, 패스워드와 같은 기밀 정보를 입력하고 그저 낙관하는 수 밖에 없다.
본 설명 및 개요는 이하의 실시예에서 더 설명되는 개념들의 선택을 단순화된 형태로 소개하기 위해 제공된다. 본 설명 및 개요는 청구된 요지의 핵심 특징들 또는 주요 특징들을 확인하기 위하거나, 청구된 요지의 범위를 한정하기 위한 목적으로 사용되는 것은 아니다. 또한, 청구된 요지는 배경기술에서 언급된 임의의 또는 모든 단점들을 해결하는 구현예에 한정되지 않는다.
기밀 정보는 비보안 컴퓨터와 사용자가 원하는 정보를 갖는 컴퓨터 사이에서 통신중인 프록시 컴퓨터에 제공된다. 프록시 컴퓨터는 암호화된 형태로 또는 그와 함께 결합된 임의 정보를 갖는 기밀 정보를 수신한다. 프록시 컴퓨터는 기밀 정보를 확인해서 이를 사용자가 원하는 정보를 갖는 컴퓨터에 전달한다.
도 1은 컴퓨터 시스템의 블록도.
도 2는 기밀 정보를 입력하기 위한 흐름도.
도 3은 기밀 정보를 입력하기 위한 제2 흐름도.
도 4는 프롬프트 인터페이스의 도식적 표현.
도 5는 컴퓨터에 계정을 구축하고 도 4의 프롬프트 인터페이스를 사용하기 위한 흐름도.
도 6은 기밀 정보를 매핑하는 방법을 도시하는 흐름도.
도 7은 매핑 테이블(a mapping table)의 도식적 표현.
도 8은 예시적인 사용자 인터페이스.
도 9는 매핑 테이블의 도식적 표현.
도 10은 예시적인 컴퓨팅 환경.
도 1은 사용자가 원하는 정보를 갖는 컴퓨터(102) 및 그 컴퓨터(102)에 액세스하기 위해 사용자에 의해 사용되는 비보안 컴퓨터(104)를 포함하는 컴퓨팅 환경(100)을 도시한다. 본원에서, 컴퓨터(104)는 "비보안(unsecured)"된 것으로 간주되는데, 왜냐하면, 사용될 때에, 그 컴퓨터는 컴퓨터(102) 상의 정보에, 또는 컴 퓨터(102)를 통해 정보에 액세스하기 위해 사용자에 의해 사용되는 기밀 정보(예를 들면, 패스워드)를 노출하기 쉽기 때문이다. 예를 들면, 컴퓨터(104)는 사용자에 의해 사용될 때에 누군가가 액세스 정보가 무엇인지를 보거나(view) 관찰(observation)에 의해 탐지(detect)하는 것이 가능할 수 있는 컴퓨터의 위치 때문에 "비보안"될 수 있다. 예를 들면, 사용자가 기밀 정보를 입력하는 동안에 누군가가 키보드나 모니터를 보는 것이 가능할 수 있다. 다른 상황에서는, 들릴 수 있게 만들어진 경우에는 기밀 정보, 또는 그것의 일부를 누군가가 엿들을 수 있다.
또한, 대안적으로는, 컴퓨터(104)가 어쩌면 기밀 정보를 탐지하고/하거나 사용자에 의해 컴퓨터(104)의 사용을 기록할 수 있는 프로그램 모듈들을 포함할 수 있어서 기밀 정보를 확인할 수 있기 때문에 컴퓨터(104)는 비보안일 수 있다. 일반적인 예시들은 커피숍, 바, 호텔 등과 같은 곳에서 공개적으로 이용가능한 컴퓨터들을 포함하지만 이에 제한되는 것은 아니다. 이들 컴퓨터들이 사용자의 제어 하에 있지 않기 때문에, 사용자는 기밀 정보를 기록하거나 탐지하기 위한 프로그램 모듈들이 컴퓨터 상에 존재하지 않는다고 보장할 수 없다. 그러나, 컴퓨터가 사용자의 제어하에 있고 그러한 기밀 문서의 기록이나 탐지를 방지하고자 하는 예방조치(precautions)가 행해지고 있는 경우에서 조차, 사용자의 컴퓨터는 "비보안"으로 간주될 수 있다. 예를 들면, 기밀 정보를 탐지 또는 기록하기 위한 프로그램 모듈들의 끊임없는 개발로 인해, 사용자는 자신의 컴퓨터가 안전하다고 보장하지 못할 수 있다. 마찬가지로, 사용자가 자신의 컴퓨터를 사용하여 인터넷으로의 액세스를 제공하는 무선 네트워크와 같은 다른 컴퓨터의 네트워크를 통해 컴퓨터(102)에 액 세스하는 경우에, 사용자의 컴퓨터는 비보안일 수 있다. 또한, 사용자가 관찰될 수 있는 환경에서 사용자가 자신의 컴퓨터를 이용하는 경우에는, 사용자의 컴퓨터는 비보안으로 간주될 수 있다.
컴퓨터(106)는 컴퓨터(102) 및 컴퓨터(104) 양쪽 모두에 연결가능하다. 컴퓨터(106)는, 비보안 컴퓨터(104)가 관찰되고 있는지 또는 키로거, 스파이웨어 또는 유사한 유형으로 설치된 프로그램 모듈을 갖는 지의 여부에 관계없이, 비보안 컴퓨터(104)의 사용자가 컴퓨터(102)에 기밀 정보 또는 기타 기밀 데이터를 안전하게 제공할 수 있는 메커니즘을 제공한다. 컴퓨터(106)는 비보안 컴퓨터(104)와 컴퓨터(102) 사이에서 통신가능한 프록시 서버의 형태일 수 있다. 비보안 컴퓨터(104)로부터 컴퓨터(102)에게 의도된 통신, 및 그 반대 방향의 통신은 컴퓨터(106)를 향하고, 그 다음에 의도된 컴퓨터에 통신을 전달한다. 그러나, 도 2에 방법(200)으로 도시된 바와 같이, 패스워드와 같은 통신중에 선택된 정보의 경우, 컴퓨터(106)는 사용자로 하여금 단계(202)에서 기밀 정보를 형성하기 위해 필요한 요구된 입력 이외에도 관계가 없거나 임의 정보를 선택적으로 입력하게 한다. 다시 말해, 사용자는 기밀 정보의 일부분들과 임의 정보 간에 적어도 부분적으로 교체하기(alternate) 위해 프롬프트에 기초하여 지시받을(directed) 수 있다. 단계(204)에서, 컴퓨터(106)는 기밀 정보를 형성하기 위해 필요한 요구된 입력 이외에도 임의 정보를 수신할 것이고, 사용자와 컴퓨터(106) 사이에 공유된 비밀(secret)에 기초하여, 기밀 정보로부터 임의 정보를 분리하기 위해 정보를 모두 처리할 것이다. 단계(206)에서, 컴퓨터(106)는 그런 후에 컴퓨터(102)에 기밀 정 보를 전달할 것이다. 예로서 패스워드를 제공하는 컴퓨터(104)상에서의 키스트로크를 이용하면, 실제 패스워드 키스트로크는 랜덤 또는 적어도 임의 키스트로크 중 많은 것들에 포함될 것이다. 컴퓨터(106)는 임의적인 키들을 제거(strip)하여, 단계(206)에서 컴퓨터(102)에 진짜 패스워드만을 전달할 것이다. 그 패스워드가 사용자로 하여금 특정 애플리케이션 또는 다른 정보에 액세스하도록 허용하는 경우에는, 비보안 컴퓨터(104)가 컴퓨터(106)를 통한 터널링에 의해 컴퓨터(102)에 실제로(in effect) 로그인된다. 컴퓨터(106)가 패스워드 관리 시스템으로서 동작하지 않는다는 것, 즉, 사용자의 패스워드가 컴퓨터(106)에 저장되지 않음을 강조할 가치가 있다. 또한, 처리가 컴퓨터(106)에 의해 행해지기 때문에, 컴퓨터(102)에 의해 제공된 인터페이스는 변화될 필요가 없다. 다시 말해, 컴퓨터(106)를 이용하여 동작하기 위해서 컴퓨터(102)의 인터페이스를 변경할 요구나 필요가 존재하지 않는다. 필요하다면, 컴퓨터(104)와 컴퓨터(102) 간에 전달될 필요가 있는 어떤 정보도 별도의 프레임 또는 창에서 사용자에게 제시될 수 있다.
도 3은 도 2에서 단계(202)를 구현하기 위한 방법(300)을 도시한다. 단계(302)에서, "유효한(valid)" 프롬프트의 형태(이하에서 논의함)가 사용자에 의해 할당되거나 동의된다. 단계(304)에서 컴퓨터(106)는 컴퓨터(104)가 사용자에게 프롬프트를 (가청 또는 가시적으로) 렌더링(render)하게끔 한다. 일반적으로, 단계(306)에서 나타낸 "유효한" 프롬프트는 기밀 정보의 다음 부분, 또는 입력된 것이 없는 경우에는 기밀 정보의 제1 부분(the first portion)으로 응답하라고 사용자에게 신호(cues)한다. 이와는 달리, 단계(308)에 의해 나타난 다른 모든 프롬프 트("유효하지 않은(invalid)" 프롬프트들)는 임의 입력(즉, 기밀 정보의 다음 부분이 아님), 또는 입력된 것이 없는 경우에는 기밀 정보의 제1 부분으로 응답하라고 사용자에게 신호한다. 단계들(304, 306, 및 308)은, 단계(310)에서 나타낸 바와 같이 기밀 정보가 전부 입력될 때 까지 필요한 대로 반복된다. 유효하지 않은 프롬프트는, 유효하지 않은 프롬프트의 하나의 형태에만 한정될(confined to) 필요가 없이, 복수의 유효하지 않은 프롬프트 중 임의의 하나일 수 있음을 주지해야 한다. 사용자가 관찰되고 있거나, 컴퓨터(104)가 키로거를 포함하고 있는 경우에서 조차, 동일한 포맷의 유효한 그리고 유효하지 않은 프롬프트들, 및 사용자가 각각의 프롬프트에 대한 응답을 제공하고 있기 때문에, 보안이 제공된다. 기밀 정보의 유효한 부분들이 유효하지 않은 프롬프트들에 대한 임의 응답의 노이즈에 포함되어 있기 때문에, 키로거는 모든 응답을 기록할 터이지만, 기밀 정보를 구성하기 위해 필요한 부분이 무엇인지를 분별하지는 못할 것이다. 이와는 달리, 컴퓨터(106)가 (사용자와 함께 공유하고 있는 비밀에 기초하여) 유효한 그리고 유효하지 않은 프롬프트들이 언제 렌더링될지를 알고 있기 때문에, 단계(206)에서 사용자에 의해 만들어진 응답의 전부를 일단 수신하면, 기밀 정보의 일부인 부분과 임의 응답인 부분을 확인하여, 기밀 정보를 완전히 구성할 수 있다.
일 실시예에서는, 예로서, 단계(302)에서 유효한 프롬프트가, 기밀 정보의 다음 문자(character)에 해당하는 키보드상의 키를, 입력된 것이 없는 경우에는 첫번째 문자에 해당하는 키를 누르라고 사용자에게 신호할 수 있다. 비슷하게는, 단계(304)에서 유효하지 않은 프롬프트는, 임의 키를 누르라고 사용자에게 신호할 수 있다. 그러나, 이는 입력의 일 예시적인 형태일 뿐이고 사용자의 응답은 화면의 특정 부분에 마우스 클릭하거나, 제스쳐, 또는 심지어는 가청 응답의 형태일 수 있음이 이해되어야 한다.
도 4는 프롬프트 인터페이스(400), 자세하게는 사용자를 프롬프트하고 도 3에 설명 및 도시된 방법을 일반적으로 따르기 위한 도식적 표현이다. 도시된 일 실시예에서, 각각이 프롬프팅 위치로 간주되는 복수의 프롬프팅 위치(402)는, 두 개의 상이한 심볼(그러나 많은 예시에서 두 개 보다 많음)을 렌더링하는 것이 가능하다. 이 방식으로, 기밀 정보를 입력하기 위해 또 다른 수준의 복잡함이 제공된다, 사용자에게 유효한 프롬프트 및 유효하지 않은 프롬프트를 제공하여, 상술한 바와 같이 사용자가 기밀 정보의 일부 또는 임의 응답으로 각각 응답하게 하는 것 외에도, 사용자는 사용자에게만 알려진 지정된 프롬프트 위치 중 한 곳에 제공된 프롬프트에 대해 응답할 것이다. 일 실시예에서는, 프롬프트 위치는 행 또는 열로서, 도시된 실시예와 같이 또는 복수의 열로(따라서 표를 형성함) 선형으로 조직된다. 그러나, 이는 일 실시예에 불과하며 당업자에 의해 이해되는 바와 같이 원형(예를 들면, 시계문자판), 삼각형 등의 다른 구성들이 사용될 수 있는데, 이에 제한되는 것은 아니다. 하나의 심볼을 찾는(looking for) 대신에, 사용자는 주어진 심볼들의 시퀀스를 찾을 수 있다. 한 위치를 조사하는(looking in) 대신에, 사용자는 몇가지의 상이한 위치를 조사할 수 있다. 일반적으로 비밀은 사용자와 컴퓨터(106) 사이에 공유되고 이는 기밀 정보와 임의 정보를 분리해내는 것으로부터 기준(basis)을 형성한다.
도 5는 컴퓨터(106)에 계정을 구축하고 프롬프트 인터페이스(400)를 이용하는 방법(500)의 흐름도이다. 단계(502)에서, 사용자는 컴퓨터(106)의 계정을 설정(set up)한다. 이 단계중에 사용자에게는 사용자의 유효한 프롬프트로서 동작할 심볼이나 기타 표시, 및 그 사용자가 프롬프트 인터페이스(400)를 찾을 장소인 프롬프트 인터페이스(400)의 위치가 할당된다. 다른 실시예에서는, 사용자는 비보안 컴퓨터를 사용할 때에 사용자가 액세스하기 원할 수 있는 웹 사이트에 해당하는 URL(universal resource locators)을 입력할 수 있다. 사용자는 입력된 URL들 각각에 "사용자명(usernames)" 또는 "사용자 ID(user IDs)"(사용자 식별자)를 또한 제공할 수 있다.
이 시점에서, 예를 들면, 인터넷을 통한, 컴퓨터(106)로의 액세스는 패스워드 보호될 필요가 없음이 주지되어야 한다. 단계(504)에서 사용자가 컴퓨터(106)와의 구축된 통신을 가진 후에는, 사용자는 등록된 사용자명이나 사용자 ID 및 액세스할 컴퓨터 또는 웹사이트에 해당하는 URL을 컴퓨터(106)에 제공할 수 있다. 이 정보를 갖고서, 사용자가 이전에 그 도메인 및 사용자 ID 쌍을 컴퓨터(106)에 등록해 두었다면 사용자는 유일하게 확인가능(uniquely identifiable) 해야 한다. 그러나, 이는 일례일 뿐이며, 사용자를 유일하게 확인하기 위한 다른 기술들이 또한 사용될 수 있음이 이해되어야 한다.
일단 사용자가 확인되고 나면, 컴퓨터(106)는 기밀 정보 또는 임의 응답들의 일부를 입력하고자 할 때에 사용자가 참고자료(guidance)로 어떤 프롬프트 위치를 사용할지를 알 것이다. 단계(506)에서, 컴퓨터(106)는 프롬프트 위치에 있는 사용 자에게 프롬프트를 제공한다. 단계들(508 및 510)은 단계들(306 및 308)과 각각 유사하여서, 유효한 프롬프트를 구성하기 위해 지정된 프롬프트 위치에 올바른 심볼이 있는지의 여부에 기초하여 사용자가 기밀 정보를 입력하고 있는지 아니면 임의 응답들을 입력하고 있는지를 판정한다. 키가 입력될 때 마다 프롬프트 인터페이스(400)가 리프레시되는 단계(512)에 의해 나타난 대로 패스워드 같은 기밀 정보가 전부 입력될 때 까지 단계들(508 및 510)이 반복된다. 사용자가 자신의 할당받은 위치에서 자신에게 할당된 심볼을 알게되는(sees) 경우에 그 사용자는 자신의 패스워드의 다음 키를 타이핑하고, 그렇지 않은 경우에는 랜덤 키를 타이핑한다. 키로거 프로그램이 컴퓨터(104)에 존재하는 경우에는, 기밀 정보를 구성하는 것은 어떤 키인지를 식별하지 못할 것이다. 입력되는 모든 입력에서 화면 캡처가 사용되더라도 어느 키가 어느 것인지는 명백하지 않다.
기밀 문서의 진짜 위치를 입력하도록 사용자를 프롬프트하는 것이 프롬프트 인터페이스 내의 어떤 위치 및 어떤 심볼인 지에 관한 추가적인 탐지를 방지하기 위해, 심볼 변화의 통계가 조사된다. 기밀 문서의 평균 문자 길이가 8개 문자이고, 성공적인 키들 간에 평균 k개 랜덤 문자들이 허용가능하다고 가정하면, 총 (k+1)8개 문자들이 타이핑될 것이다. 할당된 심볼은 할당된 위치에 8번 나타나야만 한다. 임의의 기타 심볼은 그와 비슷한 횟수로 (k+1)8개 문자들 중에 나타나야 한다. 따라서, 이 스킴을 통계적으로 위태롭게 하는(compromising) 것을 피하기 위해 단지 M=K+1개의 상이한 심볼만을 허용하는 것이 유리할 수 있다.
사용자가 할당받은 프롬프트 위치는 제3자에게는 알려지지 않기 때문에, 제3 자가 체크할 총 N(k+1)개의 가능한 패스워드들이 존재할 것이다. 성공적인 패스워드 키들 중에서 평균 k=4개의 랜덤 문자들이 허용가능하고, 프롬프트 인터페이스의 크기가 N=64로 그다지 크지 않다고 가정하면, 이는 제3자가 고려해야 하는 320개의 패스워드를 제공한다. 비록 상술한 것이 임의 문자들 내에 기밀 정보를 숨기거나 포함할 수 있지만, "snoopy"와 같은 패스워드 대신에 "sr8bnz"와 같은 임의 패스워드 시퀀스가 선택된다면 "sr8bnz"에서 문자들 각각이 앞의 문자 다음에 올 가능성은 "snoopy"에서의 가능성보다 더 낮기 때문에 보안이 강화된다.
프록시를 이용하여 접속될 수 있는 서버들에 제한을 두지 않는 경우에는, 특정한 사용자가 어떤 심볼을 할당받았는지를 검색(retrieve)하려는 단순한 공격이 존재할 것이다. 특히, 자연스러운 공격선(a natural line of attack)은 제3자가 로그인 서버를 설정하고 유효한 사용자명 또는 사용자ID를 캡처하기 위한 것이다. 유효한 사용자명 또는 사용자ID를 이용하면, 제3자는 컴퓨터(106)와의 통신 및 유효한 사용자명 또는 사용자ID를 갖는 사용자가 될 자격(claim)을 개시하고, 일련의 키들을 타이핑하고, 컴퓨터(106)로부터 릴레이된(relayed) 것을 알아내고자(see) 관찰(watch)하려 할 것이다. 이는 프롬프트 인터페이스 내의 어느 심볼 및 위치가 그 사용자에게 할당되었는지를 드러내기에 충분할 것이다. 이 공격을 막기위해, 단계(502)의 계정 등록은 사용자가 방문하기를 원할 수 있는 임의의 "비-표준(non-standard)" 사이트들의 서버(106)를 형성하는 것을 포함할 수 있다. 비-표준이란 믿을만한 것으로 컴퓨터(106)에 알려져 있지 않은 임의의 사이트들을 의미한다. 컴퓨터(106)는 연관된 기밀 정보(예를 들면, 패스워드)를 대응하는 컴퓨터(102) 또 는 URL 웹사이트들에만 릴레이할 것이다. 사용자는 단계(502)에서, 자신이 사용할 사용자명 및 연관된 웹사이트나 URL 들을 등록에 열거하기(enumerates at registration) 때문에, 제3자 공격자는 컴퓨터(106)가 그 사용자명에 대한 임의의 정보를 임의의 다른 도메인 및 특히, 제3자에 의해 설정된 도멘인에 릴레이하도록 유도할 수는 없다.
다른 몇몇 실시예는 증가된 보안을 위해 사용될 수 있다. 예를 들면, 하나의 심볼 대신에, 심볼들의 시퀀스가 각 사용자에게 할당될 수 있다. 또는 심볼을 찾을 곳으로 복수의 위치가 할당될 수 있다. 일반적으로 사용자와 컴퓨터(106) 간에 공유된 임의의 비밀은 기밀 정보를 추출하는 데 사용될 수 있다.
다른 실시예에서는, 컴퓨터(104)로부터 컴퓨터(106)에 보낸 기밀 정보는 숨겨지거나 키들의 임의적인 맵핑에서 매핑된다. 컴퓨터(106)는 그 후 역 키 매핑을 수행하여 올바른 형태의 기밀 정보를 형성하고 이는 그 후 컴퓨터(102)에 제공된다.
이 접근법에서는, 사용자에게로의 제2 통신 경로가 존재하거나, 미리 생성되었다고 가정되는데, 이는 사용자에 의해 패스워드를 암호화(매핑)하는 데 사용된다. 특히, 패스워드 같은 기밀 정보는 통상 짧기 때문에, 문자별로(character-by-character) 암호화 테이블이 사용될 수 있는데, 여기서 사용자에게 매핑을 수행할 것을 요청한다.
도 6은 기밀 정보를 매핑하기 위한 방법(600)을 도시하는 흐름도이다. 단계(602)에서, 도 7에 참조부호(700)로 도시된 것과 같은 매핑 테이블이 사용자에게 제공된다. 매핑 테이블이 사용자에게 제공되는 형태는 사용자가 물리적으로 운반하는(carries) 인쇄물(printout), 또는 예를 들면, PIM(personal information manager), PDA(personal digital assistant), 전화기 등과 같은 디지털 애플리언스에 저장가능한 전자 형태와 같이 단순할 수 있다. 일 실시예에서는, 예를 들면, 트립(trp)전에, 사용자는 웹사이트에 가서 매핑 테이블(700)을 요청한다. 각 매핑 테이블은 임의적이고, 각 사용자에 대해 상이한 매핑 테이블이 생성될 수 있으며, 다른 실시예에서는, 사용자가 컴퓨터(106)와 통신할 때마다 생성될 수 있다.
컴퓨터(106)는 사용자에게 제공된 테이블 또는 테이블의 내용을 인지하도록 만들어진다. 예를 들면, 각 테이블은 식별자를 가질 수 있는데, 이는 사용자에 의한 적어도 하나의 액세스 시도를 위해 사용자와 연관되어 있으며, 여기서 컴퓨터(106)에는 그 사용자와 연관된 테이블 식별자가 제공된다.
단계(604)에서, 사용자는 단계(504)에 관하여 상기 설명한 것과 유사한 방식으로 컴퓨터(106)와 통신한다. (방법(500)에서 처럼, 방법(600)도 단계(502)와 유사한 등록 단계를 포함할 수 있다.) 단계(604)에서, 사용자는 원하는 컴퓨터(102) 또는 원하는 URL에 사용자명을 제공한다.
도 8은 사용자의 확인시에, 컴퓨터(106)에 의해 렌더링되는 예시적인 사용자 인터페이스(800)를 도시한다. 이 실시예에서는, 컴퓨터(106)가 제1 부분, 여기서는 하부 프레임(802)에 원하는 웹사이트의 페이지를 렌더링하는 동시에, 제2 부분, 여기서는 상부 프레임(804)에는 프롬프팅 명령어가 제공된다. 다시금, 이 실시예는 단지 예시적이며, 특히, 시각적인 실시예인데, 다른 형태의 프롬프팅 및 응답들 이 가청적으로 또는 제스쳐와 함께 행해질 수 있다.
단계(606)에서, 컴퓨터(106)는 사용자가 예를 들면 마우스의 포인터로 패스워드란을 클릭함으로써 기밀 정보를 입력하고자 시도한다고 탐지하는 경우에는, 제2 부분(804)이, 다음 패스워드 문자(들)을 입력하기 위해 테이블(700) 내 어느 열이 사용될지를 사용자에게 지시(instructs)한다. 단계(608)에서, 사용자는 열(702)에서 원하는 패스워드 문자를 찾아내고, 그와 동일한 행에서 사용하도록 지시받은 열에 있는 입력할 매핑된 문자를 찾아낼 것이다. 매핑된 문자(들)을 입력하면, 그리고 더 많은 문자들이 요구되면, 단계(606 및 608)는 단계(610)에 의해 지시받은 대로 기밀 정보 전부가 입력될 때 까지 필요한 만큼 반복될 것이다. 일 실시예에서는, 테이블(700) 내의 각 행이 바람직하게는 단 한번 사용되어 기밀 정보의 탐지를 최소화하지만, 특정 패스워드의 문자들 모두에 대해 동일한 열을 사용하거나, 마지막 입력을 요구되는 횟수만큼 재사용하는 것 처럼, 필요하다면, 열 입력들이 반복될 수 있다. 마지막 열의 입력을 재사용하는 것은 단순히 최후 수단 시도이지만, 안전이 약속된다는 것을 인지해야 한다.
입력 방법에서, 각 문자에 대해 상이한 열을 사용자가 사용할 것이 요구되는 경우에는, 암호화를 깨는 것이 근본적으로 불가능한데, 왜냐하면 각 열은 독립적이므로, 임의의 키는 어떤 키에도 동일한 확률로 매핑될 것이기 때문이다. 마지막 열이 반복적으로 사용되고 있는 경우(즉, 하나의 타임 패드가 소진된 후에, 사용자가 새로운 타임 패드를 획득하기 전)와 같이 열들이 반복되는 경우에만 암호화를 깰 임의의 가능성이 존재한다. 이 경우에는, 사용자가 많은 문자에 대한 직접적인 복호화 공격으로부터는 여전히 안전한 반면에, 다른 형태의 공격이 가능할 수 있다. 그러나, 상술한 바와 같이 컴퓨터(106)와 통신하는 것으로 알려진 유효한 URL들만으로의 사용자 등록은, 다른 주소들에 기밀 정보를 전달하는 것에 대비하여 보호를 제공한다.
다른 실시예에서는, 단계들(602, 608 및 610)은 추가 보안을 제공하고 컴퓨터(102) 내지 컴퓨터(106)와의 각 통신에 대한 새로운 매핑 테이블을 획득해야만 하는 문제를 회피하기 위해 변경(modified)될 수 있다. 이 실시예에서는, 매핑 테이블(700)은 암호화 키를 우선적으로 제공함으로써 매핑 문자를 간접적으로 제공한다. 도 9는 복수의 암호화 키를 포함하는 매핑 테이블(900)을 도시하는데, 이는 제2 매핑 테이블의 대표적인 열들이다. 도시된 실시예에서는, 매핑 테이블(900)이 매핑 테이블(700)과 유사한 형태를 취할 수 있는 제2 매핑 테이블의 100개의 열을 나타낸다. 사용자는 매핑 테이블(900)을 인쇄하거나 디지털 애플리언스(전화, PDA, PIM 등)에 전자 형태로 저장함으로써 그 매핑 테이블의 내용에 액세스할 수 있다.
단계(608)에서, 컴퓨터(106)는 "C4"와 같은 매핑 테이블 상의 위치를 사용자에게 프롬프트한다. 단계(610)에서, 사용자는 프롬프트된 위치에서 암호화 키를 획득하고, 다음 문자로 입력할 매핑된 키를 획득하리 위해 사용할 열의 식별자로서 그 암호화 키를 사용한다. 사용자가 매핑된 테이블(700)에 액세스한다. 비록 매핑된 테이블(700)이 인쇄되거나 아니면 사용자에 의해 운반될 수 있더라도, 보다 편리한 실시예에서는, 컴퓨터(106)의 제어 하에 매핑된 테이블(700)이 사용자에게 렌더링된다. 이 방식으로, 매핑된 테이블(700)은 패턴이 획득될 수 없게 하기 위해 필요한 만큼 변화될 수 있다. 사용자에 의해 운반되거나 액세스될 필요가 있는 유일한 테이블은 테이블(900)인데, 이는 보다 작게 도시되어 있어서 더 편리하긴 하지만, 여전히 매핑된 키들의 수많은 열을 제공한다.
도 10은 본원에 설명된 개념들이 구현될 수 있는 적합한 컴퓨팅 시스템 환경(1000)의 일례를 도시하고 있다. 특히, 컴퓨팅 시스템 환경(1000)의 형태는 컴퓨터(102), 컴퓨터(104) 또는 컴퓨터(106)에 사용될 수 있다. 그렇지만, 컴퓨팅 시스템 환경(1000)은 역시 이들 컴퓨터들 각각에 대해 적합한 컴퓨팅 환경의 일례에 불과하고, 이하의 기재의 용도 및 능력의 범위에 관하여 임의의 제한을 암시하고자 함이 아니다. 컴퓨팅 환경(1000)이 예시적인 운영 환경(1000)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안 된다.
본원에 제공된 예시들 외에, 기타 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성들이 본원에 개시된 개념들을 이용하여 사용하기에 적합할 수 있다. 이러한 시트템들은, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다.
본원에 개시된 개념은 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 구현될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 당업자는 본원의 명세서 및/또는 도면을 컴퓨터 실행가능 명령어로서 구현할 수 있는데, 이는 이하에서 논의되는 컴퓨터 판독가능 매체의 임의의 유형에 구현될 수 있다.
본원에 개시된 개념은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시되도록 설계될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치할 수 있다.
도 10과 관련하여, 예시적인 시스템은 컴퓨터(1010) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(1010)의 컴포넌트들은 처리 장치(1020), 시스템 메모리(1030), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(1020)에 연결시키는 시스템 버스(1021)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(1021)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스, 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standard Association) 로컬 버스, 그리고 메자닌 버스(Mezzanine bus)로도 알려진 PCI(Peripheral Component Interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(1010)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(1010)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체 양쪽을 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체 양쪽을 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 기타 자기 저장 장치, 또는 컴퓨터(1010)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다.
시스템 메모리(1030)는 판독 전용 메모리(ROM)(1031) 및 랜덤 액세스 메모리(RAM)(1032)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(1010) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(1033)은 통상적으로 ROM(1031)에 저장되어 있다. RAM(1032)은 통상적으로 처리 장치(1020)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다.
도 10은 운영 체제(1034), 애플리케이션 프로그램(1035), 기타 프로그램 모 듈(1036) 및 프로그램 데이터(1037)를 도시하고 있지만 이에 제한되는 것은 아니다. 본원에서, 애플리케이션 프로그램들(1035), 기타 프로그램 모듈들(1036), 및 프로그램 데이터(1037)는 싱술한 하나 이상의 개념을 구현한다.
컴퓨터(1010)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 10은 비이동식, 비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(1041), 이동식, 비휘발성 자기 디스크(1052)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(1051), 및 CD-ROM 또는 기타 광 매체 등의 이동식, 비휘발성 광 디스크(1056)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(1055)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(1041)는 통상적으로 인터페이스(1040)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(1021)에 접속되고, 자기 디스크 드라이브(1051) 및 광 디스크 드라이브(1055)는 통상적으로 인터페이스(1050)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(1021)에 접속된다.
위에서 설명되고 도 10에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(1010)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 10에서, 예를 들어, 하드 디스크 드라이브(1041)는 운영 체제(1044), 애플리케이션 프로그램(1045), 기타 프로그램 모 듈(1046), 및 프로그램 데이터(1047)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(1034), 애플리케이션 프로그램(1035), 기타 프로그램 모듈(1036), 및 프로그램 데이터(1037)와 동일하거나 그와 다를 수 있다는 것이다. 운영 체제(1044), 애플리케이션 프로그램(1045), 기타 프로그램 모듈(1046) 및 프로그램 데이터(1047)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다.
사용자는 키보드(1062), 마이크(1063) 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(1061) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(1010)에 입력할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(1060)를 통해 처리 장치(1020)에 접속되지만, 병렬 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(1091) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(1090) 등의 인터페이스를 통해 시스템 버스(1021)에 접속될 수 있다.
컴퓨터(1010)는 원격 컴퓨터(1080)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(1080)는 퍼스널 컴퓨터, 핸드-헬드 장치, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(1010)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 10에 도시된 논리적 접속으로는 LAN(1071) 및 WAN(1073)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1010)는 네트워크 인터페이스 또는 어댑터(1070)를 통해 LAN(1071)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1010)는 통상적으로 인터넷과 같은 WAN(1073)을 통해 통신을 구축하기 위한 모뎀(1072) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(1072)은 사용자 입력 인터페이스(1060) 또는 기타 적절한 메커니즘을 통해 시스템 버스(1021)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터(1010) 또는 그의 일부와 관련하여 도시된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 10은 원격 애플리케이션 프로그램(1085)이 원격 컴퓨터(1080)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 구축하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
본원에 설명된 개념들이 도 10과 관련하여 설명된 것과 같은 컴퓨터 시스템에서 수행될 수 있음이 이해되어야 한다. 그러나, 다른 적합한 시스템들은 메세지를 다루기 위한, 또는 개념의 서로 다른 부분들이 분산된 컴퓨팅 시스템의 서로 다른 부분에서 수행되는 분산된 컴퓨팅 환경의 컴퓨터, 또는 서버를 포함한다.
비록 본 요지가 구조적인 특징 및/또는 방법론적 동작들에 특정한 언어로 설명되었지만, 첨부된 청구항에 정의되는 본 요지는 상술한 특정한 특징들 또는 동작들에 제한되는 것으로 이해되기 위한 것은 아니다.

Claims (20)

  1. 네트워크를 통해 제1 컴퓨터(104)로부터 제2 컴퓨터(102)에 기밀 정보를 전송하는 컴퓨터 구현 방법(200)으로서,
    상기 기밀 정보의 부분들과 임의 정보(arbitrary information)를 적어도 부분적으로 교체하기 위해 상기 기밀 정보의 부분들 및 상기 임의 정보를 선택적으로 입력하라고 사용자에게 지시하는(indicating) 단계(202);
    상기 기밀 정보의 부분들을 확인하기 위해 상기 제1 컴퓨터(104)와 통신중인 제3 컴퓨터(106)에서 상기 임의 정보 및 상기 기밀 정보의 부분들을 수신 및 처리하는 단계(204); 및
    상기 제3 컴퓨터(106)로부터 상기 제2 컴퓨터(102)에 상기 기밀 정보를 전달하는 단계(206)
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 기밀 정보의 부분들 및 상기 임의 정보를 선택적으로 입력하라고 사용자에게 지시하는 단계(202)는 상기 제1 컴퓨터(104)를 이용하여 상기 사용자에게 프롬프트를 렌더링하는 단계(304)를 포함하는 컴퓨터 구현 방법.
  3. 제2항에 있어서, 상기 프롬프트를 렌더링하는 단계(304)는 상기 기밀 정보의 한 부분을 입력하라고 상기 사용자에게 신호(cueing)하는 유효한 프롬프트를 렌더 링하는 단계(306), 및 상기 임의 정보를 입력하라고 상기 사용자에게 신호하는 비유효한 프롬프트를 렌더링하는 단계(308)를 포함하고, 상기 유효한 프롬프트와 비유효한 프롬프트는 적어도 부분적으로 교대로 렌더링되는 컴퓨터 구현 방법.
  4. 제3항에 있어서, 상기 비유효한 프롬프트를 렌더링하는 단계(308)는 복수의 서로 다른 비유효한 프롬프트를 렌더링하는 단계를 포함하는 컴퓨터 구현 방법.
  5. 제4항에 있어서, 상기 프롬프트를 렌더링하는 단계(304)는 복수의 가능한 프롬프트 위치(402)를 갖는 프롬프트 인터페이스(400)를 렌더링하는 단계를 포함하고, 상기 컴퓨터 구현 방법은 상기 사용자와 상기 제3 컴퓨터(106) 사이에서 복수의 가능한 프롬프트 위치 중 어느 프롬프트 위치를 사용할지를 확립하는 단계(502)를 더 포함하는 컴퓨터 구현 방법.
  6. 제5항에 있어서, 상기 유효한 프롬프트의 표시(indications) 및 상기 비유효한 프롬프트의 표시는 상기 복수의 가능한 프롬프트 위치(402) 모두에서 또한 렌더링되는 컴퓨터 구현 방법.
  7. 제6항에 있어서, 상기 제1 컴퓨터(104)와 상기 제3 컴퓨터(106) 간에 통신이 행해진 경우에 상기 사용자를 확인하기 위해 상기 제3 컴퓨터(106)에 사용자 정보를 제공하는 단계(604)를 더 포함하는 컴퓨터 구현 방법.
  8. 제7항에 있어서, 상기 사용자 정보는, 상기 기밀 정보에 해당하는, 상기 제2 컴퓨터(102) 상의 사이트의 URL 주소를 포함하고, 상기 컴퓨터 구현 방법은 상기 기밀 정보를 상기 URL 주소에 전달하는 단계(206)를 더 포함하는 컴퓨터 구현 방법.
  9. 제1항에 있어서, 상기 제1 컴퓨터(104)와 상기 제3 컴퓨터(106) 간에 통신이 행해진 경우에 상기 사용자를 확인하기 위해 상기 제3 컴퓨터(106)에 사용자 정보를 제공하는 단계(604)를 더 포함하는 컴퓨터 구현 방법.
  10. 제9항에 있어서, 상기 사용자 정보는 상기 기밀 정보에 해당하는, 상기 제2 컴퓨터(102) 상의 사이트의 URL 주소를 포함하고, 상기 컴퓨터 구현 방법은 상기 기밀 정보를 상기 URL 주소에 전달하는 단계(206)를 더 포함하는 컴퓨터 구현 방법.
  11. 네트워크를 통해 제1 컴퓨터(104)로부터 제2 컴퓨터(102)에 기밀 정보를 전송하는 컴퓨터 구현 방법으로서,
    사용자에게 매핑 테이블(700)을 제공하는 단계(602);
    상기 매핑 테이블(700)에 기초하여 상기 기밀 정보의 일부분에 대응하는 매핑된 정보를 상기 제1 컴퓨터(104)에 입력함으로써 상기 기밀 정보의 부분들을 선 택적으로 입력하라고 사용자에게 지시하는 단계(606);
    상기 기밀 정보의 부분들을 확인하기 위해 상기 제1 컴퓨터(104)와 통신중인 제3 컴퓨터(106)에서 상기 매핑된 정보를 수신 및 처리하는 단계; 및
    상기 제3 컴퓨터(106)로부터 상기 제2 컴퓨터(102)에 상기 기밀 정보를 전달하는 단계
    를 포함하는 컴퓨터 구현 방법.
  12. 제11항에 있어서, 상기 매핑 테이블(700)은 복수의 열을 포함하고 각 열은 상기 기밀 정보의 부분들을 형성하는 문자들에 연관된 임의 문자들을 가지며, 상기 기밀 정보의 부분들을 선택적으로 입력하라고 사용자에게 지시하는 단계(606)는 어떤 열을 사용할지를 표시하는 단계를 포함하는 컴퓨터 구현 방법.
  13. 제12항에 있어서, 상기 기밀 정보의 부분들을 선택적으로 입력하라고 사용자에게 지시하는 단계(606)는 상기 기밀 정보 전체를 입력하는 데 사용될 복수의 열을 표시하는 단계를 포함하는 컴퓨터 구현 방법.
  14. 제13항에 있어서, 상기 기밀 정보의 부분들을 선택적으로 입력하라고 사용자에게 지시하는 단계(606)는 기밀 정보의 각 부분이 입력되어질 서로 다른 행을 표시하는 단계를 포함하는 컴퓨터 구현 방법.
  15. 제14항에 있어서, 상기 제1 컴퓨터(104)와 상기 제3 컴퓨터(106) 간에 통신이 행해진 경우에 상기 사용자를 확인하기 위해 상기 제3 컴퓨터(106)에 사용자 정보를 제공하는 단계(604)를 더 포함하는 컴퓨터 구현 방법.
  16. 제15항에 있어서, 상기 사용자 정보는, 상기 기밀 정보에 해당하는, 상기 제2 컴퓨터(102) 상의 사이트의 URL 주소를 포함하고, 상기 컴퓨터 구현 방법은 상기 기밀 정보를 상기 URL 주소에 전달하는 단계를 더 포함하는 컴퓨터 구현 방법.
  17. 제11항에 있어서, 상기 제1 매핑 테이블은 제2 매핑 테이블(900)의 한 부분을 사용하라는 표시를 제공하고, 상기 기밀 정보의 부분들을 선택적으로 입력하라고 사용자에게 지시하는 단계(606)는 상기 제1 매핑 테이블(700) 및 상기 제2 매핑 테이블(900)에 기초하는 컴퓨터 구현 방법.
  18. 제17항에 있어서, 상기 제2 매핑 테이블(900)은 복수의 열을 포함하고, 각 열은 상기 기밀 정보의 부분들을 형성하는 문자들에 연관된 임의 문자들을 갖고, 상기 기밀 정보의 부분들을 선택적으로 입력하라고 사용자에게 지시하는 단계(606)는 어떤 열을 사용할지를 표시하는 단계를 포함하며, 상기 기밀 정보의 부분들을 선택적으로 입력하라고 사용자에게 지시하는 단계는 상기 제1 매핑 테이블(700)에 제공된 표시를 통해 상기 제2 매핑 테이블(900) 중 어떤 열이 사용될 지를 사용자에게 표시하는 단계를 포함하는 컴퓨터 구현 방법.
  19. 제18항에 있어서, 상기 매핑 테이블(900)은 상기 제1 컴퓨터(104)와 제3 컴퓨터(106) 사이에 통신이 형성된 후에 상기 사용자에게 렌더링되는 컴퓨터 구현 방법.
  20. 제19항에 있어서, 상기 기밀 정보의 부분들을 선택적으로 입력하라고 사용자에게 지시하는 단계(606)는, 기밀 정보의 각 부분이 입력될 상기 제2 매핑 테이블(900)의 서로 다른 행을 표시하는 단계를 포함하는 컴퓨터 구현 방법.
KR1020087030395A 2006-06-15 2007-04-30 신뢰되지 않는 기계에 기밀 정보를 입력하기 위한 컴퓨터 구현 방법 KR101429304B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/453,626 US8825728B2 (en) 2006-06-15 2006-06-15 Entering confidential information on an untrusted machine
US11/453,626 2006-06-15
PCT/US2007/010431 WO2007145717A1 (en) 2006-06-15 2007-04-30 Entering confidential information on an untrusted machine

Publications (2)

Publication Number Publication Date
KR20090018125A true KR20090018125A (ko) 2009-02-19
KR101429304B1 KR101429304B1 (ko) 2014-08-11

Family

ID=38832054

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087030395A KR101429304B1 (ko) 2006-06-15 2007-04-30 신뢰되지 않는 기계에 기밀 정보를 입력하기 위한 컴퓨터 구현 방법

Country Status (4)

Country Link
US (1) US8825728B2 (ko)
KR (1) KR101429304B1 (ko)
CN (1) CN101473314B (ko)
WO (1) WO2007145717A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5056212B2 (ja) * 2007-06-29 2012-10-24 船井電機株式会社 パスワード入力装置
EP2202662A1 (en) * 2008-12-24 2010-06-30 Gemalto SA Portable security device protecting against keystroke loggers
US20100293605A1 (en) * 2009-05-14 2010-11-18 International Business Machines Corporation Positional password confirmation
WO2011012642A2 (en) * 2009-07-31 2011-02-03 International Business Machines Corporation Collaborative agent encryption and decryption
WO2013158064A1 (en) * 2012-04-16 2013-10-24 Intel Corporation Trusted user interaction
US9030293B1 (en) * 2012-05-04 2015-05-12 Google Inc. Secure passcode entry
US20140223572A1 (en) * 2012-07-31 2014-08-07 Sk Planet Co., Ltd. Message service providing method, and apparatus and system therefor
CN103873442B (zh) * 2012-12-13 2017-12-12 腾讯科技(深圳)有限公司 登录信息的处理方法和装置
JP6551352B2 (ja) * 2016-09-28 2019-07-31 京セラドキュメントソリューションズ株式会社 パスワード認証装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4479112A (en) * 1980-05-05 1984-10-23 Secure Keyboards Limited Secure input system
US5664099A (en) * 1995-12-28 1997-09-02 Lotus Development Corporation Method and apparatus for establishing a protected channel between a user and a computer system
US5781550A (en) 1996-02-02 1998-07-14 Digital Equipment Corporation Transparent and secure network gateway
US5751812A (en) 1996-08-27 1998-05-12 Bell Communications Research, Inc. Re-initialization of an iterated hash function secure password system over an insecure network connection
US6104716A (en) 1997-03-28 2000-08-15 International Business Machines Corporation Method and apparatus for lightweight secure communication tunneling over the internet
US6011910A (en) * 1997-04-08 2000-01-04 3Com Corporation Supporting authentication across multiple network access servers
JP3641112B2 (ja) * 1997-09-05 2005-04-20 株式会社東芝 パケット中継装置、移動計算機装置、移動計算機管理装置、パケット中継方法、パケット送信方法及び移動計算機位置登録方法
US6202156B1 (en) * 1997-09-12 2001-03-13 Sun Microsystems, Inc. Remote access-controlled communication
US6292790B1 (en) * 1997-10-20 2001-09-18 James E. Krahn Apparatus for importing and exporting partially encrypted configuration data
JPH11161385A (ja) * 1997-11-28 1999-06-18 Toshiba Corp コンピュータシステムおよびそのシステムステート制御方法
US6173402B1 (en) * 1998-03-04 2001-01-09 International Business Machines Corporation Technique for localizing keyphrase-based data encryption and decryption
US7357312B2 (en) * 1998-05-29 2008-04-15 Gangi Frank J System for associating identification and personal data for multiple magnetic stripe cards or other sources to facilitate a transaction and related methods
IL135475A (en) 1999-04-20 2004-09-27 Sun Mycrosystems Inc Method and apparatus for enabling a user to authenticate a system prior to providing any user-privileged information
EP1102157B1 (en) 1999-11-22 2008-01-09 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for secure login in a telecommunications system
SG99886A1 (en) 2000-02-24 2003-11-27 Ibm System and method for collaborative multi-device web browsing
WO2001099338A1 (en) * 2000-06-03 2001-12-27 Threewin.Com Co., Ltd. Method and apparatus for inputting secret information
KR100371181B1 (ko) 2000-11-28 2003-02-06 엘지전자 주식회사 휴대용 기기의 절전방법
US20020066039A1 (en) * 2000-11-30 2002-05-30 Dent Paul W. Anti-spoofing password protection
JP3859450B2 (ja) * 2001-02-07 2006-12-20 富士通株式会社 秘密情報管理システムおよび情報端末
US7827278B2 (en) 2001-07-23 2010-11-02 At&T Intellectual Property Ii, L.P. System for automated connection to virtual private networks related applications
US7827292B2 (en) 2001-07-23 2010-11-02 At&T Intellectual Property Ii, L.P. Flexible automated connection to virtual private networks
US7228417B2 (en) 2002-02-26 2007-06-05 America Online, Inc. Simple secure login with multiple-authentication providers
JP3947919B2 (ja) * 2002-05-23 2007-07-25 ソニー株式会社 情報処理システム、情報処理装置および方法、並びにプログラム
US7143288B2 (en) * 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
KR100494558B1 (ko) * 2002-11-13 2005-06-13 주식회사 케이티 공중 무선랜 서비스 시스템의 사용자 인증방법 및 시스템
JP2004171229A (ja) * 2002-11-19 2004-06-17 Fujitsu Ltd 情報処理装置、中継装置、サーバ、通信方法、およびプログラム
US7475146B2 (en) 2002-11-28 2009-01-06 International Business Machines Corporation Method and system for accessing internet resources through a proxy using the form-based authentication
US7559083B2 (en) 2003-01-14 2009-07-07 Microsoft Corporation Method and apparatus for generating secured attention sequence
US7299354B2 (en) 2003-09-30 2007-11-20 Intel Corporation Method to authenticate clients and hosts to provide secure network boot
CN100345078C (zh) 2004-07-09 2007-10-24 中国民生银行股份有限公司 计算机键盘信息干扰实现密码保护的方法
CN100588154C (zh) 2005-05-12 2010-02-03 北京易诚世纪科技有限公司 一种动态密码方法及系统
CN1929374A (zh) * 2005-09-08 2007-03-14 赵志鹏 动态口令防盗号
JP5544913B2 (ja) 2010-02-10 2014-07-09 新日鐵住金株式会社 フライアッシュ回収システム、金属片除去装置及び金属片除去方法

Also Published As

Publication number Publication date
CN101473314A (zh) 2009-07-01
US20080005340A1 (en) 2008-01-03
CN101473314B (zh) 2011-07-06
WO2007145717A1 (en) 2007-12-21
US8825728B2 (en) 2014-09-02
KR101429304B1 (ko) 2014-08-11

Similar Documents

Publication Publication Date Title
US8448226B2 (en) Coordinate based computer authentication system and methods
KR101429304B1 (ko) 신뢰되지 않는 기계에 기밀 정보를 입력하기 위한 컴퓨터 구현 방법
CN104937605B (zh) 攻击分析系统、协作装置、攻击分析协作方法
US8925073B2 (en) Method and system for preventing password theft through unauthorized keylogging
US8924724B2 (en) Document encryption and decryption
US20080168546A1 (en) Randomized images collection method enabling a user means for entering data from an insecure client-computing device to a server-computing device
US20040073809A1 (en) System and method for securing a user verification on a network using cursor control
US20160036849A1 (en) Method, Apparatus and System for Detecting and Disabling Computer Disruptive Technologies
US20090125993A1 (en) Method for protecting against keylogging of user information via an alternative input device
KR20080100204A (ko) 피싱 탐지 클라이언트 컴포넌트 및 피싱 공격 탐지 방법
US20100058479A1 (en) Method and system for combating malware with keystroke logging functionality
Ardi et al. Auntietuna: Personalized content-based phishing detection
Singh et al. Keylogger detection and prevention
WO2023053101A1 (en) Systems and methods for malicious code neutralization in execution environments
US8055587B2 (en) Man in the middle computer technique
Ali et al. Random multiple layouts: Keylogger prevention technique
Goring et al. Anti-keylogging measures for secure Internet login: an example of the law of unintended consequences
US11741200B2 (en) Systems and methods for protection against theft of user credentials
KR102047547B1 (ko) 자기보호 자바스크립트에서 암호화 모드를 이용한 보안 시스템 및 그 방법
Kumari et al. Analysis of Key loggers in Cybersecurity
KR20100004782A (ko) 웹 페이지에서의 비밀번호 보안방법 및 이를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
Vombatkere et al. A Novel Information Stealing Malware
JP4871181B2 (ja) ログインチェック装置および方法
JP6361512B2 (ja) ユーザ判定装置、方法、及びプログラム
TW201541274A (zh) 資料存取方法

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

Payment date: 20170719

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190718

Year of fee payment: 6