KR101591255B1 - 클라이언트로부터 생성되는 정보에 대한 차동 클라이언트측 암호화 - Google Patents

클라이언트로부터 생성되는 정보에 대한 차동 클라이언트측 암호화 Download PDF

Info

Publication number
KR101591255B1
KR101591255B1 KR1020147011394A KR20147011394A KR101591255B1 KR 101591255 B1 KR101591255 B1 KR 101591255B1 KR 1020147011394 A KR1020147011394 A KR 1020147011394A KR 20147011394 A KR20147011394 A KR 20147011394A KR 101591255 B1 KR101591255 B1 KR 101591255B1
Authority
KR
South Korea
Prior art keywords
computing device
data
processing
encrypted
encrypted data
Prior art date
Application number
KR1020147011394A
Other languages
English (en)
Other versions
KR20140099231A (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 KR20140099231A publication Critical patent/KR20140099231A/ko
Application granted granted Critical
Publication of KR101591255B1 publication Critical patent/KR101591255B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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
    • H04L63/0471Network 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 applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

다수의 공개 키를 할당하는 단계와, 다수의 개인 키를 저장하는 단계와, 하나 이상의 해독 알고리즘을 저장하는 단계를 포함하는 방법이 제공되며, 각각의 공개 키는 다수의 엔티티의 각각의 엔티티에 할당되고, 각각의 개인 키는 각각의 공개 키에 대응하며, 각각의 해독 알고리즘은 복수의 암호화 알고리즘 중 적어도 하나의 암호화 알고리즘을 이용해서 이전에 암호화된 데이터를 해독하도록 구성된다. 각각의 암호화 알고리즘은 적어도 하나의 공개 키를 이용해서 데이터를 암호화하도록 구성될 수 있다. 각각의 해독 알고리즘은 적어도 하나의 개인 키를 이용해서 데이터를 해독하도록 구성될 수 있다. 이 방법은 암호화된 데이터를 수신하는 단계를 포함하고, 이 암호화된 데이터는 제 1 공개 키 및 제 1 암호화 알고리즘을 이용해서 암호화된 것이며, 이 암호화된 데이터가 네트워크를 통해서 제공된다.

Description

클라이언트로부터 생성되는 정보에 대한 차동 클라이언트측 암호화{DIFFERENTIAL CLIENT-SIDE ENCRYPTION OF INFORMATION ORIGINATING FROM A CLIENT}
본 출원은 2011년 9월 30일에 출원된 미국 가출원 제 61/541,875 호 "Systems and Methods for Differential Client-Side Encryption of Information Originating from a Client"의 우선권을 주장하며, 그 전체 내용은 여기에 참조로서 포함된다.
개인 데이터와 같은 정보 및 다른 민감한 정보가, 예컨대 신용 정보, 지불 정보 혹은 개인 계좌 관리 정보를 제공하기 위해서 인터넷과 같은 네트워크를 통해서 전송될 수 있다. 민감 정보를 보호하기 위해서, 이 정보는 TLS(Transport Layer Security) 혹은 SSL(Secure Socket Layer)와 같은 보안 전송 접속을 통해서 전송될 수 있다.
인가받지 않고 리뷰하는 것으로부터 정보를 보호하기 위해서, 정보는 디지털적으로 암호화될 수 있다. 디지털 암호화의 일례가 공개 키 암호법이다. 공개 키 암호법 방식에서는, 정보를 보호하는데 2개의 별개의, 그러나 수학적으로는 접속된 키(예컨대, 수치값)이 사용된다. 첫번째인 공개 키는 암호화 알고리즘을 이용해서 데이터를 암호화하는데 사용된다. 두번째인 개인키는 데이터의 수신기가 암호화된 정보를 복호하는데 사용될 수 있다. 수신기는, 송신기가 정보를 수신기에 보안 전송할 수 있도록, 공개키를 송신기에 공급한다.
민감 정보의 수신기는 사용자의 프라이버시를 민감 정보에 대한 인가되지 않은 액세스로부터 보호하도록 의무화될 수 있다. 만약 정보가 기밀이라면 정보는 민감할 수 있다(예컨대, 산업 표준 및/또는 전문 표준은, 지정된 단체만이 이 정보에 대해 액세스해야 한다는 것을 나타내고 있다). 만약 단체가 정보에 대한 노출로 인해 정보를 처리하는 규제 의무를 지게 되면, 그 정보는 민감할 수 있다. 만약 단체가 정보의 처리 및/또는 정보에 대한 노출로 인해 잠재적인 법적 책임을 지게 되면 그 정보는 민감할 수 있다.
상황에 따라서 민감 정보의 수신기는, 요청자에 의한 사용이 아닌, 신용 카드 시스템 혹은 건강 보험 인증 시스템과 같은 제 3 자에 의한 처리를 위해서, 사용자로부터 민감 정보를 요청할 수 있다. 요청자가 전달 내용에 액세스하는 일없이, 요청자의 시스템을 통해서 민감 정보를 전달할 수 있게 하는 방법 및 장치가 요구되고 있다. 요청자가 민감 정보를 렌더링 및/또는 해석할 수 없다면, 요청자는 민감 정보를 보호할 의무를 피할 수 있다.
일 측면에서, 본 개시는, 제 1 컴퓨팅 장치의 프로세서가, 복수의 공개 키를 할당하는 단계를 포함할 수 있는 방법에 관한 것으로, 이 복수의 공개 키의 각각의 공개 키는 복수의 엔티티의 각각의 엔티티에 할당된다. 이 방법은, 제 1 컴퓨팅 장치의 메모리에 복수의 개인 키를 저장하는 단계를 포함할 수 있으며, 이 복수의 개인 키의 각각의 개인 키는 복수의 공개 키의 각각의 공개 키에 대응한다. 이 방법은, 제 1 컴퓨팅 장치의 메모리에 하나 이상의 해독 알고리즘을 저장하는 단계를 포함할 수 있으며, 하나 이상의 해독 알고리즘의 각각의 해독 알고리즘은 하나 이상의 암호화 알고리즘 중 적어도 하나의 암호화 알고리즘을 이용해서 이전에 암호화된 데이터를 해독하도록 구성된다. 하나 이상의 암호화 알고리즘의 각각의 암호화 알고리즘은 복수의 공개 키 중 적어도 하나의 공개 키를 이용해서 데이터를 암호화하도록 구성된다. 하나 이상의 해독 알고리즘의 각각의 해독 알고리즘은 복수의 개인 키 중 적어도 하나의 개인 키를 이용해서 데이터를 해독하도록 구성된다. 이 방법은, 암호화된 데이터를 수신하는 단계를 포함할 수 있으며, 암호화된 데이터는 복수의 공개 키 중 제 1 공개 키 및 하나 이상의 암호화 알고리즘 중 제 1 암호화 알고리즘을 이용해서 암호화되고, 암호화된 데이터가 네트워크를 통해서 제공된다. 이 방법은 제 1 컴퓨팅 장치의 프로세서가, 복수의 개인 키 중 제 1 개인 키를 결정하는 단계를 포함할 수 있으며, 제 1 개인 키는 제 1 공개 키에 대응하고, 제 1 공개 키는 복수의 엔티티 중 제 1 엔티티에 할당된다. 이 방법은 제 1 컴퓨팅 장치의 프로세서가, 제 1 개인 키 및 하나 이상의 해독 알고리즘 중 적어도 하나의 해독 알고리즘을 이용해서, 암호화된 데이터를 해독하는 단계를 포함할 수 있으며, 해독된 데이터는 암호화된 데이터를 해독해서 획득된다. 이 방법은 해독된 데이터의 일부를 처리 엔진에 의한 처리를 위해서 제공하는 단계를 포함할 수 있으며, 제 2 컴퓨팅 장치가 처리 엔진을 포함한다. 이 방법은 처리 엔진에 의해 생성된 처리 결과를 수신하는 단계를 포함할 수 있으며, 이 처리 결과는 해독된 데이터의 일부와 관련된다. 이 방법은 처리 결과를 네트워크를 통해서 제 1 엔티티에 제공하는 단계를 포함할 수 있다.
일부 실시예에서, 이 방법은 처리 엔진에 의한 처리를 위해서 해독된 데이터의 일부를 제공하는 단계 전에, 제 1 컴퓨팅 장치의 프로세서가 해독된 데이터를 처리를 위해서 큐잉하는 단계를 더 포함할 수 있다.
이 방법은 암호화된 데이터를 수신하는 단계 전에, 제 1 암호화 알고리즘의 다운로드 요청을 수신하는 단계와, 제 1 암호화 알고리즘을 네트워크를 통해서 제 3 컴퓨팅 장치에 제공하는 단계를 더 포함할 수 있으며, 다운로드 요청은 네트워크를 통해서 제 3 컴퓨팅 장치로부터 수신된다. 이 다운로드 요청은 하이퍼텍스트 전송 프로토콜 요청을 포함한다. 이 방법은 제 1 컴퓨팅 장치의 메모리에, 하나 이상의 암호화 알고리즘을 하나 이상의 암호화 서브프로그램으로서 저장하는 단계를 더 포함하고, 제 1 암호화 알고리즘을 제공하는 단계는, 하나 이상의 암호화 서브프로그램 중 제 1 암호화 서브프로그램을 제공하는 단계를 포함하며, 제 1 암호화 서브프로그램은 제 1 암호화 알고리즘을 포함한다. 제 1 암호화 서브프로그램은 런타임 해석식 명령어(runtime interpreted instructions)를 포함한다.
일부 실시예에서, 이 방법은 해독된 데이터 및 암호화된 데이터 중 적어도 하나를, 제 1 컴퓨팅 장치가 액세스할 수 있는 저장 보관소(storage archive)에 저장하는 단계를 포함할 수 있다. 이 방법은 네트워크를 통해서 암호화되지 않은 데이터를 수신하는 단계와, 처리 엔진에 의한 처리를 위해서 암호화되지 않은 데이터의 일부를 제공하는 단계를 포함할 수 있으며, 암호화되지 않은 데이터는 암호화된 데이터와 연관되고, 암호화되지 않은 데이터의 일부는 해독된 데이터의 일부와 함께 제공된다.
일부 실시예에서, 이 방법은 네트워크를 통해서 암호화된 데이터에서 실행될 처리의 타입의 표시를 수신하는 단계를 더 포함하고, 처리의 타입의 표시는, 제 1 엔티티가 제어하는 제 3 컴퓨팅 장치에 의해 제공된다. 처리의 타입은 신용 카드 인증 및 신원 조사 중 적어도 하나를 포함할 수 있다. 암호화된 데이터는 신용 카드 번호, 병력(medical history) 정보, 사회 보장 번호, 은행 계좌 번호 및 운전 면허 번호 중 하나 이상을 포함할 수 있다. 암호화된 데이터는, 제 1 엔티티가 제어하는 제 3 컴퓨팅 장치로부터 네트워크를 통해서 제공될 수 있고, 제 1 엔티티는 암호화된 데이터를 해독할 수 없다.
일 측면에서, 본 개시는 제 1 컴퓨팅 장치의 메모리에 하나 이상의 암호화 알고리즘을 저장하는 단계와, 하나 이상의 암호화 알고리즘 중 제 1 암호화 알고리즘을, 네트워크를 통해서 요청자에게 제공하는 단계와, 제 1 컴퓨팅 장치의 메모리에, 하나 이상의 해독 알고리즘을 저장하는 단계를 포함하는 방법을 개시하고 있으며, 여기서 하나 이상의 해독 알고리즘의 각각의 해독 알고리즘은 하나 이상의 암호화 알고리즘 중 적어도 하나의 암호화 알고리즘을 이용해서 이전에 암호화된 데이터를 해독하도록 구성된다. 이 방법은 처리 요청을 수신하는 단계를 포함할 수 있으며, 여기서 처리 요청은 암호화된 데이터, 암호화되지 않은 데이터, 수행될 처리의 타입의 표시를 포함하고, 처리 요청은 엔티티가 제어하는 제 2 컴퓨팅 장치로부터 네트워크를 통해서 제공되고, 암호화된 데이터는 제 1 암호화 알고리즘을 이용해서 암호화된다. 이 방법은 제 1 컴퓨팅 장치의 프로세서가, 암호화된 데이터가 엔티티와 관련되어 있다고 결정하는 단계와, 제 1 컴퓨팅 장치의 프로세서가, 하나 이상의 해독 알고리즘 중 제 1 해독 알고리즘을 결정하는 단계와, 제 1 컴퓨팅 장치의 프로세서가, 암호화된 데이터를 제 1 해독 알고리즘을 이용해서 해독하되, 해독되는 데이터는 암호화된 데이터를 해독함으로써 획득되는 단계와, 제 1 컴퓨팅 장치의 프로세서가, 처리의 타입을 이용해서 해독된 데이터를 처리하도록 구성된 처리 엔진을 결정하는 단계와, 해독된 데이터의 일부 및 암호화되지 않은 데이터의 일부를 제 2 네트워크를 통해서 처리 엔진을 포함하는 제 3 컴퓨팅 장치에 제공하는 단계를 포함할 수 있다. 이 방법은 제 3 컴퓨팅 장치로부터 처리 결과를 수신하는 단계와, 처리 결과를 제 2 컴퓨팅 장치에 제공하는 단계를 포함할 수 있다.
일부 실시예에서, 제 1 암호화 알고리즘은 비대칭형 암호화 알고리즘이 될 수 있다. 이 방법은 제 1 컴퓨팅 장치의 프로세서가, 공개 키를 엔티티에 할당하는 단계와, 공개 키를 제 2 컴퓨팅 장치에 제공하되, 공개 키를 이용해서 암호화된 데이터가 암호화되는 단계와, 제 1 컴퓨팅 장치의 메모리에 개인 키를 저장하는 단계를 더 포함할 수 있다. 개인 키는 공개 키와 쌍이 되고, 암호화된 데이터를 해독하는 단계는 개인 키를 이용해서 해독하는 단계를 포함한다.
본 개시의 일 측면에서, 방법은, 제 1 컴퓨팅 장치의 메모리에, 하나 이상의 암호화 알고리즘을 하나 이상의 암호화 서브프로그램으로서 저장하는 단계와, 하나 이상의 암호화 서브프로그램 중 제 1 암호화 서브프로그램의 다운로드 요청을 네트워크를 통해서 수신하는 단계와, 제 1 암호화 서브프로그램을 네트워크를 통해서 제공하는 단계와, 네트워크를 통해서, 처리 요청을 수신하는 단계를 포함하고, 처리 요청은 암호화된 데이터를 포함하고, 암호화된 데이터는 제 1 암호화 서브프로그램을 이용해서 암호화된다. 이 방법은 제 1 컴퓨팅 장치의 프로세서가, 암호화된 데이터가 엔티티와 관련되어 있다고 결정하는 단계와, 제 1 컴퓨팅 장치의 프로세서가, 암호화된 데이터를 해독하도록 구성된 제 1 해독 알고리즘을 결정하는 단계와, 제 1 컴퓨팅 장치의 프로세서가, 암호화된 데이터를 제 1 해독 알고리즘을 이용해서 해독하는 단계를 포함할 수 있고, 해독되는 데이터는 암호화된 데이터를 해독함으로써 획득된다. 이 방법은 제 1 컴퓨팅 장치의 프로세서가, 해독된 데이터를 처리할 처리 엔진을 결정하는 단계와, 해독된 데이터의 일부를 제 2 네트워크를 통해서 처리 엔진을 포함하는 제 2 컴퓨팅 장치에 제공하는 단계와, 제 2 컴퓨팅 장치로부터 처리 결과를 수신하는 단계와, 처리 결과를 네트워크를 통해서 엔티티에 의해 제어되는 제 3 컴퓨팅 장치에 제공하는 단계를 포함할 수 있다.
처리 요청은 제 3 컴퓨팅 장치로부터 수신될 수 있다. 처리 결과는 승인 및 거부 중 적어도 하나의 표시를 포함할 수 있다. 다운로드 요청은, 최종 사용자가 제어하는 제 4 컴퓨팅 장치로부터 수신될 수 있고, 제 4 컴퓨팅 장치는 제 2 컴퓨팅 장치 및 제 3 컴퓨팅 장치와는 상이하다.
일 측면에서, 본 개시는 엔티티가 사용하도록, 공개 키와 쌍이 되는 개인 키를 유지하고 있는 서비스 제공자가 할당하는 공개 키를 수신하는 단계와, 제 1 컴퓨팅 장치의 프로세서가, 공개 키를 포함하는 인터렉티브 프로그램을 결정하는 단계와, 인터렉티브 프로그램을 최종 사용자에게 제공하는 단계를 포함하는 방법을 설명하고 있으며, 여기서 인터렉티브 프로그램은 제 2 컴퓨팅 장치의 프로세서가 공개 키를 이용해서 데이터를 암호화할 수 있게 하도록 구성되어 있고, 제 2 컴퓨팅 장치는 최종 사용자에 의해 제어된다. 이 방법은, 제 2 컴퓨팅 장치로부터 제 1 네트워크를 통해서 암호화된 데이터를 수신하는 단계와, 암호화된 데이터를 제 2 네트워크를 통해서 서비스 제공자에게 포워딩하는 단계와, 서비스 제공자로부터 암호화된 데이터의 해독과 관련된 처리 결과를 수신하는 단계를 포함할 수 있고, 여기서 암호화된 데이터는 공개 키를 이용해서 제 2 컴퓨팅 장치의 프로세서에 의해 암호화되고, 서비스 제공자는 개인 키를 결정하고 암호화된 데이터를 해독하도록 구성되어 있으며, 제 1 컴퓨팅 장치는 암호화되지 않은 데이터에 액세스할 수 없다.
인터렉티브 프로그램은 모바일 컴퓨팅 장치 애플리케이션이 될 수 있고, 제 2 컴퓨팅 장치는 모바일 컴퓨팅 장치이며, 여기서 모바일 컴퓨팅 장치 애플리케이션은 제 2 컴퓨팅 장치의 프로세서에 인스톨되도록 구성될 수 있다.
인터렉티브 프로그램은, 실행시에, 제 2 컴퓨팅 장치의 프로세서로 하여금, 공개 키를 이용해서 데이터를 암호화하게 하는 명령어를 포함할 수 있다. 인터렉티브 프로그램은, 실행시에, 제 2 컴퓨팅 장치의 프로세서로 하여금, 엔티티 및 서비스 제공자 중 하나로부터 암호화 서브프로그램을 다운로드하게 하는 명령어를 포함할 수 있다. 인터렉티브 프로그램은 인터넷 브라우저 애플리케이션 내에 렌더링될 수 있는 명령어를 포함할 수 있다. 이 방법은 제 2 컴퓨팅 장치에 결과 정보를 제공하는 단계를 더 포함하고, 결과 정보는 제 2 컴퓨팅 장치의 디스플레이에 표시되도록 구성된다.
일 측면에서 본 개시는, 하나 이상의 암호화 알고리즘 및 공개 키를 수신하는 단계를 포함하는 방법을 설명하고 있으며, 여기서 하나 이상의 암호화 알고리즘은 공개 키를 이용해서 데이터를 암호화해서 암호화된 데이터를 획득하도록 구성되고, 암호화된 데이터는, 공개 키와 쌍이 되는 개인 키를 이용해서 해독되도록 구성되며, 또한 하나 이상의 암호화 알고리즘 및 공개 키는 네트워크를 통해서 서비스 제공자에 의해 제공되되, 공개 키는 엔티티에서 사용하도록 서비스 제공자에 의해 할당된 것이고, 서비스 제공자는 개인 키를 저장하고 있다. 이 방법은 제 1 컴퓨팅 장치의 프로세서가, 하나 이상의 암호화 알고리즘 및 공개 키를 포함한 모바일 장치 애플리케이션을 생성하는 단계와, 모바일 장치 애플리케이션을 네트워크를 통해서 다운로드하도록 제공하는 단계와, 암호화된 데이터를 수신하는 단계를 포함할 수 있으며, 여기서 데이터는 모바일 컴퓨팅 장치의 프로세스가 하나 이상의 암호화 알고리즘 및 공개 키를 이용해서 암호화한 것이고, 모바일 장치 애플리케이션은 모바일 컴퓨팅 장치에 인스톨되어 있다. 본 발명은 암호화된 데이터를 제 2 컴퓨팅 장치에 포워딩하는 단계를 포함할 수 있고, 제 2 컴퓨팅 장치는 서비스 제공자에 의해 제어되고, 서비스 제공자는 암호화된 데이터를 해독해서 해독된 데이터를 획득하고, 해독된 데이터의 처리를 관리해서 처리 결과를 획득하도록 구성된다. 이 방법은 제 2 컴퓨팅 장치로부터 처리 결과를 수신하는 단계를 포함할 수 있다.
일부 실시예에서, 이 방법은 제 3 컴퓨팅 장치가, 처리 결과에 기초한 결과 정보를 생성하는 단계와, 결과 정보를 네트워크를 통해서, 모바일 컴퓨팅 장치에서 실행되는 모바일 장치 애플리케이션에 제공하는 단계를 더 포함할 수 있다. 제 1 컴퓨팅 장치는 제 3 컴퓨팅 장치가 될 수 있다.
이 방법은 제 2 컴퓨팅 장치에, 처리 타입의 표시를 제공하는 단계를 더 포함하고, 처리 타입은 암호화된 데이터와 연관되어 있으며, 서비스 제공자는 해독된 데이터의 처리를 처리 타입에 기초해서 관리한다.
본 개시의 상술한 그리고 다른 목적, 측면, 특징 및 이점은, 첨부된 도면과 함께 이하의 설명을 참조함으로써 더욱 명확해지고, 더욱 이해할 수 있을 것이다.
도 1은 클라이언트로부터 생성되는 정보에 대한 클라이언트측 암호화를 가능하게 하는 예시적인 시스템의 블록도이다.
도 2a는 지불 처리 상황에서, 클라이언트로부터 생성되는 정보에 대한 클라이언트측 암호화를 가능하게 하는 예시적인 시스템의 블록도이다.
도 2b는 클라이언트측 암호화를 가능하게 하는, 도 2a의 시스템과 같은 시스템을 통한 예시적인 처리의 스윔레인도이다.
도 3은 정보에 대한 클라이언트측 암호화를 가능하게 하는, 무선 컴퓨팅 장치 애플리케이션을 제공하고 이용하는 예시적인 동작 흐름의 스윔레인도이다.
도 4는 클라이언트로부터 생성되는 정보에 대한 클라이언트측 암호화를 가능하게 하는 예시적인 방법의 흐름도이다.
도 5는 매장에서의 변동 데이터를 수집하고 조작하는 예시적인 네트워크 환경의 블록도이다.
도 6은 컴퓨팅 장치 및 모바일 컴퓨팅 장치의 블록도이다.
본 개시의 특징 및 이점은, 도면을 참조하면서 설명되는 이하의 상세한 설명으로부터 더욱 명확해질 것이며, 도면 전체에서 동일한 참조 기호는 대응하는 구성 요소를 나타낸다. 도면에서, 동일한 참조 번호는 전반적으로, 동일한, 기능적으로 유사한 및/또는 구조적으로 유사한 구성 요소를 가리킨다.
중개 단체는 최종 사용자로부터 정보를 수신할 수 있다. 이 중개 단체는 이 정보의 적어도 일부를 백엔드(backend) 서비스 제공자에게 처리를 위해서 전송할 수 있다. 이 정보에 대한 액세스 및/또는 노출의 결과, 중개 단체는 잠재적인 의무를 갖게 된다.
전체적인 관점에서, 본 개시의 시스템 및 방법은, 엔티티가 최종 사용자로부터 정보를 획득하고, 그 안에 있는(underlying) 패이로드 정보를 노출시키지 않고, 이 정보의 적어도 일부를 백엔드 서비스 제공자에게 전송하는 것을 가능하게 할 수 있다. 엔티티 혹은 중개자는, 전송하기 이전에, 최종 사용자에 의해 동작되는 컴퓨팅 장치가 정보를 암호화하는 것을 가능하게 할 수 있다. 이 엔티티는 암호화된 정보를 중개자를 통해서 백엔드 서비스 제공자에게 송신할 수 있으며, 여기서 정보는 해독될 수 있다. 엔티티 및 중개자가 암호화된 정보, 해석이 불가능한 정보, 인간에 의한 렌더링이 불가능한 정보, 및/또는 평문(plain text) 정보를 수신하기 때문에, 이 엔티티는 이 정보가 보안되어 있다는 것을 사용자에게 확신시킬 수 있다. 유사하게, 중개자는 백엔드 서비스 제공자에게, 이 정보가 보안되어 있다는 것을 확신시킬 수 있다. 나아가, 암호화된 정보의 저장과 관련된 보안 위험이 줄어들 수 있기 때문에, 엔티티 및/또는 중개자는 암호화된 정보를 저장해서, 최종 사용자로부터 수신한 정보를 비동기적으로 처리할 수 있다. 전체적으로, 엔티티는 중개자와 협력해서, 수신된 정보가 엔티티 자체의 인원에게, 중개자 자체의 인원에게, 혹은 이 엔티티나 중개자의 시스템에 액세스해서, 획득한 보안으로 정보 처리를 관리하는데 영향을 미칠 수 있는 제 3 자(예컨대, 헤커)에게, 노출되는 바람직하지 않은 상황의 위험을 줄일 수 있다.
일례로, 본 개시의 시스템 및 방법은 지불 시스템에서 이용될 수 있다. 지불 시스템(예컨대, 중개자 서버)는 신용 카드 번호 및 CVV(신용 검증값)와 같은 암호화된 신용 카드 정보를 엔티티로부터 수신해서, 신용 카드 회사에 카드 번호의 사용자가 엔티티로부터의 구입을 인증받았는지 확인할 수 있다. 엔티티가 신용 카드 정보(예컨대, 텍스트 정보 등)를 액세스, 해석 혹은 렌더링할 수 없기 때문에, 엔티티는 장기 메모리(예컨대, 컴팩트 디스크, 하드 디스크)에 암호화된 정보를 저장해서, PCI(Payment Card Industry) DSS(Data Security Standard)와 같은 표준에 명시된 요건 중 일부를 준수할 수 있다. 일례로, 본 개시의 시스템 및 방법은 헬스 케어 시스템에 이용되어서, 기밀인 환자 정보가 전자 시스템 사이에 보안되어 전송될 수 있게 한다. 본 개시의 시스템 및 방법은 신원 조사 서비스에서 이용될 수 있다. 개인의 사회 보정 번호와 같은, 신원 점검에 필요한 기밀 정보가 인증된 사용자에게 전달될 때까지 전자 시스템 사이에서 보안되어 전달될 수 있다. 당업자라면, 여기 설명된 시스템 및 방법의 응용 분야는 상술한 예로 한정되는 것은 아니며, 여러가지 상황에서 사용될 수 있다는 것을 이해할 것이다. 배경기술의 내용이 종래의 기술의 내용이라는 것은 인정하는 것은 아니다.
도 1을 참조하면, 클라이언트로부터 생성되는 정보의 클라이언트측 암호화를 가능하게 하는 시스템(100)이 도시되어 있으며, 이하 설명한다. 시스템(100)은 백엔드 처리 시스템(110)과 통신하는 중개자 서버(105)를 포함한다. 중개자 서버(105)는 엔티티 서버(115a, 115b)(이들을 함께 '115'라 함)와 통신할 수 있다. 각각의 엔티티 서버(115)는, 최종 사용자에 의해 동작될 수 있는, 모바일 컴퓨팅 장치(120a, 120b, 120c) 및 개인용 컴퓨팅 장치(122a, 122b, 122c)와 같은 클라이언트 컴퓨팅 장치와 통신할 수 있다.
동작시에, 엔티티는 중개자에 계정을 유지할 수 있다. 일부 구현예에서 중개자는, 컴퓨팅 장치의 프로세서에 의해 실행될 수 있는 보안-관련 서브프로그램의 라이브러리(125)로의 액세스를 제공할 수 있다. 라이브러리(125)는, 민감 정보를 전송할 때 사용될 수 있는 클라이언트 컴퓨팅 장치(120, 122)에서 사용될 암호화 서브프로그램을 포함할 수 있다. 서브프로그램의 라이브러리(125)는 중개자 서버(105)에 위치되거나 이와 연관될 수 있다. 엔티티 서버(115)는 자신의 계정에 로그인하면 라이브러리(125)에 액세스할 수 있다. 일부 구현예에서, 엔티티 서버(115)는 자신의 계정을 통해서 서브프로그램의 라이브러리(125)의 카피를 획득할 수 있다. 엔티티는 자신의 각각의 엔티티 서버(115)에 라이브러리(125)의 카피를 저장할 수 있다.
일부 구현예에서, 서브프로그램의 라이브러리(125)는 자바스크립트 라이브러리가 될 수 있지만, 다른 프로그래밍 언어의 서브프로그램의 라이브러리가 사용될 수도 있다. 일부 구현예에서, 라이브러리(125)의 서브프로그램은, 캘리포니아 마운틴뷰의 Mozilla사가 제공하는 Mozilla Firefox™, 캘리포니아 마운틴뷰의 Google사가 제공하는 Google Chrome™, 캘리포니아 쿠퍼티노의 Apple사가 제공하는 Safari™와 같은 웹 브라우저에서 실행될 수 있다. 일부 구현예에서, 라이브러리(125)의 서브프로그램은, 엔티티가 제공하고 사용자가 (예컨대, 스마트폰, 태블릿 컴퓨터 혹은 다른 모바일 컴퓨팅 장치에) 인스톨하는 모바일 장치 애플리케이션에 포함될 수 있다.
일부 실시예에서, 각각의 엔티티 계정은, 비대칭형 암호화 알고리즘(예컨대, RSA, Diffie-Hellman 키 교환 프로토콜, 디지털 서명 표준(DSS), ElGamal, Paillier)과 함께 사용될 수 있는 키쌍의 공개키의 카피를 포함할 수 있다. 이 공개 키는 베이스-64(base-64) 부호화된 문자열, 16진법 부호화된 문자열, 혹은 임의의 다른 포맷으로 이용될 수 있다. 이 엔티티는 공개 키를, 엔티티가 사용할 수 있는 임의의 컴퓨터 프로그램에 카피할 수 있다. 일부 구현예에서, 엔티티가 중개자에 계좌를 개설하면, 중개자 서버(105)는 이 공개 키의 카피를 각각의 엔티티 서버(115)에 전달할 수 있다.
동작시에, 일부 구현예에서, 클라이언트 컴퓨팅 장치(120, 122)의 사용자는 엔티티와 연관된 웹 사이트에 액세스할 수 있다. 이 사용자는 엔티티의 웹 사이트와 연관된 URL(Uniform Resource Locator)에 방문할 수 있다. 클라이언트 컴퓨팅 장치(120, 122)는 컴퓨터 네트워크를 통해서 웹 사이트에 액세스하는 HTTP(Hypertext Transfer Protocol) 요청을 생성할 수 있다.
응답시에, 엔티티 서버(115)는 웹 페이지를 표시를 위해서 클라이언트 컴퓨팅 장치(120, 122)에 전송할 수 있다. 클라이언트 컴퓨팅 장치(120, 122)는 웹 브라우저를 이용해서 이 웹 페이지를 볼 수 있다. 이 웹 페이지는 HTML을 포함할 수 있다.
일부 구현예에서, 엔티티의 웹 페이지는 폼을 포함할 수 있다. 이 폼은 클라이언트 컴퓨팅 장치(120, 122)의 사용자로부터 정보를 수신하는 필드를 포함할 수 있다. 일부 구현예에서, 필드의 일부는 사용자의 청구서 발송지, 신용 카드 번호, 신용 카드 만료일 및/또는 신용 카드 보안 코드(예컨대, 신용 검증값 즉 CVV)와 같은 정보를 수신하도록 구성될 수 있다. 일부 구성예에서, 필드의 일부는 사용자의 집주소, 생년 월일, 운전 면허 번호, 및 사회 보장 번호와 같은 정보를 수신하도록 구성될 수 있다. 일부 구현예에서, 필드의 일부는 사람의 건강력과 관련된 정보를 수신하도록 구성될 수 있다. 일부 구현예에서, 필드의 일부는 사용자명, 계좌 비밀 번호, 및 연락처 정보(예컨대, 우편 주소, 이메일 주소, 휴대 전화 번호)와 같은 정보를 수신하도록 구성될 수 있다.
일부 구현예에서, 하나 이상의 필드는 민감 정보를 수신하도록 구성될 수 있다. 만약 이 정보가 기밀이라면 정보는 민감할 수 있다(예컨대, 산업 표준 및/또는 전문 표준은 지정된 단체만이 이 정보에 대해 액세스해야 한다는 것을 나타내고 있다). 만약 단체가 정보에 대한 노출로 인해서 정보를 처리하는 규제 의무를 지게 되면, 정보는 민감할 수 있다. 만약 단체가 정보의 처리 및/또는 정보에 대한 노출로 인해서 잠재적인 법적 책임을 지게 되면 정보는 민감할 수 있다.
이 웹 페이지는 민감 정보를 수신하도록 구성된 필드를 식별할 수 있으며, 이로써 수신한 정보가 암호화될 대상인 필드를 식별한다. 일부 구현예에서, 웹 페이지는 민감 정보를 수신하도록 구성된 필드를 식별하는 HTML를 포함할 수 있다. 일부 구현예에서, 웹 페이지는 스크립트 태그를 포함할 수 있다. 이 스크립트 태그는 웹 페이지가 사용할 수 있는 암호화-관련 서브프로그램의 라이브러리(125) 및 이 라이브러리(125)의 위치를 식별할 수 있다. 이 웹 페이지는 중개자 서버(105)가 제공하는 공개키의 카피를 포함할 수 있다.
이 웹 페이지는, 사용자가 폼의 필드에 제공되는 정보를 엔티티 서버(115)에 제출할 때 기동시킬 수 있는 제어부(예컨대, '제출' 버튼)를 포함할 수 있다. 이 제출 제어부를 가동시킨 것에 응답해서, 라이브러리(125)로부터의 처리 서브프로그램은 클라이언트 컴퓨팅 장치(120, 122) 상의 웹 브라우저를 실행시키기 시작한다. 처리 서브프로그램은 웹 페이지의 제출 처리로 이어질 수 있다.
일부 구현예에서, 처리 서브프로그램은 난수 생성기(예컨대, 오픈 소스 라이브러리를 통해서 이용가능한 생성기)로부터 값을 획득할 수 있다. 이 처리 서브프로그램은 이 값을 처리해서, AES(Advanced Encryption Standard) 혹은 DES(Data Encryption Standard)와 같은 대칭형 암호화 알고리즘에서 사용되는 암호화 키를 획득한다. 웹 페이지는 라이브러리(125)로부터의 암호화 서브프로그램에 액세스해서, 암호화 키(이하 '대칭형 암호화 키'라고도 함)를 이용해서 민감 정보를 수신할 수 있는 필드의 값을 암호화한다.
일부 구현예에서, 웹 페이지는 동일 필드를 가진 2개의 폼을 포함할 수 있다. 이 폼 중 하나는 사용자에게 숨겨질 수 있다(예컨대, 표시되지 않음). 숨겨진 폼 내의 정보는 엔티티 서버(115)에 전송되는 정보가 될 수 있다. 표시되는 폼 내의 HTML는 이 필드가 민감 정보를 수신하도록 구성되었는지를 나타낼 수 있다. 처리 서브프로그램은 이 HTML을 분석해서 암호화를 위한 필드 값을 식별할 수 있다. 이 필드가 민감 정보를 수신하도록 구성되지 않았다면, 이 필드 내의 값은 숨겨진 폼의 대응 필드로 카피될 수 있다. 필드가 민감 정보를 수신하도록 구성되었다면, 필드 내의 값은 암호화되고, 이 암호화된 값은 숨겨진 폼의 대응 필드로 삽입될 수 있다. 일부 구현예에서, 클라이언트 컴퓨팅 장치(120, 122)의 사용자는 입력된 값이 그 암호화된 것으로 변경된 것을 볼 수 없고, 이로써 사용자 측에서의 경고 혹은 혼란을 방지할 수 있다.
일부 구현예에서, 웹 페이지는 하나의 폼을 포함할 수 있다. 이 폼은 민감 정보를 수신하는 필드에 대응하는 숨겨진 필드를 가질 수 있다. 일부 구현예에서, 숨겨진 필드 혹은 그 대응하는 가시 필드 중 하나만이 활성화될 수 있다(예컨대, 가시 필드는 활성화되고, 숨겨진 필드는 값을 수신하도록 구성되지 않을 수 있으며, 그 반대가 될 수도 있다). 라이브러리(125)로부터의 암호화 서브프로그램은 민감 정보를 수신하는 필드의 값을 암호화할 수 있다. 처리 서브프로그램은 필드는 비활성화하고, 대응하는 숨겨진 필드는 활성화하며, 암호화된 값을 숨겨진 필드에 삽입할 수 있다. 가시 필드는 예컨대, 예컨대, 그레이아웃(gray out)되어서 표시될 수 있다. 일부 구현예에서, 클라이언트 컴퓨팅 장치(120, 122)의 사용자는 입력되는 값이 그 암호화된 것으로 변경되는 것을 볼 수 없다.
일부 구현예에서, 웹 페이지는 숨겨질 수 있는 및/또는 디스에이블될 수 있는 폼을 포함할 수 있다. 웹 페이지는 폼을 표시 및/또는 인에이블할 수 있는 코드를 포함할 수 있다. 일부 구현예에서, 클라이언트 컴퓨팅 장치(120, 122)의 웹 브라우저가 숨겨진 폼을 표시 및/또는 인에이블하는 코드를 실행시킬 수 없다면(예컨대, 자바스크립트를 실행시킬 수 없음), 이 폼은 숨겨진 및/또는 디스에이블된 상태로 유지될 수 있다. 일부 구현예에서, 특정 프로그래밍 언어의 코드를 실행시킬 수 없는 웹 브라우저는, 사용자가 민감 정보(예컨대, 신용 카드 번호)를 입력할 때 사용하는 웹 페이지를 수신할 수 없다. 일부 구현예에서, 웹 페이지는 특정 프로그래밍 언어를 실행할 성능이 필요하다는 것을 나타내는 노스크립트 태그를 포함할 수 있다.
라이브러리(125)로부터의 암호화 서브프로그램은, 비대칭형 암호화 알고리즘(예컨대, RSA)에 따라서 대칭형 암호화 키를 암호화할 수 있다. 암호화 서브프로그램은 웹 페이지의 공개키를 수신함으로써 구성될 수 있다. 이 웹 페이지는 대칭형 암호화 키를, 공개 키를 사용해서 암호화될 암호화 서브프로그램에 송신할 수 있다.
이 웹 페이지는 필드로부터의 암호화된 값, 필드로부터의 암호화되지 않은 값, 및 암호화된 대칭형 암호화 키를 부호화할 수 있다. 일부 구현예에서, 웹 페이지는 정보를 직렬화함으로써(serialize) 정보를 부호화할 수 있다. 예시적인 직렬화 포맷은 베이스 54 혹은 16진수(베이스 16)를 포함할 수 있지만, 다른 포맷이 사용될 수도 있다. 클라이언트 컴퓨팅 장치(120, 122)는 엔티티 서버(115)에 정보를 송신할 수 있다.
다른 동작예에서, 클라이언트 컴퓨팅 장치(122)(예컨대, 모바일 장치)는, 사용자 정보 및 다른 데이터를 엔티티 서버(115)에 제공하는 알고리즘을 포함하는 모바일 장치 애플리케이션을 다운로드해서 인스톨할 수 있다. 예컨대, 사용자는, 엔티티 서버(115)를 유지하고 있는 특정한 중계 회사로부터 상품을 구입하는 모바일 장치 애플리케이션을 다운로드할 수 있다. 이러한 상황에서, 모바일 장치 애플리케이션은 엔티티 서버(115)에 전송할 민감 정보를 암호화하는 알고리즘을 하나 이상 포함할 수 있다(웹 브라우저 기반 모델에 관련해서 상기 설명한 바와 같이). 예컨대, 모바일 장치 애플리케이션은, 중개자 서버(105)로부터(예컨대, 라이브러리(125)로부터) 중계 회사에 할당된 공개 키 및/또는 암호화 알고리즘을 포함할 수 있다. 다른 구현예에서, 모바일 장치 애플리케이션은, 암호화 알고리즘 및/또는 공개 키 정보와 같은 정보를 검색하기 위한 코드를 포함할 수 있다. 모바일 장치 애플리케이션은, 상기 브라우저 기반 모델과 관련해서 설명한 것과 유사한 방식으로, 사용자로부터 데이터를 수신하고, 정보의 적어도 일부를 암호화해서, 이 정보를 엔티티 서버(115)에 제공할 수 있다.
엔티티 서버(115)는 클라이언트 컴퓨팅 장치(120, 122)로부터 수신한 정보를 저장할 수 있다. 일부 구현예에서, 엔티티 서버(115)는 해석가능한 형태, 판독 가능한 형태 및/또는 렌더링 가능한 형태(예컨대, 평문)의 민감 정보는 수신할 수 없다. 이 암호화된 정보를 영구 메모리(예컨대, 드라이브, 컴팩트 디스크)에 저장함으로써, 보안 위험을 어느 정도 방지하고, 정보 보안 표준 내에 유지될 수 있다. 따라서, 엔티티 서버(115)는, 처리를 위해서 즉시 백엔드 시스템(110)에 정보를 송신하도록, 강요될 수 없다.
최종 사용자 정보를 저장함으로써, 비동기식 처리가 가능하게 할 수 있다. 예컨대, 엔티티 서버(115)는 암호화된 정보를 차례로 배치할 수 있고, 사용자로부터 정보가 처리될 수 있는 순서(예컨대, 우선 순위 혹은 다른 메트릭)를 결정할 수 있다. 따라서, 클라이언트-측 암호화를 통해서, 엔티티 서버(115)가 클라이언트 컴퓨팅 장치(120, 122)로부터 수신한 정보를 관리하는 유연성을 더욱 크게 할 수 있다.
엔티티 서버(115)는 클라이언트 컴퓨팅 장치(120, 122)로부터의 정보를 처리를 위해서 중개자 서버(105)에 송신할 수 있다. 엔티티 서버(115)는 정보에 대해서 수행될 처리의 타입을 나타낼 수 있다. 일부 구현예에서, 엔티티 서버(115)는 POST 요청과 같은 HTTP 요청을 통해서, 정보를 송신할 수 있다. 일부 구현예에서, 엔티티 서버(115)는 중개자 서버(105)로의 API(application programming interface) 호출을 행할 수 있다.
일부 구현예에서, 중개자 서버(105)는 비대칭형 암호화 알고리즘에 사용될 수 있는 키의 쌍 중 개인 키의 카피를 포함할 수 있으며, 이는 중개자 서버(105)가 예금주(예컨대, 엔티티 서버(115))에게 제공한 공개 키에 대응한다. 중개자 서버(105)는 개인 키를 이용해서 암호화된 데이터(예컨대, 폼 필드로부터의 값 혹은 모바일 애플리케이션에 의해 수집된 값)를 해독할 수 있다. 일부 구현예에서, 암호화된 값은 개인 키 없이는 해독될 수 없다. 일부 구현예에서, 클라이언트 컴퓨팅 장치(120, 122)나 엔티티 서버(115) 모두 개인키에 액세스할 수 없다.
폼을 통해서 수신한 모든 정보의 해석 가능한(예컨대, 렌더링 가능, 평문 등) 버전에 액세스함으로써, 중개자 서버(105)는 정보를 처리할 수 있다. 이 처리를 통해서 결과가 만들어 질 수 있다. 일부 구현예에서, 중개자 서버(105)는 백엔드 처리 시스템(110)(예컨대 제 3 자와 연관된)과 통신해서 정보를 처리할 수 있다.
예컨대, 중개자 서버(105)는 예컨대, 신용 카드 회사의 서버와 같은 백엔드 처리 시스템(110)과 통신해서, 요구받은 액수(예컨대, 상품 혹은 서비스의 가격)에 대한 그 신용 카드 번호의 사용을 인증할 수 있다. 신용 카드 번호가 신용 카드 회사의 서버에 의해 인증되면, 중개자 서버(105)는 '승인됨'의 결과를 엔티티 서버(115)에 리턴할 수 있다. 이 번호가 인증되지 않으면, 중개자 서버(105)는 '거부됨'의 결과를 리턴할 수 있다. 일부 구현예에서, 그 결과는 거부된 이유(예컨대, 잔액 불충분, 무효 신용 카드 번호, 무효 CVV)를 포함할 수 있다.
다른 예에서, 중개자 서버(105)는 예컨대, 신원 조사 서비스와 같은 백엔드 처리 시스템(110)과 통신해서 그 사람의 신원을 식별할 수 있다. 중개자 서버(105)는 정보를 해독할 수 있다. 일부 구현예에서, 중개자 서버(105)는 평문인 식별 정보를 신원 조사 서비스를 위해서 서버에 송신할 수 있다. 일부 구현예에서, 중개자 서버(105)는 식별 정보를, 자신과 백엔드 처리 시스템(110) 사이의 정보를 보안하는데 사용되는 암호화 알고리즘에 따라서 암호화할 수 있다.
일례로, 중개자 서버(105)는 신원 조사 서비스를 위해서, 그 사람의 이름, 지난 5년간의 거주지 주소, 사회 보장 번호, 미지금 계정 번호 및 운전 면허 번호를 백엔드 처리 시스템(110)에 송신한다. 백엔드 처리 시스템(110)은 수신한 정보가 그 사람의 데이터베이스에 저장된 정보와 일치한다고 판정해서, '확인됨' 결과를 중개자 서버(105)에 리턴할 수 있다. 수신한 정보가 데이터베이스 정보와 일치하지 않는다면, 신원 조사 서비스는 '확인되지 않음' 결과를 리턴할 수 있다.
이들 예 중 어느 것에서, 중개자 서버(105)는 백엔드 처리 시스템(110)(예컨대, 신용 카드 회사 서버, 신원 조사 서버)으로부터의 결과를 엔티티 서버(115)에 송신할 수 있다. 엔티티 서버(115)는 결과 혹은 결과의 표시(예컨대, 확인됨/확인되지 않음, 인증됨/인증되지 않음)를 가진 웹 페이지를 송신해서 클라이언트 컴퓨팅 장치(120, 122)에 표시되게 할 수 있다. 일부 구현예에서, 엔티티 서버(115)는 이 정보를 사용자의 계좌와 함께 기록할 수 있다(예컨대, 클라이언트 컴퓨팅 장치(122)에 인스톨된 모바일 애플리케이션을 이용해서 액세스 가능함). 예컨대, 엔티티 서버(115)는 알림 메커니즘을 통해서 결과 정보를 클라이언트 컴퓨팅 장치(122)의 사용자에게 알릴 수 있다.
엔티티 서버(115)는 정보(예컨대, 폼의 수, 임의의 주어진 폼이나 모바일 애플리케이션 정보 입력 페이지를 통해서 수집될 정보, 폼 혹은 모바일 애플리케이션 입력 페이지를 통해서 통합적으로 수집될 정보의 조직)가 언제 어떻게 수집될지, 그리고 어느 정보가 암호화될지를 유연하게 결정할 수 있다. 일부 구현예에서, 엔티티 서버(115)가 브라우저 폼 혹은 모바일 애플리케이션으로부터 정보를 수신한 이후에, 엔티티 서버(115)는 다른 형태를 클라이언트 컴퓨팅 장치(120, 122)에 송신할 수도 있고, 모바일 애플리케이션 내에 다른 정보 입력 페이지를 표시할 수도 있다. 폼 혹은 입력 페이지는, 이전에 송신된 폼과는 다른 정보를 요구하는 다른 필드를 포함할 수 있다.
HTML 폼인 환경에서, 이 폼은 민감 정보를 수신할 수 있는 다른 필드를 나타내는 HTML 태그 혹은 코딩 플래그를 포함할 수 있다. 예컨대, 엔티티 서버(115)는 웹 사이트에 사용자를 등록하는 폼을 송신할 수 있다. 엔티티 서버(115)는 상품 및/또는 서비스에 대한 사용자의 지불 정보를 수신할 수 있게 하는 다른 폼을 송신할 수 있다. 모바일 애플리케이션인 환경에서, 데이터 입력 페이지는 민감 정보를 수신하도록 지정된 정보 필드를 식별하도록 구성될 수 있다. 일부 구현예에서, 정보의 적어도 일부는 저장된 데이터를 이용해서 자동 완성될 수 있다. 예컨대, 사용자 데이터는 웹 브라우저 쿠키를 이용해서 수집될 수도 있고, 모바일 장치 애플리케이션과 관련된 사용자 계정으로부터 검색될 수 있다. 다른 방안으로, 사용자-제공 정보(예컨대, 사용자명 및 비밀번호 등)에 기초해서, 폼 혹은 모바일 애플리케이션 데이터 입력 필드의 일부는, 저장된 사용자 정보로 엔티티 서버(115)에 의해 자동 퍼퓰레이트될 수 있다.
도 2a를 참조하면, 지불 처리 상황에서 클라이언트로부터 생성되는 정보의 차동 클라이언트-측 암호화를 가능하게 하는 예시적인 시스템(200)의 블록도를 도시하고 있으며, 이를 설명한다. 동작시에, 네트워크를 통해서 엔티티로부터 상품 및/또는 서비스를 주문하는데, 고객에 의해 제어되는 클라이언트 컴퓨팅 장치(220)가 사용될 수 있다. 주문시에, 고객은 웹 페이지의 폼에 정보를 입력할 수 있다. 폼은 예컨대 고객의 이름, 전화 번호, 배송 주소, 청구지 주소, 신용 카드 번호 및 카드 유효 값의 필드를 포함할 수 있다.
고객은 제어부를 활성화해서 폼 데이터(225)를 엔티티 서버(215)(예컨대, 매매 서버)에 제시할 수 있다. 제어부를 활성화할 때, 웹 브라우저가 액세스하는 암호화 서브프로그램이 클라이언트 컴퓨팅 장치(220)에서 실행될 수 있다. 일부 구현예에서, 암호화 서브프로그램은 신용 카드 번호 및/또는 카드 유효 값과 같은 정보를 암호화할 수 있다. 일부 구현예에서, 암호화 서브프로그램은 고객의 이름, 전화 번호, 배송 주소 및/또는 청구지 주소와 같은 정보는 암호화하지 않을 수 있다.
일부 구현예에서, 웹 브라우저는 암호화되지 않은 고객의 이름, 전화 번호, 배송 주소 및/또는 청구지 주소를 포함한 폼 데이터(225)를 엔티티 서버(215)에 송신할 수 있다. 엔티티 서버(215)는 암호화되지 않은 정보를 액세스할 수 있고 및/또는 이를 예컨대 영구 메모리에 저장할 수 있다. 일부 구현예에서, 웹 브라우저는 신용 카드 정보와 같은, 폼 데이터(225) 내의 암호화된 정보(230)를 엔티티 서버(215)에 송신할 수 있다. 엔티티 서버(215)는 암호화된 정보(230)에 액세스하고 및/또는 이를 예컨대 영구 메모리에 저장할 수 있다. 일부 구현예에서, 엔티티 서버(215)는 암호화된 정보(230)를 예컨대 하드 디스크 혹은 컴팩트 디스크에 저장할 수 있다. 엔티티 서버(215)는 암호화된 정보(230)를 해독할 암호화 키를 갖고 있지 않기 때문에, 엔티티 서버(215)는 암호화된 정보(230)의 평문 값을 획득할 수 없다. 일부 구현예에서, 신용 카드 정보의 평문 값에 액세스할 수 없으므로, 엔티티 서버(215)는, 암호화된 정보(230)가 인증되지 않은 단체에 의해 해독 및 복구될 염려없이, 암호화된 정보(230)를 저장할 수 있게 된다.
엔티티 서버(215)는, 암호화된 정보(230) 및 암호화되지 않은 정보의 적어도 일부를 포함하는 폼 데이터(225)를 중개자 서버(205)(예컨대, 지불 게이트웨이)에 송신할 수 있다. 중개자 서버(205)는 주문받은 상품 및/또는 서비스에 대한 거래를 실행할 수 있다. 예컨대, 중개자 서버(205)는 고객이 상품 및/또는 서비스의 비용을 지불할 수 있는지 판정할 수 있다. 중개자 서버(205)는 암호화된 신용 카드 정보를 해독해서 암호화된 정보(230)로부터 신용 카드 정보를 복구할 수 있다. 중개자 서버(205)는, 백엔드 처리 시스템(210)(예컨대, 신용 카드 네트워크에서 신용 카드 회사 서버)에, 그 고객이 주문한 양에 대해 신용 가드 정보를 사용할 수 있는지 여부에 대한 판정을 요청할 수 있다. 예컨대, 중개자 서버(205)는 백엔드 처리 시스템(210)에 신용 카드 데이터(235)를 포워딩할 수 있다. 일부 구현예에서, 신용 카드 데이터(235)는 암호화되고, 및/또는 보안 정보를 통해서 백엔드 처리 시스템(210)으로 제공되어서, 예컨대, 신용 카드 데이터(235)를 인증되지 않은 액세스로부터 보호할 수 있다.
백엔드 처리 시스템(210)은 신용 카드 데이터(235)를 수신해서 이 신용 카드 데이터(235)를 분석함으로써, 고객이 주문한 양에 대해서 신용 카드 정보를 사용할 수 있는지 여부를 결정할 수 있다. 백엔드 처리 시스템(210)은 확인 결과(240a)(예컨대, 승인됨, 거부됨 등)를 중개자 서버(205)로 다시 송신한다. 중개자 서버(205)는 백엔드 처리 시스템(210)으로부터 획득한 확인 결과(240b)를 엔티티 서버(215)로 포워딩한다. 엔티티 서버(215)는 확인 결과(240b)를 클라이언트 컴퓨팅 장치(220)에 표시할 형식으로 바꾼다. 예컨대, 엔티티 서버(215)는 확인 결과(240)를 포함하는 웹 페이지 정보(245)를, 고객이 클라이언트 컴퓨팅 장치(220)로 리뷰하도록 제공할 수 있다.
도 2b는 클라이언트측 암호화를 가능하게 하는, 도 2a의 시스템과 같은 시스템에서의 예시적인 동작 흐름(250)의 스윔레인도이다. 동작 흐름(250)은, 도 2a와 관련해서 설명한 바와 같은 중개자 서버(205), 엔티티 서버(215), 클라이언트 컴퓨팅 장치(220) 및 백엔드 처리 시스템(210) 사이에서 전달되는 예시적인 정보를 나타내고 있다. 일부 구현예에서, 동작 흐름(250)은 온라인 업체에서 지불 정보를 처리해서 확인하는데 사용될 수 있다. 동작 흐름(250)은 일부 구현예에서, 건강 정보망에서 환자 정보를 처리하고 인증하는데 사용될 수 있다. 일부 구현예에서, 동작 흐름(250)은 신원 정보를 조사할 목적으로 처리해서 확인하는데 사용될 수 있다.
일부 구현예에서, 동작 흐름(250)은 클라이언트 컴퓨팅 장치(220)에서 실행되는 웹 브라우저를 통해서 온라인 엔티티 웹 사이트(252)에 액세스하는 것으로 개시된다. 예컨대, 사용자는 웹 브라우저 애플리케이션을 이용해서 웹 사이트를 브라우징할 수 있다. 사용자는 웹 사이트에 액세스해서, 예컨대 정보(예컨대, 환자 정보, 신원 확인 정보 등)를 요청한다. 다른 예에서 사용자는 웹 사이트에 액세스해서 상품 혹은 서비스를 구입할 수 있다.
웹 사이트(예컨대, 주문 페이지, 환자 정보 페이지, 개인 정보 식별 페이지 등)로부터의 요청에 액세스하는 것에 응답해서, 일부 구현예에서, 엔티티 서버(215)는 민감 정보의 암호화를 위한 공개 키를 포함한 브라우저-렌더링가능 정보를 제공한다. 브라우저-렌더링가능 정보는 예컨대, 빈 폼(fillable form)이나, 혹은 가시형의 폼과 숨겨진 폼을 포함한 빈 폼의 쌍을 포함할 수 있다. 빈 폼의 필드 중 적어도 일부는 예컨대, 민감 정보를 수신하도록 구성될 수 있다.
일부 구현예에서, 브라우저-렌더링가능 정보는 중개자 서버(205)가 제공하는 암호화 알고리즘을 다운로드하는 명령어를 포함하고 있다. 일부 구현예에서, 클라이언트 컴퓨팅 장치(220)는 온라인 엔티티 서버(215)를 통해서 중개자 서버(205)로부터 암호화 알고리즘(256)을 다운로드한다. 일부 구현예에서, 클라이언트 컴퓨팅 장치(220)는 중개자 서버(205)로부터 직접 암호화 알고리즘을 다운로드한다(도시 생략). 비록 공개 키를 포함한 브라우저-렌더링가능 정보를 수신한 이후에 수행되는 것으로 도시되어 있지만, 일부 구현예에서(도시 생략), 그 이전에 웹 브라우저(220)가 중개자 서버(205)로부터 암호화 알고리즘을 수신했을 수도 있다. 예컨대, 클라이언트 컴퓨팅 장치(220)는 엔티티 서버(215)와 관련된 사용자 계정에 로그인할 때 암호화 알고리즘을 수신했을 수 있다. 일부 구현예에서, 암호화 알고리즘은 공개 키와 연관지어질 수 있다. 예컨대, 중개자 서버(205)는 특정 암호화 알고리즘을, 특정 엔티티에 할당된 특정 공개 키와 연관시킬 수 있다.
일부 구현예에서, 클라이언트 컴퓨팅 장치(220)(예컨대, 스크립팅 언어나 혹은 브라우저 애플리케이션 내에서 실행되는 다른 브라우저-실행 가능 언어 내에서) 암호화 알고리즘 및 공개 키(258)를 이용해서 사용자 데이터를 암호화한다. 예컨대, 암호화 알고리즘은 자바스크립트 프로그래밍 언어와 같은 브라우저-실행 가능 언어로 프로그래밍될 수 있다. 일부 구현예에서, 암호화 알고리즘은 민감 정보에 액세스하도록 구성된 하나 이상의 필드를 식별하고, 이 필드에 입력된 정보를 암호화한다.
일부 구현예에서, 클라이언트 컴퓨팅 장치는 암호화된 데이터를 포함한 데이터를 엔티티 서버(215)에 전송한다(260a). 암호화 알고리즘 혹은 다른 알고리즘은, 예컨대, 엔티티 서버(215)에 데이터를 전송할 수 있다. 일부 구현예에서, 암호화된 데이터는 암호화되지 않은 데이터와는 별도로 엔티티 서버(215)에 제공된다(예컨대, 분리 전송). 암호화에 더해서, 일부 구현예에서는, 암호화된 데이터, 그리고 선택적으로는 암호화되지 않은 데이터가, SSL(Secure Socket Layer) 접속과 같은 보안 접속을 통해서 클라이언트 컴퓨팅 장치(220)로부터 엔티티 서버(215)에 제공될 수 있다.
일부 구현예에서, 엔티티 서버(215)는 암호화된 데이터, 그리고 선택적으로는 암호화되지 않은 데이터의 일부(예컨대, 사용자명 및 집 코드(zip code) 등과 같은 식별 정보)를 중개자 서버(205)로 포워딩할 수 있다(260b). 일부 구현예에서는, 데이터를 즉시 포워딩하지 않고, 엔티티 서버(215)는 이후에 중개자 서버(205)에 전송하도록 암호화된 데이터를 큐잉한다. 암호화된 데이터를 포워딩하는 것에 더해서, 일부 구현예에서는, 엔티티 서버는, 예컨대, 중개자 서버(205)로의 초기 요청이 실패한 경우의 임시 백업으로서나 혹은 거래 내역의 목적으로, 암호화된 데이터의 카피를 국지적으로 저장한다. 엔티티 서버(215)가 암호화된 데이터를 국지적으로 저장하면, 일부 구현예에서는, 엔티티 서버(215)는 이 정보를 보안 데이터베이스와 같은 보안 저장 영역 내에 저장한다.
일부 구현예에서는, 중개자 서버(205)에서 암호화된 데이터가 해독된다(262). 중개자 서버(205)는 예컨대 엔티티 서버(215)에 발행된 공개 키와 쌍이 되는 개인 키를 가진 온라인 엔티티를 매칭시킬 수 있다. 일부 구현예에서, 개인 키는 엔티티 서버(215)의 전송 서명(예컨대, IP 주소, DNS 네임 등)에 부분적으로 기초해서 식별된다. 일부 구현예에서, 개인 키는 엔티티 서버(215)로부터의 전송 내에 포함된 헤더 정보에 부분적으로 기초해서 식별된다. 예컨대, 전송 알고리즘을 통해서 엔티티 서버(215)로부터 중개자 서버(205)로 제공되는 전송 내에 식별 정보를 내장할 수 있다(예컨대, 단계 260b). 일부 구현예에서, 공개 키 자체 혹은 이 공개 키를 식별하는 식별자가 암호화된 정보 내에서 전송된다.
암호화된 정보를 해독할 때, 일부 구현예에서는, 중개자 서버(205)는 정보의 적어도 일부를 저장한다(264). 이 정보는 예컨대, 검사 목적으로 저장될 수 있다.
일부 구현예에서, 데이터는 데이처 처리를 위해서 큐잉된다(266). 데이터의 타입(예컨대, 신용 카드 정보, 환자 정보, 신원 확인 정보 등)에 따라서, 데이터는 백엔드 서버(210)를 포함한 다수의 백엔드 서버 중 하나에 큐잉될 수 있다. 백엔드 처리 서버(210)는 일례로, 의료 시스템 서버, 신용 카드 서버, 전자 지불 처리 서버, 법률 집행 서버, 혹은 정부 기관 서버가 될 수 있다.
이 때, 일부 구현예에서, 데이터는 처리를 위해서 중개자 서버(205)에 의해서 백엔드 처리 서버(210)로 포워딩된다(268). 일부 구현예에서, 데이터는 백엔드 처리 서버(210)로 전송되기 전에 암호화된다. 일부 구현예에서, 데이터는 보안 전송을 통해서 혹은 보안 네트워크 접속을 통해서 백엔드 처리 서버(210)에 제공된다.
일부 구현예에서, 백엔드 처리 서버(210)에서, 데이터를 처리해서 결과를 획득한다(270). 데이터의 타입 및/또는 백엔드 처리 서버(210)의 타입에 따라서, 그 결과는 달라질 수 있다. 예컨대, 백엔드 처리 서버(210)가 신용 카드 지불 처리 서버라면, 그 결과는 상태 메시지(예컨대, 승인됨, 거부됨 등)를 포함할 수 있다.
일부 구현예에서, 백엔드 처리 서버(210)는 사용자 데이터를 처리하는 것과 관련된 결과를 중개자 서버(205)에 제공한다(272a). 예컨대, 의료 시스템 서버는 환자가 서버, 수술 혹은 투약의 허가를 요청하는 것과 관련된 '승인' 결과를 제공한다.
일부 구현예에서, 중개자 서버(205)는 결과를 엔티티 서버(215)에 포워딩한다(272b). 일부 구현예에서, 중개자 서버(205)는 이 결과를 검사 목적으로 저장한다(예컨대, 이전에 단계 264에서 저장된 사용자 데이터 사용자 데이터와 함께).
일부 구현예에서, 결과를 수신하면 엔티티 서버(215)는 이 결과를 처리한다(274). 일부 구현예에서, 처리는, 이 결과를 예컨대, 상품 구입 요청과 같은 이전 요청과 연관시키는 것을 포함한다. 예컨대, 신용 카드 정보가 인증되었다면, 엔티티 서버(215)는 클라이언트 컴퓨팅 장치(220)의 사용자로의 상품의 전달을 개시할 수 있다.
일부 구현예에서, 단계 274에서의 처리 결과에 기초해서, 엔티티 서버(215)는 이 결과와 관련된 정보를 클라이언트 컴퓨팅 장치(220)에 제공한다(276). 예컨대, 신용 카드 정보가 거부되었다는 표시를 수신하면, 엔티티 서버(215)는 클라이언트 컴퓨팅 장치(220)에서 실행되는 웹 브라우저 애플리케이션 내에 거부에 관한 메시지를 제시할 수 있다.
종종, 사용자 데이터의 전송(단계 260a)과 결과 처리(단계 274) 사이에 상당한 시간(예컨대, 수분, 수시간, 수일 등)이 걸린다. 이러한 상황에서는, 결과와 관련된 정보를 클라이언트 컴퓨팅 장치(220)(예컨대, 브라우저 애플리케이션 내에)에 제공하지 않고, 일부 구현예에서, 엔티티 서버(215)는 사용자와 관련된 접촉 정보(예컨대, 메일 주소, 텍스트 메시징을 위한 전화 번호, 소셜 매체 계정 정보 등)를 식별한다. 이 예에 더해서, 엔티티 서버(215)는 접촉 정보를 이용해서 결과와 관련된 정보를 사용자에게 제공할 수 있다.
특정한 일련의 단계가 도시되어 있지만, 일부 구현예에서, 더 많은 혹은 더 적은 단계가 구현될 수도 있고, 혹은 단계 중 하나 이상이 다른 순서로 수행될 수도 있다. 예컨대, 일부 지역에서는, 신용 카드 지불은 주문 배송일까지 처리되지 않을 수도 있다. 이런 상황에서, 엔티티 서버(215)는 암호화된 사용자 데이터를 중개자 서버(205)에 제공해서(260b), 먼저 신용 카드 정보가 유효한지 확인하고, 두번째로(예컨대, 수시간 혹은 수일 후에) 지불 처리를 개시한다.
또한, 일부 구현예에서, 중개자 서버(205)에 저장된 신용 카드 정보는, 예컨대, 이후의 거래시에 제공되는 식별 정보에 기초해서 재사용하기 위해서 액세스될 수 있다. 예컨대, 구매자는 이후의 구입시에, 지불 폼(예컨대, 민감 데이터 및 공개 데이터를 포함한 빈 폼) 내에서 '기록됨' 신용 카드를 선택할 수 있다. 일부 구현예에서, 후속해서 전송되는 사용자 데이터(예컨대, 클라이언트 컴퓨팅 장치(220)로부터 엔티티 서버(215)로 송신되는 것으로, 이는 엔티티 서버(215)로 포워딩됨)는 신용 카드 번호의 일부(예컨대, 은행 정보 번호(BIN)와 마지막 4자리수), 혹은 플래그나, 태그나 엔티티 서버(215)에 의해 인식되는 코드를 포함할 수 있다. 예컨대, 단계 254에서 제공되는 브라우저-렌더링가능 정보 내에서, 엔티티 서버(215)는 특정 '온 파일(on file)' 신용 카드를 식별하는데 이용할 수 있는 부분 부호화된 신용 카드 정보(예컨대, 아메리칸 익스프레스 카드와 마지막 4자리 7890)를, 클라이언트 컴퓨팅 장치(220)에 제공할 수 있다. '온 파일' 신용 카드를 선택하면, 단계 260a에서 전송되는 사용자 데이터는 아메리칸 익스프레스라는 텍스트와 7890, 혹은 선택된 '온 파일' 신용 카드를 식별하는데 사용되는 다른 식별자 코드(예컨대, 고유 식별자)를 포함할 수 있다. 이에 응답해서, 단계 260b에서 엔티티 서버(215)는 '온 파일' 신용 카드를 식별하는데 사용되는 정보를 중개자 서버(205)에 포워딩할 수 있다. 중개자 서버(205)는 식별 정보를 사용해서 보관(archive)된 신용 카드 정보를 검색할 수 있다. 다른 방안으로, 엔티티 서버(215)는 암호화된 신용 카드 정보를 보관하고, 단계 260a에서 전송된 사용자 데이터 내에서 수신된 '온 파일' 신용 카드 식별 정보를 인식한 것에 응답해서, 이 (계속 암호화되어 있는) 신용 카드 정보를 중개자 서버(205)에 포워딩할 수 있다. 동작 흐름(250)의 다른 수정예도 있을 수 있다.
도 3은, 정보의 클라이언트측 암호화를 가능하게 하는 무선 컴퓨팅 장치 애플리케이션을 제공하고 이용하는 예시적인 동작 흐름(300)의 스윔레인도이다. 동작 흐름(300)은 모바일 컴퓨팅 장치(302)(예컨대, 도 1과 관련해서 설명한 클라이언트 컴퓨팅 장치(122)와 같은), 애플리케이션 저장부(304), 엔티티 서버(306)(예컨대, 도 1과 관련해서 설명한 엔티티 서버(115)), 및 중개자 서버(308)(예컨대, 도 1과 관련해서 설명한 중개자 서버(105)) 사이에 전송되는 예시적인 정보를 나타내고 있다. 일부 구현예에서, 동작 흐름(300)은, 엔티티 서버(306)를 통해서 처리되는 것으로, 상품 및 서비스의 구입을 위해서 온라인 업체와 제휴된 모바일 애플리케이션을 제공하고 이용하는데 사용될 수 있다. 일부 구현예에서, 동작 흐름(300)은, 건강 정보망에서 환자 정보를 인증하기 위해서 건강 관리 시스템과 제휴된 모바일 애플리케이션을 제공하고 이용하는데, 사용될 수 있다. 일부 구현예에서, 동작 흐름(300)은, 신원 정보를 조사할 목적으로 확인하기 위해서 법률 집행 시스템과 제휴된 모바일 애플리케이션을 제공하고 이용되는데 사용될 수 있다.
일부 구현예에서, 동작 흐름(300)은 중개자 서버(308)가 엔티티 서버(306)에 공개 암호화 키 및 하나 이상의 암호화 알고리즘을 제공하는(310) 것으로 시작된다. 공개 암호화 키는 예컨대, 중개자 서버(308)에 의해 유지되는 개인 암호화 키와 쌍이 될 수 있다. 공개 암호화 키는 예컨대, 하나 이상의 암호화 알고리즘을 이용해서 데이터를 암호화하는데 사용될 수 있다. 중개자 서버에서, 암호화된 데이터는, 쌍이 되는 개인 암호화 키 및 중개자 서버(308)에 의해 유지되는 하나 이상의 해독 알고리즘을 이용해서 해독될 수 있다. 일부 구현예에서, 공개 키는 엔티티 서버(306)에 고유한 것이다. 예컨대, 중개자 서버(308)는 민감 데이터를 보안 전송 및 처리하기 위해서, 중개자 서버(308)의 서비스를 이용하는 각각의 엔티티에 서로 다른 공개 키를 할당할 수 있다.
일부 구현예에서, 엔티티 서버(306)는 공개 키 및 중개자 서버(308)가 제공하는 보안 알고리즘 중 적어도 하나를 함께 모바일 장치 애플리케이션에 번들(bundle)할 수 있다(312). 예컨대, 공개 키 및 하나 이상의 보안 알고리즘을 공급받은 개발자는, 사용자 데이터의 수집 및 보안 전송을 위해서 애플리케이션 내에 암호화 알고리즘을 포함시킬 수 있다. 다른 방안으로, 모바일 장치 애플리케이션은 민감 데이터를 암호화할 때 하나 이상의 공개 암호화 키 및 보안 알고리즘을 엔티티 서버(306) 혹은 중개자 서버(308)에 요청하도록 구성될 수 있다.
모바일 장치 애플리케이션을 개발할 때, 애플리케이션 스토어에서 사용자가 소비할 수 있도록, 엔티티는 모바일 애플리케이션을 제공할 수 있다(314). 예컨대, iPhone™ 플랫폼용으로 개발된 모바일 장치 애플리케이션은 애플 애플리케이션 스토어에서 다운로드받을 수 있으며, Android™ 플랫폼용으로 개발된 모바일 장치 애플리케이션은 구글 애플리케이션 스토어에서 다운로드받을 수 있다. 다른 구현예에서, 애플리케이션은 예컨대 엔티티 서버(306)를 통해서 직접 다운로드해서 인스톨할 수 있다.
최종 사용자는 애플리케이션 스토어(304)로부터 엔티티 애플리케이션을 다운로드해서 모바일 컴퓨팅 장치(302)에 인스톨할 수 있다. 예컨대, 엔티티는 사용자가 애플리케이션을 다운로드하도록 웹 사이트에 정보를 제공할 수 있다. 이 예에서, 애플리케이션은 중계 엔티티에서 쇼핑하기 위한 애플리케이션이 될 수도 있고, 건강 관리 조직 엔티티를 통해서 환자 정보를 관리하는 애플리케이션이 될 수도 있으며, 인적 자원 지원 엔티티를 통해서 후보의 신원 정보를 관리하기 위한 애플리케이션이 될 수도 있다.
일부 구현예에서, 사용자는 모바일 컴퓨팅 장치(302)를 이용해서, 인스톨된 모바일 장치 애플리케이션과 인터렉트함으로써, 사용자는 엔티티 서버(306)에 전송할 민감 정보를 입력할 수 있다. 예컨대, 사용자는 주문, 정보 요청 혹은 인증 요청에 관한 데이터를 입력할 정보 필드를 하나 이상 포함하고 있는 사용자 인터페이스를 제공받을 수 있다. 일부 구현예에서, 정보를 엔티티 서버(306)에 제공하기 전에, 모바일 컴퓨팅 장치는, 중개자 서버(308)가 엔티티 서버(306)에 이전에 제공한 공개 키 및 암호화 알고리즘 중 적어도 하나를 이용해서, 데이터의 적어도 일부를 암호화한다(318).
일부 구현예에서, 암호화된 데이터는 모바일 컴퓨팅 장치(302)로부터 엔티티 서버(306)로 전송된다(320a). 일부 구현예에서, 모바일 장치 애플리케이션은 엔티티와 통신하도록 프로그래밍된다. 암호화된 데이터는 예컨대, 엔티티 서버(306)로의 보안 혹은 비보안 전송을 통해서 제공될 수 있다.
엔티티 서버(306)는 이에 응답해서, 암호화된 데이터를 포함한 사용자 데이터의 적어도 일부를 중개자 서버(308)로 포워딩할 수 있다(320b). 중개자 서버(308)는 예컨대, 개인 암호화 키 및 해독 알고리즘을 이용해서 사용자 데이터를 해독할 수 있다(322). 도 2b의 단계 262 내지 272a와 관련해서 상기 설명한 바와 같이, 예컨대 데이터는 검사 목적으로 저장되고, 처리를 위해서 백엔드 서버에 제공될 수 있다. 백엔드 서버는 이전에 암호화된 데이터의 처리와 관련된 결과를 중개자 서버(308)에 제공할 수 있다.
일부 구현예에서, 중개자 서버(308)는 데이터 처리와 관련된 결과를 엔티티 서버(306)에 제공한다. 예컨대, 이 결과는 거래 식별자, 사용자 정보의 일부, 혹은 모바일 컴퓨팅 장치의 최종 사용자와 관련된 식별자를 이용해서 엔티티 서버(306)가 인식하기 위해서 식별될 수 있다. 예컨대, 암호화된 사용자 데이터를 처리를 위해서 포워딩할 때(320b), 중개자 서버(308)는 고유한 거래 식별자를 수신할 수 있다. 다른 방안으로, 암호화된 사용자 데이터를 수신한 것에 응답해서, 중개자 서버(308)는 엔티티 서버(306)에, 이 암호화된 데이터와 관련된 고유한 거래 식별자를 엔티티 서버(306)에 제공할 수 있다.
일부 구현예에서, 결과와 관련된 정보는 최종 사용자의 모바일 계정에 제공될 수 있다(326). 예컨대, 모바일 컴퓨팅 장치(302)를 이용해서, 최종 사용자는 모바일 장치 애플리케이션을 통해서 결과 정보를 수신할 수 있다.
특정한 일련의 단계로 도시되어 있지만, 일부 구현예에서, 더 많은 혹은 더 적은 단계가 구현될 수 있으며, 혹은 단계 중 하나 이상이 다른 순서로 수행될 수도 있다. 동작 흐름(300)의 다른 수정예도 있을 수 있다.
도 4는 클라이언트로부터 생성된 정보의 클라이언트측 암호화를 가능하게 하는 예시적인 방법(400)의 흐름도이다. 방법(400)은 예컨대, 도 1과 관련해서 설명한 중개자 서버(105)와 같은 중개자 서버에 의해 구현될 수 있다.
일부 구현예에서, 이 방법은 사용자 데이터를 암호화하기 위한 암호화 알고리즘을 제공하는 것으로 시작된다(402). 암호화 알고리즘은 예컨대, 엔티티에 제공되어서 민감 정보를 암호화하는데 사용될 수 있다.
일부 구현예에서, 암호화 알고리즘과 함께 사용하도록 공개 키가 엔티티에 할당된다(404). 공개 키는 예컨대, 암호화 알고리즘과 조합해서 사용될 수 있다. 일부 구현예에서, 공개 키는 할당자(예컨대, 중개자 서버)가 유지하고 있는 개인 키와 쌍을 이룬다.
일부 구현예에서, 공개 키 및 암호화 알고리즘으로 암호화된 사용자 데이터가 수신된다(406). 엔티티 서버는 예컨대, 클라이언트 컴퓨팅 장치에서 암호화 알고리즘 및 공개 키를 이용해서 암호화된 데이터를 포워딩한다. 일부 구현예에서, 암호화되지 않은 사용자 데이터가 암호화된 사용자 데이터와 같은 전송에 포함될 수 있다.
일부 구현예에서, 암호화된 사용자 데이터와 관련된 엔티티가 결정된다(408). 이 엔티티를 식별하는 식별자가 암호화된 사용자 데이터의 전송 내에(예컨대, 암호화된 데이터와 함께 제공되는 전송 패킷 헤더 내에 혹은 암호화되지 않은 데이터 내에) 제공될 수 있다. 다른 예에서, 엔티티는 전송의 소스(예컨대, IP 주소, DNS 서버 등)에 의해 식별될 수 있다. 공개 키 혹은 이 공개 키에 대응하는 식별자는 일부 구현예에서, 암호화된 사용자 데이터와 함께 제공된다. 엔티티 혹은 엔티티와 관련된 개인 키는 공개 키에 기초해서 식별될 수 있다.
일부 구현예에서, 엔티티와 관련된 개인 키가 결정된다(410). 일부 구현예에서, 엔티티에 하나의 공개 키가 할당되었다. 이러한 상황에서, 개인 키를 고유하기 식별하는데 단계 408에서 식별된 엔티티가 사용될 수 있다. 만약 엔티티에 2개 이상의 공개 키가 할당되었다면, 일부 구현예에서, 개인 키를 식별하기 위해서 추가 정보가 분석될 수 있다. 예컨대, 처리 요청에 매칭되는 개인 키를 식별할 때, 정보의 소스(예컨대, 모바일 장치 애플리케이션이나 웹 페이지), 요청받은 처리의 타입(예컨대, 신용 카드 처리나 개인 신원 확인 등), 혹은 정보의 전송 소스(예컨대, 엔티티 게이트웨이, IP 어드레스, DNS 네임 등)를 고려할 수 있다.
일부 구현예에서, 암호화된 사용자 데이터는 개인 키 및 해독 알고리즘을 이용해서 해독된다(412). 해독된 데이터는 일부 구현예에서, 검사 목적으로 저장될 수 있다.
일부 구현예에서, 해독된 사용자 데이터는 처리 엔진을 통한 처리를 위해서 큐잉된다(414). 예컨대, 정보의 소스, 정보와 관련된 엔티티 및/또는 요청받은 처리의 타입과 관련된 전송 내의 식별자에 기초해서, 해독된 사용자 데이터는 하나 이상의 백엔드 처리 서버에서 처리하도록 큐잉될 수 있다. 일부 구현예에서, 백엔드 처리 시스템은 예컨대, 신용 카드 회사와 같은 제 3 자가 소유하고 있다. 다른 구현예에서, 중개자 서버 및 백엔드 처리 시스템은 동일한 엔티티에 의해 제어된다. 백엔드 처리 시스템을 즉시 이용할 수 있다면, 해독된 사용자 데이터는 큐잉이 아닌 처리를 위해서 전송될 수 있다.
일부 구현예에서, 해독된 사용자 데이터는 처리 엔진에 제공된다(416). 일부 구현예에서, 암호화된 사용자와 함께 전송되어서 해독된 사용자 데이터의 일부는, 처리 엔진에도 공급되어서, 예컨대, 요청자에게 상황을 전달하기 위한 식별 정보(예컨대, 명칭, 집 코드 등)로서 사용될 수 있다. 해독된 사용자 정보는, 일부 구현예에서 보안 전송의 처리 엔진에 제공된다. 해독된 사용자 데이터를 처리 엔진에 제공하기 전에, 예컨대 데이터는 처리 엔진이 식별할 수 있는 포맷으로 암호화될 수 있다. 다른 예에서, 해독된 사용자 데이터는 보안 통신 접속을 통해서 처리 엔진에 제공될 수 있다.
일부 구현예에서, 처리 결과를 처리 엔진으로부터 수신한다(418). 이 결과에 포함된 정보는 참거짓(boolean)(예컨대, 승인됨/거부됨 등)에서 리치 미디어 응답으로(예컨대, 지문의 이미지 데이터, 사진, 텍스트 데이터 등) 바뀔 수 있다. 이 결과는 예컨대, 요청받은 처리의 타입에 기초해서 달라질 수 있다. 이 처리 결과는 실시간으로(예컨대, 해독된 사용자 데이터가 처리 엔진에 제공된 직후) 혹은 이후에 제공될 수 있다. 일부 구현예에서, 거래 식별자, 사용자 식별자, 엔티티 식별자 및/또는 요청 타임스탬프 중 하나 이상에 기초해서 결과를 포함하는 전송이 식별될 수 있다. 일부 구현예에서, 처리 결과를 수신할 때, 처리 결과는 특정 처리 요청과 매칭된다.
일부 구현예에서, 처리 결과는 엔티티에 제공된다(420). 일부 구현예에서, 처리 결과를 처리 요청에 매칭시킬 때, 정보를 요청 엔티티에 중계할 응답 방법이 식별될 수 있다. 예컨대, 엔티티는 처리 결과를 수신하기 위한 전용 서버, 게이트 웨이, 전송 코드, 전송 스타일 혹은 다른 선호 사항을 가질 수 있다. 일부 구현예에서, 처리 결과 혹은 처리 결과의 이용 가능성을 나타내는 표시가 이메일로 전송되거나, 팩스로 발행되거나, 중개 시스템에 의해서 엔티티에 유지되는 계정에 로그인될 수 있다. 일부 구현예에서, 요청 정보의 일부는, 예컨대, 처리 결과와 엔티티의 요청 사이의 매칭을 가능하게 하도록 처리 결과를 포함한 전송에 제공될 수 있다.
처리 결과를 제공하는 것에 더해서, 일부 구현예에서, 방법(400)은 처리 결과, 처리 결과와 관련된 정보(예컨대, 수신 시각, 엔티티에 포워딩한 시각, 엔티티에 포워딩한 것이 성공했다는 표시 등)를 장기 저장 영역에 저장하는 것을 포함할 수 있다. 이 정보는 예컨대, 검사 목적으로 저장될 수 있다.
특정한 일련의 단계로 도시되어 있지만, 일부 구현예에서, 더 많은 혹은 더 적은 단계가 구현될 수 있으며, 혹은 단계 중 하나 이상이 다른 순서로 수행될 수도 있다. 동작 흐름(400)의 다른 수정예도 있을 수 있다.
도 5에 도시된 바와 같이, 클라이언트측 암호화 및 데이터의 보안 전송을 위한 예시적인 클라우드 컴퓨팅 환경(500)이 도시되어 있으며, 이하 설명한다. 클라우드 컴퓨팅 환경(500)은 하나 이상의 리소스 제공자(502a, 502b, 502c)(합쳐서 502)를 포함한다. 각각의 리소스 제공자(502)는 컴퓨팅 리소스를 포함할 수 있다. 일부 구현예에서, 컴퓨팅 리소스는 데이터를 처리하는데 사용될 임의의 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 예컨대, 컴퓨팅 리소스는 알고리즘, 컴퓨터 프로그램 및/또는 컴퓨터 애플리케이션을 실행할 수 있는 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 일부 구현예에서, 예시적인 컴퓨팅 리소스는 저장 및 검색 기능을 가진 애플리케이션 서버 및/또는 데이터베이스를 포함할 수 있다. 각각의 리소스 제공자(502)는 클라우드 컴퓨팅 환경(500) 내의 다른 리소스 제공자(502)에 접속될 수 있다. 일부 구현예에서, 리소스 제공자(502)는 컴퓨터 네트워크(508)를 통해서 접속될 수 있다. 각각의 리소스 제공자(502)는 컴퓨터 네트워크(508)를 통해서 하나 이상의 컴퓨팅 장치(504a, 504b, 504c)(합쳐서 504)에 접속될 수 있다.
클라우드 컴퓨팅 환경(500)은 리소스 관리자(506)를 포함할 수 있다. 리소스 관리자(506)는 컴퓨터 네트워크(508)를 통해서 리소스 제공자(502) 및 컴퓨팅 장치(504)에 접속될 수 있다. 일부 구현예에서, 리소스 관리자(506)는, 하나 이상의 리소스 제공자(502)가 하나 이상의 컴퓨팅 장치(504)에 컴퓨팅 리소스를 제공하는 것을 돕는다. 리소스 관리자(506)는 특정 컴퓨팅 장치(504)로부터 컴퓨팅 리소스에 대한 요청을 수신할 수 있다. 리소스 관리자(506)는 이 컴퓨팅 장치(504)가 요청한 컴퓨팅 리소스를 제공할 수 있는 리소스 제공자(502)를 하나 이상 식별할 수 있다. 리소스 관리자(506)는 컴퓨팅 리소스를 제공할 리소스 제공자(502)를 선택할 수 있다. 리소스 관리자(506)는 리소스 제공자(502)와 특정 컴퓨팅 장치(504) 사이의 접속을 도울 수 있다. 일부 구현예에서, 리소스 관리자(506)는 특정 리소스 제공자(502)와 특정 컴퓨팅 장치(504) 사이의 접속을 성립시킬 수 있다. 일부 구현예에서, 리소스 관리자(506)는 특정 컴퓨팅 장치(504)를, 요청한 컴퓨팅 리소스를 갖고 있는 특정 리소스 제공자(502)로 방향 전환한다.
도 6은 본 개시에서 설명되는 기술을 구현하는데 사용될 수 있는 컴퓨팅 장치(600) 및 모바일 컴퓨팅 장치(650)의 예를 나타내고 있다. 컴퓨팅 장치(600)는 랩톱, 데스크톱, 워크스테이션, PDA, 서버, 블레이드 서버, 메인프레임 및 다른 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 나타내는 것이다. 모바일 컴퓨팅 장치(650)는 PDA, 휴대 전화, 스마트폰 및 다른 유사한 컴퓨팅 장치와 같은 다양한 형태의 모바일 장치를 나타내는 것이다. 도시된 구성 요소, 이들의 접속와 관련성, 이들의 기능은 단지 예시적인 것으로 한정의 의미가 아니다.
컴퓨팅 장치(600)는 프로세서(602), 메모리(604), 저장 장치(606), 메모리(604)와 다수의 고속 확장 포트(610)에 접속된 고속 인터페이스(608), 및 저속 확장 포트(614) 및 저장 장치(606)에 접속된 저속 인터페이스(612)를 포함한다. 프로세서(602), 메모리(604), 저장 장치(606), 고속 인터페이스(608) 및 저속 인터페이스(612) 각각은 다양한 버스를 이용해서 서로 접속되어 있고, 통상의 마더보드나 혹은 적절한 방식으로 장착될 수 있다. 프로세서(602)는, 메모리(604)나 저장 장치(606)에 저장된 명령어를 포함한, 컴퓨팅 장치(600) 내에서 실행되는 명령어를 처리해서, 고속 인터페이스(608)에 연결된 디스플레이(616)와 같은 외부 입출력 장치의 GUI를 위한 그래픽 정보를 표시할 수 있다. 다른 구현예에서, 다수의 프로세서 및/또는 다수의 버스가 다수의 다양한 타입의 메모리와 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 장치가 접속될 수 있으며, 각각의 디바이스는 필요한 동작을 제공한다(예컨대, 서버 은행, 블레이드 서버의 그룹, 혹은 멀티-프로세서 시스템과 같이).
메모리(604)는 컴퓨팅 장치(600) 내에 정보를 저장한다. 일부 구현예에서, 메모리(604)는 휘발성 메모리 유닛 혹은 복수의 유닛이다. 일부 구현예에서, 메모리(604)는 비휘발성 메모리 유닛 혹은 복수의 유닛이다. 메모리(604)는 자기형 혹은 광학형 디스크와 같은, 다른 형태의 컴퓨터-판독 가능 매체가 될 수도 있다.
저장 장치(606)는 컴퓨팅 장치(600)에 대용량 저장을 제공할 수 있다. 일부 구현예에서, 저장 장치(606)는 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치와 같은 컴퓨터-판독 가능 매체가 될 수도 있고, 플래시 메모리나 다른 유사한 고체 상태 메모리 소자가 될 수도 있으며, 저장 영역 네트워크 혹은 다른 구성의 장치를 포함한 장치의 어레이가 될 수도 있고, 이를 포함할 수도 있다. 이 명령어는 정보 반송파에 저장될 수 있다. 이 명령어는 하나 이상의 프로세싱 장치(예컨대, 프로세서(602))에 의해 실행될 때, 상술한 바와 같은 방법을 하나 이상 수행한다. 명령어는 컴퓨터 혹은 머신 판독 가능 매체(예컨대, 메모리(604), 저장 장치(606) 혹은 프로세서(602) 상의 메모리)와 같은, 하나 이상의 저장 장치에 의해 저장될 수 있다.
고속 인터페이스(608)는 컴퓨팅 장치(600)의 대역폭 집약식(intensive) 동작을 관리하고, 저속 인터페이스(612)는 저대역 집약식 동작을 관리한다. 이와 같은 기능 할당은 단지 예시적인 것이다. 일부 구현예에서, 고속 인터페이스(608)는 메모리(604), 디스플레이(616)(예컨대, 그래픽 프로세서나 가속기를 통해서) 및 다양한 확장 카드(도시 생략)를 수용할 수 있는 고속 확장 포트(610)에 연결된다. 일부 구현예에서, 저속 인터페이스(612)는 저장 장치(606) 및 저속 확장 포트(614)에 연결된다. 저속 확장 포트(614)는 다양한 통신 포트(예컨대, USB, Bluetooth®, 이더넷, 무선 이더넷)를 포함할 수 있으며, 예컨대, 네트워크 어댑터를 통해서 키보드, 포인팅 장치, 스캐너, 혹은 스위치나 라우터와 같은 네트워킹 장치에 연결될 수 있다.
컴퓨팅 장치(600)는 도면에 도시된 바와 같은 다양한 상이한 형태로 구현될 수 있다. 예컨대, 표준 서버(620)로 구현될 수도 있고, 이러한 서버의 그룹에 여러번 구현될 수도 있다. 나아가, 이는 랩톱 컴퓨터(622)와 같은 개인용 컴퓨터에서 구현될 수도 있다. 이는 또한 랙 서버(rack server) 시스템(624)의 일부로 구현될 수도 있다. 다른 방안으로, 컴퓨팅 장치(600)의 구성 요소는 모바일 컴퓨팅 장치(650)와 같은 모바일 장치(도시 생략) 내의 다른 구성 요소와 결합될 수 있다. 이러한 장치 각각은 컴퓨팅 장치(600) 및 모바일 컴퓨팅 장치(650) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하고 있는 다수의 컴퓨팅 장치로 이루어질 수 있다.
모바일 컴퓨팅 장치(650)는 프로세서(652), 메모리(664), 그리고 특히 디스플레이(654), 통신 인터페이스(666) 및 송수신기(668)와 같은 입출력 장치를 포함한다. 모바일 컴퓨팅 장치(650)에는 마이크로-드라이브 혹은 다른 장치와 같은 저장 장치가 제공되어서 추가 저장을 제공할 수도 있다. 프로세서(652), 메모리(664), 디스플레이(654), 통신 인터페이스(666) 및 송수신기(668) 각각은 다양한 버스를 이용해서 서로 접속되고, 여러 구성 요소들이 마더보드에 장착되거나 다른 적절한 방식으로 장착될 수 있다.
프로세서(652)는 메모리(664)에 저장된 명령어를 포함한, 모바일 컴퓨팅 장치(650) 내의 명령어를 실행할 수 있다. 프로세서(652)는 별도의 복수의 아날로그 및 디지털 프로세서를 포함한, 칩의 칩셋으로 구현될 수도 있다. 프로세서(652)는 예컨대, 사용자 인터페이스의 제어, 모바일 컴퓨팅 장치(650)에 의해 실행되는 애플리케이션 및 모바일 컴퓨팅 장치(650)에 의한 무선 통신과 같은 모바일 컴퓨팅 장치(650)의 다른 구성 요소의 조정을 제공할 수 있다.
프로세서(652)는 제어 인터페이스(658) 및 디스플레이(654)에 연결된 디스플레이 인터페이스(656)를 통해서 사용자와 통신할 수 있다. 디스플레이(654)는 예컨대, TFT(Thin-Film-Transistor Liquid Crystal Display) 디스플레이나 OLED(Organic Light Emitting Diode) 디스플레이, 혹은 다른 적절한 디스플레이 기술이 될 수 있다. 디스플레이 인터페이스(656)는 디스플레이(654)를 구동해서 그래픽 정보 및 다른 정보를 사용자에게 제공하게 하는 적절한 회로를 포함할 수 있다. 제어 인터페이스(658)는 사용자로부터 커맨드를 수신하고, 이를 프로세서(652)에 제공하도록 변환할 수 있다. 나아가, 외부 인터페이스(662)는 프로세서(652)와의 통신을 제공해서, 모바일 컴퓨팅 장치(650)와 다른 장치와의 근거리 통신을 가능하게 할 수 있다. 외부 인터페이스(662)는 예컨대, 일부 구현예에서는 유선 통신을, 혹은 다른 구현예에서는 무선 통신을 제공할 수 있으며, 다수의 인터페이스가 사용될 수도 있다.
메모리(664)는 모바일 컴퓨팅 장치(650) 내에 정보를 저장한다. 메모리(664)는 컴퓨터-판독 가능 매체, 휘발성 메모리 유닛이나 복수의 유닛, 혹은 비휘발성 메모리 유닛이나 복수의 유닛 중 하나 이상으로 구현될 수 있다. 확장 메모리(674)가 제공되어서 확장 인터페이스(672)를 통해서 모바일 컴퓨팅 장치(650)에 접속될 수 있으며, 확장 인터페이스(672)는 예컨대, SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있다. 확장 메모리(674)는 모바일 컴퓨팅 장치(650)에 추가 저장 공간을 제공할 수도 있고, 또는 모바일 컴퓨팅 장치(650)에 애플리케이션이나 다른 정보를 저장할 수도 있다. 상세하게 확장 메모리(674)는 상기 설명한 처리를 실행 혹은 보충하는 명령어를 포함할 수 있으며, 보안 정보를 포함할 수도 있다. 따라서, 예컨대, 확장 메모리(674)는 모바일 컴퓨팅 장치(650)의 보안 모듈로서 제공될 수도 있고, 모바일 컴퓨팅 장치(650)의 보안 사용을 가능하게 하는 명령어로 프로그래밍될 수도 있다. 나아가, SIMM 카드에 식별 정보를 해킹 불가능한 방식으로 배치하는 등의, SIMM 카드를 통해서 보안 애플리케이션이 추가 정보와 함께 제공될 수 있다.
예컨대, 메모리는, 이하에 설명하는 플래시 메모리 및/또는 NVRAM 메모리(nonvolatile random access memory)를 포함할 수 있다. 일부 구현예에서, 명령어는 정보 반송파에 저장되어서, 하나 이상의 처리 장치(예컨대, 프로세서(652))에 의해 실행될 때, 상기 설명한 바와 같은 방법을 하나 이상 실행하도록 명령한다. 이 명령어는 또한 하나 이상의 컴퓨터 판독 가능 혹은 머신 판독 가능 매체(예컨대, 메모리(664), 확장 메모리(674), 혹은 프로세서(652)의 메모리)와 같은, 하나 이상의 저장 장치에 의해 저장될 수 있다. 일부 구현예에서, 명령어는 예컨대, 송수신기(668)나 외부 인터페이스(662)를 통해서 전파 신호로 수신될 수 있다.
모바일 컴퓨팅 장치(650)는 통신 인터페이스(666)를 통해서 무선으로 통신할 수 있고, 필요한 경우에 디지털 신호 처리 회로를 포함할 수 있다. 통신 인터페이스(666)는, 특히, GSM(Global System for Mobile communications) 보이스 콜, SMS, EMS 혹은 MMS 메시징, CDMA, TDMA, PDC(Personal Digital Cellular), WCDMA, CDMA2000, 혹은 GPRS와 같은 다양한 모드 혹은 프로토콜 하에서 통신을 제공할 수 있다. 이러한 통신은 예컨대, 무선 주파수를 이용해서 송수신기(668)을 통해서 이루어질 수 있다. 또한, Bluetooth®, Wi-Fi™ 혹은 기타 송수신기(도시 생략)를 이용하는 등해서 근거리 통신이 이루어질 수도 있다. 나아가 GPS 수신기 모듈(670)이 추가적인 네비게이션 관련 및 위치 관련 무선 데이터를 모바일 컴퓨팅 장치(650)에 제공할 수 있으며, 이는 모바일 컴퓨팅 장치(650)에서 실행되는 애플리케이션에 의해 적절하게 사용될 수 있다.
모바일 컴퓨팅 장치(650)는 또한, 사용자로부터의 음성 정보를 수신해서 이용 가능한 디지털 정보로 변환하는 오디오 코덱(660)을 이용해서 오디오로 통신할 수도 있다. 오디오 코덱(660)은 예컨대, 모바일 컴퓨팅 장치(650)의 헤드셋에 있는 스피커 등을 통해서 사용자를 위한 가청의 소리를 생성할 수 있다. 이러한 소리는 음성 전화로부터의 소리를 포함할 수 있고, 기록된 소리(예컨대, 음성 메시지, 음악 파일 등)를 포함할 수 있으며, 또한 모바일 컴퓨팅 장치(650)에서 동작하는 애플리케이션에 의해 생성된 소리를 포함할 수 있다.
모바일 컴퓨팅 장치(650)는 도면에 도시된 바와 같은 다양한 형태로 구현될 수 있다. 예컨대, 휴대 전화(680)로 구현될 수 있다. 또한 스마트 폰(682), PDA 혹은 다른 유사한 모바일 장치의 일부로 구현될 수 있다.
여기서 설명되는 시스템 및 기술의 다양한 구현예는, 전자 회로, 집적 회로, 특수 설계된 ASIC, 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다. 이들 다양한 구현예는, 적어도 하나의 프로그래밍 가능 프로세서를 포함한 프로그래밍 가능 시스템에서 실행 가능하고 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램으로 구현되는 것을 포함할 수 있으며, 적어도 하나의 프로그래밍 가능 프로세서는 특수 목적 혹은 다목적인 것이 될 수 있으며, 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치와 데이터 및 명령어를 송수신하도록 연결되어 있다.
이들 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션 혹은 코드 등이라고도 함)은 프로그래밍 가능 프로세서용의 머신 명령어를 포함하고, 상위 레벨 프로시듀얼 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블리/기계어로 구현될 수 있다. 여기서 사용되는 용어 머신-판독 가능 매체 및 컴퓨터-판독 가능 매체는, 머신 명령어 및/또는 데이터를 프로그래밍 가능 프로세서에 제공하는데 사용되는, 임의의 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예컨대, 자기 디스크, 광 디스크, 메모리, PLD(Programmable Logic Devices))을 가리키며, 머신 명령어를 머신-판독 가능 신호로서 수신하는 머신-판독 가능 매체를 포함한다. 용어 머신-판독 가능 신호는 머신 명령어 및/또는 데이터를 프로그래밍 가능 프로세서에 제공하는데 사용되는 임의의 신호를 가리킨다.
사용자와의 인터렉트를 제공하기 위해서, 여기서 설명되는 시스템 및 기술은, 사용자에게 정보를 표시하는 디스플레이 장치(예컨대, CRT 혹은 LCD 모니터) 및 사용자가 컴퓨터에 입력을 제공하는데 사용할 수 있는 키보드 및 포인팅 장치(예컨대, 마우스나 트랙볼)를 구비한 컴퓨터에서 구현될 수 있다. 사용자와의 인터렉트를 제공하는데 다른 종류의 장치가 사용될 수도 있으며, 예컨대, 사용자에게 제공되는 피드백은, 임의의 감각적인 피드백(예컨대, 시각적인 피드백, 청각적인 피드백 혹은 촉각적인 피드백)의 형태가 될 수 있고, 사용자로부터의 입력은 음향, 음성 혹은 촉각 입력을 포함한 임의의 형태로 수신될 수 있다.
여기서 설명되는 시스템 및 기술은 컴퓨터 시스템에서 구현될 수 있으며, 이 컴퓨터 시스템은 백엔드 구성 요소(예컨대, 데이터 서버)를 포함할 수도 있고, 미들웨어 구성 요소(예컨대, 애플리케이션 서버)를 포함할 수도 있으며, 혹은 프론트 엔드 구성 요소(예컨대, 사용자가 여기서 설명되는 시스템 및 기술의 구현과 인터렉트하는데 사용할 수 있는 그래픽 사용자 인터페이스나 웹 브라우저를 구비한 클라이언트 컴퓨터)를 포함할 수 있으며, 혹은 이러한 백엔드, 미들웨어 혹은 프론트 엔드 구성 요소의 임의의 조합을 포함할 수 있다. 이 시스템의 구성 요소는 임의의 형태 혹은 매체의 디지털 데이터 통신(예컨대, 통신 네트워크)를 통해서 상호 접속될 수 있다. 통신 네트워크의 예로는 LAN, WAN 및 인터넷을 들 수 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 이격되어 있고, 전형적으로는 통신 네트워크를 통해서 인터렉트한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터에서 실행되며 서로 클라이언트-서버의 관계를 갖고 있는 컴퓨터 프로그램을 통해서 이루어진다.
여기 설명된 시스템 및 방법의 구조, 기능 및 장치의 관점에서, 일부 구현예에서, 거래 데이터를 수집하고 조작하는 장치 및 방법이 제공된다. 사용자 데이터의 클라이언트측 암호화 및 보안 전송을 위한 방법 및 장치의 특정한 구현예를 설명했지만, 당업자라면 본 개시의 개념을 포함하는 다른 구현예가 사용될 수 있다는 것을 이해할 것이다. 따라서, 본 개시는 특정 구현예로 한정되는 것이 아니며, 이하의 청구항의 사상 및 범주에 의해서만 한정된다.

Claims (29)

  1. 엔티티가 사용하도록 서비스 제공자에 의해 할당된 공개 키를 수신하는 단계 - 상기 서비스 제공자는 상기 공개 키와 쌍이 되는 개인 키를 유지하고 있음 - 와,
    제 1 컴퓨팅 장치의 프로세서에 의하여, 상기 공개 키를 포함하는 인터렉티브(interactive) 프로그램을 결정하는 단계와,
    상기 인터렉티브 프로그램을 최종 사용자에게 제공하는 단계 - 상기 인터렉티브 프로그램은 제 2 컴퓨팅 장치의 프로세서가 상기 공개 키를 이용해서 데이터를 암호화할 수 있게 하도록 구성되어 있고, 상기 제 2 컴퓨팅 장치는 상기 최종 사용자에 의해 제어됨 - 와,
    상기 제 2 컴퓨팅 장치로부터 암호화된 데이터를 제 1 네트워크를 통해서 수신하는 단계 - 상기 암호화된 데이터는 상기 공개 키를 이용해서 상기 제 2 컴퓨팅 장치의 상기 프로세서에 의해 암호화된 것임 - 와,
    상기 암호화된 데이터를 제 2 네트워크를 통해서 상기 서비스 제공자에게 포워딩하는 단계 - 상기 서비스 제공자는 상기 개인 키를 결정하고 상기 암호화된 데이터를 해독하도록 구성되어 있으며, 상기 제 1 컴퓨팅 장치는 암호화되지 않은 데이터에 액세스할 수 없음 - 와,
    상기 서비스 제공자로부터 상기 암호화된 데이터의 해독과 연관된 처리 결과를 수신하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 인터렉티브 프로그램은 모바일 컴퓨팅 장치 애플리케이션이고,
    상기 제 2 컴퓨팅 장치는 모바일 컴퓨팅 장치이며,
    상기 모바일 컴퓨팅 장치 애플리케이션은 상기 제 2 컴퓨팅 장치의 상기 프로세서에 인스톨되도록 구성될 수 있는
    방법.
  3. 제 1 항에 있어서,
    상기 인터렉티브 프로그램은, 실행시에, 상기 제 2 컴퓨팅 장치의 상기 프로세서로 하여금, 상기 공개 키를 이용해서 데이터를 암호화하게 하는 명령어를 포함하는
    방법.
  4. 제 3 항에 있어서,
    상기 인터렉티브 프로그램은, 실행시에 또한, 상기 제 2 컴퓨팅 장치의 상기 프로세서로 하여금, 상기 엔티티 및 상기 서비스 제공자 중 하나로부터 암호화 서브프로그램을 다운로드하게 하는 명령어를 포함하는
    방법.
  5. 제 1 항에 있어서,
    상기 인터렉티브 프로그램은 인터넷 브라우저 애플리케이션 내에 렌더링될 수 있는 명령어를 포함하는
    방법.
  6. 제 1 항에 있어서,
    상기 제 2 컴퓨팅 장치에 상기 처리 결과와 연관된 결과 정보를 제공하는 단계를 더 포함하고,
    상기 결과 정보는 상기 제 2 컴퓨팅 장치의 디스플레이에 표시되도록 구성되는
    방법.
  7. 하나 이상의 암호화 알고리즘 및 공개 키를 수신하는 단계 - 상기 하나 이상의 암호화 알고리즘은 상기 공개 키를 이용해서 데이터를 암호화해서 암호화된 데이터를 획득하도록 구성되고, 상기 암호화된 데이터는, 상기 공개 키와 쌍이 되는 개인 키를 이용해서 해독되도록 구성되며, 상기 하나 이상의 암호화 알고리즘 및 상기 공개 키는 네트워크를 통해서 서비스 제공자에 의해 제공되며, 상기 공개 키는 엔티티에서 사용하도록 상기 서비스 제공자에 의해 할당된 것이고, 상기 서비스 제공자는 상기 개인 키를 저장하고 있음 - 와,
    제 1 컴퓨팅 장치의 프로세서에 의하여, 상기 하나 이상의 암호화 알고리즘 및 상기 공개 키를 포함한 모바일 장치 애플리케이션을 생성하는 단계와,
    상기 모바일 장치 애플리케이션을 네트워크를 통해서 다운로드하도록 제공하는 단계와,
    암호화된 데이터를 수신하는 단계 - 상기 데이터는 모바일 컴퓨팅 장치의 프로세서에 의해 상기 하나 이상의 암호화 알고리즘 및 상기 공개 키를 이용해서 암호화되고, 상기 모바일 장치 애플리케이션은 상기 모바일 컴퓨팅 장치에 인스톨됨 - 와,
    상기 암호화된 데이터를 제 2 컴퓨팅 장치에 포워딩하는 단계 - 상기 제 2 컴퓨팅 장치는 상기 서비스 제공자에 의해 제어되고, 상기 서비스 제공자는 상기 암호화된 데이터를 해독해서 해독된 데이터를 획득하고, 상기 해독된 데이터의 처리를 관리해서 처리 결과를 획득하도록 구성됨 -
    상기 제 2 컴퓨팅 장치로부터 상기 처리 결과를 수신하는 단계를 포함하는
    방법.
  8. 제 7 항에 있어서,
    제 3 컴퓨팅 장치의 프로세서가, 상기 처리 결과에 기초한 결과 정보를 생성하는 단계와,
    상기 결과 정보를 상기 네트워크를 통해서, 상기 모바일 컴퓨팅 장치에서 실행되는 상기 모바일 장치 애플리케이션에 제공하는 단계를 더 포함하는
    방법.
  9. 제 8 항에 있어서,
    상기 제 1 컴퓨팅 장치는 상기 제 3 컴퓨팅 장치인
    방법.
  10. 제 7 항에 있어서,
    상기 제 2 컴퓨팅 장치에, 처리 타입의 표시를 제공하는 단계를 더 포함하고,
    상기 처리 타입은 상기 암호화된 데이터와 연관되어 있으며,
    상기 서비스 제공자는 상기 해독된 데이터의 처리를 상기 처리 타입에 기초해서 관리하는
    방법.
  11. 제 1 컴퓨팅 장치의 프로세서에 의하여, 복수의 공개 키를 할당하는 단계 - 상기 복수의 공개 키의 각각의 공개 키는 복수의 엔티티의 각각의 엔티티에 할당됨 - 와,
    상기 제 1 컴퓨팅 장치의 메모리에 복수의 개인 키를 저장하는 단계 - 상기 복수의 개인 키의 각각의 개인 키는 상기 복수의 공개 키의 각각의 공개 키에 대응함 - 와,
    상기 제 1 컴퓨팅 장치의 상기 메모리에 하나 이상의 해독 알고리즘을 저장하는 단계 - 상기 하나 이상의 해독 알고리즘의 각각의 해독 알고리즘은 상기 하나 이상의 암호화 알고리즘 중 적어도 하나의 암호화 알고리즘을 이용해서 이전에 암호화된 데이터를 해독하도록 구성되고, 상기 하나 이상의 암호화 알고리즘의 각각의 암호화 알고리즘은 상기 복수의 공개 키 중 적어도 하나의 공개 키를 이용해서 데이터를 암호화하도록 구성되며, 상기 하나 이상의 해독 알고리즘의 각각의 해독 알고리즘은 상기 복수의 개인 키 중 적어도 하나의 개인 키를 이용해서 데이터를 해독하도록 구성됨 - 와,
    암호화된 데이터를 수신하는 단계 - 상기 암호화된 데이터는 상기 복수의 공개 키 중 제 1 공개 키 및 상기 하나 이상의 암호화 알고리즘 중 제 1 암호화 알고리즘을 이용해서 암호화되고, 상기 암호화된 데이터는 네트워크를 통해서 제공됨 - 와,
    상기 제 1 컴퓨팅 장치의 상기 프로세서에 의하여, 상기 복수의 개인 키 중 제 1 개인 키를 결정하는 단계 - 상기 제 1 개인 키는 상기 제 1 공개 키에 대응하고, 상기 제 1 공개 키는 상기 복수의 엔티티 중 제 1 엔티티에 할당됨 - 와,
    상기 제 1 컴퓨팅 장치의 상기 프로세서에 의하여, 상기 제 1 개인 키 및 상기 하나 이상의 해독 알고리즘 중 적어도 하나의 해독 알고리즘을 이용해서, 상기 암호화된 데이터를 해독하는 단계 - 상기 해독된 데이터는 상기 암호화된 데이터를 해독해서 획득됨 - 와,
    상기 해독된 데이터의 일부를 처리 엔진에 의한 처리를 위해서 제공하는 단계 - 상기 처리 엔진은 제 2 컴퓨팅 장치에 포함됨 - 와,
    상기 처리 엔진에 의해 생성된 처리 결과를 수신하는 단계 - 상기 처리 결과는 상기 해독된 데이터의 상기 일부와 연관됨 - 와,
    상기 처리 결과를 상기 네트워크를 통해서 상기 제 1 엔티티에 제공하는 단계를 포함하는
    방법.
  12. 제 11 항에 있어서,
    상기 해독된 데이터의 일부를 처리 엔진에 의한 처리를 위해서 제공하는 단계 전에, 상기 제 1 컴퓨팅 장치의 상기 프로세서에 의하여 상기 해독된 데이터를 처리를 위해서 큐잉하는 단계를 더 포함하는
    방법.
  13. 제 11 항에 있어서,
    상기 암호화된 데이터를 수신하는 단계 전에,
    상기 제 1 암호화 알고리즘의 다운로드 요청을 수신하는 단계 - 상기 다운로드 요청은 제 3 컴퓨팅 장치로부터 상기 네트워크를 통해서 수신됨 - 와,
    상기 제 1 암호화 알고리즘을 상기 네트워크를 통해서 상기 제 3 컴퓨팅 장치에 제공하는 단계를 더 포함하는
    방법.
  14. 제 13 항에 있어서,
    상기 다운로드 요청은 하이퍼텍스트 전송 프로토콜 요청을 포함하는
    방법.
  15. 제 13 항에 있어서,
    상기 제 1 컴퓨팅 장치의 상기 메모리에, 상기 하나 이상의 암호화 알고리즘을 하나 이상의 암호화 서브프로그램으로서 저장하는 단계를 더 포함하고,
    상기 제 1 암호화 알고리즘을 제공하는 단계는, 상기 하나 이상의 암호화 서브프로그램 중 제 1 암호화 서브프로그램을 제공하는 단계를 포함하며,
    상기 제 1 암호화 서브프로그램은 상기 제 1 암호화 알고리즘을 포함하는
    방법.
  16. 제 15 항에 있어서,
    상기 제 1 암호화 서브프로그램은 런타임 해석식 명령어(runtime interpreted instructions)를 포함하는
    방법.
  17. 제 11 항에 있어서,
    상기 해독된 데이터 및 상기 암호화된 데이터 중 적어도 하나를, 상기 제 1 컴퓨팅 장치가 액세스할 수 있는 저장 보관소(storage archive)에 저장하는 단계를 더 포함하는
    방법.
  18. 제 11 항에 있어서,
    상기 네트워크를 통해서 암호화되지 않은 데이터를 수신하는 단계 - 상기 암호화되지 않은 데이터는 상기 암호화된 데이터와 연관됨 - 와,
    상기 처리 엔진에 의한 처리를 위해서 상기 암호화되지 않은 데이터의 일부를 제공하는 단계 - 상기 암호화되지 않은 데이터의 상기 일부는 상기 해독된 데이터의 상기 일부와 함께 제공됨 - 를 더 포함하는
    방법.
  19. 제 11 항에 있어서,
    상기 네트워크를 통해서 상기 암호화된 데이터에서 실행될 처리의 타입의 표시를 수신하는 단계를 더 포함하고,
    상기 처리의 타입의 상기 표시는, 상기 제 1 엔티티가 제어하는 제 3 컴퓨팅 장치에 의해 제공되는
    방법.
  20. 제 19 항에 있어서,
    상기 처리의 타입은 신용 카드 인증 및 신원 조사(a background check) 중 적어도 하나를 포함하는
    방법.
  21. 제 19 항에 있어서,
    상기 암호화된 데이터는 신용 카드 정보, 병력(medical history) 정보, 사회 보장 번호, 은행 계좌 번호 및 운전 면허 번호 중 하나 이상을 포함하는
    방법.
  22. 제 11 항에 있어서,
    상기 암호화된 데이터는, 상기 제 1 엔티티에 의해 제어되는 제 3 컴퓨팅 장치로부터 상기 네트워크를 통해서 제공되고,
    상기 제 1 엔티티는 상기 암호화된 데이터를 해독할 수 없는
    방법.
  23. 제 1 컴퓨팅 장치의 메모리에 하나 이상의 암호화 알고리즘을 저장하는 단계와,
    상기 하나 이상의 암호화 알고리즘 중 제 1 암호화 알고리즘을, 네트워크를 통해서 요청자에게 제공하는 단계와,
    상기 제 1 컴퓨팅 장치의 상기 메모리에, 하나 이상의 해독 알고리즘을 저장하는 단계 - 상기 하나 이상의 해독 알고리즘의 각각의 해독 알고리즘은 상기 하나 이상의 암호화 알고리즘 중 적어도 하나의 암호화 알고리즘을 이용해서 이전에 암호화된 데이터를 해독하도록 구성됨 - 와,
    처리 요청을 수신하는 단계 - 상기 처리 요청은 암호화된 데이터, 암호화되지 않은 데이터, 수행될 처리의 타입의 표시를 포함하고, 상기 처리 요청은 엔티티에 의해 제어되는 제 2 컴퓨팅 장치로부터 네트워크를 통해서 제공되고, 상기 암호화된 데이터는 상기 제 1 암호화 알고리즘을 이용해서 암호화됨 - 와,
    상기 제 1 컴퓨팅 장치의 프로세서에 의하여, 상기 암호화된 데이터가 상기 엔티티와 관련되어 있다고 결정하는 단계와,
    상기 제 1 컴퓨팅 장치의 상기 프로세서에 의하여, 상기 하나 이상의 해독 알고리즘 중 제 1 해독 알고리즘을 결정하는 단계와,
    상기 제 1 컴퓨팅 장치의 상기 프로세서에 의하여, 상기 암호화된 데이터를 상기 제 1 해독 알고리즘을 이용해서 해독하는 단계 - 해독된 데이터는 상기 암호화된 데이터를 해독함으로써 획득됨 - 와,
    상기 제 1 컴퓨팅 장치의 상기 프로세서에 의하여, 상기 처리의 타입을 이용해서 상기 해독된 데이터를 처리하도록 구성된 처리 엔진을 결정하는 단계와,
    상기 해독된 데이터의 일부 및 상기 암호화되지 않은 데이터의 일부를 제 2 네트워크를 통해서 제 3 컴퓨팅 장치에 제공하는 단계 - 상기 제 3 컴퓨팅 장치는 상기 처리 엔진을 포함함 - 와,
    상기 제 3 컴퓨팅 장치로부터 처리 결과를 수신하는 단계와,
    상기 처리 결과를 상기 제 2 컴퓨팅 장치에 제공하는 단계를 포함하는
    방법.
  24. 제 23 항에 있어서,
    상기 제 1 암호화 알고리즘은 비대칭형 암호화 알고리즘인
    방법.
  25. 제 24 항에 있어서,
    상기 제 1 컴퓨팅 장치의 상기 프로세서에 의하여, 공개 키를 상기 엔티티에 할당하는 단계와,
    상기 공개 키를 상기 제 2 컴퓨팅 장치에 제공하는 단계 - 상기 암호화된 데이터는 상기 공개 키를 이용해서 암호화됨 - 와,
    상기 제 1 컴퓨팅 장치의 상기 메모리에 개인 키를 저장하는 단계 - 상기 개인 키는 상기 공개 키와 쌍이 됨 - 를 더 포함하고,
    상기 암호화된 데이터를 해독하는 단계는 상기 개인 키를 이용해서 해독하는 단계를 포함하는
    방법.
  26. 제 1 컴퓨팅 장치의 메모리에, 하나 이상의 암호화 알고리즘을 하나 이상의 암호화 서브프로그램으로서 저장하는 단계와,
    상기 하나 이상의 암호화 서브프로그램 중 제 1 암호화 서브프로그램에 대한 다운로드 요청을 네트워크를 통해서 수신하는 단계와,
    상기 제 1 암호화 서브프로그램을 상기 네트워크를 통해서 제공하는 단계와,
    상기 네트워크를 통해서, 처리 요청을 수신하는 단계 - 상기 처리 요청은 암호화된 데이터를 포함하고, 상기 암호화된 데이터는 상기 제 1 암호화 서브프로그램을 이용해서 암호화됨 - 와,
    상기 제 1 컴퓨팅 장치의 프로세서에 의하여, 상기 암호화된 데이터가 엔티티와 관련되어 있다고 결정하는 단계와,
    상기 제 1 컴퓨팅 장치의 상기 프로세서에 의하여, 상기 암호화된 데이터를 해독하도록 구성된 제 1 해독 알고리즘을 결정하는 단계와,
    상기 제 1 컴퓨팅 장치의 상기 프로세서에 의하여, 상기 암호화된 데이터를 상기 제 1 해독 알고리즘을 이용해서 해독하는 단계 - 해독된 데이터는 상기 암호화된 데이터를 해독함으로써 획득됨 - 와,
    상기 제 1 컴퓨팅 장치의 상기 프로세서에 의하여, 상기 해독된 데이터를 처리할 처리 엔진을 결정하는 단계와,
    상기 해독된 데이터의 일부를 제 2 네트워크를 통해서 제 2 컴퓨팅 장치에 제공하는 단계 - 상기 제 2 컴퓨팅 장치는 상기 처리 엔진을 포함함 - 와,
    상기 제 2 컴퓨팅 장치로부터 처리 결과를 수신하는 단계와,
    상기 처리 결과를 상기 네트워크를 통해서 제 3 컴퓨팅 장치에 제공하는 단계 - 상기 제 3 컴퓨팅 장치는 상기 엔티티에 의해 제어됨 - 를 포함하는
    방법.
  27. 제 26 항에 있어서,
    상기 처리 요청은 상기 제 3 컴퓨팅 장치로부터 수신되는
    방법.
  28. 제 26 항에 있어서,
    상기 처리 결과는 승인 및 거부 중 적어도 하나의 표시를 포함하는
    방법.
  29. 제 26 항에 있어서,
    상기 다운로드 요청은, 최종 사용자에 의해 제어되는 제 4 컴퓨팅 장치로부터 수신되고,
    상기 제 4 컴퓨팅 장치는 상기 제 2 컴퓨팅 장치 및 상기 제 3 컴퓨팅 장치와는 상이한
    방법.
