KR102277870B1 - 랜덤 스크립트를 이용한 자동 로그인 방지 방법 및 이를 수행하기 위한 서버 - Google Patents
랜덤 스크립트를 이용한 자동 로그인 방지 방법 및 이를 수행하기 위한 서버 Download PDFInfo
- Publication number
- KR102277870B1 KR102277870B1 KR1020200012457A KR20200012457A KR102277870B1 KR 102277870 B1 KR102277870 B1 KR 102277870B1 KR 1020200012457 A KR1020200012457 A KR 1020200012457A KR 20200012457 A KR20200012457 A KR 20200012457A KR 102277870 B1 KR102277870 B1 KR 102277870B1
- Authority
- KR
- South Korea
- Prior art keywords
- script
- obfuscated
- request
- parameter
- client
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
랜덤 스크립트를 이용한 자동 로그인 방지 방법 및 이를 수행하기 위한 서버가 제공된다. 일 실시예에 따른 서버는, 클라이언트로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신하는 요청 수신부; 상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 랜덤화부; 상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 응답부; 상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 상기 클라이언트로부터 상기 랜덤한 URL의 요청을 수신하고, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 랜덤한 URL의 요청을 검증하는 검증부를 포함한다.
Description
예시적인 실시예들은 프로그램을 통한 웹의 자동 로그인을 방지하는 기술과 관련된다.
웹 스크래핑(Web Scraping)이란 프로그램에 의해 자동으로 웹 시스템에 접속하여 필요한 자료를 추출하여 가져오는 기술이나 프로그램을 의미한다. 일반적으로, 웹 페이지에는 개인정보나 고객 데이터 등과 같이 제3자가 수집해서는 안되는 민감한 데이터가 포함될 수 있다. 그러나, 최근 들어 자동화된 툴을 이용하여 개인정보와 같은 민감한 정보를 수집하거나, 방문 실적에 따른 광고 수익을 노리는 자들이 웹 페이지에 접속하지 않으면서 데이터만 수집해 가는 경우가 종종 발생한다. 공공기관이나, 은행, 카드사, 증권사 등과 같은 금융기관에서는 이러한 웹 스크래핑으로 인한 시스템 안정성 문제가 지속적으로 제기되고 있다. 특히, 이러한 웹 스크래핑이 특정 시간에 집중되는 경우 공공기관이나 금융기관 등과 같은 데이터 제공자가 제공하는 서비스가 느려지거나 데이터 제공자의 서버가 다운되기도 한다. 이와 같이, 웹 스크래핑으로 인해 데이터 제공자의 시스템 운영비용 및 불안정성이 증가하고 있으며 이에 따라 웹 스크래핑의 차단에 대한 요구가 발생하고 있다.
예시적인 실시예들은 자동화된 프로그램을 통한 웹 스크래핑을 효율적으로 차단하는 수단을 제공하기 위한 것이다.
예시적인 실시예에 따르면, 요청 수신부에서, 클라이언트로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신하는 단계; 랜덤화부에서, 상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성하는 단계; 상기 랜덤화부에서, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 단계; 응답부에서, 상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계; 검증부에서, 상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 상기 클라이언트로부터 상기 랜덤한 URL의 요청을 수신하는 단계; 및 상기 검증부에서, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 랜덤한 URL의 요청을 검증하는 단계를 포함하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법이 제공된다.
상기 랜덤 스크립트를 이용한 자동 로그인 방지 방법은, 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계 이전에, 상기 랜덤화부에서, 서로 다른 N개의 상기 난독화된 스크립트를 생성하는 단계; 및 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장하는 단계를 더 포함할 수 있다.
상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계는, 상기 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 상기 클라이언트로 전송할 수 있다.
상기 난독화된 스크립트를 생성하는 단계는, 상기 파라미터 키 및 상기 파라미터 값을 각각 치환하고, 해시 함수의 초기 벡터(initial vector)를 랜덤하게 설정한 후 치환된 상기 파라미터 키 및 상기 파라미터 값을 상기 해시 함수로 해싱하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성할 수 있다.
상기 난독화된 스크립트를 생성하는 단계는, 치환된 상기 파라미터 키 및 상기 파라미터 값의 반전(reverse) 여부를 랜덤하게 선택하고, 치환된 상기 파라미터 키 및 상기 파라미터 값 또는 상기 반전된 값의 임의의 지점에 더미 값(dummy value)을 랜덤하게 추가하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성할 수 있다.
상기 매핑 테이블에 저장된 정보들은, 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보, 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함할 수 있다.
상기 랜덤한 URL의 요청을 검증하는 단계는, 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증하고, 상기 매핑 테이블에 저장된 정보들을 토대로 상기 파라미터 키 및 상기 파라미터 값을 추출하여 상기 랜덤한 URL의 요청을 검증할 수 있다.
다른 예시적인 실시예에 따르면, 클라이언트로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신하는 요청 수신부; 상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 랜덤화부; 상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 응답부; 및 상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 상기 클라이언트로부터 상기 랜덤한 URL의 요청을 수신하고, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 랜덤한 URL의 요청을 검증하는 검증부를 포함하는, 서버가 제공된다.
상기 랜덤화부는, 서로 다른 N개의 상기 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장할 수 있다.
상기 응답부는, 상기 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 상기 클라이언트로 전송할 수 있다.
상기 랜덤화부는, 상기 파라미터 키 및 상기 파라미터 값을 각각 치환하고, 해시 함수의 초기 벡터(initial vector)를 랜덤하게 설정한 후 치환된 상기 파라미터 키 및 상기 파라미터 값을 상기 해시 함수로 해싱하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성할 수 있다.
상기 랜덤화부는, 치환된 상기 파라미터 키 및 상기 파라미터 값의 반전(reverse) 여부를 랜덤하게 선택하고, 치환된 상기 파라미터 키 및 상기 파라미터 값 또는 상기 반전된 값의 임의의 지점에 더미 값(dummy value)을 랜덤하게 추가하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성할 수 있다.
상기 매핑 테이블에 저장된 정보들은, 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보, 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함할 수 있다.
상기 검증부는, 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증하고, 상기 매핑 테이블에 저장된 정보들을 토대로 상기 파라미터 키 및 상기 파라미터 값을 추출하여 상기 랜덤한 URL의 요청을 검증할 수 있다.
예시적인 실시예에 따르면, 클라이언트의 로그인용 스크립트 요청에 따라 난독화된 스크립트를 클라이언트로 전송하고 상기 난독화된 스크립트가 실행됨에 따라 랜덤한 URL의 요청이 서버로 전송되도록 할 수 있다. 이 경우, 종래처럼 로그인을 위한 URL이 고정되는 게 아니라 매번 다르게 계산되므로, 자동화 프로그램은 서버가 원하는 형태의 HTTP Request를 전송할 수 없게 된다.
도 1은 클라이언트가 서버에 로그인을 요청하는 일반적인 흐름도를 나타낸 예시
도 2는 자동화 프로그램이 서버에 로그인을 요청하는 일반적인 흐름도를 나타낸 예시
도 3은 예시적인 실시예에 따른 랜덤 스크립트를 이용한 자동 로그인 방지 방법을 설명하기 위한 흐름도
도 4는 예시적인 실시예에 따른 서버의 상세 구성도
도 5는 예시적인 실시예에 따른 랜덤화부에서 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 과정을 나타낸 예시
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 2는 자동화 프로그램이 서버에 로그인을 요청하는 일반적인 흐름도를 나타낸 예시
도 3은 예시적인 실시예에 따른 랜덤 스크립트를 이용한 자동 로그인 방지 방법을 설명하기 위한 흐름도
도 4는 예시적인 실시예에 따른 서버의 상세 구성도
도 5는 예시적인 실시예에 따른 랜덤화부에서 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 과정을 나타낸 예시
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 클라이언트(110)가 서버(120)에 로그인을 요청하는 일반적인 흐름도를 나타낸 예시이다. 본 실시예들에 있어서, 클라이언트(110)는 사용자가 소지하는 단말로서, 예를 들어 스마트폰, 데스크탑, 태블릿 PC, PDA(Personal Digital Assistant), 노트북 등이 될 수 있다. 또한, 서버(120)는 데이터 제공자의 서버로서, 예를 들어 은행 서버, 카드사 서버, 증권사 서버 등이 될 수 있다. 사용자는 클라이언트(110)의 웹 브라우저를 통해 서버(120)에서 제공되는 웹 페이지에 접속한 후 로그인 절차를 거쳐 서버(120)로부터 각종 데이터를 전달 받거나 관련 서비스를 제공 받을 수 있다.
이를 위해, 클라이언트(110)는 서버(120)로 로그인용 스크립트를 요청할 수 있다(S102). 여기서, 스크립트는 소스 코드를 컴파일(compile)하지 않고도 실행할 수 있는 프로그래밍 언어로서, 예를 들어 자바스크립트 등이 될 수 있다.
다음으로, 서버(120)는 클라이언트(110)의 요청에 대한 응답으로 로그인용 스크립트를 클라이언트(110)로 전송한다(S104).
다음으로, 클라이언트(110)는 사용자로부터 로그인 정보를 입력 받는다(S106). 여기서, 로그인 정보는 예를 들어, 로그인을 위한 사용자 아이디, 사용자 비밀번호, 인증서 서명 등이 될 수 있다.
다음으로, 클라이언트(110)는 웹 브라우저 상에서 사용자로부터 설정된 로그인 버튼의 클릭을 입력 받는다(S108).
다음으로, 클라이언트(110)는 HTTP request를 서버(120)로 전송한다(S110). 이때, HTTP request는 아래 3가지 값을 포함한다.
1. 파라미터 키(parameter key)
파라미터 키는 로그인 요청에 필요한 키로서, 예를 들어 사용자 아이디(UID), 사용자 패스워드(PWD), 인증서 서명(SIGN) 등이 될 수 있다.
2. 파라미터 값(parameter value)
파라미터 값은 파라미터 키에 대응되는 값으로서, 예를 들어 사용자 아이디의 값(value), 사용자 패스워드의 값(value), 인증서 서명의 값(value) 등이 될 수 있다.
3. URL(Uniform Resource Locator)
로그인을 위한 주소로서, 일반적으로 예를 들어 login.do 와 같이 고정된다.
클라이언트(110)는 이러한 3가지 정보를 포함하는 HTTP request를 서버(120)로 전송할 수 있다.
이후, 서버(120)는 클라이언트(110)로부터 상기 HTTP request을 수신하고, 상기 HTTP request에 포함된 정보들을 확인하여 클라이언트(110)의 로그인을 허용한다(S112).
도 2는 자동화 프로그램(130)이 서버(120)에 로그인을 요청하는 일반적인 흐름도를 나타낸 예시이다. 본 실시예들에 있어서, 자동화 프로그램(130)은 웹 스크래핑을 위해 자동으로 웹 시스템에 접속하여 필요한 자료를 추출하여 가져오는 소프트웨어 또는 애플리케이션으로서, 예를 들어 스크래퍼(scraper), 봇(bot) 등이 될 수 있다. 상기 자동화 프로그램(130)은 웹 스크래핑을 수행하고자 하는 공격자의 단말(미도시)에 장착될 수 있다. 일반적으로, 자동화 프로그램(130)은 HTTP request에 포함되는 파라미터 키, 파라미터 값 및 URL을 미리 가지고 있다. 여기서, 파라미터 키와 URL은 고정값이며, 파라미터 값은 스크래핑을 수행하려는 사용자로부터 미리 입력 받을 수 있다.
도 2를 참조하면, 자동화 프로그램(130)은 이와 같이 미리 확보한 파라미터 키, 파라미터 값 및 URL을 토대로 HTTP request를 자동으로 생성한다(S202). 이때, 자동화 프로그램(130)은 도 1에서와 달리 웹 브라우저를 띄우지 않고 로그인을 위한 HTTP request를 곧바로 생성할 수 있다.
이후, 자동화 프로그램(130)은 상기 HTTP request를 서버(120)로 전송한다(S204).
이에 따라, 서버(120)는 자동화 프로그램(130)으로부터 상기 HTTP request을 수신하고, 상기 HTTP request에 포함된 정보들을 확인하여 자동화 프로그램(130)의 로그인을 허용한다(S206). 이와 같은 과정을 통해 자동화 프로그램(130)의 웹 스크래핑이 이루어지며, 서버(120) 입장에서는 웹 스크래핑으로 인한 시스템 안정성 문제가 지속적으로 발생하게 된다. 이하에서는, 도 3 내지 도 5를 참조하여 이러한 자동화 프로그램(130)의 웹 스크래핑을 방지하기 위한 방법을 구체적으로 살펴보기로 한다.
도 3은 예시적인 실시예에 따른 랜덤 스크립트를 이용한 자동 로그인 방지 방법을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
먼저, 클라이언트(110)는 서버(120)로 로그인용 스크립트를 요청한다(S302).
다음으로, 서버(120)는 클라이언트(110)의 스크립트 요청에 따라 고정된 로그인용 스크립트를 클라이언트(110)에 전송하는 대신 난독화된 스크립트를 생성한다(S304).
구체적으로, 서버(120)는 예를 들어, 아래 표 1 및 표 2와 같이 파라미터 키와 파라미터 값이 각각 치환되도록 기존 로그인 요청을 처리하는 스크립트(즉, 기존 로그인용 스크립트)를 랜덤화할 수 있다.
파라미터 키 랜덤화 | ||
기존 파라미터 키 | 치환된 파라미터 키 | |
기존 로그인용 스크립트에 존재하는 값 |
UID | ab |
PWD | xyz | |
SIGN | f5 | |
새로 추가하는 값으로 0 ~ N개가 랜덤하게 추가 | c3a | |
fun |
파라미터 값 랜덤화 | ||
기존 파라미터 값 | 치환된 파라미터 키 | |
자동화 프로그램(130)이 가지고 있는 값 | UID_value | UID_value |
PWD_value | ['PWD_value'] | |
SIGN_value | ['N', 'SIGN_value'] | |
새로 추가하는 값으로 0 ~ N개가 랜덤하게 추가 | c3a | ['axy'] |
fun | [7, 'k5'] |
또한, 서버(120)는 예를 들어, 아래와 같이 랜덤 치환된 파라미터 정보를 통해 랜덤한 URL이 동적으로 생성되도록 기존 로그인용 스크립트를 랜덤화할 수 있다.
구체적으로, 앞선 표 1 및 표 2를 통해 새롭게 생성된 파라미터 키와 파라미터 값을 파라미터 정보(P)라 하면, 파라미터 정보(P)는 아래와 같이 정의될 수 있다.
P : ab=UID_value&xyz=['PWD_value']&f5=['N', 'SIGN_value']&c3a=['axy']& fun=[7, 'k5']
이때, 서버(120)는 아래 Step 1 ~ Step 3을 통해 랜덤한 URL이 동적으로 생성되도록 기존 로그인용 스크립트를 랜덤화할 수 있다.
Step 1 : P 값을 해시 함수를 통해 메시지 축약을 수행하는데, 해시 함수의 초기 벡터(initial vector)를 랜덤하게 설정
HASH_P = Hash(P)_with_random_initial_Vector
Step 2 : HASH_P의 반전(reverse) 여부를 랜덤하게 선택
RndReversed_HASH_P = Reverse(HASH_P)_with_random_reverse
Step 3 : RndReversed_HASH_P의 임의의 지점(예를 들어, 앞, 뒤 등)에 더미 값(dummy value)을 랜덤하게 추가함
URL = front_dummy(0~N char) + RndReversed_HASH_P + backend_dummy(0~N char)
이후, 서버(120)는 위와 같이 랜덤화된 스크립트를 난독화하여 난독화된 스크립트를 생성할 수 있다. 예를 들어, 서버(120)는 Control Flow Flattening, Debug Protection, Dead Code Injection, Self Defending 등 다양한 기법을 활용하여 상기 랜덤화한 스크립트를 난독화할 수 있다. 이러한 과정을 통해 난독화된 스크립트는 실시간 분석을 통한 해독이 어렵다.
또한, 상기 난독화된 스크립트는 후술할 바와 같이, 사용자가 HTTP Request를 보낼 수 있는 함수, 예를 들어 로그인 버튼을 클릭하는 순간 실행되어 Step 3를 통해 계산된 랜덤한 URL을 생성하여 출력할 수 있다.
서버(120)는 이와 같은 방법을 통해 난독화된 스크립트를 생성할 수 있다. 이때, 서버(120)는 서로 다른 N개의 상기 난독화된 스크립트를 생성할 수 있다. 여기서, 서버(120)는 상술한 파라미터 키, 파라미터 값 및 URL을 서로 다른 방식으로 랜덤화할 수 있다. 즉, 서버(120)는 상술한 파라미터 키, 파라미터 값 및 URL을 랜덤화할 때마다 랜덤화 방식(또는 인코딩 방식) 또한 다르게 할 수 있으며, 이 경우 서로 다른 형태의 N개의 난독화된 스크립트가 생성될 수 있다.
다음으로, 서버(120)는 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장한다(S306). 예를 들어, 서버(120)는 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보(예를 들어, 파라미터 키 및 파라미터 값의 치환 전/치환 후의 값, 새로운 값이 추가되었는지 여부, 실제 파라미터 값을 배열에 넣었는지 여부 또는 어느 index에 넣었는지, 어떤 더미 값이 추가되었는지 여부 등), 상술한 Step 1 ~ Step 3의 밑줄 친 부분, 즉 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함하는 정보를 매핑 테이블에 저장할 수 있다.
또한, 상술한 바와 같이, 서버(120)는 서로 다른 N개의 상기 난독화된 스크립트를 생성할 수 있으며, 이 경우 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장할 수 있다.
매핑 테이블에 저장되는 정보들의 예시는 아래와 같다.
001 : {UID:'ab', PWD:'xyz', SIGN:'f5'…}
002 : {…}
003 : {…}
…
00N : {…}
이와 같이, 서버(120)는 난독화된 스크립트 각각에 포함된 정보들을 매핑 테이블에 저장함으로써 각 난독화 스크립트가 어떤 방식으로 난독화되었는지 확인이 가능하다.
다음으로, 서버(120)는 S302 단계에서의 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 클라이언트(110)로 전송한다(S308). 이때, 서버(120)는 N개의 상기 난독화된 스크립트 중 클라이언트(110)로 전송한 난독화된 스크립트가 몇 번째 스크립트인지에 관한 정보를 세션(session)에 기록할 수 있다.
다음으로, 클라이언트(110)는 사용자로부터 로그인 정보를 입력 받는다(S310). 여기서, 로그인 정보는 예를 들어, 상술한 파라미터 값이 될 수 있다.
다음으로, 클라이언트(110)는 웹 브라우저 상에서 사용자로부터 설정된 로그인 버튼의 클릭을 입력 받는다(S312).
S312 단계에서의 로그인 버튼의 클릭에 따라, 난독화된 스크립트가 실행되어 파라미터 키 및 파라미터 값이 상술한 표 1 및 표 2의 방법에 따라 랜덤하게 치환된다(S314).
다음으로, 상기 파라미터 키 및 파라미터 값이 치환됨에 따라 상술한 Step 1 ~ Step 3의 방법에 따라 랜덤한 URL이 생성된다(S316).
다음으로, 클라이언트(110)는 상기 랜덤한 URL의 요청을 서버(120)로 전송한다(S318). 이때, 상기 랜덤한 URL은 종래와 달리 고정된 형태의 URL(예를 들어, login.do)이 아니라 로그인 요청시마다 매번 다르게 생성되며, 랜덤한 URL에 포함되는 정보들은 S306 단계에서 매핑 테이블에 저장되어 있다.
마지막으로, 서버(120)는 클라이언트(110)로부터 랜덤한 URL의 요청을 수신함에 따라 세션(session)에 저장된 정보를 통해 클라이언트(110)로부터 수신된 요청(즉, S318 단계에서의 요청)이 n번째 난독화된 스크립트를 통해 생성된 요청임을 확인하고, 이를 통해 클라이언트(110)의 요청을 검증한다(S320).
구체적으로, 서버(120)는 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증할 수 있다. 예를 들어, 서버(120)는 매핑 테이블에 포함된 n번째 난독화된 스크립트의 정보를 참조하여 파라미터(P)를 추출하고, 상기 파라미터(P)를 매핑 테이블에 저장된 초기 벡터로 해시한 후 클라이언트(110)로부터 수신된 랜덤한 URL에 상술한 과정을 동일하게 수행하여 도출된 두 개의 값을 비교하는 방식으로 상기 랜덤한 URL의 유효성을 검증할 수 있다.
또한, 서버(120)는 상기 매핑 테이블을 참조하여 치환 전의 파라미터 키와 파라미터 값을 추출하고, 상기 랜덤한 URL로부터 추출된 파라미터 키와 파라미터 값을 각각 비교하여 상기 요청을 검증할 수 있다. 만약, 이와 같은 검증 결과 오류가 발생하지 않는 경우, 서버(120)는 상기 로그인을 위한 스크립트의 요청이 정상적인 것으로 판단하고 클라이언트(110)의 로그인을 허용할 수 있다. 만약, 이와 같은 검증 결과 오류가 발생하는 경우, 서버(120)는 는 상기 로그인을 위한 스크립트의 요청이 비정상적인 것으로 판단하고 클라이언트(110)의 로그인을 허용하지 않을 수 있다.
이와 같이, 예시적인 실시예에 따르면, 클라이언트(110)의 로그인용 스크립트 요청에 따라 난독화된 스크립트를 클라이언트(110)로 전송하고 상기 난독화된 스크립트가 실행됨에 따라 랜덤한 URL의 요청이 서버(120)로 전송되도록 할 수 있다. 이 경우, 종래처럼 로그인을 위한 URL이 고정되는 게 아니라 매번 다르게 계산되므로, 자동화 프로그램(130)은 서버(120)가 원하는 형태의 HTTP Request를 전송할 수 없게 된다.
자동화 프로그램(130)은 클라이언트(110)처럼 로그인용 스크립트를 서버(120)로 요청하여 난독화된 스크립트를 수신할 수도 있으나, 웹 브라우저를 띄우지 않으므로 상기 난독화된 스크립트를 실시간으로 분석해야 하며 이 경우 다수의 로그인 요청을 한꺼번에 처리할 수 없게 된다. 구체적으로, 자동화 프로그램(130)은 사용자의 아이디, 패스워드, 인증서 등에 대한 로그인 정보는 가지고 있으나, 난독화된 스크립트를 매번 분석해서 로그인 정보를 몇 차원 배열에 넣어야 하는지, 그 배열의 몇 번째 index에 넣어야 하는지, 특정 index에는 어떤 더미 값을 넣어야 하는지, URL 생성 과정에서 들어가는 해시 함수의 초기 벡터와 반전 여부, 더미 값의 추가 여부 및 위치 등을 알기 위해 난독화된 스크립트를 실시간으로 분석해서 찾아야 한다.
한편, 여기서는 자동화 프로그램(130)을 통한 웹의 자동 로그인을 방지하는 예시에 대해서만 설명하였으나, 로그인이 아닌 일반 웹 페이지의 이동에도 상술한 방법이 동일하게 적용될 수 있다. 이 경우, 도 3의 S302 단계는 로그인용 스크립트의 요청 대신 웹 페이지의 이동을 위한 스크립트의 요청으로 바뀌면 되고, S310 단계 및 S312 단계는 로그인 정보 입력/로그인 버튼 클릭 대신 웹 페이지 이동을 위한 입력 또는 웹 페이지 이동 버튼 클릭으로 바뀌면 된다. 나머지 단계는 도 3에서 상술한 바와 동일하게 적용될 수 있다.
도 4는 예시적인 실시예에 따른 서버(120)의 상세 구성도이다. 도 4에 도시된 바와 같이, 예시적인 실시예에 따른 서버(120)는 요청 수신부(402), 랜덤화부(404), 응답부(406) 및 검증부(408)를 포함한다.
요청 수신부(402)는 클라이언트(110)로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신한다.
랜덤화부(404)는 상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성한다.
구체적으로, 랜덤화부(404)는 상기 파라미터 키 및 상기 파라미터 값을 각각 치환하고, 해시 함수의 초기 벡터를 랜덤하게 설정한 후 치환된 상기 파라미터 키 및 상기 파라미터 값을 상기 해시 함수로 해싱하여 상기 랜덤한 URL이 생성되도록 스크립트를 랜덤화할 수 있다. 또한, 랜덤화부(404)는 치환된 상기 파라미터 키 및 상기 파라미터 값의 반전 여부를 랜덤하게 선택하고, 치환된 상기 파라미터 키 및 상기 파라미터 값 또는 상기 반전된 값의 임의의 지점에 더미 값을 랜덤하게 추가하여 상기 랜덤한 URL이 생성되도록 스크립트를 랜덤화할 수 있다. 이후, 랜덤화부(404)는 위와 같이 랜덤화된 스크립트를 난독화하여 난독화된 스크립트를 생성할 수 있다.
또한, 랜덤화부(404)는 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장한다. 이때, 랜덤화부(404)는 서로 다른 N개의 상기 난독화된 스크립트를 생성할 수 있으며, 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장할 수 있다. 여기서, 상기 매핑 테이블에 저장되는 정보들은 예를 들어, 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보, 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함할 수 있다.
응답부(406)는 상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트(110)로 전송한다. 이때, 응답부(406)는 상기 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 상기 클라이언트(110)로 전송하고, 클라이언트(110)로 전송한 난독화된 스크립트가 몇 번째 스크립트인지에 관한 정보를 세션(session)에 기록할 수 있다.
검증부(408)는 상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 클라이언트(110)로부터 상기 랜덤한 URL의 요청을 수신하고, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 요청을 검증한다. 구체적으로, 검증부(408)는 세션(session)에 저장된 정보를 통해 클라이언트(110)로부터 수신된 요청이 n번째 난독화된 스크립트를 통해 생성된 요청임을 확인하고, 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증할 수 있다. 또한, 검증부(408)는 상기 매핑 테이블에 저장된 정보들을 토대로 상기 파라미터 키 및 상기 파라미터 값을 추출하여 상기 요청을 검증할 수 있다.
도 5는 예시적인 실시예에 따른 랜덤화부(404)에서 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 과정을 나타낸 예시이다.
도 5를 참조하면, 랜덤화부(404)는 기존 로그인용 스크립트에서 파라미터 키, 파라미터 값 및 URL을 랜덤화한 후 난독화된 스크립트를 N개 생성하고, 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장할 수 있다.
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 서버(120), 또는 서버(120)에 포함되는 하나 이상의 컴포넌트일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10 : 컴퓨팅 환경
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
110 : 클라이언트
120 : 서버
130 : 자동화된 프로그램
402 : 요청 수신부
404 : 랜덤화부
406 : 응답부
408 : 검증부
12 : 컴퓨팅 장치
14 : 프로세서
16 : 컴퓨터 판독 가능 저장 매체
18 : 통신 버스
20 : 프로그램
22 : 입출력 인터페이스
24 : 입출력 장치
26 : 네트워크 통신 인터페이스
110 : 클라이언트
120 : 서버
130 : 자동화된 프로그램
402 : 요청 수신부
404 : 랜덤화부
406 : 응답부
408 : 검증부
Claims (14)
- 요청 수신부에서, 클라이언트로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신하는 단계;
랜덤화부에서, 상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성하는 단계;
상기 랜덤화부에서, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 단계;
응답부에서, 상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계;
검증부에서, 상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 상기 클라이언트로부터 상기 랜덤한 URL의 요청을 수신하는 단계; 및
상기 검증부에서, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 랜덤한 URL의 요청을 검증하는 단계를 포함하며,
상기 난독화된 스크립트를 생성하는 단계는, 상기 파라미터 키 및 상기 파라미터 값을 각각 치환하고, 해시 함수의 초기 벡터(initial vector)를 랜덤하게 설정한 후 치환된 상기 파라미터 키 및 상기 파라미터 값을 상기 해시 함수로 해싱하되,
치환된 상기 파라미터 키 및 상기 파라미터 값의 반전(reverse) 여부를 랜덤하게 선택하거나, 치환된 상기 파라미터 키 및 상기 파라미터 값 또는 상기 반전된 값의 임의의 지점에 더미 값(dummy value)을 랜덤하게 추가하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법.
- 청구항 1에 있어서,
상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계 이전에,
상기 랜덤화부에서, 서로 다른 N개의 상기 난독화된 스크립트를 생성하는 단계; 및
상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장하는 단계를 더 포함하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법.
- 청구항 2에 있어서,
상기 난독화된 스크립트를 상기 클라이언트로 전송하는 단계는, 상기 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 상기 클라이언트로 전송하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법.
- 삭제
- 삭제
- 청구항 1에 있어서,
상기 매핑 테이블에 저장된 정보들은, 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보, 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법.
- 청구항 6에 있어서,
상기 랜덤한 URL의 요청을 검증하는 단계는, 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증하고, 상기 매핑 테이블에 저장된 정보들을 토대로 상기 파라미터 키 및 상기 파라미터 값을 추출하여 상기 요청을 검증하는, 랜덤 스크립트를 이용한 자동 로그인 방지 방법.
- 클라이언트로부터 로그인 또는 웹 페이지의 이동을 위한 스크립트의 요청을 수신하는 요청 수신부;
상기 로그인 또는 웹 페이지의 이동을 위한 파라미터 키(parameter key), 파라미터 값(parameter value) 및 URL(Uniform Resource Locator)을 랜덤화한 후 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트에 포함된 정보들을 설정된 매핑 테이블에 저장하는 랜덤화부;
상기 스크립트의 요청에 대한 응답으로 상기 난독화된 스크립트를 상기 클라이언트로 전송하는 응답부; 및
상기 난독화된 스크립트로부터 랜덤한 URL이 생성됨에 따라 상기 클라이언트로부터 상기 랜덤한 URL의 요청을 수신하고, 상기 매핑 테이블에 저장된 정보들을 기반으로 상기 랜덤한 URL의 요청을 검증하는 검증부를 포함하며,
상기 랜덤화부는, 상기 파라미터 키 및 상기 파라미터 값을 각각 치환하고, 해시 함수의 초기 벡터(initial vector)를 랜덤하게 설정한 후 치환된 상기 파라미터 키 및 상기 파라미터 값을 상기 해시 함수로 해싱하되,
치환된 상기 파라미터 키 및 상기 파라미터 값의 반전(reverse) 여부를 랜덤하게 선택하거나, 치환된 상기 파라미터 키 및 상기 파라미터 값 또는 상기 반전된 값의 임의의 지점에 더미 값(dummy value)을 랜덤하게 추가하여 상기 랜덤한 URL이 생성되도록 상기 난독화된 스크립트를 생성하는, 서버.
- 청구항 8에 있어서,
상기 랜덤화부는, 서로 다른 N개의 상기 난독화된 스크립트를 생성하고, 상기 난독화된 스크립트 각각에 포함된 정보들을 상기 난독화된 스크립트별로 상기 매핑 테이블에 저장하는, 서버.
- 청구항 9에 있어서,
상기 응답부는, 상기 스크립트의 요청에 대한 응답으로 N개의 상기 난독화된 스크립트 중 하나를 상기 클라이언트로 전송하는, 서버.
- 삭제
- 삭제
- 청구항 8에 있어서,
상기 매핑 테이블에 저장된 정보들은, 상기 파라미터 키 및 상기 파라미터 값의 치환 전후에 관한 정보, 상기 초기 벡터, 상기 반전 여부, 상기 더미 값의 추가 여부 및 위치 중 하나 이상을 포함하는, 서버.
- 청구항 13에 있어서,
상기 검증부는, 상기 매핑 테이블을 참조하여 상기 랜덤한 URL의 유효성을 검증하고, 상기 매핑 테이블에 저장된 정보들을 토대로 상기 파라미터 키 및 상기 파라미터 값을 추출하여 상기 랜덤한 URL의 요청을 검증하는, 서버.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200012457A KR102277870B1 (ko) | 2020-02-03 | 2020-02-03 | 랜덤 스크립트를 이용한 자동 로그인 방지 방법 및 이를 수행하기 위한 서버 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200012457A KR102277870B1 (ko) | 2020-02-03 | 2020-02-03 | 랜덤 스크립트를 이용한 자동 로그인 방지 방법 및 이를 수행하기 위한 서버 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102277870B1 true KR102277870B1 (ko) | 2021-07-14 |
Family
ID=76863073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200012457A KR102277870B1 (ko) | 2020-02-03 | 2020-02-03 | 랜덤 스크립트를 이용한 자동 로그인 방지 방법 및 이를 수행하기 위한 서버 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102277870B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102637045B1 (ko) * | 2023-11-01 | 2024-02-15 | 주식회사 넷스루 | 데이터 수집을 지원하는 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101328118B1 (ko) * | 2013-07-25 | 2013-11-13 | 주식회사 베이스인 네트웍스 | 비밀 데이터 기반 로그인 서비스 제공 방법 |
KR20140011542A (ko) * | 2012-07-03 | 2014-01-29 | 한국과학기술원 | 로그인 시스템 및 방법 |
KR20140061788A (ko) * | 2012-11-14 | 2014-05-22 | 주식회사 예티소프트 | 무결성이 보장되는 프로그램 코드를 이용한 보안 방법 및 서버 |
KR20150085716A (ko) | 2014-01-16 | 2015-07-24 | 이주현 | 웹 스크래핑 추출 데이터 설정 방법 |
-
2020
- 2020-02-03 KR KR1020200012457A patent/KR102277870B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140011542A (ko) * | 2012-07-03 | 2014-01-29 | 한국과학기술원 | 로그인 시스템 및 방법 |
KR20140061788A (ko) * | 2012-11-14 | 2014-05-22 | 주식회사 예티소프트 | 무결성이 보장되는 프로그램 코드를 이용한 보안 방법 및 서버 |
KR101328118B1 (ko) * | 2013-07-25 | 2013-11-13 | 주식회사 베이스인 네트웍스 | 비밀 데이터 기반 로그인 서비스 제공 방법 |
KR20150085716A (ko) | 2014-01-16 | 2015-07-24 | 이주현 | 웹 스크래핑 추출 데이터 설정 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102637045B1 (ko) * | 2023-11-01 | 2024-02-15 | 주식회사 넷스루 | 데이터 수집을 지원하는 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11757641B2 (en) | Decentralized data authentication | |
US11196746B2 (en) | Whitelisting of trusted accessors to restricted web pages | |
US10223524B1 (en) | Compromised authentication information clearing house | |
US9411958B2 (en) | Polymorphic treatment of data entered at clients | |
US10122830B2 (en) | Validation associated with a form | |
US11388194B2 (en) | Identity verification and verifying device | |
CN111355726B (zh) | 一种身份授权登录方法、装置及电子设备和存储介质 | |
CN105610810A (zh) | 一种数据处理方法、客户端和服务器 | |
CN112131564B (zh) | 加密数据通信方法、装置、设备以及介质 | |
US9824207B1 (en) | Authentication information update based on fraud detection | |
US20190273750A1 (en) | Methods and apparatus for detecting remote control of a client device | |
US9769159B2 (en) | Cookie optimization | |
CN103618717A (zh) | 多账户客户信息的动态认证方法、装置和系统 | |
Wu et al. | A countermeasure to SQL injection attack for cloud environment | |
KR102279582B1 (ko) | 회의 제공 장치 및 상기 장치에서의 접속 단말 변경 방법 | |
CN104683327A (zh) | 一种Android软件用户登录界面安全性检测方法 | |
CN113315746A (zh) | 从用户设备向接收方设备匿名发送数据的系统和方法 | |
CN112118238A (zh) | 认证登录的方法、装置、系统、设备及存储介质 | |
KR102277870B1 (ko) | 랜덤 스크립트를 이용한 자동 로그인 방지 방법 및 이를 수행하기 위한 서버 | |
EP3716564B1 (en) | Method for resetting password, request terminal and check terminal | |
CN112836186A (zh) | 一种页面控制方法及装置 | |
CN111368231B (zh) | 一种异构冗余架构网站的测试方法及装置 | |
US20210185080A1 (en) | Social engineering attack prevention | |
US9485242B2 (en) | Endpoint security screening | |
Toma | A comparative study on the security of web content management systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |