KR102372996B1 - 브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램 - Google Patents

브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램 Download PDF

Info

Publication number
KR102372996B1
KR102372996B1 KR1020210109034A KR20210109034A KR102372996B1 KR 102372996 B1 KR102372996 B1 KR 102372996B1 KR 1020210109034 A KR1020210109034 A KR 1020210109034A KR 20210109034 A KR20210109034 A KR 20210109034A KR 102372996 B1 KR102372996 B1 KR 102372996B1
Authority
KR
South Korea
Prior art keywords
information
identifier
candidate
user
users
Prior art date
Application number
KR1020210109034A
Other languages
English (en)
Inventor
홍승표
전진형
오채환
Original Assignee
(주)빅인사이트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)빅인사이트 filed Critical (주)빅인사이트
Priority to KR1020210109034A priority Critical patent/KR102372996B1/ko
Priority to PCT/KR2021/019403 priority patent/WO2023022307A1/ko
Application granted granted Critical
Publication of KR102372996B1 publication Critical patent/KR102372996B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/40Network security protocols

Abstract

컴퓨팅 장치에 의해 수행되는 방법에 있어서, 사용자들의 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제1정보를 획득하는 단계, 상기 제1정보에 기초하여 상기 사용자들 각각에 식별자를 부여하는 단계, 상기 사용자들 각각에 대하여 상기 식별자와 상기 제1정보를 매칭하여 저장하는 단계, 후보 사용자로부터 새로 획득되는 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득하는 단계, 상기 제2정보에 대응하는 후보 식별자를 획득하는 단계, 상기 제2정보의 적어도 일부에 대응하는 제1정보를 가지는 식별자 후보군을 추출하는 단계 및 상기 식별자 후보군과 상기 후보 식별자 간의 유사도에 기초하여 상기 후보 사용자의 식별자를 발급하는 단계를 포함하는, 브라우저 핑거프린팅을 통한 사용자 식별 방법이 개시된다.

Description

브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램{METHOD, APPARATUS AND PROGRAM FOR USER IDENTIFICATION THROUGH BROWSER FINGERPRINTING}
본 발명은 브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램에 관한 것이다. 보다 자세하게는 사용자들에 대해 식별값을 배정하고, 사용자들의 브라우저 정보 및 단말 정보를 수집하여 사용자의 식별값을 특정하는 브라우저 핑거프린팅을 통한 사용자 식별 방법 및 장치에 관한 것이다.
쿠키는 사용자가 특정 웹사이트를 방문했을 때 남는 이용 기록을 저장하는 파일로, 인터넷 광고 업체에서 사용자를 추적하기 위해 심는 파일이다. 쿠키는 사용자의 브라우저 이용 편의성을 제고하고, 사용자를 식별하여 맞춤형 광고를 제공하는 등 다양한 영역에서 활발하게 사용되고 있다. 단, 개인정보 보호 등의 이유로 쿠키의 사용을 점차적으로 제한하고자 하는 움직임이 있다. 예를 들어, 구글은 크롬(chrome) 브라우저의 제3자 쿠키(Third party cookie) 지원을 중단할 계획임을 알린 바 있다. 이와 같이 제3자 쿠키의 지원이 중단될 경우 특히 인터넷 광고 업체들은 제3자 쿠키를 활용한 리타겟팅 광고를 할 수 없게 된다.
이에, 인터넷 광고 업체에서는 사업을 진행하기 위해서 여러 웹사이트를 탐색하는 사용자를 식별하여 리타겟팅할 수 있는 새로운 기술의 개발이 필요하게 되었다. 이를 위해, 제3자 쿠키의 대안으로 브라우저 핑거프린트 기법을 이용한 사용자 추적 기법의 개발이 요구되고 있다.
본 발명이 해결하고자 하는 과제는 브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램을 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 방법은 사용자들의 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제1정보를 획득하는 단계, 상기 제1정보에 기초하여 상기 사용자들 각각에 식별자를 부여하는 단계, 상기 사용자들 각각에 대하여 상기 식별자와 상기 제1정보를 매칭하여 저장하는 단계, 후보 사용자로부터 새로 획득되는 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득하는 단계, 상기 제2정보에 대응하는 후보 식별자를 획득하는 단계, 상기 제2정보의 적어도 일부에 대응하는 제1정보를 가지는 식별자 후보군을 추출하는 단계 및 상기 식별자 후보군과 상기 후보 식별자 간의 유사도에 기초하여 상기 후보 사용자의 식별자를 발급하는 단계를 포함한다.
또한, 상기 식별자를 부여하는 단계는, 상기 사용자들 각각의 제1정보를 해시 알고리즘을 이용하여 가공함으로써 상기 사용자들 각각의 식별자를 생성하는 단계를 포함하고, 상기 후보 사용자의 식별자를 발급하는 단계는, 상기 식별자 후보군 중 상기 후보 식별자와 가장 유사한 식별자를 탐색하는 단계 및 상기 가장 유사한 식별자를 상기 후보 사용자의 식별자로 발급하는 단계를 포함할 수 있다.
또한, 상기 식별자를 부여하는 단계는, 상기 사용자들 각각의 제1정보를 행렬 형태로 가공함으로써 상기 사용자들 각각의 식별자를 생성하는 단계를 포함하고, 상기 후보 사용자의 식별자를 발급하는 단계는, 상기 식별자 후보군 및 상기 후보 식별자 간의 행렬 유사도를 산출하는 단계 및 상기 후보 식별자와 유사도가 가장 높은 식별자를 상기 후보 사용자의 식별자로 발급하는 단계를 포함할 수 있다.
또한, 상기 제1정보 및 상기 제2정보는 가변정보 및 비가변정보를 포함하고, 상기 식별자 후보군을 추출하는 단계는, 상기 제2정보 중 하나 이상의 비가변정보를 선택하는 단계 및 상기 선택된 비가변정보와 일치하는 제1정보를 가지는 식별자 후보군을 추출하는 단계를 포함할 수 있다.
또한, 상기 후보 사용자의 식별자를 발급하는 단계는, 상기 식별자 후보군으로부터 상기 후보 사용자의 식별자를 결정할 수 없는 경우, 상기 후보 식별자를 상기 후보 사용자의 식별자로 발급하는 단계 및 상기 후보 사용자에 대하여, 상기 후보 식별자 및 상기 제2정보를 매칭하여 저장하는 단계를 포함할 수 있다.
또한, 상기 식별자를 부여하는 단계는, 상기 제1정보에 속하는 파라미터 각각의 속성을 결정하는 단계, 상기 결정된 속성에 기초하여, 상기 제1정보에 속하는 파라미터 각각의 가중치를 결정하는 단계 및 상기 결정된 가중치에 기초하여, 상기 제1정보로부터 식별자를 생성하는 단계를 포함할 수 있다.
또한, 상기 후보 사용자의 식별자를 발급하는 단계는, 상기 제1정보에 속하는 파라미터 각각의 속성을 결정하는 단계, 상기 결정된 속성에 기초하여, 상기 제1정보에 속하는 파라미터 각각의 가중치를 결정하는 단계 및 상기 결정된 가중치에 기초하여, 상기 식별자 후보군과 상기 후보 식별자 간의 유사도를 산출하는 단계를 포함할 수 있다.
또한, 상기 파라미터 각각의 속성을 결정하는 단계는, 상기 파라미터 각각이 가변정보인지 비가변정보인지 결정하는 단계 및 가변정보로 결정된 파라미터 각각에 대한 가변성을 결정하는 단계를 포함하고, 상기 가중치를 결정하는 단계는, 상기 파라미터 각각의 가변정보 여부 및 가변성에 기초하여 상기 파라미터 각각의 가중치를 결정하는 단계를 포함할 수 있다.
또한, 상기 가변성을 결정하는 단계는, 상기 후보 사용자에게 발급된 식별값의 제1정보와 상기 제2정보의 파라미터를 각각 비교하는 단계, 비교 결과에 기초하여, 각 파라미터의 변경빈도를 산출하는 단계, 상기 산출된 변경빈도를 기초로 각 파라미터의 가변성을 결정하는 단계를 더 포함할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 장치는 하나 이상의 인스트럭션을 저장하는 메모리와, 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 브라우저 핑거프린팅을 통한 사용자 식별 방법을 수행할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 프로그램은 하드웨어인 컴퓨터와 결합하여, 브라우저 핑거프린팅을 통한 사용자 식별 방법을 수행할 수 있도록 컴퓨터에서 독출가능한 기록매체에 저장될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 사용자들에 대해 식별값을 배정하고, 사용자들이 브라우저에 접속하는 정보를 수집하여 사용자의 식별값을 특정할 수 있다.
또한, 사용자의 웹사이트 방문 기록을 수집하여 사용자 맞춤 광고를 제공할 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 시스템을 도시한 도면이다.
도 2는 본 발명의 실시 예에 따른 사용자 식별 장치의 하드웨어 구성도이다.
도 3은 본 발명의 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 방법을 나타내는 도면이다.
도 4는 개시된 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 시스템의 동작 흐름을 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.
본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.
도 1은 본 발명의 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 시스템을 도시한 도면이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 시스템은 사용자 식별 장치(100), 사용자 단말(200) 및 외부 서버(300)를 포함할 수 있다.
여기서, 도 1에 도시된 브라우저 핑거프린팅을 통한 사용자 식별 시스템은 일 실시 예에 따른 것이고, 그 구성 요소가 도 1에 도시된 실시 예에 한정되는 것은 아니며, 필요에 따라 부가, 변경 또는 삭제될 수 있다.
사용자 식별 장치(100)는 사용자들의 브라우저 정보 및 브라우저를 실행하는 단말 정보를 수집하고, 사용자들마다 식별값을 부여하여, 식별값과 해당 사용자의 브라우저 정보 및 단말 정보를 매칭하여 저장할 수 있다.
사용자 식별 장치(100)는 이후 획득되는 브라우저 접속 정보 및 단말 정보에 대해, 이에 대응하는 사용자를 식별할 수 있다. 사용자 식별 장치(100)는 획득된 브라우저 정보 및 단말 정보를 저장되어 있는 정보들과 비교하여, 유사도가 높은 사용자들을 추출하고, 추출된 사용자들 중 유사도가 가장 높은 사용자를 해당 사용자로 식별할 수 있다.
한편, 사용자 식별 장치(100)는 획득된 브라우저 정보 및 단말 정보를 저장되어 있는 정보들과 비교하여 유사도를 산출한 결과, 산출된 유사도가 기 설정된 값 미만인 경우, 해당 사용자가 기 저장되어 있는 사용자가 아닌 것으로 판단하여, 새로운 사용자로 저장할 수 있다. 사용자 식별 장치(100)는 상기 기재한 바와 같이, 새로운 사용자에 대해 식별값을 부여하고, 식별값과 해당 사용자의 브라우저 정보 및 단말 정보를 매칭하여 저장할 수 있다.
사용자 식별 장치(100)는 사용자를 식별하여, 사용자의 브라우저 정보 및 단말 정보를 기초로 사용자의 맞춤형 광고를 해당 사용자에게 제공할 수 있다. 사용자 식별 장치(100)는 사용자가 단말을 통해 브라우저를 이용하거나 특정 웹사이트에 접속할 시, 해당 사용자의 단말에 맞춤형 광고가 출력되도록 사용자의 단말에 맞춤형 광고를 제공할 수 있다.
사용자 단말(200)은 네트워크를 통해 웹사이트에 접속할 수 있으며, 사용자 식별 장치(100) 혹은 사용자 식별 장치(100)로부터 사용자 정보를 얻은 제3자로부터 맞춤형 광고를 제공받을 수 있다.
사용자 단말(200)은 사용자 단말(200)의 적어도 일부분에 디스플레이를 구비하는 스마트폰, 태플릿 PC, 데스크톱 및 노트북 중 적어도 하나를 포함할 수 있으며, 브라우저를 실행하는 과정에서 사용자 식별 장치(100)로부터 제공되는 맞춤형 광고를 제공받을 수 있다. 그러나, 이에 한정되지 않는다.
외부 서버(300)는 네트워크를 통해 사용자 식별 장치(100)와 연결될 수 있으며, 사용자 식별 장치(100)가 브라우저 핑거프린팅을 통한 사용자 식별 방법을 수행하기 위한 각종 정보를 저장 및 관리할 수 있다.
또한, 외부 서버(300)는 사용자 식별 장치(100)가 브라우저 핑거프린팅을 통한 사용자 식별 방법을 수행함에 따라 생성되는 각종 정보 및 데이터를 제공받아 저장할 수 있다. 예를 들어, 외부 서버(300)는 사용자 식별 장치(100) 외부에 별도로 구비되는 저장 서버일 수 있다. 도 2를 참조하여, 사용자 식별 장치(100)의 하드웨어 구성에 대해 설명하도록 한다.
도 2는 본 발명의 실시 예에 따른 사용자 식별 장치의 하드웨어 구성도이다.
도 2를 참조하면, 본 발명의 실시 예에 따른 사용자 식별 장치(100)(이하, 컴퓨팅 장치)는 하나 이상의 프로세서(110), 프로세서(110)에 의하여 수행되는 컴퓨터 프로그램(151)을 로드(Load)하는 메모리(120), 버스(130), 통신 인터페이스(140) 및 컴퓨터 프로그램(151)을 저장하는 스토리지(150)를 포함할 수 있다. 여기서, 도 2에는 본 발명의 실시예와 관련 있는 구성요소들만 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(110)는 컴퓨팅 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다.
또한, 프로세서(110)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있으며, 컴퓨팅 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
다양한 실시예에서, 프로세서(110)는 프로세서(110) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(110)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.
메모리(120)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(120)는 본 발명의 다양한 실시예에 따른 방법/동작을 실행하기 위하여 스토리지(150)로부터 컴퓨터 프로그램(151)을 로드할 수 있다. 메모리(120)에 컴퓨터 프로그램(151)이 로드되면, 프로세서(110)는 컴퓨터 프로그램(151)을 구성하는 하나 이상의 인스트럭션들을 실행함으로써 상기 방법/동작을 수행할 수 있다. 메모리(120)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(130)는 컴퓨팅 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(130)는 주소 버스(address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(140)는 컴퓨팅 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(140)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(140)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 몇몇 실시예에서, 통신 인터페이스(140)는 생략될 수도 있다.
스토리지(150)는 컴퓨터 프로그램(151)을 비 임시적으로 저장할 수 있다. 컴퓨팅 장치(100)를 통해 브라우저 핑거프린팅을 통한 사용자 식별 방법을 수행하는 경우, 스토리지(150)는 브라우저 핑거프린팅을 통한 사용자 식별 방법을 제공하기 위하여 필요한 각종 정보를 저장할 수 있다.
스토리지(150)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(151)은 메모리(120)에 로드될 때 프로세서(110)로 하여금 본 발명의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(110)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 발명의 다양한 실시예에 따른 상기 방법/동작을 수행할 수 있다.
일 실시예에서, 컴퓨터 프로그램(151)은 사용자들의 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제1정보를 획득하는 단계와, 상기 제1정보에 기초하여 상기 사용자들 각각에 식별자를 부여하는 단계와, 상기 사용자들 각각에 대하여 상기 식별자와 상기 제1정보를 매칭하여 저장하는 단계와, 후보 사용자로부터 새로 획득되는 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득하는 단계와, 상기 제2정보에 대응하는 후보 식별자를 획득하는 단계와, 상기 제2정보의 적어도 일부에 대응하는 제1정보를 가지는 식별자 후보군을 추출하는 단계와, 상기 식별자 후보군과 상기 후보 식별자 간의 유사도에 기초하여 상기 후보 사용자의 식별자를 발급하는 단계를 포함하는, 브라우저 핑거프린팅을 통한 사용자 식별 방법을 수행하도록 하는 하나 이상의 인스트럭션을 포함할 수 있다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
본 발명의 일 실시예에 따르면, 컴퓨팅 장치(100)는 클라우드 컴퓨팅 서비스를 제공하는 서버일 수 있다. 보다 구체적으로, 컴퓨팅 장치(100)는 인터넷 기반 컴퓨팅의 일종으로 정보를 사용자의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하는 클라우드 컴퓨팅 서비스를 제공하는 서버일 수 있다. 상기 클라우드 컴퓨팅 서비스는 인터넷 상에 자료를 저장해 두고, 사용자가 필요한 자료나 프로그램을 자신의 컴퓨터에 설치하지 않고도 인터넷 접속을 통해 언제 어디서나 이용할 수 있는 서비스일 수 있으며, 인터넷 상에 저장된 자료들을 간단한 조작 및 클릭으로 쉽게 공유하고 전달할 수 있다. 또한, 클라우드 컴퓨팅 서비스는 인터넷 상의 서버에 단순히 자료를 저장하는 것뿐만 아니라, 별도로 프로그램을 설치하지 않아도 웹에서 제공하는 응용프로그램의 기능을 이용하여 원하는 작업을 수행할 수 있으며, 여러 사람이 동시에 문서를 공유하면서 작업을 진행할 수 있는 서비스일 수 있다. 또한, 클라우드 컴퓨팅 서비스는 IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service), 가상 머신 기반 클라우드 서버 및 컨테이너 기반 클라우드 서버 중 적어도 하나의 형태로 구현될 수 있다. 즉, 컴퓨팅 장치(100)는 상술한 클라우드 컴퓨팅 서비스 중 적어도 하나의 형태로 구현될 수 있다. 전술한 클라우드 컴퓨팅 서비스의 구체적인 기재는 예시일 뿐, 본 발명은 클라우드 컴퓨팅 환경을 구축하는 임의의 플랫폼을 포함할 수도 있다.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 이하, 도 3을 참조하여, 컴퓨팅 장치(100)가 제공하는 브라우저 핑거프린팅을 통한 사용자 식별 방법에 대해 설명하도록 한다.
도 3은 본 발명의 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 방법을 나타내는 도면이다.
도 3을 참조하면, 컴퓨팅 장치(100)는 사용자들의 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제1정보를 획득할 수 있다(S110).
사용자들은 사용자 단말(200)을 이용하여 브라우저를 실행할 수 있다. 여기서, 단말은 스마트폰, 태플릿 PC, 데스크톱 및 노트북 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 컴퓨팅 장치(100)는 사용자들이 사용하는 단말 정보를 수집하고, 해당 단말에서 실행하는 브라우저에 대한 정보를 수집할 수 있다. 획득된 사용자들의 브라우저 정보 및 단말 정보는 제1정보로 정의할 수 있다.
예를 들어, 제1정보는 브라우저의 유형 및 버전, 디바이스의 운영체제, 활성 플러그인, 시간대, 언어, 화면 해상도 및 기타 다양한 활성 설정에 대한 정보를 포함할 수 있으나, 이에 제한되지 않는다. 또한, 주요 데이터 속성으로는 IP주소, 캔버스 요소(canvas element), webGL(웹 기반의 그래픽 라이브러리), 사운드 정보 등이 활용될 수 있으며, 이에 제한되지 않는다.
컴퓨팅 장치(100)는 제1정보에 기초하여 사용자들 각각에 식별자를 부여할 수 있다(S120).
다양한 실시 예에서, 컴퓨팅 장치(100)는 제1정보에 속한 각각의 데이터들에 대한 전처리과정을 수행할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제1정보에 속한 데이터들 중 단일 숫자 값으로 구성되지 않은 데이터의 경우 기 설정된 규칙에 기반하여 단일 숫자 값을 산출하거나, 임베딩 방식을 이용하여 각 데이터에 대응하는 숫자 값을 도출해낼 수 있다. 또한, 컴퓨팅 장치(100)는 각각의 데이터별로 값의 범위가 상이할 경우 정규화를 통해 이를 일정 범위 내로 조정할 수도 있다.
이를 통해, 컴퓨팅 장치(100)는 제1정보에 포함된 데이터들을 식별값을 산출하기 용이한 형태로 가공할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제1정보에 포함된 데이터들을 가공하여 해시 알고리즘을 적용할 수 있는 입력값을 생성하거나, 행렬 데이터로 구성할 수 있다.
일 실시 예에서, 컴퓨팅 장치(100)는 사용자들 각각의 전처리된 제1정보를 해시 알고리즘을 이용하여 가공함으로써 사용자들 각각의 식별자를 생성할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제1정보를 LSH(Locality-sensitive Hashing) 알고리즘을 이용하여 해시하여 식별자를 생성할 수 있으나, 이에 제한되는 것은 아니다. 또한, 컴퓨팅 장치(100)는 제1정보에 포함되는 데이터들을 속성별로 각각 해시한 뒤, 이를 재조합하여 최종적인 식별자를 생성할 수도 있으며, 구체적인 방법은 특정한 형태로 제한되지 않는다.
다른 예로, K-Nearest Neighbor 알고리즘과 LSH 알고리즘을 결합한 형태가 적용될 수도 있다. 예를 들어, 컴퓨팅 장치(100)는 제1정보, 혹은 제1정보를 가공한 정보(예: 해시값)를 K-Nearest Neighgor 알고리즘(혹은 다른 클러스터링 기법)을 이용하여 처리함으로써, 제1정보에 대응하는 데이터 공간 상의 위치를 판단할 수 있다. 실시 예에 따라서, 제1정보 혹은 이를 가공한 정보가 속하는 군집을 판단할 수 있으며, 또한 각 군집에 해당할 확률 혹은 일치도를 판단할 수도 있다. 이를 이용하여, 컴퓨팅 장치(100)는 제2정보가 입력되었을 때 해당 제2정보의 데이터 공간상의 위치를 판단하거나, 제2정보가 속하는 군집을 판단하거나, 제2정보가 각 군집에 속할 확률 혹은 일치도를 판단하여 제2정보에 대응하는 사용자를 식별할 수 있다.
실시 예에 따라서, 클러스터링 기법과 해시 기법이 각각 활용되어, 상호보완적으로 동작할 수 있다. 예를 들어, 사용자로부터 수집된 제2정보를 클러스터링 기법 및 해시 기법을 이용하여 두 기법 모두가 특정 사용자를 지시하는 경우에만 사용자를 식별하거나, 혹은 둘 중 하나만 특정 사용자를 지시하는 경우에도 사용자를 식별하도록 할 수 있다. 혹은, 두 기법 중 하나를 우선적으로 사용하되, 사용자가 식별되지 않는 경우 두 번째 기법을 사용하여 식별을 시도하거나, 첫 번째 기법으로 식별에 성공하는 경우 두 번째 기법을 사용하여 재검증을 수행하는 방법을 이용할 수도 있다. 이는 컴퓨팅 장치(100)의 설정에 따라 달리 동작할 수 있다.
다른 실시 예에서, 컴퓨팅 장치(100)는 사용자들 각각의 제1정보를 행렬 형태로 가공함으로써 사용자들 각각의 식별자를 생성할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제1정보에 속한 각각의 데이터들을 포함하는 n*m 행렬 혹은 벡터를 생성할 수 있다.
컴퓨팅 장치(100)는 사용자들 각각에 대하여 식별자와 제1정보를 매칭하여 저장할 수 있다(S130).
다양한 실시 예에서, 컴퓨팅 장치(100)는 사용자들 각각에 대하여 산출된 식별자와, 이에 대응하는 제1정보를 매칭하여 저장할 수 있다. 예를 들어, 제1사용자에 대하여 수집된 제1정보와, 제1사용자의 제1정보로부터 산출된 식별자를 서로 연관하여 저장할 수 있다.
일 실시 예에서, 제1사용자에 대하여 산출된 식별자(예: 해시값)는 그 자체로서 제1사용자를 나타내는 핑거프린트 ID로서 기능할 수 있다. 다른 실시 예에서, 제1사용자에 대한 식별자와 별도로 제1사용자를 나타내는 인덱스가 마련될 수 있다. 예를 들어, 인덱스는 제1사용자를 나타내는 ID값을 의미할 수 있으며, 인덱스를 부여하는 방식은 제한되지 않는다. 예를 들어, 컴퓨팅 장치(100)는 등록된 사용자 순서대로 순차적인 인덱스를 부여할 수 있으나, 이에 제한되지 않는다.
각 사용자에 대한 정보는 컴퓨팅 장치(100)에 저장될 수도 있고, 외부 서버(300)에 마련된 데이터베이스에 저장될 수도 있다.
컴퓨팅 장치(100)는 후보 사용자로부터 새로 획득되는 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득할 수 있다(S140).
예를 들어, 컴퓨팅 장치(100)는 데이터베이스 구축이 완료된 후, 새로운 사용자에 대한 식별을 요청하는 정보를 획득할 수 있다. 컴퓨팅 장치(100)는 새로운 사용자에 대한 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득할 수 있으며, 데이터베이스에 저장된 정보와 제2정보(혹은 제2정보를 가공하여 획득된 정보)를 비교하여 새로운 사용자를 식별할 수 있다.
컴퓨팅 장치(100)는 제2정보에 대응하는 후보 식별자를 획득할 수 있다(S150).
컴퓨팅 장치(100)는 제1정보를 이용하여 식별자를 산출한 것과 동일한 방법을 적용하여 제2정보로부터 후보 식별자를 획득할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제2정보에 해시 알고리즘을 적용하여 후보 식별자를 획득할 수 있다.
컴퓨팅 장치(100)는 제2정보의 적어도 일부에 대응하는 제1정보를 가지는 식별자 후보군을 추출할 수 있다(S160).
예를 들어, 사용자 단말로부터 획득되는 브라우저 정보 및 단말 정보는 가변정보와 비가변정보를 포함할 수 있다. 예를 들어, 운영체제 유형, 장치 유형, 장치 모델 등은 쉽게 변경되지 않는 비가변정보라고 할 수 있다. 컴퓨팅 장치(100)는 이러한 비가변정보에 기초하여 데이터를 일차적으로 필터링할 수 있다. 구체적으로, 컴퓨팅 장치(100)는 획득된 제2정보 중 하나 이상의 비가변정보를 선택하고, 이와 일치하는 제1정보를 가지는 식별자 후보군을 추출할 수 있다. 이를 통해, 컴퓨팅 장치(100)는 유사도를 비교할 데이터의 양을 줄이고 효율적으로 유사도를 비교할 수 있다.
컴퓨팅 장치(100)는 식별자 후보군과 후보 식별자 간의 유사도에 기초하여 후보 사용자의 식별자를 발급할 수 있다(S170).
일 실시 예에서, 식별자가 해시 알고리즘을 이용하여 획득되는 경우, 컴퓨팅 장치(100)는 식별자 후보군 중 후보 식별자와 가장 유사한 식별자를 탐색하고, 가장 유사한 식별자를 후보 사용자의 식별자로 결정하여 발급할 수 있다. 즉, 탐색된 가장 유사한 식별자에 대응하는 사용자가 후보 사용자와 동일인임을 식별할 수 있다.
실시 예에 따라서, 동일한 식별자를 탐색하여 후보 사용자의 식별자로 결정하여 발급할 수도 있다. 또한, 탐색 결과 획득된 가장 유사한 식별자와 후보 식별자 간의 유사도가 기 설정된 기준값 이하일 경우, 유사한 식별자가 없는 것으로 판단할 수도 있다.
상술한 바와 같이, LSH(Locality-sensitive Hashing) 알고리즘을 이용하여 해시하는 경우 유사한 데이터는 유사한 해시값을 가지게 된다. 따라서, 유사한 식별자를 갖는 데이터는 유사한 데이터(즉, 브라우저 정보 및 단말 정보)를 갖는 것으로 보아, 사용자를 식별하는 데 이용할 수 있다.
다른 실시 예에서, 식별자가 행렬 형태로 가공되는 경우, 컴퓨팅 장치(100)는 식별자 후보군 및 후보 식별자 간의 행렬 유사도를 산출하고, 후보 식별자와 유사도가 가장 높은 식별자를 후보 사용자의 식별자로 발급할 수 있다. 즉, 탐색된 가장 유사한 식별자에 대응하는 사용자가 후보 사용자와 동일인임을 식별할 수 있다.
일 실시 예에서, 컴퓨팅 장치(100)는 식별자 후보군과 후보 식별자 간의 코사인 유사도를 산출하고, 산출된 코사인 유사도에 기초하여 유사도가 가장 높은 식별자를 탐색할 수 있으나, 이에 제한되는 것은 아니다.
다양한 실시 예에서, 컴퓨팅 장치(100)는 식별자 후보군으로부터 후보 사용자의 식별자를 결정할 수 없는 경우, 후보 식별자를 후보 사용자의 식별자로 발급할 수 있다. 또한, 컴퓨팅 장치(100)는 후보 사용자에 대하여, 후보 식별자 및 제2정보를 매칭하여 저장할 수 있다.
예를 들어, 컴퓨팅 장치(100)는 기존 데이터베이스로부터 후보 사용자를 식별할 수 없는 경우, 신규 사용자로 판단하여 새로운 식별자를 발급하고, 관련 정보를 데이터베이스에 저장할 수 있다.
예를 들어, 컴퓨팅 장치(100)는 식별자 후보군으로부터 후보 식별자와 기 설정된 기준값 이상의 유사도를 갖는 식별자를 발견하지 못한 경우, 후보 사용자가 신규 사용자인 것으로 판단할 수 있다. 이후, 컴퓨팅 장치(100)는 후보 식별자를 후보 사용자의 식별자로서 저장하고, 제2정보를 함께 저장할 수 있다.
개시된 실시 예에서, 사용자를 식별하는 데 사용되는 브라우저 정보 및 단말 정보는 다양한 파라미터를 포함한다. 이러한 파라미터들은 가변 정보와 비가변 정보를 포함하며, 비가변 정보의 경우 항상 일정한 값을 가지므로 일관된 데이터를 얻을 수 있는 장점이 있지만, 비가변 정보만으로 핑거프린팅을 수행하기에는 데이터가 충분하지 못할 수 있다. 이에 가변 정보를 함께 활용하여 핑거프린팅을 수행하되, 이를 보완하기 위한 방법을 마련할 필요가 있다.
일 실시 예에서, 가변 정보를 활용하되 그 가변성이 크지 않은 정보를 활용하여야 일관된 사용자 식별이 가능할 수 있다. 따라서, 각 파라미터의 가변성을 분석하여 해당 파라미터의 사용여부를 결정하거나, 가중치를 설정함으로써 핑거프린팅 알고리즘을 고도화할 수 있다.
예를 들어, 브라우저의 해상도나 폰트, 언어 설정 등의 경우 설정에 따라 쉽게 변경될 수 있는 가변정보에 해당하나, 일반적으로 사용자가 이를 자주 변경하지는 않으므로 가변성은 낮다고 볼 수 있다. 이 중에서도, 언어 설정의 경우 가변성이 더 낮고, 폰트의 경우 상황에 따라 조금씩 변경될 가능성이 더 높다고 볼 수 있다. 이 경우, 서로 상이한 가변성을 가진다고 판단할 수 있다.
또한, 더욱 복합적인 상황을 고려하여 가변성을 판단해야 하는 경우도 발생할 수 있다. 예를 들어, 아이피 주소의 경우 무선 네트워크를 이용하는 모바일 장치나 노트북 등에서는 수시로 변경될 수 있는 가변성이 높은 정보인 데 반해, 유선 네트워크를 이용하는 컴퓨터(특히, 고정IP로 설정되어 있는 컴퓨터)의 경우 가변성이 낮은 정보일 수 있다.
또한, 동일한 조건의 파라미터에 대해서도 사용자의 특성에 따라 가변성이 상이할 수 있다. 예를 들어, 어떤 사용자는 폰트를 거의 변경하지 않을 수 있고, 다른 사용자는 페이지에 따라 폰트 크기를 자주 변경할 수도 있다.
컴퓨팅 장치(100)는 이러한 조건들을 고려하여 제1정보 및 제2정보에 속하는 파라미터들 각각의 속성을 결정할 수 있으며, 결정된 속성에 기초하여 제1정보 및 제2정보에 속하는 파라미터 각각의 가중치를 결정할 수 있다. 실시 예에 따라서, 가중치를 결정한다는 것은 각 파라미터의 사용여부를 결정하는 것 또한 포함할 수 있다. 예를 들어, 사용하지 않을 데이터의 가중치는 0으로 결정될 수 있으나, 이에 제한되지 않는다.
일 실시 예에서, 컴퓨팅 장치(100)는 이러한 가중치를 고려하여 제1정보 및 제2정보로부터 식별자를 생성할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 제1정보에 포함된 파라미터들 각각에 대한 가중치 정보를 획득하고, 각 파라미터 값에 가중치를 곱한 값을 이용하여 식별자를 생성할 수 있다. 구체적으로, 컴퓨팅 장치(100)는 제1정보에 포함된 각각의 데이터를 전처리하고, 전처리된 결과 값에 가중치를 곱한 결과를 이용하여 식별자를 생성할 수 있으나, 가중치를 적용하는 구체적인 방법은 제한되지 않는다.
일 실시 예에서, 컴퓨팅 장치(100)는 이러한 가중치를 고려하여 식별자 후보군과 후보 식별자 간의 유사도를 산출할 수 있다. 예를 들어, 식별자 후보군에 포함된 데이터와 후보 식별자를 비교함에 있어, 특정 파라미터가 상이한 경우 그 차이에 기 설정된 가중치를 곱하여 유사도 계산에 반영할 수 있다.
이러한 가중치를 산출하기 위해서, 컴퓨팅 장치(100)는 각각의 파라미터가 가변정보인지 비가변정보인지를 결정할 수 있다. 또한, 컴퓨팅 장치(100)는 가변정보로 결정된 파라미터 각각에 대한 가변성을 결정할 수 있다.
컴퓨팅 장치(100)는 각 파라미터의 가변성에 기초하여 가중치를 결정할 수 있다. 예를 들어, 가변성이 평균적인 파라미터의 경우 가중치를 1로 설정하고, 가변성이 높을 경우 가중치는 0에 가까워질 수 있다. 반대로, 가변성이 낮을 경우 가중치는 높아질 수 있다. 실시 예에 따라서, 비가변정보의 가중치가 결정된 경우(예: 2) 이를 가변정보에 부여되는 가중치의 상한으로 할 수 있다.
다양한 실시 예에서, 컴퓨팅 장치(100)는 개시된 실시 예에 따른 사용자 식별방법을 수행하는 과정에서 각 파라미터의 가변성을 학습할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 후보 사용자에게 발급된 식별값의 제1정보와 제2정보의 파라미터를 각각 비교할 수 있다. 즉, 후보 사용자가 데이터베이스에 기 저장된 특정 사용자인 것으로 식별되는 경우, 후보 사용자로부터 획득된 제2정보와, 데이터베이스에 저장된 제1정보를 비교할 수 있다.
컴퓨팅 장치(100)는 비교 결과에 기초하여 각 파라미터의 변경빈도를 산출할 수 있다. 즉, 동일한 사용자임에도 파라미터에 서로 상이한 부분이 있을 경우, 어떤 파라미터인지, 그리고 얼마나 상이한지에 대한 정보를 획득할 수 있다.
컴퓨팅 장치(100)는 산출된 변경빈도를 기초로 각 파라미터의 가변성을 결정할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 특정 사용자에 대하여, 혹은 모든 사용자에 대하여 획득된 정보들을 취합하여 각 파라미터의 가변성에 대한 정보를 획득할 수 있다. 즉, 통계적으로 자주 변경되는 파라미터의 경우, 그리고 변경폭이 큰 파라미터인 경우 가변성이 높은 것으로 판단될 수 있으나, 이에 제한되는 것은 아니다.
다양한 실시 예에서, 컴퓨팅 장치(100)는 제1정보와 제2정보 혹은 제1정보로부터 획득된 식별자와 제2정보로부터 획득된 식별자 간의 비교를 복수 회 반복하여 수행할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 기 설정된 시간 간격으로 제2정보를 획득하고, 획득된 제2정보 혹은 제2정보로부터 획득된 식별자와 제1정보를 비교함으로써, 각 정보의 가변성을 판단할 수 있다. 이를 통해 가변정보들 중에서도 짧은 시간 내로 변화할 수 있는 가변정보와, 특별한 이벤트가 있어야 변경되거나, 긴 시간 주기로 변경되는 가변정보를 구분할 수 있다. 컴퓨팅 장치(100)는 각 가변정보의 변경확률, 변경빈도, 변경되는 정도, 변경주기 등에 기초하여 각 가변정보의 가변성을 판단할 수 있다.
다양한 실시 예에서, 비가변 정보는 식별자 후보군을 추출하는 데에 사용되고, 식별자 후보군을 추출하는 데 사용된 정보는 식별자 후보군과 후보 식별자 간의 유사도 측정에는 사용되지 않을 수 있다.
예로, 식별자 후보군을 추출하는 데에 사용되는 비가변 정보는 식별자를 산출하는 데에는 이용되지 않을 수도 있다. 즉, 비가변 정보로 1차 카테고리화를 수행하고, 각 카테고리 내에서 가변정보에 기초하여 생성된 식별자들로 사용자를 식별하도록 구성될 수도 있다.
다양한 실시 예에서, 비가변 정보는 주로 단말 정보로 구성될 수 있다. 따라서, 동일한 사용자라 할지라도 다른 단말을 이용할 경우 동일 사용자로 식별하기 어려운 문제가 발생할 수 있다.
일 실시 예에서, 컴퓨팅 장치(100)는 식별자 후보군에 속하지 않는 다른 식별자들에 대해서도 식별자의 유사도를 분석할 수 있다. 예를 들어, 실시간 식별단계에서는 식별자 후보군에 속하는 식별자들과 후보 식별자를 비교하여 사용자를 식별하지만, 유휴 시간에 식별자 후보군에 속하지 않는 다른 식별자들과 후보 식별자를 비교하여, 유사도가 기 설정된 기준값 이상인 식별자가 있는지 여부를 탐색할 수 있다. 이때 유사도가 기 설정된 기준값 이상인 식별자가 탐색되는 경우, 해당 식별자 또한 동일한 사용자에 대한 것으로 판단하고 이에 대한 정보를 제공할 수 있다.
예를 들어, 서로 다른 디바이스에서 접속했다고 하여도 동일 사용자일 경우 각 디바이스에서 수집된 정보를 통합하여 관리하는 것이 더 유리할 수 있다. 이를 위해, 컴퓨팅 장치(100)는 단말 정보를 제외한 브라우저 정보만을 이용하여 핑거프린팅을 수행하고, 단말 정보는 상이하되 브라우저 정보에 기반한 핑거프린팅 정보가 매칭되는 정보가 있을 경우 동일 사용자로 판단할 수 있다.
다른 예로, 컴퓨팅 장치(100)는 서로 다른 디바이스의 식별자가 동일인에 대한 것인지를 검증하는 프로세스를 추가로 수행할 수 있다. 예를 들어, 각 식별자에 대응하여 저장된 사용자의 행동기록(예: 검색기록, 방문한 페이지, 구매기록 등)을 비교하여 기 설정된 기준값 이상의 유사도를 갖는 경우 동일인인 것으로 판단할 수 있다.
도 4는 개시된 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 시스템의 동작 흐름을 도시한 도면이다.
개시된 실시 예에 따른 브라우저 핑거프린팅을 통한 사용자 식별 방법을 이용하기 위해, 각각의 클라이언트 웹 서버(410, 420)에 SDK(412, 422)가 배포 및 설치될 수 있다.
각각의 클라이언트 웹 서버(410, 420)에 설치된 SDK(412, 422)는 데이터 수집도구로서, 고객사의 웹사이트(예: 온라인 쇼핑몰)에 접속하는 사용자들(401 내지 404)의 브라우저 및 단말 정보를 수집할 수 있다.
수집된 정보는 API(430)를 통해 컴퓨팅 장치(100)로 전달되고, 컴퓨팅 장치(100)는 데이터베이스(440)에 저장된 정보에 기초하여 전달된 정보에 대응하는 식별자 정보를 획득 및 제공할 수 있다.
이를 통해, 각각의 클라이언트 웹 서버(410, 420)는 웹사이트에 접속하는 사용자들을 식별할 수 있고, 각 사용자의 행동정보를 식별된 사용자 정보에 매칭하여 저장할 수 있다.
실시 예에 따라서, 각각의 클라이언트 웹 서버(410, 420)는 SDK(412, 422)를 통해 웹사이트에 접속하는 사용자들에 대한 정보 및 사용자의 행동정보를 컴퓨팅 장치(100)로 전송할 수도 있다. 이 경우, 컴퓨팅 장치(100)는 사용자를 식별하고, 식별된 사용자에 대한 정보와 행동정보를 매칭하여 저장할 수 있다.
이후 사용자가 다시 웹사이트에 접속하는 경우, 각각의 클라이언트 웹 서버(410, 420)는 해당 사용자를 식별하고, 해당 사용자에 매칭되어 저장된 행동정보에 기초하여 맞춤형 광고나 서비스를 제공할 수 있다. 이러한 서비스는 각각의 클라이언트 웹 서버(410, 420)에 저장된 정보에 기초하여 각각의 클라이언트 웹 서버(410, 420)가 직접 제공할 수 있다. 다른 예로, 이러한 서비스는 컴퓨팅 장치(100) 혹은 컴퓨팅 장치(100)에 연계된 데이터베이스(440)에 저장된 정보에 기초하여 컴퓨팅 장치(100)가 각각의 클라이언트 웹 서버(410, 420) 혹은 각각의 사용자(401 내지 404)에 제공할 수도 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100: 컴퓨팅 장치
200: 사용자 단말
300: 외부 서버

Claims (11)

  1. 삭제
  2. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    사용자들의 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제1정보를 획득하는 단계;
    상기 제1정보에 기초하여 상기 사용자들 각각에 식별자를 부여하는 단계;
    상기 사용자들 각각에 대하여 상기 식별자와 상기 제1정보를 매칭하여 저장하는 단계;
    후보 사용자로부터 새로 획득되는 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득하는 단계;
    상기 제2정보에 대응하는 후보 식별자를 획득하는 단계;
    상기 제2정보의 적어도 일부에 대응하는 제1정보를 가지는 식별자 후보군을 추출하는 단계; 및
    상기 식별자 후보군과 상기 후보 식별자 간의 유사도에 기초하여 상기 후보 사용자의 식별자를 발급하는 단계; 를 포함하고,
    상기 식별자를 부여하는 단계는,
    상기 사용자들 각각의 제1정보를 해시 알고리즘을 이용하여 가공함으로써 상기 사용자들 각각의 식별자를 생성하는 단계; 를 포함하고,
    상기 후보 사용자의 식별자를 발급하는 단계는,
    상기 식별자 후보군 중 상기 후보 식별자와 가장 유사한 식별자를 탐색하는 단계; 및
    상기 가장 유사한 식별자를 상기 후보 사용자의 식별자로 발급하는 단계; 를 포함하는,
    브라우저 핑거프린팅을 통한 사용자 식별 방법.
  3. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    사용자들의 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제1정보를 획득하는 단계;
    상기 제1정보에 기초하여 상기 사용자들 각각에 식별자를 부여하는 단계;
    상기 사용자들 각각에 대하여 상기 식별자와 상기 제1정보를 매칭하여 저장하는 단계;
    후보 사용자로부터 새로 획득되는 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득하는 단계;
    상기 제2정보에 대응하는 후보 식별자를 획득하는 단계;
    상기 제2정보의 적어도 일부에 대응하는 제1정보를 가지는 식별자 후보군을 추출하는 단계; 및
    상기 식별자 후보군과 상기 후보 식별자 간의 유사도에 기초하여 상기 후보 사용자의 식별자를 발급하는 단계; 를 포함하고,
    상기 식별자를 부여하는 단계는,
    상기 사용자들 각각의 제1정보를 행렬 형태로 가공함으로써 상기 사용자들 각각의 식별자를 생성하는 단계; 를 포함하고,
    상기 후보 사용자의 식별자를 발급하는 단계는,
    상기 식별자 후보군 및 상기 후보 식별자 간의 행렬 유사도를 산출하는 단계; 및
    상기 후보 식별자와 유사도가 가장 높은 식별자를 상기 후보 사용자의 식별자로 발급하는 단계; 를 포함하는,
    브라우저 핑거프린팅을 통한 사용자 식별 방법.
  4. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    사용자들의 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제1정보를 획득하는 단계;
    상기 제1정보에 기초하여 상기 사용자들 각각에 식별자를 부여하는 단계;
    상기 사용자들 각각에 대하여 상기 식별자와 상기 제1정보를 매칭하여 저장하는 단계;
    후보 사용자로부터 새로 획득되는 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득하는 단계;
    상기 제2정보에 대응하는 후보 식별자를 획득하는 단계;
    상기 제2정보의 적어도 일부에 대응하는 제1정보를 가지는 식별자 후보군을 추출하는 단계; 및
    상기 식별자 후보군과 상기 후보 식별자 간의 유사도에 기초하여 상기 후보 사용자의 식별자를 발급하는 단계; 를 포함하고,
    상기 제1정보 및 상기 제2정보는 가변정보 및 비가변정보를 포함하고,
    상기 식별자 후보군을 추출하는 단계는,
    상기 제2정보 중 하나 이상의 비가변정보를 선택하는 단계; 및
    상기 선택된 비가변정보와 일치하는 제1정보를 가지는 식별자 후보군을 추출하는 단계; 를 포함하는,
    브라우저 핑거프린팅을 통한 사용자 식별 방법.
  5. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    사용자들의 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제1정보를 획득하는 단계;
    상기 제1정보에 기초하여 상기 사용자들 각각에 식별자를 부여하는 단계;
    상기 사용자들 각각에 대하여 상기 식별자와 상기 제1정보를 매칭하여 저장하는 단계;
    후보 사용자로부터 새로 획득되는 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득하는 단계;
    상기 제2정보에 대응하는 후보 식별자를 획득하는 단계;
    상기 제2정보의 적어도 일부에 대응하는 제1정보를 가지는 식별자 후보군을 추출하는 단계; 및
    상기 식별자 후보군과 상기 후보 식별자 간의 유사도에 기초하여 상기 후보 사용자의 식별자를 발급하는 단계; 를 포함하고,
    상기 후보 사용자의 식별자를 발급하는 단계는,
    상기 식별자 후보군으로부터 상기 후보 사용자의 식별자를 결정할 수 없는 경우,
    상기 후보 식별자를 상기 후보 사용자의 식별자로 발급하는 단계; 및
    상기 후보 사용자에 대하여, 상기 후보 식별자 및 상기 제2정보를 매칭하여 저장하는 단계; 를 포함하는,
    브라우저 핑거프린팅을 통한 사용자 식별 방법.
  6. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    사용자들의 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제1정보를 획득하는 단계;
    상기 제1정보에 기초하여 상기 사용자들 각각에 식별자를 부여하는 단계;
    상기 사용자들 각각에 대하여 상기 식별자와 상기 제1정보를 매칭하여 저장하는 단계;
    후보 사용자로부터 새로 획득되는 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득하는 단계;
    상기 제2정보에 대응하는 후보 식별자를 획득하는 단계;
    상기 제2정보의 적어도 일부에 대응하는 제1정보를 가지는 식별자 후보군을 추출하는 단계; 및
    상기 식별자 후보군과 상기 후보 식별자 간의 유사도에 기초하여 상기 후보 사용자의 식별자를 발급하는 단계; 를 포함하고,
    상기 식별자를 부여하는 단계는,
    상기 제1정보에 속하는 파라미터 각각의 속성을 결정하는 단계;
    상기 결정된 속성에 기초하여, 상기 제1정보에 속하는 파라미터 각각의 가중치를 결정하는 단계; 및
    상기 결정된 가중치에 기초하여, 상기 제1정보로부터 식별자를 생성하는 단계; 를 포함하는,
    브라우저 핑거프린팅을 통한 사용자 식별 방법.
  7. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    사용자들의 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제1정보를 획득하는 단계;
    상기 제1정보에 기초하여 상기 사용자들 각각에 식별자를 부여하는 단계;
    상기 사용자들 각각에 대하여 상기 식별자와 상기 제1정보를 매칭하여 저장하는 단계;
    후보 사용자로부터 새로 획득되는 브라우저 정보 및 단말 정보 중 적어도 일부를 포함하는 제2정보를 획득하는 단계;
    상기 제2정보에 대응하는 후보 식별자를 획득하는 단계;
    상기 제2정보의 적어도 일부에 대응하는 제1정보를 가지는 식별자 후보군을 추출하는 단계; 및
    상기 식별자 후보군과 상기 후보 식별자 간의 유사도에 기초하여 상기 후보 사용자의 식별자를 발급하는 단계; 를 포함하고,
    상기 후보 사용자의 식별자를 발급하는 단계는,
    상기 제1정보에 속하는 파라미터 각각의 속성을 결정하는 단계;
    상기 결정된 속성에 기초하여, 상기 제1정보에 속하는 파라미터 각각의 가중치를 결정하는 단계; 및
    상기 결정된 가중치에 기초하여, 상기 식별자 후보군과 상기 후보 식별자 간의 유사도를 산출하는 단계; 를 포함하는,
    브라우저 핑거프린팅을 통한 사용자 식별 방법.
  8. 제6항 또는 제7항에 있어서,
    상기 파라미터 각각의 속성을 결정하는 단계는,
    상기 파라미터 각각이 가변정보인지 비가변정보인지 결정하는 단계; 및
    가변정보로 결정된 파라미터 각각에 대한 가변성을 결정하는 단계; 를 포함하고,
    상기 가중치를 결정하는 단계는,
    상기 파라미터 각각의 가변정보 여부 및 가변성에 기초하여 상기 파라미터 각각의 가중치를 결정하는 단계; 를 포함하는,
    브라우저 핑거프린팅을 통한 사용자 식별 방법.
  9. 제8항에 있어서,
    상기 가변성을 결정하는 단계는,
    상기 후보 사용자에게 발급된 식별값의 제1정보와 상기 제2정보의 파라미터를 각각 비교하는 단계;
    비교 결과에 기초하여, 각 파라미터의 변경빈도를 산출하는 단계;
    상기 산출된 변경빈도를 기초로 각 파라미터의 가변성을 결정하는 단계; 를 더 포함하는,
    브라우저 핑거프린팅을 통한 사용자 식별 방법.
  10. 하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    제2항 내지 제7항 중 어느 한 항의 방법을 수행하는, 장치.
  11. 하드웨어인 컴퓨터와 결합되어, 제2항 내지 제7항 중 어느 한 항의 방법을 수행할 수 있도록 컴퓨터에서 독출가능한 기록매체에 저장된 컴퓨터프로그램.
