KR20190135145A - Method for Protecting Information Using White-Box Cryptography Under Web Standard Environment - Google Patents

Method for Protecting Information Using White-Box Cryptography Under Web Standard Environment Download PDF

Info

Publication number
KR20190135145A
KR20190135145A KR1020180060228A KR20180060228A KR20190135145A KR 20190135145 A KR20190135145 A KR 20190135145A KR 1020180060228 A KR1020180060228 A KR 1020180060228A KR 20180060228 A KR20180060228 A KR 20180060228A KR 20190135145 A KR20190135145 A KR 20190135145A
Authority
KR
South Korea
Prior art keywords
white box
information
browser
identification information
key
Prior art date
Application number
KR1020180060228A
Other languages
Korean (ko)
Inventor
이은배
김대현
김명중
강하나
Original Assignee
이니텍(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이니텍(주) filed Critical 이니텍(주)
Priority to KR1020180060228A priority Critical patent/KR20190135145A/en
Publication of KR20190135145A publication Critical patent/KR20190135145A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

The present invention relates to an information protecting method through a white box encryption in a web standard environment. The method comprises: a first step of allowing a server to collect browser identification information; a second step of allowing the server to generate and store a secret key based on the browser identification information and a domain key; a third step of allowing a browser module to generate and store a random key; a fourth step of allowing the browser module to transmit the random key to the server and request a white box encryption table; a fifth step of allowing the server to generate the white box encryption table and DEC (secret keys and random keys) based on the secret key; a sixth step of allowing the server to transmit the white box encryption table and the DEC (secret keys and random keys) to the browser module; a seventh step of allowing the browser module to verify the random key; and an eighth step of allowing the browser module to store the white box encryption table in order to have the same used in the encryption of information to be transmitted when the verification in the seventh step is succeeded. Accordingly, the present invention provides increased safety compared to existing technologies.

Description

웹 표준 환경에서 화이트박스 암호화 방법을 이용한 정보 보호 방법{Method for Protecting Information Using White-Box Cryptography Under Web Standard Environment}Method for Protecting Information Using White-Box Cryptography Under Web Standard Environment}

본 발명은 화이트박스 암호화 방법을 이용한 정보 보호 방법에 대한 것으로서, 좀 더 자세하게는 자바 스크립트를 이용하는 웹 표준 환경에서 암호 알고리즘 및 키 관리를 함에 있어서 화이트박스 암호화 방법을 도입함으로써 보안성이 고양된 정보 보호 방법에 대한 것이다.The present invention relates to an information protection method using a white box encryption method, and more particularly, to protect information with enhanced security by introducing a white box encryption method in cryptographic algorithm and key management in a web standard environment using JavaScript. It's about how.

웹 표준 환경에서, 사용되는 스크립트 상에서 데이터를 암호화 하기 위해 사용되는 대칭키 암호 방법은 웹 브라우저 스크립트의 기술적 제약 및 환경으로 인하여 암호 알고리즘 또는 암호 비밀키가 스크립트 및 메모리에서 노출될 수 있는 단점이 있다.In the web standard environment, the symmetric key encryption method used to encrypt data on the used script has a disadvantage that the encryption algorithm or the secret secret key may be exposed in the script and memory due to the technical limitations and the environment of the web browser script.

화이트박스 암호 기술은 소프트웨어 방식으로 암호 키를 안전하게 보관할 수 있고, 신뢰할 수 없는 단말기에서 암호화 알고리즘이 실행되더라도 암호 키가 드러나지 않도록 할 수 있는 기술로서 최근에 많은 개발이 이루어지고 있다.White box encryption technology has been developed in recent years as a technology that can securely store the encryption key by software method, and the encryption key is not exposed even if the encryption algorithm is executed in an untrusted terminal.

본 발명은, 웹 표준 환경에서 화이트박스 암호 방식을 적용함으로써 보안성이 고양된 정보 보호 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a method for protecting information with improved security by applying a white box encryption method in a web standard environment.

본 발명은 웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법에 관한 것으로서, 서버가, 브라우저 식별 정보를 수집하는 제1 단계와; 서버가, 브라우저 식별 정보 및 도메인 키에 기초하여 비밀키를 생성하고 저장하는 제2 단계와; 브라우저 모듈이, 랜덤키를 생성하고 저장하는 제3 단계와; 브라우저 모듈이, 서버로 랜덤키를 전송하고 화이트박스 암호 테이블을 요청하는 제4 단계와; 서버가, 비밀키에 기초하여 화이트 박스 암호 테이블과, DEC(비밀키, 랜덤키)를 생성하는 제5 단계와; 서버가, 화이트박스 암호 테이블 및 DEC(비밀키, 랜덤키)를 브라우저 모듈로 전송하는 제6 단계와; 브라우저 모듈이, 랜덤키를 검증하는 제7 단계와; 제7 단계의 검증에 성공하면 서버로 전송할 정보의 암호화에 사용할 수 있도록 브라우저 모듈이 화이트박스 암호 테이블을 저장하는 제8 단계를 포함한다.The present invention relates to a method of protecting information through white box encryption in a web standard environment, comprising: a first step of a server collecting browser identification information; A second step of the server generating and storing the secret key based on the browser identification information and the domain key; A third step of the browser module generating and storing a random key; A fourth step of the browser module sending a random key to a server and requesting a whitebox encryption table; A fifth step of the server generating a white box encryption table and a DEC (secret key, random key) based on the secret key; A sixth step of the server sending a whitebox cryptographic table and a DEC (secret key, random key) to a browser module; A seventh step of the browser module verifying the random key; If the verification of the seventh step is successful, the browser module includes an eighth step of storing the whitebox encryption table for use in encrypting information to be transmitted to the server.

화이트 박스 암호 테이블은 비밀키 및 브라우저 식별 정보에 기초하여 생성될 수 있다.The white box encryption table may be generated based on the secret key and browser identification information.

본 발명에 의한 방법은, 제8 단계 전에 수행되며, 브라우저 모듈이, 브라우저 식별 정보를 수집하고, 화이트 박스 암호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제7-1 단계를 더 포함할 수 있다.The method according to the present invention is carried out before the eighth step, and the browser module collects the browser identification information and uses the "information for verifying the browser identification information" included in the white box password table to retrieve the browser identification information. The method may further include a seventh step of verifying.

본 발명에 의한 정보 보호 방법은, 서버가, 브라우저 모듈이 화이트박스 암호 테이블을 이용하여 암호화한 암호화 정보를 수신하는 제9-1 단계와; 서버가, 비밀키로 암호화 정보를 복호화하는 제9-2 단계를 더 포함할 수 있다.In accordance with another aspect of the present invention, there is provided a method of protecting information, comprising: a step 9-1 of a server, receiving encrypted information encrypted by a browser module using a white box encryption table; The server may further include a step 9-2 of decrypting the encryption information with the secret key.

본 발명에 의한 정보 보호 방법은, 브라우저 모듈이, 화이트박스 암호 테이블을 이용하여 암호화하기 이전에 브라우저 식별 정보를 수집하고, 화이트박스 암호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제10-1 단계를 더 포함할 수 있다.In the information protection method according to the present invention, the browser module collects the browser identification information before encrypting using the white box encryption table, and checks "information for verifying browser identification information" included in the white box encryption table. The method may further include a step 10-1 of verifying browser identification information by using the same.

제7 단계는, 화이트박스 암호 테이블을 이용하여 ENC(DEC(비밀키, 랜덤키))를 산출하여 랜덤키를 획득하는 제7-1 단계와; 제7-1 단계에서 획득한 랜덤키와, 제3 단계에서 생성한 랜덤키를 비교하는 제7-2 단계를 포함할 수 있다.The seventh step may include a seventh step of obtaining an random key by calculating an ENC (DEC (secret key, random key)) using a white box encryption table; Step 7-2 may include comparing the random key obtained in step 7-1 with the random key generated in step 3-1.

본 발명의 다른 형태에 의한, 정보 보호 방법은, 서버가, 브라우저 식별 정보를 수집하는 제1 단계와; 서버가, 브라우저 식별 정보 및 도메인 키에 기초하여 제1 비밀키 및 제2 비밀키를 생성하고 저장하는 제2 단계와; 브라우저 모듈이, 랜덤키를 생성하고 저장하는 제3 단계와; 브라우저 모듈이, 서버로 랜덤키를 전송하고 화이트박스 암호 테이블을 요청하는 제4 단계와; 서버가, 제1 비밀키에 기초한 화이트박스 암호 테이블과, 제2 비밀키에 기초한 화이트박스 복호 테이블과, ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키))를 생성하는 제5 단계와; 서버가, 화이트박스 암호 테이블과,화이트박스 복호 테이블과, ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키))를 브라우저 모듈로 전송하는 제6 단계와; 브라우저 모듈이, 랜덤키를 검증하는 제7 단계와; 제7 단계의 검증에 성공하면, 서버로 전송할 정보의 암호화와 서버로부터 수신한 정보의 복호화에 사용할 수 있도록 브라우저 모듈이 화이트박스 암호 테이블 및 화이트박스 복호 테이블을 저장하는 제8 단계를 포함한다.According to another aspect of the present invention, an information protection method includes: a first step of a server collecting browser identification information; A second step of the server generating and storing the first secret key and the second secret key based on the browser identification information and the domain key; A third step of the browser module generating and storing a random key; A fourth step of the browser module sending a random key to a server and requesting a whitebox encryption table; A fifth server generating a white box encryption table based on the first secret key, a white box decryption table based on the second secret key, and an ENC (second secret key, DEC (first secret key, random key)) Steps; A sixth step of the server sending a whitebox encryption table, a whitebox decryption table, and an ENC (second secret key, DEC (first secret key, random key)) to a browser module; A seventh step of the browser module verifying the random key; If the verification of the seventh step is successful, the browser module may include an eighth step of storing the whitebox encryption table and the whitebox decryption table for use in encrypting information to be transmitted to the server and decrypting information received from the server.

화이트 박스 암호 테이블은 제1 비밀키 및 브라우저 식별 정보에 기초하여 생성되며, 화이트 박스 복호 테이블은 제2 비밀키 및 브라우저 식별 정보에 기초하여 생성될 수 있다.The white box encryption table may be generated based on the first secret key and the browser identification information, and the white box decryption table may be generated based on the second secret key and the browser identification information.

본 형태에 의한 본 발명은, 제8 단계 전에 수행되며, 브라우저 모듈이, 브라우저 식별 정보를 수집하고, 화이트 박스 암호 테이블 또는 복호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여, 브라우저 식별 정보를 검증하는 제7-1 단계를 더 포함할 수 있다.The present invention according to this aspect is performed before the eighth step, and the browser module collects the browser identification information and uses the "information for verifying the browser identification information" included in the white box encryption table or the decryption table. The method may further include a step 7-1 of verifying the browser identification information.

본 형태에 의한 본 발명은, 브라우저 모듈이, 화이트박스 암호 테이블을 이용하여 정보를 암호화한 암호화 정보를 서버로 전송하는 제9 단계와; 서버가, 제1 비밀키를 이용하여 암호화 정보를 복호화하는 제10 단계를 더 포함할 수 있다.The present invention according to this aspect includes a ninth step of the browser module transmitting encrypted information obtained by encrypting information using a white box encryption table to a server; The server may further include a tenth step of decrypting the encryption information by using the first secret key.

본 형태에 의한 본 발명은, 서버가, 브라우저 모듈로 전송할 정보를 제2 비밀키를 이용하여 암호화하여 브라우저 모듈로 전송하는 제11 단계와; 브라우저 모듈이, 제11 단계에서 수신한 암호화 정보를 화이트박스 복호 테이블을 이용하여 복호화하는 제12 단계를 더 포함할 수 있다.According to an aspect of the present invention, there is provided a server comprising: an eleventh step of encrypting, by a server, information to be transmitted to a browser module using a second secret key; The browser module may further include a twelfth step of decrypting the encryption information received in the eleventh step by using the white box decryption table.

본 형태에 의한 본 발명은, 브라우저 모듈이, 화이트박스 암호 테이블을 이용하여 암호화하기 이전에 브라우저 식별 정보를 수집하고, 화이트박스 암호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제13-1 단계를 더 포함할 수 있다.According to the present invention, the browser module collects browser identification information before encrypting using the white box encryption table, and uses the "information for verifying browser identification information" included in the white box encryption table. The method may further include a 13-13 step of verifying the browser identification information.

제7 단계는, 화이트박스 암호 테이블 및 복호 테이블을 이용하여 ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키))로부터 랜덤키를 획득하는 제7-1 단계와; 제7-1 단계에서 획득한 랜덤키와, 제3 단계에서 생성한 랜덤키를 비교하는 제7-2 단계를 포함할 수 있다.Step 7-1 includes obtaining a random key from an ENC (second secret key, DEC (first secret key, random key)) using a white box encryption table and a decryption table; Step 7-2 may include comparing the random key obtained in step 7-1 with the random key generated in step 3-1.

본 발명의 또 다른 형태에 의한 정보 보호 방법은, 서버가, 브라우저 식별 정보를 수집하는 제1 단계와; 서버가, 브라우저 식별 정보 및 도메인 키에 기초하여 비밀키를 생성하고 저장하는 제2 단계와; 브라우저 모듈이, 랜덤키를 생성하고 저장하는 제3 단계와; 브라우저 모듈이, 서버로 랜덤키를 전송하고 화이트박스 암호 테이블 및 화이트 박스 복호 테이블을 요청하는 제4 단계와; 서버가, 비밀키에 기초하여 화이트 박스 암호 테이블과, ENC(비밀키, 랜덤키)를 생성하는 제5 단계와; 서버가, 화이트박스 암호 테이블과 화이트 박스 복호 테이블 및 ENC(비밀키, 랜덤키)를 브라우저 모듈로 전송하는 제6 단계와; 브라우저 모듈이, 랜덤키를 검증하는 제7 단계와; 제7 단계의 검증에 성공하면, 브라우저 내에서 정보의 암호화 및 복호화에 사용할 수 있도록 브라우저 모듈이 화이트박스 암호 테이블과 화이트 박스 복호 테이블을 저장하는 제8 단계를 포함한다.According to still another aspect of the present invention, there is provided a method of protecting information, comprising: a first step of a server collecting browser identification information; A second step of the server generating and storing the secret key based on the browser identification information and the domain key; A third step of the browser module generating and storing a random key; A fourth step of the browser module sending a random key to a server and requesting a white box encryption table and a white box decryption table; A fifth step of the server generating a white box encryption table and an ENC (secret key, random key) based on the secret key; A sixth step of the server sending the white box encryption table, the white box decryption table, and the ENC (secret key, random key) to the browser module; A seventh step of the browser module verifying the random key; If the verification of the seventh step is successful, the browser module may include an eighth step of storing the white box encryption table and the white box decryption table for use in encrypting and decrypting information in the browser.

화이트 박스 암호 테이블과 화이트 박스 복호 테이블은 비밀키 및 브라우저 식별 정보에 기초하여 생성될 수 있다.The white box encryption table and the white box decryption table may be generated based on the secret key and browser identification information.

본 형태에 의한 본 발명은, 제8 단계 전에 수행되며, 브라우저 모듈이, 브라우저 식별 정보를 수집하고, 화이트 박스 암호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제7-1 단계를 더 포함할 수 있다.The present invention according to this aspect is carried out before the eighth step, and the browser module collects the browser identification information and uses the "information for verifying the browser identification information" included in the white box password table to confirm the browser identification information. The method may further include a 7-1 step of verifying.

제7 단계는, 화이트 박스 복호 테이블을 이용하여 ENC(비밀키, 랜덤키)에 대해 복호화를 수행하여 랜덤키을 획득하는 제7-1 단계와; 제7-1 단계에서 획득한 랜덤키와, 제3 단계에서 생성한 랜덤키를 비교하는 제7-2 단계를 포함할 수 있다.The seventh step may include: a 7-1 step of decoding a ENC (secret key, random key) using a white box decoding table to obtain a random key; Step 7-2 may include comparing the random key obtained in step 7-1 with the random key generated in step 3-1.

본 형태에 의한 본 발명은, 브라우저 모듈이, 화이트박스 암호 테이블을 이용하여 암호화하기 이전에 브라우저 식별 정보를 수집하고, 화이트박스 암호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제10-1 단계와; 브라우저 모듈이, 화이트박스 복호 테이블을 이용하여 복호화하기 이전에 브라우저 식별 정보를 수집하고, 화이트박스 복호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제10-2 단계를 더 포함할 수 있다.According to the present invention, the browser module collects browser identification information before encrypting using the white box encryption table, and uses the "information for verifying browser identification information" included in the white box encryption table. Step 10-1 to verify the browser identification information; The browser module collects browser identification information before decrypting using the whitebox decoding table, and verifies the browser identification information by using "information for verifying browser identification information" included in the whitebox decoding table. The method may further include step 10-2.

본 발명에 의하면 웹 표준 자바 스크립트 환경에 있어서 브라우저 모듈에서 대칭키를 기반으로 데이터 암호 수행시 상대적으로 비밀키 노출과 공격이 용이한 브라우저 모듈에 비밀키를 보유하지 않고 비밀키를 서버단에만 보유한 채로 브라우저 모듈에서는 화이트박스 암호 방식에 따라 암호화/복호화를 함으로써 종래 기술에 비해 보안성이 고양되는 작용효과가 제공된다.According to the present invention, in the web standard JavaScript environment, the browser module does not have a secret key in a browser module that is relatively easy to expose and attack when a data module is encrypted based on a symmetric key. In the browser module, the encryption / decryption is performed according to the white box encryption method, thereby providing an effect of enhancing security compared to the prior art.

도 1은 본 발명에 의한 정보 보호 방법의 흐름도.
도 2는 본 발명의 다른 실시 형태에 따른 정보 보호 방법의 흐름도.
도 3은 본 발명의 또 다른 실시 형태에 따른 정보 보호 방법의 흐름도.
1 is a flowchart of an information protection method according to the present invention;
2 is a flowchart of an information protection method according to another embodiment of the present invention.
3 is a flowchart of an information protection method according to another embodiment of the present invention.

본 명세서에서 수행되는 정보(데이터) 전송/수신 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, A로부터 B까지 직접 전송(전달) 또는 수신되는 것 만을 표현하는 것은 아니다. 본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행 단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 “A 또는 B”은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.Encryption / decryption may be applied to the information (data) transmission / reception process performed in this specification as necessary, and the expressions describing the information (data) transmission process in the specification and claims are all encrypted / It should be interpreted as including the case of decoding. In this specification, expressions of the form "transfer from A to B (transfer)" or "A receives from B" include those that are transmitted (transmitted) or received with other mediators in between, and directly from A to B. It does not represent only what is transmitted (delivered) or received. In the description of the present invention, the order of each step is to be understood without limitation unless the preceding step is to be performed logically and temporally prior to the later step. In other words, except in the exceptional case described above, even if the process described in the following step is performed in advance of the process described in the preceding step, the nature of the invention is not affected, and the scope of rights should be defined regardless of the order of the steps. In this specification, “A or B” is defined to mean not only selectively indicating any one of A and B, but also including both A and B. In addition, the term "comprising" in this specification has the meaning encompassing further including other elements in addition to the elements listed as containing.

본 명세서에서 "모듈"이라 함은 범용적인 하드웨어와 그 기능을 수행하는 소프트웨어의 논리적 결합을 의미한다. As used herein, the term "module" refers to a logical combination of general-purpose hardware and software that performs its functions.

본 명세서에서는 본 발명의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 필수적이지 않은 특정 구성요소를 배제하거나 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.In this specification, only essential components necessary for the description of the present invention are described, and components not related to the nature of the present invention are not mentioned. It should not be construed in an exclusive sense including only the components mentioned, but in a non-exclusive sense, which may exclude certain components that are not essential or may include other components.

본 발명은 전자적 연산이 가능한 컴퓨터 등의 전자적 연산 장치에 의해서 수행되며, 후술하는 본 발명의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 발명에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.The present invention is performed by an electronic computing device such as a computer capable of electronic calculation, and the mathematical operations and calculations of the steps of the present invention described later are suitable for the known coding method and / or the present invention for performing the calculation or calculation. It can be implemented by computer operation by means of coding designed to be.

그리고 본 명세서에서 "값"이라 함은 스칼라값 뿐만 아니라 벡터 및 행렬, 텐서, 다항식도 포함하는 광의의 개념으로 정의된다.And the term "value" is defined herein as a broad concept including not only scalar values but also vectors and matrices, tensors, and polynomials.

