KR20180048428A - 비-보안 단말에 의해 사용자를 인증하는 방법 - Google Patents

비-보안 단말에 의해 사용자를 인증하는 방법 Download PDF

Info

Publication number
KR20180048428A
KR20180048428A KR1020170145502A KR20170145502A KR20180048428A KR 20180048428 A KR20180048428 A KR 20180048428A KR 1020170145502 A KR1020170145502 A KR 1020170145502A KR 20170145502 A KR20170145502 A KR 20170145502A KR 20180048428 A KR20180048428 A KR 20180048428A
Authority
KR
South Korea
Prior art keywords
user
user terminal
software component
displayed
image frames
Prior art date
Application number
KR1020170145502A
Other languages
English (en)
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
Priority claimed from EP16196950.6A external-priority patent/EP3319001A1/en
Priority claimed from EP16196957.1A external-priority patent/EP3319002B1/en
Priority claimed from EP16196945.6A external-priority patent/EP3319000A1/en
Priority claimed from EP16196947.2A external-priority patent/EP3319067B1/en
Application filed by 스카이코드 filed Critical 스카이코드
Publication of KR20180048428A publication Critical patent/KR20180048428A/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C5/00Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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
    • 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/13Sensors therefor
    • G06V40/1318Sensors therefor using electro-optical elements or layers, e.g. electroluminescent sensing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification
    • G10L17/22Interactive procedures; Man-machine interfaces
    • G10L17/24Interactive procedures; Man-machine interfaces the user being prompted to utter a password or a predefined phrase
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • 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/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • 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
    • H04L9/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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
    • H04L9/3271Cryptographic 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 using challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • 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/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2133Verifying human interaction, e.g., Captcha
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • G06Q20/40145Biometric identity checks
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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/16Obfuscation or hiding, e.g. involving white box
    • 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
    • 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
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Abstract

본 발명은 사용자 단말(UT)로부터 사용자를 인증하는 방법에 관한 것으로서, 이 방법은:
부당한 조작(tampering)과 역공학(reverse-engineering)에 대응한 보호가 되어 있고, 영상 프레임들에서 100%보다 낮은 확률로 보이게 될 무작위 픽셀(PXi)들을 생성하도록 구성된 소프트웨어 컴포넌트(GC)를, 보안 프로세서(ASRV, SE)로부터 사용자 단말에 의해 수신하는 단계; 복수의 영상 프레임을 생성하도록 사용자 단말에 의해 상기 소프트웨어 컴포넌트를 여러 번 실행하는 단계; 프레임 디스플레이 속도로 복수의 영상 프레임들을 표시하는 단계로서, 상기 영상 프레임들은 무작위 픽셀들로 형성되어 기계가 인지할 수 없는 정보(KYL, CC)를 포함하고, 상기 프레임 디스플레이 속도는 사용자가 정보를 인지할 수 있는 정도인, 상기 표시 단계; 상기 정보와 관련하여 사용자로부터 응답(POSi)을 획득하는 단계; 및 상기 응답을 사용자 단말에 의해 보안 프로세서로 전송하는 단계;를 포함하며, 상기 응답이 상기 정보에 대응할 때 사용자가 인증된다.

Description