KR1020147011394A 2011-09-30 2012-10-01 클라이언트로부터 생성되는 정보에 대한 차동 클라이언트측 암호화 KR101591255B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161541875P 2011-09-30 2011-09-30
US61/541,875 2011-09-30
PCT/US2012/058371 WO2013049857A2 (en) 2011-09-30 2012-10-01 Differential client-side encryption of information originating from a client

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020167001795A Division KR20160014109A (ko) 2011-09-30 2012-10-01 클라이언트로부터 생성되는 정보에 대한 차동 클라이언트측 암호화

Publications (2)

Publication Number Publication Date
KR20140099231A KR20140099231A (ko) 2014-08-11
KR101591255B1 true KR101591255B1 (ko) 2016-02-04

Family

ID=47996799

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167001795A KR20160014109A (ko) 2011-09-30 2012-10-01 클라이언트로부터 생성되는 정보에 대한 차동 클라이언트측 암호화
KR1020147011394A KR101591255B1 (ko) 2011-09-30 2012-10-01 클라이언트로부터 생성되는 정보에 대한 차동 클라이언트측 암호화

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167001795A KR20160014109A (ko) 2011-09-30 2012-10-01 클라이언트로부터 생성되는 정보에 대한 차동 클라이언트측 암호화

Country Status (7)

Country Link
US (9) US8631229B2 (ko)
EP (2) EP3584994A1 (ko)
KR (2) KR20160014109A (ko)
CN (2) CN104040933B (ko)
AU (2) AU2012315382B2 (ko)
CA (2) CA3043707C (ko)
WO (1) WO2013049857A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11856090B2 (en) 2021-06-24 2023-12-26 International Business Machines Corporation Data protection optimization

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9965756B2 (en) 2013-02-26 2018-05-08 Digimarc Corporation Methods and arrangements for smartphone payments
US9032519B1 (en) * 2012-10-29 2015-05-12 Amazon Technologies, Inc. Protecting websites from cross-site scripting
US9830588B2 (en) 2013-02-26 2017-11-28 Digimarc Corporation Methods and arrangements for smartphone payments
US8782774B1 (en) 2013-03-07 2014-07-15 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
CN104166822B (zh) * 2013-05-20 2017-10-13 阿里巴巴集团控股有限公司 一种数据保护的方法和装置
US9311639B2 (en) 2014-02-11 2016-04-12 Digimarc Corporation Methods, apparatus and arrangements for device to device communication
US8996873B1 (en) 2014-04-08 2015-03-31 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US8966267B1 (en) 2014-04-08 2015-02-24 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US9286453B2 (en) * 2014-05-06 2016-03-15 International Business Machines Corporation Dynamic adjustment of authentication policy
US9930026B2 (en) 2014-10-20 2018-03-27 Sap Se Encryption/decryption in a cloud storage solution
US9571471B1 (en) * 2015-11-10 2017-02-14 AO Kaspersky Lab System and method of encrypted transmission of web pages
US10038551B2 (en) * 2015-11-29 2018-07-31 International Business Machines Corporation Securing enterprise data on mobile devices
US10033704B2 (en) * 2015-11-29 2018-07-24 International Business Machines Corporation Securing enterprise data on mobile devices
US20170171170A1 (en) * 2015-12-09 2017-06-15 Xasp Security, Llc Dynamic encryption systems
US10198595B2 (en) 2015-12-22 2019-02-05 Walmart Apollo, Llc Data breach detection system
US9946744B2 (en) * 2016-01-06 2018-04-17 General Motors Llc Customer vehicle data security method
US10341309B1 (en) 2016-06-13 2019-07-02 Allstate Insurance Company Cryptographically protecting data transferred between spatially distributed computing devices using an intermediary database
US10826875B1 (en) * 2016-07-22 2020-11-03 Servicenow, Inc. System and method for securely communicating requests
US10044693B1 (en) * 2016-07-29 2018-08-07 Microsoft Technology Licensing, Llc Security for confidential data
US10395241B2 (en) * 2016-08-17 2019-08-27 Stripe, Inc. System and method to generate an onboarding flow for an application
US10205709B2 (en) 2016-12-14 2019-02-12 Visa International Service Association Key pair infrastructure for secure messaging
US10887291B2 (en) 2016-12-16 2021-01-05 Amazon Technologies, Inc. Secure data distribution of sensitive data across content delivery networks
US20180176187A1 (en) * 2016-12-16 2018-06-21 Amazon Technologies, Inc. Secure data ingestion for sensitive data across networks
US10642987B2 (en) * 2017-01-19 2020-05-05 Ebay Inc. Cryptography based fraud tracking
US10579542B2 (en) * 2017-05-10 2020-03-03 Revbits, LLC Browser session storage as storage for private key in public-key encryption schema
US10447482B2 (en) * 2017-05-25 2019-10-15 Red Hat, Inc. Using domain name system for verifying integrity of application packages
US11159498B1 (en) 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service
US10084600B1 (en) * 2018-04-16 2018-09-25 Xage Security, Inc. Decentralized information protection for confidentiality and tamper-proofing on distributed database
CN110414245B (zh) * 2018-04-28 2023-09-22 伊姆西Ip控股有限责任公司 用于在存储系统中管理加密密钥的方法、装置和计算机程序产品
SG11202010335WA (en) * 2018-04-30 2020-11-27 Visa Int Service Ass Techniques for performing secure operations
US10979403B1 (en) 2018-06-08 2021-04-13 Amazon Technologies, Inc. Cryptographic configuration enforcement
GB2575664B (en) * 2018-07-18 2022-08-24 Airbus Defence & Space Ltd Secure remote computer system
US11057382B2 (en) * 2018-10-25 2021-07-06 Mastercard International Incorporated Computing devices and methods for propagating updates to user profile data
CN109509298B (zh) * 2018-11-15 2021-08-20 深圳市诺丰泰智能科技有限公司 一种智能售货机补货方法以及系统
US10686592B1 (en) * 2019-03-14 2020-06-16 Monkey Solution LLC System and method to provide a secure communication of information
US10438437B1 (en) * 2019-03-20 2019-10-08 Capital One Services, Llc Tap to copy data to clipboard via NFC
RU2728503C1 (ru) * 2019-03-29 2020-07-29 Акционерное общество "Лаборатория Касперского" Способ передачи конфиденциальных данных
US11138321B2 (en) * 2019-06-27 2021-10-05 Visa International Service Association System and method for protecting location data
US11810121B2 (en) 2019-07-26 2023-11-07 Stripe, Inc. Systems and methods for end to end encryption utilizing a commerce platform for card not present transactions
US11356428B2 (en) * 2019-08-14 2022-06-07 Google Llc Data security method for privacy protection
US10608819B1 (en) 2019-09-24 2020-03-31 Apricorn Portable storage device with internal secure controller that performs self-verification and self-generates encryption key(s) without using host or memory controller and that securely sends encryption key(s) via side channel
US10656854B1 (en) 2019-10-22 2020-05-19 Apricorn Method and portable storage device with internal controller that can self-verify the device and self-convert the device from current mode to renewed mode without communicating with host
EP3817332B1 (en) 2019-10-30 2024-04-24 Secure Thingz Limited Data provisioning device for provisioning a data processing entity
US10903990B1 (en) * 2020-03-11 2021-01-26 Cloudflare, Inc. Establishing a cryptographic tunnel between a first tunnel endpoint and a second tunnel endpoint where a private key used during the tunnel establishment is remotely located from the second tunnel endpoint
US11657458B2 (en) 2020-06-10 2023-05-23 Allstate Insurance Company Data processing system for secure data sharing and customized output generation
CN112016104B (zh) * 2020-07-14 2024-04-23 北京淇瑀信息科技有限公司 一种金融敏感数据的加密方法、装置和系统
US11387987B2 (en) 2020-08-13 2022-07-12 Ginger.io, Inc. Method and system for digital health data encryption
US11809603B2 (en) * 2020-09-23 2023-11-07 The Western Union Company Systems and methods for real-time encryption of sensitive data
US11271738B1 (en) * 2020-10-01 2022-03-08 Sap Se Secure, reliable, and decentralized communication in cloud platform
US20220207154A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Dynamic mitigation of speculation vulnerabilities
WO2022168077A1 (en) * 2021-02-03 2022-08-11 Yaron Oliker System and method of secured communication
CN113596004B (zh) * 2021-07-22 2023-06-20 支付宝(杭州)信息技术有限公司 多方安全计算中的身份认证方法和装置
US11757823B2 (en) * 2021-08-20 2023-09-12 Salesforce, Inc. Electronic mail authentication and tracking in database system
CN113449330B (zh) * 2021-08-31 2022-02-11 北京华云安信息技术有限公司 对Javascript加密文件进行传输的方法
CN118076964A (zh) * 2021-10-13 2024-05-24 维萨国际服务协会 高效且受保护的数据传输系统和方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083542A1 (en) 2001-04-12 2009-03-26 David John Craft Method and system for controlled distribution of application code and content data within a computer network

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987140A (en) * 1996-04-26 1999-11-16 Verifone, Inc. System, method and article of manufacture for secure network electronic payment and credit collection
US6072870A (en) * 1996-06-17 2000-06-06 Verifone Inc. System, method and article of manufacture for a gateway payment architecture utilizing a multichannel, extensible, flexible architecture
US5978840A (en) * 1996-09-26 1999-11-02 Verifone, Inc. System, method and article of manufacture for a payment gateway system architecture for processing encrypted payment transactions utilizing a multichannel, extensible, flexible architecture
US6247129B1 (en) * 1997-03-12 2001-06-12 Visa International Service Association Secure electronic commerce employing integrated circuit cards
AU6384300A (en) * 1999-07-27 2001-02-13 Stuart P. KALER Methods and systems for automatic electronic document management and destruction
US20020184485A1 (en) * 1999-12-20 2002-12-05 Dray James F. Method for electronic communication providing self-encrypting and self-verification capabilities
US7062656B2 (en) 2002-02-22 2006-06-13 International Busness Machines Corporation Method for providing secure access to information held in a shared respiratory
US7350081B1 (en) * 2002-04-29 2008-03-25 Best Robert M Secure execution of downloaded software
US20040111360A1 (en) 2003-07-14 2004-06-10 David Albanese System and method for personal and business information exchange
US7103911B2 (en) * 2003-10-17 2006-09-05 Voltage Security, Inc. Identity-based-encryption system with district policy information
US7014107B2 (en) 2004-07-20 2006-03-21 Irek Singer Wireless payment processing system
US20080011825A1 (en) 2006-07-12 2008-01-17 Giordano Claeton J Transactions using handheld electronic devices based on unobtrusive provisioning of the devices
CN101211436B (zh) * 2006-12-29 2012-03-21 盛大计算机(上海)有限公司 一种电子商务安全交易平台及其方法
US20090182674A1 (en) 2008-01-14 2009-07-16 Amol Patel Facilitating financial transactions with a network device
US8060413B2 (en) 2008-03-14 2011-11-15 Research In Motion Limited System and method for making electronic payments from a wireless mobile device
US8423457B1 (en) 2009-04-13 2013-04-16 Amazon Technologies, Inc. Anonymous mobile payments
US20120150748A1 (en) * 2010-12-14 2012-06-14 Xtreme Mobility Inc. System and method for authenticating transactions through a mobile device
WO2012126086A1 (en) * 2011-03-18 2012-09-27 Certicom Corp. Secure financial transactions
US8768847B2 (en) * 2012-06-21 2014-07-01 Microsoft Corporation Privacy enhancing personal data brokerage service

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083542A1 (en) 2001-04-12 2009-03-26 David John Craft Method and system for controlled distribution of application code and content data within a computer network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11856090B2 (en) 2021-06-24 2023-12-26 International Business Machines Corporation Data protection optimization

Also Published As

Publication number Publication date
AU2017204769A1 (en) 2017-07-27
KR20160014109A (ko) 2016-02-05
WO2013049857A2 (en) 2013-04-04
US20180063104A1 (en) 2018-03-01
US20150215294A1 (en) 2015-07-30
EP2761804B1 (en) 2019-07-24
US20130322632A1 (en) 2013-12-05
KR20140099231A (ko) 2014-08-11
CA2850356C (en) 2019-07-09
AU2017204769B2 (en) 2019-01-24
US11477180B2 (en) 2022-10-18
US9009462B2 (en) 2015-04-14
US10218687B2 (en) 2019-02-26
US9391963B2 (en) 2016-07-12
US20140101436A1 (en) 2014-04-10
US10581818B2 (en) 2020-03-03
US20230139090A1 (en) 2023-05-04
US20130091351A1 (en) 2013-04-11
WO2013049857A3 (en) 2014-05-08
AU2012315382B2 (en) 2017-04-13
EP2761804A4 (en) 2015-07-29
CN107196938B (zh) 2020-07-24
EP3584994A1 (en) 2019-12-25
AU2012315382A1 (en) 2014-04-17
CN104040933B (zh) 2017-06-13
CA3043707A1 (en) 2013-04-04
EP2761804A2 (en) 2014-08-06
US8631229B2 (en) 2014-01-14
CA3043707C (en) 2022-06-14
US20200344222A1 (en) 2020-10-29
CN104040933A (zh) 2014-09-10
CA2850356A1 (en) 2013-04-04
US8631230B2 (en) 2014-01-14
US9742747B2 (en) 2017-08-22
CN107196938A (zh) 2017-09-22
US20190260723A1 (en) 2019-08-22
US20160323254A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
KR101591255B1 (ko) 클라이언트로부터 생성되는 정보에 대한 차동 클라이언트측 암호화
US12034853B2 (en) Methods and systems for a digital trust architecture
US10498541B2 (en) Electronic identification verification methods and systems
JP2020184800A (ja) 鍵を有するリソースロケーター
CN114500093A (zh) 报文信息的安全交互方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
A107 Divisional application of patent
FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200106

Year of fee payment: 5