본 명세서에서 특정값에 대해 암호화 또는 해쉬 등과 같은 연산을 하여 소정의 값을 획득한다는 의미는 해당 특정값 뿐만 아니라 해당 특정값의 변형값(예를 들어, 특정값에 소정의 값을 추가로 연산하거나 소정의 규칙에 따라서 해당 특정값을 변화시키는 등의 과정을 통해서 산출된 다른 값)에 대한 암호화 또는 해쉬 등의 연산도 포함하는 것으로 정의된다.In this specification, the meaning of obtaining a predetermined value by performing an operation such as encryption or hashing on a specific value means not only the specific value but also a modified value of the specific value (for example, a predetermined value is further calculated on the specific value or It is defined to include an operation such as encryption or hash on other values calculated through a process of changing the specific value according to a predetermined rule.

도 1에는 본 발명에 의한 정보 보호 방법의 흐름도가 도시되어 있다.1 is a flowchart of an information protection method according to the present invention.

브라우저 모듈(10)은, 통신망을 통해 서버(20)에 접속한다(단계 100).The browser module 10 connects to the server 20 via a communication network (step 100).

서버(20)는, 브라우저 식별 정보를 수집한다(단계 105). 브라우저 식별 정보는 브라우저 헤더 정보 및 브라우저 지문 정보 중 적어도 어느 하나를 포함할 수 있다.The server 20 collects browser identification information (step 105). The browser identification information may include at least one of browser header information and browser fingerprint information.

서버(20)는, 비밀키를 생성하고 저장하는데(단계 110), 비밀키는 수집한 브라우저 식별 정보와 도메인 키(도메인 주소별로 할당되는 식별키)를 이용하여 생성할 수 있다. 그렇게 비밀키를 생성하면 특정 브라우저 모듈과 도메인에 대해 유일하게 부여되는 비밀키를 생성할 수 있다.The server 20 generates and stores a secret key (step 110). The secret key may be generated by using the collected browser identification information and a domain key (identification key assigned to each domain address). If you generate a secret key like that, you can create a unique secret key for a particular browser module and domain.

브라우저 모듈(10)은, 랜덤키를 생성하고 저장한다(단계 115). 생성된 랜덤키는 단계(120)에서 서버(20)로 전달되며, 이 때 화이트박스 암호 테이블도 요청한다. 서버(20)는, 화이트박스 암호 테이블과 DEC(비밀키, 랜덤키)를 생성한다(단계 125). 화이트 박스 암호 테이블은 비밀키를 이용하여 생성될 수 있으며, DEC(비밀키, 랜덤키)는 랜덤키에 대해서 비밀키를 이용하여 복호 함수로 인코딩한 값이다. 화이트 박스 암호 테이블은 비밀키 및 브라우저 식별 정보에 기초하여 생성될 수도 있다.The browser module 10 generates and stores a random key (step 115). The generated random key is transmitted to the server 20 in step 120, at which time the white box encryption table is also requested. The server 20 generates a white box encryption table and a DEC (secret key, random key) (step 125). The white box encryption table can be generated using a secret key, and DEC (secret key, random key) is a value encoded by a decryption function using a secret key for a random key. The white box encryption table may be generated based on the secret key and browser identification information.

서버(20)는, 화이트박스 암호 테이블과 DEC(비밀키, 랜덤키)를 브라우저 모듈(10)로 전송한다(단계 130).The server 20 transmits the white box encryption table and the DEC (secret key, random key) to the browser module 10 (step 130).

브라우저 모듈(10)은, DEC(비밀키, 랜덤키)과 랜덤키을 검증한다(단계 135). 구체적인 검증 과정은 다음과 같다. 브라우저 모듈(10)은, 단계(130)에서 수신한 화이트박스 암호 테이블을 이용하여 DEC(비밀키, 랜덤키)에 대해 암호화(ENC(DEC(비밀키, 랜덤키)))를 수행하여 랜덤키을 획득한다. 이렇게 획득한 랜덤키가 단계(115)에서 생성하여 저장되어 있는 랜덤키와 동일한지를 비교하여 랜덤키를 검증한다.The browser module 10 verifies the DEC (secret key, random key) and the random key (step 135). The specific verification process is as follows. The browser module 10 performs encryption (ENC (DEC (secret key, random key))) for the DEC (secret key, random key) using the white box encryption table received in step 130 to generate a random key. Acquire. The random key is verified by comparing whether the obtained random key is identical to the random key generated and stored in step 115.

화이트 박스 암호 테이블 생성에 브라우저 식별 정보가 사용되었다면 단계(135)에서 브라우저 식별 정보 검증을 수행할 수 있다. 브라우저 모듈(10)이 브라우저 식별 정보를 수집하고, 화이트 박스 암호 테이블에 포함되어 있는 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 검증을 수행한다.If browser identification information was used to generate the white box password table, the browser identification information verification may be performed in step 135. The browser module 10 collects the browser identification information and performs verification using "information for verifying the browser identification information" included in the white box encryption table.

랜덤키 검증 (및 브라우저 식별 정보 검증)에 성공하면 브라우저 모듈(10)은, 화이트박스 암호 테이블을 저장한다(단계140). 화이트박스 암호 테이블은 해당 도메인 로컬 스토리지에 저장될 수 있다.If the random key verification (and browser identification information verification) succeeds, the browser module 10 stores the whitebox encryption table (step 140). The whitebox password table may be stored in the domain local storage.

브라우저 모듈(10)은, 화이트박스 암호 테이블을 이용하여 정보를 암호화한다(단계 145). 암호화된 정보는 브라우저의 메모리 또는 저장 영역에 저장될 수 있다.The browser module 10 encrypts the information using the white box encryption table (step 145). The encrypted information can be stored in the memory or storage area of the browser.

화이트 박스 암호 테이블 생성에 브라우저 식별 정보가 사용되었다면 암호화에 앞서, 브라우저 식별 정보 검증을 수행할 수 있다. 브라우저 모듈(10)이 브라우저 식별 정보를 수집하고, 화이트 박스 암호 테이블에 포함되어 있는 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 검증을 수행한다. 검증에 성공하면 화이트 박스 암호화를 수행한다.If browser identification information is used to generate the white box encryption table, the browser identification information verification may be performed prior to encryption. The browser module 10 collects the browser identification information and performs verification using "information for verifying the browser identification information" included in the white box encryption table. If the verification succeeds, white box encryption is performed.

브라우저 모듈(10)은, 암호화된 정보를 서버(20)로 전송한다(단계 150). 서버는 비밀키를 검증하고, 검증에 성공하면 비밀키를 사용하여 암호화된 정보를 복호화한다(단계 155). 비밀키 검증은 단계(110)에서 생성할 때와 동일한 프로세스를 거쳐서 브라우저 식별 정보와 도메인 키에 기초하여 생성한 비밀키가 단계(110)에서 생성되어 저장된 비밀키와 비교하는 과정을 거쳐서 수행된다.The browser module 10 transmits the encrypted information to the server 20 (step 150). The server verifies the secret key and, if successful, decrypts the encrypted information using the secret key (step 155). The secret key verification is performed by comparing the secret key generated based on the browser identification information and the domain key with the secret key generated in step 110 through the same process as when generated in step 110.

본 발명에 따르면, 서버(20)단에서는 통상적인 비밀키를 이용한 대칭키 암호화 방식을 따르고, 브라우저 모듈(10)단에서는 화이트박스 암호 테이블을 이용한 암호화 방식을 따른다. 브라우저 모듈(10)에는 비밀키가 전달되지도 저장되지도 않기 때문에 상대적으로 해킹 공격에 노출될 가능성이 높은 브라우저 모듈에서 화이트박스 암호화를 사용함으로써 웹 표준 자바 스크립트 환경에서 대칭키 암호화 방식의 약점을 보완할 수 있는 작용효과가 제공된다.According to the present invention, the server 20 stage follows a symmetric key encryption scheme using a conventional secret key, and the browser module 10 stage follows an encryption scheme using a white box encryption table. Since the browser module 10 is neither delivered nor stored with the secret key, the browser module 10 uses whitebox encryption in a browser module that is more likely to be exposed to hacking attacks to compensate for the weakness of symmetric key encryption in a web standard JavaScript environment. The working effect is provided.

도 2에는 본 발명의 다른 형태에 의한 정보 보호 방법의 흐름도가 도시되어 있다.2 is a flowchart of an information protection method according to another embodiment of the present invention.

브라우저 모듈(10)은, 통신망을 통해 서버(20)에 접속한다(단계 200).The browser module 10 connects to the server 20 via a communication network (step 200).

서버(20)는, 브라우저 식별 정보를 수집한다(단계 205). 브라우저 식별 정보는 브라우저 헤더 정보 및 브라우저 지문 정보 중 적어도 어느 하나를 포함할 수 있다.The server 20 collects browser identification information (step 205). The browser identification information may include at least one of browser header information and browser fingerprint information.

서버(20)는, 제1 비밀키와 제2 비밀키를 생성하고 저장하는데(단계 210), 각각의 비밀키는 수집한 브라우저 식별 정보와 도메인 키(도메인 주소별로 할당되는 식별키)를 이용하여 생성할 수 있다.The server 20 generates and stores a first secret key and a second secret key (step 210), wherein each secret key uses collected browser identification information and a domain key (identification key assigned for each domain address). Can be generated.

브라우저 모듈(10)은, 랜덤키를 생성하고 저장한다(단계 215). 생성된 랜덤키는 단계(220)에서 서버(20)로 전달되며, 이 때 화이트박스 암호 테이블 및 화이트박스 복호 테이블도 요청한다. 서버(20)는, 제1 비밀키에 기초하여 화이트박스 암호 테이블을, 제2 비밀키에 기초하여 화이트박스 복호 테이블을 생성하고, ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키))를 생성한다(단계 225). 이 값은, 먼저 랜덤키에 대해서 제1 비밀키를 이용하여 복호 함수로 인코딩한 값인 DEC(제1 비밀키, 랜덤키)를 생성하고, 그 값에 대해서 제2 비밀키를 이용하여 암호 함수로 인코딩한 값을 산출한다(이 표현이 맞는지 확인 부탁드립니다).The browser module 10 generates and stores a random key (step 215). The generated random key is transmitted to the server 20 in step 220, at which time the white box encryption table and the white box decryption table are also requested. The server 20 generates a white box decryption table based on the first secret key, and a white box decryption table based on the second secret key, and generates an ENC (second secret key, DEC (first secret key, random key). )) (Step 225). This value first generates a DEC (first secret key, a random key), which is a value encoded with a decryption function using a first secret key for a random key, and then uses a second secret key as a cryptographic function for the value. Calculate the encoded value (make sure this expression is correct).

화이트 박스 암호 테이블은 제1 비밀키 및 브라우저 식별 정보에 기초하여 생성될 수도 있다. 화이트 박스 복호 테이블은 제2 비밀키 및 브라우저 식별 정보에 기초하여 생성될 수도 있다.The white box encryption table may be generated based on the first secret key and browser identification information. The white box decryption table may be generated based on the second secret key and browser identification information.

서버(20)는, 화이트박스 암호 테이블과, 화이트박스 복호 테이블과, ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키))를 브라우저 모듈(10)로 전달한다(단계 230).The server 20 forwards the white box encryption table, the white box decryption table, and the ENC (second secret key, DEC (first secret key, random key)) to the browser module 10 (step 230).

브라우저 모듈(10)은, ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키)과 랜덤키을 검증한다(단계 235). 구체적인 검증 과정은 다음과 같다. 브라우저 모듈(10)은, 단계(130)에서 수신한 화이트박스 복호 테이블을 이용하여 ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키))에 대해 복호화(DEC(ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키)))를 수행하여 DEC(제1 비밀키, 랜덤키)를 획득하고, 화이트박스 암호 테이블을 이용하여 DEC(제1 비밀키, 랜덤키)에 대해 암호화(ENC(DEC(제1 비밀키, 랜덤키)))를수행하여 랜덤키를 획득한다.The browser module 10 verifies the ENC (second secret key, DEC (first secret key, random key)) and the random key (step 235). The detailed verification process is as follows. Decryption (ENC (second secret key, DEC (first secret key)) for ENC (second secret key, DEC (first secret key, random key)) using the white box decoding table received at 130 , Random key))) to obtain DEC (first secret key, random key), and encrypt (ENC (DEC (first key) to DEC (first secret key, random key) using a white box encryption table) Secret key, random key))) to obtain a random key.

이렇게 획득한 랜덤키가 단계(215)에서 생성하여 저장되어 있는 랜덤키와 동일한지를 비교하여 랜덤키를 검증한다.The random key is verified by comparing whether the obtained random key is identical to the random key generated and stored in step 215.

화이트 박스 암호 테이블과 화이트 박스 복호 테이블의 생성에 브라우저 식별 정보가 사용된 경우에는, 브라우저 식별 정보의 검증이 수행될 수 있다. 브라우저 식별 정보의 검증은 도 1의 실시예에서 설명한 것과 대동소이하다.When browser identification information is used to generate the white box encryption table and the white box decryption table, verification of the browser identification information can be performed. Verification of the browser identification information is similar to that described in the embodiment of FIG.

랜덤키 검증 (및 브라우저 식별 정보 검증)에 성공하면 브라우저 모듈(10)은, 화이트박스 암호 테이블 및 화이트박스 복호 테이블을 저장한다(단계 240). 화이트박스 암호 테이블과 화이트박스 복호 테이블은 해당 도메인 로컬 스토리지에 저장될 수 있다.If the random key verification (and browser identification information verification) succeeds, the browser module 10 stores the whitebox encryption table and the whitebox decryption table (step 240). The whitebox password table and the whitebox decryption table may be stored in the corresponding domain local storage.

브라우저 모듈(10)은, 화이트박스 암호 테이블을 이용하여 정보를 암호화한다(단계 245). 암호화된 정보는 브라우저의 메모리 또는 저장 영역에 저장될 수 있다.The browser module 10 encrypts the information using the white box encryption table (step 245). The encrypted information can be stored in the memory or storage area of the browser.

화이트 박스 암호 테이블 생성에 브라우저 식별 정보가 사용되었다면 암호화에 앞서, 브라우저 식별 정보 검증을 수행할 수 있다. 브라우저 모듈(10)이 브라우저 식별 정보를 수집하고, 화이트 박스 암호 테이블에 포함되어 있는 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 검증을 수행한다. 검증에 성공하면 화이트 박스 암호화를 수행한다.If browser identification information is used to generate the white box encryption table, the browser identification information verification may be performed prior to encryption. The browser module 10 collects the browser identification information and performs verification using "information for verifying the browser identification information" included in the white box encryption table. If the verification succeeds, white box encryption is performed.

브라우저 모듈(10)은, 암호화된 정보를 서버(20)로 전송한다(단계 250). 서버는 제1 비밀키 및 제2 비밀키를 검증하고, 검증에 성공하면 제1 비밀키를 사용하여 암호화된 정보를 복호화한다(단계 255). 비밀키 검증은 단계(210)에서 생성할 때와 동일한 프로세스를 거쳐서 브라우저 식별 정보와 도메인 키에 기초하여 생성한 비밀키가 단계(210)에서 생성되어 저장된 비밀키와 비교하는 과정을 거쳐서 수행된다.The browser module 10 transmits the encrypted information to the server 20 (step 250). The server verifies the first secret key and the second secret key, and if successful, decrypts the encrypted information using the first secret key (step 255). The secret key verification is performed by comparing the secret key generated based on the browser identification information and the domain key with the secret key generated in step 210 and then stored in the same process as when generated in step 210.

서버(20)가 브라우저 모듈(10)로 전송할 정보가 있으면, 제2 비밀키를 이용하여 암호화한다(단계 260). 서버에서 제2 비밀키에 의해 암호화된 정보는 브라우저 모듈(10)로 전달된다(단계 265).If the server 20 has information to send to the browser module 10, it encrypts using the second secret key (step 260). Information encrypted by the second secret key at the server is passed to the browser module 10 (step 265).

브라우저 모듈(10)은, 화이트박스 복호 테이블을 이용하여 수신한 정보를 복호화한다(단계 270).The browser module 10 decodes the received information using the white box decoding table (step 270).

화이트 박스 복호 테이블 생성에 브라우저 식별 정보가 사용되었다면 복호화에 앞서, 브라우저 식별 정보 검증을 수행할 수 있다. 브라우저 모듈(10)이 브라우저 식별 정보를 수집하고, 화이트 박스 복호 테이블에 포함되어 있는 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 검증을 수행한다. 검증에 성공하면 화이트 박스 복호화를 수행한다.If browser identification information is used to generate the white box decoding table, the browser identification information verification may be performed prior to decryption. The browser module 10 collects browser identification information and performs verification using "information for verifying browser identification information" included in the white box decoding table. If the verification succeeds, white box decryption is performed.

도 3에는 본 발명의 또 다른 실시에에 의한 정보 보호 방법의 흐름도가 도시되어 있다.3 is a flowchart of an information protection method according to another embodiment of the present invention.

브라우저 모듈(10)은, 통신망을 통해 서버(20)에 접속한다(단계 300).The browser module 10 connects to the server 20 via a communication network (step 300).

서버(20)는, 브라우저 식별 정보를 수집한다(단계 305). 브라우저 식별 정보는 브라우저 헤더 정보 및 브라우저 지문 정보 중 적어도 어느 하나를 포함할 수 있다.The server 20 collects browser identification information (step 305). The browser identification information may include at least one of browser header information and browser fingerprint information.

서버(20)는, 비밀키를 생성하고 저장하는데(단계 310), 비밀키는 수집한 브라우저 식별 정보와 도메인 키(도메인 주소별로 할당되는 식별키)를 이용하여 생성할 수 있다. 그렇게 비밀키를 생성하면 특정 브라우저 모듈과 도메인에 대해 유일하게 부여되는 비밀키를 생성할 수 있다.The server 20 generates and stores a secret key (step 310), and the secret key may be generated by using the collected browser identification information and a domain key (identification key assigned to each domain address). If you generate a secret key like that, you can create a unique secret key for a particular browser module and domain.

브라우저 모듈(10)은, 랜덤키를 생성하고 저장한다(단계 315). 생성된 랜덤키는 단계(320)에서 서버(20)로 전달되며, 이 때 화이트박스 암호 테이블과 복호 테이블도 요청한다. 서버(20)는, 화이트박스 암호 테이블 및 화이트 박스 복호 테이블과 ENC(비밀키, 랜덤키)를 생성한다(단계 325 및 330). 화이트 박스 암호 테이블과 복호 테이블은 비밀키를 이용하여 생성될 수 있으며, ENC(비밀키, 랜덤키)는 랜덤키에 대해서 비밀키를 이용하여 암호 함수로 인코딩한 값이다. 화이트 박스 암호 테이블과 복호 테이블은 비밀키 및 브라우저 식별 정보에 기초하여 생성될 수도 있다.The browser module 10 generates and stores a random key (step 315). The generated random key is transmitted to the server 20 in step 320, and the white box encryption table and the decryption table are also requested. The server 20 generates a white box encryption table, a white box decryption table, and an ENC (secret key, random key) (steps 325 and 330). A white box encryption table and a decryption table can be generated using a secret key, and ENC (secret key, random key) is a value encoded by a secret function using a secret key for a random key. The white box encryption table and decryption table may be generated based on the secret key and browser identification information.

서버(20)는, 화이트박스 암호 테이블과 DEC(비밀키, 랜덤키)를 브라우저 모듈(10)로 전송한다(단계 335).The server 20 transmits the white box encryption table and the DEC (secret key, random key) to the browser module 10 (step 335).

브라우저 모듈(10)은, ENC(비밀키, 랜덤키)과 랜덤키을 검증한다(단계 340). 구체적인 검증 과정은 다음과 같다. 브라우저 모듈(10)은, 단계(335)에서 수신한 화이트박스 복호 테이블을 이용하여 ENC(비밀키, 랜덤키)에 대해 복호화를 수행하여 랜덤키을 획득한다. 이렇게 획득한 랜덤키가 단계(115)에서 생성하여 저장되어 있는 랜덤키와 동일한지를 비교하여 랜덤키를 검증한다.The browser module 10 verifies the ENC (secret key, random key) and the random key (step 340). The specific verification process is as follows. The browser module 10 decrypts the ENC (secret key, random key) using the white box decoding table received in step 335 to obtain a random key. The random key is verified by comparing whether the obtained random key is identical to the random key generated and stored in step 115.

화이트 박스 암호 테이블과 복호 테이블 생성에 브라우저 식별 정보가 사용되었다면 단계(340)에서 브라우저 식별 정보 검증을 수행할 수 있다. 브라우저 모듈(10)이 브라우저 식별 정보를 수집하고, 화이트 박스 암호(복호) 테이블에 포함되어 있는 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 검증을 수행한다.If browser identification information is used to generate the white box encryption table and the decryption table, the browser identification information verification may be performed in step 340. The browser module 10 collects the browser identification information and performs verification using "information for verifying browser identification information" included in the white box encryption (decryption) table.

랜덤키 검증 (및 브라우저 식별 정보 검증)에 성공하면 브라우저 모듈(10)은, 화이트박스 암호 테이블과 복호 테이블을 저장한다(단계345). 화이트박스 암호 테이블과 복호 테이블은 해당 도메인 로컬 스토리지에 저장될 수 있다.If the random key verification (and browser identification information verification) succeeds, the browser module 10 stores the whitebox encryption table and decryption table (step 345). The whitebox password table and the decryption table may be stored in the corresponding domain local storage.

브라우저 모듈(10)은, 화이트박스 암호 테이블을 이용하여 정보를 암호화한다(단계 350). 암호화된 정보는 브라우저의 메모리 또는 저장 영역에 저장될 수 있다.The browser module 10 encrypts the information using the white box encryption table (step 350). The encrypted information can be stored in the memory or storage area of the browser.

화이트 박스 암호 테이블 생성에 브라우저 식별 정보가 사용되었다면 암호화에 앞서, 브라우저 식별 정보 검증을 수행할 수 있다. 브라우저 모듈(10)이 브라우저 식별 정보를 수집하고, 화이트 박스 암호 테이블에 포함되어 있는 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 검증을 수행한다. 검증에 성공하면 화이트 박스 암호화를 수행한다.If browser identification information is used to generate the white box encryption table, the browser identification information verification may be performed prior to encryption. The browser module 10 collects the browser identification information and performs verification using "information for verifying the browser identification information" included in the white box encryption table. If the verification succeeds, white box encryption is performed.

브라우저 모듈(10)은, 암호화되어 저장된 정보를 사용하려 할 때에 화이트 박스 복호 테이블을 이용하여 복호화를 수행한다(단계 355).When the browser module 10 tries to use the encrypted and stored information, the browser module 10 performs decryption using the white box decryption table (step 355).

화이트 박스 복호 테이블 생성에 브라우저 식별 정보가 사용되었다면 복호화에 앞서, 브라우저 식별 정보 검증을 수행할 수 있다. 브라우저 모듈(10)이 브라우저 식별 정보를 수집하고, 화이트 박스 복호 테이블에 포함되어 있는 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 검증을 수행한다. 검증에 성공하면 화이트 박스 복호화를 수행한다.If browser identification information is used to generate the white box decoding table, the browser identification information verification may be performed prior to decryption. The browser module 10 collects browser identification information and performs verification using "information for verifying browser identification information" included in the white box decoding table. If the verification succeeds, white box decryption is performed.

본 발명에 따르면, 상대적으로 해킹 공격에 노출될 가능성이 높은 브라우저 모듈에서 화이트박스 암호화 및 복호화를 사용함으로써 웹 표준 자바 스크립트 환경에서 대칭키 암호화 방식의 약점을 보완할 수 있는 작용효과가 제공된다.According to the present invention, the use of whitebox encryption and decryption in a browser module that is relatively exposed to a hacking attack provides an effect that can compensate for the weakness of the symmetric key encryption scheme in a web standard JavaScript environment.

본 발명에 의하면 웹 표준 자바 스크립트 환경에 있어서 브라우저 모듈과 서버간의 대칭키 암호화 통신에 있어서 상대적으로 비밀키 노출과 공격이 용이한 브라우저 모듈에 비밀키를 보유하지 않고 비밀키를 서버단에만 보유한 채로 브라우저 모듈에서는 화이트박스 암호 방식에 따라 암호화/복호화를 함으로써 종래 기술에 비해 보안성이 고양되는 작용효과가 제공된다. 그리고 화이트 박스와 브라우저 식별 정보가 결합된 모델을 적용함으로써, RSA 등의 공개키 기반 키교환시에 취약점인 중간자 공격에 대한 방어가 가능한 효과가 있다.According to the present invention, in a web standard JavaScript environment, in a symmetric key encrypted communication between a browser module and a server, a browser is maintained with only a secret key at the server side without having a secret key in a browser module that is relatively easy to expose and attack. In the module, encryption / decryption is performed according to a white box encryption method, thereby providing an effect of enhancing security compared to the prior art. In addition, by applying a model that combines white box and browser identification information, it is possible to protect against man-in-the-middle attack, which is a weak point in public key-based key exchange such as RSA.

이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.While the invention has been described above with reference to the accompanying drawings, the scope of the invention is determined by the claims that follow, and should not be construed as limited to the embodiments and / or drawings described above. And it should be clearly understood that improvements, changes and modifications apparent to those skilled in the art of the invention described in the claims are included in the scope of the present invention.

10: 브라우저 모듈
20: 서버
10: browser module
20: server

Claims (18)

웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법에 있어서,
서버가, 브라우저 식별 정보를 수집하는 제1 단계와,
서버가, 브라우저 식별 정보 및 도메인 키에 기초하여 비밀키를 생성하고 저장하는 제2 단계와,
브라우저 모듈이, 랜덤키를 생성하고 저장하는 제3 단계와,
브라우저 모듈이, 서버로 랜덤키를 전송하고 화이트박스 암호 테이블을 요청하는 제4 단계와,
서버가, 비밀키에 기초하여 화이트 박스 암호 테이블과, DEC(비밀키, 랜덤키)를 생성하는 제5 단계와,
서버가, 화이트박스 암호 테이블 및 DEC(비밀키, 랜덤키)를 브라우저 모듈로 전송하는 제6 단계와,
브라우저 모듈이, 랜덤키를 검증하는 제7 단계와,
제7 단계의 검증에 성공하면 서버로 전송할 정보의 암호화에 사용할 수 있도록 브라우저 모듈이 화이트박스 암호 테이블을 저장하는 제8 단계를 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
In a method of protecting information through white box encryption in a web standard environment,
A first step of the server collecting browser identification information,
A second step of the server generating and storing the secret key based on the browser identification information and the domain key,
A third step of the browser module generating and storing a random key;
A fourth step of the browser module sending a random key to the server and requesting a whitebox encryption table;
A fifth step of the server generating a white box encryption table and a DEC (secret key, random key) based on the secret key,
A sixth step of the server sending a whitebox cryptographic table and a DEC (secret key, random key) to the browser module,
A seventh step of the browser module verifying the random key,
An eighth step in which the browser module stores the whitebox password table for use in encrypting information to be sent to the server upon successful verification of the seventh step,
How to protect information with white box encryption in a web standard environment.
청구항 1에 있어서,
화이트 박스 암호 테이블은 비밀키 및 브라우저 식별 정보에 기초하여 생성되는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 1,
The white box password table is generated based on the secret key and browser identification information.
How to protect information with white box encryption in a web standard environment.
청구항 2에 있어서,
제8 단계 전에 수행되며, 브라우저 모듈이, 브라우저 식별 정보를 수집하고, 화이트 박스 암호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제7-1 단계를 더 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 2,
Step 7-1 performed before the eighth step, wherein the browser module collects the browser identification information and verifies the browser identification information using the "information for verifying the browser identification information" included in the white box encryption table. Further comprising,
How to protect information with white box encryption in a web standard environment.
청구항 1 또는 청구항 2에 있어서,
서버가, 브라우저 모듈이 화이트박스 암호 테이블을 이용하여 암호화한 암호화 정보를 수신하는 제9-1 단계와,
서버가, 비밀키로 암호화 정보를 복호화하는 제9-2 단계를 더 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 1 or 2,
Step 9-1, wherein the server receives the encrypted information encrypted by the browser module using the white box encryption table;
The server further includes a step 9-2 of decrypting the encryption information with the secret key,
How to protect information with white box encryption in a web standard environment.
청구항 2 또는 청구항 3에 있어서,
브라우저 모듈이, 화이트박스 암호 테이블을 이용하여 암호화하기 이전에 브라우저 식별 정보를 수집하고, 화이트박스 암호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제10-1 단계를 더 포함하는
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 2 or 3,
The browser module collects the browser identification information before encrypting it using the whitebox password table, and verifies the browser identification information using the "information for verifying browser identification information" included in the whitebox password table. Further comprising 10-1 steps
How to protect information with white box encryption in a web standard environment.
청구항 1 또는 청구항 2에 있어서,
제7 단계는,
화이트박스 암호 테이블을 이용하여 ENC(DEC(비밀키, 랜덤키))를 산출하여 랜덤키를 획득하는 제7-1 단계와,
제7-1 단계에서 획득한 랜덤키와, 제3 단계에서 생성한 랜덤키를 비교하는 제7-2 단계를 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 1 or 2,
The seventh step is
Step 7-1 of calculating ENC (DEC (secret key, random key)) using the white box encryption table to obtain a random key,
Comprising a 7-2 step of comparing the random key obtained in the step 7-1 and the random key generated in the third step,
How to protect information with white box encryption in a web standard environment.
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법에 있어서,
서버가, 브라우저 식별 정보를 수집하는 제1 단계와,
서버가, 브라우저 식별 정보 및 도메인 키에 기초하여 제1 비밀키 및 제2 비밀키를 생성하고 저장하는 제2 단계와,
브라우저 모듈이, 랜덤키를 생성하고 저장하는 제3 단계와,
브라우저 모듈이, 서버로 랜덤키를 전송하고 화이트박스 암호 테이블을 요청하는 제4 단계와,
서버가, 제1 비밀키에 기초한 화이트박스 암호 테이블과, 제2 비밀키에 기초한 화이트박스 복호 테이블과, ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키))를 생성하는 제5 단계와,
서버가, 화이트박스 암호 테이블과,화이트박스 복호 테이블과, ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키))를 브라우저 모듈로 전송하는 제6 단계와,
브라우저 모듈이, 랜덤키를 검증하는 제7 단계와,
제7 단계의 검증에 성공하면, 서버로 전송할 정보의 암호화와 서버로부터 수신한 정보의 복호화에 사용할 수 있도록 브라우저 모듈이 화이트박스 암호 테이블 및 화이트박스 복호 테이블을 저장하는 제8 단계를 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
In a method of protecting information through white box encryption in a web standard environment,
A first step of the server collecting browser identification information,
A second step of the server generating and storing the first secret key and the second secret key based on the browser identification information and the domain key,
A third step of the browser module generating and storing a random key;
A fourth step of the browser module sending a random key to the server and requesting a whitebox encryption table;
A fifth server for generating a white box encryption table based on the first secret key, a white box decryption table based on the second secret key, and an ENC (second secret key, DEC (first secret key, random key)) Steps,
A sixth step in which the server sends the white box encryption table, the white box decryption table, the ENC (second secret key, DEC (first secret key, random key)) to the browser module;
A seventh step of the browser module verifying the random key,
If the verification in the seventh step is successful, the browser module includes an eighth step of storing the whitebox encryption table and the whitebox decryption table for use in encrypting information to be transmitted to the server and decrypting information received from the server.
How to protect information with white box encryption in a web standard environment.
청구항 7에 있어서,
화이트 박스 암호 테이블은 제1 비밀키 및 브라우저 식별 정보에 기초하여 생성되며, 화이트 박스 복호 테이블은 제2 비밀키 및 브라우저 식별 정보에 기초하여 생성되는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 7,
The white box encryption table is generated based on the first secret key and the browser identification information, and the white box decryption table is generated based on the second secret key and the browser identification information.
How to protect information with white box encryption in a web standard environment.
청구항 8에 있어서,
제8 단계 전에 수행되며, 브라우저 모듈이, 브라우저 식별 정보를 수집하고, 화이트 박스 암호 테이블 또는 복호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여, 브라우저 식별 정보를 검증하는 제7-1 단계를 더 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 8,
Performed before the eighth step, the browser module collects the browser identification information and verifies the browser identification information by using the " information that can verify the browser identification information " included in the white box encryption table or the decryption table. Further comprising step 7-1,
How to protect information with white box encryption in a web standard environment.
청구항 7 또는 청구항 8에 있어서,
브라우저 모듈이, 화이트박스 암호 테이블을 이용하여 정보를 암호화한 암호화 정보를 서버로 전송하는 제9 단계와,
서버가, 제1 비밀키를 이용하여 암호화 정보를 복호화하는 제10 단계를 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 7 or 8,
A ninth step of the browser module transmitting the encrypted information encrypted with the information using the white box encryption table to the server;
A tenth step of the server decrypting the encrypted information using the first secret key,
How to protect information with white box encryption in a web standard environment.
청구항 10에 있어서,
서버가, 브라우저 모듈로 전송할 정보를 제2 비밀키를 이용하여 암호화하여 브라우저 모듈로 전송하는 제11 단계와,
브라우저 모듈이, 제11 단계에서 수신한 암호화 정보를 화이트박스 복호 테이블을 이용하여 복호화하는 제12 단계를 더 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 10,
An eleventh step of the server encrypting the information to be transmitted to the browser module using the second secret key and transmitting the encrypted information to the browser module;
The browser module may further include a twelfth step of decrypting the encryption information received in the eleventh step by using the whitebox decryption table.
How to protect information with white box encryption in a web standard environment.
청구항 10에 있어서,
브라우저 모듈이, 화이트박스 암호 테이블을 이용하여 암호화하기 이전에 브라우저 식별 정보를 수집하고, 화이트박스 암호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제13-1 단계를 더 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 10,
The browser module collects the browser identification information before encrypting using the whitebox password table, and verifies the browser identification information by using the "information for verifying browser identification information" included in the whitebox password table. Further comprising step 13-1,
How to protect information with white box encryption in a web standard environment.
청구항 7 또는 청구항 8에 있어서,
제7 단계는,
화이트박스 암호 테이블 및 복호 테이블을 이용하여 ENC(제2 비밀키, DEC(제1 비밀키, 랜덤키))로부터 랜덤키를 획득하는 제7-1 단계와,
제7-1 단계에서 획득한 랜덤키와, 제3 단계에서 생성한 랜덤키를 비교하는 제7-2 단계를 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 7 or 8,
The seventh step is
A step 7-1 of obtaining a random key from an ENC (second secret key, DEC (first secret key, random key)) using a white box encryption table and a decryption table,
Comprising a 7-2 step of comparing the random key obtained in the step 7-1 and the random key generated in the third step,
How to protect information with white box encryption in a web standard environment.
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법에 있어서,
서버가, 브라우저 식별 정보를 수집하는 제1 단계와,
서버가, 브라우저 식별 정보 및 도메인 키에 기초하여 비밀키를 생성하고 저장하는 제2 단계와,
브라우저 모듈이, 랜덤키를 생성하고 저장하는 제3 단계와,
브라우저 모듈이, 서버로 랜덤키를 전송하고 화이트박스 암호 테이블 및 화이트 박스 복호 테이블을 요청하는 제4 단계와,
서버가, 비밀키에 기초하여 화이트 박스 암호 테이블과, ENC(비밀키, 랜덤키)를 생성하는 제5 단계와,
서버가, 화이트박스 암호 테이블과 화이트 박스 복호 테이블 및 ENC(비밀키, 랜덤키)를 브라우저 모듈로 전송하는 제6 단계와,
브라우저 모듈이, 랜덤키를 검증하는 제7 단계와,
제7 단계의 검증에 성공하면, 브라우저 내에서 정보의 암호화 및 복호화에 사용할 수 있도록 브라우저 모듈이 화이트박스 암호 테이블과 화이트 박스 복호 테이블을 저장하는 제8 단계를 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
In a method of protecting information through white box encryption in a web standard environment,
A first step of the server collecting browser identification information,
A second step of the server generating and storing the secret key based on the browser identification information and the domain key,
A third step of the browser module generating and storing a random key;
A fourth step of the browser module sending a random key to the server and requesting a white box encryption table and a white box decryption table;
A fifth step of the server generating a white box encryption table and an ENC (secret key, random key) based on the secret key,
A sixth step of the server transmitting the white box encryption table, the white box decryption table, and the ENC (secret key, random key) to the browser module;
A seventh step of the browser module verifying the random key,
If the verification of the seventh step is successful, the browser module includes an eighth step of storing the whitebox encryption table and the whitebox decryption table for use in encrypting and decrypting information in the browser.
How to protect information with white box encryption in a web standard environment.
청구항 14에 있어서,
화이트 박스 암호 테이블과 화이트 박스 복호 테이블은 비밀키 및 브라우저 식별 정보에 기초하여 생성되는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 14,
The white box encryption table and the white box decryption table are generated based on the secret key and browser identification information.
How to protect information with white box encryption in a web standard environment.
청구항 15에 있어서,
제8 단계 전에 수행되며, 브라우저 모듈이, 브라우저 식별 정보를 수집하고, 화이트 박스 암호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제7-1 단계를 더 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to claim 15,
Step 7-1 performed before the eighth step, wherein the browser module collects the browser identification information and verifies the browser identification information using the "information for verifying the browser identification information" included in the white box encryption table. Further comprising,
How to protect information with white box encryption in a web standard environment.
청구항 14 내지 청구항 16 중 어느 하나의 청구항에 있어서,
제7 단계는,
화이트 박스 복호 테이블을 이용하여 ENC(비밀키, 랜덤키)에 대해 복호화를 수행하여 랜덤키을 획득하는 제7-1 단계와,
제7-1 단계에서 획득한 랜덤키와, 제3 단계에서 생성한 랜덤키를 비교하는 제7-2 단계를 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to any one of claims 14 to 16,
The seventh step is
Step 7-1 of decoding the ENC (secret key, random key) using the white box decoding table to obtain a random key,
Comprising a 7-2 step of comparing the random key obtained in the step 7-1 and the random key generated in the third step,
How to protect information with white box encryption in a web standard environment.
청구항 14 내지 청구항 16 중 어느 하나의 청구항에 있어서,
브라우저 모듈이, 화이트박스 암호 테이블을 이용하여 암호화하기 이전에 브라우저 식별 정보를 수집하고, 화이트박스 암호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제10-1 단계와,
브라우저 모듈이, 화이트박스 복호 테이블을 이용하여 복호화하기 이전에 브라우저 식별 정보를 수집하고, 화이트박스 복호 테이블에 포함된 "브라우저 식별 정보를 검증할 수 있는 정보"를 이용하여 브라우저 식별 정보를 검증하는 제10-2 단계를 더 포함하는,
웹 표준 환경에서 화이트 박스 암호화를 통한 정보 보호 방법.
The method according to any one of claims 14 to 16,
The browser module collects the browser identification information before encrypting using the whitebox password table, and verifies the browser identification information by using the "information for verifying browser identification information" included in the whitebox password table. With 10-1 steps,
The browser module collects browser identification information before decrypting using the whitebox decoding table, and verifies the browser identification information by using "information for verifying browser identification information" included in the whitebox decoding table. Further comprising 10-2 steps,
How to protect information with white box encryption in a web standard environment.
KR1020180060228A 2018-05-28 2018-05-28 Method for Protecting Information Using White-Box Cryptography Under Web Standard Environment KR20190135145A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180060228A KR20190135145A (en) 2018-05-28 2018-05-28 Method for Protecting Information Using White-Box Cryptography Under Web Standard Environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180060228A KR20190135145A (en) 2018-05-28 2018-05-28 Method for Protecting Information Using White-Box Cryptography Under Web Standard Environment

Publications (1)

Publication Number Publication Date
KR20190135145A true KR20190135145A (en) 2019-12-06

Family

ID=68837142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180060228A KR20190135145A (en) 2018-05-28 2018-05-28 Method for Protecting Information Using White-Box Cryptography Under Web Standard Environment

Country Status (1)

Country Link
KR (1) KR20190135145A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988330A (en) * 2020-08-28 2020-11-24 苏州中科安源信息技术有限公司 Information security protection system and method based on white-box encryption in distributed system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988330A (en) * 2020-08-28 2020-11-24 苏州中科安源信息技术有限公司 Information security protection system and method based on white-box encryption in distributed system

Similar Documents

Publication Publication Date Title
US11757662B2 (en) Confidential authentication and provisioning
CN109800584B (en) Identity or attribute encryption calculation method and system based on Intel SGX mechanism
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
KR100979576B1 (en) Methods for remotely changing a communications password
WO2021120871A1 (en) Authentication key negotiation method and apparatus, storage medium and device
CN110855671A (en) Trusted computing method and system
US9531540B2 (en) Secure token-based signature schemes using look-up tables
CN108347419A (en) Data transmission method and device
CN111614621B (en) Internet of things communication method and system
US10129025B2 (en) Binding data to a network in the presence of an entity with revocation capabilities
CN116244750A (en) Secret-related information maintenance method, device, equipment and storage medium
KR20140071775A (en) Cryptography key management system and method thereof
KR20190135145A (en) Method for Protecting Information Using White-Box Cryptography Under Web Standard Environment
US20200092096A1 (en) Method for secure management of secrets in a hierarchical multi-tenant environment
KR101677138B1 (en) Method of on-line/off-line electronic signature system for security of off-line token
CN118300905B (en) Ciphertext transmission method, device, equipment and medium based on secret authentication mode
EP4195590A1 (en) Secure data transmission
KR102005787B1 (en) Method for Encrypting Certificate
JP6404958B2 (en) Authentication system, method, program, and server
CN114240428A (en) Data transmission method and device, data transaction terminal and data supplier
CN115514480A (en) Data interaction method and readable storage medium
JP6153454B2 (en) Signature apparatus, method and program
CN114764503A (en) Data distribution method, device, equipment and storage medium
JP2005217665A (en) Communications system, transmitter, receiver and communication method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application