비-보안 단말에 의해 사용자를 인증하는 방법{METHOD FOR AUTHENTICATING A USER BY MEANS OF A NON-SECURE TERMINAL}
본 발명은 비보안 단말로부터 사용자를 안전하게 인증하고 그러한 비보안 단말 및 원격 서버를 수반하는 보안 트랜잭션을 상기 사용자 인증에 기반하여 실행하기 위한 방법 및 장치에 관한 것이다.
스마트폰, 개인용 컴퓨터, 디지털 태블릿 등과 같은 이동 단말 또는 사물 인터넷(IoT)에 속한 장치를 포함하는 기타 연결된 장치로부터 개시된 트랜잭션(예를 들어, 전자 상거래 트랜잭션 또는 자금 이체)를 실행하는 것이 바람직할 것이다. 그러나, 이는 특히 "악성 소프트웨어" 또는 "맬웨어"가 해당 단말의 프로세서(CPU)에 의해서 실행될 수 있기 때문에 보안 문제를 야기한다. 맬웨어는 메인 프로세서가 액세스할 수 있는 메모리들의 전부 또는 일부에 액세스할 수 있으므로, 해당 단말에서 실행되는 모든 트랜잭션을 감시하고 네트워크를 통해 전송되도록 이러한 트랜잭션들 동안에 조작되는 모든 비밀 데이터를 복구하도록 악의적으로 구성될 수 있다 .
이러한 트랜잭션의 보안을 보장하기 위해, UICC(Universal Integrated Circuit Card) 카드의 프로세서, 예를 들어, 일반적으로 휴대 전화가 장착하고 있는 SIM(가입자 식별 모듈) 카드의 프로세서와 같은 전용 보안 요소에 암호화 컴퓨팅을 위임하는 것이 이미 제안되어있다. 하나 이상의 결제 애플리케이션을 실행할 수 있으려면, 보안 프로세서가 이러한 결제 애플리케이션과 동일한 수의 비밀 암호 키를 저장할 수 있어야 한다. 그러나 보안 프로세서의 메모리에 애플리케이션을 로딩하는 연산은 매우 안전해야 하는 복잡한 연산이다. 특히, TSM(Trusted Service Manager)와 같은 외부 관리자가 개입될 수 있다. SIM 카드는 휴대 전화 사업자가 발행하므로, 후자는 그러한 애플리케이션을 상기 SIM 카드에 설치하는 것을 거부할 수 있다. 또한, 전화의 도난 또는 전화 유지 관리 중에, SIM 카드의 프로세서는 그의 메모리에 저장된 비밀 키를 발견하고자 하는 해커에 의해 해킹될 수 있다.
본 출원인에 의해 출원된 특허 출원 WO2012/107698은 트랜잭션을 수행하기 위한 보안 요소로서 단말의 그래픽 프로세서를 사용하는 방법을 개시한다. 이 방법은 단말의 그래픽 프로세서와 인증 서버 사이의 보안 통신 링크를 확립하고 키들이 랜덤하게 배열된 가상 키패드를 디스플레이하는 단계를 포함한다. 키패드의 이미지는 시각적인 암호화를 사용하여, 키의 기호들이 이해될 수 없는 상보적인 프레임들을 연속적으로 디스플레이함으로써 디스플레이되며, 이러한 상보적인 프레임들은 사용자의 망막의 잔상 덕분에 사용자의 시각 시스템에 의해 이해 가능한 이미지로 결합된다. 이러한 방식으로, 단말의 메인 프로세서상에서 실행되는 악의적인 프로그램이 비밀 코드의 입력 중에 사용자에 의해 터치된 키의 위치에 액세스할 수 있는 경우에도, 일련의 스크린 샷을 찍음으로써, 어떠한 기호들이 터치된 키들에 대응하는지를 결정할 수 없다.
그러나, 이러한 방법을 사용하려면 시장에 나와있는 모든 기존 스마트폰과 같은 모든 휴대용 장치에서 가용하지 못한 상당한 컴퓨팅 자원들이 필요하다.
웹 사이트에 연결된 단말을 사용하여 수행된 트랜잭션을 보호하기 위해, 트랜잭션의 유효성을 검사해야 할 때마다 사용자에게 전송되는 일회용 비밀 코드를 사용하는 것이 제안되었다. 제 1 방식에 따르면, 이러한 일회용 비밀 코드는, 별개의 통신 채널을 통해, 예를 들어, 전화 링크 또는 SMS(Short Message Service)를 통해 사용자에게 전송되며, 사용자는 수신된 비밀 코드를 단말에 입력하여 해당 트랜잭션의 유효성을 검사해야 한다. 다른 공지된 방식은 패스워드 또는 바이오 메트릭 데이터와 같은 인증사항에 의한 사용자의 인증 후에 단일 사용 비밀 코드를 생성하는, 추가적인 하드웨어 장치를 사용자들 각각에 제공한다. 이러한 방식에는 트랜잭션의 유효성을 검사해야 할 때 사용자가 항상 전화 또는 모바일 또는 무선 네트워크 커버리지를 근처에 가져야 하거나 또는 상기 하드웨어 장치를 가져야 한다는 부담이 있다. 이러한 추가 하드웨어 장치가 필요한 방식은 은행 기관에도 비용이 들게 한다. 또한, SMS로 전송된 비밀 코드를 사용하는 방식은 이러한 비밀 코드가 항시적으로 성공적인 공격을 받았기 때문에 충분한 보안 수준을 제공하지 못한다.
그러므로, 비보안 사용자 단말에 의해서 사용자를 인증하기 위한 방법을 제안하는 것이 바람직할 수 있다. 또한, 사용자에 의해 입력되는 비밀 데이터 및 이러한 비보안 단말을 통해 전달되는 트랜잭션 데이터를 보호하는 것이 바람직할 수 있다. 또한, 본 제안된 방법을 낮은 컴퓨팅 능력을 가진 단말들을 포함하여 모든 기존 단말들과 양립되도록 하는 것이 바람직할 수 있다.
사용자 단말로부터 사용자를 인증하기 위한 방법이 개시되며, 상기 방법은 사용자 단말이 보안 프로세서로부터 소프트웨어 컴포넌트를 수신하는 단계로서, 상기 소프트웨어 컴포넌트는 탬퍼링(tampering) 및 리버스 엔지니어링(reverse-engineering)으로부터 보호되고 이미지 프레임에서 가시적이 될 확률이 100 %보다 작은 랜덤 픽셀들을 포함하는 상기 이미지 프레임을 생성하도록 구성되는, 상기 수신하는 단계; 상기 사용자 단말이 상기 소프트웨어 컴포넌트를 복수 회 실행하여 복수의 이미지 프레임을 생성하는 단계; 상기 사용자 단말이 상기 복수의 이미지 프레임을 프레임 디스플레이 레이트로 디스플레이하는 단계로서, 상기 이미지 프레임들은 상기 랜덤 픽셀들로 형성되어 머신이 인식할 수 없는 머신 인식 불가 정보를 포함하고, 상기 머신 인식 불가 정보는 사용자에 의해서는 인식될 수 있는, 상기 디스플레이하는 단계; 상기 머신 인식 불가 정보에 대하여 상기 사용자로부터 응답 데이터를 획득하는 단계; 및 상기 사용자 단말이 상기 응답 데이터를 상기 보안 프로세서에 전송하는 단계를 포함하며, 상기 응답 데이터가 상기 머신 인식 불가 정보에 대응할 때 상기 사용자가 인증되는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 소프트웨어 컴포넌트는 복수의 프레임 이미지 부분들을 생성하도록 구성되며, 각각의 프레임 이미지 부분은 상기 랜덤 픽셀들을 포함하며, 상기 방법은 상기 생성된 이미지 프레임 부분들 각각을 이미지 프레임 배경에 삽입하여 상기 복수의 이미지 프레임 각각을 생성하는 단계를 더 포함하는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 소프트웨어 컴포넌트는 상기 랜덤 픽셀들을 포함하는 암호화된 프레임 이미지 부분들을 생성하도록 구성되며, 상기 방법은, 상기 사용자 단말이 상기 생성된 암호화된 이미지 프레임 부분들 각각의 각 픽셀에 암호해독 마스크의 대응하는 픽셀과의 XOR 연산을 적용함으로써, 상기 생성된 암호화된 이미지 프레임 부분들 각각을 암호해독하는 단계; 및 상기 암호해독된 이미지 프레임 부분들 각각을 이미지 프레임 배경에 삽입하여 상기 복수의 이미지 프레임들 각각을 생성하는 단계를 더 포함하는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 암호해독 마스크는 상기 생성된 암호화된 이미지 프레임 부분들 각각을 암호해독할 때 상기 디스플레이된 이미지 프레임들에서 메시지를 생성하도록 구성되는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 디스플레이된 이미지 프레임들 내의 머신 인식 불가 정보는 기호, 또는 숫자, 또는 문자 및 숫자를 형성하도록 구성된 세그먼트들을 포함하고, 상기 세그먼트들의 적어도 일부는 상기 랜덤 픽셀들로 형성되는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 세그먼트들은 키패드의 키들의 기호들(labels)을 형성하도록 구성되며, 상기 키 기호들은 랜덤 키 레이아웃을 가지며, 상기 사용자로부터의 응답 데이터는 상기 사용자에 의해 연속적으로 선택된 키패드의 키들의 위치들을 포함하는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 사용자로부터의 응답 데이터는 상기 랜덤 픽셀들로 형성된 세그먼트들을 사용하여 디스플레이된 검증 코드에 대응하는 상기 키패드의 키들의 위치들을 포함하는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 소프트웨어 컴포넌트는 상기 랜덤 픽셀들이 상기 디스플레이된 이미지 프레임들에서 가시화될 확률을 설정하도록 구성되며, 상기 가시화될 확률은 가시화 확률 값들의 세트로부터 선택되는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 소프트웨어 컴포넌트는 상기 랜덤 픽셀들이 상기 디스플레이된 이미지 프레임들에서 가시적으로 될 확률이 50 % 값 또는 12.5 % 내지 82.5 %의 값으로 설정되게 상기 랜덤 픽셀들을 제공하도록 구성되는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 소프트웨어 컴포넌트는 회로 입력부들, 회로 출력부들, 논리 게이트들 및 와이어들(wires)을 포함하는 가블드 회로(garbled circuit)로서 인코딩되며, 각각의 논리 게이트는 2 개의 입력부들 및 1 개의 출력부를 가지며, 각각의 와이어는 상기 회로 입력부들 중 하나 또는 상기 논리 게이트들의 출력부들 중 하나에 접속된 제 1 단부, 및 상기 논리 게이트들의 입력부들 중 하나 또는 상기 회로 출력부들 중 하나에 접속된 제 2 단부를 가지며, 상기 가블드 회로는 상기 와이어들 각각의 각 이진 상태에 대한 유효 데이터를 선택하고, 상기 가블드 회로의 일 논리 게이트에 대해, 해당 논리 게이트의 각 입력부의 각 유효 데이터, 해당 논리 게이트의 출력부의 각 유효 데이터, 및 해당 논리 게이트에 의해 수행된 논리 연산의 함수로서 진리 테이블 값들을 컴퓨팅함으로써 생성되는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 소프트웨어 컴포넌트는 상기 랜덤 픽셀들의 세트를 생성하기 위한 픽셀 세트 생성 회로를 포함하고, 상기 픽셀 세트 생성 회로 각각은, 제 1 논리 게이트 및 제 2 논리 게이트들의 세트를 포함하고, 상기 제 1 논리 게이트는 랜덤하게 선택된 제 2 입력 데이터에 제 1 입력 데이터를 결합하여 출력 데이터를 상기 제 2 논리 게이트들 각각의 제 1 입력부에 제공하며, 상기 제 2 논리 게이트들 각각의 제 2 입력부는 제 3 입력 데이터를 수신하고, 상기 제 2 논리 게이트들의 출력부들 각각은 상기 랜덤 픽셀들의 세트의 픽셀 값들을 제공하는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 소프트웨어 컴포넌트는 상기 사용자 단말에 의해 실행되는 웹 브라우저 내에서 실행되는 것을 특징으로 한다.
실시형태들은 또한 사용자 단말에 관한 것이며, 상기 사용자 단말은 보안 프로세서로부터 소프트웨어 컴포넌트를 수신하도록 구성되며, 상기 소프트웨어 컴포넌트는 탬퍼링 및 리버스 엔지니어링으로부터 보호되고 이미지 프레임에서 가시적이 될 확률이 100 %보다 작은 랜덤 픽셀들을 포함하는 상기 이미지 프레임을 생성하도록 구성되며, 상기 사용자 단말은 상기 소프트웨어 컴포넌트를 복수 회 실행하여 복수의 이미지 프레임을 생성하도록 구성되며, 상기 사용자 단말은 상기 복수의 이미지 프레임을 프레임 디스플레이 레이트로 디스플레이하도록 구성되며, 상기 이미지 프레임들은 상기 랜덤 픽셀들로 형성되어 머신이 인식할 수 없는 머신 인식 불가 정보를 포함하고, 상기 머신 인식 불가 정보는 사용자에 의해서는 인식될 수 있으며, 상기 사용자 단말은 상기 머신 인식 불가 정보에 대하여 상기 사용자로부터 응답 데이터를 획득하도록 구성되며, 상기 사용자 단말은 상기 응답 데이터를 상기 보안 프로세서에 전송하도록 구성되며, 상기 응답 데이터가 상기 머신 인식 불가 정보에 대응할 때 상기 사용자가 인증되는 것을 특징으로 한다.
일 실시형태에 따라서, 상기 사용자 단말은 전술한 방법에서 사용자 단말에 의해 수행되는 단계들을 실행하도록 구성된 것을 특징으로 한다.
일 실시형태에 따라서, 상기 보안 프로세서는 상기 사용자 단말의 메인 프로세서에 연결된 보안 요소인 것을 특징으로 한다.
일 실시형태에 따라서, 상기 보안 프로세서는 데이터 전송 네트워크를 통해 상기 사용자 단말에 연결된 원격 인증 서버에 속하는 것을 특징으로 한다.
실시형태들은 또한 전술한 방법에서 보안 프로세서에 의해 수행되는 단계들을 실행하도록 구성된 보안 요소에 관한 것이며, 상기 보안 요소는 상기 사용자 단말의 메인 프로세서에 접속되는 것을 특징으로 한다.
실시형태들은 또한 전술한 방법에서 보안 프로세서에 의해 수행되는 단계들을 실행하도록 구성된 인증 서버에 관한 것이며, 상기 인증 서버는 데이터 전송 네트워크를 통해 상기 사용자 단말에 링크되는 것을 특징으로 한다.
실시형태들은 또한 컴퓨터 메모리 내에 로딩 가능한 컴퓨터 프로그램 제품에 관한 것이며, 이 제품은, 컴퓨터에 의해 실행될 때, 전술한 사용자 단말에 의해 수행되는 단계들을 수행하도록 상기 컴퓨터를 구성하는 프로그램 코드들을 포함하는 것을 특징으로 한다.
방법 및/또는 장치가 다음의 도면들 및 설명을 참조하여 더 잘 이해될 수 있다. 비제한적이면서 비포괄적인 설명은 다음 도면들과 함께 설명된다.
도 1은 원격 서버들과 트랜잭션을 수행하는 사용자 단말들의 블록도이다.
도 2는 사용자 단말의 블록도이다.
도 3은 일 실시예에 따른, 사용자 단말, 인증 서버 및 애플리케이션 서버에 의해 수행되는 초기화 단계들의 순차도이다.
도 4는 일 실시예에 따른 인증 단계들을 나타내는 순차도이다.
도 5는 일 실시예에 따른, 인증 서버에 의해 관리되는 데이터베이스의 블록도이다.
도 6 및 도 7은 다른 실시예들에 따른, 인증 단계들을 도시하는 순차도들이다.
도 8a 및 도 8b는 일 실시예에 따른, 각각 사용자 단말에 의해 디스플레이되는 이미지 프레임 및 사용자 단말의 사용자에 의해 관찰될 수 있는 대응하는 결과 이미지를 도시한다.
도 9는 일 실시예에 따른, 사용자 단말에 의해 중첩되어 디스플레이되는 이미지 프레임의 부분, 사용자 단말에 의해 디스플레이되는 결과적인 이미지 프레임의 대응하는 부분, 및 사용자 단말의 사용자에 의해 관찰될 수 있는 결과 이미지의 대응하는 부분에 대한 2 개의 층들을 예시한다.
도 10은 일 실시예에 따른, 사용자 단말에 의해 실행되는 애플리케이션의 블록도이다.
도 11은 일 실시예에 따른, 사용자 단말의 소프트웨어에 의해 구현된 회로의 블록도이다.
도 12는 일 실시예에 따른, 사용자 단말에서 구현되는 회로를 기술하는 데이터베이스의 블록도이다.
도 13은 일 실시예에 따른, 도 8a의 이미지 프레임을 디스플레이하기 위해 애플리케이션 프로그램에 의해 수행되는 프로세싱을 나타내는 블록도이다.
도 14는 다른 실시예에 따른, 도 11의 회로의 일부의 블록도이다.
도 15는 다른 실시예에 따른 인증 단계들을 도시한 순차도이다.
도면들에서, 달리 언급하지 않는 한, 동일한 참조 부호들은 상이한 도면 전체에서 동일한 부분들을 나타낼 수 있다.
다음에서, 용어 "보안"은 당업자에게 그 보통의 의미에 따라 사용되며, 상이한 실시예들에서, 암호화와 같은 기법 또는 정보를 공중으로부터 보호하거나 정보를 권한이 없는 액세스 또는 동작으로부터 보호하는데 사용되는 다른 유형의 소프트웨어 또는 하드웨어 제어 기법으로부터 기인되는 보안을 포함한다. "보안 통신" 및 "보안 통신 링크"라는 표현은 공개/개인 키 쌍을 사용하거나 또는 통신 지점들 간에 공유되는 키들과 함께 대칭 키 암호화를 사용하여 암호화된 통신을 의미한다. "보안형 통신"은 가상 사설망 및 통신 지점들 간에 인증되고 암호화된 통신을 설정하는 데 사용되는 다른 방법과 기법들을 수반할 수도 있다.
도 1은 통신 네트워크(NT)를 통해 원격 서비스 제공자 서버들 또는 애플리케이션 서버들(SSRV)과 트랜잭션을 수행할 수 있는 사용자 단말들(UT)을 도시한다. 다음에서 "사용자 단말"은 동의어들이며 애플리케이션 서버 및 서비스 공급자 서버와 같은 하나 이상의 원격 서버와 통신할 수 있는 모든 장치를 나타낸다. 따라서, 사용자 단말은 예를 들어, 통신 회로들을 구비한, 휴대 전화, 스마트폰, 지불 단말, 개인용 컴퓨터, 및 디지털 태블릿일 수 있다. 통신 네트워크는 IP(인터넷 프로토콜) 네트워크, 예를 들어, 인터넷, 모바일 또는 셀룰러 네트워크, 무선 네트워크, 및 사용자 단말과 원격 서버 간의 통신 링크를 확립하는데 사용될 수 있는 임의의 종류의 네트워크를 포함할 수 있다.
일 실시예에 따르면, 인증 서버(ASRV)는 2-인자 인증 방식에 기초하여, 애플리케이션 또는 서비스 제공자 서버(SSRV) 및 사용자 단말(UT)을 수반하는 트랜잭션 동안 사용자를 인증하는 방법을 구현하도록 구성된다.
도 2는 네트워크(NT)와 같은 전송 네트워크를 통해 인증 서버(ASRV)와 같은 원격 서버와 통신하기 위한 통신 회로(NIT)를 포함하는 종래의 사용자 단말(UT)을 도시한다. 사용자 단말(UT)은 셀룰러 폰, 스마트폰 또는 PDA(Personal Digital Assistant) 또는 인터넷 네트워크와 같은 네트워크에 접속되는 통신 회로들을 포함하는 디지털 태블릿 또는 퍼스널 컴퓨터와 같은 임의의 다른 장치 일 수 있다. 사용자 단말(UT)은 통신 회로(NIT)에 접속되어 이를 제어하는 메인 프로세서(HP)(또한, 중앙 처리 장치(CPU로 지칭됨), 디스플레이 스크린(DSP), 상기 메인 프로세서(HP)에 접속되고 상기 디스플레이 스크린(DSP)을 제어하는 그래픽 프로세서(GP), 및 상기 메인 프로세서(HP)에 연결된 제어 장치(CM)를 포함한다. 상기 제어 장치는 키보드 또는 키패드, 또는 터치 감지 표면을 포함할 수 있으며, 이러한 터치 감지 표면은 디스플레이 스크린(DSP) 상에 배치되며 투명하다. 제어 장치(CM)는 마우스, 펜슬 또는 펜과 같은 포인팅 장치를 더 포함할 수 있다.
사용자 단말(UT)은 스마트 카드(UICC) 내에 내장되거나 독립형이 될 수 있는 보안 프로세서와 같은 보안 요소(SE)를 더 포함할 수 있다. 보안 프로세서(SE)는 예를 들어, 셀룰러 네트워크로의 액세스를 제공하는 SIM("가입자 식별 모듈") 카드일 수 있다. 보안 프로세서(SE)는 비접촉식 판독기와 통신하기 위한 NFC(Near Field Communication) 회로를 포함할 수 있다. NFC 회로는 SIM 카드(SIM-NFC) 또는 UICC 또는 SoC(System on Chip) 회로 또는 "SD 카드"와 같은 외부 메모리 카드에 내장될 수 있다. 통신 회로(NIT)는 셀룰러 네트워크로의 액세스 및/또는 셀룰러 네트워크를 통한 인터넷 네트워크로의 액세스를 제공하는 이동 전화통신 회로, 및/또는 무선 통신 회로(Wi-Fi, 블루투스(Bluetooth),...), 및/또는 인터넷과 같은 데이터 전송 네트워크에 링크될 수 있는 임의의 다른 유선 또는 무선 연결 회로를 포함할 수 있다.
도 3은 트랜잭션의 유효성을 검증하기 위해 또는 해당 서비스에 액세스하기 위해서, 사용자를 인증하는데 사용될 사용자 단말(UT)을 등록하기 위해 제공된 등록 단계들 S1 내지 S8을 도시한다. 단계 S1 내지 단계 S8은 연속적으로 수행되며, 한 번만 실행될 수 있다. 단계 S1에서, 사용자는 인증을 위해서 사용될, 사용자 단말(UT)에서의 사용자 인증에 전용되거나 이에 관여하는 애플리케이션(APP)을 다운로드, 및 설치하고/하거나 이의 실행을 개시한다. 단계 S2에서, 애플리케이션(APP)은 사용자 단말(UT)의 고유한 장치 식별자(DID)를 생성한다. 단계 S2 내지 단계 S7은 사용자 단말(UT)에 의한 애플리케이션(APP)의 첫 번째 실행 시에 수행된다. 단계 S3에서, 애플리케이션(APP)은 사용자 단말(UT)을 서비스 제공자 또는 애플리케이션 서버(SSRV), 예를 들어, 서비스 제공자의 웹 사이트에 접속시키고, 단말 등록 요청(ERQ)을 서비스 제공자 또는 애플리케이션 서버(SSRV)에 전송한다. 이러한 단말 등록 요청은 사용자 식별자(user identifier)(UID) 및 이에 대응하는 패스워드(UPW)와 같은 사용자 인증 정보 및 장치 식별자(DID)를 포함한다. 단계 S4에서, 서비스 제공자 또는 애플리케이션 서버(SSRV)는 단말 등록 요청(ERQ)을 수신하고 상기 수신된 사용자 인증 정보(UID, UPW)를 체크한다. 수신된 사용자 인증 정보가 유효한 등록된 사용자에 대응하는 경우, 서비스 제공자 또는 애플리케이션 서버(SSRV)는 단계 S5에서, 사용자 인증 정보(UID, UPW), 장치 식별자(DID) 및 서비스 제공자 서버(SSRV)와 관련된 서비스 식별자(SID)를 포함하는 등록 요청(RGRQ)을 인증 서버(ASRV)로 전송한다. 상기 서비스 제공자 또는 애플리케이션 서버(SSRV)와 상기 인증 서버(ASRV) 간의 통신 링크는, 해커가 전송된 데이터를 검색할 수 없도록, (예를 들어, 암호화 수단을 사용하여), 적절한 방식으로 보안 처리된다. 인증 서버(ASRV)에 의해 수행되는 다음 단계들 S6 및 S7은 인증 서버(ASRV)의 보안 프로세서에 의해서 수행되거나 또는 그의 보안 도메인 내에서 실행된다. 사용자 단말(UT)과 상기 서비스 제공자 또는 애플리케이션 서버(SSRV) 간의 링크 및 사용자 단말(UT)과 인증 서버(ASRV) 간의 통신은 보안 링크일 필요는 없다.
단계 S6에서, 인증 서버(ASRV)는 등록 요청(RGRQ)을 수신하고, 수신된 데이터, 즉, 사용자 인증 정보(UID, UPW), 사용자 단말의 식별자(DID) 및 서비스 식별자(SID)를 사용자 데이터베이스(UDB)에 저장한다. 단계 S7에서, 인증 서버(ASRV)는 상기 등록 요청(RGRQ)에 응답하여 메시지(RP)를 서비스 제공자 서버(SSRV)에 전송한다. 상기 메시지(RP)에는 사용자 식별자(UID)와 등록 상태가 포함되어 있다. 상기 메시지(RP)는 서비스 제공자 서버(SSRV)에 의해 사용자 단말(UT)로 재전송될 수 있다.
도 4는 애플리케이션(APP)에 의해 수행된 트랜잭션 동안 사용자를 인증하기 위해서 또는 사용자의 인증을 요구하는, 이러한 애플리케이션의 동작을 실행하기 위해서 연속적으로 수행되는 인증 단계들 S21 내지 S33을 도시한다. 사용자 인증을 위해서, 사용자 단말(UT)은 예를 들어, 도 3의 단계들 S1 내지 S6을 실행함으로써, 인증 서버(ASRV)에 의해 등록될 필요가 있다. 단계 S21에서, 사용자 단말(UT)은 애플리케이션(APP)의 실행을 개시한다. 단계 S22에서, 애플리케이션(APP)은 사용자를 인증할 필요가 있으며 인증 요청(ARQ)을 인증 서버(ASRV)에 전송한다. 인증 요청(ARQ)은 서비스 식별자(SID), 트랜잭션과 관련된 사용자의 인증 정보(UID, UPW), 인증이 수행되어 하는 서비스 제공자 식별자(SID), 및 선택사양적으로, 사용자에게 디스플레이되고 사용자에 의해 검증될 트랜잭션과 관련된 정보를 제공하는 메시지(MSG)(도 8a, 도 8b 및 도 9 참조) 및 인증 결과가 인증 서버(ASRV)에 의해 전송되어야 하는 서비스 제공자 서버의 어드레스(SURL)를 포함할 수 있다.
단계 S23에서, 인증 서버(ASRV)는 인증 요청(ARQ)을 수신하고 인증 요청(ARQ) 내에 포함되어 송신된 데이터의 일치성을 검사한다. 이를 위해, 인증 서버 (ASRV)는 사용자 데이터베이스(UDB)에 저장된 데이터를 사용하거나, 사용자 인증 정보(UID, UPW)를 포함하는 인증 요청 메시지를 서비스 제공자 서버(SSRV)에 전송하고, 서비스 제공자 서버(SSRV)는 사용자 인증 정보의 일치성을 검증하고 검증 결과를 포함하는 응답 정보를 인증 서버(ASRV)로 전송한다. 전송된 데이터가 일치하지 않으면, 인증 서버(ASRV)는 에러 메시지(ERM)를 사용자 단말(UT)로 전송하고 애플리케이션(APP)의 실행이 종료된다. 수신된 인증 요청(ARQ) 내에 포함된 데이터가 일치하는 경우, 인증 서버(ASRV)는 단계 S24를 수행하며, 이 단계에서, 인증 서버는 바람직하게는, 일회용의 트랜잭션 검증 코드(transaction validation code)(CC) 및 장치 식별자(DID)에 대응하는 사용자 단말(UT)에 특정된 개별 전용 소프트웨어 컴포넌트(GC)를 생성한다. 이러한 소프트웨어 컴포넌트(GC)는 트랜잭션 검증 코드(CC)를 디스플레이하도록 설계되며 이로써 해당 소프트웨어 컴포넌트는 이러한 트랜잭션 검증 코드에만 특정된다. 인증 서버(ASRV)는 사용자 데이터베이스(UDB) 내에 저장된 고유 트랜잭션 식별자(TID)를 또한 생성할 수 있다. 단계 S25에서, 인증 서버(ASRV)는 구조 및 콘텐츠 데이터(GCD)를 사용자 단말(UT)에 전송하며, 상기 구조 및 콘텐츠 데이터(GCD)는 상기 소프트웨어 컴포넌트(GC)를 규정하고, 암호화된 형태로 된 소프트웨어 컴포넌트의 입력 데이터, 소프트웨어 컴포넌트 회로에 의해 생성된 이미지 프레임 부분들에 적용될 최종 마스크(IMSK), 및 상기 소프트웨어 컴포넌트를 실행하는데 사용되는 암호 데이터(GCK)를 포함한다. 단계 S26에서, 인증 서버(ASRV)는 사용자 식별자(UID) 및 트랜잭션 식별자(TID)를 포함하는 확인 응답 메시지(ACK)를 서비스 제공자 서버(SSRV)에 전송한다. 단계 S27에서, 사용자 단말(UT)에 의해 실행되는 애플리케이션(APP)은 단계 S25에서 송신된, 소프트웨어 컴포넌트(GC)에 관한 데이터들(GCD, IMSK, GCK)을 수신하고, 인증 서버(ASRV)에 확인 응답 메시지(AKM)를 전송한다. 애플리케이션(APP)이 현재 사용자 단말(UT) 상에서 실행되지 않는 경우, 소프트웨어 컴포넌트와 관련된 데이터의 수신은 해당 애플리케이션(APP)의 실행을 트리거할 수 있다. 단계 S26에서, 사용자 단말(UT)은 단계 S25에서 수신된 데이터에 응답하여, 확인 응답 메시지(AKM)을 인증 서버(ASRV)에 전송한다. 단계 S27에서, 인증 서버(ASRV)는 소프트웨어 컴포넌트(GC)를 실행하도록 하는 실행 요청(RGC)을 사용자 단말(UT)에 전송한다. 단계 S28에서, 상기 실행 요청(RGC)의 수신은 소프트웨어 컴포넌트(GC)의 애플리케이션(APP)에 의한 실행을 트리거하며, 이로써 예를 들어, 키들을 갖는 키패드, 메시지(MSG) 및 두 개 이상의 디지트를 갖는, 일회용 트랜잭션 검증 코드(CC)를 보여주는 이미지 프레임들(image frames)을 디스플레이한다. 사용자 단말(UT)에 의해 실행되는 애플리케이션(APP)은 또한 단계 S25에서 소프트웨어 컴포넌트(GC)가 수신된 때에 해당 소프트웨어 컴포넌트(GC)의 실행을 트리거할 수 있다.
일 실시예에 따르면, 상기 소프트웨어 컴포넌트에 의해서 디스플레이되는 키패드의 키들은 디스플레이된 프레임들에서 랜덤하게 선택된 레이아웃으로 배열되고, 키들의 기호들(labels)의 일부 및 트랜잭션 검증 코드의 일부만이 각 프레임에서 디스플레이되고, 이로써, 키 기호들 및 트랜잭션 검증 코드는 인간 시각 시스템의 지속성으로 인해서 인간 시각 시스템에서 이해될 수 있으며, 디스플레이 스크린(DSP)에 대한 스크린 샷으로는 이해될 수 없다. 일 실시예에 따르면, 트랜잭션 검증 코드(CC)는 메시지(MSG) 상에 중첩되고(또는 그 반대로도 됨), 이로써, 트랜잭션 검증 디스플레이를 방해하지 않고서 메시지가 변경될 수 없다.
단계 S29에서, 사용자 단말(UT)의 사용자는 디스플레이된 트랜잭션 검증 코드(CC)를 입력한다. 스마트폰의 예에서, 사용자는 디스플레이된 키패드를 사용하고 디스플레이된 키패드의 키들의 대응하는 위치들(POSi)을 터치한다. 단계 S30에서, 애플리케이션(APP)은 장치 식별자(DID) 및 사용자에 의해 선택된 위치들(POSi)의 시퀀스를 인증 서버(ASRV)에 전송한다. 단계 S31에서, 인증 서버(ASRV)는 사용자에 의해 타이핑된 위치들(POSi)에 대응하는 코드(CC1) 및 패스워드(PC1)를 결정한다. 인증 서버(ASRV)에 의해 생성된 소프트웨어 컴포넌트(GC)에 의해 상기 위치들(POSi)을 입력하기 위해 사용된 키패드가 디스플레이되었기 때문에, 인증 서버(ASRV)는 디스플레이된 키패드 레이아웃을 알고, 따라서, 이러한 위치들(POSi)에 대응하는 키 기호들, 및 이로써, 사용자가 타이핑한 트랜잭션 검증 코드(CC1)의 값을 결정할 수 있다. 단계 S32에서, 인증 서버(ASRV)는 단계 S24에서 생성되어 장치 식별자(DID)와 연계되어 사용자 데이터베이스(UDB)에 저장된 트랜잭션 검증 코드(CC)와 상기 입력된 트랜잭션 검증 코드(CC1)를 서로 비교한다. 단계 S33에서, 인증 서버(ASRV)는 서비스 제공자 서버(SSRV)의 어드레스(SURL)를 사용하여, 서비스 제공자 서버(SSRV)에, 사용자 식별자(UID) 및 단계 S33에서 수행된 비교 결과를 포함하는 인증 응답 데이터(ARP)를 송신한다. 인증 응답 데이터(ARP)는 또한 사용자 단말(UT)에 의해서 실행된 애플리케이션(APP)에도 전송될 수 있다. 이러한 방식으로, 사용자 식별자(UID)에 대응하는 사용자는 인증되고, 타이핑된 트랜잭션 검증 코드(CC1)가 단계 S24에서 인증 서버(ASRV)에 의해 사용자 단말(UT)로 송신된 소프트웨어 컴포넌트(GC)에 대응하는 트랜잭션 검증 코드(CC)와 일치할 때만, 트랜잭션 식별자(TID)가 유효하게 될 수 있다.
이러한 방식으로, 사용자에 의해 타이핑된 위치들(POSi)만이 사용자 단말(UT)로부터 인증 서버(ASRV)로 송신된다. 따라서, 인증 서버(ASRV)와 사용자 단말(UT) 간의 중간자 공격 또는 사용자 단말(UT)에 설치된 악성 코드는 소프트웨어 컴포넌트(GC)를 실행하지 않고서는 상기 타이핑된 인증 코드(CC1)를 발견할 수 없다. 이러한 공격의 경우에는, 공격을 수행하는 해커는 (단계 S30에서와 같이) 인증 서버(ARRV)에 메시지(ARP)를 보내야한다. 따라서 인증 서버(ASRV)는 동일한 트랜잭션에 대한 또는 동일한 사용자 단말(UT)로부터의 2 개의 메시지들(ARP)을 수신할 수 있으며, 이러한 2 개의 메시지들 중 일 메시지(ARP)는 인증된 사용자로부터 유래하며, 다른 메시지는 해커로부터 유래된 것이며, 인증 서버(ASRV)는 해당 트랜잭션을 무효화할 수 있다.
일 실시예에 따르면, 메시지(ARP)는 다른 전송 채널에 의해 사용자에 의해 인증 서버(ASRV)로 전송된다(단계 30).
도 5는 데이터베이스(UDB)의 상이한 테이블들(DEV, SVC, TT, GCP)을 보여준다. 테이블(DEV)은 각각의 등록된 사용자 장치 또는 사용자 단말(UT)에 대한 하나의 기록정보를 포함하며, 각각의 기록정보는 장치 식별자(DID) 및 이에 대응하는 사용자 인증 정보(UID, UPW)를 포함한다. 테이블(SVC)은 인증 서버(ASRV)에 등록된 각 서비스 공급자에 대한 하나의 기록정보를 포함하며, 테이블(SVC)의 각 기록정보는 서비스 식별자(SID) 및 서비스 이름을 포함한다. 테이블(TT)은 각 현 트랜잭션에 대한 일 기록정보를 포함하며, 각 기록정보는 트랜잭션 식별자(TID), 장치 식별자(DID), 서비스 식별자(SID), 애플리케이션(APP)에 의해 트리거되고 장치 식별자(DID)를 갖는 사용자 단말에 의해 실행되는 소프트웨어 컴포넌트(GC)에 의해서 디스플레이될 메시지(MSG), 단계 22에서 제공된 어드레스(SURL), 트랜잭션 식별자(TID)에 대해 생성된 소프트웨어 컴포넌트를 식별하는 소프트웨어 컴포넌트 식별자(GCID), 및 일회용 트랜잭션 검증 코드(CC)를 포함한다. 테이블(GCP)은 인증 서버(ASRV)에 의해 생성된 각각의 소프트웨어 컴포넌트에 대한 하나의 기록정보를 포함하며, 각 기록정보는 해당 소프트웨어 컴포넌트(GC)를 식별하는 식별자(GCID), 단계 S24에서 소프트웨어 컴포넌트(GC)가 생성된 사용자 단말(UT)의 장치 식별자(DID), 및 해당 소프트웨어 컴포넌트가 생성된 트랜잭션의 식별자(TID)를 포함한다. 해당 소프트웨어 컴포넌트는 일 트랜잭션에 전용되며, 이로써, 오직 한 명의 사용자 인증을 위해서만 생성되고 실행되기 때문에, 이미 종료된 트랜잭션에 해당하는 기록정보는 테이블(GCP)로부터 삭제될 수 있으며, 하지만, 이들은 통계적 목적으로 유지되거나 각 트랜잭션의 유일성을 보장하기 위해서 유지될 수도 있다.
일 실시예에 따르면, (도 3 및 도 4에서) 인증 서버(ASRV)에 의해 수행되는 동작들은 서비스 제공자 서버(SSRV)에서 구현될 수 있다. 이러한 경우에, 서비스 제공자 서버(SSRV)는 단계들 S23 및 S33에서 그리고 데이터베이스(UDB) 내에서 식별될 필요가 없다.
다른 실시예에 따르면, 사용자 단말은 서비스 제공자 서버(SSRV)와만 통신한다. 따라서, 서비스 제공자 서버(SSRV)에 의해 사용자 인증 정보 체크(단계 S23)가 수행되며, 이로써, 인증 서버(ASRV)는 서비스 제공자 서버(SSRV)가 제공하는 서비스에 액세스하기 위해 사용되는 사용자 패스워드(UPW)를 알 필요가 없다. 도 6에 도시된 이러한 실시예에서, 단계 S5는 등록 요청 메시지(RGRQ)로부터 사용자 패스워드(UPW)를 제거하도록 수정된다. 도 6은 트랜잭션 동안 사용자를 인증하기 위해 연속적으로 수행되는 인증 단계들 S21 내지 S33을 나타낸다. 단계 S22에서, 인증 요청이 사용자 단말(UT)로부터 서비스 제공자 서버(SSRV)로 전송된다. 사용자 인증 정보(UID, UPW)에 기초한 사용자 인증 단계 S23는 서비스 제공자 서버(SSRV)에 의해 수행된다. 다음 단계 S23'에서, 서비스 제공자 서버(SSRV)는 인증 서버(ASRV)에 인증 요청(ARQ1)을 송신한다. 이러한 인증 요청(ARQ1)은 서비스 제공자의 식별자(SID)와 사용자 장차 식별자(DID)로만 구성된다. 인증 서버(ASRV)가 인증 요청(ARQ1)을 수신한 후, 인증 서버는 도 4의 실시예에서와 같이 단계 S24를 실행한다. 단계 S25에서, 인증 서버(ASRV)는 구조 및 콘텐츠 데이터(GCD)를 전송하며, 상기 구조 및 콘텐츠 데이터(GCD)는 소프트웨어 컴포넌트(GC)를 규정하고, 암호화된 형태로된 소프트웨어 컴포넌트의 입력 데이터, 소프트웨어 컴포넌트 회로에 의해 생성된 이미지 프레임 부분들에 적용될 최종 마스크(IMSK), 및 소프트웨어 컴포넌트를 실행하는데 사용되는 암호 데이터(GCK)를 포함한다. 이들 데이터는 사용자 단말(UT)에 직접 전송되거나, 서비스 제공자 서버(SSRV)에 의해 전송될 수 있으며, 후자의 경우에 서비스 제공자 서버(SSRV)는 단계 S25'에서 이러한 데이터들을 사용자 단말(UT)로 재전송한다. 그 다음에, 단계들 S26 및 S27이 사용자 단말(UT)과 인증 서버(ASRV) 간에서, 또는 도 6에 도시된 바와 같이, 사용자 단말(UT)과 서비스 제공자 서버(SSRV) 간에서 수행될 수 있다.
이어서, 사용자 단말(UT)은 단계들 S28 내지 S30을 수행한다. 사용자 단말(UT)에 의해 단계 S30에서 전송된 인증 응답 데이터(ARP)는 인증 서버(ASRV)에 직접 전송되거나, 도 6에 도시된 바와 같이, 서비스 제공자 서버(SSRV)에 의해 먼저 수신되고 이어서 인증 서버(ASRV)로 재전송될 수 있다. 인증 응답 데이터(ARP)를 수신하면, 인증 서버(ASRV)는 도 4에 도시된 바와 같이 단계들 S31 내지 S33을 수행한다. 인증 보고 데이터가 인증 서버(ASRV) 또는 서비스 제공자 서버(SSRV)에 의해 사용자 단말(UT)로 전송될 수 있다.
단계 S22, 단계 S26, 단계 S28 및 단계 S30는, 애플리케이션(APP)에 의해 수행되는 대신에, 사용자 단말(UT) 내에 설치된 웹 브라우저에 의해서 또는 웹 브라우저 내에서 수행될 수 있으며, 단계 S26, 단계 S28 및 단계 S30는 "JavaScript"로 작성되어 인증 서버(ASRV)에 의해 웹 페이지 내에 포함되어 전송되는 스크립트와 같은, 웹 브라우저에 의해 실행되는 스크립트에 의해 수행된다.
일 실시예는 해커가 은행 계좌 또는 지불 계좌 또는 이메일 계좌와 같은, 서비스 제공자를 갖는 사용자 계좌를 도용하는 피싱 공격을 방지하도록 구성될 수 있다. 이러한 공격에서는, 해커는 진정한 사용자 식별자를 사용하여 서비스 제공자에 접속하여 이러한 사용자 식별자에 대응하는 패스워드를 재생성하기 위한 링크를 반복적으로 활성화한다. 이러한 링크가 활성화되면, 서비스 제공자는 상기 사용자 식별자에 대응하는 등록된 이메일 주소 또는 등록된 전화 번호로, 해당 서비스 제공자의 웹 사이트의 웹 페이지 내로 입력될 일회용 비밀 번호를 포함하는 메시지를 전송한다. 그런 다음, 해커는 사용자의 계정이 공격을 받았고 따라서 사용자에게 해당 메시지 내에 제공된 클릭해야 할 링크를 활성화하도록 요청하는 가짜 메시지를 사용자에게 전송한다. 사용자는 새로운 패스워드를 생성할 수 있도록 하는 비밀 번호를 제공하는 다수의 메시지를 수신하였기 때문에, 해당 사용자는 해커가 알린 공격을 알고 있으며 따라서 사용자는 해커의 메시지가 함정이라고 의심하지 않는다. 사용자가 해당 링크를 활성화하면, 사용자는 서비스 제공자 웹 사이트로부터 진정한 웹 페이지와 비슷한 가짜 웹 페이지를 수신하며 이러한 가짜 웹 페이지는 사용자가 서비스 제공자로부터 수신한 마지막 메시지에 제공된 비밀 코드를 요청한다. 사용자가 가짜 웹 페이지에 상기 비밀 코드를 입력하면, 해커가 상기 비밀 코드를 가져와 이를 사용하여 서비스 제공자의 웹 사이트에서 사용자 계정에 대한 새 비밀 번호를 생성할 수 있다. 이때부터, 해커는 사용자 대신에, 서비스 제공자의 서버 상의 사용자 계정에 액세스할 수 있다.
도 7은 이러한 피싱 공격을 방지할 수 있는 실시예를 나타낸다. 도 7의 실시예는 사용자 단말(UT), 서비스 제공자 서버(SSRV) 및 인증 서버(ASRV)에 의해서 연속적으로 수행되는 단계들 S41 내지 S65를 포함한다. 단계 S41에서, 사용자 단말에 설치된 웹 브라우저는 서비스 제공자의 웹 사이트로부터의 웹 페이지를 디스플레이한다. 디스플레이된 웹 페이지에는, 사용자로 하여금 서비스 제공자 상의 사용자 계정에 액세스하기 위한 새로운 패스워드를 생성할 수 있게 하는 링크가 포함된다. 사용자가 이러한 링크를 활성화하면, 단계 S42에서 서비스 제공자 서버(SSRV)로 새로운 패스워드를 요청하는 메시지(NPWR)가 전송된다. 이러한 메시지(NPWR)는 단계들 S41 및 S42에서 사용자에 의해 사용된 단말(UT)의 장치 식별자 및 사용자 식별자(UID)를 포함한다. 서비스 제공자 서버(SSRV)가 단계 S43에서 메시지(NPWR)를 수신하면, 서비스 제공자 서버는 인증 서버(ASRV)에 인증 요청(ARQ)을 송신한다. 이러한 인증 요청(ARQ)은 서비스 제공자의 식별자(SID), 및 사용자의 식별자(UID)(예를 들어, 해당 사용자의 전자 메일 주소)를 포함한다. 단계 S44에서, 인증 서버(ARSV)는 상기 인증 요청(ARQ)을 수신하고 트랜잭션 식별자(TID) 및 인증을 요청하는 링크(LNK)를 생성한다. 상기 트랜잭션 식별자(TID)는 현 사용자 인증 트랜잭션을 식별한다. 단계 S45에서, 트랜잭션 식별자(TID), 사용자 식별자(UID) 및 링크 (LNK)를 포함하는 확인 응답 메시지(AK)가 인증 서버(ASRV)에 의해 서비스 제공자 서버(SSRV)로 전송된다. 단계 S46에서, 서비스 제공자 서버(SSRV)는 단계 S42에서 사용자 단말(UT)에 의해 송신될 수 있는 사용자의 이메일 주소를 사용하여, 상기 링크(LNK) 및 트랜잭션 식별자(TID)를 포함하는 메시지((M)(LNK))를 사용자 단말(UT)에 전송한다.
단계 S47에서, 사용자 단말(UT)(사용자 단말에 설치된 이메일 애플리케이션 또는 웹 브라우저)는 수신된 메시지(M(LNK))을 디스플레이한다. 그런 다음, 사용자는 단계 S47'에서 상기 디스플레이된 메시지 내의 해당 링크(LNK)를 활성화시킨다. 단계 S48에서, 해당 링크(LNK)의 활성화는 트랜잭션 식별자(TID)를 포함하는 메시지를 인증 서버(ASRV)로 사용자 단말에 의해서 송신하는 것을 트리거링한다. 단계 S49에서 인증 서버가 이러한 메시지를 수신하면, 인증 서버(ASRV)는 예를 들면, 사용자 단말(UT)에 설치된 웹 브라우저에 의해 실행될 언어 "JavaScript"로 작성된 스크립트(SCPT)를 사용자 단말에 송신한다. 단계들 S50, S51, S54, S56, S62 및 S64는 사용자 단말에 설치된 웹 브라우저에 의해서 또는 웹 브라우저 내에서 (또는 이러한 웹 브라우저에서 실행되는 스크립트(SCPT)에 의해서) 수행된다. 단계 S50에서, 사용자 단말(UT)에 설치된 웹 브라우저는 수신된 스크립트(SCPT)의 실행을 시작한다. 단계 S51에서, 스크립트(SCPT)에 의해 제어되는 사용자 단말(UT)은 사용자 단말(UT)에 특정된 전용 소프트웨어 컴포넌트(GC)에 대한 요청(RQGC)을 전송한다. 이러한 요청(RQGC)은 상기 식별자들(TID 및 UID), 및 해당 사용자 단말(UT)의 유형(개인용 컴퓨터/스마트폰/디지털 태블릿/...)과 같은 사용자 단말에 관한 정보를 포함한다. 단계 S52에서, 인증 서버(ASRV)는 상기 소프트웨어 컴포넌트 요청(RQGC)을 수신하고, 전술한 단계 S24에서와 같이, 바람직하게는 일회용 인증 코드(CC) 및 사용자 단말(UT) 및 해당 소프트웨어 컴포넌트를 요청하는 애플리케이션(전용 애플리케이션 또는 웹 브라우저)에 특정된 개별 전용 소프트웨어 컴포넌트(GC)를 생성한다. 단계 S53에서, 인증 서버(ASRV)는 구조 및 콘텐츠 데이터(GCD)를 사용자 단말(UT)에 전송하고, 상기 구조 및 콘텐츠 데이터(GCD)는 소프트웨어 컴포넌트(GC)를 규정하고, 암호화된 형태로 된 소프트웨어 컴포넌트의 입력 데이터, 소프트웨어 컴포넌트 회로에 의해 생성된 이미지 프레임 부분들에 적용될 최종 마스크(IMSK) 및 소프트웨어 컴포넌트를 실행하는데 사용되는 암호 데이터(GCK)를 포함한다.
단계 S54에서, 사용자 단말(UT) 내에 설치된 웹 브라우저에 의해 실행된 스크립트(SCPT)는 단계 S53에서 전송된 소프트웨어 컴포넌트(GC)와 관련된 데이터들 (GCD, IMSK, GCK)을 수신한다. 사용자 단말(UT)은 단계 S53에서 수신된 데이터들에 응답하여 확인 응답 메시지를 인증 서버(ASRV)에 전송할 수 있다. 그 다음, 상기 스크립트(SCPT)는 소프트웨어 컴포넌트(GC)를 실행하며, 이러한 실행은 예를 들어, 키들을 갖는 키패드 및 예를 들어, 둘 이상의 디지트를 갖는 일회용 인증 코드(CC)를 나타내는 이미지 프레임들을 디스플레이한다. 단계 S55에서, 사용자 단말(UT)의 사용자는 디스플레이된 인증 코드(CC)를 입력한다. 단계 S56에서, 사용자 단말(UT)에 의해 실행된 스크립트(SCPT)는 사용자에 의해 선택된 위치들(POSi)의 시퀀스 및 트랜잭션 식별자(TID)를 인증 서버(ASRV)에 전송한다. 단계 S57에서, 인증 서버(ASRV)는 사용자에 의해 입력된 위치 데이터(POSi)에 대응하는 인증 코드(CC1)를 결정한다. 인증 서버(ASRV)에 의해 생성된 소프트웨어 컴포넌트(GC)에 의해, 이러한 위치들(POSi)을 입력하기 위해 사용된 키패드가 디스플레이되었기 때문에, 인증 서버(ASRV)는 디스플레이된 키패드 레이아웃을 알고, 따라서, 상기 위치 데이터(POSi)에 대응하는 키 기호들(label)을 결정할 수 있고, 결과적으로, 사용자에 의해 타이핑된 인증 코드(CC1)의 값을 결정할 수 있다. 단계 S58에서, 인증 서버(ASRV)는 타이핑된 인증 코드(CC1)를 단계 S52에서 생성된 인증 코드(CC)와 비교한다. 단계 S59에서, 인증 서버(ASRV)는 사용자 식별자 및 트랜잭션 식별자(UID, TID) 및 단계 S58에서 수행된 비교 결과(CMP)를 포함하는 인증 응답 데이터(ARP)를 서비스 제공자 서버(SSRV)에 전송한다. 단계 S60에서, 타이핑된 인증 코드(CC1)가 인증 코드(CC)와 일치하면, 서비스 제공자 서버(SSRV)는 단계 S61에서 사용자로 하여금 서비스 제공자 상에서의 자신의 계정에 대한 새로운 패스워드를 입력할 수 있게 하는 웹 페이지(WP(NPW))를 사용자 단말(UT)로 전송한다. 이러한 웹 페이지 (WP(NPW))가 전송될 사용자 단말을, 서비스 제공자 서버가 새로운 패스워드 요청을 수신하는 단계 S42로부터, 서비스 제공자 서버(SSRV)는 알 수 있다. 단계 S62에서, 사용자 단말(UT) 내에 설치된 웹 브라우저는 상기 수신된 웹 페이지(WP(NPW))를 디스플레이한다. 단계 S63에서, 사용자는 디스플레이된 웹 페이지 WP(NPW)에 새로운 패스워드(NPW)를 입력한다. 단계 S64에서, 사용자 단말(UT)은 패스워드 변경 요청(NPWR) 내에 사용자 식별자(UID)와 함께 새로운 패스워드(NPW)를 포함시켜 서비스 제공자 서버(SSRV)에 송신한다. 단계 S65에서, 인증 서버(ASRV)는 확인 응답(ACK)을 사용자 단말(UT)에 전송할 수 있다.
이러한 방식으로, 단계들 S43 내지 S61에서는, 인증 코드(CC)가 사용자 단말(UT) 상에서 판독되고 이러한 인증 코드(CC)와 함께 디스플레이된 키패드를 사용하여 인증 코드가 사용자 단말(UT)에 입력되어야 한다. 따라서, 해커가 실제 사용자 대신에 인증 코드를 받아서 인증 코드를 사용하여 인증하는 것이 방지된다. 또한, 인간이 이러한 동작들을 수행하는 것이 요구되므로, 많은 수의 사용자 계정에 대한 자동 공격을 방지할 수 있다.
여기에서도 다시, 인증 서버(ASRV)에 의해 수행되는 동작들은 서비스 제공자 서버(SSRV)에서 구현될 수 있다.
사용자 단말(UT)과 인증 서버(ASRV) 간의 통신은 적어도 단계 S49 내지 단계 S56에서, 예를 들어, SSL 프로토콜을 사용하여, 보안 처리될 수 있으며, 이로써 중간자 공격을 방지한다.
이러한 중간자 공격은 또한 예를 들어 다른 통신 채널 및/또는 다른 장치에 의해, 또는 사용자 등록 절차 중에 미리 사용자에게 제공되는 추가적인 비밀 코드를 사용하여 방지될 수 있다. 이러한 추가적인 비밀 코드는 단계 S54 내지 단계 S58에서 사용자를 인증하기 위해 요구될 수 있고, 소프트웨어 컴포넌트(GC)에 의해 디스플레이된 키패드를 사용하여 단계 S55에서 입력될 수 있다.
단계 S43 내지 단계 S61는, 사용자 단말이 웹 브라우저를 통해서 서버(예를 들어, 서비스 제공자 서버(SSRV))에 접속되고 상기 서버가 사용자를 인증하기 위해 제 2 인자 인증을 필요로 할 때마다 수행될 수도 있다.
도 8a는 사용자 단말이 소프트웨어 컴포넌트(GC)를 실행할 때 사용자 단말(UT)에 의해 디스플레이되는 이미지 프레임(FRM)의 예를 도시한다. 이미지 프레임(FRM)은 메시지(MSG) 및 메시지(MSG) 상에 중첩된 일회용 트랜잭션 검증 코드(CC)를 디스플레이하는 배너 프레임(banner frame)(BNF)을 포함한다. 이미지 프레임(FRM)은 예를 들어, 12 키 키패드를 나타내는 키패드 이미지 프레임(KYPF)을 더 포함하며, 키패드의 각각의 키는 사용자에게 해당 키의 기능을 나타내는 기호 (KYL)와 함께 디스플레이된다. 키패드는 소거 키 "C" 및 검증 키 "V", 및 한 자리수에 대응하며 이미지 프레임(FRM)을 생성하는 소프트웨어 컴포넌트(GC)에 특정된 레이아웃을 갖는 1O 개의 키를 포함한다. 이미지 프레임(FRM)은 사용자가 키들(KY) 중 새로운 키를 터치할 때마다 도트가 디스플레이되는 디스플레이 존(FBD)을 더 포함할 수 있다. 도 8a의 예에서, 디스플레이 존(FBD)은 3 개의 키가 이미 사용자에 의해 타이핑되었음을 나타낸다.
도 8a의 예에서, 키패드는 각각이 3 개의 키들로 이루어진 4 개의 라인들을 포함하며, 키패드의 첫 번째 라인은 숫자들 "9", "3" 및 "6"를 (좌측에서 우측으로) 포함하고, 두 번째 라인은 숫자들 "2", "0" 및 "1"을 포함하고, 세 번째 라인은 숫자들 "4", "7" 및 "8"을 포함하고, 네 번째 라인은 검증 키 "V", 숫자 "5" 및 소거 키 "C"를 포함한다. 각 숫자(digit) 키의 기호(KYL)는 디스플레이될 키 기호 (KYL)에 따라서, 가시적이거나 가시적이지 않는 다수의 세그먼트들(SG)(예를 들어, 7 개의 세그먼트들)로 디스플레이된다. 일 실시예에 따르면, 키패드 레이아웃이 사용자 단말(UT)의 스크린 샷 기능을 사용함으로써 획득되는 것을 방지하기 위해, 각 키(KY) 내의 가시적인 세그먼트들 중 일부만이 소프트웨어 컴포넌트(GC)에 의해 생성된 각각의 이미지 프레임에서 디스플레이된다. 이러한 목적을 위해, 디스플레이될 각각의 가시적인 세그먼트는 100 %보다 낮은 확률, 예를 들어, 50 %의 확률로 소프트웨어 컴포넌트(GC)에 의해 생성된 이미지 프레임(FRM)에 존재한다. 인간의 시각적 시스템의 지속성 특성 때문에, 인간의 시각적 시스템은 사용자 단말(UT)에 의해 연속적으로 디스플레이된 이미지 프레임들을 결합할 수 있다. 따라서, 디스플레이된 키 기호들(KYL)을 사용자가 알 수 있게 된다. 도 8b는 이미지 프레임들이 인간의 시각적 시스템에 의해 인지될 수 있기 때문에, 소프트웨어 컴포넌트(GC)에 의해 생성된 이미지 프레임들(FRM)이 충분히 높은 주파수(30 Hz 이상), 예를 들어, 60 Hz로 디스플레이되며 이로써 프트웨어 컴포넌트(GC)에 의해 생성된 새로운 프레임이 매 16.6 ms마다 디스플레이되도록 되어 생성된 디스플레이된 이미지(IMG)를 예시한다. 도 8b에서 도시된 바와 같이, 키 기호들(KYL)의 디스플레이될 가시적인 세그먼트들이 100 %보다 낮은 확률로 이미지 프레임들(FRM)에 삽입될 때 이러한 키 기호들(KYL)은 사용자에게 회색으로 보인다.
도 9의 상단 도면은 소프트웨어 컴포넌트(GC)에 의해 생성되고 사용자 단말(UT)에 의해 디스플레이된 배너 프레임(BNF)의 2 개의 중첩된 층들의 일 예를 도시한다. 도 9의 중앙 도면은 생성되고 디스플레이되는 배너 프레임을 보여준다. 도 9의 하단 도면은 사용자가 인식할 수 있는 배너(BN)을 보여준다. 배너 프레임(BNF)의 첫 번째 층(도 9의 상단에서 좌측)은 디스플레이될 메시지(MSG) "Order: transfer xx € to yyyy"를 포함한다. 두 번째 층(도 7의 상단 우측)은 사용자에 의해 사용자 단말(UT)에 입력될 트랜잭션 검증 코드(CC)에 대응하는 다수의 디지트, 예를 들어, 4 개의 디지트를 포함한다. 여기에서도 역시, 트랜잭션 검증 코드(CC)의 각 디지트 또는 자리수는 디스플레이될 디지트의 함수로서 디스플레이되거나 디스플레이되지 않는 몇몇 세그먼트들(SG)(예를 들어, 7 개의 세그먼트들)을 사용하여 디스플레이된다. 사용자 단말(UT)의 스크린 샷 기능을 사용하여 트랜잭션 검증 코드(CC)가 획득되는 것을 방지하기 위해, 가시적인(visible) 세그먼트들(SG) 중 일부만이 소프트웨어 컴포넌트(GC)에 의해 생성된 각각의 이미지 프레임(FRM)에서 디스플레이되며, 이로써 디스플레이될 각 가시적인 세그먼트(SG)는 100 %보다 낮은 확률, 예를 들어, 50 %(1/2)의 확률로 소프트웨어 컴포넌트(GC)에 의해 생성된 이미지 프레임(FRM)에서 존재한다.
이러한 첫 번째 및 두 번째 층의 픽셀들은 XOR 연산에 의해 함께 결합될 수 있다. 따라서, 도 9의 중앙 부분에 도시된 바와 같이 생성된 배너 프레임(BNF)에서, 메시지(MSG) 및 트랜잭션 검증 코드(CC)의 세그먼트(SG)에 속하는 픽셀들은, 이러한 픽셀들이 상기 메시지에만 속하거나, 세그먼트들(SG)이 배경색과 다른 색으로 디스플레이될 때에, 배경색을 바탕으로 표시된다.
도 9의 하부 도면은, 이미지 프레임들이 인간 시각 시스템에 의해 인지될 수 있기 때문에, 소프트웨어 컴포넌트(GC)에 의해 생성된 이미지 프레임(FRM)이 충분히 높은 주파수(30 Hz 초과)로, 예를 들어 60 Hz로, 디스플레이되며 이로써 16.6 ms마다 새로운 프레임(FRM)이 디스플레이되어서 생성되는, 디스플레이된 배너(BN)를 도시한다. 디스플레이될 가시적 세그먼트들이 100 %보다 낮은 확률로 배너 프레임(BNF)에 삽입될 때, 트랜잭션 검증 코드(CC)의 4 디지트 기호들(DL)이 회색으로 사용자에게 표시된다. 도 8a, 도 8b 및 도 9의 실례에서, 인증 코드(CC)는 4279이다.
일 실시예에 따르면, 디스플레이될 각 디지트(KYL, DL)의 가시적인 세그먼트 및 비가시적인 세그먼트는 디스플레이된 디지트들은 인간의 시각 시스템의 지속성으로 인하여 인간의 시각 시스템이 이해할 수 있도록 각각의 확률로 이미지 프레임들(FRM)에서 나타난다. 예를 들어, 생성된 소프트웨어 컴포넌트(GC)는 0 내지 15 %의 확률로 비가시적인 세그먼트를 디스플레이하고, 50 내지 100 %의 확률로 가시적인 세그먼트를 디스플레이하도록 구성된다. 키 기호(KYL) 및 트랜잭션 검증 코드(CC)의 디지트를 형성하는 가시적인 세그먼트들은 50 내지 100 % 사이의 각각의 확률로 디스플레이될 수 있고, 키 기호(KYL) 및 트랜잭션 검증 코드(CC)의 디지트를 형성하는 비시적인 세그먼트들은 0 내지 15 % 사이의 각각의 확률로 디스플레이될 수 있다. 키 기호들 및 트랜잭션 검증 코드(CC)의 디지트들을 형성하는 세그먼트들의 디스플레이 확률은, 디스플레이된 디지트들의 기호들이 인간 시각 시스템에 의해 이해할 수 있게 유지되도록, 프레임 디스플레이 주파수의 함수로서 조정될 수 있다. 세그먼트들 또는 픽셀들이 이미지 프레임의 배경색으로 각기 디스플레이되거나 배경색과 다른 색상으로 디스플레이될 때 이러한 세그먼트들 또는 픽셀들은 이미지 프레임(FRM)에서 가시적이거나 가시적이지 않는다. 배경색은 고려된 세그먼트 (SG) 주위의 픽셀들의 컬러에 의해 규정되며, 이미지 프레임(FRM) 내에서의 해당 세그먼트 위치의 함수로서 변할 수 있다.
디스플레이된 키패드(KYPF)는 검증 키 "V"를 가질 필요가 없으며, 사용자가 타이핑될 트랜잭션 검증 코드(CC)의 마지막 디지트를 입력할 때 타이핑된 코드들에 대한 검증이 수행된다. 예를 들어, 트랜잭션 검증 코드(CC)가 4 자리수인 경우에, 사용자가 4 개의 디지트들을 입력하면, 소프트웨어 컴포넌트(GC)의 실행이 종료될 수 있다. 소거 키 "C"는 마지막으로 타이핑된 숫자 또는 이전에 타이핑한 모든 숫자를 삭제하도록 다루어질 수 있다. 소거 키 "C"의 효과는 디스플레이 영역(FBD) 내의 하나 또는 모든 도트를 소거함으로써 사용자에게 보여질 수 있다.
도 10은 일 실시예에 따른 애플리케이션(APP)의 기능적 아키텍처를 도시한다. 애플리케이션(APP)은 관리 모듈(MGM), 초기화 모듈(INM), 인증 모듈(AUTM), 링크 모듈(LKM), 소프트웨어 컴포넌트 실행 모듈(GCM)을 포함한다. 관리 모듈(MGM)은 다른 모듈들(INIM, RGM, LKM, GCM)을 제어하고, 통신 모듈(NIT)을 통한 애플리케이션(APP)과 인증 서버(ASRV) 사이의 통신을 제어한다. 초기화 모듈(INM)은 단계 S9를 수행한다. 링크 모듈(LKM)은 단계 S11 및 단계 S12를 수행한다. 이러한 목적을 위해, 링크 모듈은 사용자 단말(UT)의 이미지 센서(IMS)에 접속되어 사용자 단말(UT)에 의해 수신되고 사용자 단말(OT)에 의해 디스플레이될 단회 사용 링크 토큰(LTK)에 대응하는 광학 코드를 획득할 수 있다. 인증 모듈(AUTM)은 단계 S25 내지 단계 S29를 수행하여, 단계 S23에서 수신된 인증 요청을 처리하고, 소프트웨어 컴포넌트(GC)의 실행을 트리거하고, 사용자에 의해 입력된 위치들(POSi)을 수신하여 전송한다. 인증 모듈(AUTM)은 사용자 단말(UT)의 키패드 또는 터치 감지 표면 (TSIN)에 연결된다. 소프트웨어 컴포넌트 실행 모듈(GCM)은 단계 S27를 수행하여 적절한 리프레시 레이트로 이미지 프레임(FRM)을 생성하고 디스플레이하고, 소프트웨어 컴포넌트 실행 모듈(GCM)은 소프트웨어 컴포넌트(GC)에 적용될 입력 값들을 각 프레임에서 선택하고 소프트웨어 컴포넌트를 실행한다. 소프트웨어 컴포넌트 실행 모듈(GCM)은 사용자 단말(UT)의 디스플레이 스크린(DSP) 상에 디스플레이되는 이미지 프레임(FRM)을 생성한다.
도 11은 일 실시예에 따른 소프트웨어 컴포넌트(GC)의 예를 도시한다. 소프트웨어 컴포넌트(GC)는 가블드 회로(garbled circuit)로 암호화된 소프트웨어 구현 불(Boolean) 회로이다. 소프트웨어 컴포넌트(GC)는 2 개의 회로 층(L1, L2) 및 2 개의 상호 접속 매트릭스들(XM1, XM2)을 포함한다. 제 1 상호 접속 매트릭스(XM1)는 소프트웨어 컴포넌트(GC)의 입력 데이터들(INi, INj, SGi, RNi)을 수신한다. 제 1 층(L1)은 논리 게이트들(AGi)을 포함하며, 각 논리 게이트는 제 1 상호 접속 매트릭스(XM1)로부터 2 개의 입력 값들(SGi, RNi)을 수신하고 제 2 상호 접속 매트릭스(XM2)에 하나의 출력 값(Di)을 제공한다. 제 2 층(L2)은 논리 게이트들(XGi, XGj)을 포함하며, 각 논리 게이트는 제 2 상호 접속 매트릭스(XM2)로부터 2 개의 입력 값들을 수신하고, 픽셀 값을 나타내는 하나의 출력 값(PXi, PXj)을 제공한다. 제 1 층(L1)의 논리 게이트들(AGi) 각각은 제 1 상호 접속 매트릭스(XM1)에 의해 선택된 소프트웨어 컴포넌트(GC)의 입력 값들(SGi, RNi)을 수신한다. 다른 층(L2의) 논리 게이트들(XGi) 각각은 소프트웨어 컴포넌트의 하나의 입력 값(INi) 및 이전 층(L1)에 속하는 하나의 논리 게이트(AGi)에 의해 제공되는 하나의 출력 값을 수신하며, 이러한 입력 값들은 제 2 상호 접속 매트릭스(XM2)에 의해 선택된다. 제 2 층(L2)의 각각의 논리 게이트(XGj)는 소프트웨어 컴포넌트의 2 개의 입력 값(INj1, INj2)을 수신하며, 이들 입력 값은 제 1 상호 접속 및 제 2 상호 접속 매트릭스(XM1 및/또는 XM2)에 의해 선택된다. 소프트웨어 컴포넌트의 이러한 구조는, 동일한 회로 층들(L1, L2) 내의 모든 논리 게이트들이 동시에 처리될 수 있기 때문에, 병렬 처리를 가능하게한다.
일 실시예에 따르면, 도 8a에 도시된 바와 같은 이미지 프레임들(FRM)을 생성하기 위해, 소프트웨어 컴포넌트(GC)는 이미지 프레임들(FRM) 내에서 가시적이거나 비가시적 일 수 있는 세그먼트들(SG) 각각에 대한 하나의 회로(SGCi) 및 예를 들어, 세그먼트들(SG) 주변 또는 배너 프레임(BNF) 내의, 세그먼트 픽셀(PXi)과 구별된되는 각 픽셀(PXj)에 대한 하나의 회로(FPCj)를 포함한다. 따라서, 디스플레이될 이미지 프레임들(FRM)은 키패드(KYP)를 위한 70 개의 세그먼트(10 개의 키 기호 디지트 x 디지트 당 7 개의 세그먼트) + 트랜잭션 검증 코드(CC)를 위한 28 개의 세그먼트(4 개의 디지트 x 디지트 당 7 개의 세그먼트)를 포함하며, 따라서 소프트웨어 컴포넌트는 98 개의 회로들(SGCi)을 포함한다. 각 회로(SGCi)는 회로 층(L1) 내에서 하나의 논리 게이트(AGi)를 포함하며, 회로 층(L2) 내에서는 이미지 프레임들(FRM) 내에서 디스플레이되는 바와 같은 세그먼트(SG)를 형성하는 픽셀들(PXi1, PXi2, ... PXip)의 수와 동일한 개수의 논리 게이트들(XGi)을 포함한다.
논리 게이트(AGi)는 예를 들어, 50 %(1/2)의 확률로 각각의 가시적인 세그먼트를 디스플레이하고 가시적일 확률이 0 %인 각각의 비가시적인 세그먼트를 디스플레이하도록 AND, OR, NAND, NOR와 같은 논리 연산을 수행한다. 논리 게이트들(XGi) 각각은 소프트웨어 컴포넌트의 입력부(INi)와 함께 논리 XOR 연산을 수행한다. 논리 게이트(AGi)는 하나의 세그먼트 입력 값(SGi) 및 이에 대응하는 랜덤 입력 값(RNi)을 수신한다. 논리 게이트(AGi)의 출력부(Di)는 회로(SGCi)의 모든 게이트들(XGi)의 입력부에 접속된다. 각각의 논리 게이트(XGi)는 입력 값들(INi1 내지 INip) 중 하나를 수신하고, 하나의 픽셀 값(PXi1 내지 PXip)을 회로(GC)의 출력부에 제공한다.
회로들(FPCj)의 각각은 소프트웨어 컴포넌트(GC)에 의해 제어되고 이미지 프레임들(FRM) 내의 세그먼트 픽셀과 구별되는 픽셀(PXj)마다 논리 XOR 연산을 수행하는 하나의 논리 게이트(XGj)를 포함한다. 논리 게이트들(XGj) 각각은 소프트웨어 컴포넌트(GC)의 두 개의 입력 값들(INj1, INj2)을 수신하고 하나의 픽셀 값(PXj)을 제공한다. 논리 게이트들(XGj) 각각은 제 1 층(L1) 또는 제 2 층(L2)에 위치할 수 있다. 입력 값들(INi, INj)의 수는 소프트웨어 컴포넌트(GC)에 의해 제어되는 픽셀들(PXi, PXj)의 개수의 제곱근에 근사한 값으로 제한될 수 있다.
회로들(SGCi)은 50 %의 확률로 키 기호들(KYL) 및 트랜잭션 검증 코드(SG)의 디지트들의 가시적인 세그먼트들을 디스플레이하고 0 %의 확률로 키 기호들(KYL) 및 트랜잭션 검증 코드(SG)의 디지트들의 비가적인 세그먼트들을 디스플레이하도록 구성된다. 이러한 소프트웨어 컴포넌트(GC)의 구조는 디스플레이될 디지트들의 가시적인 세그먼트들 및 비가시적인 세그먼트들에 다른 디스플레이 확률들을 적용하도록 구성될 수도 있다. 물론, 디지트들은 알파벳 문자 또는 보다 일반적으로 ASCII 문자를 포함한 심볼들과 같은, 숫자 이외의 다른 기호들을 디스플레이하도록 제어 및/또는 (예를 들어, 더 많은 세그먼트둘로) 배열될 수 있다.
도 11의 소프트웨어 컴포넌트의 예에서, 논리 게이트들(XGi)의 수 + 논리 게이트들(XGj)의 수 * 2보다 적은 개수의 입력부들(INi, INj)이 존재하도록, 하나의 입력부(INi 또는 INj)가 다수의 논리 게이트들(XGi, XGj)에 접속될 수 있다.
제 2 상호 접속 매트릭스(XM2)는 소프트웨어 컴포넌트에 의해 생성된 어느 픽셀이 세그먼트(SG)에 속하는지를 규정한다. 일 실시예에 따르면, 각 세그먼트(SG)의 위치, 배향 및 형상은 소프트웨어 컴포넌트들 간에, 사용자 단말의 디스플레이 해상도에 따라서, 하나 또는 수 개의 픽셀만큼 변한다. 이러한 구성은 디스플레이된 기호들의 기계 광학 인식을 수행하는 것을 더 어렵게 만든다.
본 명세서에서 사용되는 "세그먼트"라는 용어는 세그먼트 입력 값들(SGi) 중 동일한 하나에 의해 제어되는 픽셀들의 세트를 말한다는 것을 알 수 있다. 세그먼트를 형성하는 픽셀들의 세트는 반드시 인접하는 픽셀들로 형성될 필요는 없지만, 키 기호(KYL)를 형성하는 세그먼트들로서 인접하는 픽셀들의 그룹들을 포함할 수 있다. 또한, 세그먼트를 형성하는 픽셀들은 하나의 디스플레이된 이미지 프레임(FRM)에서 모두 가시적이거나 모두 비가시적이다.
도 12는 일 실시예에 따른, 소프트웨어 컴포넌트가 가블드 회로로서 설계될 때, 소프트웨어 컴포넌트를 규정하는 구조 및 콘텐츠 데이터(GCD)(단계 S23에서 송신됨)를 도시한다. 상기 구조 및 콘텐츠 데이터(GCD)는 다음을 포함한다:
고유 소프트웨어 컴포넌트 식별자(GCID),
입력 값들(INi, INj)의 수 n, 출력 값들의 m의 수, 세그먼트 입력 값들(SGi)또는 랜덤 입력 값들 RNi의 수 s, 논리 게이트들(AGi, XGi, XGj)의 수 g, 논리 게이트들(AGi)의 수 k, 회로 내의 와이어들의 수 w, 및 회로(GC) 내의 회로 층(L1, L2)의 수 l을 포함하는, 수 세트(number set)(DIM),
소프트웨어 컴포넌트의 실행을 위해 특정된 바와 같은, 예를 들어, 1에서 n까지 번호가 매겨진, 회로(GC)의 입력들(INi, INj)의 모든 값들을, 포함하는 입력 데이터 테이블(INLB),
소프트웨어 컴포넌트의 실행을 위해 특정된 바와 같은, 예를 들어, 1에서 s까지 번호가 매겨진, 소프트웨어 컴포넌트(GC)의 세그먼트 입력들(SGi)의 모든 값을 포함하는, 세그먼트 테이블(SGLB),
1에서 s까지 번호가 매겨진 랜덤 값들(RNi)을 포함하는 랜덤 데이터 테이블 (RNLB),
소프트웨어 컴포넌트(GC)의 2 개의 입력 와이어 번호들(IN1, IN2), 출력 와이어 번호(ON), 및 각 논리 게이트(AG, XG)의 타입 식별자(GTYP)를 규정하는 게이트 와이어 테이블(GTW)로서, 여기서 회로의 게이트들은 1 내지 g로서 번호가 매겨지는, 게이트 와이어 테이블(GTW), 및
소프트웨어 컴포넌트(GC)의 각각의 논리 게이트(AG)에 대한 4 개의 값(OV00, OV01, OV10, OV11)을 포함하는 게이트 진리 테이블.
도 11의 예에서, 타입 식별자(GTYP)는 해당 논리 게이트가 XOR 연산 또는 AND, OR, NOR, NAND와 같은 다른 논리 연산을 수행하는 것을 특정한다.
일 실시예에 따르면, 이진 논리 상태 0 또는 1을 각각 나타내는 논리 게이트들(AGi, XGi, XGj)의 입력 값들(INi, SGi, RNi, INj) 및 출력 값들(Di, PXi, PXj)은 수 개의 비트, 예를 들어, 64 또는 128 비트에 의해서 규정된다. 이러한 방식으로, 가블드 회로(GC) 내의 각각의 입력부 및 출력부는 오직 2 개의 유효 값들을 가지며, 이러한 값들의 비트 크기를 고려할 때, 다른 모든 가능한 값들은 무효하다. 소프트웨어 컴포넌트(GC)가 생성될 때, 소프트웨어 컴포넌트의 각각의 입력부(SGi, RNi, INi, INj)의 2 개의 유효 값들은, 이러한 2 개의 유효 값들의 최하위 비트가 서로 상이한 경우에 랜덤하게 선택되고, 이러한 최하위 비트들은, 상기 논리 게이트들 중 출력 값을 컴퓨팅할 때, 해당 논리 게이트의 진리 테이블에서 하나의 값을 선택하는데 사용된다.
각각의 논리 게이트(AGi)의 진리 테이블(GTT)[i])은 4 개의 값들(OV00, OV01, OV10, OV11)을 포함하며, 이들 각각은 해당 논리 게이트의 입력 값들에 대응하는 2 진 입력 값들의 조합(0,0),(0,1),(1,0),(1,1)에 대응한다. 소프트웨어 컴포넌트의 토폴로지는, 소프트웨어 컴포넌트의 각 와이어에 번호를 매김으로써, 즉 소프트웨어 컴포넌트의 각 입력 와이어에 1 내지 (n + 2s)의 번호를 매기고 로직 게이트들의 각 출력에 (n + 2s + 1) 내지 (n + 2s + g)의 번호를 매김으로써, 그리고, 해당 논리 게이트의 2 개의 입력부들로의 두 개의 와이어 번호들(IN1, IN2) 및 해당 논리 게이트의 출력부로의 하나의 와이어 번호(ON)를 포함하는 테이블(GTW)의 일 기록정보를 각각의 논리 게이트(AGi, XGi, XGj)와 연관시킴으로써, 테이블(GTW)에서 규정될 수 있다. 소프트웨어 컴포넌트(GC)의 출력부들의 와이어들에는 (n + 2s + g - m + 1) 내지 (n + 2s + g)의 번호가 매겨진다.
일 실시예에 따르면, 테이블(RNLB)은 논리 상태 0 및 1에 대응하는 각각의 랜덤 입력 값(RNi)의 두 유효 값들(RNV1, RNV2)을 포함한다. 각 유효 값(RNV1, RNV2)은 각각 논리 상태 0 및 1에 대응하는 랜덤 값(RNi)의 2 개의 유효 값들 중 하나 또는 다른 하나와 동일한 확률로 동일할 수 있다.
XOR 게이트들(XGi, XGj)은 테이블(GTT)에서 인코딩된 진리 테이블를 사용하거나, 해당 논리 게이트의 입력 값들에서의 동일한 순위의 각 비트 쌍에 XOR 연산을 적용함으로써 실행될 수 있다. 후자의 경우, 테이블(GTW)의 필드(GTYP)는 해당 논리 게이트가 XOR 게이트인지 또는 다른 게이트인지를 규정하고, 테이블(GTT)은 각 논리 게이트(AGi)를 위해서만 하나의 기록정보를 포함한다.
일 실시예에 따르면, 테이블들(INLB, SGLB, RNLB, GTT) 내의 각각의 값은 128 비트 워드로 인코딩되고, 테이블(GTW)의 각 기록정보는 64 비트 워드로 인코딩되고, 와이어 번호들(IN1, IN2, ON)은 21 비트 워드로 인코딩된다. 테이블(GTW)은 예를 들어, gzip 압축 방식을 사용하여 압축된 형태로 인증 서버(ASRV)에서 사용자 단말(UT)로 전송될 수 있다.
일 실시예에 따르면, 인덱스 i의 테이블 기록정보들(GTW[i] 및 GTT[i])이 동일한 논리 게이트를 참조하는 경우, 게이트 테이블들(GTW 및 GTT) 내에서의 논리 게이트들의 순서는 랜덤하게 규정될 수 있다.
도 13은 일 실시예에 따른, 소프트웨어 컴포넌트를 실행하고 이미지 프레임들(FRM)을 생성하도록 구성된 소프트웨어 컴포넌트 실행 모듈(GCM)을 도시한다. 소프트웨어 컴포넌트 실행 모듈(GCM)은 새로운 이미지 프레임이 생성될 때마다, 즉 30Hz 이상의 프레임 리프레시 레이트로 소프트웨어 컴포넌트를 실행한다. 이러한 목적을 위해서, 소프트웨어 컴포넌트 실행 모듈(GCM)은 새로운 이미지 프레임이 생성되어야 할 때마다, 예를 들어, 상승 에지를 갖는 동기화 신호(SNC)에 의해 활성화될 수 있다. 소프트웨어 컴포넌트 실행 모듈(GCM)은 스위칭 모듈(SWC), 소프트웨어 컴포넌트 인터프리터(GCI), XOR 마스킹 회로(XRG) 및 픽셀 맵핑 모듈(MPF)을 포함한다. 스위칭 모듈(SWC)은 동기화 신호(SNC) 및 실행될 소프트웨어 컴포넌트(GC)를 규정하는 구조 및 콘텐츠 데이터(GCD)를 수신하고, 입력 데이터 구조(GCDI) 내로 소프트웨어 컴포넌트(GC)의 다음 실행에 의해 처리될 데이터를 로딩한다. 따라서, 스위칭 모듈(SWC)은 입력 데이터 구조(GCDI)를 변형시키지 않고서 데이터들(DIM, INLB, SGLB, NBGL, GTW, GTT 및 GCK)을 전송한다.
일 실시예에 따르면, 스위칭 모듈(SWC)은 각 입력 랜덤 값(RNi)의 2 개의 유효 값(RNiV1, RNiV2) 중 하나 또는 다른 하나를 선택하도록 스위칭 동작(SWi)을 수행한다. 각 스위칭 기능(SWi)은 난수 생성 함수(RNG)에 의해 생성된, s 비트를 갖는 난수(RNB)의 각 비트(RNBi)에 의해서 제어되며, 여기서 s는 소프트웨어 컴포넌트(GC)에 입력될 랜덤 값들(RNi)의 개수이거나 또는 디스플레이될 모든 디지트들의 세그먼트들(SGi)의 총 개수이다. 각각의 스위칭 연산(SWi)은 랜덤 값(RNi) 각각에 대해, 입력 데이터 구조(GCDI) 내에 저장된 랜덤하게 선택된 값(RNiVk)을 제공한다. 랜덤 값들(RNi)의 2 개의 유효 값들(RNiV1, RNiV2) 중 하나를 선택함으로써(디스플레이될 가시적인 세그먼트(SG)는 상태 1로 설정된 입력 데이터(SGi)에 대응함), 대응하는 AND 게이트(AGi)의 출력은 선택된 랜덤 값(RNiVk)의 논리 상태에 따라 0 또는 1 중 하나를 나타내도록 설정된다. 결과적으로, 가시적인 세그먼트들(SGi)은 랜덤 입력 값(RNi)이 논리 상태 1로 설정될 확률과 동일한 확률로 각 프레임(FRM)에서 나타난다. 난수(RNB)가 참(true) 난수라면, 이러한 확률은 50 %와 동일하다.
소프트웨어 컴포넌트 인터프리터 모듈 또는 해석 모듈(GCI)은 입력 데이터 구조(GCDI) 내의 데이터에 의해 규정된 바와 같은, 제 1 회로 층(L1)의 논리 게이트들 각각 및 제 2 회로 층(L2)의 논리 게이트들 각각을 연속적으로 실행하도록 구성된 전용 해석 모듈이다. 이를 위해, 이러한 소프트웨어 컴포넌트 해석 모듈(GCI)은 소프트웨어 컴포넌트(GC)의 각 와이어의 값을 수신하는 와이어 테이블(wire table)을 사용할 수 있으며, 이러한 값은 해당 와이어 값의 와이어 번호에 대응하는 인덱스로 상기 와이어 테이블 내에 기록된다. 와이어 테이블에는 먼저 소프트웨어 컴포넌트의 입력 값들(INi, INj, SGi, RNiVk)로 로딩되며, 이러한 입력 값들은 이러한 입력 값들에 할당된 와이어 번호들에 대응하는 인덱스들(1 내지 n + 2s)로 해당 와이어 테이블에 기록된다. 이어서, 각 실행된 논리 게이트의 컴퓨팅된 출력 값이 해당 출력 값의 와이어 번호에 대응하는 인덱스로 와이어 테이블 내에 기록된다. 소프트웨어 컴포넌트 실행이 끝나면, 와이어 테이블은 (n + 2s + g - m + 1) 내지 (n + 2s + g)의 인덱스로 된 소프트웨어 컴포넌트의 출력 값들을 포함한다.
각 논리 게이트의 출력 값은 다음과 같이 2 개의 입력 값들 각각의 최하위 비트의 함수로서, 해당 논리 게이트의 양 입력 값들 및 해당 논리 게이트의 진리 테이블에서 선택된 하나의 값에 적용되는 비가역 함수를 적용함으로써 컴퓨팅될 수 있다:
OV = PF1(IN1, IN2, G) (1)
여기서, IN1 및 IN2는 해당 논리 게이트의 입력 값들을 나타내며, G = GTT[IN1{0}//IN2{0}]이며, IN1{0} 및 IN2{0}은 각기 입력 값들 IN1 및 IN2의 최하위 비트를 나타내고, 연산자 "//"는 비트 병합(concatenation) 연산자를 나타내며, GTT는 해당 논리 게이트의 4 요소 진리 테이블을 나타내고, PF1은 비가역 함수를 나타낸다.
일 실시예에 따르면, 비가역 함수(PF1)는 소프트웨어 컴포넌트에 할당된 암호화 키를 사용하여 AES(Advanced Encryption Standard)와 같은 암호화 함수를 사용할 수 있다. 이 경우, 암호 키(GCK)는 소프트웨어 컴포넌트(GC)의 구조 및 콘텐츠 데이터(GCD)에 저장될 수 있다. 예를 들어, 논리 게이트의 출력 값(OV)은 다음과 같이 컴퓨팅될 수 있다 :
OV = AES(GCK, K)
Figure pat00001
K
Figure pat00002
G (2)
여기서, K = CF(IN1,IN2)
Figure pat00003
T이며, "
Figure pat00004
"는 배타적 OR(XOR) 연산자를 나타내며, T는 논리 게이트에 할당된 번호, 예를 들어, 해당 논리 게이트의 번호를 나타내며, 입력 값들 IN1 및 IN2에 의존할 수 있으며, CF는 결합 함수를 나타내고, AES(GCK, K)는 암호화 키(GCK)를 사용하여 AES 암호화 알고리즘에 의해 K의 암호화된 값을 나타낸다. 상기 결합 함수는 배타적 논리합 연산이거나 다음과 같은 형태의 연산일 수 있다:
CF(IN1,IN2) = SH(IN1,a)
Figure pat00005
SH(IN2,b) (3)
여기서, SH(X,a)는 비트들의 수 "a"만큼의 X의 좌측 시프트 연산을 나타낸다.
소프트웨어 컴포넌트 해석 모듈(GCI)에 의해 제공된 소프트웨어 컴포넌트(GC)의 각 출력 데이터의 최하위 비트는 픽셀 값(PXi, PXj)로서 간주된다. XOR 마스킹 모듈(XRG)은 각 픽셀 값(PXi)(소프트웨어 컴포넌트에 의해 제공된 각 출력 값의 최하위 비트)를 해당 구조 및 콘텐츠 데이터(GCD) 내에 제공된 이미지 마스크 (IMSK)에 속하는 각각의 마스크 비트 값(MKi)과 결합시킨다. 사용된 결합 연산은 XOR 연산(XRi)일 수 있다. 소프트웨어 컴포넌트의 출력 값들의 최하위 비트를 포함하는 소프트웨어 컴포넌트의 출력 값들이 랜덤하게 선택되기 때문에, 소프트웨어 컴포넌트의 출력 값(PXi, PXj)의 각각의 최하위 비트는 화이트 노이즈(white noise)를 나타낸다. 따라서, 소프트웨어 컴포넌트에 의해 생성된 이미지 부분들은 암호화된 형태로 존재하며, 이미지 마스크(IMSK)를 사용하여 암호해독된다.
이미지 마스크(IMSK)는 메시지(MSG)를 포함하며, 이로써, 소프트웨어 컴포넌트(GC)에 의해 제공된 픽셀(PXj)과 결합될 때, 메시지(MSG)는 이해될 수 있고 트랜잭션 검증 코드(CC)의 세그먼트(SG)와 결합된다. 이미지 마스크(IMSK)는 또한 2 진 상태 0으로 고정된 세그먼트 입력 값(SGi)(비가시적이 되게 구성된 세그먼트)에 대응하는 디지트 세그먼트(SG)의 픽셀들(PXi)을 가시화하도록 구성될 수 있다. 이러한 방식으로, 세그먼트는 생성된 이미지 프레임들(FRM)에서 항상(100 % 확률로) 가시적이다. 세그먼트를 항상 가시적으로 또는 비가시적으로 구성하는 또 다른 방법은 송신된 구조 및 콘텐츠 데이터(GCD) 내의 관련 세그먼트 입력 값(SGi)에 대응하는 2 개의 랜덤 값들(RNiV1, RNiV2)에 동일한 값을 부여하는 것이다.
일 실시예에 따르면, 이미지 마스크(IMSK)는 더 높은 보안 수준을 위해 다른 통신 채널을 이용하여 단계 S23에서 사용자 단말(UT)로 전송된다.
제 1 및 제 2 상호 접속 매트릭스들(XM1, XM2)은 입력 값들(INj)에 대응하는 픽셀들(PXj)과 세그먼트 입력 값들(SGi)에 대응하는 픽셀들(PXi)이 이미지 프레임(FRM) 내에서 디스플레이되는 위치를 규정한다. 입력 값들(INi, INj)은 소프트웨어 컴포넌트(GC)의 출력에서의 대응하는 픽셀(PXi, PXj)이 가시적인지 비가시적인지를, 이미지 마스크(IMSK)와 관련하여 규정하고, 픽셀들(PXi)의 가시성(visibility)은 대응하는 랜덤 입력 값(RNi)에 또한 의존한다. 입력 값들(INi, INj)의 각각의 2 진 상태들은 소프트웨어 컴포넌트가 생성될 때 랜덤하게 선택될 수 있고, 이어서, 이미지 마스크(IMSK)가 입력 값들(INi, INj)의 선택된 2 진 상태, 제 1 및 제 2 상호 접속 매트릭스들(XM1, XM2) 및 디스플레이될 이미지 프레임(FRM)의 함수로서 생성되어서, 해당 이미지 프레임 내에서의 가시적 픽셀 및 비가시적 픽셀을 규정한다.
매핑 모듈(MPF)은 XOR 마스킹 모듈(XRG)에 의해 제공된 픽셀 값들(PXi')의 그룹들을, 적절한 위치에서, 배경 이미지 프레임(BCKF)에 삽입하여, 디스플레이될 이미지 프레임들(FRM) 중 하나를 생성한다. 특히, XOR 마스킹 모듈(XRG)은 도 9에 도시된 바와 같은 배너 프레임(BNF)을 형성하는 픽셀들(PXi')의 그룹 및 이미지 프레임(FRM) 내에 디스플레이될 하나의 키패드 프레임(KYPF)의 키 기호들(KYL) 각각을 형성하는 픽셀들(PXi')의 그룹들을 제공한다. 매핑 모듈(MPF)은 이들 픽셀 그룹을, 각각의 미리 규정된 위치들에서, 배경 이미지 프레임(BCKF) 내에 삽입하여, 도 8a에 도시된 바와 같은 이미지 프레임들(FRM) 중 하나를 생성하다. 일 실시예에서, XOR 마스킹 모듈(XRG)은 직접적으로 디스플레이 가능한 이미지 프레임을 출력한다. 이러한 경우에, 매핑 모듈은 필수적인 구성요소가 아니다.
랜덤 입력(RNi)의 2 개의 유효 값들을 소프트웨어 컴포넌트의 구조 및 콘텐츠 데이터(GCD) 내에서의 전송은, 매우 낮은 비용으로 소프트웨어 컴포넌트를 실행하여 출력 데이터 내에서의 무작위성(randomness)을 도입하는 것을 가능하게 한다. 그렇지 않다면, 랜덤 출력 데이터를 생성하는 소프트웨어 컴포넌트는 소프트웨어 컴포넌트 내에 난수 생성기를 도입해야 하며, 이는 가블드 회로에 복잡성을 추가하지 않고서는 구현될 수 없음이 자명하며, 따라서, 소프트웨어 컴포넌트를 규정하는 구조 및 콘텐츠 데이터(GCD)의 크기를 증가시킬 수 밖에 없다. 또한, 랜덤 입력(RNi)의 2 개의 유효 값(RNiV1, RNiV2)의 전송은 패스워드(PC) 및 트랜잭션 검증 코드(CC)의 도입의 보안 수준을 감소시키지 않는데, 그 이유는 각각의 랜덤 입력 값(RNiV1, RNiV2)과 이의 이진 값 0 또는 1 간의 대응이 쉽게 설정될 수 없기 때문이다.
일 실시예에 따르면, 사용자 단말(UT)이 새로운 인증을 수행해야 할 때마다, 단계 S27에서, 상이한 키 레이아웃을 갖는 키패드(KYP)를 디스플레이하고 상이한 트랜잭션 검증 코드(CC)를 디스플레이하는 새로운 소프트웨어 컴포넌트(GC)가 실행된다.
일 실시예에 따르면, 사용자 단말이 새로운 인증을 수행할 필요가 있을 때마다, (단계 S23에서) 하나의 소프트웨어 컴포넌트(GC)를 전송하는 것을 피하기 위해, (구조 및 콘텐츠 데이터(GCD)에 의해 규정된) 다수의 대안적 소프트웨어 컴포넌트들이 사용자 단말(UT) 내로 한 번에 다운로드될 수 있고, 이로써, 사용자 단말(UT)은 새로운 인증을 수행해야 할 때마다 이전에 실행되지 않은 소프트웨어 컴포넌트를 선택한다. 예를 들어, 다수의 소프트웨어 컴포넌트는 애플리케이션(APP)이 다운로드되어 사용자 단말(UT)에 설치될 때에, 애플리케이션(APP)과 함께 다운로드된다. 그런 다음, 하나 또는 여러 개의 소프트웨어 컴포넌트가 사용되는 경우에, 소프트웨어 컴포넌트의 새로운 세트가, 예를 들어, 해당 사용자 단말이 효율적인 네트워크 접속 능력을 갖는 경우에, 인증 서버(ASRV)로부터 해당 사용자 단말(UT)로 다운로드될 수 있다.
일 실시예에 따르면, 다수의 대안적 소프트웨어 컴포넌트가 암호화된 형태로 사용자 단말(UT)에 저장되고, 사용자 단말(UT)이 새로운 소프트웨어 컴포넌트를 실행해야 할 때마다, 인증 서버(ASRV)는 대응하는 암호해독 키를 사용자 단말에 전송한다.
일 실시예에 따르면, 소프트웨어 컴포넌트 각각의 일부만이 사용자 단말(UT)로 다운로드된다. 각 소프트웨어 컴포넌트의 다운로드된 부분에는, 소프트웨어 컴포넌트가 가블드 회로인 경우에, 테이블(RNLB)이 있거나 없는 데이터들(GCID, DIM, NBGL, GTW)가 포함될 수 있다. 사용자 단말(UT)이 새로운 인증을 수행해야 할 때마다, 인증 서버(ASRV)는 단계 S23에서 데이터들(INLB, SGLB, GCK 및 IMSK)만을 해당 사용자 단말에 전송한다. 그런 다음, 사용자 단말(UT)은 인증을 위해서 사용된 소프트웨어 컴포넌트의 식별자(GCID)를 예를 들어, 단계 S25 또는 단계 S29에서, 인증 서버(ASRV)에 전송한다. 인증 서버가 해당 사용자 단말(UT)로부터 소프트웨어 컴포넌트 식별자(GCID)를 수신하면, 인증 서버(ASRV)는 해당 데이터베이스(UDB) 내에서, 상기 수신된 소프트웨어 컴포넌트 식별자가 이전에 사용자 단말(UT)에 전송된 후속 미실행된 또는 유효한 소프트웨어 컴포넌트에 대응하는지를 검사한다. 상기 수신된 소프트웨어 컴포넌트 식별자가 이전에 사용자 단말(UT)로 전송된 후속 미실행된 또는 유효한 소프트웨어 컴포넌트에 대응하지 않으면, 인증 서버(ASRV)는 사용자 인증 및 이에 대응하는 트랜잭션을 무효화한다. 인증 서버(ASRV)는 (동일한 소트트웨어 컴포넌트 식별자(GCID)에 대응하는) 동일한 소프트웨어 컴포넌트로 수행된 이전 트랜잭션을 무효화할 수도 있다.
일 실시예에 따르면, 인증 서버(ASRV)는 자신이 사용자 단말에 대해 생성한 각각의 소프트웨어 컴포넌트에 (예를 들어, 도 5의 테이블(GCP) 내의) 유효성 표시자(vaildity indicator)를 할당할 수 있다. 인증 서버(ASRV)는 단계 S23에서 해당 소프트웨어 컴포넌트를 사용자 단말로 전송할 때 상기 유효성 표시자를 유효하다고 설정하고, 단계 S29에서 해당 메시지(ARP)를 수신하면 상기 유효성 표시자를 무효하다고 설정할 수 있다. 또한, 인증 서버(ASRV)는 생성된 각 소프트웨어 컴포넌트에 유효 기간(validity period)을 할당할 수 있으며, 이러한 유효 기간이 만료되면 해당 소프트웨어 컴포넌트가 무효하다고 설정된다. 인증 서버(ASRV)는 해당 메시지(ARP)가 무효하다고 설정된 소프트웨어 컴포넌트에 대응하는 경우에는, 단계 S29에서 전송된 메시지(ARP)를 거부하도록 구성될 수 있다.
도 14는 다른 실시예에 따른 소프트웨어 컴포넌트(GC)의 일부를 도시한다. 도 14에 개시된 회로 부분은 도 11의 회로에서 하나의 논리 게이트(AGi)를 대체하도록 구성된다. 도 14의 예에서, 회로 부분은 3 개의 AND 게이트(AGi1, AGi2 및 AGi3) 및 2 개의 OR 게이트(OGi1, OGi2)를 포함한다. 이러한 회로 부분은 100 %보다 낮은 확률로 디스플레이될 이미지 프레임(FRM)의 각 세그먼트에 대해 하나의 세그먼트 입력(SGi) 및 하나의 랜덤 입력(RNi)을 갖는 대신에, 일 세그먼트에 대해서, 3 개의 세그먼트 입력(SGi1, SGi2, SGi3) 및 이에 대응하는 3 개의 랜덤 입력(RNi1, RNi2, RNi3)을 갖는다. AND 게이트들(AGi1, AGi2, AGi3) 각각은 하나의 각각의 세그먼트 입력(SGi1, SGi2, SGi3)을 하나의 각각의 랜덤 입력(RNi1, RNi2, RNi3)과 결합시킨다. AND 게이트들(AGi1 및 AGi2)의 출력부들은 OR 게이트(OGi1)의 입력부에 접속되고, 게이트들(AGi3 및 OGi1)의 출력부들은 OR 게이트(OGi2)의 입력부들에 접속된다. OR 게이트(OGi2)의 출력(Di)은 입력들(SGi1, SGi2, SGi3)에 의해 제어되는 세그먼트를 형성하는 픽셀들의 수와 동일한 수의 게이트들(XGi)에 연결된다. 이러한 방식으로, 모든 세그먼트 입력들(SGi1, SGi2, SGi3)이 이진 상태 0으로 설정될 때, OR 게이트(OGi2)의 출력부(Di)는 0 %의 확률로 2 진 상태 1로 설정된다. 이러한 세그먼트 입력들(SGi1, SGi2, SGi3) 중 하나만이 이진 상태 1로 설정될 때, 게이트(OGi2)의 출력(Di)은 확률 50 %(1/2)로 이진 상태 1로 설정된다. 세그먼트 입력(SGi1, SGi2, SGi3) 중 2 개만이 2 진 상태 1로 설정될 때, 게이트(OGi2)의 출력 (Di)은 확률 75 %(3/4)로 2 진 상태 1로 설정되고, 3 개의 세그먼트 입력들(SGi1, SGi2, SGi3) 모두가 2 진 상태 1로 설정되면, OR 게이트(OGi2)의 출력(Di)은 87.5 %(7/8)의 확률로 2 진 상태 1로 설정된다. 대응하는 입력 값들(INi1 내지 INip) 및 이에 대응하는 이미지 마스크(IMSK)의 마스크 비트 값들(MKi1 내지 MKip) 및 세그먼트 입력 값들(SGi1, SGi2, SGi3)에 따라서, 0%(0), 12.5%(1/8), 25%(1/4), 50%(1/2), 75%(3/4), 82.5%(7/8) 또는 100%(1)로 고정된 확률로 세그먼트(SGi)를 디스플레이할 수 있다. 일 실시예에 따르면, 가시적 세그먼트들(SG)은 적어도 12.5%, 25%, 50%, 75%; 82.5% 또는 100%를 포함하는 가시적일 확률 값들의 세트에서 선택되는 확률로 이미지 프레임들(FRM)에서 디스플레이된다.
이들 확률 또는 다른 확률들은 3 개의 세그먼트 입력 값들(SGi1, SGi2, SGi3) 및 3 개의 랜덤 입력 값들(RNi1, RNi2, RNi3)을 결합하는 논리 게이트들의 다른 조합들을 사용하여 얻을 수 있다.
물론, 하나의 세그먼트에 대한 입력의 수를 증가시키고, 따라서 제 1 회로 층(L1)의 AND 게이트들의 수를 증가시키고 후속하는 회로 층들에서의 결합 OR 게이트들의 수를 증가시킴으로써, 소프트웨어 컴포넌트에 의해 다른 확률 값들이 달성될 수 있다.
일 실시예에 따르면, 가시적인 세그먼트들은 사용자의 경험 레벨의 함수로서 감소하는 확률로 디스플레이된다. 애플리케이션(APP)의 첫 번째 설치로부터 수행된 최초 인증 시에, 가시적인 세그먼트들(SG)은 높은 확률로, 예를 들어 75 % 내지 100 %의 확률로, 이미지 프레임(FRM)에서 디스플레이될 수 있다. 사용자의 경험 수준이 증가함에 따라, 이러한 확률은 점진적으로 감소되고 예를 들어, 12.5 퍼센트 내지 50 퍼센트에서 랜덤하게 선택된 값들로 마지막으로 설정될 수 있다.
가블드 회로를 사용하는 실시예에서, 단계 S22에서 인증 서버(ASRV)에 의해 수행되는 소프트웨어 컴포넌트의 생성은, 소프트웨어 컴포넌트의 논리 게이트들의 입력 비트들 및 출력 비트들의 이진 상태들 0 및 1을 나타내는 랜덤 값들을 생성하는 단계를 포함하며, 논리 게이트 출력들의 일부는 가블드 회로의 출력들에 대응한다. 이러한 소프트웨어 컴포넌트의 생성은 제 1 및 제 2 상호 접속 매트릭스들(XM1, XM2)을 랜덤하게 선택하는 단계, 즉 소프트웨어 컴포넌트의 입력부들과 소프트웨어 컴포넌트의 논리 게이트들의 입력부들 간의 링크들 및 일부 논리 게이트의 출력들과 다른 논리 게이트들의 입력부들 간의 링크들(테이블(GTW)의 규정)을 랜덤하게 선택하는 단계를 포함한다. 이러한 소프트웨어 컴포넌트의 생성은 소프트웨어 컴포넌트의 논리 게이트들의 진리 테이블들(GTT)을 규정하는 단계 및 암호화 키를 사용하여 이들 진리 테이블의 각 값을 암호화하는 단계를 더 포함한다. 일례에 따르면, 소프트웨어 컴포넌트(GC)의 논리 게이트의 진리 테이블의 각 4 개의 값 G(=GTT[IN1{0}//IN2{0}]는 다음과 같이 컴퓨팅될 수 있다:
G = PF2(IN1, IN2, OV) (4)
이는 입력 값들(IN1, IN2) 및 출력 값(OV)의 유효 값들의 각 가능한 결합에 대해서, 입력 값들(IN1, IN2) 및 출력 값(OV)의 유효 값들에 대응하는 2 진 상태들을 고려하고, 논리 게이트에 의해 수행된 논리 연산을 고려하고, PF2가 비가역 함수임을 고려한 것이다. 등식(2)에 의해 규정된 예에 따르면, 논리 게이트의 진리 테이블의 각 4 개의 값들 G는 다음과 같이 컴퓨팅될 수 있다 :
G = AES(GCK, K)
Figure pat00006
K
Figure pat00007
OV (5)
여기서, K = CF(IN1,IN2)
Figure pat00008
.
결과적으로, 입력 및 출력 값들의 이진 상태 및 소프트웨어 컴포넌트의 논리 게이트들의 함수를 결정하는 것은 매우 어렵다. 결과적으로, 소프트웨어 컴포넌트(GC)의 함수도 쉽게 결정될 수 없다. 또한, 소프트웨어 컴포넌트는 상당한 개수의 무효 값들 중에서 회로의 각 입력부의 두 개의 유효한 값들만을 처리할 수 있다. 따라서, 소프트웨어 컴포넌트의 입력부들에 임의의 값을 적용할 수 없다. 가블드 회로에 대한 세부 사항은, 다음 문헌을 참조하면 된다: "Foundations of Garbled Circuits", Mihir Bellare, Viet Tung Hoang, Phillip Rogaway, dated October 1, 2012.
사용자 단말(UT)에 의해 실행되는 해커 또는 악성 프로그램은, 디스플레이된 이미지 프레임(FRM)을 분석하거나 소프트웨어 컴포넌트(GC)를 실행 또는 분석함으로써, 타이핑될 디스플레이된 검증 코드(CC) 및 키패드 키 레이아웃을 획득하는 데 매우 짧은 시간을 갖는다. 따라서, 단계들 S21 내지 S33에서 해커가 인증되는 것이 매우 어려울 것으로 사료되는데, 그 이유는 타이핑된 위치들(POSi)은 단계 S24에서 사용자 단말(UT)로 전송된 소프트웨어 컴포넌트(GC)의 실행에 의해 디스플레이된 키패드(KYP) 및 인증 코드(CC)와 대응해야 하기 때문이다.
인증 서버(ASRV)가 소프트웨어 컴포넌트(GC)를 생성할 때, 소프트웨어 컴포넌트의 와이어 값들의 대응하는 이진 상태를 규정하기 위해서 해당 소프트웨어 컴포넌트의 와이어의 값들에서의 다른 비트 랭크를 사용하고자 할 수 있다. 논리 게이트(AGi)의 입력 값들에서의 선택된 비트 순위에서의 비트는 논리 게이트의 진리 테이블(GTT) 내에서 데이터를 선택하기 위해 사용되며, 소프트웨어 컴포넌트(GC)의 출력 값들(PXi)에서의 선택된 비트 순위에서의 비트는 추출되어 XOR 마스킹 모듈(XRG)에 적용된다.
본 명세서에서 설명된 예시들은 다양한 실시예들의 구조에 대한 일반적인 이해를 제공하기 위한 것이다. 이러한 예시는 본 명세서에서 설명된 구조 또는 방법을 이용하는 장치, 프로세서 및 시스템의 요소들 및 특징들 모두에 대한 완전한 설명을 제공하지는 않는다. 많은 다른 실시예들 또는 이들의 조합이 개시된 실시예들을 조합함으로써 본 개시를 검토하면 당업자에게 명백할 수 있다. 본 발명의 범위를 벗어나지 않고 구조적 및 논리적 대체 및 변경이 이루어질 수 있도록 다른 실시예들이 본 개시로부터 이용되고 파생될 수 있다.
본 명세서에 개시된 방법들은 사용자 단말(UT)의 메인 프로세서(HP)(CPU) 및/또는 적어도 부분적으로 사용자 단말(UT)의 그래픽 프로세서(GP)에 의해 실행 가능한 소프트웨어 프로그램들 의해 구현될 수 있다.
또한, 본 명세서에 개시된 방법들은 랜덤하게 선택된 레이아웃을 갖는 키패드 및 트랜잭션 검증 코드와 같은 민감한 정보를 디스플레이하는 것으로 제한되지 않는다. 실제로, 이러한 디스플레이의 목적은 사용자가 인증 서버(ASRV)와 공유되는 비밀 데이터를 알고, 인간에 의해서만 인식 가능한 방식으로 사용자 단말에 의해 제공된 정보를 인지하는 것을 확인하는 것이다. 다른 실시예들에서는 대안적인 시도-응답(challenge-response) 방식이 구현될 수 있다. 일 실시예에 따르면, 디스플레이된 메시지(MSG)는 디스플레이된 트랜잭션 검증 코드(CC)의 디지트들의 합산 또는 승산과 같은 결합을 사용자가 입력하도록 지시할 수 있다.
이에 더하여, 또는 다른 실시예들에서, 생성된 프레임들은 이전에 생성된 프레임과 차이가 나게 형성될 수 있다.
다른 실시예에 따르면, 그래픽 프로세서에서/에 의해서, 그래픽 프로세서의 픽셀 휘도, 가산 또는 감산 픽셀 컬러, 픽셀 리프레시 레이트, 또는 픽셀 플리커링 파라미터를 설정함으로써, 세그먼트들의 플리커링 또는 깜박임이 직접적으로 제어될 수 있다.
시도요청(challenge)이 디스플레이 스크린 상에 이를 디스플레이하는 것이 아닌 다른 수단을 사용하여 사용자에게 전송될 수 있다. 예를 들어, 시도요청은 2010년 4월 29일자에, Yusuf Adriansyah에 위해 공개된 "Simple Audio Cryptography"에서 기술된 바와 같은 오디오 암호화 알고리즘을 사용하여 오디오 수단을 통해 사용자에게 전송될 수 있다. 이러한 알고리즘에 따르면, 최초 오디오 시퀀스가 분해에 의해서 생성된 모든 소스 오디오 시퀀스들을 동시에 재생해야만 복원될 수 있으며, 이로써, 소스 오디오 시퀀스들 중 어느 하나라도 누락된 경우에는 최초 오디오 시퀀스를 복원하는 것이 매우 어렵게 되도록, 해당 최초 오디오 시퀀스가 이러한 최초의 오디오 시퀀스와 동일한 길이를 갖는 다수의 소스 오디오 시퀀스들로 분해된다. 2 개의 소스 오디오 시퀀스들이 동시에 재생될 수 있는데, 예를 들어, 일 소스 오디오 시퀀스는 사용자 단말(UT)에 의해서 재생되고, 다른 소스 오디오 시퀀스는 소스 오디오 시퀀스를 저장하는 메모리 및 상기 저장된 소스 오디오 시퀀스를 듣기 위한 사용자 단말의 마이크로폰 없이 상기 저장된 소스 오디오 시퀀스를 재생하는 헤드폰을 갖는 휴대용 장치와 같은 다른 수단을 통해 재생될 수 있다. 사용자가 2 개의 소스 오디오 시퀀스들을 동시에 재생함으로써 이해가능한 오디오 메시지를 듣는 경우, 이는 휴대용 장치에 의해 재생되는 소스 오디오 시퀀스가 단말에 의해서 재생되는 소스 오디오 시퀀스를 보완한다는 것을 의미한다.
다른 실시예에 따르면, 사용자는 그의 지문을 단계 S10에서 기록한다. 단계 S27에서, 소프트웨어 컴포넌트(GC)는 사용자에게 하나 또는 두 개의 특정 지문, 예를 들어, 엄지 지문 및 약지 지문을 입력할 것을 요구하는 메시지를 디스플레이한다. 이 메시지는 키 기호들(KYL) 및 트랜잭션 검증 코드(CC)를 나타내는 디지트들로서, 세그먼트들을 사용하여 디스플레이된다. 단계 S28 또는 단계 S54에서, 사용자는 요구된 지문을 입력하고, 검증 단계들 S30 및 S31에서, 인증 서버(ASRV)는 입력된 지문을 단계 S10 후에 자신이 저장한 것과 비교한다. 여기서, 공유된 비밀 데이터는 지문이며, 사용자에 의해 인지될 정보는 요청된 손가락을 특정하는 것이다.
또한, 본 명세서에서 개시된 방법은 트랜잭션의 유효성을 고려하여 사용자를 인증하는 것에 국한되지 않는다. 본 명세서에서 개시된 방법은 사용자로부터 또는 사용자에게 비밀 정보를 수신하거나 전송하는데 적용되거나, 보다 일반적으로는, 비보안 환경에서 보안 민감성 연산을 안전하게 수행하기 위해서 적용될 수 있다.
또한, 본 명세서에서 개시된 방법들은 단일 사용자 단말을 사용하여 이미지 프레임들을 디스플레이하고 비밀 데이터들(CC)을 도입하는 것을 포함하는 방법으로 제한되지 않는다. 본 명세서에 개시된 방법들은 다른 접속된 장치 상에서 사용자를 안전하게 인증하기 위해 적용될 수 있는데, 이 경우에 프레임 이미지들은 사용자 단말 상에 또는 스마트 워치, 가상 현실 안경 또는 렌즈와 같은 원격 디스플레이 상에 디스플레이되거나, 또는 표면 상에 투영되거나, 또는 3D 이미지의 형태로 디스플레이될 수 있다. 이와 유사하게, 비밀 데이터는 사용자 단말에 연결된 다른 장치에 입력되거나 음성 또는 제스처를 사용하여 입력될 수 있다. 따라서, "사용자 단말"이라는 용어는 디스플레이가 없는 단말, IoT 단말, 스마트 홈 단말 및 사용자가 데이터를 입력할 수 있는 임의의 입력 단말을 포함하는 단일 장치 또는 장치들의 세트를 지칭할 수 있다.
사용자 단말(UT)은 음성 또는 제스처에 의해 제어될 수 있다. 음성 명령이 명령으로 변환될 수 있다. 각각의 인식된 명령은 위치들(POSi) 중 하나와 등가적이다. 키패드는 제스처를 요구하는 하는 것, 기하학적 도면을 따라가는 것 또는 점들 간의 링크를 추적하는 것과 같은 임의의 다른 표현들로 대체될 수 있다. 또한, 입력 단말은 사용자가 공중에서 3D 제스처에 의해 상호 작용할 수 있는 3D 입력 단말 일 수 있다. 따라서, 위치들(POSi)은 공간에서의 3D 좌표 위치일 수 있다.
다른 실시예들에서, 디스플레이는 예를 들어, ATM, 자동 판매기, TV, 공중 디스플레이, 프로젝션 디스플레이, 가상 디스플레이, 3D 디스플레이 또는 홀로그램을 포함하는 임의의 디스플레이일 수 있다. 다른 실시예들에서, 단말은 예를 들어, 터치 스크린, 게임 액세서리, 제스처 획득 시스템, 음성 또는 사운드 명령 시스템을 포함하는 임의의 입력 장치일 수 있다.
다른 실시예들에서, 이미지 프레임들(FRM)은 이미지 마스크(IMSK)를 적용하지 않고 생성되고, 두 개의 디스플레이 디바이스를 사용하여 이미지 마스크(IMSK)와는 별개로 디스플레이되고, 이 두 개의 디스플레이 디바이스 중 하나는 투명하고, 예를 들어, 아이 렌즈의 형태로 된 디스플레이 디바이스이며, 디스플레이된 이미지들은 디스플레이 마스크(IMSK)와 중첩될 때 사용자에게 이해될 수 있다.
또한, 탬퍼링 및 리버스-엔지니어링으로부터 보호된 소프트웨어 컴포넌트의 실행 시에 랜덤화를 도입하는, 본 명세서에서 개시된 방법은, 이미지 또는 이미지 프레임에서 깜박이는 픽셀을 생성하는 것으로 제한되지 않는다. 보다 일반적으로, 본 방법은 리버스 엔지니어링 및 탬퍼링으로부터 보호되는 민감한 소프트웨어 기능에서 랜덤 상태가 요구되고, 이러한 민감한 소프트웨어 기능은 입력 데이터를 수신하고 출력 데이터를 제공하는 임의의 애플리케이션에서 사용될 수 있다. 예를 들어, 이러한 방법들은 키 도난에 노출된 암호화 키 또는 암호 암호해독 키를 사용하지 않고 데이터 보호하는 기법에 적용될 수 있다. 이러한 예에서, 소프트웨어 컴포넌트는 보호된 데이터의 일부를 랜덤 입력 데이터 세트의 함수로서 제공하며, 각각의 랜덤 입력 데이터는 가능한 두 개의 값을 갖는다. 이러한 소프트웨어 컴포넌트에 적용되는 랜덤 입력 값들의 각 결합은 보호된 데이터의 각 부분을 컴퓨팅하는 데 사용된다. 랜덤 입력 값들의 조합 수가 소프트웨어 컴포넌트를 실행함으로써 컴퓨팅될 수 있는 데이터 부분들의 수를 규정한다. 예를 들어, 보호될 데이터는 이미지일 수 있고, 그러한 이미지의 데이터 부분들은 이미지의 픽셀 값들 또는 이미지 픽셀들의 컬러 성분 값일 수 있으며, 이러한 소프트웨어 컴포넌트의 실행은 픽셀 값 또는 이의 일부 및 해당 이미지 내에서의 픽셀 위치를 제공한다("Secure Image Datasets in Cloud Computing", X. Arogya Presskila, P .Sobana Sumi, in International Journal of Advanced Research in Computer Science and Software Engineering, Vol. 4, Issue 3, March 2014 참조). 입력 값들의 일 조합에 적용되는 소프트웨어 컴포넌트의 일 실행에 의해 각각 컴퓨팅되는, 보호될 데이터 부분들은 목표 크기를 가질 수 있다. 예를 들어, 소프트웨어 컴포넌트는 일 실행에 의해 가우스 곡선의 포인트, 또는 히스토그램을 컴퓨팅하는데 사용되는 값을 제공하도록 구성될 수 있으며, 이러한 데이터 부분 값은 해당 소프트웨어 컴포넌트에 의해 컴퓨팅된 가장 높은 값에 대응하거나, 히스토그램에서 가장 많이 발생하는 횟수를 갖는 값에 대응한다. 이러한 보호된 데이터의 일부만이, 소프트웨어 컴포넌트의 입력 데이터의 2 개의 대안적 값들 중 일부만이 제공될 때에만, 액세스될 수 있으며, 해당 소프트웨어 컴포넌트의 다른 입력 데이터에 대해서는 오직 하나의 값만 제공된다.
또한, 본 명세서에 개시된 방법들은 인증 서버를 포함하는 구현예로 제한되지 않는다. 다른 구현예들은 도 2에 도시된 보안 프로세서(SE) 또는 사용자 단말의 메인 프로세서(HP) 내의 보안 도메인과 같은 사용자 단말 내의 보안 요소를 포함할 수 있다. 본 명세서에 개시된 방법들에서, 인증 서버(ASRV)에 의해 수행되는 모든 동작은 이러한 보안 요소에 의해 수행될 수 있다. 도 15는 사용자 단말(UT) 및 사용자 단말(UT)의 메인 프로세서(HP)에 링크된 보안 요소(SE)에 의해 수행되는 인증 단계들 S41 내지 S44을 예시하고, 이러한 단계들을 통해서 보안 요소는 사용자를 인증할 수 있다. 단계 S41에서, 사용자 단말(UT)은 보안 요소(SE)에 명령(CMD)을 전송하는데, 이 명령은 보안 요소에 의해 실행되기 전에 사용자의 인증을 요구한다. 이어서, 사용자 단말(UT)은 이전에 개시된 바와 같은, 단계 S26, 및 단계들 S28 내지 S30를 수행한다. 보안 요소(SE)는 인증 서버(ASRV) 대신에 단계들 S24, S25, S27 및 S31을 수행한다. 이어서, 보안 요소(SE)는 단계들 S42 내지 S44를 수행한다. 단계 S42에서, 보안 요소(SE)는 사용자에 의해 입력된 트랜잭션 검증 코드(CC1)를, 보안 요소(SE)에 의해 안전하게 저장된 대응하는 검증 코드 값(CC)과 비교한다. 사용자에 의해 입력된 트랜잭션 검증 코드(CC1)가 보안 요소(SE)에 의해 저장된 값(CC)과 일치하면, 보안 요소(SE)는 단계 S43을 수행하며, 이 단계에서, 보안 요소는 단계 S41에서 요구된 명령(CMD)을 실행한다. 단계 S44에서, 보안 요소(SE)는 상기 명령(CMD)의 실행 보고사항(RS)을 전송한다. 이러한 방식으로, 보안 요소(SE)는 사용자 단말(UT)의 사용자가 해당 명령(CMD)을 승인할 때에만 해당 명령을 실행한다.
일 실시예에 따르면, 도 15의 보안 요소(SE)는 NFC(근거리 무선 통신) 또는 블루투스와 같은 통신 링크를 통해 사용자 단말(UT)에 연결된 외부 단말에 의해 구현될 수 있거나 이러한 외부 단말의 일부일 수 있다. 외부 단말은 POS(Point of Sale) 단말일 수 있다.
또한, 본 명세서에서 개시된 방법들은 단지 2 개의 입력부들 및 1 개의 출력부를 갖는 논리 게이트들을 포함하는 가블드 회로로 제한되지 않는다. 3 개 이상의 입력 및 하나 이상의 출력을 갖거나 또는 3 개 이상의 유효 상태를 갖는 데이터를 수신하는 다른 유형의 논리 게이트들이 5 개 이상의 라인을 갖는 진리 테이블들을 사용하여 구현될 수 있다. 따라서, 입력(RNi)의 가능한 값들(RNiV1 및 RNiV2)을 전송하고 이들 중 하나를 선택함으로써 획득되는 랜덤도는 또한, 가블드 회로의 입력의 3 개 이상의 유효 값들을 전송하고 이들 중 하나의 값을 랜덤하게 선택함으로써 얻어질 수 있다.
또한, 본 명세서에서 개시된 방법은 가블드 회로에 의한 소프트웨어 컴포넌트의 구현으로 제한되지 않는다. 난독화된 프로그램을 포함시키는 것과 같이, 소프트웨어 컴포넌트를 다르게 구현하는 방식은, 사용자 단말(UT)의 메인 프로세서에 로딩된 프로그램의 일부를 은폐시키거나/시키고 이러한 프로그램의 민감한 부분이 비인가된 사람에게 알려지거나 이러한 사람에 의해서 수정되는 것을 방지하기 위해 사용될 수 있다. 프로그램을 난독화하는 방법은 예를 들어, 다음과 같은 문헌들에 개시되어 있다: "Obfuscating Circuits via Composite-Order Graded Encoding" Benny Applebaumy, Zvika Brakerskiz, IACR-TCC 12/01/2015, and "How to Obfuscate Programs Directly", Joe Zimmerman, IACR, 30/09/2014.
보다 일반적으로, 가블드 회로의 개념은 C 또는 C ++와 같은 언어로 작성된 프로그램을 VHDL 또는 Verilog와 같은 회로 설계 언어로 변환하여, 논리 게이트들을 포함하는 논리 또는 불 회로를 획득함으로써 수행될 수 있다.
또한, 본 명세서에 개시된 방법들은 난독화 또는 가블드 회로 방법을 사용하여 생성되는 것과 같은, 탬퍼링 및 리버스-엔지니어링으로부터 보호된 소프트웨어 컴포넌트의 사용으로 제한되지 않는다. 이러한 응용의 예로서, 본 명세서에 개시된 방법들은 비디오 게임 또는 의학적 눈 테스트와 같은, 높은 보안 레벨을 필요로 하지 않는 동작을 수행하는데 사용될 수 있다.
또한, 본 명세서에 개시된 방법들은 소프트웨어 컴포넌트의 출력 값들을 암호해독하기 위해 이미지 마스크(IMSK)와 같은 마스크를 사용하는 구현으로 제한되지 않는다. 다른 구현예들은 소프트웨어 컴포넌트를 생성 및 실행하여서 디스플레이될 픽셀 값들을 직접적으로 출력할 수 있다. 또한, 메시지(MSG)는 출력된 픽셀 값들에서 직접적으로 제공될 수 있다. 또한, 이미지 마스크는 소프트웨어 컴포넌트 또는 소프트웨어 컴포넌트의 구조 및 콘텐츠 데이터와는 별도로, 소프트웨어 컴포넌트의 실행 후에도 전송될 수 있다.
또한, 본 명세서에서 개시된 방법들은 하드웨어 키패드만을 포함하는 사용자 단말(UT)로 구현될 수 있으며, 이 경우에 디스플레이된 프레임들(FRM)은 단지 다른 키 기호들을 물리적 키패드에 할당하기 위해 디스플레이된다. 따라서, 사용자는 위치(POSi)를 입력하기 위해 디스플레이 스크린의 위치를 터치하는 대신에, 디스플레이된 프레임(FRM)에 디스플레이된 할당된 기호들에 대응하는, 키패드의 하드웨어 키들을 활성화시킨다.
본 명세서에서 표준 디스플레이 스크린을 위해서 사용되는 픽셀이라는 용어는 2D 디스플레이에 대한 2D 좌표, 또는 3D 또는 스테레오 디스플레이용 또는 프로젝션 디스플레이용 3D 좌표로서 이해될 수 있다.
또한, 본 개시 및 설명들은 제한적이라기보다는 예시적인 것으로 간주되어야하며, 첨부된 청구 범위는 본 설명의 진정한 사상 및 범위 내에 있는, 그러한 모든 수정 실시예들, 개선된 실시예들 및 다른 실시예들 또는 이들의 조합을 포함하도록 의도된다. 그러므로, 이하의 청구 범위는 해당 청구 범위 및 이의 등가 범위 중 가장 넓은 허용 가능한 해석 범위에 의해 결정되며, 전술한 설명에 의해 제한되거나 한정되지 말아야 한다.

Claims (18)

  1. 사용자 단말로부터 사용자를 인증하는 방법으로서,
    사용자 단말에 의해, 보안 프로세서로부터, 탬퍼링(tampering) 및 리버스 엔지니어링(reverse-engineering)으로부터 보호되는 소프트웨어 컴포넌트로서, 이미지 프레임에서 가시적이 될 확률이 100%보다 낮은 랜덤 픽셀들을 포함하는 이미지 프레임을 생성하도록 구성되는 소프트웨어 컴포넌트를 수신하는 단계;
    복수의 이미지 프레임을 생성하도록, 사용자 단말에 의해 상기 소프트웨어 컴포넌트를 복수 회 실행하는 단계;
    상기 복수의 이미지 프레임을 프레임 디스플레이 레이트로 디스플레이하는 단계로서, 상기 이미지 프레임은 상기 랜덤 픽셀들로 형성되어 머신이 인식할 수 없는 정보를 포함하고, 상기 프레임 디스플레이 레이트는 상기 정보가 사용자에 의해 인식될 수 있도록 하는 정도인, 상기 디스플레이 단계;
    상기 정보에 대하여 사용자로부터 응답을 획득하는 단계; 및
    사용자 단말에 의해, 상기 응답을 상기 보안 프로세서에 전송하는 단계;를 포함하며,
    상기 응답이 상기 정보에 대응할 때 상기 사용자가 인증되는, 사용자 인증 방법.
  2. 제 1 항에 있어서,
    상기 소프트웨어 컴포넌트는, 각각 랜덤 픽셀들을 포함하는 복수의 프레임 이미지 부분들을 생성하도록 구성되며,
    상기 방법은, 복수의 이미지 프레임을 생성하도록, 각각의 생성된 이미지 프레임 부분을 이미지 프레임 배경에 삽입하는 것을 더 포함하는, 사용자 인증 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 소프트웨어 컴포넌트는, 랜덤 픽셀들을 포함하는 암호화된 프레임 이미지 부분들을 생성하도록 구성되며,
    상기 방법은, 사용자 단말에 의해, 암호화된 이미지 프레임 부분의 각 픽셀에 암호해독 마스크의 대응하는 픽셀과의 XOR 연산을 적용함으로써, 각각의 생성된 암호화된 이미지 프레임 부분을 암호해독하는 것을 더 포함하며, 각각의 암호해독된 이미지 프레임 부분은 복수의 이미지 프레임 중 하나를 생성하도록 이미지 프레임 배경에 삽입되는, 사용자 인증 방법.
  4. 제 3 항에 있어서,
    상기 암호해독 마스크는, 생성된 암호화된 이미지 프레임 부분들 중 하나를 암호해독할 때, 디스플레이되는 이미지 프레임들에 메시지를 생성하도록 구성되는, 사용자 인증 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    디스플레이되는 이미지 프레임들 내의 머신에 의해 인식 불가한 정보는 기호, 또는 숫자, 또는 문자 및 숫자를 형성하도록 구성된 세그먼트들을 포함하고, 상기 세그먼트들의 적어도 일부는 상기 랜덤 픽셀들로 형성되는, 사용자 인증 방법.
  6. 제 5 항에 있어서,
    상기 세그먼트들은 키패드의 키들의 기호들(labels)을 형성하도록 구성되고, 상기 키 기호들은 랜덤 키 레이아웃을 가지며,
    상기 사용자로부터의 응답은, 사용자에 의해 연속적으로 선택된 키패드의 키들의 위치들을 포함하는, 사용자 인증 방법.
  7. 제 6 항에 있어서,
    상기 사용자로부터의 응답은, 상기 랜덤 픽셀들로 형성된 세그먼트들로 디스플레이되는 검증 코드에 대응하는 키패드의 키들의 위치들을 포함하는, 사용자 인증 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 소프트웨어 컴포넌트는 상기 랜덤 픽셀들이 디스플레이되는 이미지 프레임들에서 가시화될 확률을 설정하도록 구성되며, 상기 가시화될 확률은 한 세트의 가시화 확률 값들로부터 선택되는, 사용자 인증 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 소프트웨어 컴포넌트는 상기 랜덤 픽셀들이 디스플레이되는 이미지 프레임들에서 가시적으로 될 확률이 50% 값으로 설정되거나 또는 12.5% 내지 82.5%가 되게 상기 랜덤 픽셀들을 제공하도록 구성되는, 사용자 인증 방법.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 소프트웨어 컴포넌트는 회로 입력부들, 회로 출력부들, 논리 게이트들 및 와이어들(wires)을 포함하는 가블드 회로(garbled circuit)로서 인코딩되며,
    각각의 논리 게이트는 2개의 입력부들 및 1개의 출력부를 가지고, 각각의 와이어는 상기 회로 입력부들 중 하나 또는 논리 게이트들의 출력부들 중 하나에 접속된 제 1 단부, 및 상기 논리 게이트들의 입력부들 중 하나 또는 회로 출력부들 중 하나에 접속된 제 2 단부를 가지며,
    상기 가블드 회로는, 각각의 와이어의 각 이진 상태에 대한 유효 데이터를 랜덤하게 생성하고, 상기 가블드 회로의 일 논리 게이트에 대해, 논리 게이트의 각 입력부의 각 유효 데이터, 논리 게이트의 출력부의 각 유효 데이터, 및 논리 게이트에 의해 수행되는 논리 연산의 함수로서 진리 테이블 값들을 컴퓨팅함으로써 생성되는, 사용자 인증 방법.
  11. 제 10 항에 있어서,
    상기 소프트웨어 컴포넌트는 한 세트의 랜덤 픽셀들을 생성하기 위한 픽셀 세트 생성 회로를 포함하고, 각각의 생성 회로는 제 1 논리 게이트 및 한 세트의 제 2 논리 게이트들을 포함하며,
    상기 제 1 논리 게이트는 제 1 입력 데이터를 랜덤하게 선택된 제 2 입력 데이터에 결합하고 각각의 제 2 논리 게이트의 제 1 입력부에 출력 데이터를 제공하며,
    각각의 제 2 논리 게이트의 제 2 입력부는 제 3 입력 데이터를 수신하고,
    상기 제 2 논리 게이트들의 각각의 출력부는 랜덤 픽셀 세트의 픽셀 값들을 제공하는, 사용자 인증 방법.
  12. 제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 소프트웨어 컴포넌트는, 사용자 단말에 의해 실행되는 웹 브라우저 내에서 실행되는, 사용자 인증 방법.
  13. 사용자 단말로서,
    보안 프로세서로부터, 탬퍼링 및 리버스 엔지니어링으로부터 보호되는 소프트웨어 컴포넌트로서 이미지 프레임에서 가시적일 확률이 100%보다 낮은 랜덤 픽셀들을 포함하는 이미지 프레임을 생성하도록 구성되는 상기 소프트웨어 컴포넌트를 수신하도록 구성되고,
    복수의 이미지 프레임을 생성하도록 상기 소프트웨어 컴포넌트를 복수 회 실행하도록 구성되며,
    상기 복수의 이미지 프레임을 프레임 디스플레이 레이트로 디스플레이하도록 구성되며, 상기 이미지 프레임은 상기 랜덤 픽셀들로 형성되어 머신이 인식할 수 없는 정보를 포함하고, 상기 프레임 디스플레이 레이트는 상기 정보가 사용자에 의해 인식될 수 있도록 하는 정도이며,
    상기 사용자 단말은, 디스플레이되는 정보에 대하여 사용자로부터 응답을 획득하도록 구성되고, 상기 응답을 상기 보안 프로세서에 전송하도록 구성되며,
    상기 응답이 상기 정보에 대응할 때 사용자가 인증되는, 사용자 단말.
  14. 제 13 항에 있어서,
    제 2 항 내지 제 10 항 중 어느 한 항의 방법에서 사용자 단말에 의해 수행되는 단계들을 실행하도록 구성되는, 사용자 단말.
  15. 제 13 항 또는 제 14 항에 있어서,
    상기 보안 프로세서는, 사용자 단말 내에 설치되고 사용자 단말의 메인 프로세서에 접속된 보안 요소이거나, 데이터 전송 네트워크를 통해 사용자 단말에 연결된 원격 인증 서버에 속하는, 사용자 단말.
  16. 제 1 항 내지 제 12 항 중 어느 한 항의 방법에서 보안 프로세서에 의해 수행되는 단계들을 실행하도록 구성된 보안 요소로서,
    상기 보안 요소는 사용자 단말의 메인 프로세서에 접속되는, 보안 요소.
  17. 제 1 항 내지 제 12 항 중 어느 한 항의 방법에서 보안 프로세서에 의해 수행되는 단계들을 실행하도록 구성된 인증 서버로서,
    상기 인증 서버는 데이터 전송 네트워크를 통해 사용자 단말에 링크되는, 인증 서버.
  18. 컴퓨터 메모리 내에 로딩 가능한 컴퓨터 프로그램 제품으로서,
    컴퓨터에 의해 실행될 때, 제 13 항 내지 제 15 항 중 어느 한 항의 사용자 단말에 의해 수행되는 단계들을 수행하도록 상기 컴퓨터를 구성하는 프로그램 코드들을 포함하는, 컴퓨터 프로그램 제품.
KR1020170145502A 2016-11-02 2017-11-02 비-보안 단말에 의해 사용자를 인증하는 방법 KR20180048428A (ko)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
EP16196947.2 2016-11-02
EP16196957.1 2016-11-02
EP16196950.6 2016-11-02
EP16196950.6A EP3319001A1 (en) 2016-11-02 2016-11-02 Method for securely transmitting a secret data to a user of a terminal
EP16196957.1A EP3319002B1 (en) 2016-11-02 2016-11-02 Method for securely performing a sensitive operation using a non-secure terminal
EP16196945.6A EP3319000A1 (en) 2016-11-02 2016-11-02 Method for securing a transaction performed from a non-secure terminal
EP16196947.2A EP3319067B1 (en) 2016-11-02 2016-11-02 Method for authenticating a user by means of a non-secure terminal
EP16196945.6 2016-11-02
EP17172856.1 2017-05-24
EP17172856.1A EP3319069B1 (en) 2016-11-02 2017-05-24 Method for authenticating a user by means of a non-secure terminal

Publications (1)

Publication Number Publication Date
KR20180048428A true KR20180048428A (ko) 2018-05-10

Family

ID=61767971

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020170145524A KR20180048429A (ko) 2016-11-02 2017-11-02 비-보안 단말에 의해 사용자를 인증하는 방법
KR1020170145502A KR20180048428A (ko) 2016-11-02 2017-11-02 비-보안 단말에 의해 사용자를 인증하는 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020170145524A KR20180048429A (ko) 2016-11-02 2017-11-02 비-보안 단말에 의해 사용자를 인증하는 방법

Country Status (5)

Country Link
US (9) US20180196952A1 (ko)
EP (4) EP3319069B1 (ko)
KR (2) KR20180048429A (ko)
CN (4) CN109891418A (ko)
WO (2) WO2018083089A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019110380A1 (en) * 2017-12-04 2019-06-13 Koninklijke Philips N.V. Nodes and methods of operating the same
EP3528161A1 (en) * 2018-02-19 2019-08-21 Skeyecode Method for signing a transaction
US11042626B2 (en) * 2018-05-21 2021-06-22 Nextek Power Systems, Inc. Method of and system for authenticating a user for security and control
CN110661764A (zh) 2018-06-29 2020-01-07 阿里巴巴集团控股有限公司 安全多方计算协议的输入获取方法和装置
US10768951B2 (en) 2018-08-29 2020-09-08 Bank Of America Corporation Providing augmented reality user interfaces and controlling automated systems based on user activity information and pre-staging information
US11120496B2 (en) 2018-09-06 2021-09-14 Bank Of America Corporation Providing augmented reality user interfaces and controlling back-office data processing systems based on augmented reality events
US20200125705A1 (en) * 2018-10-19 2020-04-23 Ca, Inc. User authentication based on an association of biometric information with a character-based password
CN111639956B (zh) * 2018-11-16 2023-04-28 创新先进技术有限公司 提供和获取安全身份信息的方法及装置
US11374752B2 (en) * 2019-06-07 2022-06-28 Panasonic Avionics Corporation Secure transactions for in-flight entertainment systems
CN110516775B (zh) * 2019-07-11 2023-07-25 西安邮电大学 基于qr码用户秘密信息隐藏方法
GB201916413D0 (en) * 2019-11-11 2019-12-25 Mrb Corp Ltd Improved human verification
US11275945B2 (en) * 2020-03-26 2022-03-15 Varjo Technologies Oy Imaging system and method for producing images with virtually-superimposed functional elements
US10797866B1 (en) * 2020-03-30 2020-10-06 Bar-Ilan University System and method for enforcement of correctness of inputs of multi-party computations
WO2022018973A1 (ja) * 2020-07-22 2022-01-27 日本電産サンキョー株式会社 入力装置および情報処理装置
EP3979102A1 (en) * 2020-09-30 2022-04-06 Rubean AG Electronic device for performing an authentication operation
WO2022079657A1 (en) * 2020-10-15 2022-04-21 Vea Technologies Ltd A method and system for authenticating a user
CN112565265B (zh) * 2020-12-04 2022-11-01 国网辽宁省电力有限公司沈阳供电公司 物联网终端设备间的认证方法、认证系统及通讯方法
US20220217136A1 (en) * 2021-01-04 2022-07-07 Bank Of America Corporation Identity verification through multisystem cooperation
US11223652B1 (en) * 2021-01-27 2022-01-11 BlackCloak, Inc. Deception system
CN112836627B (zh) * 2021-01-29 2022-07-19 支付宝(杭州)信息技术有限公司 活体检测方法和装置

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006328A (en) * 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US20020188872A1 (en) * 2001-06-06 2002-12-12 Willeby Tandy G. Secure key entry using a graphical user inerface
KR20050057292A (ko) * 2002-09-09 2005-06-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 이미지 암호화 방법 및 시각적 해독 장치
WO2005009026A1 (en) * 2003-07-21 2005-01-27 Koninklijke Philips Electronics N.V. Image alignment
CA2509706A1 (en) * 2004-06-17 2005-12-17 Ronald Neville Langford Authenticating images identified by a software application
US20080105644A1 (en) * 2005-04-29 2008-05-08 Douglas Marcus H L Tamper-Evident Closure
US8448226B2 (en) * 2005-05-13 2013-05-21 Sarangan Narasimhan Coordinate based computer authentication system and methods
GB2426837A (en) * 2005-06-01 2006-12-06 Hewlett Packard Development Co Checking the integrity of a software component
US7484173B2 (en) * 2005-10-18 2009-01-27 International Business Machines Corporation Alternative key pad layout for enhanced security
KR100848642B1 (ko) * 2007-02-22 2008-07-28 고려대학교 산학협력단 영상 프레임을 암호화하는 방법과 복원하는 방법
US20080209227A1 (en) * 2007-02-28 2008-08-28 Microsoft Corporation User Authentication Via Biometric Hashing
JP4696099B2 (ja) * 2007-08-07 2011-06-08 日立オムロンターミナルソリューションズ株式会社 表示画像変換装置
WO2009056897A1 (en) * 2007-10-30 2009-05-07 Telecom Italia S.P.A Method of authentication of users in data processing systems
US8010782B2 (en) * 2008-01-18 2011-08-30 Sap Ag Method and system for mediated secure computation
US8456478B2 (en) * 2008-10-30 2013-06-04 Microchip Technology Incorporated Microcontroller with integrated graphical processing unit
CN102714592B (zh) * 2009-06-24 2016-03-16 亚洲凯普托服务有限公司 产生可视密钥的方法和系统
JP4950315B2 (ja) * 2010-02-26 2012-06-13 楽天株式会社 データ生成装置、データ生成方法、及びデータ生成プログラム
US8209743B1 (en) * 2010-03-09 2012-06-26 Facebook, Inc. CAPTCHA image scramble
CN103098069B (zh) * 2010-09-08 2016-10-26 惠普发展公司,有限责任合伙企业 安全升级供应和方法
RS57512B1 (sr) * 2011-02-10 2018-10-31 Fireblade Holdings Llc Razlikovanje stvarnih korisnika od botova, ocr sistema i učešća treće strane prilikom captcha provere
FR2971599B1 (fr) * 2011-02-11 2013-03-15 Jean Luc Leleu Procede de transaction securisee a partir d'un terminal non securise
US8682750B2 (en) * 2011-03-11 2014-03-25 Intel Corporation Method and apparatus for enabling purchase of or information requests for objects in digital content
EP2523140B1 (en) * 2011-05-12 2014-09-24 Konvax Corporation Secure user credential control
US9485237B1 (en) * 2011-10-19 2016-11-01 Amazon Technologies, Inc. Confidence-based authentication
CN102340402B (zh) * 2011-10-28 2013-09-18 中国人民解放军国防科学技术大学 基于视觉密码的身份认证方法
US20130301830A1 (en) * 2012-05-08 2013-11-14 Hagai Bar-El Device, system, and method of secure entry and handling of passwords
US20150067786A1 (en) * 2013-09-04 2015-03-05 Michael Stephen Fiske Visual image authentication and transaction authorization using non-determinism
US10048861B2 (en) * 2012-11-27 2018-08-14 Thomson Licensing Adaptive virtual keyboard
US9563926B2 (en) * 2013-03-14 2017-02-07 Applied Materials Technologies Limited System and method of encoding content and an image
US9003196B2 (en) * 2013-05-13 2015-04-07 Hoyos Labs Corp. System and method for authorizing access to access-controlled environments
JP5801348B2 (ja) * 2013-06-10 2015-10-28 レノボ・シンガポール・プライベート・リミテッド 入力システム、入力方法およびスマートフォン
CN103345602B (zh) 2013-06-14 2015-08-19 腾讯科技(深圳)有限公司 一种客户端代码完整性检测方法、装置和系统
US9582716B2 (en) * 2013-09-09 2017-02-28 Delta ID Inc. Apparatuses and methods for iris based biometric recognition
US9076231B1 (en) 2014-02-18 2015-07-07 Charles Hill Techniques for displaying content on a display to reduce screenshot quality
US20150371611A1 (en) * 2014-06-19 2015-12-24 Contentguard Holdings, Inc. Obscurely rendering content using masking techniques
US9483653B2 (en) * 2014-10-29 2016-11-01 Square, Inc. Secure display element
US10846696B2 (en) * 2015-08-24 2020-11-24 Samsung Electronics Co., Ltd. Apparatus and method for trusted execution environment based secure payment transactions
EP3144798B1 (en) * 2015-09-18 2020-12-16 Canon Kabushiki Kaisha Image processing apparatus, method of controlling the same, and storage medium

Also Published As

Publication number Publication date
US20180198774A1 (en) 2018-07-12
US20190260748A1 (en) 2019-08-22
EP3535746A1 (en) 2019-09-11
US10565357B2 (en) 2020-02-18
US20180196952A1 (en) 2018-07-12
CN108021800A (zh) 2018-05-11
CN108021793A (zh) 2018-05-11
EP3535680A1 (en) 2019-09-11
US20180145827A1 (en) 2018-05-24
EP3319070A1 (en) 2018-05-09
US20180196927A1 (en) 2018-07-12
WO2018083088A1 (en) 2018-05-11
WO2018083089A1 (en) 2018-05-11
CN109891418A (zh) 2019-06-14
EP3319069A1 (en) 2018-05-09
US20190260747A1 (en) 2019-08-22
US20180198784A1 (en) 2018-07-12
CN109891478A (zh) 2019-06-14
US20180165443A1 (en) 2018-06-14
US20180144112A1 (en) 2018-05-24
EP3319069B1 (en) 2019-05-01
KR20180048429A (ko) 2018-05-10

Similar Documents

Publication Publication Date Title
EP3319069B1 (en) Method for authenticating a user by means of a non-secure terminal
US10592651B2 (en) Visual image authentication
US20190258829A1 (en) Securely performing a sensitive operation using a non-secure terminal
EP3319067B1 (en) Method for authenticating a user by means of a non-secure terminal
KR20180048423A (ko) 비-보안 단말에서 수행되는 트랜잭션을 안전하게 보호하는 방법
KR20180048426A (ko) 단말의 사용자에게 비밀 데이터를 안전하게 전송하는 방법
KR20180048425A (ko) 단말의 사용자에게 비밀 데이터를 안전하게 전송하는 방법
EP3594838A1 (en) Method for recovering a secret key securely stored in a secure element
EP3528161A1 (en) Method for signing a transaction
EP3319002B1 (en) Method for securely performing a sensitive operation using a non-secure terminal
EP3319269A1 (en) Method for securely performing a sensitive operation using a non-secure terminal
Smita et al. Graphical Password Authentication for Securing Online Banking System