KR20140057526A - Token-based apparatus and a first-computer-implemented method - Google Patents

Token-based apparatus and a first-computer-implemented method Download PDF

Info

Publication number
KR20140057526A
KR20140057526A KR1020147002028A KR20147002028A KR20140057526A KR 20140057526 A KR20140057526 A KR 20140057526A KR 1020147002028 A KR1020147002028 A KR 1020147002028A KR 20147002028 A KR20147002028 A KR 20147002028A KR 20140057526 A KR20140057526 A KR 20140057526A
Authority
KR
South Korea
Prior art keywords
computer
secret information
software program
token
information
Prior art date
Application number
KR1020147002028A
Other languages
Korean (ko)
Inventor
엠 맥과이어 케빈
타가트 러쉬
Original Assignee
(주)필리아아이티
프린스턴 페이먼트 솔루션
Filing date
Publication date
Application filed by (주)필리아아이티, 프린스턴 페이먼트 솔루션 filed Critical (주)필리아아이티
Publication of KR20140057526A publication Critical patent/KR20140057526A/en

Links

Images

Abstract

본 발명은 토큰화(tokenization)된 특징을 채용한 카드 암호화 및 저장 시스템(CES)와 같은, 토크나이저(tokenizer)를 포함하는 지불 결제 시스템 등의 데이터 프로세스 시스템에 관한 것이다. 일 실시예는, 본 발명은 제1 컴퓨터와, 상기 제1 컴퓨터와 통신하는 제2 컴퓨터 사이에서 비밀 정보가 전송되는 것을 방지하는 제1 컴퓨터 구현 방법을 제공한다. 제1 컴퓨터 구현 방법은, (a) 상기 제1 컴퓨터가, 비밀 정보를 포함하며 사용자에 의하여 수동으로 입력된 거래(transaction) 수행용 정보를 수신하는 단계; (b) 상기 제1 컴퓨터가 상기 비밀 정보를 상기 제3 컴퓨터에 송신하는 단계; (c) 상기 제1 컴퓨터가 상기 비밀 정보와 알고리즘 관계(algorithmic relationship)가 없는 토큰(token)을 상기 제3 컴퓨터로부터 수신하는 단계; 및 (d) 상기 제1 컴퓨터가 상기 제2 컴퓨터에 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신하는 단계를 포함한다. The present invention relates to a data processing system, such as a payment system, including a tokenizer, such as a card encryption and storage system (CES) employing tokenized features. In one embodiment, the present invention provides a first computer implemented method for preventing secret information from being transmitted between a first computer and a second computer communicating with the first computer. The first computer-implemented method comprises the steps of: (a) receiving information for transaction execution, the secret information including manual information input by a user; (b) the first computer sending the secret information to the third computer; (c) the first computer receiving a token from the third computer that has no algorithmic relationship with the secret information; And (d) transmitting, by the first computer, the transaction-performing information excluding the secret information to the second computer, and the token.

Description

토큰을 베이스로 한 장치 및 제1 컴퓨터 구현 방법{TOKEN-BASED APPARATUS AND A FIRST-COMPUTER-IMPLEMENTED METHOD}TOKEN-BASED APPARATUS AND A FIRST-COMPUTER-IMPLEMENTED METHOD BACKGROUND OF THE INVENTION 1. Field of the Invention [0001]

본 발명은 기업 엔터프라이즈 시스템 내에서의 비밀 정보의 제공, 저장 및 사용에 관한 것이다. 좀더 상세하게는, 상술한 시스템에서 비밀 정보의 대체물로 토큰을 사용하는 것에 관한 것이다.The present invention relates to the provision, storage and use of confidential information within enterprise enterprise systems. More particularly, it relates to using tokens as a replacement for confidential information in the systems described above.

부적절한 정보 기술 보안에 의한 지불 카드 데이터의 유출(theft)의 증가에 대응하여, 지불 카드 산업(payment card industry, PCI)가 보안 표준(set of security standards)을 발달시켰다. 처음에는 카드 번호의 암호화를 위하여 상인(merchant)들에게 요구되는 PABP(payment-application best-practices) 가이드라인이 공표되었다.In response to theft of payment card data due to improper information technology security, the payment card industry (PCI) has developed a set of security standards. At first, payment-application best-practices (PABP) guidelines required by merchants for the encryption of card numbers were published.

PABP 가이드라인의 한계에 의하여, 2006년 9월에 PCI 데이터 보안 표준(data security standard, DSS) 1.1 규격(version)과, 관련 PCI 보안 감사 절차(security audit procedure)가 발표되었다. 이러한 프로그램들은 지불 카드 거래의 프로세스를 위하여 단순한 암호화 이상의 수준을 요구하였으며, 이들을 준수할 요구하였다. 이러한 프로그램들 하에서, 연간 거래량에 따라 상인들은 그들의 DSS 준수 여부를 기록하는 것이 요구되었다. 가장 큰 규모의 상인들은 상인 및 프로세서 준수 여부를 증명(verify)하기 위하여 현장 검토 감사(on-site audit)를 받아야 했다. 중간 또는 작은 규모의 상인들은 다양한 보안 사항들과 구현 프로그램들을 입증(attest)하는 자기 평가(self-assessment)를 하여 감사를 받지 않는 것이 허용되었다. Due to the limitations of the PABP guidelines, the PCI data security standard (DSS) 1.1 specification and related PCI security audit procedures were published in September 2006. These programs required a level of encryption beyond that for the payment card transaction process and required compliance with them. Under these programs, merchants were required to record their DSS compliance according to their annual volume of transactions. Largest merchants had to be on-site audited to verify merchant and processor compliance. Medium- or small-scale merchants were allowed to not be audited by self-assessments that attest to various security issues and implementation programs.

DSS에 따르면, 카드 소지자의 데이터는 평문화된(즉, 암호화되지 않은)(clear) 또는 암호화된 주계좌 번호(primary account number, PAN)로 정의된다. DSS는, 카드 소지자의 데이터를 "처리, 저장 또는 전송"하는 시스템과, 동일한 네트워크 세그먼트(network segment) 상에 있는 시스템(예를 들어 기업 네트워크를 구성하는 복수의 서브 네트워크들)이 DSS의 요구에 따라야 한다는 점을 분명히 하였다. According to the DSS, the cardholder data is defined as a primary account number (PAN) that has been parsed (i.e., unencrypted) or encrypted. A DSS is a system that "processes, stores, or transmits" cardholder data and a system on the same network segment (eg, a plurality of subnetworks that make up the corporate network) I made clear that I should follow.

또한, 일정한 개인 식별 정보(personally-identifiable information, PII)는, 예를 들어, 미국의 연방법 또는 각 주의 법들에 의해 규제 감사(regulatory scrutiny)의 대상이 된다. PII라는 용어는 특정 사람의 신원을 확인하거나, 특정 사람에게 접촉하거나, 특정 사람의 위치를 찾아내는데 고유하게 사용될 수 있는 정보, 또는 다른 자료와 함께 신원을 찾아내는데 고유하게 사용될 수 있는 정보이다. 예를 들어, 대통령 집무실, 예산청(OMB) 및 미국 정부에 의한 2007 각서에서는, PII 정보를 "이름, 사회 보장 번호(social security number), 생체 정보(biometric records) 등과 같이 단독으로 특정한 개인으로 연결되는 정보, 또는, 생일, 어머니의 결혼 전 성(maiden name)과 같이 개인적이거나 식별 가능한 다른 정보와 결합되어 개인의 신원을 구별하거나 찾아낼 수 있는데 사용될 수 있는 정보"로 정의한다. In addition, personally-identifiable information (PII) is subject to regulatory scrutiny, for example, by United States federal or state laws. The term PII is information that can be used to uniquely identify a person, to contact a person, to uniquely identify a person's location, or to identify the identity with other material. For example, in the 2007 memorandum by the Office of the President, Office of the Ombudsman (OMB) and the US government, PII information is referred to as "individual, individual, such as name, social security number, biometric records, Information or information that can be used to identify or identify an individual's identity in combination with other personal or identifiable information, such as a birth date, or maiden name of the mother ".

이와 유사하게 유럽 연합은, 유럽 연합 지침(EU directive 95/46/EC)의 2a조에서 "개인 정보"를 "확인되거나 확인 가능한 자연인('데이터 주체')와 관련된 모든 정보(여기서, 확인 가능한 자연인은, 물리적, 생리학적, 정신적, 경제적, 문화적 또는 사회적 신원을 특정할 수 있는 하나 이상의 인자들 또는 식별 번호를 기준으로 하여 직접적 또는 간접적으로 식별 가능한 사람)" 으로 정의한다. Likewise, the European Union has agreed that "personal information" in Article 2a of the EU directive 95/46 / EC should be replaced with "all information relating to identifiable or identifiable natural persons (" data subjects " Shall be defined as "one or more factors that can identify physical, physiological, mental, economic, cultural or social identities, or persons who are directly or indirectly identifiable on the basis of an identification number").

유사하게, 캘리포니아 데이터 침해 공지법(California data breach notification law, SB1386)의 섹션(section)에서는 "개인 정보"를 "하기의 데이터 중의 어느 하나와 결합된 개인의 이름(first name, first initial and last name)(데이터나 개인의 이름 중 어느 하나가 암호화되지 않았을 때): 개인의 금융 계정에 접근할 때 요구되는 보안 코드, 접근 코드, 암호 등과 결합된 (1) 사회 보장 번호, (2) 운전 면허 번호 또는 캘리포니아 카드 번호, (3) 계좌 번호, 신용 카드, 번호 또는 데빗 카드 번호)로 정의한다. Similarly, the section on California data breach notification law (SB1386) states that "personal information" should be replaced with "the name of the individual associated with any of the following data (first name, first initial and last name (1) Social Security number, combined with the security code, access code, and password required when accessing a personal financial account; (2) a driver's license number Or California card number, (3) account number, credit card, number or debit card number).

DSS 준수와 다양한 관할권(jurisdictions)에서의 규제적인 요구(regulatory requirements)에 의해 PCI and PII 데이터와 같은 암호화된 민감한 데이터의 프로세스에 관련된 모든 컴퓨터 시스템, 그리고 기업 데이터 센터가 이러한 표준 및 요구를 따라야 한다.All computer systems and enterprise data centers involved in the process of encrypted sensitive data, such as PCI and PII data, must comply with these standards and requirements by DSS compliance and regulatory requirements in various jurisdictions.

상술한 문제를 해결하기 위하여, 본 발명은 토큰화(tokenization)된 특징을 채용한 카드 암호화 및 저장 시스템(CES)와 같은, 토크나이저(tokenizer)를 포함하는 지불 결제 시스템 등의 데이터 프로세스 시스템을 제공한다. 토큰화에서는, 기업 자원 관리(ERP) 시스템 (예를 들어, SAP ERP) 등의 어플리케이션 모듈에 지불 카드 계정 번호와 같은 비밀 정보를 입력하는 대신, 비밀 정보가 어플리케이션 모듈(application module)로 송신되기 전에 토크나이저에서 비밀 정보가 캡춰(capture)되어 토크나이저에 저장된다. 그 다음, 토크나이저는 원래 지불 카드 번호를 나타내는 포인터(pointer)로서 "토큰(token)"이라 불리는 랜덤한 문자열을 호출 어플리케이션에 리턴(reture)한다. 토큰은 바람직하게 원래 지불 카드 번호와 알고리즘 관계를 가지지 않으므로, 단순히 암호화 알고리즘을 토큰에 적용하는 것 등에 의하여 토큰 그 자체로부터 지불 카드 번호를 알 수 없다. 따라서, 지불 카드 번호와 이에 대응하는 토큰을 가지는 토크나이저를 통하지 않고는 랜덤 문자열로부터 원래 카드 소지자의 데이터를 추정할 수 없기 때문에, 토큰은 원래 카드 소지자의 데이터로 인정되지 않는다. 여기서, 토크나이저는 지불 카드 번호와, 이에 대응하는 토큰을 포함한다. . In order to solve the above problems, the present invention provides a data processing system such as a payment system including a tokenizer, such as a card encryption and storage system (CES) employing tokenized features do. In tokenization, instead of entering confidential information, such as a payment card account number, into an application module, such as a corporate resource management (ERP) system (e.g., SAP ERP), before the secret information is sent to the application module Confidential information is captured in the tokenizer and stored in the tokenizer. The tokenizer then retires a random string called "token " as a pointer to the original payment card number to the calling application. Since the token preferably does not have an algorithmic relationship with the original payment card number, the payment card number can not be known from the token itself, such as simply applying an encryption algorithm to the token. Therefore, since the original card holder's data can not be estimated from the random string without going through the tokenizer having the payment card number and the corresponding token, the token is not originally recognized as the card holder's data. Here, the tokenizer includes a payment card number and a corresponding token. .

PCI DSS 규제 제도하에서, 카드 소지자의 데이터(어떠한 평문화되거나 암호화된 지불 카드 계정 번호를 포함함)가 단독으로 또는 카드 소지자 이름, 서비스 코드 및/또는 유효일과 함께 어플리케이션 모듈에 위치하면, 규제 감사를 받아야 한다. 따라서, 카드 소지자의 데이터는 계정 번호가 아닌 문자열로 대체될 수 있고, 그러면 호스트 어플리케이션(host application)이 더 이상 카드 소지자의 데이터를 가지지 않으므로 PCI DSS 규제 감사의 범위에서 벗어난다. Under the PCI DSS regulatory scheme, if cardholder data (including any plaintiff or encrypted payment card account number) is located on the application module alone or with the cardholder name, service code and / or expiration date, You must receive. Thus, the data of the cardholder can be replaced with a string rather than an account number, and then the host application is no longer in possession of the cardholder data and is therefore out of the scope of the PCI DSS regulatory audit.

일 실시예에서, 본 발명은 제1 컴퓨터와, 상기 제1 컴퓨터와 통신하는 제2 컴퓨터 사이에서 비밀 정보가 전송되는 것을 방지하는 제1 컴퓨터 구현 방법을 제공한다. 제1 컴퓨터 구현 방법은, (a) 상기 제1 컴퓨터가 사용자에 의하여 수동으로 입력된 비밀 정보를 포함하는 거래(transaction) 수행용 정보를 수신하는 단계; (b) 상기 제1 컴퓨터가 상기 비밀 정보를 상기 제3 컴퓨터에 송신하는 단계; (c) 상기 제1 컴퓨터가 상기 비밀 정보와 알고리즘 관계(algorithmic relationship)가 없는 토큰을 상기 제3 컴퓨터로부터 수신하는 단계; 및 (d) 상기 제1 컴퓨터가 상기 제2 컴퓨터에 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신하는 단계를 포함한다.
In one embodiment, the present invention provides a first computer implemented method for preventing secret information from being transmitted between a first computer and a second computer communicating with the first computer. The first computer-implemented method comprises the steps of: (a) receiving information for transaction execution including secret information manually input by a user; (b) the first computer sending the secret information to the third computer; (c) the first computer receiving a token from the third computer that has no algorithmic relationship with the secret information; And (d) transmitting, by the first computer, the transaction-performing information excluding the secret information to the second computer, and the token.

다른 실시예에서, 본 발명은 장치와 통신하는 제2 컴퓨터에 비밀 정보가 전송되는 것을 방지하는 장치를 제공한다. 상기 장치가, (a) 사용자에 의해 수동으로 입력된 비밀 정보를 포함하는 거래 수행용 정보를 수신하고, (b) 상기 비밀 정보를 상기 제3 컴퓨터에 송신하며, (c) 상기 비밀 정보와 알고리즘 관계가 없는 토큰을 상기 제3 컴퓨터로부터 수신하고, (d) 상기 제2 컴퓨터에 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신한다.
In another embodiment, the invention provides an apparatus for preventing secret information from being transmitted to a second computer in communication with the apparatus. (B) transmitting the secret information to the third computer; (c) receiving the secret information and an algorithm (D) transmitting the transaction-performing information excluding the secret information to the second computer and the token.

또 다른 실시예에서, 본 발명은 21. 내부에 인코딩된 프로그램 코드를 가지는, 비일시적으로 기계로 읽을 수 있는 저장 장치(non-transitory machine-readable storage medium)를 제공한다. 상기 프로그램 코드는 장치에 의해 실행되며, 상기 프로그램 코드를 실행하는 장치는, 제1 컴퓨터와, 상기 제1 컴퓨터와 통신하는 제2 컴퓨터 사이에서 비밀 정보가 전송되는 것을 방지하는 방법을 구현한다. 상기 방법은, (a) 상기 제1 컴퓨터가 사용자에 의하여 수동으로 입력된 비밀 정보를 포함하는 거래 수행용 정보를 수신하는 단계; (b) 상기 제1 컴퓨터가 상기 비밀 정보를 상기 제3 컴퓨터에 송신하는 단계; (c) 상기 제1 컴퓨터가 상기 비밀 정보와 알고리즘 관계가 없는 토큰을 상기 제3 컴퓨터로부터 수신하는 단계; 및 (d) 상기 제1 컴퓨터가 상기 제2 컴퓨터에 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신하는 단계를 포함한다.
In yet another embodiment, the present invention provides a non-transitory machine-readable storage medium having encoded program code therein. The program code is executed by an apparatus and the apparatus for executing the program code implements a method for preventing secret information from being transmitted between a first computer and a second computer communicating with the first computer. The method comprises the steps of: (a) receiving transaction enforcement information including secret information manually entered by a user; (b) the first computer sending the secret information to the third computer; (c) receiving, by the first computer, a token that is not algorithmically related to the secret information from the third computer; And (d) transmitting, by the first computer, the transaction-performing information excluding the secret information to the second computer, and the token.

또 다른 실시예에서, 본 발명은 제1 컴퓨터와, 상기 제1 컴퓨터와 통신하는 제2 컴퓨터 사이에서 비밀 정보가 전송되는 것을 방지하는 제1 컴퓨터 구현 방법을 제공한다. 상기 제1 컴퓨터 구현 방법은, (a) 상기 제1 컴퓨터가, 엔트리 필드가 비밀 정보를 포함하는지 여부를 결정하기 위하여 소프트웨어 프로그램의 윈도우의 상기 엔트리 필드를 검사하는 단계; (b) 상기 엔트리 필드가 비밀 정보를 포함하는 경우에, (b1) 상기 제1 컴퓨터가 상기 비밀 정보를 제3 컴퓨터에 송신하고, (b2) 상기 제1 컴퓨터가 상기 비밀 정보와 알고리즘 관계가 없는 토큰을 상기 제3 컴퓨터로부터 수신하는 단계; 및 (c) 상기 제1 컴퓨터가 상기 소프트웨어 프로그램의 상기 윈도우의 상기 엔트리 필드 내의 상기 비밀 정보를 상기 토큰으로 대체하는 단계를 포함한다.
In yet another embodiment, the present invention provides a first computer implemented method for preventing secret information from being transmitted between a first computer and a second computer communicating with the first computer. The first computer implemented method comprising the steps of: (a) inspecting the entry field of the window of the software program to determine whether the entry field contains secret information; (b1) when the entry field contains secret information, (b1) the first computer sends the secret information to a third computer, (b2) the first computer is not in an algorithmic relationship with the secret information Receiving a token from the third computer; And (c) replacing said secret information in said entry field of said window of said software program with said token by said first computer.

또 다른 실시예에서, 본 발명은 제1 컴퓨터와, 상기 제1 컴퓨터와 통신하는 제2 컴퓨터 사이에서 비밀 정보가 전송되는 것을 방지하는 제1 컴퓨터 구현 방법을 제공한다. 상기 제1 컴퓨터 구현 방법은, (a) 상기 제1 컴퓨터가 하나 이상의 패킷 데이터를 상기 제1 컴퓨터로부터 수신하는 단계; (b) 상기 제1 컴퓨터가, 상기 하나 이상의 패킷 데이터가 비밀 정보를 포함하는지 여부를 결정하기 위하여 상기 하나 이상의 패킷 데이터를 검사하는 단계로, 상기 엔트리 필드가 상기 비밀 정보를 포함하는 경우에, (b1) 상기 제1 컴퓨터가 상기 비밀 정보를 제3 컴퓨터에 송신하고, (b2) 제1 컴퓨터가 상기 비밀 정보와 알고리즘 관계가 없는 토큰을 상기 제3 컴퓨터로부터 수신하는 단계; (c) 상기 제1 컴퓨터가 상기 하나 이상의 패킷 데이터 내의 상기 비밀 정보를 상기 토큰으로 대체하는 것에 의하여 상기 하나 이상의 패킷 데이터를 수정하는 단계; 및 (d) 상기 제1 컴퓨터가 상기 수정된 하나 이상의 패킷 데이터를 상기 제2 컴퓨터에 전달하는 단계를 포함한다.In yet another embodiment, the present invention provides a first computer implemented method for preventing secret information from being transmitted between a first computer and a second computer communicating with the first computer. The first computer implemented method comprising: (a) the first computer receiving one or more packet data from the first computer; (b) the first computer examines the one or more packet data to determine whether the one or more packet data includes secret information, wherein if the entry field includes the secret information, b1) the first computer sends the secret information to a third computer; (b2) the first computer receives a token that is not algorithmically related to the secret information from the third computer; (c) modifying said one or more packet data by said first computer by replacing said secret information in said one or more packet data with said token; And (d) the first computer communicating the modified one or more packet data to the second computer.

종래에는 로그온이나 데이터 입력시 이와 동일한 데이터 필드 영역을 갖는 토큰값으로 보안화하지 않고 범용 암호화모듈로 암호화하므로 쉽게 복호화될 수 있어 해킹 우려가 있으며, 암호화된 값의 데이터 필드가 입력 데이터 필드와 달라 SAP등의 어플리케이션에서 데이터 필드 사이즈등을 특별히 수정해야 하는 문제점과, 별도의 외부 토크나이저를 두지 않고 어플리케이션 모듈에서 암호화가 이루어질 경우 어플리케이션 모듈의 부하로 작용하는 문제점이 있었다.Conventionally, there is a risk of hacking because it can be easily decrypted because it is encrypted with a general-purpose encryption module without securing it with a token value having the same data field area at the time of logon or data input, and data fields of encrypted values are different from input data fields There is a problem that the data field size and the like have to be specifically modified in an application such as an external application or the like and a load is applied to an application module when encryption is performed in an application module without a separate external tokenizer.

본 발명은 이를 개선하기 위하여 별도의 토크나이저를 두는 한편,To improve this, the present invention places a separate tokenizer,

①웹스토어(110, 인터넷 쇼핑몰에 해당) 또는 데스크톱 인터페이스(145, 사용자의 데스크탑이나 기타 입력용 키오스크를 말함)에서 로그온이나 데이터 입력시(토큰화 요청시) ① When logging on or inputting data (tokenizing request) from Web Store (110, Internet shopping mall) or desktop interface (145, user's desktop or other input kiosk)

②토크나이저(120, 토큰 서버에 해당)는 이들 로그온 자료나 입력 데이터를 특정 알고리즘(범용 암호화모듈을 말함)에 의하지 않고 동일한 데이터 필드를 갖는 랜덤한 값으로 토큰화하고, ② Tokenizer (120, corresponding to Token Server) tokenize these logon data or input data to a random value with the same data field without referring to a specific algorithm (referring to general purpose encryption module)

③토크나이저에서 토큰화된 값이 웹스토어 또는 데스크톱 인터페이스를 거쳐 어플리케이션 모듈(150, SAP을 포함한 ERP 서버에 해당)로 전달되므로 해킹 우려가 없고, 데이터 필드 사이즈를 수정할 필요가 없으며, 어플리케이션 모듈의 부하 발생이 없도록 하는 특징을 갖는다.(3) The tokenized value in the tokenizer is transferred to the application module 150 (corresponding to the ERP server including SAP) through the web store or the desktop interface. Therefore, there is no fear of hacking, there is no need to modify the data field size, So that there is no occurrence.

도 1은 본 발명의 일 실시예에 따라 토큰화(tokenization)를 구비한 제1 지불 프로세스 시스템의 일 예를 나타내는 블록 다이어그램(block diagram)이다.
도 2은 본 발명의 일 실시예에서 토큰 어플리케이션(token application)의 알고리즘의 일 예를 나타내는 플로우 차트(flow chart)이다.
도 3은 본 발명의 일 실시예에서 데스크탑 토큰 인터페이스를 위한 알고리즘의 일 예를 나타내는 플로우 차트이다.
도 4는 본 발명의 일 실시예에서 데스크탑 토큰 인터페이스를 위한 알고리즘의 다른 예를 나타내는 플로우 차트이다.
도 5는 본 발명의 일 실시예에 따라 토큰화를 구비한 제2 지불 프로세스 시스템의 일 예를 나타내는 블록 다이어그램이다.
도 6은 본 발명의 일 실시예에서 패킷 인스펙터(packet inspector)를 위한 알고리즘의 다른 예를 나타내는 플로우 차트이다.
도 7a 내지 7e은 도 3의 알고리즘을 구현하기 위한 프로그램 코드의 일례를 총괄하여 보여주는 도면이다.
도 8a 내지 8c은 도 4의 알고리즘을 구현하기 위한 프로그램 코드의 일례를 총괄하여 보여주는 도면이다.
도 9a 내지 9c은 도 6의 알고리즘을 구현하기 위한 프로그램 코드의 일례를 총괄하여 보여주는 도면이다.
Figure 1 is a block diagram illustrating an example of a first payment process system with tokenization according to one embodiment of the present invention.
2 is a flow chart illustrating an example of an algorithm of a token application in an embodiment of the present invention.
3 is a flow chart illustrating an example of an algorithm for a desktop token interface in an embodiment of the present invention.
4 is a flow chart illustrating another example of an algorithm for a desktop token interface in an embodiment of the present invention.
5 is a block diagram illustrating an example of a second payment process system with tokenization in accordance with one embodiment of the present invention.
6 is a flow chart illustrating another example of an algorithm for a packet inspector in an embodiment of the present invention.
7A to 7E are collective views showing an example of program codes for implementing the algorithm of Fig.
8A to 8C are diagrams showing an example of program codes for implementing the algorithm of FIG. 4 collectively.
9A to 9C are diagrams showing an example of program codes for implementing the algorithm of FIG. 6 collectively.

도 1은 본 발명의 일 실시예에 따라 토큰화를 구비한 제1 지불 프로세스 시스템(100)의 일례를 나타낸다. 본 실시예에서 시스템(100)은 토크나이저(tokenizer)(120), 웹 스토어(webstore)(110), 입력 모듈(140), 어플리케이션 모듈(application module)(150), 및 지불 카드 미들웨어(payment card middleware)(130)를 포함한다. 웹 스토어(110)는 구매를 하고자 하는 구매자가 사용하고, 입력 모듈(140)은 고객의 주문을 입력하기 위하여 고객 서비스 담당자가 사용한다. 토크나이저(120)는 지불 카드 번호로부터 토큰을 생성하여 웹 스토어(110) 및 입력 모듈(140)에 토큰을 제공한다. 어플리케이션 모듈(150)은 지불 카드 번호 대신, 지불 카드 번호를 대체한 토큰을 포함하는 일반적인 산업용 엔터프라이즈 시스템이다. 이에 의하여 어플리케이션 모듈(150)에는 지불 카드 번호가 입력되지 않는다. 지불 카드 미들웨어(130)는 어플리케이션 모듈(150)으로부터 지불 요청(settlement requests)을 토큰 형식(토크나이저(120)로부터 제공되며 지불 카드 번호에 대응함)으로 수신하고, 실제 지불 거래에 영향을 주는 "암호화되지 않은 형식(clear-card form)"(예를 들어, 카드 자체에 기재된 카드 번호의 숫자)의 지불 카드 번호를 클리어링 하우스(clearing house)(160)에 전달한다. Figure 1 illustrates an example of a first payment process system 100 with tokenization in accordance with one embodiment of the present invention. The system 100 in this embodiment includes a tokenizer 120, a webstore 110, an input module 140, an application module 150, and a payment card and a middleware 130. The web store 110 is used by a purchaser who desires to purchase and the input module 140 is used by a customer service representative to input a customer's order. The tokenizer 120 generates a token from the payment card number and provides the token to the web store 110 and the input module 140. Application module 150 is a general industrial enterprise system that includes a token instead of a payment card number instead of a payment card number. Thereby, the payment card number is not inputted to the application module 150. [ The payment card middleware 130 receives settlement requests from the application module 150 in a token format (corresponding to the payment card number provided by the tokenizer 120) Quot; clear-card form "(e.g., the number of the card number described on the card itself) to the clearing house 160. [

지불 카드 데이터가 웹 스토어(110)를 통하여 입력되거나 입력 모듈(140)을 통하여 입력되면, 지불 카드 데이터가 캡춰(capture)되기 전에 토크나이저(120)가 토큰화(tokenizing)를 수행하여 토큰을 후속 프로세스에 제공함으로써 카드 소지자의 데이터를 보호 및 고립(isolate)한다. 이에 의하여 어플리케이션 모듈(150)의 규제 감사를 피할 수 있다. When the payment card data is input via the web store 110 or input via the input module 140, the tokenizer 120 performs tokenizing before the payment card data is captured, Process to isolate and protect the data of the cardholder. Thus, the regulation audit of the application module 150 can be avoided.

지불 프로세스 시스템(100)은, 예를 들어 PCI DSS에 부합된다. PCI DSS는 예를 들어 방화벽(firewall)을 통하여 기업 네트워크의 나머지가 고립되는 "인-스코프(in-scope)" 시스템(즉, PCI DSS의 규제 범위 내에 있는 시스템)을 요구한다. 상기 DSS는 웹 서버에 연결된 인터넷 또한 고립될 것을 요구한다. 따라서, 지불 프로세스 시스템(100)은 PCU 목적을 위하여 아래 세 가지의 '인-스코프' 네트워크 세그먼트 또는 존(zone)을 적용한다: (i) 웹 스토어(110)를 포함하는 웹 서버 존, (ii) 입력 모듈(140)을 포함하는 고객 서비스 존, (iii) 토크나이저(120)와 지불 카드 미들웨어(130)를 포함하는 PCI 서버 존. 이렇게 적절하게 정의되고 한정된 세 가지의 네트워크 세크멘트와 이에 대응하는 기능(functionality)을 이용하면, 기업 네트워크의 큰 섹션(section)을 재조정(remediate)하거나 수정하는 것에 비하여, PCI 준수 및 유지를 크게 단순화하고 관리를 쉽게 할 수 있다. The payment process system 100 is, for example, compliant with the PCI DSS. PCI DSS requires an " in-scope "system (i.e., a system that is within the regulatory scope of the PCI DSS) through which the rest of the enterprise network is isolated, for example through a firewall. The DSS requires that the Internet connected to the web server be also isolated. Thus, the payment process system 100 applies the following three 'in-scope' network segments or zones for PCU purposes: (i) a web server zone containing the web store 110, (ii) ) Input module 140, (iii) a PCI server zone that includes the tokenizer 120 and payment card middleware 130. Using these properly defined and defined three network segments and their corresponding functionality greatly simplifies PCI compliance and maintenance, as opposed to remediating or modifying large sections of the enterprise network And can be easily managed.

<토크나이저><Talker>

토크나이저(120)는 토큰 데이터 베이스(122)와 토큰 어플리케이션(124)를 가지는 하나 이상의 컴퓨터를 포함한다. 토큰 데이터베이스(122)는, 예를 들어 단순한 탐색표(look-up table), 또는 좀더 복잡한 데이터베이스 시스템(오라클 코포레이션(Oracle Corporation)의 Oracle database 10 g 등)에 의하여 구현된다. 토큰 데이터베이스(122)는 그 데이터 베이스 내에 암호화된 지불 카드 번호와, 이 암호화된 지불 카드 번호에 대응하는 토큰을 내부에 포함한다. The tokenizer 120 includes one or more computers having a token database 122 and a token application 124. The token database 122 is implemented by, for example, a simple look-up table or a more complex database system (such as the Oracle database 10g from Oracle Corporation). The token database 122 includes an encrypted payment card number in its database and a token corresponding to the encrypted payment card number.

토큰 어플리케이션(124)은 수신된 지불 카드 번호를 암호화하고, 지불 카드 번호에 대응하는 랜덤한 토큰을 생성한다. 일 실시예로, 지불 카드 번호가 "371449635398183"일 때, 이에 대응하여 랜덤하게 생성된 토큰은 "Nc4.times.WKms."인 영숫자 문자열 값(alphanumeric string value)일 수 있다. 다른 실시예로, 토큰의 일부가 지불 카드 번호의 일부, 예를 들어, 지불 카드 타입(지불 카드 번호의 제일 앞 두자리, 37은 아메리칸 익스프레스(American Express), 40은 비자(Visa), 54는 마스터카드(Mastercard)를 지칭함) 및 마지막 네 자리는 토큰 자체의 일부가 될 수 있다. 이에 의하면 고객과 구매자들이 해당 토큰에 해당하는 카드가 맞는지 대체적으로 확인하거나 식별할 수 있다. 예를 들어, 지불 카드 번호가 "371449635398183"일 경우 이에 대응하는 토큰은 "37-Nc4.times.WKms-8183,"일 수 있다. 여기서 (i) 처음 두 자리인 "37,"은 카드 타입이 아메리칸 익스프레스이고, (ii) 토큰의 가운데 부분은 랜덤하게 생성된 영숫자 문자열이며, (iii) 마지막 네 자리인 "8183,"은 필요할 경우 카드 소지자의 카드 번호를 확인하는 데 사용할 수 있다. The token application 124 encrypts the received payment card number and generates a random token corresponding to the payment card number. In one embodiment, when the payment card number is "371449635398183 ", correspondingly the randomly generated token may be an alphanumeric string value of" Nc4.times.WKms. In another embodiment, a portion of the token may be part of a payment card number, e.g., a payment card type (the first two digits of the payment card number, 37 American Express, 40 Visa, Card and the last four digits may be part of the token itself. According to this, the customer and the buyer can generally confirm or identify whether the card corresponding to the token is correct. For example, if the payment card number is "371449635398183 ", the corresponding token may be" 37-Nc4.times.WKms-8183, ". Here, (i) the first two digits "37," the card type is American Express, (ii) the middle part of the token is a randomly generated alphanumeric string, (iii) the last four digits "8183, It can be used to identify the cardholder's card number.

토큰 어플리케이션(124)은, 썬마이크로 시스템(Sun Microsystems, Inc.)의 자바 실행 환경(Java Runtime Environment)에 의한 플랫폼(platform)을 실행할 수 있도록 자바 어플리케이션으로 구현되는 것이 바람직하다. 대부분의 표준 작업량(workload)(예를 들어, 일 년에 천만 이하의 지불 카드 거래)에서, 토큰 어플리케이션(124)은 썬마이크로 시스템(Sun Microsystems, Inc.)의 SunFire 4100, 아이비엠(IBM)의 System x3650, 델(Dell, Inc.)의 Poweredge 2950 등과 같은 기계를 실행될 수 있다. The token application 124 is preferably implemented as a Java application so as to execute a platform by a Java Runtime Environment of Sun Microsystems, In most standard workloads (e. G., Less than 10 million payment card transactions a year), the token application 124 is a SunFire 4100 from Sun Microsystems, Inc., x3650, Dell, Inc.'s Poweredge 2950, and the like.

토큰 어플리케이션(124)은 정보를 기입하기 위하여 토큰 데이터베이스(122)와 인터페이스한다. 예를 들어, 토큰 어플리케이션(124)은 암호화된 지불 카드 번호와 이에 대응하여 새로 생성된 토큰을 새로운 엔트리(entry)로 데이터베이스(122)에 기입하고자 할 수 있다. 일 실시예에서, 토큰 데이터베이스(122) 내에 저장된 테이블(table)은 다음의 지불 카드 번호/토큰 페어(pair)를 가지는 엔트리들을 가지는 테이블을 포함할 수 있다.The token application 124 interfaces with the token database 122 to write information. For example, the token application 124 may attempt to write the encrypted payment card number and the newly generated token into the database 122 as a new entry. In one embodiment, a table stored in the token database 122 may include a table with entries having the following payment card number / token pair.

지불 카드 번호Payment card number 대응하는 토큰The corresponding token 371449635398183371449635398183 37-Nc4xWKms-818337-Nc4xWKms-8183 371449635398290371449635398290 37-waPaPcx6-829037-waPaPcx6-8290 40120000333302324012000033330232 40-sdkKXnO8-023240-sdkKXnO8-0232 40120000333304974012000033330497 40-dTXeX5NN-049740-dTXeX5NN-0497 54241802797902135424180279790213 54-9HcfZNH2-021354-9HCF2NH2-0213 54241802797904945424180279790494 54-2CZYVkSt-049454-2CZYVkSt-0494

그리고 토큰 어플리케이션(124)은 토큰 데이터베이스(122)로부터 정보를 읽기 위하여(예를 들어, 주어진 토큰에 기초한 지불 카드 번호를 되찾거나, 이미 저장된 지불 카드 번호용 토큰을 되찾기 위하여), 토큰 데이터베이스(122)와 인터페이스한다. 또한, 토큰 어플리케이션(124)은, 보안 소켓 계층(secure-socket layer, SSL) 프로토콜(protocol)을 이용하여 웹 스토어(110) 및 입력 모듈(140) 중 하나 또는 둘과 인터페이스한다. 예를 들어, 새로운 토큰을 생성하는 요청에 응답하거나, 또는 토큰 데이터베이스(122)로부터 지불 카드 번호에 기초하여 이미 생성된 토큰을 되찾기 위하여, 토큰 어플리케이션(120)이 웹 스토어(110) 및 입력 모듈(140) 중 하나 또는 둘과 인터페이스한다. 더욱이, 토큰 어플리케이션(124)은, 예를 들어, 제공된 토큰에 기초하여 지불 카드 번호를 되찾기 위한 요청에 응답하기 위하여, 지불 카드 미들웨어(130)와 인터페이스한다. The token application 124 may then access the token database 122 to read information from the token database 122 (e.g., to retrieve a payment card number based on a given token, or to retrieve a token for an already stored payment card number) &Lt; / RTI &gt; The token application 124 also interfaces with one or both of the web store 110 and the input module 140 using a secure-socket layer (SSL) protocol. For example, token application 120 may be used by web store 110 and input module (e. G., Web server 110) to respond to a request to create a new token, or to retrieve a token already generated based on a payment card number from token database 122 140). &Lt; / RTI &gt; Moreover, the token application 124 interfaces with the payment card middleware 130, for example, in response to a request to retrieve the payment card number based on the provided token.

리던던시(redundancy) 및 안정성(stability)를 위하여, 복수의 토큰 어플리케이션(124)이 토크나이저(120) 내에서 동시에 실행되는 것이 바람직하다. 이때, 적어도 두 가지의 토큰 어플리케이션(124)이 풀타임(full-time)으로 실행되는 것이 더 바람직하다. 여기서, 하나의 토큰 어플리케이션(124)은 최초 위치(primary location)에 위치하고, 다른 하나는 백업 위치(backup location)(예를 들어, 다른 컴퓨터/프로세서)에 위치할 수 있다. 유사하게, 토큰 데이터베이스(122)가 리던던시를 제공할 수 있도록 하나 이상의 위치에 저장되는 것이 바람직하고, 이 경우 토크나이저(120)가 상기 최초 위치에 최초 데이터베이스 서버를 포함하고, 이 최초 위치는 백업 위치에 존재하는 회복(recovery) 데이터베이스 서버에 의하여 백업될 수 있다. For redundancy and stability, it is desirable that a plurality of token applications 124 run concurrently in the tokenizer 120. [ At this time, it is more preferable that at least two token applications 124 are executed in full-time. Here, one token application 124 may reside in a primary location and the other may reside in a backup location (e.g., another computer / processor). Similarly, it is preferred that the token database 122 is stored in one or more locations to provide redundancy, in which case the tokenizer 120 includes an initial database server in the initial location, And can be backed up by a recovery database server residing in the database.

웹 사이트와 이와 관련된 어플레케이션(예를 들어, 웹 스토어(110))과 같은 소스 어플리케이션(source applications)과 인터페이스하기 위하여, 토크나이저(120)는, (i) 하이퍼텍스트 전송 프로토콜(hyper-text transport protocol, HTTP) 또는 보안-HTTP (HTTPS) 소켓 인터페이스(socket interface) 중 어느 하나와, (ii) SSL 소켓 인터페이스와의 결합을 적용할 수 있다. 이 경우, 토크나이저(120)는 이 두 개의 인터페이스들에 대응하여 두 개의 다른 API들을 이용한다. 즉, (i) 예를 들어, 이름-숫자 페어(예를 들어, "action=CE&data=1234123412341234"와 같이, MINE 타입 URL 폼으로 암호화된(MIME Type URL Form Encoded) 페어를 전달하는 HTTP API와, (ii) 예를 들어, "FF0027CE01bbbbbbb1234123412341234,"와 같이 고정된 포맷(format)으로 전달하는 소켓 API를 이용할 수 있다. "FF0027CE01bbbbbbb1234123412341234,"에서 "b"는 빈칸(blank)를 의미한다. 두 가지 경우에서, SSL은 전송을 암호화하는데 사용된다. 두 개의 API들을 가지는 이유는 다음과 같다. HTTP 프로토콜은 각 거래의 소켓 셋업(setup)/테어다운(teardown) 절차를 사용한다. 반면에 소켓 커넥션(socket connection)은 많은 거래에 지속될 수 있어, 지불 카드 미들웨어(130)를 사용하는 것과 같이 짧은 시간 프레임 동안 많은 거래의 디토큰화(detokenization)이 요구되는 다거래 대화(interaction)에 적합하다. To interact with source applications such as a web site and its associated applications (e.g., web store 110), the tokenizer 120 may include (i) a hypertext transfer protocol transport protocol, HTTP) or secure-HTTP (HTTPS) socket interface, and (ii) SSL socket interface. In this case, the tokenizer 120 uses two different APIs corresponding to these two interfaces. That is, (i) an HTTP API for delivering a pair (MIME Type URL Form Encoded) encrypted with a MINE type URL form, for example, a name-number pair (for example, "action = CE & data = 1234123412341234" (ii) For example, it is possible to use a socket API for transferring in a fixed format such as "FF0027CE01bbbbbb1234123412341234," " FF0027CE01bbbbbb1234123412341234, The reason for having two APIs is that the HTTP protocol uses the socket setup / teardown procedure for each transaction, while the socket connection Can be sustained in many transactions and is suitable for transactional interactions where a lot of transaction detokenization is required for a short time frame, such as using payment card middleware 130.

웹 스토어(110)로부터의 하나의 요청-응답 호출(call)은 암호화되지 않은 형식으로 지불 카드 번호를 토크나이저(120)에 송신하고, 토큰화된 거래를 어플리케이션 모듈(150)에 전달하기 전에, 지불 카드 번호에 대응하는 토큰을 토크나이저(120)로부터 수신한다. One request-response call from the web store 110 sends the payment card number to the tokenizer 120 in an unencrypted format and prior to passing the tokenized transaction to the application module 150, And receives a token corresponding to the payment card number from the tokenizer 120.

도 2를 참조하여, 일 예에 따른 토큰 어플리케이션(124)을 위한 알고리즘(200)을 설명한다. 단계(201)에서 알고리즘이 개시(instantiate)된다. 단계(202)에서, 토큰 어플리케이션(124)은 호출 모듈(calling module)(예를 들어, 웹 스토어(110), 입력 모듈(140) 및 지불 카드 미들웨어(130) 중 적어도 어느 하나)으로부터 입력 문자열의 수신을 기다린다. 이어서, 단계(203)에서, 입력 문자열이 호출 모듈로부터 수신된다. 이어서, 단계(204)에서, 입력 문자열이 지불 카드 번호인지 토큰인지 판단한다. 단계(204)에서 입력 문자열이 지불 카드 번호로 판단되면, 토큰 어플리케이션(124)이 단계(205)를 진행한다. 단계(204)에서 입력 문자열이 토큰으로 판단되면, 토큰 어플리케이션(124)이 단계(206)을 진행한다. Referring to Figure 2, an algorithm 200 for the token application 124 according to an example is described. The algorithm is instantiated in step 201. [ At step 202 the token application 124 retrieves the input string from the calling module (e.g., web store 110, input module 140 and payment card middleware 130) Wait for reception. Then, at step 203, an input string is received from the calling module. Then, in step 204, it is determined whether the input string is a payment card number or a token. If the input string is determined to be a payment card number in step 204, the token application 124 proceeds to step 205. [ If the input string is determined to be a token in step 204, the token application 124 proceeds to step 206.

단계(205)에서, 토큰 데이터베이스(122)는 지불 카드 번호가 이미 데이터베이스에 존재하는지 여부를 판단하기 위하여 검색을 수행한다. 단계(205)에서 지불 카드 번호가 데이터베이스에 존재하지 않는 것으로 판단되면, 토큰 어플리케이션(124)은 단계(209)를 진행한다. 단계(205)에서 지불 카드 번호가 데이터베이스 내에 존재하는 것으로 판단되면, 토큰 어플리케이션(124)은 단계(211)을 진행한다. At step 205, the token database 122 performs a search to determine whether a payment card number already exists in the database. If it is determined in step 205 that the payment card number does not exist in the database, the token application 124 proceeds to step 209. [ If it is determined in step 205 that the payment card number is in the database, the token application 124 proceeds to step 211. [

단계(209)에서, 토큰 어플리케이션(124)은, 토큰, 바람직하게는 랜덤한 영숫자 문자열을 생성한다. 이 영숫자 문자열은 지불 카드 번호에 기반하여 생성되지 않으며, 지불 카드 번호와 알고리즘 관계를 가지지 않는다. 따라서, 토큰은 추후에 토크나이저(120) 없이 지불 카드 번호를 생성하는 데 사용될 수 없다. At step 209, the token application 124 generates a token, preferably a random alphanumeric string. This alphanumeric string is not generated based on the payment card number and has no algorithm relation with the payment card number. Thus, the token can not be used to generate the payment card number without the tokenizer 120 in the future.

이어서, 단계(210)에서, 토큰 어플리케이션(124)은 토큰과 함께 지불 카드 번호를 암호화된 폼으로 토큰 데이터베이스(122) 내에 저장한다. 이어서, 단계(212)에서, 토큰 어플리케이션(124)은 호출 모듈로 토큰을 출력하고 단계(202)로 돌아간다. Then, at step 210, the token application 124 stores the payment card number along with the token in the token database 122 as an encrypted form. Then, at step 212, the token application 124 outputs the token to the calling module and returns to step 202. [

단계(211)에서, 지불 카드 번호에 대응하는 토큰이 토큰 데이터베이스(122)로부터 되찾아지고, 그러면 알고리즘은 단계(212)를 진행한다. At step 211, the token corresponding to the payment card number is retrieved from the token database 122, and then the algorithm proceeds to step 212.

단계(206)에서, 토큰 데이터베이스(122)는 토큰이 이미 데이터베이스에 존재하는지 여부를 판단하기 위하여 검색을 수행한다. 단계(206)에서 토큰이 데이터베이스에 존재하지 않는 것으로 판단되면, 토큰 어플리케이션(124)은 단계(202)를 진행한다. 단계(206)에서 토큰이 데이터베이스 내에 존재하는 것으로 판단되면, 토큰 어플리케이션(124)은 단계(207)을 진행한다. 단계(207)에서, 토큰에 대응하는 지불 카드 번호를 토큰 데이터베이스(122)로부터 되찾는다. At step 206, the token database 122 performs a search to determine whether a token already exists in the database. If at step 206 it is determined that the token is not present in the database, then the token application 124 proceeds to step 202. If at step 206 it is determined that a token is present in the database, then the token application 124 proceeds to step 207. At step 207, the payment card number corresponding to the token is retrieved from the token database 122.

이어서, 단계(208)에서, 토큰 어플리케이션(124)은 호출 모듈로 토큰을 출력하고 단계(202)로 돌아간다.Then, at step 208, the token application 124 outputs the token to the calling module and returns to step 202. [

PCI DSS 규정은 데이터베이스 기능으로부터 어플리케이션이 분리될 것을 요구한다. 따라서, DSS에 따른 준수를 위하여, 네 개의 컴퓨터(최초 위치에서의 어플리케이션 시스템 및 데이터베이스 시스템과, 백업 위치에서의 어플리케이션 시스템 및 데이터베이스 시스템)의 최소 구성(minimum configuration)을 수반한다. The PCI DSS specification requires applications to be isolated from database functions. Therefore, for compliance with the DSS, it involves a minimum configuration of four computers (application system and database system at the initial location, application system and database system at the backup location).

토크나이저(120)가 일반적인 사용자 권한(user privilege)에만 적절하게 사용되도록 기능하므로, 다른 지불 카드 어플리케이션 또한 상술한 네 개의 컴퓨터 시스템에 호스트(host)될 수 있다. Because the tokenizer 120 functions appropriately for normal user privileges, other payment card applications may also be hosted on the four computer systems described above.

다른 실시예로, 토큰 어플리케이션(124)이 일례로 지불 카드 미들웨어(130) 대신에 지불 카드 미들웨어 어플리케이션일 수 있고, 예를 들어 PCI DSS 요구에 부합되도록 고립된 네트워크 세그먼트 안에 남아있을 수 있다. In another embodiment, the token application 124 may be a payment card middleware application instead of the payment card middleware 130, for example, and may remain in an isolated network segment to meet, for example, PCI DSS requirements.

<지불 카드 번호 입력> <Enter payment card number>

지불 프로세스 시스템(100)은 가능한 두 개의 지불 카드 정보의 소스, 즉 (i) 인터넷-대향 웹 사이트와, 이와 관련되어 카드, (일시불(one-time pay) 또는 계좌 유지(account-maintenance) 기능을 구현하는 어플리케이션, 그리고 (ii) 고객-서비스 호출 또는 판매 시점 관리를 채용한다. (ii)에서 최종 고객(end customer)이 카드 소지자의 데이터를 고객 서비스 담당자에게 제공하고, 이 고객 서비스 담당자가 카드 소지자의 데이터를 입력한다. 따라서, 지불 프로세스 시스템(100)은 이 기능을 실현하기 위하여 웹 스토어(110)와 입력 모듈(140)를 모두 포함한다. 다른 실시예로, 웹 스토어(110) 및 입력 모듈(140) 중 어느 하나만 제공될 수도 있다. The payment process system 100 can be used as a source of two possible payment card information: (i) an internet-facing website and associated cards (one-time pay or account-maintenance functions) (Ii) adopts a customer-service call or point-of-sale management, (ii) the end customer provides the cardholder's data to the customer service representative, and the customer service representative uses the cardholder The payment processing system 100 includes both the web store 110 and the input module 140 to realize this functionality. In another embodiment, the web store 110 and the input module (140) may be provided.

웹 스토어(110)는, 하나 이상의 상품 및/또는 서비스를 구매하고자 하는 최종 고객(예를 들어, 온라인 웹 업체로부터 구매를 하고자 하는 소비자)에 의해 사용되는 어플리케이션을 가지는 하나 이상의 컴퓨터를 포함한다. 거래를 지불한 동안에, 웹 스토어(110)는 토크나이저(120)로 지불 카드 번호를 전송하기 위한 어플리케이션-프로그래밍 인터페이스(API)를 채용한다. 토크나이저(120)는 웹 스토어(110)를 위한 토큰이 다른 거래 데이터와 함께 어플리케이션 모듈(150)에 송신되도록 리턴한다. Web store 110 includes one or more computers having applications that are used by end customers (e.g., consumers who wish to make purchases from online web companies) who wish to purchase one or more goods and / or services. During payment of the transaction, web store 110 employs an application-programming interface (API) for transmitting payment card numbers to tokenizer 120. The tokenizer 120 returns the token for the web store 110 to be sent to the application module 150 along with other transaction data.

입력 모듈(140)은, 주문 접수 어플리케이션 인터페이스(예를 들어, SAP 그래픽 사용자 인터페이스(SAP GUI), 또는 구매자가 고객 데이터를 입력하기 위하여 사용되는 다른 소프트웨어)를 가지는 하나 이상의 컴퓨터를 포함한다. 주문을 접수하도록 하기 위하여, 고객 서비스 담당자는 판매 시점 관리에서, 예를 들어, 전화 또는 직접 대면하여 입력 모듈(140)을 사용한다. 입력 모듈(140)은, 토크나이저(120)와 인터페이스하는 데스크탑 토큰 인터페이스(145)을 포함한다. 데스크탑 토큰 인터페이스(145)는 지불 카드 번호를 토크나이저(120)에 전송한다. 토크나이저(120)는 입력 모듈(140)을 위한 토큰을 다른 거래 데이터와 함께 어플리케이션 모듈(150)에 송신하기 위하여 리턴한다.The input module 140 includes one or more computers having an order acceptance application interface (e.g., SAP graphical user interface (SAP GUI), or other software used by a buyer to enter customer data). In order to have the order accepted, the customer service representative uses the input module 140 at point of sale, for example, by telephone or face to face. The input module 140 includes a desktop token interface 145 that interfaces with the tokenizer 120. The desktop token interface 145 sends the payment card number to the tokenizer 120. The tokenizer 120 returns to send the token for the input module 140 to the application module 150 along with other transaction data.

입력 모듈(140)은 고객 서비스 센터의 고객-서비스 워크스테이션(customer-service workstation)에서 구현되는 것이 바람직하다. 데스크탑 토큰 인터페이스(145)는, 고객 서비스 담당자가 고객의 지불 카드 번호를 수동으로(예를 들어, 타이핑하여) 입력하는 어플리케이션일 수 있다. 예를 들어, 이 어플리케이션은 비쥬얼 베이직 프로그래밍 언어(Visual Basic programming language) 내에 씌여진(written) 마이크로소프트 윈도우 애플릿(Microsoft Windows applet)일 수 있다. 데스크탑 토큰 인터페이스(145)는 지불 카드 번호를 암호화되지 않은 형식으로 토크나이저(120)에서 송신하기 위하여 API를 사용한다. 토크나이저(120)는 토큰 데이터베이스(122) 내의 지불 카드 번호를 암호화하여 저장하고, 카드 번호에 대응하는 토큰을 데스크탑 토큰 인터페이스(145)로 리턴한다. 그 다음으로, 데스크탑 토큰 인터페이스(145)는 윈도우 클립보드(Window clipboard)에 토큰을 저장한다. (다른 실시예에서는 비슷한 기능을 실현하기 위하여 운영 시스템 클립보드를 대신하여 버퍼가 사용될 수도 있다.) 이에 따라, 토큰을 입력 모듈(140) 내에 위치한 적절한 엔트리-스크린 필드(entry-screen field) 내에 입력하기 위한 "붙여넣기(paste)" 실행을 위한 키 스트로크(key stroke) 또는 마우스 클릭을 허용한다. 따라서, (정상적으로 수행되는 고객 데이터 엔트리 실행에 추가하여) 단지 약 네 번의 키 스트로크 또는 마우스 클릭하여, 지불 카드 번호를 토큰화하도록 고객 서비스 담당자가 데스크탑 토큰 인터페이스(145)를 사할 수 있다.  The input module 140 is preferably implemented in a customer-service workstation of a customer service center. The desktop token interface 145 may be an application in which a customer service representative manually enters (e.g., typing) the customer's payment card number. For example, the application may be a Microsoft Windows applet written in a Visual Basic programming language. The desktop token interface 145 uses the API to transmit the payment card number in an unencrypted format in the tokenizer 120. The tokenizer 120 encrypts and stores the payment card number in the token database 122 and returns the token corresponding to the card number to the desktop token interface 145. Next, the desktop token interface 145 stores the token in the window clipboard. (In other embodiments, a buffer may be used instead of the operating system clipboard in order to achieve a similar function.) Accordingly, the token is input into the appropriate entry-screen field located in the input module 140 Allowing a key stroke or mouse click for "paste &quot; Thus, the customer service representative can buy the desktop token interface 145 to tokenize the payment card number by just about four keystrokes or mouse clicks (in addition to the normally performed customer data entry).

도 3을 참조하여, 데스크탑 토큰 인터페이스(145)를 위한 알고리즘(300)이 설명된다. 단계(301)에서, 애플릿이 개시된다. 이어서, 단계(302)에서, 애플릿은 백그라운드(background)에서 기설정된 키 스트로크(예를 들어, ALT-F12)가 눌려지기를 기다린다. 상품 또는 서비스의 구매를 위하여, 키 스트로크는 입력 모듈(140)에서 실행되는 주문 접수 소프트웨어를 사용하는 고객 서비스 담당자가 지불 카드 번호를 입력하려 준비할 때 눌려질 것이다. 지불 카드 번호를 주문 접수 소프트웨어에 직접 입력(이는 주문 접수 소프트웨어가 규제(regulatory compliance)를 받도록 할 수 있다)하는 것 대신, 고객 서비스 담당자가 애플릿을 활성화하기 위하여 기설정된 키 스트로크를 사용할 수 있다. Referring to FIG. 3, an algorithm 300 for the desktop token interface 145 is described. At step 301, the applet is started. Then, at step 302, the applet waits for a preset keystroke (e.g., ALT-F12) in the background to be depressed. For the purchase of a product or service, the keystroke will be pressed when a customer service representative using the order accepting software running on the input module 140 prepares to enter the payment card number. Instead of directly entering the payment card number into the order acceptance software (which may cause the order accepting software to undergo regulatory compliance), the customer service representative may use a preset keystroke to activate the applet.

이어서, 단계(303)에서, 상대적으로 작은 엔트리 윈도우(entry window)가 고객 서비스 담당자의 스크린 상에(예를 들어, 주문 접수 소프트웨어 윈도의 상부 또는 이에 인접하여) 표시된다. 엔트리 윈도우가 단일 입력 필드를 가지는 것이 바람직하다. 상기 윈도우는 클릭 가능한 '제출(submit)' 버튼을 포함할 수 있다. 고객 서비스 담당자는 고객의 지불 카드 번호를 엔트리 윈도우의 입력 필드에 타이핑하고, 입력키를 누른다(또는 '제출(submit)' 버튼이 있으면 이를 클릭한다). Then, at step 303, a relatively small entry window is displayed on the screen of the customer service representative (e.g., above or adjacent to the order entry software window). It is preferable that the entry window has a single input field. The window may include a clickable 'submit' button. The customer service representative types the customer's payment card number into the input field of the entry window and presses the input key (or clicks the 'submit' button if there is one).

이어서, 단계(304)에서, 엔트리 윈도우의 입력 필드로부터 고객의 지불 카드 번호가 암호화되지 않은 형식으로 수신된다. 이어서, 단계(305)에서, 입력한 지불 카드 번호가, 예를 들어 룬 체크(Luhn check)(또는 Mod 10 check로 불림)를 사용하는 유효한 카드 번호인지 판단한다. Then, at step 304, the customer's payment card number is received in an unencrypted format from the entry field of the entry window. Then, in step 305, it is determined whether the entered payment card number is a valid card number using, for example, a Luhn check (also called a Mod 10 check).

단계(305)에서 카드 번호가 유효하지 않다고 판단되면, 단계(306)에서 오류 메시지(error message)가 고객 서비스 담당자의 스크린에 표시되고, 애플릿은 단계(302)으로 돌아간다. 단계(305)에서 카드 번호가 유효하다고 판단되면, 알고리즘은 단계(307)을 진행한다. If it is determined in step 305 that the card number is not valid, then in step 306 an error message is displayed on the screen of the customer service representative and the applet returns to step 302. If it is determined in step 305 that the card number is valid, the algorithm proceeds to step 307. [

단계(307)에서, 지불 카드 번호를 포함하는 토큰화 요청이 HTTPS 프로토콜을 이용하여 암호화된 소켓을 통하여 (지불 카드 번호에 대응하는 토큰을 리턴하는) 토크나이저(120)에 송신된다. 단계(308)에서, 토큰은 토크나이저(120)로부터 수신된다. 이어서, 단계(309)에서, 토큰은 윈도우 OS(운영 시스템) 클립보드에 복사된다. 토큰은 토큰화가 성공했음을 확인하기 위하여 고객 서비스 담당자의 스크린에 표시될 수 있다. 단계(309)에서, 애플릿은 단계(302)로 돌아간다. 이때, 토큰은 윈도우 OS 클립보드에 저장될 수 있다. At step 307, a tokenization request containing a payment card number is transmitted to the tokenizer 120 (which returns a token corresponding to the payment card number) via a socket encrypted using the HTTPS protocol. At step 308, a token is received from the tokenizer 120. Then, in step 309, the token is copied to the Windows OS (Operating System) clipboard. The token may be displayed on the screen of the customer service representative to verify that the tokenization was successful. At step 309, the applet returns to step 302. At this time, the token can be stored in the Windows OS clipboard.

이어서, 고객 서비스 담당자는 어플리케이션 포커스를 애플릿 윈도우로부터 주문 접수 소프트웨어 윈도우로 바꾼다. (토큰이 생성되면 애플릿이 엔트리 윈도우를 닫는 특정한 실시예에서는, 엔트리 윈도우가 닫기면서 어플리케이션 포커스가 자동으로 주문 접수 소프트웨어 윈도우로 리턴되기 때문에, 이 과정이 반드시 필요하지는 않다는 것이 알려져 있다.) 그 다음, 고객 서비스 담당자는 토큰을 윈도우 OS 클립보드로부터 주문 접수 소프트웨어의 지불 카드 번호 필드로 붙여 넣는다. 이는, 예를 들어, 마우스 컨트롤(예를 들어, 오른쪽 클릭, 그 다음 드롭다운 메뉴(drop-down menu)로부터 "붙여넣기" 클릭하기) 또는 키 스트로크 (예를 들어, CTRL-V)에 의해 수행될 수 있다. 그 다음, 프로세스를 위하여, 고객 서비스 담당자는 주문 접수 소프트웨어 윈도우의 '송신(send)' 버튼을 누름으로써 어플리케이션 모듈(150)에 주문을 제출한다.The customer service representative then changes the application focus from the applet window to the order acceptance software window. (It is known that in certain embodiments where the applet closes the entry window when the token is created, this process is not necessarily necessary because the application window is automatically closed and the application focus is returned to the order entry software window.) Next, The customer service representative pastes the token from the Windows OS clipboard into the payment card number field of the order acceptance software. This may be accomplished, for example, by a mouse control (e.g., right clicking, then clicking "Paste" from the drop-down menu) or keystroke (e.g., CTRL-V) . Then, for the process, the customer service representative submits the order to the application module 150 by pressing the &quot; send &quot; button of the order entry software window.

전술한 경우에서, 어플리케이션 모듈(150)에 암호화되지 않은 형식의 지불 카드 번호를 입력하지 않으므로, 이에 따라 어플리케이션 모듈(150)은 규제 감사를 받지 않아도 된다. In the above case, the application module 150 does not input a payment card number in an unencrypted format, so that the application module 150 does not have to undergo a regulation audit.

좀더 상세한 설명은, 도 3의 알고리즘(300)의 실현을 위한 비쥬얼 베이질 프로그램 코드의 일례를 보여주는 도 7a 내지 도 7e에 제시하였다. A more detailed description is given in Figs. 7A to 7E showing an example of visual basic program code for the realization of the algorithm 300 of Fig.

본 실시예에서, 데스크탑 토큰 인터페이스(145)의 알고리즘(300)의 일례는 상술한 바와 같이, 고객 서비스 담당자가 수동으로 토크나이저(120)로부터 토큰을 요청한다. 그 다음에, 클리어링 하우스 거래를 하기 전에, 암호화되지 않은 지불 카드 번호가 채워진 입력 모듈(140) 내의 필드에 토큰을 수동으로 붙여넣기 한다.In this embodiment, an example of the algorithm 300 of the desktop token interface 145 requests the token from the tokenizer 120 manually by the customer service representative, as described above. Next, the token is manually pasted into the field in the input module 140 filled with the unencrypted payment card number before clearing house transaction.

추후에 설명된 다른 실시예로에서는, 데스크탑 토큰 인터페이스(145)가 고객 서비스 담당자가 입력 모듈(140) 내의 필드에 입력한 지불 카드 번호를 암호화되지 않은 형식으로 자동으로 추출한다. 그리고 데스크탑 토큰 인터페이스(145)가 토크나이저(120)로부터 토큰을 요청하고, 클리어링 하우스 거래가 이루어지기 전에 암호화되지 않은 형식의 지불 카드 번호를 토큰으로 대체한다. In another embodiment described later, the desktop token interface 145 automatically extracts the payment card number entered in the field in the input module 140 by the customer service representative in an unencrypted format. The desktop token interface 145 then requests the token from the tokenizer 120 and replaces the un-encrypted payment card number with a token before the clearinghouse transaction is made.

도 4를 참조하여, 다른 실시예에 따른 데스크탑 토큰 인터페이스(145)를 위한 알고리즘(400)을 설명한다. 알고리즘(300)은 윈도우 애플릿 내에서 실시되는 것과 달리, 알고리즘(400)은 스크립트(script) 내에서 실시된다. 예를 들어, SAP ERP 소프트웨어는 SAP GUI로 불리는 윈도우 어플리케이션 프론트-엔드 인터페이스(Windows application front-end interface)를 채용한다. SAP GUI는 SAP 고객에게 스크립트를 개발하여 SAP ERT의 기능을 확장하기 위한 방법을 제공한다. 따라서, 알고리즘(400)은 바람직하게 입력 모듈(140) 내의 SAP GUT 스크립트에서 구현된다.Referring to FIG. 4, an algorithm 400 for a desktop token interface 145 according to another embodiment is described. Unlike algorithm 300 is implemented in a Windows applet, algorithm 400 is implemented in a script. For example, SAP ERP software employs a Windows application front-end interface called SAP GUI. SAP GUI provides a way for SAP customers to develop scripts to extend the capabilities of SAP ERT. Thus, the algorithm 400 is preferably implemented in the SAP GUT script in the input module 140.

이 경우, 상품 또는 서비스를 구매하기 위하여 고객 서비스 담당자는 입력 모듈(140)에서 실행되는 SAP GUI 주문 접수 어플리케이션 인터페이스를 사용한다. 고객 서비스 담당자는 고객의 주문을 접수하여, 적절한 주문 정보 모두(고객의 지불 카드 번호를 포함함)를 표준 주문 스크린(예를 들어, VA01 Create Sales Order screen)에 입력한다. 모든 주문 정보를 입력한 후에, 구매자는 "저장(save)" 아이콘을 표준 주문 스크린에서 누른다. 보통은, '저장'을 누르면, 암호화되지 않은 형식의 지불 카드 번호를 포함하는 모든 정보를 주문 스크린 내에 저장한다. 이 정보는 프로세스를 위한 어플리케이션에 제출되는데, 이에 의하면 어플리케이션 모듈이 규제 감사를 받아야 한다. 그러나 본 실시예에서는, '저장'이 눌러지면 SAP GUI 스크립트가, 정보가 어플리케이션(150)에 송신되지 전에, 알고리즘(400)을 구현하는 스크립트를 개시한다. In this case, the customer service representative uses the SAP GUI order acceptance application interface executed in the input module 140 to purchase the goods or services. The customer service representative receives the customer's order and enters all of the appropriate order information (including the customer's payment card number) into the standard order screen (e.g., VA01 Create Sales Order screen). After entering all the order information, the buyer presses the "save" icon on the standard order screen. Normally, pressing 'Save' saves all information in the order screen, including the payment card number in an unencrypted format. This information is submitted to the application for the process, which requires the application module to receive regulatory audits. However, in this embodiment, when 'save' is pressed, the SAP GUI script starts a script that implements the algorithm 400 before the information is sent to the application 150.

단계(401)에서, 스크립트가 개시한다. 이어서, 단계(402)에서, 스크립트가, 주문 스크린 폼이 지불 카드 번호가 위치한 필드가 존재하는지 여부를 판단하기 위하여, CCNUM로 명명된 필드를 하나 이상 찾기 위하여 표준 주문 스크린 폼에 존재하는 모든 필드를 검색한다(또는 암호화되지 않은 형식의 지불 카드 번호를 가지는 필드가 위치하는 다른 표준(criteria)을 사용한다). 단계(402)에서 주문 스크린 폼이 암호화되지 않은 형식의 지불 카드 번호를 가지는 필드를 포함하지 않는다고 판단되면, 스크립트는 단계(405)를 진행한다. 단계(405)에서는 고객 서비스 담당자의 스크린에 오류 메시지가 표시되고, 스크립트는 이어서 단계(410)에서 오류 조건을 떠난다. 단계(402)에서 주문 스크린 폼이 암호화되지 않은 형식의 지불 카드 번호를 가지는 필드를 포함한다고 판단되면, 스크립트는 단계(403)를 진행한다. At step 401, the script starts. Then, at step 402, the script determines whether the order screen form contains all the fields present in the standard order screen form to find one or more fields named CCNUM, to determine if there is a field where the payment card number is located (Or use other criteria in which fields with payment card numbers in an unencrypted format are located). If it is determined in step 402 that the custom screen form does not include a field having a payment card number in an unencrypted format, the script proceeds to step 405. At step 405, an error message is displayed on the screen of the customer service representative, and the script then leaves the error condition at step 410. If it is determined in step 402 that the custom screen form includes a field having a non-encrypted payment card number, the script proceeds to step 403.

단계(403)에서, 스크립트는 주문 스크린 폼의 필드로부터 암호화되지 않은 형식의 지불 카드 번호를 읽는다. 이어서, 단계(404)에서, 입력된 지불 카드 번호가, 예를 들어 Luhn check(또는 Mod 10 check로 불림)를 사용하는 유효한 카드 번호인지 판단한다. 단계(404)에서 카드 번호가 유효하지 않다고 판단되면, 단계(405)에서 오류 메시지가 고객 서비스 담당자의 스크린에 표시되고, 이어서 스크립트는 단계(410)에서 오류 조건에서 떠난다. 단계(404)에서 카드 번호가 유효하다고 판단되면, 알고리즘은 단계(406)을 진행한다. At step 403, the script reads the payment card number in an unencrypted format from the field of the order screen form. Then, in step 404, it is determined whether the entered payment card number is a valid card number using, for example, Luhn check (or called Mod 10 check). If it is determined at step 404 that the card number is not valid, then at step 405 an error message is displayed on the screen of the customer service representative, and then the script leaves the error condition at step 410. If it is determined in step 404 that the card number is valid, the algorithm proceeds to step 406. [

단계(406)에서, 지불 카드 번호를 가지는 토큰화 요청은 HTTPS 프로토콜을 이용하여 암호화된 소켓을 통하여 (지불 카드 번호에 대응하는 토큰을 리턴하는) 토크나이저(120)에 송신된다. At step 406, the tokenization request with the payment card number is transmitted to the tokenizer 120 (which returns the token corresponding to the payment card number) over the socket encrypted using the HTTPS protocol.

이어서, 단계(407)에서, 토큰은 토크나이저(120)로부터 수신된다. 이어서, 단계(408)에서, 스크립트는 주문 스크린 폼으로부터 암호화되지 않은 형식의 지불 카드 번호를 제거하고, 이를 수신된 토큰으로 대체한다. Then, at step 407, the token is received from the tokenizer 120. [ Then, at step 408, the script removes the un-encrypted payment card number from the order screen form and replaces it with the received token.

이어서, 단계(409)에서, 주문 스크린 폼에서 추가적인 지불 카드 번호가 존재하는지 여부를 판단한다. 이 경우, 스크립트는 주문 스크린 폼에서 발견된 지불 카드 번호를 프로세스하기 위하여 단계(403)로 돌아간다. 아니면, 스크립트는 단계(411)을 진행한다. Then, in step 409, it is determined whether there is an additional payment card number in the order screen form. In this case, the script returns to step 403 to process the payment card number found on the order screen form. Otherwise, the script proceeds to step 411.

단계(411)에서 스크립트는 주문 스크린 폼에 위치한 모든 정보(암호화되지 않은 지불 카드 번호를 대체한 토큰을 포함함)를 어플리케이션 모듈(150)에 제출한다. 이어서, 단계(412)에서, 스크립트는 성공 조건에서 나온다. At step 411, the script submits to the application module 150 all information (including tokens that replace the unencrypted payment card number) located in the order screen form. Then, at step 412, the script comes out of a success condition.

단계(410)에서 스크립트가 에러 조건을 가지면, 고객 서비스 담당자는 오류 정정(예를 들어, 누락된 지불 카드 번호를 제공하거나 유효하지 않은 지불 카드 번호를 정정)하기 위하여 엔트리 스크린으로 돌아간다. 적절한 정정이 이루어지면, 고객 서비스 담당자는 재시도를 위하여 "저장"을 누르고, 알고리즘(400)은 다시 한번 초기화된다. If, at step 410, the script has an error condition, the customer service representative returns to the entry screen to correct the error (e.g., provide a missing payment card number or correct an invalid payment card number). If an appropriate correction is made, the customer service representative presses "save" for the retry, and the algorithm 400 is initialized once again.

전술한 경우에, 고객 서비스 담당자가 수동으로 애플릿을 활성화하거나 토큰을 어떠한 애플리케이션에 붙여넣는 것(알고리즘(300)의 경우)이 필요하지 않다. 그리고 전체 토큰화 과정이 동시에 일어날 수 있으며, 고객 서비스 담당자의 부분에서 어떠한 특별한 지식 또는 행동 없이 백그라운드에서 일어날 수 있다. In the above case, it is not necessary for the customer service representative to activate the applet manually or to paste the token into any application (in the case of algorithm 300). And the whole tokenization process can happen at the same time, and can happen in the background without any special knowledge or action in the part of the customer service representative.

좀더 상세한 설명은, 도 4의 알고리즘(400)의 실현을 위한 비쥬얼 베이질 프로그램 코드의 일례를 보여주는 도 8a 내지 도 8c에 제시하였다. A more detailed description is shown in Figs. 8A-8C showing an example of visual basic program code for the realization of the algorithm 400 of Fig.

<어플리케이션 모듈> <Application module>

어플리케이션 모듈(150)은 구매 주문, 배송 추적, 결제, 계좌 결제, 관련 기능(functionality)를 수행하는 소프트웨어를 포함하는 하나 이상의 컴퓨터를 포함하는 상업적인 엔터프라이즈 시스템이다. 상기 시스템은 예를 들어, 펜실베니아, 뉴타운 스퀘어에 위치한 SAP 아메리카스(SAP Americas)의 상품명 mySAP business suite software일 수 있다. The application module 150 is a commercial enterprise system that includes one or more computers including software for performing purchase orders, tracking, payment, account settlement, and related functionality. The system may be, for example, the trade name mySAP business suite software from SAP Americas, located in Newtown Square, Pennsylvania.

예를 들어, SAP 비즈니스 어플리케이션 프로그래밍 인터페이스(Business Application Programing Interface, BAPI)와 같은 어플리케이션 모듈(150) 내의 기능에 접근할 수 있는 API를 이용하여, 어플리케이션 모듈(150)이 웹 스토어(110)로부터 토큰화된 웹 거래를 수신한다. 이에 대체하여 또는 이에 추가하여, 어플리케이션 모듈(150) 내의 기능에 접근할 수 있는, 입력 모듈(140) 내의 범용 클라이언트 인터페이스(universal client interface)(예를 들어, SAP GUI)를 이용하여, 어플리케이션 모듈(150)은 입력 모듈(140)로부터 토큰화된 고객 서비스 거래 및 계좌 업데이터를 수신한다. 어플리케이션 모듈(150)은 지불 카드 미들웨어(130)로 승인 및 지불을 위한 토큰화된 요청을 송신하고, 지불 카드 미들웨어(130)로부터 상술한 요청들에 대한 토큰화된 응답을 수신한다. 이때, 예를 들어, 어플리케이션 모듈(150)과 교신하기 위한 표준 인터페이스(standard interface)(일례로, SAP 원격 함수 호출(Remote Function Call, RFC))를 이용할 수 있다. The application module 150 may receive a tokenization request from the web store 110 using an API capable of accessing functions in the application module 150, such as, for example, the SAP Business Application Programming Interface (BAPI) Lt; / RTI &gt; Alternatively or additionally, the application module 150 can be accessed using a universal client interface (e.g., SAP GUI) in the input module 140, which can access functions within the application module 150 150 receives a tokenized customer service transaction and an account updater from the input module 140. The application module 150 sends the tokenized request for authorization and payment to the payment card middleware 130 and receives the tokenized response for the above described requests from the payment card middleware 130. [ At this time, for example, a standard interface (for example, an SAP remote function call (RFC)) for communicating with the application module 150 may be used.

어플리케이션 모듈(150)은 PCI 또는 PII 데이터를 프로세스하거나, 전송하거나, 저장하지 않으므로, 규제 감사를 받지 않아도 된다. 어플리케이션 모듈(150)과, 웹 스토어(110) 및/또는 입력 모듈(140) 사이에서 일어나는 거래는 모두 토큰화된 형식을 가지고, PCI 또는 PII 데이터를 가지지 않는다. 유사하게, 어플리케이션 모듈(150)와 지불 카드 미들웨어(130) 사이의 승인 및 결제 거래 또한 토큰화된 형식을 가지고, PCI 또는 PII 데이터를 가지지 않는다. 이러한 구조는 '캡쳐 전 토큰화' 접근으로 지칭될 수 있다. 이에 의하여, 프로세스를 위한 백-엔드(back-end) 시스템(예를 들어, 어플리케이션 모듈(150))에 거래를 전달하기 전에, 지불 카드 계좌용 엔트리의 모든 프론트-엔드 소스(front-end source)(예를 들어, 웹 스토어(110)와 입력 모듈(140))는 암호화되지 않은 형식의 지불 카드 번호를 토큰화한다. Since the application module 150 does not process, transmit, or store PCI or PII data, it does not need to be subjected to a regulation audit. Transactions that occur between the application module 150 and the web store 110 and / or the input module 140 all have a tokenized form and do not have PCI or PII data. Similarly, authorization and payment transactions between application module 150 and payment card middleware 130 also have a tokenized form and do not have PCI or PII data. This structure can be referred to as the 'pre-capture tokenization' approach. Thereby, all of the front-end sources of the entries for the payment card accounts, before delivering the transactions to the back-end system (e.g., application module 150) for the process, (E.g., web store 110 and input module 140) tokenize the payment card number in an unencrypted format.

<지불 카드 미들웨어><Payment Card Middleware>

지불 카드 미들웨어(130)는 어플리케이션 모듈(150)로부터의 요청되어 토큰화된 승인 및 결제를 수신 및 응답하는 소프트웨어를 가지는 하나 이상의 컴퓨터를 포함한다. 그리고, 대응 지불 카드 번호를 데이터베이스(122)로부터 되찾기 위하여 제공된 토큰을 포함하는 요청을 포함할 수 있다. 상기 제공된 토큰을 이용하여 토큰화를 위한 요청을 송신하고 이 암호화되지 않은 형식의 지불 카드 번호의 요청에 대한 응답을 수신하는 SSL 인터페이스를 통해, 지불 카드 미들웨어(130)는 토크나이저(120)와 인터페이스한다. 예를 들어, SSL 또는 전용 회선을 이용하여, 실제 지불 거래를 위한, 암호화되지 않은 형식의 지불 카드 번호를 포함하는 요청을 제공하기 위하여, 지불 카드 미들웨어(130)는 클리어링 하우스(160)(예를 들어, 자동화된 클리어링 하우스(Automated Clearing House, ACH) 지불 시스템)와 인터페이스한다.Payment card middleware 130 includes one or more computers having software for receiving and responding to and requesting tokenized authorizations and payments from application module 150. [ And a request including a token provided to retrieve the corresponding payment card number from the database 122. [ Through the SSL interface, which sends a request for tokenization using the provided token and receives a response to a request for a payment card number in the unencrypted form, the payment card middleware 130 interfaces with the tokenizer 120 do. For example, using SSL or leased line, the payment card middleware 130 may send a request to the clearinghouse 160 (e. G., &Lt; RTI ID = 0.0 &gt; For example, an automated clearing house (ACH) payment system.

지불 카드 미들웨어(130)는 카드 프로세스 소프트웨어(예를 들어, 프린스턴 페이먼트 솔루션(Princeton Payment Solutions)의 상품명 PPS PayWare)를 포함할 수 있다. 지불 카드 미들웨어(130)의 일 실시예는 토큰을 식별(token-aware)할 수 있다. 즉, 지불 카드 미들웨어(130)는 토큰과, 암호화되지 않은 형식의 지불 카드 번호를 식별할 수 있다. 이런 식으로 결제 요청이 암호화되지 않은 형식의 지불 카드 번호를 가지면, 지불 카드 미들웨어(130)는 토크나이저(120)를 이용하여 클리어링 하우스(160)에 클리어링 거래 요청을 한다. 그러나, 결제 요청이 지불 카드 번호 대신 토큰을 가지면, 클리어링 하우스(160)에 클리어링 하우스 거래 요청을 하기 전에, 지불 카드 미들웨어(130)는 해당 지불 카드 번호를 얻기 위하여 토크나이저(120)를 이용한다. 따라서, 지불 카드 미들웨어(130)는, 어플리케이션(150) 이외의 어플리케이션으로부터 토큰화된 거래 및 토큰화되지 않은 거래 모두를 프로세스하는 미들웨어로 사용될 수 있다. Payment card middleware 130 may include card processing software (e.g., PPS PayWare, a product of Princeton Payment Solutions). One embodiment of the payment card middleware 130 may be token-aware. That is, the payment card middleware 130 can identify the token and the payment card number in an unencrypted format. In this way, if the payment request has a payment card number in an unencrypted format, the payment card middleware 130 makes a clearing transaction request to the clearing house 160 using the tokenizer 120. However, if the payment request has a token instead of the payment card number, the payment card middleware 130 uses the tokenizer 120 to obtain the corresponding payment card number before making a clearing house transaction request to the clearing house 160. [ Accordingly, payment card middleware 130 may be used as middleware to process both tokenized and non-tokenized transactions from applications other than application 150. [

<대용량의 데이터 이송><Mass data transfer>

지불 카드 데이터 엔트리를 사용하고 구매 시점을 프로세스하는 것과 함께, 실시예에 따른 지불 프로세스 시스템(100)은 상업적인 엔터프라이즈 시스템 테이블(예를 들어, SAP BSEGC or FPLTC 테이블)에 저장된 대용량의 카드 소지자 데이터를 토크나이저(120)로 이송하는 데 사용될 수 있다. 이 경우 하나 이상의 토크나이저(120)의 모듈(예를 들어, 지불 카드 미들웨어(130))는 데이터를 이송하는 소프트웨어를 제공할 수 있다. 소스 테이블 내에 잠겨진(locked) 지불 카드 엔트리를 피하기 위하여, 이러한 이송은 유효한 지불 거래가 없을 때 수행될 수 있다. 그러나 이에 한정되는 것은 아니며, 이전의 이송 루틴(routime)이 실행되는 동안 잠겨진 테이블 엔트리의 이송을 확보할 수 있는 하나 이상의 추가적인 시간에 이송 루틴이 수행될 수 있다. 지불 카드 미들웨어(130)가 자동으로 토큰과 암호화되지 않은 형식의 지불 카드 번호를 식별하면, 앞서 설명한 바와 같이, 자동적으로 하나는 리턴되고 다른 하나는 제공된다. 그러면, 토큰의 이송이 최소한의 상업적인 엔터프라이즈 시스템이 작동하지 않는 시간(downtime)에 수행될 수 있다. In addition to using the payment card data entry and processing the point-in-time of purchase, the payment process system 100 according to the embodiment may be configured to send a large amount of cardholder data stored in a commercial enterprise system table (e.g., SAP BSEGC or FPLTC table) Can be used to transport the material to the niger 120. In this case, a module (e.g., payment card middleware 130) of one or more of the tokenizers 120 may provide software to transfer data. In order to avoid locked payment card entries in the source table, this transfer may be performed when there are no valid payment transactions. However, the present invention is not limited to this, and the transferring routine can be performed at one or more additional times at which the transfer of the locked table entry can be secured while the previous transferring routine is executed. If the payment card middleware 130 automatically identifies the token and the payment card number in an unencrypted format, as described above, one is automatically returned and the other is provided. Then, the transfer of tokens can be performed in a downtime where a minimal commercial enterprise system is not operational.

<패킷 인스펙터> <Packet Inspector>

도 5 및 도 6을 참조하여, 제2 실시예에 따른 지불 프로세스 시스템(500)이 설명된다. 지불 프로세스 시스템(500)은 아래 설명한 것을 제외하고는 지불 프로세스 시스템(100)과 유사한다. Referring to Figures 5 and 6, a payment process system 500 according to a second embodiment is described. The payment process system 500 is similar to the payment process system 100 except as described below.

도 5는 본 발명의 실시예에 따른, 토큰화를 구비하는 지불 프로세스 시스템(500)의 도면이다. 도 5에 도시된 바와 같이, 데스크탑 토큰 인터페이스 대신, 지불 프로세스 시스템(500)은 패킷 인스펙터(545)(예를 들어, F5 네트워크 사의 상품명 BIG-IP Local Traffic Manager 또는 상품명 BIG-IP Global Traffic Manager)을 이용하여 토큰화를 한다. 지불 프로세스 시스템(500)에서, 입력 모듈(540)으로부터의 모든 패킷들(예를 들어, TCP/IP 패킷들)은 어플리케이션 모듈(550)로 전달되기 전에 패킷 인스펙터(545)를 통과한다. 패킷 인스펙터(545)는, 이들을 전달하기 전에, 일정한 패킷의 내용을 수정한다. 이에 대해서는 추후에 좀더 상세하게 설명한다. 5 is a diagram of a payment process system 500 with tokenization, in accordance with an embodiment of the present invention. 5, instead of the desktop token interface, the payment process system 500 may include a packet inspector 545 (e.g., BIG-IP Local Traffic Manager under the trade name F5 Networks or BIG-IP Global Traffic Manager) Tokenize. In the payment process system 500, all packets (e.g., TCP / IP packets) from the input module 540 pass through the packet inspector 545 before being forwarded to the application module 550. The packet inspector 545 corrects the contents of a certain packet before delivering them. This will be described in more detail later.

패킷 인스펙터(545)는 토큰화되지 않은 거래를 포함하는 패킷을 입력 모듈(540)로부터 수신하고, 암호화되지 않은 형식의 지불 카드 번호를 찾기위하여 모든 들어오는 패킷을 검사하며, 지불 카드 번호가 어플리케이션 모듈(550)에 전달되기 전에 지불 카드 번호를 토큰화한다. 패킷 인스펙터(545)은, 암호화되지 않은 형식의 지불 카드 번호를 토크나이저(520)에 송신함으로써, 지불 카드 번호를 토큰화한다. 토크나이저(520)는 토큰 데이터베이스(522) 내에 지불 카드 번호를 암호화하여 저장하고, 카드 번호에 대응하는 토큰을 패킷 인스펙터(545)에 리턴한다. 패킷 인스펙터(545)는 패킷 인스펙터(545)를 통과하는 패킷 내에서 발견된 암호화되지 않은 형식의 지불 카드 번호를, 이들이 어플리케이션 모듈(550)에 송신되기 전에, 토큰으로 대체한다. 따라서, 어플리케이션 모듈(550)로 송신된, 거래를 포함하는 패킷은 토큰화된 거래만을 가진다. The packet inspector 545 receives a packet containing the non-tokenized transaction from the input module 540, checks all incoming packets to look for a payment card number in an unencrypted form, 550). &Lt; / RTI &gt; The packet inspector 545 tokenizes the payment card number by transmitting to the tokenizer 520 the payment card number in an unencrypted format. The tokenizer 520 encrypts and stores the payment card number in the token database 522, and returns the token corresponding to the card number to the packet inspector 545. The packet inspector 545 replaces the un-encrypted type of payment card number found in the packet passing through the packet inspector 545 with a token before they are transmitted to the application module 550. Thus, packets containing transactions, sent to the application module 550, have only tokenized transactions.

도 6을 참조하여, 패킷 인스펙터(545)를 위한 알고리즘(600)의 일 예를 설명한다. 알고리즘(600)은 패킷 인스펙터(545)(예를 들어, F5 네트워크사의 BIG-IP 프로덕트 시리즈에서 사용되는 TCL(tool command language))에서 실행되는 스크립트에서 실현될 수 있다. 이 스크립트는 패킷 인스펙터(545)를 통과하는 모든 트래픽(traffic)에 접근할 수 있어, 패킷 인스펙터(545)를 통과하는 모든 데이터를 검사하고 변경할 수 있다. 6, an example of an algorithm 600 for the packet inspector 545 will be described. The algorithm 600 may be implemented in a script executed in the packet inspector 545 (e.g., tool command language (TCL) used in the BIG-IP product series of F5 Networks, Inc.). This script can access all traffic passing through the packet inspector 545 and can examine and change all data passing through the packet inspector 545. [

단계(601)에서, 스크립트가 개시된다. 이어서, 단계(602)에서, 패킷 인스펙터(545)에 도달한 패킷이 수신된다. 이어서, 단계(603)에서, 스크립트는 패킷이 유래된 인용 페이지가 '목표' 웹 페이지인지를 판단하기 위하여 패킷을 검사한다. 목표 웹 페이지는 고객 서비스 담당자로부터 지불 카드 번호를 요청한다고 알려졌거나 예상되는 웹 페이지이다. 이는 HTTP 헤더 내의 리퍼러 필드(referer field)(패킷이 유래된 웹 페이지)를 알려진 목표 웹 페이지와 비교하는 것에 의해 수행된다. 단계(603)에서 패킷이 목표 웹 페이지로부터 오지 않은 것으로 판단되면, 스크립트는 다음 패킷을 수신하기 위하여 단계(602)로 돌아간다. 단계(603)에서, 패킷이 목표 웹 페이지로부터 온 것으로 판단되면, 스크립트는 단계(604)를 진행한다. In step 601, a script is started. Then, at step 602, a packet arriving at the packet inspector 545 is received. Then, at step 603, the script checks the packet to determine if the quote page from which the packet originated is a &quot; target &quot; web page. The target web page is a web page that is known or expected to request a payment card number from a customer service representative. This is done by comparing the referer field in the HTTP header (the web page from which the packet originated) with a known target web page. If it is determined in step 603 that the packet did not come from the target web page, the script returns to step 602 to receive the next packet. In step 603, if it is determined that the packet comes from the target web page, the script proceeds to step 604.

단계(604)에서, CCNUM으로 명명된 필드가 존재하는지(또는 암호화되지 않은 형식의 지불 카드 번호를 가지는 필드가 존재하는 다른 표준(criteria)를 사용하는지) 판단하기 위하여 스크립트는 패킷을 검사한다. 그 필드가 존재하는 것은 지불 카드 번호를 가지는 적어도 하나의 패킷을 포함한다는 것을 의미한다. 단계(604)에서, 패킷이 암호화되지 않은 지불 카드 번호를 가지는 필드를 가지지 않는 것으로 판단되면, 스크립트는 다음 패킷을 수신하기 위하여 단계(602)로 돌아간다. 단계(604)에서 패킷이 암호화되지 않은 지불 카드 번호를 가지는 필드를 가지지 것으로 판단되면, 스크립트는 단계(605)를 진행한다. At step 604, the script checks the packet to determine if a field named CCNUM exists (or uses another criteria in which there is a field with an unencrypted form of payment card number). The presence of that field means that it contains at least one packet with a payment card number. At step 604, if it is determined that the packet does not have a field with an unencrypted payment card number, the script returns to step 602 to receive the next packet. If it is determined in step 604 that the packet has a field with an unencrypted payment card number, the script proceeds to step 605. [

단계(605)에서, 스크립트는 패킷의 필드로부터 암호화되지 않은 형식의 지불 카드 번호를 읽는다. 이어서, 단계(606)에서, 지불 카드 번호가 유효한 카드 번호(예를 들어, Luhn check(Mod 10 check로도 불림))인지 판단한다. 단계(606)에서 카드 번호가 유효하지 않다고 판단되면, 토큰화가 필요한 실제적인 카드 넘버가 없으므로, 스크립트는 다음 패킷을 수신하기 위하여 단계(602)로 돌아간다. 단계(606)에서, 카드 번호가 유효하다고 판단되면, 다음으로 단계(607)에서 HTTPS를 이용한 암호화된 소켓을 통하여 지불 카드 번호를 포함하는 토큰화 요청이 (지불 카드 번호에 대응하는 토큰을 리턴하는) 토크나이저(520)로 송신된다. At step 605, the script reads the payment card number in an unencrypted format from the field of the packet. Then, in step 606, it is determined whether the payment card number is a valid card number (for example, Luhn check (also called Mod 10 check)). If it is determined at step 606 that the card number is not valid, the script returns to step 602 to receive the next packet, since there is no actual card number for which tokenization is required. If it is determined in step 606 that the card number is valid, then in step 607, a tokenizing request that includes the payment card number via the encrypted socket using HTTPS returns a token corresponding to the payment card number To-talker 520. &lt; / RTI &gt;

이어서, 단계(608)에서, 토큰이 토크나이저(520)로부터 수신된다. 이어서, 단계(609)에서, 스크립트는 패킷의 필드에서 암호화되지 않은 형식의 지불 카드 번호를 삭제하고, 이를 수신된 토큰으로 대체한다. Then, at step 608, a token is received from the tokenizer 520. Then, at step 609, the script deletes the un-encrypted payment card number in the field of the packet and replaces it with the received token.

이어서, 단계(610)에서, 패킷 내에 추가적인 지불 카드 번호가 있는지 판단한다. 이 경우, 스크립트는 패킷 내에서 발견된 다음 지불 카드 번호를 프로세스하기 위하여 단계(605)로 돌아간다. 그렇지 않으면, 스크립트는 단계(611)를 진행한다. Then, in step 610, it is determined if there is an additional payment card number in the packet. In this case, the script returns to step 605 to process the next payment card number found in the packet. Otherwise, the script proceeds to step 611.

단계(611)에서, 암호화되지 않은 형식의 지불 카드 번호를 대체한 토큰을 가지는, 수정된 패킷은 어플리케이션 모듈(150)로 송신된다. 이어서, 스크립트는 단계(602)로 돌아간다. In step 611, the modified packet having the token that replaces the payment card number in the unencrypted form is transmitted to the application module 150. [ The script then returns to step 602.

좀더 상세한 설명은, 도 6의 알고리즘(600)의 실현을 위한 TCL 프로그램 코드의 일례를 보여주는 도 9a 내지 도 9c에 제시하였다. A more detailed description is given in Figs. 9A-9C showing an example of TCL program code for the realization of the algorithm 600 of Fig.

<대체 가능한 실시예들 및 변형예들>&Lt; Alternative Embodiments and Modifications >

본 발명의 본질적인 부분을 설명하기 위하여, 본 기술 분야에서 통상의 지식을 가진 자가 본 발명의 범위를 벗어나지 않는 범위 내에서 상술한 설명 및 도면에 나타난 구성의 세부 사항, 물질, 배치 등에 대하여 다양한 변경을 할 수 있음을 알 수 있다. In order to explain essential parts of the present invention, those skilled in the art will be able to make various changes to the details, materials, arrangements and the like of the constitution shown in the above description and drawings without departing from the scope of the present invention It can be seen that

예를 들어, 본 발명의 실시예에 대한 내용은 지불 프로세스 시스템뿐만 아니라 비밀 정보를 사용하는 다른 시스템에 적용될 수 있다. For example, the content of embodiments of the present invention may be applied to other systems that use secret information as well as the payment process system.

따라서, 비록 상술한 실시예들이 지불 카드 번호의 대체물로 토큰을 사용한 지불 프로세스 시스템에 관한 것이지만, 본 발명은 하나 이상의 어플리케이션과 개별적으로 보관되는 다른 정보의 대체물로 토큰을 사용하는 것을 포함하는 것으로 이해하여야 할 것이다. 따라서, 본 발명은 지불 프로세스 시스템 이외에도, 운전 면허 등을 이용하는 나이 확인 시스템, 의료 기록 관리 시스템 등을 포함할 수 있다. 이러한 정보는 지불 카드 번호 및 또 다른 지불 관련 정보(예를 들어, 은행 계좌 번호, 신용 카드 번호, 데빗 카드 번호, 보안 코드, 접근 코드, 비밀 번호)이거나, 다른 신원 확인 정보(성, 이름, 사회 보장 번호, 운전 면허 번호, 국가 또는 학교 발행 식별 번호, 생리학적 정보, 생일 및 장소, 엄마의 결혼 전 성 등)일 수 있다. 그리고 '비밀 정보'란 용어는, 하나 또는 둘 이상의 어플리케이션(컴퓨터 또는 컴퓨터 시스템)과 분리되어 유지되는 경우에는 상술한 모든 다른 정보들을 포함하는 것으로 이해하여야 할 것이다. 또한, "거래"라는 용어는 비밀 정보를 적용하는 모든 거래를 포함하는 것으로 이해하여야 할 것이다. 예를 들어, 비밀 정보는 의료-보험 거래, 나이 확인 거래, 거래 식별용 거래 등일 수 있다. 상기 의료-보험 거래는 환자 보험 회사에 지불하기 위하여 의료 제공자가 사용하는 것 등일 수 있다. 상기 나이 확인 거래는 운전 면허증을 이용하여 주류를 구입하는 고객의 나이를 확인하기 위한 것 등일 수 있다. 거래 식별용 거래는 사회 보장 번호 확인 시스템 등일 수 있다. Thus, although the embodiments described above are directed to a payment processing system using tokens as a replacement for payment card numbers, it should be understood that the present invention includes the use of tokens as alternatives to other information stored separately from one or more applications something to do. Accordingly, the present invention may include an age verification system using a driver's license, a medical record management system, etc., in addition to the payment process system. Such information may include payment card number and other payment related information (e.g., bank account number, credit card number, debit card number, security code, access code, password) or other identification information A driver's license number, a national or school-issued identification number, physiological information, a date and place of birth, mother's marital status, etc.). And the term " confidential information &quot; should be understood to include all the other information described above if it is kept separate from one or more applications (computer or computer system). It should also be understood that the term "transaction" includes all transactions that apply secret information. For example, the confidential information may be medical-insurance transactions, age verification transactions, transaction identification transactions, and the like. The medical-insurance transaction may be used by the healthcare provider to pay the patient insurance company, and so on. The age confirmation transaction may be for checking the age of a customer who purchases a liquor using a driver's license, and the like. Transactions for transaction identification may be a social security number identification system or the like.

통상적으로, 비밀 정보를 나타내는 데이터를 보호하기 위하여 암호화가 사용되면, 암호화된 문자열 또는 숫자는 원래 비밀 정보를 지칭하는 데이터보다 큰 값을 가진다. ERP 어플리케이션이 기설정된 포맷을 가지는 사회 보장 번호와 같은 데이터의 크기 및/또는 타입을 소정의 포맷으로 제한할 경우에는, 암호화된 프로세스가 할당된 필드보다 큰 값을 가지게 된다. 이에 의하여, 암호화된 값을 원래 필드에 재도입(re-introduce)하는 것이 어렵거나 불가능해진다. 그러나, 본 발명의 실시예의 토크나이저는 비밀 정보의 대체물로 기설정된 포맷을 가지는 토큰을 사용한다. 즉, 기설정된 길이 또는 타입을 가지는 토큰이 생성될 수 있다. Typically, if encryption is used to protect data representing secret information, the encrypted string or number has a value that is larger than the data that originally referred to the secret information. When the ERP application restricts the size and / or type of data such as a social security number having a predetermined format to a predetermined format, the encrypted process has a larger value than the assigned field. This makes it difficult or impossible to re-introduce the encrypted value into the original field. However, the tokenizer of the embodiment of the present invention uses a token having a predetermined format as a substitute for secret information. That is, tokens having a predetermined length or type may be generated.

예를 들어, 토큰화된 비밀 정보가 9개의 숫자로 이루어진 사회 보장 번호라면, 9개의 숫자를 가지는 랜덤 토큰이 실제 사회 보장 번호를 대신하여 생성될 수 있다. 따라서, 토큰이 원래 사회 보정 번호 필드 내에서 사용될 수 있다. 따라서, 본 발명의 실시예에서 토큰은 기설정되고 일정 포맷을 가지는 값을 가질 수 있어, 규제 감사가 필요한 종래의 소프트웨어 어플리케이션을 대체할 수 있다.For example, if the tokenized secret information is a nine-digit social security number, a random token with nine digits may be generated in place of the actual social security number. Thus, the token can be used within the original social correction number field. Thus, in an embodiment of the present invention, the token can have a predefined and constant formatted value, replacing conventional software applications that require regulatory auditing.

여기서, '랜덤'이라는 용어는, 완전한 랜덤 선택 또는 완전한 랜덤 문자 및/또는 숫자의 생성 뿐만 아니라, 의사 랜덤하게 생성되는(pseudo-randomly-generated) 영숫자 문자열을 포함하는 것으로 이해되어야 한다. 상기 의사 랜덤 생성은, 시드-기반(seed-based) 선택 또는 시드 기반 문자 및/또는 숫자의 생성과, 완전한 랜덤은 아니더라도 랜덤처럼 보이게 만들 수 있는 또 다른 선택 또는 문자 및/또는 숫자의 생성을 포함한다. 해싱 함수(hashing function)가 본 발명의 실시예에서 사용될 수 있다. 이러한 해싱 함수는 비밀 정보 그 자체에 기초하지 않는다면, 랜덤한 숫자, 랜덤하지 않은 숫자, 랜덤한 숫자와 랜덤하지 않은 숫자의 결합에 기초할 수 있다. '랜덤'이라는 용어는 (비밀 정보와 어떠한 알고리즘 관계를 가지지 않는다면) 랜덤하지 않은 영숫자 시퀀스를 포함하는 것으로 이해되어야 한다. Here, the term &quot; random &quot; should be understood to include pseudo-randomly-generated alphanumeric strings, as well as complete random selection or complete random character and / or number generation. The pseudo-random generation may include seed-based selection or generation of seed-based characters and / or numbers, and generation of another selection or character and / or number that may make it appear random, do. A hashing function may be used in embodiments of the present invention. Such a hashing function may be based on a combination of a random number, a non-random number, a random number and a non-random number, if not based on the secret information itself. The term &quot; random &quot; should be understood to include an alphanumeric sequence that is not random (unless it has an algorithmic relationship with secret information).

여기서, "패킷 인스펙터"라는 용어는, 패킷 데이터를 수신하고, 그 내용을 검사하고, 그 내용을 선택적으로 수정하고, 다른 프로세싱을 위하여 이 패킷을 다른 하드웨어 및/또는 소프트웨어 시스템으로 전달하기 위하여 사용되는 하드웨어 및/또는 소프트웨어를 지칭한다. 일 실시예에서, 패킷 인스펙터는 순전히 소프트웨어 내에서 구현된다. 그리고 패킷 인스팩터는 범용 컴퓨터(예를 들어, 입력 모듈(540)과 같은 컴퓨터) 또는 다른 컴퓨팅 장치 내에 남을 수 있다. 다른 실시예에서, 패킷 인스펙터는 개별적인 전용 하드웨어 패킷 인스펙션 장치일 수 있다. 본 발명의 실시예에 사용된 패킷 인스펙터는 로드-균형(load-balancing) 또는 시스템 대체 작동 보호(fail-over protection)과 같은 다른 기능을 포함할 수도 있다. Here, the term "packet inspector" is used to receive packet data, examine its contents, selectively modify its contents, and forward this packet to other hardware and / or software systems for further processing Hardware and / or software. In one embodiment, the packet inspector is implemented entirely in software. And the packet inspector may remain within a general purpose computer (e.g., a computer such as input module 540) or other computing device. In another embodiment, the packet inspector may be a separate dedicated hardware packet inspection device. The packet inspector used in embodiments of the present invention may include other functions such as load-balancing or system fail-over protection.

여기서 사용된 '모듈'이라는 용어는 주문형 반도체(application-specific integrated circuit, ASIC), 전기 회로, 하나 이상의 소프트웨어 또는 펌웨어 프로그램을 실행하는 (공유, 전용 또는 그룹) 프로세서, 조합 논리 회로(combinational logic circuit), 및/또는 상술한 기능을 제공하는 다른 적절한 구성을 포함할 수 있다. The term &quot; module &quot;, as used herein, refers to an application-specific integrated circuit (ASIC), an electrical circuit, a processor (shared, dedicated or grouped) executing one or more software or firmware programs, a combinational logic circuit , And / or other suitable configurations for providing the functions described above.

본 발명은 방법 또는 이 방법을 실행하는 장치의 형태로 구현될 수 있다. 또한, 본 발명은 감각형 미디어(tangible media), 또는 비일시적으로 기계로 읽을 수 있는 저장 장치(non-transitory machine-readable storage medium) 내에 구현된 프로그램 코드의 형태로 구현될 수 있다. 상기 감각형 미디어는, 자기 기록 미디어, 광학 기록 미디어, 고체 상태 메모리(solid state memory), 플로피 디스켓, CD-ROM, 하드 드라이브 등일 수 있다. 상기 프로그램 코드가 컴퓨터와 같은 장치 내로 로딩되어 실행될 때, 상기 컴퓨터와 같은 장치는 본 발명의 실시예를 실행하는 장치가 될 수 있다. 본 발명은, 예를 들어, 컴퓨터와 같은 장치 내로 로딩되어 실행될 수 있는, 비일시적으로 기계로 읽을 수 있는 저장 장치 내에 저장된 프로그램 코드의 형태로 구현될 수 있다. 상기 컴퓨터와 같은 장치는 본 발명의 실시예를 실행하는 장치가 될 수 있다. 범용 컴퓨터에서 구현될 때, 특정한 논리 회로를 비슷하게 구현하는 고유 장치(unique device)를 제공하기 위하여, 상기 프로그램 코드 세그먼트는 프로세서와 결합한다. The invention may be embodied in the form of a method or apparatus for carrying out the method. The present invention may also be embodied in the form of program code embodied in tangible media or non-transitory machine-readable storage media. The tangential media may be magnetic recording media, optical recording media, solid state memory, floppy diskettes, CD-ROMs, hard drives, and the like. When the program code is loaded into and executed by a device such as a computer, the device, such as the computer, may be an apparatus that implements embodiments of the present invention. The present invention may be embodied in the form of program code stored in a non-volatile, machine-readable storage device, which may, for example, be loaded into and executed in a device such as a computer. An apparatus such as the computer can be an apparatus that implements embodiments of the present invention. When implemented in a general purpose computer, the program code segment couples with the processor to provide a unique device that similarly implements a particular logic circuit.

본 발명의 방법 및/또는 장치를 이용하여 생성된 비일시적인 기록 장치(non-transitory recording medium) 내에 저장된 신호 값 시퀀스(sequence) 또는 비트 흐름(bit stream)의 형태로 본 발명이 구현될 수 있다. The present invention may be implemented in the form of a sequence of signal values or a bit stream stored in a non-transitory recording medium created using the method and / or apparatus of the present invention.

통상적인 네트워크 하드웨어 및 소프트웨어를 통하여 네트워크화된, 하나 이상의 범용 컴퓨터, 메인 프레임, 미니 컴퓨터, 통상적인 전기 통신, 메모리 저장 수단 및 저장 장치 상에 저장된, 하나 이상의 분산형 컴퓨터 프로그램 프로세스, 데이터 구조, 사전(dictionary) 및/또는 다른 데이터에 의해 상술한 기능 구성(functional component)이 구현될 수 있다. 그럼에도 본 발명에 다른 타입의 컴퓨터 및 네트워크 자원(network resource)가 사용될 수 있다. 상술한 통상적인 네트워크 하드웨어 및 소프트웨어는, 예를 들어, LAN/WAN 네트워크 백본(backbone) 시스템 및/또는 인터넷일 수 있다. 상술한 범용 컴퓨터는 예를 들어, IBM 호환(IBM-compatible), 애플 매킨토시(Apple Macintosh), 및/또는 RISC 마이크로프로세서 기반 컴퓨터일 수 있다. 상술한 전기 통신은, 예를 들어, 모뎀, T1, 광 섬유 라인, DSL, 위성 및/또는 ISDN 통신일 수 있다. 상술한 메모리 저장 수단은, 예를 들어, RAM, ROM일 수 있다. 상술한 저장 장치는, 예를 들어, 컴퓨터가 읽을 수 있는 메모리, 디스크 어레이(disk array), 직접 접근 저장 장치(direct access storage))일 수 있다. 여기서 설명된 하나 이상의 네트워크는 근거리 통신 네트워크, 광역 통신 네트워크, 인터넷, 인트라넷, 엑스트라넷, 사유 네트워크(proprietary network), 가상 사설 네트워크(virtual private network), TCP/IP 기반 네트워크, 무선 네트워크 (예를 들어, IEEE 802.11 or 블루투스), 이메일 전송자와 수신자의 이메일 기반 네트워크, 모뎀 기반 또는 휴대 전화 네트워크, 전화를 이용하여 사용자에게 접근할 수 있는 양방향 전화 네트워크(interactive telephonic network), 또는 이들의 조합일 수 있다. One or more distributed computer program processes, data structures, dictionary (s) stored on one or more general purpose computers, mainframes, minicomputers, conventional telecommunications, memory storage means and storage devices, networked through conventional network hardware and software dictionary and / or other data may be implemented as described above. Nevertheless, other types of computer and network resources may be used in the present invention. The above-described conventional network hardware and software may be, for example, a LAN / WAN network backbone system and / or the Internet. The above-described general-purpose computer may be, for example, an IBM-compatible, Apple Macintosh, and / or RISC microprocessor-based computer. The above-mentioned telecommunication may be, for example, a modem, T1, fiber optic line, DSL, satellite and / or ISDN communication. The above-mentioned memory storage means may be, for example, a RAM or a ROM. The above-described storage device may be, for example, a computer-readable memory, a disk array, or a direct access storage. One or more of the networks described herein may be implemented within a wide area network such as a local area network, a wide area communication network, the Internet, an intranet, an extranet, a proprietary network, a virtual private network, a TCP / IP based network, , IEEE 802.11 or Bluetooth), an email-based network of email senders and recipients, a modem-based or cellular telephone network, an interactive telephonic network that can be accessed by a user using a telephone, or a combination thereof.

상술한 본 발명의 실시예는 네트워크 거래 서버 시스템에 남아있는 하나 이상의 컴퓨터에 의해 구현된다. 실시간 거래 및/또는 배치 타입(batch-type) 거래에서, 사용자의 데이터 송신 및 수신이 허용되며 다앙한 운영의 무인 실행을 가능하게 하기 위하여, 입출력 접근(input/output access)은 적절한 하드웨어 및 소프트웨어를 포함한다. 적절한 하드웨어 및 소프트웨어로는, 예를 들어, 인터넷 광역 네트워크 통신 하드웨어 및 소프트웨어에 공급된 개인용 컴퓨터 및/또는 메인프레임 컴퓨터일 수 있다. 상기 인터넷 광역 네트워크 통신 하드웨어 및 소프트웨어는, 예를 들어, CQI-기반, FTP, Netscape Navigator(상품명), Mozilla Firefox(상품명), Microsoft Internet Explorer(상품명), or Apple Safari(상품명) HTML 인터넷-브라우저 소프트웨어, 및/또는 실시간 TCP/IP 소켓에 접근하는 직접 실시간(direct real-time) 또는 준 실시간(near-real-time) TCP/IP 인터페이스일 수 있다. 이와 유사하게, 본 발명의 시스템은 하나 이상의 통상적인 브라우저 소프트웨어를 이용하는 통상적인 통신 채널을 통하여 접근 가능한, 원격 인터넷 기반 서버를 포함할 수 있다. 상기 통상적인 브라우저 소프트웨어는, 예를 들어, Netscape Navigator, Mozilla Firefox, Microsoft Internet Explorer, 또는 Apple Safari일 수 있다. 상기 통상적인 통신 채널은 예를 들어, 통상적인 전기 통신, 광대역 통신, 무선 통신일 수 있다. 따라서, 본 발명은 이러한 통신 기능(communication functionality)과 인터넷 브라우징 능력을 적절하게 포함할 수 있다. 더욱이, 본 발명의 서버 시스템의 다양한 구성이 서로 떨어져 있을 수 있고, 상기 기능을 달성하기 위하여 적절한 통신 하드웨어/소프트웨어 및/또는 LAN/WAN 하드웨어 및/또는 소프트웨어를 더 포함할 수 있다. The embodiments of the invention described above are implemented by one or more computers that remain in the network transaction server system. In real-time transactions and / or batch-type transactions, input / output access is performed with appropriate hardware and software to allow user data transmission and reception and enable unattended execution of diverse operations. . Suitable hardware and software may be, for example, a personal computer and / or a mainframe computer supplied to the Internet wide area network communication hardware and software. The Internet broadband network communication hardware and software may include, for example, CQI-based, FTP, Netscape Navigator (trademark), Mozilla Firefox (trade name), Microsoft Internet Explorer (trade name), or Apple Safari , And / or a direct real-time or near-real-time TCP / IP interface that accesses real-time TCP / IP sockets. Similarly, the system of the present invention may include a remote Internet-based server accessible via conventional communication channels using one or more conventional browser software. The conventional browser software may be, for example, Netscape Navigator, Mozilla Firefox, Microsoft Internet Explorer, or Apple Safari. The conventional communication channel may be, for example, conventional telecommunication, broadband communication, or wireless communication. Thus, the present invention may suitably include such communication functionality and Internet browsing capabilities. Moreover, the various configurations of the server system of the present invention may be remote from each other, and may further include appropriate communication hardware / software and / or LAN / WAN hardware and / or software to achieve the functions.

본 발명의 각각의 기능 구성은, 통상적인 네트워크 하드웨어 및 소프트웨어에 의하여 함께 네트워크화되는, 하나 이상의 범용 컴퓨터에서 실행되는 하나 이상의 분산형 컴퓨터-프로그램 프로세스에 의해 구현될 수 있다. 각각의 기능 구성은 네트워크화된 컴퓨터 상에서 분산형 컴퓨터-프로그램 프로세스를 실행하는 것에 의하여 구현될 수 있다. 여기서, 상기 네트워크화된 컴퓨터는, 예를 들어, 메인 프레임, 및/또는 IBM SB2(상품명) 또는 HP 9000(상품명) 대칭적 또는 대량-병렬적(massively-parallel) 컴퓨터 시스템일 수 있다. 이때, 상기 네트워크화된 컴퓨터는, 적절한 대용량 저장 장치(mass storage) 및 상술한 기능을 수행하기 위한 기능 구성을 허용하는 다른 하드웨어/소프트웨어를 가질 수 있다. 분산형 컴퓨터-프로그램 프로세스는, 예를 들어, IBM DB2(상품명), Microsoft SQL Server(상품명), Sybase SQL Server(상품명), 또는 Oracle 10g(상품명) 데이터베이스, 및/또는 이 데이터베이스에 링크되는 JDBC 인터페이스와 같이, "풀-스케일(full-scale)" 관계형 데이터베이스 엔진을 사용하여 생성될 수 있다. 이러한 컴퓨터 시스템들은 지리학적으로 분산되고, 적절한 광역 또는 근거리 네트워크 하드웨어 및 소프트웨어에 의하여 연결될 수 있다. 일 실시예에서, 토큰 데이터 베이스 내에 저장된 데이터 또는 다른 프로그램 데이터는, 분석 및 보고 목적의 표준 SQL 쿼리(standard SQL queries)를 통하여 사용자에게 접근할 수 있다. Each functional configuration of the present invention may be implemented by one or more distributed computer-program processes running on one or more general purpose computers that are networked together by conventional network hardware and software. Each functional configuration may be implemented by executing a distributed computer-program process on a networked computer. Here, the networked computer may be, for example, a mainframe, and / or a symmetric or massively-parallel computer system, such as IBM SB2 (trade name) or HP 9000 (trade name). At this time, the networked computer may have an appropriate mass storage and other hardware / software that allows a functional configuration to perform the above-mentioned functions. The distributed computer-program process may be implemented using any of a variety of methods, including, for example, IBM DB2 (trade name), Microsoft SQL Server (trade name), Sybase SQL Server (trade name), or Oracle 10g Quot; full-scale "relational database engine, such as &lt; / RTI &gt; These computer systems may be geographically dispersed and connected by appropriate wide area or local area network hardware and software. In one embodiment, data stored in the token database or other program data may be accessed by the user through standard SQL queries for analysis and reporting purposes.

본 발명의 실시예의 기본 구성은 서버 기반일 수 있고, 이는 Microsoft Windows NT/2000 또는 유닉스(UNIX)와 같은 운영 시스템을 보조하는 하드웨어 내에 남을 수 있다. The basic configuration of an embodiment of the present invention may be server based, which may remain in hardware supporting an operating system such as Microsoft Windows NT / 2000 or UNIX.

본 발명에 부합하는 시스템의 구성은 모바일(mobile) 및 모바일이 아닌(non-mobile) 장치일 수 있다. 본 발명에 적용될 수 있는 모바일 장치는, 무선 또는 휴대용 전화기, 일방향 또는 양방향 페이징 및 메세징(paging and messaging) 장치, 랩탑 컴퓨터 등과 함께, 개인 휴대 전화 단말기(personal digital assistant, PDA) 스타일 컴퓨터 및 다른 컴퓨터를 포함한다. 상기 무선 또는 휴대용 전화기는 GSM 전화, 2ME 및 WAP-가능한 전화, 인터넷 가능 전화 및 데이터 겸용 스마트 폰 일 수 있다. 상기 PDA 스타일 컴퓨터는, 예를 들어, 캘리포니아 쿠페르티노(Cupertino)의 애플 컴퓨터사 또는 캘리포니아 산타클라라의 팜사(Palm, Inc)에서 제조된 PDA 스타일 컴퓨터일 수 있다. 상기 다른 컴퓨터는, 안드로이드(Android), 심비안(Symbian), 림 블랙베리(RIM Blackberry), 팜 웹 OS(Palm web OS), 또는 아이폰(iPhone) 운영 시스템을 실행하는 컴퓨터, Windows CE(상품명)의 핸드헬드(handheld) 컴퓨터, 또는 다른 핸드헬드 컴퓨터(무선 모뎀을 포함할 수 있음)일 수 있다. 본 발명의 실시예에 부합하는 시스템에 사용 가능한 서비스 채널에 사용되는 다른 전화 네트워크 기술은, 2.5 G 셀룰라 네트워크 기술(GPRS 및 EDGE 등), 3 G 기술 (CDMA1.times.RTT 및 WCDMA2000), 및 4 G 기술이다. 모바일 장치가 본 발명에 사용되더라도, 본 발명의 실시예에 의해 모바일이 아닌 통신 장치가 고려될 수 있다. 모바일이 아닌 통신 장치는 개인용 컴퓨터, 인터넷 장치, 셋톱 박스, 유선 전화 등이다. 또한, 고객은 Apple Macintosh, Microsoft Windows 95/98/NT/ME/CE/2000/XP/Vista/7을 지원하는 개인용 컴퓨터, UNIX Motif 워크스테이션 플랫폼, 또는 TCP/IP 또는 다른 네트워크 기반의 상호 작용이 가능한 다른 컴퓨터를 가질 수 있다. 실시예에서 웹 브라우저가 아닌 다른 소프트웨어는 고객 플랫폼이 요구되지 않는다. The configuration of the system according to the present invention may be a mobile and a non-mobile device. A mobile device that may be applied to the present invention may include a personal digital assistant (PDA) style computer and other computers in conjunction with a wireless or portable telephone, one-way or two-way paging and messaging device, . The wireless or portable telephone may be a GSM telephone, a 2ME and WAP-enabled telephone, an Internet enabled telephone and a data-smart phone. The PDA style computer may be, for example, a PDA style computer manufactured by Apple Computer Corporation of Cupertino, California, or Palm, Inc of Santa Clara, California. The other computer may be a computer running an Android, a Symbian, a RIM Blackberry, a Palm web OS, or an iPhone operating system, a Windows CE (trade name) A handheld computer, or other handheld computer (which may include a wireless modem). Other telephone network technologies used in the service channels available for the system according to embodiments of the present invention include 2.5 G cellular network technology (such as GPRS and EDGE), 3G technology (CDMA1.times.RTT and WCDMA2000), and 4 G technology. Although a mobile device is used in the present invention, a non-mobile communication device may be considered by embodiments of the present invention. Non-mobile communication devices are personal computers, Internet devices, set-top boxes, landline phones, and the like. In addition, customers will be able to interact with personal computers running Apple Macintosh, Microsoft Windows 95/98 / NT / ME / CE / 2000 / XP / Vista / 7, UNIX Motif workstation platforms, or TCP / You can have another computer available. In an embodiment, software other than a web browser does not require a customer platform.

선택적으로, 상기 기능 구성은, IBM-타입, Intel Pentium(상품명), RISC 마이크로프로세서-기반 개인용 컴퓨터에서 실행되는 개별적인 컴퓨터 프로세스가 복수로 수행되어 구현될 수 있다. 개별적인 컴퓨터 프로세스는, 예를 들어, dBase(상품명), Xbase(상품명), MS Access(상품명) 또는 다른 "단층 파일(flat file)" 타입 데이터베이스 관리 시스템 또는 상품을 통해 생성될 수 있다. 상기 개인용 컴퓨터는 통상적인 네트워크 하드웨어 및 스프트웨어에 의해 네트워크화되고, 상기 기능 구성이 기능을 달성하는데 필요한 다른 별도의 하드웨어 및 소프트웨어를 포함할 수 있다. 이러한 선택적인 구성에서, 개인용 컴퓨터가 일반적으로 상술한 타입의 풀-스케일 관계형 데이터베이스 엔진을 실행할 수 없기 때문에, 본 발명의 시스템에 의해 저장된 데이터의 적어도 일부를 나타내기 위하여, 비관계형(non-relational) 단층 파일 "테이블" (도시하지 않음)이 네트워크화된 적어도 하나의 개인용 컴퓨터 내에 포함될 수 있다. 이러한 개인용 컴퓨터는 Unix, Microsoft Windows NT/2000(상품명), 또는 Windows 95/98/NT/ME/CE/2000/XP/Vista/7(상품명) 운영 시스템을 실행할 수 있다. 전술한 시스템의 기능 구성은 상술한 두 가지 구성의 조합을 포함할 수 있다. 예를 들어, 개인용 컴퓨터, RISC 시스템, 메인 프레임, 대칭적 또는 병렬적 컴퓨터 시스템 및/또는 적절한 광역 및 근거리 네트워크 하드웨어 및 소프트웨어를 통하여 함께 네트워크화된 적절한 하드웨어 및 소프트웨어의 조합에서 실행되는 컴퓨터 프로그램 프로세스에 의하여 기능 구성을 구현할 수 있다. Optionally, the functional configuration may be implemented by a plurality of individual computer processes running on an IBM-type, Intel Pentium (trade name), RISC microprocessor-based personal computer. The individual computer processes may be generated through, for example, dBase (product name), Xbase (trade name), MS Access (trade name) or other "flat file" type database management system or product. The personal computer may be networked by conventional network hardware and software, and the functional configuration may include other separate hardware and software needed to accomplish the function. In this optional configuration, a non-relational database is used to represent at least a portion of the data stored by the system of the present invention, because the personal computer is not generally capable of executing a full-scale relational database engine of the type described above. A single layer file "table" (not shown) may be included in the networked at least one personal computer. These personal computers can run Unix, Microsoft Windows NT / 2000 (trade name), or Windows 95/98 / NT / ME / CE / 2000 / XP / Vista / 7 (trade name) operating systems. The functional configuration of the above-described system may include a combination of the above two configurations. For example, by a computer program process running on a personal computer, a RISC system, a mainframe, a symmetric or parallel computer system, and / or a combination of appropriate hardware and software networked together through appropriate wide area and near- A functional configuration can be implemented.

또한, 본 발명의 시스템은 멀티-데이터베이스 또는 멀티-컴퓨터 시스템을 포함하는 더 큰 컴퓨터화된 금융 거래 시스템이거나, '웨어하우스(warehouse)' 일 수 있다. 전체적인 정보 관리, 프로세싱, 저장, 검색(search), 특별한 록 박스(lock box) 서비스 제공자를 위한 통계적 및 검색적 솔루션(solution), e-지불 웨어하우스, 청구서 작성자 조직(biller organization), 금융 기관, 지불 시스템, 상업 은행을 달성하고, 및/또는 이러한 시스템의 협력 또는 네트워크를 위하여, 본 발명의 구성들과 함께 다른 데이터 타입, 프로세싱 시스템 및/또는 저장 방법 등을 사용할 수 있다. 상기 프로세싱 시스템은, 예를 들어, 거래, 재정, 관리, 통계, 데이터 추출 및 감사(audit), 데이터 전송/수신 및/또는 회계 지원 및 서비스 시스템일 수 있다. Further, the system of the present invention may be a larger computerized financial transaction system, including a multi-database or multi-computer system, or a 'warehouse'. Statistical and search solutions for the entire information management, processing, storage, search, special lockbox service providers, e-payment warehouse, biller organization, financial institution, Processing systems and / or storage methods, etc., in addition to the configurations of the present invention, for example, to achieve payment systems, commercial banks, and / or for cooperation or networking of such systems. The processing system may be, for example, a transaction, financial, management, statistics, data extraction and audit, data transmission / reception and / or accounting support and service system.

일 실시예에서, 원시 코드(source code)는 관계형 데이터베이스(relational database)를 사용하는 객체 지향 프로그램 언어(object-oriented programing language)에 기입될 수 있다. 이러한 실시예는 C++와 같은 프로그래밍 언어 및 Microsoft's Net(상품명) 프레임워크과 같은 툴셋(toolset)을 포함할 수 있다. 본 발명의 시스템에 사용될 수 있는 다른 프로그램 언어는, 자바(Java), HTML, 펄(Perl), 유닉스 셸 스크립팅(UNIX shell scripting), 어셈블리 언어(assembly language), 포트란(Fortran), 파스칼(Pascal), 비쥬얼 베이직(Visual Basic), 및 퀵베이직(QuickBasic)을 포함한다. 본 발명은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합에 의하여 구현된다. In one embodiment, the source code may be written into an object-oriented programming language using a relational database. Such an embodiment may include a programming language such as C ++ and a toolset such as Microsoft's Net (trade name) framework. Other programming languages that may be used in the system of the present invention include Java, HTML, Perl, UNIX shell scripting, assembly language, Fortran, Pascal, , Visual Basic, and QuickBasic. The present invention is implemented by hardware, software, or a combination of hardware and software.

따라서, 여기서 "컴퓨터"라는 용어는, 프로세서와 이 프로세서를 제어하는 적절한 지시를 가지는, 적어도 하나의 기계를 포함하는 하드웨어와 소프트웨어의 조합 부품을 의미한다. "컴퓨터"라는 용어는 하나 이상의 컴퓨터 장치(예를 들어 멀티 개인용 컴퓨터), 또는 하나 이상의 다른 장치(라우터(router), 허브(hub), 패킷 인스펙션 장치(packet-inspection appliance), 방화벽(firewall) 등)와 결합된 하나 이상의 개인용 컴퓨터를 지칭할 수 있다. Thus, the term "computer" as used herein refers to a combination of hardware and software, including at least one machine having a processor and appropriate instructions to control the processor. The term "computer" is used herein to refer to one or more computer devices (e.g., multi-personal computers), or one or more other devices (such as routers, hubs, packet-inspection appliances, firewalls, etc.) Quot;). &Lt; / RTI &gt;

본 발명에 부합하는 시스템은, 지불에서의 선택권(option)을 제공하기 위하여 이미 구현된 지불 네트워크, 예를 들어, ACH와 상호 작용할 수 있다. 선택권은, 예를 들어, ACH, 신용 카드 지불, 조달 카드(procurement card) 지불, 및/또는 종이 보관증일 수 있다. 그리고 이들은 내부적으로 생성되거나, 외부 소프트웨어 모듈에 의하여 생성될 수 있다. 여기서, 출력 파일은 상기 외부 모듈에 의해 읽힐 수 있는 포맷으로 생성될 수 있다. 인터넷 또는 다른 수단에 의하여 처리된, 신용 카드 또는 조달 카드를 이용한 지불 시스템 사용자에 의한 지불은 유효(effected)할 수 있다. 이 경우 추가적인 보안 수준이 포함될 수 있고, 이러한 기능을 처리할 수 있는 적절한 지불 카드 프로세스 기능이 더 포함될 수 있다. 상기 보안 수준은, 일례로, 신용 카드 또는 데빗 카드 지불이 되도록, 신용 카드 또는 데빗 카드 지불을 승인하는 것일 수 있다. A system consistent with the present invention may interact with a payment network, e.g., an ACH, that has already been implemented to provide options in payment. The options may be, for example, ACH, credit card payment, procurement card payment, and / or paper storage. And they may be generated internally or generated by an external software module. Here, the output file can be generated in a format that can be read by the external module. Payment by a payment system user using a credit card or procurement card, processed by the Internet or other means, may be effected. In this case, an additional level of security may be included and may further include appropriate payment card process capability to handle such functionality. The security level may be, for example, to authorize a credit card or debit card payment to be a credit card or debit card payment.

본 발명의 범위를 벗어나지 않는 범위 내에서, 하나 이상의 기능 구성이 선택적으로 고객, 전용 전자 하드웨어 및/또는 소프트웨어에서 떨어져 있는 것으로 이해될 수 있다. 따라서, 본 발명은 이러한 다양한 변형물, 수정물, 동등물을 포함한다. It is to be understood that within the scope of the present invention, one or more functional configurations may optionally be separated from the customer, dedicated electronic hardware and / or software. Accordingly, the present invention encompasses such various modifications, modifications, and equivalents.

명백하게 달리 기재되어 있지 않다면, 숫자 또는 범위는 '약' 또는 '대략'이 선행하는 것처럼 대략적으로 이해되어야 할 것이다. Unless otherwise expressly stated, the numbers or ranges should be understood roughly as if preceded by "approximately" or "approximately".

방법의 일례에서 단계는 설명한 특정한 순서에 따라 수행되는 것으로 한정되는 것은 아니다. 방법에서 단계의 순서를 단순히 일례로 이해될 수 있다. 이와 유사하게, 본 발명의 다양한 실시예에 부합된다면, 이러한 방법에 추가적인 단계가 더 포함될 수 있으며, 특정한 단계가 생략되거나 결합될 수 있다. Steps in one example of a method are not limited to being performed in the specific order described. The order of the steps in the method can be understood simply as an example. Similarly, additional steps may be included in the method if the various embodiments of the present invention are met, and certain steps may be omitted or combined.

다음의 방법 청구항에서 각 구성들이 라벨을 붙여서 특별한 순서로 기재되어 있다고 하더라도, 이러한 구성들이 그 특별한 순서로 수행되는 것으로 한정되는 것은 아니다.In the following method claims, even though each configuration is labeled in a particular order by a claim, such configurations are not limited to being performed in that particular order.

'일 실시예'라는 용어는, 본 발명의 적어도 하나의 실시예에 포함될 수 있는 실시예에 관련된 특별한 기술적 특징, 구조 또는 특징을 의미한다. 명세서 내에서 자주 기재된 '일 실시예' 라는 용어는 같은 실시예를 지칭하는 것이 요구되지 않으며, 개별적이거나 선택적인 실시예들은 서로 다른 실시예들을 배제하는 것도 아니다.The term "one embodiment" means a particular technical feature, structure, or characteristic associated with an embodiment that may be included in at least one embodiment of the invention. The term &quot; one embodiment &quot; frequently referred to in the specification is not required to refer to the same embodiment, and the separate or alternative embodiments do not exclude different embodiments.

Claims (23)

제1 컴퓨터와, 상기 제1 컴퓨터와 통신하는 제2 컴퓨터 사이에서 비밀 정보가 전송되는 것을 방지하는 제1 컴퓨터 구현 방법에 있어서,
(a) 상기 제1 컴퓨터가, 사용자에 의하여 수동으로 입력된 비밀 정보를 포함하는 거래(transaction) 수행용 정보를 수신하는 단계;
(b) 상기 제1 컴퓨터가 상기 비밀 정보를 상기 제3 컴퓨터에 송신하는 단계;
(c) 상기 제1 컴퓨터가 상기 비밀 정보와 알고리즘 관계(algorithmic relationship)가 없는 토큰(token)을 상기 제3 컴퓨터로부터 수신하는 단계; 및
(d) 상기 제1 컴퓨터가 상기 제2 컴퓨터에 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신하는 단계; 를 포함하는 제1 컴퓨터 구현 방법.
A first computer implemented method for preventing secret information from being transmitted between a first computer and a second computer communicating with the first computer,
(a) receiving, by the first computer, transaction execution information including secret information manually input by a user;
(b) the first computer sending the secret information to the third computer;
(c) the first computer receiving a token from the third computer that has no algorithmic relationship with the secret information; And
(d) transmitting, by the first computer, the transaction-performing information excluding the secret information to the second computer; / RTI &gt;
제1항에 있어서,
상기 제1 컴퓨터는, 상기 제2 컴퓨터와 인터페이스(interface)하는 제1 소프트웨어 프로그램과, 상기 제1 소프트웨어 프로그램과 다른 제2 소프트웨어 프로그램을 포함하고,
상기 제2 소프트웨어 프로그램은 상기 제2 컴퓨터가 아닌 상기 제3 컴퓨터와 인터페이스하는 제1 컴퓨터 구현 방법.
The method according to claim 1,
Wherein the first computer includes a first software program that interfaces with the second computer and a second software program that is different from the first software program,
Wherein the second software program interfaces with the third computer rather than the second computer.
제2항에 있어서,
상기 (a) 단계는, (a1) 상기 제1 소프트웨어 프로그램이 상기 비밀 정보를 제외한 거래 수행용 정보를 수신하는 단계; 및 (a2) 상기 제2 소프트웨어 프로그램이 상기 사용자에 의해 수동으로 입력된 상기 비밀 정보를 수신하는 단계를 포함하고,
상기 (b) 단계는, 상기 제2 소프트웨어 프로그램이 상기 비밀 정보를 상기 제3 컴퓨터에 송신하는 단계를 포함하며,
상기 (c) 단계는, 상기 제2 소프트웨어 프로그램이 상기 제3 컴퓨터로부터 상기 토큰을 수신하는 단계를 포함하고,
상기 (d) 단계는, 상기 제1 소프트웨어 프로그램이 상기 제2 컴퓨터에 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신하는 단계
를 포함하는 제1 컴퓨터 구현 방법.
3. The method of claim 2,
Wherein the step (a) comprises the steps of: (a1) receiving the transaction execution information except for the secret information, by the first software program; And (a2) receiving, by the second software program, the secret information manually input by the user,
Wherein the step (b) includes the step of the second software program transmitting the secret information to the third computer,
Wherein the step (c) includes the step of the second software program receiving the token from the third computer,
The step (d) may further include the step of transmitting the transaction-performing information excluding the secret information to the second computer, and transmitting the token to the second computer
/ RTI &gt;
제3항에 있어서,
상기 제2 소프트웨어 프로그램이 상기 토큰을 버퍼 내에서 버퍼링하는 단계를 더 포함하고,
상기 (d) 단계 전에, 상기 사용자가 상기 토큰을 상기 버퍼로부터 상기 제1 소프트웨어 프로그램의 엔트리 필드(entry field)에 붙여넣는(paste) 제1 컴퓨터 구현 방법.
The method of claim 3,
Further comprising the second software program buffering the token in a buffer,
Before the step (d), the user pastes the token from the buffer into the entry field of the first software program.
제4항에 있어서,
상기 버퍼는 상기 제1 컴퓨터의 운영 시스템 클립보드(operating-system clipboard)인 제1 컴퓨터 구현 방법.
5. The method of claim 4,
Wherein the buffer is an operating-system clipboard of the first computer.
제3항에 있어서,
상기 (a2) 단계는, 상기 사용자가 상기 제2 소프트웨어 프로그램에 의해 표시되는 윈도우(window)의 엔트리 필드에 상기 비밀 정보를 타이핑하는 것에 의하여 상기 제2 소프트웨어 프로그램이 상기 비밀 정보를 수신하는 제1 컴퓨터 구현 방법.
The method of claim 3,
Wherein the step (a2) includes the steps of: the first software program causing the first computer to receive the secret information by the user typing the secret information into an entry field of a window displayed by the second software program; Implementation method.
제2항에 있어서,
상기 (a) 단계는, 상기 제1 소프트웨어 프로그램이 상기 비밀 정보를 포함하는 상기 거래 수행용 정보를 수신하는 단계를 포함하고,
상기 (b) 단계는, (b1) 상기 비밀 정보를 포함하는 상기 제1 소프트웨어 프로그램의 윈도우의 엔트리 필드를 검사(inspect)하여, 상기 제2 소프트웨어 프로그램이 상기 제1 소프트웨어 프로그램으로부터 상기 비밀 정보를 수신하는 단계; 및 (b2) 상기 제2 소프트웨어 프로그램이 상기 비밀 정보를 상기 제3 컴퓨터로 송신하는 단계를 포함하고,
상기 (c) 단계는, (c1) 상기 제2 소프트웨어 프로그램이 상기 제3 컴퓨터로부터 상기 토큰을 수신하는 단계; 및 (c2) 상기 제2 소프트웨어 프로그램이 상기 제1 소프트웨어 프로그램의 상기 윈도우의 상기 엔트리 필드 내의 상기 비밀 정보를 상기 토큰으로 대체하는 단계를 포함하며,
상기 (d) 단계는, 상기 제1 소프트웨어 프로그램이 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신하는 단계를 포함하는 제1 컴퓨터 구현 방법.
3. The method of claim 2,
Wherein the step (a) includes receiving, by the first software program, the transaction-performing information including the secret information,
Wherein the step (b) comprises the steps of: (b1) inspecting an entry field of a window of the first software program including the secret information, and receiving the secret information from the first software program ; And (b2) the second software program transmitting the secret information to the third computer,
(C) the second software program receiving the token from the third computer; And (c2) replacing the secret information in the entry field of the window of the first software program by the second software program with the token,
Wherein the step (d) includes transmitting the to-be-executed information and the transaction-performing information except for the secret information by the first software program.
제1항에 있어서,
상기 제1 컴퓨터가,
상기 제2 컴퓨터와 인터페이스하는 소프트웨어 프로그램; 및
상기 소프트웨어 프로그램으로부터 패킷(packet)들을 수신하고, 상기 패킷들을 상기 제2 컴퓨터에 전달하고, 상기 패킷들 중 하나 이상을 상기 제2 컴퓨터에 전달하기 전에 선택적으로 수정하는 패킷 인스펙터(packet nspector); 를 포함하는 제1 컴퓨터 구현 방법.
The method according to claim 1,
The first computer comprising:
A software program for interfacing with the second computer; And
A packet nspector for receiving packets from the software program, for forwarding the packets to the second computer, and for selectively modifying one or more of the packets before delivering the packets to the second computer; / RTI &gt;
제8항에 있어서,
상기 (a) 단계는, 상기 소프트웨어 프로그램이 상기 비밀 정보를 포함하는 상기 거래 수행용 정보를 수신하는 단계를 포함하고,
상기 (b) 단계는, (b1) 상기 패킷 인스펙터가 상기 소프트웨어 프로그램으로부터, 상기 비밀 정보를 하나 이상의 패킷 데이터를 수신하는 단계; 및 (b2) 상기 패킷 인스펙터가 상기 비밀 정보를 상기 제3 컴퓨터로 송신하는 단계를 포함하고,
상기 (c) 단계는, (c1) 상기 패킷 인스펙터가 상기 제3 컴퓨터로부터 상기 토큰을 수신하는 단계; 및 (c2) 상기 패킷 인스펙터가 상기 하나 이상의 패킷 데이터 내의 상기 비밀 정보를 상기 토큰으로 대체하는 것에 의하여 상기 하나 이상의 패킷 데이터를 수정하는 단계를 포함하고,
상기 (d) 단계는, 상기 패킷 인스펙터가 상기 수정된 하나 이상의 패킷 데이터를 상기 제2 컴퓨터에 송신하는 단계를 포함하며,
상기 수정된 하나 이상의 데이터 패킷이 상기 비밀 정보를 제외한 거래 수행용 정보 및 상기 토큰을 포함하는 제1 컴퓨터 구현 방법.
9. The method of claim 8,
Wherein the step (a) includes receiving, by the software program, the transaction-performing information including the secret information,
The step (b) includes the steps of: (b1) receiving, by the packet inspector, one or more packet data from the software program, the secret information; And (b2) the packet inspector transmitting the secret information to the third computer,
(C) the packet inspector receiving the token from the third computer; And (c2) modifying the one or more packet data by the packet inspector replacing the secret information in the one or more packet data with the token,
Wherein the step (d) comprises the step of the packet inspector transmitting the modified one or more packet data to the second computer,
Wherein the modified at least one data packet includes information for performing transactions excluding the secret information and the token.
제9항에 있어서,
상기 패킷 인스펙터는 상기 소프트웨어 프로그램을 실행하는 프로세서(processor)와 다른 프로세서를 가지는 전용 하드웨어 장치(dedicated hardware appliance)인 제1 컴퓨터 구현 방법.
10. The method of claim 9,
Wherein the packet inspector is a dedicated hardware appliance having a processor and a processor executing the software program.
장치와 통신하는 제2 컴퓨터에 비밀 정보가 전송되는 것을 방지하는 장치에 있어서,
상기 장치가,
(a) 사용자에 의하여 수동으로 입력된 비밀 정보를 포함하는 거래 수행용 정보를 수신하고,
(b) 상기 비밀 정보를 상기 제3 컴퓨터에 송신하며,
(c) 상기 비밀 정보와 알고리즘 관계가 없는 토큰을 상기 제3 컴퓨터로부터 수신하고,
(d) 상기 제2 컴퓨터에 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신하는 장치.
An apparatus for preventing secret information from being transmitted to a second computer communicating with the apparatus,
The apparatus,
(a) receiving transaction execution information including secret information manually input by a user,
(b) transmitting the secret information to the third computer,
(c) receiving, from the third computer, a token that is not algorithmically related to the secret information,
(d) transmitting the transaction-performing information and the token to the second computer, excluding the secret information.
제11항에 있어서,
상기 제2 컴퓨터와 인터페이스(interface)하는 제1 소프트웨어 프로그램과, 상기 제1 소프트웨어 프로그램과 다른 제2 소프트웨어 프로그램을 포함하고,
상기 제2 소프트웨어 프로그램은 상기 제2 컴퓨터가 아닌 상기 제3 컴퓨터와 인터페이스하는 장치.
12. The method of claim 11,
A first software program that interfaces with the second computer; and a second software program that is different from the first software program,
Wherein the second software program interfaces with the third computer rather than the second computer.
제12항에 있어서,
상기 (a) 단계는, (a1) 상기 제1 소프트웨어 프로그램이 상기 비밀 정보를 제외한 거래 수행용 정보를 수신하는 단계; 및 (a2) 상기 제2 소프트웨어 프로그램이 상기 사용자에 의해 수동으로 입력된 상기 비밀 정보를 수신하는 단계를 포함하고,
상기 (b) 단계는, 상기 제2 소프트웨어 프로그램이 상기 비밀 정보를 상기 제3 컴퓨터에 송신하는 단계를 포함하며,
상기 (c) 단계는, 상기 제2 소프트웨어 프로그램이 상기 제3 컴퓨터로부터 상기 토큰을 수신하는 단계를 포함하고,
상기 (d) 단계는, 상기 제1 소프트웨어 프로그램이 상기 제2 컴퓨터에 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신하는 단계를 포함하는 장치.
13. The method of claim 12,
Wherein the step (a) comprises the steps of: (a1) receiving the transaction execution information except for the secret information, by the first software program; And (a2) receiving, by the second software program, the secret information manually input by the user,
Wherein the step (b) includes the step of the second software program transmitting the secret information to the third computer,
Wherein the step (c) includes the step of the second software program receiving the token from the third computer,
Wherein the step (d) comprises transmitting the to-be-executed information and the transaction-performing information excluding the secret information to the second computer.
제13항에 있어서,
상기 제2 소프트웨어 프로그램이 상기 토큰을 버퍼 내에서 버퍼링하도록 형성되고,
상기 (d) 단계 전에, 상기 사용자가 상기 토큰을 상기 버퍼로부터 상기 제1 소프트웨어 프로그램의 엔트리 필드에 붙여넣는 장치.
14. The method of claim 13,
The second software program being configured to buffer the token in a buffer,
Before the step (d), the user pastes the token from the buffer into the entry field of the first software program.
제14항에 있어서,
상기 버퍼는 상기 제1 컴퓨터의 운영 시스템 클립보드(operating-system clipboard)인 장치.
15. The method of claim 14,
Wherein the buffer is an operating-system clipboard of the first computer.
제13항에 있어서,
상기 (a2) 단계는, 상기 사용자가 상기 제2 소프트웨어 프로그램에 의해 표시되는 윈도우(window)의 엔트리 필드에 상기 비밀 정보를 타이핑하는 것에 의하여 상기 제2 소프트웨어 프로그램이 상기 비밀 정보를 수신하는 장치.
14. The method of claim 13,
Wherein the step (a2) comprises receiving the secret information by the second software program by the user typing the secret information into an entry field of a window displayed by the second software program.
제12항에 있어서,
상기 (a) 단계는, 상기 제1 소프트웨어 프로그램이 상기 비밀 정보를 포함하는 상기 거래 수행용 정보를 수신하는 단계를 포함하고,
상기 (b) 단계는, (b1) 상기 비밀 정보를 포함하는 상기 제1 소프트웨어 프로그램의 윈도우의 엔트리 필드를 검사하여, 상기 제2 소프트웨어 프로그램이 상기 제1 소프트웨어 프로그램으로부터 상기 비밀 정보를 수신하는 단계; 및 (b2) 상기 제2 소프트웨어 프로그램이 상기 비밀 정보를 상기 제3 컴퓨터로 송신하는 단계를 포함하고,
상기 (c) 단계는, (c1) 상기 제2 소프트웨어 프로그램이 상기 제3 컴퓨터로부터 상기 토큰을 수신하는 단계; 및 (c2) 상기 제2 소프트웨어 프로그램이 상기 제1 소프트웨어 프로그램의 상기 윈도우의 상기 엔트리 필드 내의 상기 비밀 정보를 상기 토큰으로 대체하는 단계를 포함하며,
상기 (d) 단계는, 상기 제1 소프트웨어 프로그램이 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신하는 단계를 포함하는 장치.
13. The method of claim 12,
Wherein the step (a) includes receiving, by the first software program, the transaction-performing information including the secret information,
The step (b) includes the steps of: (b1) inspecting an entry field of a window of the first software program including the secret information, and receiving the secret information from the first software program; And (b2) the second software program transmitting the secret information to the third computer,
(C) the second software program receiving the token from the third computer; And (c2) replacing the secret information in the entry field of the window of the first software program by the second software program with the token,
Wherein the step (d) comprises transmitting the transaction-performing information except for the secret information, and the token.
제11항에 있어서,
상기 장치가,
상기 제2 컴퓨터와 인터페이스하는 소프트웨어 프로그램; 및
상기 소프트웨어 프로그램으로부터 패킷들을 수신하고, 상기 패킷들을 상기 제2 컴퓨터에 전달하고, 상기 패킷들 중 하나 이상을 상기 제2 컴퓨터에 전달하기 전에 선택적으로 수정하는 패킷 인스펙터를 포함하는 장치.
12. The method of claim 11,
The apparatus,
A software program for interfacing with the second computer; And
And a packet inspector to receive packets from the software program, convey the packets to the second computer, and selectively modify one or more of the packets before delivering the packets to the second computer.
제18항에 있어서,
상기 (a) 단계는, 상기 소프트웨어 프로그램이 상기 비밀 정보를 포함하는 상기 거래 수행용 정보를 수신하는 단계를 포함하고,
상기 (b) 단계는, (b1) 상기 패킷 인스펙터가 상기 소프트웨어 프로그램으로부터, 상기 비밀 정보를 하나 이상의 패킷 데이터를 수신하는 단계; 및 (b2) 상기 패킷 인스펙터가 상기 비밀 정보를 상기 제3 컴퓨터로 송신하는 단계를 포함하고,
상기 (c) 단계는, (c1) 상기 패킷 인스펙터가 상기 제3 컴퓨터로부터 상기 토큰을 수신하는 단계; 및 (c2) 상기 패킷 인스펙터가 상기 하나 이상의 패킷 데이터 내의 상기 비밀 정보를 상기 토큰으로 대체하는 것에 의하여 상기 하나 이상의 패킷 데이터를 수정하는 단계를 포함하고,
상기 (d) 단계는, 상기 패킷 인스펙터가 상기 수정된 하나 이상의 패킷 데이터를 상기 제2 컴퓨터에 송신하는 단계를 포함하며,
상기 수정된 하나 이상의 데이터 패킷이 상기 비밀 정보를 제외한 거래 수행용 정보 및 상기 토큰을 포함하는 장치.
19. The method of claim 18,
Wherein the step (a) includes receiving, by the software program, the transaction-performing information including the secret information,
The step (b) includes the steps of: (b1) receiving, by the packet inspector, one or more packet data from the software program, the secret information; And (b2) the packet inspector transmitting the secret information to the third computer,
(C) the packet inspector receiving the token from the third computer; And (c2) modifying the one or more packet data by the packet inspector replacing the secret information in the one or more packet data with the token,
Wherein the step (d) comprises the step of the packet inspector transmitting the modified one or more packet data to the second computer,
Wherein the modified at least one data packet includes information for performing transactions excluding the secret information and the token.
제19항에 있어서,
상기 패킷 인스펙터는 상기 소프트웨어 프로그램을 실행하는 프로세서(processor)와 다른 프로세서를 가지는 전용 하드웨어 장치(dedicated hardware appliance)인 장치.
20. The method of claim 19,
Wherein the packet inspector is a dedicated hardware appliance having a processor different from the processor executing the software program.
내부에 인코딩된 프로그램 코드를 가지는, 비일시적으로 기계로 읽을 수 있는 저장 장치(non-transitory machine-readable storage medium)에 있어서,
상기 프로그램 코드는 장치에 의해 실행되며,
상기 프로그램 코드를 실행하는 장치는, 제1 컴퓨터와, 상기 제1 컴퓨터와 통신하는 제2 컴퓨터 사이에서 비밀 정보가 전송되는 것을 방지하는 방법을 구현하며,
상기 방법은,
(a) 상기 제1 컴퓨터가 사용자에 의하여 수동으로 입력된 비밀 정보를 포함하는 거래 수행용 정보를 수신하는 단계;
(b) 상기 제1 컴퓨터가 상기 비밀 정보를 상기 제3 컴퓨터에 송신하는 단계;
(c) 상기 제1 컴퓨터가 상기 비밀 정보와 알고리즘 관계가 없는 토큰을 상기 제3 컴퓨터로부터 수신하는 단계; 및
(d) 상기 제1 컴퓨터가 상기 제2 컴퓨터에 상기 비밀 정보를 제외한 상기 거래 수행용 정보와, 상기 토큰을 송신하는 단계
를 포함하는 비일시적으로 기계로 읽을 수 있는 저장 장치.
A non-transitory machine-readable storage medium having internally encoded program code, the non-transitory machine-
The program code is executed by the apparatus,
The apparatus for executing the program code implements a method for preventing secret information from being transmitted between a first computer and a second computer communicating with the first computer,
The method comprises:
(a) receiving transaction execution information including secret information manually input by a user;
(b) the first computer sending the secret information to the third computer;
(c) receiving, by the first computer, a token that is not algorithmically related to the secret information from the third computer; And
(d) the first computer transmits to the second computer the transaction-performing information excluding the secret information, and the token
A non-transitory, machine-readable storage device comprising:
제1 컴퓨터와, 상기 제1 컴퓨터와 통신하는 제2 컴퓨터 사이에서 비밀 정보가 전송되는 것을 방지하는 제1 컴퓨터 구현 방법에 있어서,
(a) 상기 제1 컴퓨터가, 엔트리 필드가 비밀 정보를 포함하는지 여부를 결정하기 위하여 소프트웨어 프로그램의 윈도우의 상기 엔트리 필드를 검사하는 단계;
(b) 상기 엔트리 필드가 비밀 정보를 포함하는 경우에, (b1) 상기 제1 컴퓨터가 상기 비밀 정보를 제3 컴퓨터에 송신하고, (b2) 상기 제1 컴퓨터가 상기 비밀 정보와 알고리즘 관계가 없는 토큰을 상기 제3 컴퓨터로부터 수신하는 단계; 및
(c) 상기 제1 컴퓨터가 상기 소프트웨어 프로그램의 상기 윈도우의 상기 엔트리 필드 내의 상기 비밀 정보를 상기 토큰으로 대체하는 단계
를 포함하는 제1 컴퓨터 구현 방법.
A first computer implemented method for preventing secret information from being transmitted between a first computer and a second computer communicating with the first computer,
(a) the first computer examines the entry field of the window of the software program to determine whether the entry field contains secret information;
(b1) when the entry field contains secret information, (b1) the first computer sends the secret information to a third computer, (b2) the first computer is not in an algorithmic relationship with the secret information Receiving a token from the third computer; And
(c) replacing the secret information in the entry field of the window of the software program by the first computer with the token
/ RTI &gt;
제1 컴퓨터와, 상기 제1 컴퓨터와 통신하는 제2 컴퓨터 사이에서 비밀 정보가 전송되는 것을 방지하는 제1 컴퓨터 구현 방법에 있어서,
(a) 상기 제1 컴퓨터가 하나 이상의 패킷 데이터를 상기 제1 컴퓨터로부터 수신하는 단계;
(b) 상기 제1 컴퓨터가, 상기 하나 이상의 패킷 데이터가 비밀 정보를 포함하는지 여부를 결정하기 위하여 상기 하나 이상의 패킷 데이터를 검사하는 단계로, 상기 엔트리 필드가 상기 비밀 정보를 포함하는 경우에, (b1) 상기 제1 컴퓨터가 상기 비밀 정보를 제3 컴퓨터에 송신하고, (b2) 제1 컴퓨터가 상기 비밀 정보와 알고리즘 관계가 없는 토큰을 상기 제3 컴퓨터로부터 수신하는 단계;
(c) 상기 제1 컴퓨터가 상기 하나 이상의 패킷 데이터 내의 상기 비밀 정보를 상기 토큰으로 대체하는 것에 의하여 상기 하나 이상의 패킷 데이터를 수정하는 단계; 및
(d) 상기 제1 컴퓨터가 상기 수정된 하나 이상의 패킷 데이터를 상기 제2 컴퓨터에 전달하는 단계
를 포함하는 제1 컴퓨터 구현 방법.
A first computer implemented method for preventing secret information from being transmitted between a first computer and a second computer communicating with the first computer,
(a) the first computer receiving one or more packet data from the first computer;
(b) the first computer examines the one or more packet data to determine whether the one or more packet data includes secret information, wherein if the entry field includes the secret information, b1) the first computer sends the secret information to a third computer; (b2) the first computer receives a token that is not algorithmically related to the secret information from the third computer;
(c) modifying said one or more packet data by said first computer by replacing said secret information in said one or more packet data with said token; And
(d) the first computer communicating the modified one or more packet data to the second computer
/ RTI &gt;
KR1020147002028A 2010-12-01 Token-based apparatus and a first-computer-implemented method KR20140057526A (en)

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020117029610 Division 2010-12-01

Publications (1)

Publication Number Publication Date
KR20140057526A true KR20140057526A (en) 2014-05-13

Family

ID=

Similar Documents

Publication Publication Date Title
US8584251B2 (en) Token-based payment processing system
US8763142B2 (en) Tokenized payment processing schemes
US11777937B2 (en) Systems and methods for third-party interoperability in secure network transactions using tokenized data
US9031877B1 (en) Credit card fraud prevention system and method
US8317090B2 (en) Methods and systems for performing a financial transaction
US8788421B2 (en) Systems and methods for processing electronic payments using a global payment directory
US11238446B2 (en) Systems and methods for substitute controlled-use tokens in secure network transactions
US20170243178A1 (en) Authentication data-enabled transfers
EP2368223B1 (en) Technique for performing financial transactions over a network
US11836696B2 (en) Systems and methods for linking high-value tokens using a low-value token
US20160275502A1 (en) Embedded third party server bypass security feature
US20100257101A1 (en) Secure string-based transaction system and method
US11640592B2 (en) System, method, and apparatus for integrating multiple payment options on a merchant webpage
KR20140057529A (en) Token-based apparatus and a first-computer-implemented method
KR20140057526A (en) Token-based apparatus and a first-computer-implemented method
KR20140057528A (en) Token-based apparatus and a first-computer-implemented method
KR20140057525A (en) Token-based apparatus and a first-computer-implemented method
KR20150069857A (en) Token apparatus
US20230259925A1 (en) System and Method for Conducting Payment and Business Transactions
KR20020085295A (en) An electronic commercial banking system of enterprise using the internet
KR20090032068A (en) Method for processing loan