KR1020210109034A 2021-08-18 2021-08-18 브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램 KR102372996B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210109034A KR102372996B1 (ko) 2021-08-18 2021-08-18 브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램
PCT/KR2021/019403 WO2023022307A1 (ko) 2021-08-18 2021-12-20 브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210109034A KR102372996B1 (ko) 2021-08-18 2021-08-18 브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램

Publications (1)

Publication Number Publication Date
KR102372996B1 true KR102372996B1 (ko) 2022-03-11

Family

ID=80814415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210109034A KR102372996B1 (ko) 2021-08-18 2021-08-18 브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램

Country Status (2)

Country Link
KR (1) KR102372996B1 (ko)
WO (1) WO2023022307A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102643988B1 (ko) * 2023-03-21 2024-03-06 주식회사 에스케어 전자 티켓의 발권 및 검증 방법 및 그를 이용한 서버

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130068014A (ko) * 2011-12-15 2013-06-25 삼성전자주식회사 단말간 통신을 위한 접속 식별자 할당 방법 및 장치
KR20150083978A (ko) * 2015-06-29 2015-07-21 플러스기술주식회사 공유 단말 식별 방법 및 그 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060069612A1 (en) * 2004-09-28 2006-03-30 Microsoft Corporation System and method for generating an orchestrated advertising campaign
US20100211960A1 (en) * 2009-02-17 2010-08-19 Google Inc. Characterizing User Information
KR101464044B1 (ko) * 2012-09-28 2014-11-20 주식회사 엘지유플러스 관심 키워드 제공 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130068014A (ko) * 2011-12-15 2013-06-25 삼성전자주식회사 단말간 통신을 위한 접속 식별자 할당 방법 및 장치
KR20150083978A (ko) * 2015-06-29 2015-07-21 플러스기술주식회사 공유 단말 식별 방법 및 그 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102643988B1 (ko) * 2023-03-21 2024-03-06 주식회사 에스케어 전자 티켓의 발권 및 검증 방법 및 그를 이용한 서버

