KR101108660B1 - 인증 시스템 - Google Patents

인증 시스템 Download PDF

Info

Publication number
KR101108660B1
KR101108660B1 KR1020067009284A KR20067009284A KR101108660B1 KR 101108660 B1 KR101108660 B1 KR 101108660B1 KR 1020067009284 A KR1020067009284 A KR 1020067009284A KR 20067009284 A KR20067009284 A KR 20067009284A KR 101108660 B1 KR101108660 B1 KR 101108660B1
Authority
KR
South Korea
Prior art keywords
user
formula
variables
authentication
result
Prior art date
Application number
KR1020067009284A
Other languages
English (en)
Other versions
KR20060132824A (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 KR20060132824A publication Critical patent/KR20060132824A/ko
Application granted granted Critical
Publication of KR101108660B1 publication Critical patent/KR101108660B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/36User authentication by graphic or iconic representation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Storage Device Security (AREA)
  • Collating Specific Patterns (AREA)
  • Computer And Data Communications (AREA)

Abstract

사용자 인증 방법은 사용자 공식의 형태로 인증 키를 만드는 단계, 각 변수에 값이 할당되는 변수들의 배열을 사용자에게 제시하는 단계, 할당된 값들을 사용자 공식의 매칭되는 변수들에 적용하고 제1결과를 계산하는 단계, 및 제1결과가 사용자 공식의 별도의 독립적인 계산의 제2결과와 일치한다면 사용자를 인증하는 단계를 구비한다.
인증 키, 사용자 공식, 로컬공식, 원격공식, 변수, 결과, 비교

Description

인증 시스템{Authentication system}
본 발명은 데이터 보안에 관한 것으로, 특히, 사용자 인증에 관한 것이다.
컴퓨터 시스템은 여러 가지 애플리케이션들 또는 서비스들을 사용자에게 제공할 수 있다. 일반적으로, 시스템에 대한 접근은 인가된 사용자로 제한될 수 있다. 사용자 인증의 일 예는 사용자에게 사용자이름 및 패스워드를 입력할 것이 요구되는 로그인 프로세스이다.
과학 기술의 새로운 개발에도 불구하고, 사용자이름 및 패스워드의 조합은 가장 평범한 접근제어 수단들 중의 하나로 남아 있다. 그러나, 패스워드들은 쉽게 생각해 내어지는 것들이 가장 쉽게 알아 내어질 수 있고 복잡하고 알아내기 어려운 것들이 쉽게 잊어 버려지기 때문에 불편하다.
이런 유형들의 시스템들의 무결성(integrity)은 일반적으로 패스워드를 비밀로 유지하는 것에 기초한다. 그러나, 추측, 평범한 패스워드들 또는 알려진 모든 단어들의 사전의 적용, 문자들의 모든 조합들을 적용하는 것을 포함한 무차별 대입 시도(brute force attempts), 서버와의 교환 중 패스워드들에 관한 네트워크 트래픽의 감시, "어깨 서핑"(로그인 동안 사용자의 어깨 너머로 보는 것), 키로깅(로그인 동안 사용자의 키스트로크들의 저장 또는 전달) 등을 포함하여, 패스워드를 알아내는 많은 공지의 방법들이 있다.
이 유형들의 공격들에 대한 알려진 방어 대책들은 패스워드들을 더 길게 하여 그것들을 추측하는 것을 더 어렵게 하는 방법, 및 사전 애플리케이션 및 무차별 대입 기법들을 더 어렵게 만드는 방법을 포함한다. 다른 방어 대책들로는, 사용자관련 이름들, 전화번호들, 생일 등과 같은 "의미 있는" 패스워드들의 사용을 금하는 방법, 사용자가 패스워드를 입력할 때 별표와 같은 의미 없는 문자를 디스플레이하여 어깨 서퍼(shoulder surfer)가 별표들만을 볼 수 있게 하는 방법, 패스워드들을 통신망을 통해 송신하기 전에 암호화하여 네트워크 감시에 의한 검출을 방지하는 방법이 있다.
접근 제어 및 인증의 한 방법은, 사용자가 로그인할 때마다 다른 패스워드를이용하고 그래서 전술한 공격기법들을 쓸모없게 만드는 일회용 패스워드(one time passwords; OTP)를 사용하는 것이다. 패스워드를 가로채기, 키로그, 또는 다르게 알아내는 것은 얻어진 패스워드가 재사용될 수 없기 때문에 유익함을 제공하지 않는다.
가장 일반적으로 이용 가능한 OTP시스템들은 얼마간 동일한 프로토콜을 공유한다. 로그인 프로세스의 부분으로서, 서버는 사용자에게 단순히 큰 임의의 숫자(number)일 수 있는 이른바 요청(challenge)을 보낸다. 사용자는 이 숫자를 OTP생성기, 예를 들면, OTP를 생성하는 특정한 물리적 기기 또는 소프트웨어에 입력한다. 사용자는 OTP를 입력한다. 서버도 자신의 OTP생성기에 요청을 입력한다. 서버 OTP 및 사용자 OTP가 일치한다면, 사용자는 인증된다.
OTP생성기가 물리적 기기(예컨대, 스마트카드, 토큰, 생체인식기기(biometric device), 등)일 때, 분실, 파손, 또는 도난된 OTP생성기의 비용과 불편함이 관심사이다.
패스워드-생성 알고리즘이 모든 사용자들에 대해 동일한 상황에서, 각 사용자에게는 유일한 결과를 만들기 위해 비밀키(secret key)가 할당된다. 이 키는 일반적으로 사용자의 OTP생성기에 내장되고 또 서버의 데이터베이스에 저장된다. 이 OTP생성체계의 몇 가지의 변화들이 있는데, 예를 들면, 시각(time of day)이 요청 대신에 사용자와 서버를 동기화하는데 이용될 수 있다. 대부분의 경우, 보안은 사용자의 비밀키의 무결성에 달려 있다. 그 키가 손상된다면, 시스템은 효과가 없게 된다. 그 결과, 패스워드처럼, 비밀키는 각종 유형의 공격들을 받는 대상이 되고, 그러한 공격들 중 가장 대중적인 것은 무차별 대입이다. 부가적인 보안층이 OTP를 계산하는 알고리즘들을 보호함으로써 제공되지만, 얼마간의 집요함으로, 그 알고리즘들은 알려질 수 있고 신뢰할 만한 보안 요소가 아니게 된다.
네트워크 환경에서, 서버는 여러 가지 서비스들 및 애플리케이션들을 다수의 네트워크 사용자들에게 제공한다. 서버는 특정 서비스 또는 애플리케이션의 사용을 적절히 인가(권한부여)하기 위해 사용자를 검증하도록 동작한다. 이것은 전형적으로 서버가 현재 입력된 사용자이름 및 패스워드를 저장된 사용자이름 및 패스워드와 일치시키는 위에서 설명된 표준 로그인 프로세스에 의해 달성된다.
사전 애플리케이션, 무차별 대입 시도, 트래픽 감시, 어깨 서핑, 키 로깅, 및 각종 다른 유형들의 공격들에 저항하는 강력한 인증시스템을 제공하는 것이 유 익할 것이다.
본 발명은 사용자를 인증하기 위한 방법 및 장치에 관한 것이다. 일 실시예에서 본 발명은 사용자 공식 형태로 인증 키를 만드는 것, 각 변수에 값이 할당된 변수들의 배열을 사용자에게 제시하는 것, 할당된 값들을 사용자 공식의 매칭되는 변수들에 적용하고 제1결과를 계산하는 것, 및 제1결과가 사용자 공식의 별도의 독립적인 계산의 제2결과와 일치한다면 사용자를 인증하는 것을 포함한다.
다른 실시예에서 본 발명은 사용자 공식, 각 변수에 값이 할당된 변수들의 배열, 변수들의 배열에 관련된 값들을 사용자 공식의 매칭되는 변수들에 적용하여 얻은 제1결과로서, 사용자에 의해 입력되는 제1결과, 및 사용자 공식을 이용해 별도의 독립적인 계산을 수행하여 제2결과를 얻고, 제1결과가 제2결과와 일치한다면 사용자를 인증하는 회로를 구비한 사용자 인증 시스템을 포함한다.
본 발명의 전술한 양태들 및 다른 특징들은 다음의 첨부 도면들에 관하여 취해진 다음의 설명으로 이해된다:
도 1은 본 발명에 따른 사용자 인증 시스템의 일 예를 보이며;
도 2는 본 발명에 관련된 동작들의 흐름도를 보이며;
도 3은 사용자 인증 시스템과 함께 사용하기 위한 사용자인터페이스 화면의 일 예를 보이며;
도 4는 사용자 인증 시스템과 함께 사용하기 위한 관리(administration) 화 면의 일 예를 보이며;
도 5는 본 발명을 기업 네트워크(enterprise networ)에 실시된 것으로서 보이며;
도 6은 분산 시스템에서의 전자상거래 또는 이-커머스(e-commerce)를 위한 본 발명의 또 다른 실시예를 도시하며;
도 7은 메시지에 의해 송신되는 데이터를 보호하기 위한 본 발명의 실시예를 보이며; 그리고
도 8은 예시적인 메시지의 블록도를 보인다.
도 1을 참조하면, 본 발명의 특징들을 통합하는 사용자 인증 시스템(100)이 도시되어 있다. 본 발명이 도면에 보인 실시예에 관해 설명될 것이지만, 본 발명이 실시예들의 많은 대체 형태들로 실시될 수 있다는 것이 이해되어야만 한다. 더구나, 어떠한 적당한 크기, 형상 또는 유형의 요소들 또는 재료들이라도 사용될 수 있다.
도 1에 보인 것처럼, 시스템(100)은 전반적으로 이 예에서 사용자인터페이스(110)로 보인 사용자인터페이스 기능부와 이 예에서 제어기(115)로 보인 인증제어 기능부를 구비한다.
본 발명은 사용자 공식(formula) 형태로 인증 키를 만드는 것을 포함한다. 인증 세션이 개시될 경우, 사용자에게는 각 변수에 값이 할당된 변수들의 배열이 제시된다. 사용자는 제시된 변수들에 관련된 값들을 사용자 공식의 일치되는 변수들에 적용하고 그 결과를 입력한다.
도 2의 흐름도에 관해서 더 상세히 설명하면, 블록 310에 보인 것처럼 사용자 공식이 생성된다. 사용자 공식은 사용자에 의해 한 세트의 변수들 및 연산들로부터 구축될 수 있다. 인증 시스템은 선택 대상인 변수들 및 연산들의 목록들을 제공함으로써 사용자를 돕는 애플리케이션을 제공할 수 있다. 인증 시스템은 사용자를 위해 사용자 공식을 자동으로 생성할 수 있는 애플리케이션을 제공할 수도 있다. 결과적인 공식은 블록 315에 보인 것처럼 일반적으로 사용자에 의해 기억되고 인증 시스템에 의해 저장된다.
사용자는 기기(디바이스), 서비스, 애플리케이션 또는 기능에 대한 접근을 요구하고 인증 세션은 그 다음 블록 320에 보인 것처럼 시작될 수 있다. 인증 세션이 개시될 경우, 인증 시스템은 블록 325에 보인 것처럼 각 변수에 값이 할당된 변수들의 배열을 사용자에게 제시한다. 사용자는 사용자 공식의 변수들에 매칭되는, 배열 내에 제시된 변수들을 인식한다. 그 후 사용자는 블록 330에 보인 것처럼 변수들에 할당된 값들을 사용자 공식에 적용하고 블록 335에 보인 것처럼 그 적용된 결과를 입력한다.
그 값들은 무작위로 생성되어 변수들에 할당될 수 있고 일반적으로 각각의 인증 세션과 함께 변하게 될 수 있다. 인증 시스템은 블록 340에 보인 것처럼 변수들에 할당된 값들을 사용자 공식에 독립적으로 적용하고 독립적인 결과를 생성한다. 인증 시스템은 블록 345에 보인 것처럼 독립적인 결과를 입력된 결과와 비교하고, 결과들이 일치한다면, 인증 시스템은 서비스 또는 애플리케이션에 대한 사용자 접근을 제공한다(블록 350). 결과들이 일치하지 않는다면, 접근은 거부된다(블록 355).
한 예로서, 사용자는 다음과 같은 사용자 공식을 구축할 수 있다: 3*(2*Q+3*T). 인증 세션 동안, 변수들 및 값들의 배열이 사용자에게 제시된다. 만약 배열 내의 변수 Q에 값 32가 할당되고 배열 내의 변수 T에는 값 9가 할당된다면, 사용자 공식은 3*(2*32 + 3*9) 또는 숫자 273을 내놓는다. 그때 사용자는 숫자 273을 입력한다. 인증 시스템이 변수들 및 값들의 배열을 생성하였고 사용자 공식을 저장했기 때문에, 인증 시스템은 사용자 공식을 이용하여 동일한 계산을 할 수 있다. 그 결과들이 일치한다면, 사용자는 인증된다.
위에 기술된 인증 세션에 더하여, 시스템(100)은 인증 시스템의 부분으로서 관리 프로세스를 제공할 수 있다. 인증 세션은 전술한 바와 같이 기기, 서비스, 애플리케이션, 또는 기능에 대한 액세스 자격을 사용자에게 주는 것을 포함한다. 관리 프로세스는 사용자에게 공식을 세울 수 있게 하는 도구들을 제공하며, 차후의 인증 세션들을 위해 그 공식을 기록하고, 공간 및 디렉토리들의 할당, 암호화처리들, 프로그램들 사이의 통신 등과 같은 다른 셋업 및 관리 프로세스들을 다룬다.
위에서 언급된 바와 같이, 인증 세션의 부분으로서, 변수들의 배열이 사용자에게 제시될 수 있다. 일 예의 배열은 도 3에 보이고 있다. 이 예에서, 배열(360)은 그리드(365), 사용자이름을 입력하기 위한 영역(370), 및 본 발명에 따라 사용자 공식을 적용한 결과인 패스워드를 입력하기 위한 영역(375)을 구비한다. 그리드(365)는 사용자 공식의 변수를 나타내는 글자(letter) 또는 글자조합(385)에 의해 각 셀이 표시될 수 있는 셀들(380)로 이루어진다. 각 변수에는 값(390)이 할당된다. 전술한 바와 같이, 각 변수에 할당되는 값들은 배열이 사용자에게 제시될 때마다 변할 수 있다. 일 실시예에서, 각 값은 난수 발생기에 의해 배열이 제시될 때마다 생성된다.
위에 언급했던 예시적인 공식 3*(2*Q+3*T)를 이용하여, 사용자는 배열(360)을 조사할 것이고, 변수 Q에는 69의 값이 할당됨과 변수 T에는 49의 변수가 할당됨을 인식할 것이다. 사용자는 이 공식을 적용할 것이고 그 결과를 입력할 것이다.
이 예에서, 각 셀은 2개의 구성요소인 변수 및 값을 포함한다. 변수가 글자들에 관련하여 설명되고 값이 숫자들에 관련하여 설명되었지만, 변수들 및 값들이 어떠한 인식 가능한 마크, 심벌 또는 이미지로서도 보일 수 있다는 것이 이해될 것이다.
또한 이 예에서, 변수들의 배열이 10x10 셀그리드로서 보이고 있다. 그러나, 배열은 어느 형상이라도 가질 수 있고 어떤 수의 셀들 또는 위치들이라도 포함할 수 있다.
사용자 공식은 어떠한 수학적 및 비수학적 연산자라도, 예를 들면, 덧셈, 뺄셈, 곱셈, 나눗셈, 승, 최대, 최소, 모드(mod), 문자열연결함수(concatenate) 등을 포함할 수 있고, 연산들의 순서를 바꾸기 위한 괄호를 포함할 수도 있다. 인증 시스템은 공식의 변수들에 대해 소망될 수 있는 어떠한 함수이라도 사용자가 수행할 수 있게 하는 맞춤(custom) 연산자들을 제공할 수도 있다.
도 4는 관리 프로세스의 부분으로서 사용자에게 제시될 수 있는 관리 화면(400)의 일 예를 보인다. 관리 프로세스는 사용자에게 각종 도구들, 예를 들면, 사용자 셋업 프로세스의 각 단계를 통해 사용자가 나아가게 할 수 있는 "마법사" 와, 공식을 셋업할 때에 사용자를 돕는 공식 빌더(formula builder)를 제공할 수 있다. 일 실시예에서, 공식 빌더는 사용자가 사용자에게 고유한 공식을 선택하고 편집하는 것을 돕는 변수 및 연산자들의 메뉴들을 사용자에게 제공할 수 있다.
관리 화면(400)은 변수들의 배열(405), 숫자 키패드(410), 수학적 함수 키들(415) 및 비수학적 함수 키들(420), 그리고 공식 검사용 키(425) 및 공식 저장용 키(430)를 구비할 수 있다. 관리 화면(400)은 사용자이름을 입력하기 위한 영역(370) 및 사용자 공식을 입력하기 위한 영역(440)을 구비할 수도 있다. 사용자는 변수들 및 여러 가지 연산자들 중에서 선택함으로써 사용자 공식을 입력할 수 있다.
예를 들면, 사용자는 키보드(145)(도 1)를 사용하여 사용자 공식을 타이프할 수 있다. 사용자가 공식을 타이프함에 따라 그것은 사용자 공식 영역(440)에 디스플레이될 수 있다. 다르게는, 사용자는 포인팅 기기를 이용하여 문자, 변수 또는 연산자 위에 커서를 위치시키고 마우스 버튼을 클릭하거나 또는 엔터키를 눌러 소망된 문자, 변수, 또는 연산자를 선택할 수 있다. 선택은 사용자 공식 영역(440)에 디스플레이된다. 사용자는 사용자 공식이 원하는 대로 구축하게 될 때까지 계속한다. 사용자 공식이 완성된 때에, 사용자는 공식을 저장하고 이용하기 위해 "저장" 버튼(430)을 가동시킬 수 있다.
일 실시예에서, 사용자에게는 하나 이상의 맞춤 연산자를 구축하는 설비(facility)가 제공될 수 있다. 예를 들면, 연산자들 중의 하나는 오프셋 함수를 포함할 수 있고, 이 오프셋 함수는, 사용자 공식 내의 변수에 관련되고, 관련된 변수로부터의 오프셋인 배열의 변수로부터의 값을 적용한다. 이 오프셋 함수는 x가 x축 오프셋이고 y는 y축 오프셋인 Offset(x, y)로서 표현될 수 있다. 오프셋 함수를 포함하는 예시적인 사용자 공식은 A+B(Offset(1, 1))일 수 있다. 도 3을 참조하면, 이 인증 세션에서는 사용자는 먼저 변수 A에 할당된 값을 찾아서 사용할 것이고, 그 후 변수 B를 찾지만 좌표 (1, 1)에 의한 오프셋인 변수 M으로부터 값을 사용할 것이다.
오프셋이 배열(365) 내에 존재하는 변수를 가리키고 있는 한은, 사용자는 소망되는 어떠한 오프셋이라도 이용할 수 있다. 예시적인 구현예에서 사용자는 단순히 "(Offset(x, y))"을 사용자 공식에서의 소망된 장소에 타이프함으로써 오프셋 함수를 입력한다. 다른 예시적인 구현예에서, 비수학적 함수들(420) 중의 하나는 "오프셋"이라고 레이블된 버튼을 구비할 수 있다. 오프셋 버튼을 누르면 사용자에게 오프셋 좌표들을 입력할 것을 요구하는 대화상자가 제시될 것이다. 좌표들이 입력되는 경우, 오프셋 지정, 예를 들면 Offset(1, 1)은 사용자 공식 영역(440)에 디스플레이된 사용자 공식에 나타날 수 있다.
오프셋 함수의 또 다른 도출에 있어, IX함수라고 하는 특정 오프셋이 결정될 수 있다. IX함수는 변수에 관련된 값을 배열의 좌상측 부분을 가리키는 좌표들로서 이용한다. 예를 들면, 사용자는 사용자 공식 2*B를 사용하고 싶어할 수 있고, 변수 K를 배열(365)의 좌상측 코너를 지정하는 것으로 선정하고 싶어할 수 있다. 오프셋 버튼을 누른 후, 좌표들에 대한 요구에 응답하여, 사용자는 특정 오프셋 및 선정을 위해 IX(K) 또는 기타 적당한 선정으로 응답할 수 있다.
후속하여, 사용자가 배열(365)을 사용하여 사용자 공식의 결과를 결정할 때, 사용자는 변수 K에는 값 "43"이 할당됨을 관측할 것이고 그 후 좌표 (4, 3)을 변수 A를 위한 오프셋 위치, 좌표 (5, 3)을 변수 B를 위한 오프셋 위치, 좌표 (6, 3)을 변수 C를 위한 오프셋 위치 등으로 간주할 것이다. 좌표 (5, 3)의 값을 사용하면, 사용자 공식 2*B는 "104"를 내놓고 그 후 그것은 패스워드 영역(375)에 입력될 것이다.
어떠한 함수, 연산, 또는 함수들 또는 연산들의 조합이라도 수행하는 다른 맞춤 연산자들이 만들어질 수 있다.
또 다른 예로서, 관리 화면(400)은 하나 이상의 변수에 작용하는 맞춤함수를 만들기 위한 선택을 포함할 수 있다. 맞춤함수는 어떠한 수의 수학, 논리(AND, OR, XOR 등), 삼각함수, 통계 등의 유형들의 연산들을 포함할 수 있다. 사용자에게는 맞춤함수들을 설계하기 위한 템플릿들로서 이용될 수 있는 하나 이상의 스크립트가 제시될 수 있다. 스크립트들은 맞춤함수들을 불러내기 위해 그리고 사용자 공식들에서 맞춤함수들을 사용하기 위해 사용자들에게 버튼들 또는 메뉴항목들을 제시하기 위해 제공될 수도 있다.
맞춤함수들을 만드는 능력은 시스템이 특정 사용자 또는 기업의 일부에 맞춤되는 것을 허용하기 때문에 유익하다. 시스템의 구매자에게는 다른 시스템 구매자들에게는 알려져 있지 않거나 다른 시스템 구매자들이 입수할 수 없는 맞춤함수들 및 연산자들을 만듦으로써 시스템의 보안을 더욱 강화하는 능력이 제공된다.
인증 시스템은 공식 내에 공식을 만드는 AutoTokenTM 함수라고 하는 함수를 제공함으로써 더 큰 보안 대책을 제공할 수 있다. 사용자는 예를 들면 AutoTokenTM 키(435)(도 4)를 선택하는 것에 의해 AutoTokenTM 함수를 불러낸다. AutoTokenTM 함수는 사용자가 사용자 공식 영역(440)에 입력하는 사용자 공식에 대해 사용자에게 프롬프트한다.
AutoTokenTM 함수는 각각 로컬공식 및 원격공식이라고 하는 2개의 공식을 자동적으로 만든다. 로컬 및 원격 공식들의 각각은, 연산공식을 형성하는 한은, 무작위로 선택되고 무작위로 정렬될 수 있는 변수들, 상수들 및 연산들을 포함한다. 변수들, 상수들 및 연산들은 관리 프로세스 의해 제공된 연산들과 사용자에게 제시된 변수들의 배열로부터의 변수들을 포함할 수 있다. 로컬 및 원격 공식들은 어떠한 복잡도 및 길이로도 될 수 있고 일반적으로 로컬공식이 사용자에 의해 입력될 사용자 공식의 결과를 받기 위한 결과변수를 포함하는 반면 원격 사용자 공식이 사용자 공식 자체를 포함한다는 점을 제외하면 동일하다.
원격공식은 인증 시스템에 의해 지정되는 어느 위치에라도 저장될 수 있고 로컬공식은 사용자에 대한 국소위치에 저장될 수 있다. 일 실시예에서, 로컬공식은 사용자에 의해 지정되거나 선택되는 어느 위치에라도 저장될 수 있다.
로컬공식은 다른 위치에서부터 기기, 서비스, 애플리케이션 또는 기능에 접근할 때에 사용하기 위해 휴대될 수 있다. 예를 들면, 임의의 유형의 휴대가능 매체, 예를 들면 자기, 광, 반도체, 또는 다른 적당한 매체에 로컬공식을 저장하는 것을 포함하여, 로컬공식은 휴대용이 되도록 저장될 수 있다. 로컬공식은, 예를 들면, 플로피디스크, 콤팩트디스크, 플래시메모리카드, USB드라이브, 또는 로컬공식을 저장하고 접근하기 위한 어떤 적당한 기기(예컨대, 아래에서 설명되는 도 5의 참조번호 247)에 저장될 수 있다.
일 실시예에서, 로컬공식은 반드시 저장되지 않을 수 있고, 사용자에 의한 사용을 위해 다른 위치에 휴대되거나 전송될 수 있다.
AutoTokenTM 함수를 구현하는 사용자를 위한 인증 세션은 다음과 같이 진행한다. 사용자가 기기, 서비스, 애플리케이션 또는 기능에 대한 접근을 요구하면서, 인증 세션이 시작된다. 시스템은 사용자에게 변수들의 배열을 제시하고 사용자는 그의 사용자 공식의 결과를 입력한다. 로컬공식이 휴대가능 매체에 저장되었다면, 이때 또는 이때에 앞선 어느 시간에나, 휴대가능 매체는 시스템에 연결되어 로컬공식은 인증 시스템에 의해 접근가능하게 된다. 인증 시스템은 그 결과를 결과변수 대신에 로컬공식에 삽입하며, 변수들의 배열로부터의 값들을 로컬공식의 나머지에 삽입하고, 로컬공식의 결과를 계산한다. 인증 시스템도 변수들의 배열로부터의 값들을 원격공식의 사용자 공식뿐만 아니라 원격공식의 나머지에 삽입하고, 원격공식의 결과를 계산한다.
인증 시스템은 결과들을 비교하고, 그것들이 일치한다면 사용자에게는 소망되는 기기, 서비스, 애플리케이션 또는 기능에 대한 접근이 허락된다.
만일 어떤 이유로 사용자의 사용자 공식이 손상된다면, 사용자는 AutoTokenTM 함수를 다시 불러내어 부가적인 자원 지원을 요구하는 일 없이 새로운 로컬, 원격, 및 사용자 공식들을 만들고, 그래서 계속적인 보안 접근을 확보한다.
또 다른 특징으로서, 인증 시스템은 일반적으로 사용자가 다른 함수들 내에 함수들을 삽입하여 사용자 공식의 보안을 확장하는 것을 허용한다. 예를 들면, 사용자 공식은 A+(AVE(AVE B+C+(AVE D+E+F))+G+H)를 포함할 수 있다. 특정 함수가 배열(365)로부터의 변수에 할당된 값에 기초하여 사용자 공식 내에 더미 문자들을 삽입하는데 이용될 수 있다. 이 함수는 "설정(Set)" 함수라고 지정될 수 있다. 설정 함수를 사용하는 예시적인 사용자 공식은 다음과 같을 수 있다:
(set Z, 1)[사용자 공식].
변수 Z에 값 5가 할당되는 배열에서, 사용자는 사용자 공식의 결과의 첫 번째 값을 입력하기 전에 5개의 더미 문자들을 타이프할 것이다. 그래서, 어떠한 숫자의 더미 문자들이라도 사용자 공식의 결과 내의 임의의 위치에 삽입될 수 있다.
부가적인 보안 특징으로서, 사용자 공식은 배열(365)의 변수들에 할당된 값들을 이용하여 암구어(secret phrase)의 특정 단어들 내의 특정 글자들을 지정할 수 있다. 예를 들면, 사용자는 그들의 암구어를 "개는 게으르다"로 결정할 수 있고, ABCD의 사용자 공식에 대해 정할 수 있다. 그들의 사용자 공식을 구축할 때, 사용자는 그들의 암구어 및 그들의 사용자 공식을 지정하는 명령들을 사용자 공식 영역(440)에 타이프할 수 있다.
다르게는, 비수학적 함수들(420)은 사용자가 지정들을 선택하는 것을 허용하는 함수들을 포함할 수 있다. 인증 동안, 예를 들면 A에는 값 31이 할당되며, B에는 값 14가 할당되며, C에는 값 21이 할당되고 D에는 값 13이 할당되는 배열이 제시될 수 있다. A=31인 경우 배열의 값들을 암구어에 적용하면 첫 번째 단어의 세 번째 글자가 되며, B=14는 네 번째 단어의 첫 번째 글자가 되며, C=21은 첫 번째 단어의 두 번째 글자가 되고, D=13은 세 번째 단어의 첫 번째 글자가 된다. 그래서, 사용자는 ELHI를 타이프할 것이다. 암구어의 보안 특성 및 배열이 주어지면, 그런 결과를 해독하는 시도는 실패하기가 가장 쉽게 될 것이다.
인증 시스템은 리셋함수를 사용자 공식 내에 제공함으로써 더 큰 보안 대책을 제공할 수 있다. 이 리셋함수는 사용자에게 제시되는 변수 배열을 리셋하도록 동작한다. 예를 들면, 인증 세션의 부분으로서, 도 3에 보인 바와 같은 변수들의 배열이 사용자에게 제시된다. 사용자는 이 배열을 검사하며, 사용자의 공식의 첫 번째 변수의 값을 인식하고 첫 번째 변수를 입력한다. 첫 번째 변수를 입력한 후, 리셋함수는 예를 들면 사용자 공식의 명령에 의해 또는 명령을 타이프함으로써 활성화되고, 값들 및 변수들은 변경되어 사용자에게 새로운 배열이 제시된다. 사용자는 사용자 공식을 계속 이용하여, 새로운 배열로부터 공식 내의 다음 변수의 값을 인식한다. 사용자가 모든 값들을 인식하며 사용자 공식의 결과를 계산하고 입력한 경우, 사용자에게는 소망하는 바대로 접근이 허락된다.
리셋함수를 사용하는 사용자 공식의 예는 다음과 같을 수 있다:
A|| B|| <reset> C
여기서 변수 A에 관련된 값에는 B에 관련된 값이 연접되며, 변수 배열은 리셋되고 A와 B의 연접(concatenation)은 변수 C의 새로운 값과 연접된다.
리셋함수는 사용자 공식 내의 어느 곳에라도 삽입될 수 있고 사용자 공식의 하나 이상의 자리에 삽입될 수 있다는 것이 이해될 것이다. 리셋함수는 여러 가지 방법들, 예를 들면, 특정 키를 누르는 것에 대한 응답으로서, 또는 어떤 값이 입력된 후에 자동으로 활성화될 수 있다.
도 4의 관리 화면을 참조하면, 리셋함수는 공식 빌더의 부분으로서, 또는 리셋함수를 삽입하기 위한 단계별(step by step) 프로세스를 사용자에게 제공하는 "마법사"로서 사용자에게 제시될 수 있다.
위에서 언급된 바와 같이, 리셋함수는 사용자에게 제시된 변수 배열을 리셋하도록 동작한다. 이것은 배열 내의 변수들을 위한 새로운 값들을 재생성하거나 변수들의 위치를 변경한 형태 또는 양자를 조합한 형태를 취할 수 있다. 리셋함수는 공식 빌더 또는 마법사 프로세스 동안 사용자에 의해 제공된 시드 번호(seed number) 또는 변수에 기초하는 공식을 이용하여 새로운 배열을 생성할 수 있다. 변수 시드는 사용자에게 제시된 변수 배열로부터의 변수일 수 있다.
그래서, 리셋함수는 높아진 레벨의 보안성을 본 발명에 제공한다. 예를 들면, 네트워크 환경에서, 데스크탑 컴퓨터와 서버 사이의 통신이 인터셉트된다면, 변수 배열에 관한 데이터는 추출될 수 있다. 예를 들면, 인터셉트된 데이터로부터 변수 배열을 도출하는 것이 시도될 것이다(비록 실패할 것이지만). 리셋함수는, 외부 통신 없이, 변수 배열을 국소적으로 리셋하도록 동작한다. 그래서, 통신을 인터셉트함으로써 변수 배열을 도출하려는 노력은 새로운 변수 배열이 생성되고 리셋 또는 새로운 변수 배열에 관련된 통신이 없기 때문에 소용없게 된다.
다시 도 1을 참조하면, 시스템(100)은 사용자인터페이스(110) 및 제어기(115)를 구비하는 데스크탑 컴퓨터일 수 있다. 제어기(115)는 메모리(125)로부터의 인증 프로그램(135)을 실행하기 위한 하나 이상의 프로세서(120)를 구비할 수 있고, 정보, 데이터 및 프로그램들을 저장하기 위한 저장기기(130)를 구비할 수도 있다. 제어기(115)는 다른 기기들과의 통신을 위한 인터페이스를 구비할 수도 있다. 사용자인터페이스(110)는 정보를 사용자에게 표시하기 위한 디스플레이기기(140)와, 정보, 질의들, 응답들 및 명령들을 입력하기 위한 하나 이상의 입력기기(145), 예를 들면, 키보드 및 포인팅기기를 구비할 수 있다.
프로세서(120)는 인증 프로그램(135)의 제어에 따라 인증 서비스들을 제공할 수 있고, 인증 시에는, 인증된 사용자가 서비스(150)에 접근하거나 서비스(150)를 이용하는 것을 허용할 수 있다. 이 실시예에서, 서비스(150)는 국소(local) 서비스일 수 있다. 다시 말하면 서비스 (150)는 데스크탑 컴퓨터(100)에 상주할 수 있다. 서비스(150)는 프로세서(120) 또는 시스템(100)의 사용자가 접근을 요구할 수 있는 어떠한 기기, 서비스, 애플리케이션 또는 기능이라도 될 수 있다. 예를 들면, 서비스(150)는 데이터처리 시스템, 계산서비스, 콘텐츠 전달 서비스, 데이터베이스, 파일시스템 등일 수 있다.
동작 동안에 사용자는 제어기(115)를 통해 서비스(150)에 접근을 시도할 수 있다. 제어기(115)는 전술한 바와 같이 인증 세션을 시작하여 사용자가 서비스(150)에 대한 접근에 적임자인지, 허락을 받았는지, 또는 일반적으로 허용되었는지를 결정한다. 사용자가 정당한 자격증, 즉, 전술한 바와 같이 사용자 공식에 할당된 값들의 알맞은 적용을 제공한다면, 제어기(115)는 서비스(150)에 대한 접근을 허용한다.
도 5는 분산 시스템(500)으로서 보이는 본 발명의 또 다른 실시예를 도시한다. 시스템(500)은 기업 또는 회사의 광역통신망 또는 근거리통신망의 부분이 될 수 있고 일반적으로 사용자인터페이스(210), 제어기(215), 및 통신망(225)에 의해 접속되는 애플리케이션 또는 서비스(220)를 포함한다. 사용자인터페이스(210)는 일반적으로 국소연산기기(local computing device; 230)의 일부일 수 있고 제어기(215)와 서비스(220)는 일반적으로 연산기기(230)와 떨어져 있다. 국소연산기기(230)는 저장기기(245)에 저장된 프로그램(240)을 실행하기 위한 하나 이상의 프로세서(235)를 구비할 수 있다. 연산기기(230)는 또한 로컬공식을 저장하기 위한 외부의 착탈식 저장기기(247)를 구비할 수 있다. 사용자인터페이스(210)는 정보를 사용자에게 표시하기 위한 디스플레이기기(250)와, 정보, 질의들, 응답들 및 명령들을 입력하기 위한 하나 이상의 입력기기(255), 예를 들면 키보드 및 포인팅기기를 구비할 수 있다.
제어기(215)는 인증 서버로서 동작할 수 있고, 하나 이상의 프로세서(260)와, 인증 프로세스들 및 세션들을 제어하는 프로그램들을 저장하기 위한 저장설비(265)를 구비할 수 있다. 인증 서버로서, 제어기(215)는 연산기기(230) 또는 연산기기(230)의 사용자를 인증하는 동작을 할 수 있다. 인증 시에는, 제어기(215)는 서비스(220)를 연산기기(230)에 제공하거나 연산기기(230)가 서비스(220)에 접근하는 것을 허용하도록 동작한다. 또한 제어기(230)는 저장설비(265)에 저장된 명령어들 또는 프로그램들의 제어에 따라 시스템(200)의 구성요소들 중의 트래픽을 관리하도록 동작한다. 제어기(215)는 또한 저장설비(265) 내에 연산기기(230)를 위한 저장용량을 제공할 수도 있다. 인증 서버로서, 제어기(215)는 다른 연산기기들(2751 ... 275n)을 인증하도록 동작할 수 있고, 인증 시에는, 다른 연산기기들(2751 ... 275n)에 서비스(220) 및 다른 서비스들(2701 ... 270n)에 대한 접근을 제공하도록 동작할 수 있다.
이 실시예에서, 인증 프로세스들 및 세션들을 제어하는 프로그램들은 저장기기(245) 및 저장설비(265) 가운데 분산될 수 있다. 인증 프로세스들 및 세션들의 부분들은 저장기기(245) 및 저장설비(265)에 각각 저장된 프로그램들의 제어에 따라 프로세서들(235 및 260)에 의해 수행될 수 있다.
서비스(220)는 연산기기(230) 또는 연산기기(230)의 사용자가 접근을 요구할 수 있는 어떠한 애플리케이션 또는 서비스일 수 있다. 예를 들면, 서비스(220)는 데이터처리 시스템, 계산서비스, 콘텐츠 전달 서비스, 데이터베이스, 파일시스템 등일 수 있다. 서비스(220)는 연산기기(230), 또는 제어기(215)에 상주할 수 있거나, 또는 시스템(200) 내의 어느 곳에나 또는 시스템(200)의 어떠한 구성요소와 결합해서도 상주할 수 있다.
통신망(225)은 통신에 적합한 어떤 링크 또는 네트워크, 예를 들면, 인터넷(Internet), 일반전화교환망(PSTN), 무선통신망, 유선통신망, 가상사설통신망(VPN) 등을 포함할 수 있다. 통신은 X.25, ATM, TCP/IP 등의 임의의 적당한 프로토콜을 이용하여 실행될 수 있다.
동작 동안에 사용자는 서비스(220)에 접근을 시도할 수 있다. 제어기(215)는 시도된 접근을 감시하거나 시도된 접근에 대한 통지를 받는다. 예를 들면, 제어기(215)는 서비스(220)에 접근하는 모든 시도들을 저장설비(265)에 저장된 프로그램들의 제어에 따라 감시하고 인터셉트할 수 있다. 또 다른 예로서, 서비스(220)는 모든 접근 시도들을 제어기(215)에 처리를 위해 자동적으로 발송할 수 있다. 제어기(215)를 사용하여 서비스(220)에 대한 접근을 제어하는 기타 적당한 방법도 구현될 수도 있다.
제어기(215)는 인증 세션을 시작하여 사용자가 서비스(220)에 대한 접근에 적임자인지, 허락을 받았는지, 또는 일반적으로 허용되었는지를 결정한다. 제어기(215)는 연산기기(230)에 데이터 및 명령들을 제공하여 디스플레이(250) 상에 변수들의 배열을 표시하고 사용자에게 사용자 공식의 결과를 제공할 것을 프롬프트한다. 연산기기는 그 결과를 제어기(215)에 전달한다. 제어기(215) 역시 사용자 공식과 변수들의 배열로부터의 값들을 이용하여 결과를 계산한다. 전달된 결과와 제어기(215)에 의해 계산된 결과가 일치한다면, 제어기(215)는 서비스(220)에 대한 접근을 허용한다.
이 실시예에서, 사용자가 AutoTokenTM 함수를 전술한 바와 같이 구현할 때, 로컬공식은 외부의 착탈식 저장기기(247) 상에 저장될 수 있다. 사용자 공식의 결과를 결과변수 대신에 로컬공식에 삽입하는 것, 변수들의 배열로부터의 값들을 로컬공식의 나머지에 삽입하는 것, 및 로컬공식의 결과를 계산하는 것을 포함한 로컬공식에 대한 동작들은 연산기기(230)에서 실행하게 되는 클라이언트 프로그램에 의해 수행될 수 있다. 변수들의 배열로부터의 값들을 원격공식의 사용자 공식뿐만 아니라 원격공식의 나머지에 삽입하는 것 및 원격공식의 결과를 계산하는 것을 포함한 원격공식에 대한 동작들은 제어기(215) 상의 서버프로그램에 의해 수행될 수 있다.
도 6은 전자상거래 또는 이-커머스를 위한 분산 시스템(600)으로서 보이는 본 발명의 또 다른 실시예를 도시한다. 시스템(600)은 인터넷 기반일 수 있고 월드와이드웹을 공통통신매체로서 사용할 수 있다. 시스템(600)은 일반적으로 앞서 설명된 실시예들의 모든 특징들을 제공하고 다수의 사용자들(6101 ... 610n), 제어기(620), 및 다수의 애플리케이션들 또는 서비스들(6501 ... 650n)을 지원한다. 사용자들(6101 ... 610n), 서비스들(6501 ... 650n) 및 제어기(620)는 일반적으로는 인터넷(660)에 의해 접속되는 독립적인 실체(entity)들, 예를 들면, 상거래의 실체(business entity)들을 나타낸다. 예를 들면, 사용자들(6101 ... 610n)은 서비스들에 접근하는 개인(개체)들일 수 있거나 또는 프로그램 제어에 따라 서비스들에 접근하는 연산기기들일 수 있다. 일 실시예에서, 사용자들(6101 ... 610n)은 서비스들(6501 ... 650n) 중의 하나 이상에 접근하는 요금을 지불할 수 있고 제어기(620)는 인증을 통해 그런 접근을 제어하도록 동작한다. 또한 서비스들(6501 ... 650n)의 운영자들은 접근 및 인증 서비스들에 대해 제어기 운영자에게 요금을 지불할 수 있다. 사용자들, 서비스 운영자들 및 제어기 운영자 간의 다른 상거래구성들이 예상될 수도 있다. 제어기(620)는 서비스들(6501 ... 650n)에 대한 사용자 인증 및 접근을 제어하는 프로그램들(630)을 실행하기 위한 하나 이상의 프로세서(425)를 구비할 수 있다. 제어기(620)는, 사용자들(6101 ... 610n)을 인증하고 하나 이상의 서비스(6501 ... 650n)를 인증된 사용자에게 제공하도록 동작한다. 서비스들(6501 ... 650n)은 사용자들(6101 ... 610n)이 전자상거래들을 포함하는 접근을 요구할 수 있는 어느 서비스라도 포함할 수 있다. 예를 들면, 서비스들(6501 ... 650n)은 상품구매시스템들, 데이터처리 시스템들, 계산서비스들, 텍스트, 오디오 또는 비디오를 전달하기 위한 콘텐츠 전달 서비스들 등의 상거래 시에 인터넷과 같은 네트워크를 통해 참여하는 모두를 포함할 수 있다.
시스템(600)에서, 하나 이상의 사용자(6101 ... 610n)는 서비스들(6501 ... 650n)에 일상적으로 접근할 수 있다. 제어기(620)는 시도되는 접근을 감시하거나 시도되는 접근에 대한 통지를 받는다. 예를 들면, 제어기(620)는 서비스들(6501 ... 650n) 중의 어느 것에 대한 모든 접근 시도들을 감시하고 인터셉트할 수 있다. 다른 예에서, 서비스들(6501 ... 650n)은 모든 접근시도들을 처리를 위해 제어기(620)에 자동으로 발송할 수 있거나 그렇지 않다면 시도된 접근을 제어기(620)에 통지할 수 있다.
응답으로, 제어기(620)는 각 사용자(610)와의 인증 세션을 시작하여 하나 이상의 서비스(6501 ... 650n)에 접근하는 것에 특정 사용자가 적임자인지, 허락을 받았는지, 또는 일반적으로 허용되었는지를 결정한다. 사용자(610)가 올바른 자격증, 즉 전술한 바와 같이 사용자 공식의 올바른 결과를 제공한다면, 제어기(620)는 소망하는 서비스 또는 서비스들에의 접근을 허용한다.
또 다른 실시예에서, 사용자(610)는 서비스에 대한 접근이 1회성으로 허락되는 하나 이상의 서비스(6501 ... 650n)에 대한 접근을 시도할 수 있다. 제어기(620)에는 시도된 접근이 통지되거나 제어기(620)는 시도된 접근을 능동적으로 감시한다. 응답으로, 제어기(620)는 사용자(610)와의 인증 세션을 시작한다. 관리자는 프로그램 또는 운영자일 수 있는 것으로서, 사용자 공식을 단일 사용에 대해서만 유효한 사용자(610)에게 전달한다. 사용자(610)는 한 번 사용자 공식의 결과를 입력하고 일반적으로 하나 이상의 서비스(6501 ... 650n)에 접근하는 것이 허용된다.
도 7은 예를 들면 이메일에 의해 메시지의 부분으로서 보내진 데이터를 보호하기 위한 본 발명의 실시예를 이용하는 시스템(700)을 보인다. 시스템(700)은 본 발명의 인증 시스템(710)을 이용하는 메시지 발신자(705), 수신자(715) 및 통신망을 구비한다. 발신자(705) 및 수신자(715) 둘 다는 하나 이상의 프로세서, 메모리기기들 및 프로그램들을 구비하여 본 발명에 따른 메시지 전송 및 인증 동작들을 지원한다. 발신자(705)는 발신자(705)가 보호하기 원하는 데이터를 포함하는 메시지, 예를 들면 이메일을 작성한다. 그런 메시지(810)의 블록도는 도 8에 보이고 있다. 데이터(820)는 메시지의 부분으로서 또는 메시지에 첨부된 파일로서 포함될 수 있다. 인증 시스템(710)은 메시지(810) 및 데이터(820)와 함께 래퍼(wrapper: 825)를 구비하고, 래퍼는 인증 세션을 시작하여 수신자(715)가 올바른 자격증을 제시하지 않는다면 데이터(820)에 대한 접근을 방지해 준다. 그 후 메시지는, 예를 들면, 표준 이메일 프로토콜을 이용하여 수신자(715)에게 전달된다.
수신하면, 수신자(715)는 메시지를 열려고 시도한다. 래퍼는 인증 세션을 시작하여, 도 3에 보인 바와 같은 배열을 표시한다. 발신자에 대한 수신확인반환(return receipt)이 생성되어 동일한 인증 세션이 발신자(705)를 위해 시작되게 한다.
발신자(705)는 발신자의 사용자 공식의 결과를 결정하고 그 후 그 결과를 일반적으로는 메시지를 전달하는데 이용되는 것과는 다른 방법을 통해 수신자(715)에게 전달한다. 수신자는 결과를 입력하고, 정확하다면, 래퍼(825)는 데이터(820)에 대한 접근을 허용한다. 일단 데이터가 닫히면 인증 세션은 끝난다. 메시지를 열려는 시도가 이루어질 때마다, 다른 인증이 새로운 배열로 시작된다. 그래서, 배열은 변수들에 할당된 새로운 값들을 포함하고, 발신자(705)에게 발신자의 사용자 공식을 적용하는 결과들을 다시 결정할 것을 요구한다. 그러므로, 만일 수신자(715)가 메시지를 다시 열려고 하거나, 또는 그 메시지를 다른 것에 전송하면, 사용자 공식의 이전의 결과는 메시지를 여는데 더 이상 사용가능하지 않고 발신자(705)에게 통지될 수 있다.
앞서의 설명은 단지 본 발명의 예시라는 것이 이해되어야 한다. 각종 대체예들 및 변형들이 본 발명으로부터 벗어남 없이 이 기술분야의 숙련자들에 의해 고안될 수 있다. 따라서, 본 발명은 첨부의 청구항들의 범위 내에 드는 모든 그러한 대체예들, 변형들 및 개조들을 포괄하도록 의도되고 있다.

Claims (32)

  1. 사용자 인터페이스 및 인증 시스템으로 이행되는 사용자 인증 방법에 있어서,
    상기 인증 시스템에 의해 제공되는 한 세트의 변수들 및 연산들로부터 사용자가 선택 및 구축한 사용자 공식의 형태로 인증 키를 만드는 단계;
    상기 인증 시스템에 상기 사용자 공식을 저장하는 단계;
    상기 사용자 인터페이스를 통해, 각 변수에 값이 할당되는 변수들로서, 상기 사용자 공식의 변수들을 포함하는, 상기 인증 시스템에 의해 생성된 상기 변수들의 배열을 상기 사용자에게 제시하는 단계;
    할당된 값들을 사용자 공식의 매칭되는 변수들에 적용하고 제1 결과를 계산하는 단계; 및
    상기 사용자 인터페이스를 통해 상기 제1 결과를 상기 인증 시스템에 전달하는 단계;
    를 포함하며,
    상기 인증 시스템은, 상기 제1 결과가 상기 인증 시스템에 의해 계산된 사용자 공식의 별도의 독립적인 계산의 제2결과와 일치하는 경우에 상기 사용자를 인증하는, 사용자 인증 방법.
  2. 제1항에 있어서, 상기 변수들은 글자들을 포함하는, 사용자 인증 방법.
  3. 제1항에 있어서, 상기 변수들의 배열은 알파벳 순서의 글자들을 포함하는, 사용자 인증 방법.
  4. 제1항에 있어서, 할당된 값들은 숫자 값들을 포함하는, 사용자 인증 방법.
  5. 제1항에 있어서, 할당된 값들은 무작위로 생성된 숫자 값들을 포함하는, 사용자 인증 방법.
  6. 제1항에 있어서, 상기 변수들은 10x10 행렬로 배열되는, 사용자 인증 방법.
  7. 제1항에 있어서,
    사용자 공식을 만들기 위해 선택해야 하는 변수들 및 연산들의 목록들을 제공하는 단계;
    를 포함하는, 사용자 인증 방법.
  8. 제1항에 있어서, 상기 사용자 공식은 하나 이상의 맞춤(custom) 연산자를 구비하는, 사용자 인증 방법.
  9. 제8항에 있어서, 상기 하나 이상의 맞춤 연산자는, 사용자 공식 변수에 관련되고 관련된 사용자 공식 변수로부터의 오프셋인 배열의 변수로부터의 값을 적용하는 함수를 구비하는, 사용자 인증 방법.
  10. 제1항에 있어서, 상기 사용자 공식은 상기 사용자 공식에서 사용하기 위한 연산들을 포함하는 하나 이상의 함수를 구비하는, 사용자 인증 방법.
  11. 제1항에 있어서,
    상기 제1결과를 받기 위한 변수를 가지는 로컬공식과 상기 사용자 공식을 가지는 원격공식을 만드는 단계; 및
    상기 로컬공식의 계산이 상기 원격공식의 계산과 일치하는 경우에 사용자를 인증하는 단계;
    를 포함하는, 사용자 인증 방법.
  12. 제11항에 있어서, 상기 로컬 및 원격 공식들은 무작위로 선택 및 정렬되는 변수들, 상수들 및 연산들 중의 적어도 하나를 구비하는, 사용자 인증 방법.
  13. 제11항에 있어서, 상기 로컬공식은 휴대가능 저장 매체 또는 기기에 저장되는, 사용자 인증 방법.
  14. 제11항에 있어서, 상기 로컬공식의 계산은 국소연산기기에 의해 수행되고,
    상기 원격공식의 계산은 상기 국소연산기기와 멀리 떨어져 있는 제어기에 의해 수행되는, 사용자 인증 방법.
  15. 제1항에 있어서, 상기 사용자 공식은 상기 제1결과가 더미 문자들을 포함하도록 구축되는, 사용자 인증 방법.
  16. 제1항에 있어서, 상기 사용자 공식은 상기 배열의 변수들에 할당된 값들을 이용하여 암구어(secret phrase) 내의 특정 글자들을 지정하는, 사용자 인증 방법.
  17. 제1항에 있어서, 상기 사용자 공식은 리셋 함수를 구비하며, 상기 리셋함수는 상기 리셋함수의 활성화(activation) 시에 사용자에게 새로운 배열을 제시하는, 사용자 인증 방법.
  18. 제1항에 있어서, 인증 시에, 상기 사용자에게는 국소(local) 서비스에 대한 접근이 허락되는, 사용자 인증 방법.
  19. 제1항에 있어서, 상기 변수들의 배열을 상기 사용자에게 제시하는 단계는 국소연산기기에 의해 수행되며, 상기 사용자 공식의 별도의 독립적인 계산은 상기 국소연산기기로부터 멀리 떨어져 있는 제어기에 의해 수행되고, 상기 사용자에게는 인증 시에 서비스에 대한 접근이 허락되는, 사용자 인증 방법.
  20. 제19항에 있어서, 상기 사용자, 서비스 운영자 및 제어기 운영자는 네트워크를 통한 상거래 시에 참여하는 상거래의 실체(business entity)들인, 사용자 인증 방법.
  21. 제1항에 있어서,
    제1항에 따른 인증 세션을 시작하는 래퍼(wrapper)를 제공하는 단계;
    데이터를 가지는 메시지를 상기 래퍼 내에 캡슐화하는 단계;
    상기 메시지를 열려고 시도할 경우에 메시지 수신자를 위한 제1인증세션과 메시지 발신자를 위한 제2인증세션을 시작하는 단계;
    상기 제2인증세션으로부터 사용자 공식 결과를 결정하는 단계;
    상기 사용자 공식 결과를 상기 제1인증세션에 제공하는 단계; 및
    상기 메시지 수신자가 인증 시에 상기 메시지 및 데이터에 접근하는 것을 허용하는 단계;
    를 더 포함하는, 사용자 인증 방법.
  22. 사용자 인증을 위한 시스템에 있어서,
    사용자 공식이 사용자에 의해 선택되어 구축되게 하는 한 세트의 변수들 및 연산들을 제공하고, 상기 사용자 공식을 저장하며, 그리고 각 변수에 값이 할당되는 변수들로서, 사용자 공식의 변수들을 포함하는 상기 변수들의 배열을 생성하기 위한 제어기; 및
    각 변수에 값이 할당되는 변수들의 배열을 상기 사용자에게 제시하기 위한 사용자 인터페이스;
    를 포함하고,
    상기 변수들의 배열에 관련된 값들이 상기 사용자에 의해 상기 사용자 공식의 매칭되는 변수들에 적용되게 하며,
    상기 변수들의 배열에 관련된 값들이 상기 사용자 공식의 매칭되는 변수들에 적용된 제1결과로서, 상기 사용자 인터페이스를 통해 상기 제어기로 전달될 상기 적용된 제1결과가 상기 사용자에 의해 입력되게 하고,
    상기 제어기는, 상기 사용자 공식을 이용해 별도의 독립적인 계산을 수행하여 제2결과를 얻고, 상기 제1결과가 상기 제2결과와 일치하는 경우에 상기 사용자를 인증하는, 사용자 인증 시스템.
  23. 제22항에 있어서, 상기 변수들은 글자들을 포함하는, 사용자 인증 시스템.
  24. 제22항에 있어서, 상기 변수들의 배열은 글자들을 알파벳 순서로 포함하는, 사용자 인증 시스템.
  25. 제22항에 있어서, 할당된 값들은 숫자값들을 포함하는, 사용자 인증 시스템.
  26. 제22항에 있어서, 할당된 값들은 무작위로 생성된 숫자값들을 포함하는, 사용자 인증 시스템.
  27. 제22항에 있어서, 상기 변수들은 10x10 행렬로 배열되는, 사용자 인증 시스템.
  28. 제22항에 있어서, 하나 이상의 맞춤 연산자는, 사용자 공식 변수에 관련되고 관련된 사용자 공식 변수로부터의 오프셋인 배열의 변수로부터의 값을 적용하는 함수를 구비하는, 사용자 인증 시스템.
  29. 제22항에 있어서, 상기 사용자 공식은 상기 사용자 공식에서 사용하기 위한 연산들을 포함하는 하나 이상의 함수를 구비하는, 사용자 인증 시스템.
  30. 제22항에 있어서,
    상기 제1결과를 받기 위한 변수를 가지는 로컬공식의 결과를 저장 및 계산하는 국소연산기기; 및
    상기 국소연산기기로부터 멀리 떨어져 있고, 상기 사용자 공식을 가지는 원격공식의 결과를 저장 및 계산하며, 그리고 상기 로컬공식의 결과가 상기 원격공식의 결과와 일치하는 경우에 상기 사용자를 인증하는 제어기;
    를 포함하는, 사용자 인증 시스템.
  31. 제30항에 있어서, 상기 로컬 및 원격 공식들은 무작위로 선택 및 정렬되는 변수들, 상수들 및 연산들 중의 적어도 하나를 구비하는, 사용자 인증 시스템.
  32. 제30항에 있어서, 상기 로컬공식은 휴대가능 저장 매체 또는 기기에 저장되는, 사용자 인증 시스템.
KR1020067009284A 2003-10-14 2004-10-04 인증 시스템 KR101108660B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US51097103P 2003-10-14 2003-10-14
US60/510,971 2003-10-14
US54116004P 2004-02-02 2004-02-02
US60/541,160 2004-02-02
US54440004P 2004-02-13 2004-02-13
US60/544,400 2004-02-13
PCT/US2004/032507 WO2005038573A2 (en) 2003-10-14 2004-10-04 Authentication system

Publications (2)

Publication Number Publication Date
KR20060132824A KR20060132824A (ko) 2006-12-22
KR101108660B1 true KR101108660B1 (ko) 2012-01-25

Family

ID=34468364

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067009284A KR101108660B1 (ko) 2003-10-14 2004-10-04 인증 시스템

Country Status (10)

Country Link
US (1) US7143440B2 (ko)
EP (1) EP1676393B1 (ko)
JP (1) JP5086640B2 (ko)
KR (1) KR101108660B1 (ko)
CN (1) CN1894882B (ko)
AU (1) AU2004282865B2 (ko)
CA (1) CA2542985C (ko)
IL (1) IL175062A (ko)
TW (1) TWI355838B (ko)
WO (1) WO2005038573A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1676393B1 (en) * 2003-10-14 2018-12-05 Grid Data Security, Inc. Authentication system
US7725712B2 (en) * 2003-10-14 2010-05-25 Syferlock Technology Corporation User authentication system and method
JP4547210B2 (ja) * 2004-08-27 2010-09-22 株式会社エヌ・ティ・ティ・ドコモ クライアント端末、サービス提供装置及びサービス発見方法
US20100199100A1 (en) * 2004-08-30 2010-08-05 Norman Frank Goertzen Secure Access by a User to a Resource
US7689831B2 (en) * 2004-08-30 2010-03-30 Passrules Canadian Security Inc. Method and system for securing interface access via visual array paths in combination with hidden operators
EP2002371A4 (en) * 2006-03-01 2010-05-05 Norman Frank Goertzen METHOD AND SYSTEM FOR SECURING INTERFACE ACCESS VIA PATHS OF VISUAL SETS ASSOCIATED WITH HIDDEN OPERATORS
EP1868126B1 (en) * 2006-06-16 2011-08-10 Thomson Licensing Device and method for discovering emulated clients
US8301897B2 (en) * 2006-08-23 2012-10-30 Cisco Technology, Inc. Challenge-based authentication protocol
US8327420B2 (en) * 2006-10-30 2012-12-04 Girish Chiruvolu Authentication system and method
WO2009001020A1 (en) 2007-06-26 2008-12-31 G3-Vision Limited Authentication system and method
JP2009272737A (ja) * 2008-05-01 2009-11-19 Panasonic Corp 秘匿認証システム
BR112012032067A2 (pt) * 2010-06-15 2016-11-08 Thomson Licensing método e dispositivo para entrada segura de dados pessoais
TW201310959A (zh) * 2011-08-31 2013-03-01 Ibm 動態提供演算式密碼/盤問鑑定的方法與電腦裝置
US20140157382A1 (en) * 2012-11-30 2014-06-05 SunStone Information Defense, Inc. Observable authentication methods and apparatus
US9473465B2 (en) 2014-09-29 2016-10-18 Utah State University Lingual transformation based encryption
US9391962B2 (en) 2014-09-29 2016-07-12 Utah State University Multi-node encryption
JP6322549B2 (ja) * 2014-10-28 2018-05-09 株式会社野村総合研究所 認証システム、認証方法および認証プログラム
US11151243B1 (en) * 2018-06-22 2021-10-19 Thomas M. McNamara, Jr. Password hopping system and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819102A (en) 1991-08-09 1998-10-06 Lotus Corporation Formula processor having cache means for storing and retrieving results of previously computed formulas base on identification and dependency informations
US6118872A (en) 1997-09-05 2000-09-12 Fujitsu Limited Apparatus and method for controlling secret data by using positions of input image points on an image and a sequence of the positions
US6833847B1 (en) 1999-12-21 2004-12-21 International Business Machines Corporation Visual wizard launch pad
US20060047066A1 (en) * 2004-09-01 2006-03-02 Oldfield Terry A Sulfopolyesters having improved clarity in water-dispersible formulations and products made therefrom

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4184148A (en) 1975-05-22 1980-01-15 Id Code Industries, Inc. Identification devices and systems
US4198619A (en) 1976-10-28 1980-04-15 Atalla Technovations Corporation Programmable security system and method
FR2469760A1 (fr) 1979-11-09 1981-05-22 Cii Honeywell Bull Procede et systeme d'identification de personnes demandant l'acces a certains milieux
GB2112190B (en) 1981-12-23 1985-12-18 Omron Tateisi Electronics Co Personal identification system
US4779224A (en) 1985-03-12 1988-10-18 Moseley Donald R Identity verification method and apparatus
US4964163A (en) 1988-04-04 1990-10-16 Motorola, Inc. Method and apparatus for controlling access to a communication system
US5130519A (en) 1990-01-16 1992-07-14 George Bush Portable pin card
US5265162A (en) 1990-01-16 1993-11-23 George Bush Portable pin card
US5239583A (en) 1991-04-10 1993-08-24 Parrillo Larry A Method and apparatus for improved security using access codes
US5163097A (en) 1991-08-07 1992-11-10 Dynamicserve, Ltd. Method and apparatus for providing secure access to a limited access system
US5251259A (en) 1992-08-20 1993-10-05 Mosley Ernest D Personal identification system
US5428349A (en) 1992-10-01 1995-06-27 Baker; Daniel G. Nondisclosing password entry system
US5754652A (en) 1994-12-14 1998-05-19 Lucent Technologies Inc. Method and apparatus for secure pin entry
US5682475A (en) * 1994-12-30 1997-10-28 International Business Machines Corporation Method and system for variable password access
US5793866A (en) * 1995-12-13 1998-08-11 Motorola, Inc. Communication method and device
US6154841A (en) * 1996-04-26 2000-11-28 Canon Kabushiki Kaisha Digital signature method and communication system
JPH10307799A (ja) * 1997-02-28 1998-11-17 Media Konekuto:Kk コンピュータ通信網における身元確認方法及び身元確認装置
US5971272A (en) 1997-08-19 1999-10-26 At&T Corp. Secured personal identification number
US6571336B1 (en) 1998-02-12 2003-05-27 A. James Smith, Jr. Method and apparatus for securing a list of passwords and personal identification numbers
US6253328B1 (en) 1998-02-12 2001-06-26 A. James Smith, Jr. Method and apparatus for securing passwords and personal identification numbers
US7111324B2 (en) * 1999-01-15 2006-09-19 Safenet, Inc. USB hub keypad
US6587853B1 (en) * 1999-05-19 2003-07-01 Plum Software Associates, Inc. System that employs inferencing for troubleshooting complex user authentication problems
US6246769B1 (en) 2000-02-24 2001-06-12 Michael L. Kohut Authorized user verification by sequential pattern recognition and access code acquisition
KR100402358B1 (ko) 2001-03-02 2003-10-22 설동석 간접적인 패스워드 입력을 통한 사용자 확인방법 및 그 장치
US20030037261A1 (en) * 2001-03-26 2003-02-20 Ilumin Corporation Secured content delivery system and method
US6944663B2 (en) * 2002-03-06 2005-09-13 Sun Microsystems, Inc. Method and apparatus for using client puzzles to protect against denial-of-service attacks
EP1676393B1 (en) * 2003-10-14 2018-12-05 Grid Data Security, Inc. Authentication system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819102A (en) 1991-08-09 1998-10-06 Lotus Corporation Formula processor having cache means for storing and retrieving results of previously computed formulas base on identification and dependency informations
US6118872A (en) 1997-09-05 2000-09-12 Fujitsu Limited Apparatus and method for controlling secret data by using positions of input image points on an image and a sequence of the positions
US6833847B1 (en) 1999-12-21 2004-12-21 International Business Machines Corporation Visual wizard launch pad
US20060047066A1 (en) * 2004-09-01 2006-03-02 Oldfield Terry A Sulfopolyesters having improved clarity in water-dispersible formulations and products made therefrom

Also Published As

Publication number Publication date
US7143440B2 (en) 2006-11-28
JP5086640B2 (ja) 2012-11-28
KR20060132824A (ko) 2006-12-22
IL175062A0 (en) 2006-08-20
EP1676393B1 (en) 2018-12-05
TWI355838B (en) 2012-01-01
WO2005038573A2 (en) 2005-04-28
AU2004282865B2 (en) 2009-05-28
EP1676393A4 (en) 2011-10-26
WO2005038573A3 (en) 2005-12-22
EP1676393A2 (en) 2006-07-05
CA2542985C (en) 2015-04-21
TW200520508A (en) 2005-06-16
IL175062A (en) 2010-11-30
CN1894882B (zh) 2012-04-04
CN1894882A (zh) 2007-01-10
AU2004282865A1 (en) 2005-04-28
US20050114675A1 (en) 2005-05-26
JP2007516512A (ja) 2007-06-21
CA2542985A1 (en) 2005-04-28

Similar Documents

Publication Publication Date Title
KR101108660B1 (ko) 인증 시스템
Halderman et al. A convenient method for securely managing passwords
US7770002B2 (en) Multi-factor authentication
US9262618B2 (en) Secure and usable protection of a roamable credentials store
US6732278B2 (en) Apparatus and method for authenticating access to a network resource
US8151364B2 (en) Authentication device and/or method
US8041954B2 (en) Method and system for providing a secure login solution using one-time passwords
US10848304B2 (en) Public-private key pair protected password manager
CA2667747C (en) User authentication system and method
Singh et al. A 3-level multifactor Authentication scheme for cloud computing
KR20050070381A (ko) 원타임 패스워드 기반 인증 시스템
Dhamija et al. A Secure Hardware Based Multifarious Component Authentication Technique Using USB for Cloud Environment

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
N231 Notification of change of applicant
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: 20150106

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160108

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180105

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190220

Year of fee payment: 8