Also Published As

Publication number Publication date
WO2023022307A1 (ko) 2023-02-23

Similar Documents

Publication Publication Date Title
CN110866181B (zh) 资源推荐的方法、装置及存储介质
US9544381B2 (en) User identification across social media
WO2018103718A1 (zh) 应用推荐的方法、装置及服务器
US20200110842A1 (en) Techniques to process search queries and perform contextual searches
CN107451832B (zh) 推送信息的方法和装置
US10956664B2 (en) Automated form generation and analysis
JP2016522475A (ja) 複数ヴァージョンをテストするための方法及びデバイス
US20210165913A1 (en) Controlling access to de-identified data sets based on a risk of re- identification
US10387864B2 (en) Systems and methods for clustering of customers using transaction patterns
WO2018129069A1 (en) De-anonymization of website visitor identity
US10262041B2 (en) Scoring mechanism for discovery of extremist content
CN107908616B (zh) 预测趋势词的方法和装置
US10097652B2 (en) Dynamic rule allocation for visitor identification
JPWO2011013490A1 (ja) 情報処理装置、情報処理方法、プログラムおよびウェブ・システム
US20200250587A1 (en) Framework for multi-tenant data science experiments at-scale
KR102372996B1 (ko) 브라우저 핑거프린팅을 통한 사용자 식별 방법, 장치 및 프로그램
US20190243914A1 (en) Parallel query processing in a distributed analytics architecture
JP2009265754A (ja) 情報提供装置、情報提供方法及び情報提供プログラム
CN111177481A (zh) 用户标识映射方法及装置
CN108604241B (zh) 搜索系统
CN116910102A (zh) 一种基于用户反馈的企业查询方法、装置及电子设备
CN112650940A (zh) 应用程序的推荐方法、装置、计算机设备及存储介质
US9843559B2 (en) Method for determining validity of command and system thereof
US20220277008A1 (en) Supporting database queries using unsupervised vector embedding approaches over unseen data
US20140324523A1 (en) Missing String Compensation In Capped Customer Linkage Model

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant