KR20140110118A - 웹 어플리케이션 sso에서의 쿠키 재전송 공격 방어 기법 - Google Patents

웹 어플리케이션 sso에서의 쿠키 재전송 공격 방어 기법 Download PDF

Info

Publication number
KR20140110118A
KR20140110118A KR1020130022294A KR20130022294A KR20140110118A KR 20140110118 A KR20140110118 A KR 20140110118A KR 1020130022294 A KR1020130022294 A KR 1020130022294A KR 20130022294 A KR20130022294 A KR 20130022294A KR 20140110118 A KR20140110118 A KR 20140110118A
Authority
KR
South Korea
Prior art keywords
cookie
session
sso
time
attack
Prior art date
Application number
KR1020130022294A
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 KR1020130022294A priority Critical patent/KR20140110118A/ko
Publication of KR20140110118A publication Critical patent/KR20140110118A/ko

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/002Countermeasures against attacks on cryptographic mechanisms
    • 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
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Abstract

웹 어플리케이션에서의 쿠키(cookie)는 간단하면서도 서버에 부하를 최소화 시켜 널리 이용되고 있다. 하지만, 쿠키를 재사용하여 쿠키 편집기에 입력하는 방식의 재전송 공격에 취약하다. 한 번의 로그인만으로 여러 사이트의 인증이 가능한 SSO에서도 쿠키를 많이 이용하고 있어 보안성이 낮아 이를 보완할 필요성이 있다.
본 발명에서는 쿠키의 취약점으로 인해 발생되는 SSO에서의 재전송 공격을 방어할 수 있는 기법을 제안하였다. 방어 기법은 쿠키 값들의 재전송 공격이 이뤄질 때 데이터베이스에서 검색한 세션 토큰과 세션 유지 시간의 시작시간과 종료시간을 이용하여 방어하는 기법이다.

Description

웹 어플리케이션 SSO에서의 쿠키 재전송 공격 방어 기법{A Defence Mechanism against Cookie Replay Attack in Single Sign-On of Web Application}
본 발명은 웹 어플리케이션 SSO(Single Sign-On)에서의 쿠키 재전송 공격 방어 기법에 관한 것이다.
일반적으로, 웹(Web) 2.0시대의 개막과 더불어 인터넷은 직접 체험하지 않은 곳의 정보를 서로 공유하고 나눌 수 있게 되었다. 인터넷의 속도는 해를 거듭하며 빠른 속도로 진화하고 있으며 스마트폰과의 만남으로 웹의 중요성은 더욱 부각되고 있다.
웹의 접근성이 용이해짐에 따라서 부가적으로 통신과 웹 어플리케이션의 보안이 함께 중요시되고 있다. HTTP시스템의 간결하고 효율성이 높은 쿠키(cookie) 시스템은 운영서버의 부하를 최소화 할 수 있고 편의성이 높아 많이 이용되고 있다. 하지만, 이를 보안적 요소가 고려되지 않은 파일 시스템에 저장하는 단순성으로 인해서 저장된 개인 정보 침해 위협의 가능성이 대두되고 있다.
현재까지 진행된 보안 인증과 세션의 취약점에 대한 연구들에서는 보안 세션 토큰을 만들어 유효성을 검증하고 세션 토큰에 저장된 IP와 현재 IP를 비교하여 일치하지 않으면 공격으로 분류하거나 IP이외의 OS환경 및 사용자 정보 등을 비교하는 방식의 공격 방어 연구가 진행되었다.
사용자 정보를 이용하는 것은 IP일 경우 IP 스푸핑(spoofing)의 위험 때문에 보안에 취약하며 OS환경 등의 사용자 정보를 이용하는 것도 사용자 정보를 통신 과정에 스니핑할 수 있다면 결코 안전한 방법이 아니다.
SSO 인증 방법은 하나의 서비스 제공업체에서 연계된 서비스를 다양하게 제공하게 됨으로써 사용자뿐만 아니라 서비스 제공업체에도 중복된 로그인을 하지 않고 한 번의 로그인으로써 여러 사이트의 인증을 동시에 할 수 있는 편리함을 제공한다. 여러 사이트를 동시에 인증할 수 있는 SSO의 편리함 때문에 보안성은 더욱 중요시 될 수밖에 없다.
쿠키를 이용하여 구성된 SSO시스템은 쿠키를 스니핑(sniffing) 하였다가 다시 전송하여 사용자의 권한을 획득할 수 있는 재전송 공격에 취약하다. 쿠키의 재전송 공격으로부터의 취약점을 악용한 공격은 아주 위험하고 적절한 보안이 이뤄지지 않고 서비스되고 있어 개선이 필요하다.
본 발명에서 다수의 포털사이트들에서 쿠키의 재전송에 따른 세션취약점이 발견되었다. 따라서, 본 발명에서 웹 어플리케이션 SSO에서의 재전송 공격 방어 기법을 제안하여 이를 보완하고자 한다.
본 발명은 전술한 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 웹 어플리케이션 SSO(Single Sign-On)에서의 쿠키 재전송 공격 방어 기법을 제공하는데 있다.
전술한 목적을 달성하기 위하여 본 발명은, 쿠키의 취약점으로 인해 발생되는 SSO에서의 재전송 공격을 방어할 수 있는 기법을 제안하였다. 본 발명의 방어 기법은 쿠키 값들의 재전송 공격이 이뤄질 때 데이터베이스에서 검색한 세션 토큰과 세션 유지 시간의 시작시간과 종료시간을 이용하여 방어하는 기법이다.
이상에서 설명한 바와 같은 본 발명의 웹 어플리케이션 SSO에서의 쿠키 재전송 공격 방어 기법에 따르면, 방어 기법은 쿠키 값들의 재전송 공격이 이뤄질 때 데이터베이스에서 검색한 세션 토큰과 세션 유지 시간의 시작시간과 종료시간을 이용하여 효과적으로 방어할 수 있는 이점이 있다.
도 1은 해커의 스니핑과 재전송 공격을 나타낸 개념도이다.
도 2는 쿡시 툴바를 이용한 쿠키 값의 편집을 설명하기 위한 도면이다.
도 3은 재전송 공격후에 유출된 개인정보 화면을 설명하기 위한 도면이다.
도 4는 세션 유지 시간을 설명하기 위한 도면이다.
도 5는 세션 상태 체크 알고리즘을 설명하기 위한 도면이다.
도 6은 재전송 공격 방어에 이용된 이력관리 테이블을 설명하기 위한 도면이다.
도 7은 재전송 공격 실행 및 방어를 설명하기 위한 도면이다.
이하, 첨부 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. 그러나, 다음에 예시하는 본 발명의 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다. 본 발명의 실시예는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되어지는 것이다.
본 발명에서는 우선 보안 인증 방식들에 관하여 연구하고 재전송 공격에 방어 기법들은 어떤 것들이 연구되고 있는지 알아보았다. 그리고, SSO에서 쿠키를 이용한 인증방법들을 탐구하고 SSO에서 쿠키를 사용할 수밖에 없는 필요성과 그에 따른 취약점들을 알아보았다.
1. 보안 인증 연구
① 패스워드 방식
회원정보를 관리하는 웹 어플리케이션의 대다수는 로그인 인증을 통하여 인증할 때 아이디와 패스워드를 입력하여 로그인하는 방식인 패스워드 인증방식을 이용하여 개발되었다. 패스워드 인증 방식은 클라이언트와 서버 모델에서 일반적으로 가장 많이 사용하고 있는 방식으로 접근 통제를 위해 사용자 자신의 아이디에 대해 패스워드를 입력함으로써 인증을 받게 된다.
② 변형 패스워드 인증 방식
변형 패스워드 인증 방식은 패스워드 방식의 문제점을 해결하기 위해서 일방향 해쉬함수를 도입하였다. 사용자의 인증정보를 해쉬함수를 이용하여 전송함으로써 제 3자의 도청을 방지하여 전송 노출을 막고자 하였다.
③ 일회용 패스워드 인증 방식
OTP(One Time Password) 방식이라 불리는 방식으로서 일회용 패스워드는 무작위로 생성되는 일회용 패스워드를 이용하는 사용자 인증방식이며 보안을 강화하기 위하여 도입한 방식이다. 로그인 할 때마다 일회성 패스워드를 생성하여 동일한 패스워드를 반복해서 사용됨으로 발생되는 보안상의 취약점을 극복하기 위해 도입되었다.
④ 인증서 사용에 의한 공개키 사용 기법
공개키 사용 기법은 신뢰기관에서 사용자가 인증 과정 전에 사용자 자신의 인증서와 개인키를 발급 받은 후, 인증 과정에서 자신의 인증서와 자신의 개인키로 전자 서명된 값을 같이 보냄으로써 정당한 사용자임을 인증 받는 방법이다. 암호 방식으로 대칭키 또는 비밀키 암호방식과 공개키 암호방식이 있다. 비밀키 암호시스템은 송수신자가 동일한 키에 의하여 암호화 및 복호화 과정을 수행한다. 안전한 통신을 하고자 하는 두 사람이 서로 똑같은 비밀키를 소유하여 메시지의 송신자가 비밀키를 이용하여 암호화한 것을 수신자가 받아서 비밀키를 이용하여 복호화 하는 방식이다.
⑤ 생체 인식 기법
생체인식은 생리학적 또는 행동의 특징을 기반으로 신원을 자동으로 인식하는 것을 말한다. 생체 측정 인증기법에서 인증되는 사람은 인식 시점에 실제로 존재해야 하며, 패스워드를 기억하거나 토큰을 가지고 다녀야 하는 필요성이 없기 때문에 현재 가장 보안성이 뛰어난 인증 기법으로 연구되고 있다. 지문, 홍채, 망막, 얼굴모양, 음성, 손모양 등 다양한 형태의 생체 측정시스템이 실시간 인식에 이용되고 있다. 생체 정보중 지문 인식 기술이 널리 사용되고 있으며 정보 수집을 위한 유리면 위에 올려놓은 손가락에서 지문을 촬영하는 방식이다. 영상에서 지문을 분리해서 저장된 지문과 일치할 때 정상 인증되는 방식이다.
보안인증 방법 중 패스워드 인증방법은 패스워드를 전송 노출, 패스워드 재전송, 서버 인증 정보 공격의 취약점에 노출되어 있다. 일반적인 패스워드 인증방식은 시큐어 코딩(secure coding)을 통하여 암호화하여도 스니핑되지 않는 방법을 사용해서 방어를 해야한다.
변형 패스워드 인증방식은 재전송 공격을 막기 위해서 랜덤함수를 쓰고 해쉬된 값을 저장하여 재전송 공격을 막았다고 하였으나, 이 방식도 암호화 된 정보를 그대로 사용하여 재전송하는 공격에는 여전히 취약하다. 사용자의 인증정보가 암호화되었다고는 하나 여전히 노출되어 재사용될 수 있기 때문이다.
일회용 패스워드 인증 방식인 OTP방식도 맹점이 존재하였다. OTP를 파기하지 않은 서버 시스템을 운영할 경우 OTP시스템의 키로그를 스니핑하는 바이러스 또는 백도어에 감염된 컴퓨터라면 OTP를 등록한 계정이나 그렇지 않은 계정이나 모두 해킹을 당하게 된다. OTP 기기의 사용이 불러온 보안의 취약점이다.
2. 재전송 공격 방어 연구
① 타임스탬프(Timestamp)
사용자는 메시지가 현재 시간에 대하여 충분히 밀접하다고 판단되는 타임스탬프를 포함할 때만 메시지를 신뢰하도록 한다. 이방법의 적용을 위해서는 각 참여자들이 동기화된 시계를 가져야 하는 조건이 필요하다. 다양한 참가자들이 동기화된 시계를 요구하기 때문에 적용하기 어렵다는 단점이 있다.
② 시도-응답(Challenge-response)
사용자 각각은 신뢰된 메시지를 기대하고 상호간에 시도응답이 정확한 시도 값이 포함할 것을 요구한다. A는 B로 부터의 선명한 메시지를 기대하며 B에게 임시비표 신청을 보낸다. B로부터 수신되는 메시지의 응답이 정확한 임시비표 값을 포함할 것을 요구한다.
③ 순서번호(Sequence number)
각 메시지에 대한 순서번호를 부여하여 순서번호가 적절한 순서번호일 경우에만 수신한다. 그러나, 마지막 메시지의 일련 번호는 유지된다. 그러므로, 인증과 키 교환에는 일반적으로 사용하지 않는다.
3. SSO에서의 쿠키를 이용한 개선된 인증방법
① 중앙 쿠키 기반의 SSO
중앙 쿠키 기반의 SSO시스템은 쿠키 기반의 SSO시스템으로 보안성을 강화하기 위해 SSO을 처리하는 서버에서 쿠키에 관한 정보를 저장하는 장소를 두어 사용자의 쿠키값을 비교함으로써 사용자를 인증한다. 따라서 사용자 인증에 관련된 모든 것은 쿠키의 확인과 사용자 인증을 처리하는 SSO 서버에서 책임을 진다.
중앙 쿠키 기반 SSO의 프로세스는 중앙에 SSO서버를 두고 응용서버와의 정보를 교환할 때 쿠키 값을 이용하여 인증하는 방식이다. 쿠키값이 유효하면 그 때 중앙에 SSO서버에서 인증하여 로그온 되는 방식이다. 쿠키는 쿠키이름, 쿠키 값, 쿠키 최대나이, 사용자 로컬 IP주소나 프록시 서버 IP주소 등의 신원확인을 할 수 있는 정보들을 담고 있다. 사용자 세션이 만료되면 중앙 SSO 서버에서 쿠키를 파기하고 세션도 종료된다.
② 직렬화 강화된 쿠키 기반의 SSO
직렬화 강화된 SSO 시스템은 웹 서비스 SSO 시스템을 기반으로 제안된 것으로 SSO인증을 위해 쿠키를 사용한다. 쿠키는 사용자를 확인하기 위한 정보를 포함하고 있기 때문에 쿠키의 값을 보호하기 위해서 암호화를 사용한다. 암호화기반은 RSA(Riverst-Shamir-Adleman)이다. 직렬화 과정이 완료된 후 데이터의 배열은 암호화되고, 암호화된 바이트 배열은 웹 서비스로 전달된다.
직렬화 강화된 쿠키 기반의 SSO시스템의 프로세스는 중앙 쿠키 방식과 유사하나 중앙에 SSO서버를 두지 않고 직접 웹서버와 사용자간에 웹서비스를 통하여 쿠키값을 요청하고 이를 통신상에서 암호화한다는 특징이 있다. 모든 메시지는 RSA로 암호화되어 전송된다.
4. SSO에서의 쿠키 파일의 필요성과 보안 취약점
① 쿠키 파일의 필요성
중앙 쿠키 기반의 SSO시스템과 직렬화 강화된 SSO시스템 모두 쿠키를 사용하여 로그온을 한다. 사용자가 이전에 방문했던 기록을 쿠키 파일에 저장하고 재접속했을 경우 기록을 쿠키파일에 저장하여 사용자는 웹 페이지에서 자신에게 최적화된 기능을 제공받을 수 있다. 쿠키에는 필요한 정보를 꼭 저장할 필요성이 있다. 쿠키에 담을 수 있는 정보들을 최대한 많이 담아야 하지만, 중요한 정보는 세션에서 관리되어야 한다. 쿠키를 이용할 수밖에 없는 이유는 많은 정보들을 모두 세션에서 관리한다면 포털사이트는 서버에 오버헤드 상태에 빠질 수도 있을 것이다. 따라서, 로그온과 관련 없는 중요하지 않은 정보만 쿠키로 관리되어야 한다.
② 쿠키 파일의 세션관리 보안 취약점
네이버, 다음, 네이트, 구글의 국내 4대 포털사이트들에서 세션관리 즉 쿠키 정보 재전송 공격의 취약점을 점검한 결과 거론한 4대 국내 포털사이트에서 모두 공격에 대한 취약점이 발견되었다. 이들 사이트들은 모두 SSO로 관련사이트들을 서비스하고 있다. 예시로 거론한 사이트 외에도 많은 공공기관, 학교, 병원, 쇼핑몰 SSO 사이트들에서도 이런 취약점들이 나타났다. 자바스크립트(javascript)를 URL창에 입력하면 클라이언트에 저장되어 있는 쿠키 파일의 정보를 확인할 수 있다. 결국 SSO의 쿠키 취약점이라고 할 수 있으며 쿠키파일에 세션과 관련된 정보를 저장하는 일이 없도록 해야 한다. 세션 및 로그온 정보가 쿠키에 저장된다면 재사용이 가능하여 재전송 공격에 노출될 수밖에 없다.
5. SSO에서의 재전송 공격 방어 기법
SSO에서의 재전송 공격 취약점을 분석하여 문제점을 알아보았다. 본 발명에서 제안하는 SSO에서의 재전송 공격방어 기법은 SSO 인증 세션 토큰의 발급 프로세스가 포함된다. 기법은 세션 유지시간, 로그인 시간의 시간변수들과 데이터베이스 세션관리 테이블을 이용한 세션의 상태와 자동 증가 인덱스 번호를 이력 관리하며 방어하도록 아이디어를 제안하였다.
6. SSO에서의 재전송 공격 취약점 분석
회원인증 시스템의 일반적인 웹 화면에서 쿠키를 이용한 재전송 공격 방법을 분석하였다. 쿠키 값을 얻기 위해서 웹 스크립트언어로 제작한 폼메일(form mail)을 이용하여 SMTP(Simple Mail Transfer Protocol)로 발송하고 자바스크립트를 악용하여 쿠키 값을 얻을 수 있다. 인터넷에서 쿠키편집기 기능이 있는 공개 소프트웨어 중에 쿡시 툴바(cooxie toolbar)를 활용해 보았다. 쿡시 툴바를 이용하여 비교적 쉽게 쿠키 값의 편집이 가능하며 편집후 재전송 할 수 있다. 도 1은 해커가 패킷을 스니핑 즉, 쿠키 패킷정보를 훔쳐보기를 한 후에 재전송하는 그림을 보여주고 있다.
도 2는 쿡시 툴바를 이용한 쿠키 값의 편집을 설명하기 위한 도면으로서, 쿡시 툴바의 쿠키 편집 기능을 이용하여 쿠키를 재전송할 수 있다. 다른 사람의 쿠키정보를 도감청했다가 쿡시 툴바를 이용하여 편집한 후에 웹 화면을 새로고침하면 재전송 공격이 실행된다.
도 3은 재전송 공격후에 유출된 개인정보 화면을 설명하기 위한 도면으로서, 재전송 공격이 실행되면, 도 3과 같은 로그온 상태의 화면이 출력된다. 재전송된 쿠키 값으로 인하여 다수의 웹 사이트들은 로그온이 자동으로 되고 있다.
로그온 상태가 되면 화면 이동시 로그인 체크를 하여 방어하는 사이트들도 있지만 방어가 안되고 회원정보를 조회하고 수정할 수 있는 웹 어플리케이션 사이트들도 다수 확인되었다. 로그온이후에 화면이동시 방어하는 사이트들도 도 3과 같이 메인 화면은 그대로 회원의 정보들을 AJAX(Asynchronous Javascript and XML)방식으로 보여주게 되어 개인 정보보호에 치명적이다.
쉽게 다른 사용자의 쿠키 값을 얻어 악용할 수 있기 때문에 SSO의 인증에도 악용될 수 있다. 사용자가 로그온에 필요한 계정 정보를 보내면 최초에 SSO 서버에서 인증을 하게 되고 SSO서버에서 인증되면 사용자가 요청한 URL인 A 웹 사이트 또는 B 웹 사이트로 이동하게 된다. 한 번 로그온이 정상 실행되면 로그인 절차 없이 다른 SSO 시스템내의 웹 사이트로 이동된다.
7. 재전송 공격 방어 기법
인증정보인 세션 토큰 발급의 프로세스는 제안하는 웹 어플리케이션 SSO에서의 방어기법의 일부분으로 사용자가 SSO 로그인을 할 때마다 세션 토큰이 암호화 되어 발급된다. 세션 토큰을 가지고 재전송 공격시 방어하는 기법의 알고리즘을 만든다. 세션 토큰은 일방향 해쉬 알고리즘인 SHA-1(Secure Hash Algorithm-1)를 통화여 암호화한 후에 발급한다.
SHA는 1993년에 미국 NIST에 의해 개발되었고 가장 많이 사용되고 있는 해쉬 함수이며, 해쉬 함수는 해쉬 결과 값으로 입력 값을 계산하는 것은 불가능한 특징을 가지고 있으므로 정보보안 강도가 높고 안전하다고 할 수 있다. 암호화된 세션 토큰은 SSO서버와 연동되는 SSO 서버의 데이터베이스에서 관리된다. 세션 토큰을 데이터베이스에서 관리하며 쿠키가 아닌 세션 토큰으로 관리하여 POST 방식이나 GET 방식으로 전송되지 않게 하여 패킷 교환할 때 스니핑이 되지 않게 설계하였다. 세션 토큰은 세션정보에 저장되고 세션정보를 이용하여 정상적인 로그인 인증의 여부를 체크하므로 보안성을 높였다.
세션 토큰을 이용한 재전송 공격 방어 기법이 스니핑을 할 수 없도록 세션 토큰을 데이터베이스에서만 관리하고 패킷교환이 이뤄지지 않게 하였지만, 악성코드를 이용하거나 우회인증의 방법으로 세션 토큰의 값을 얻어 재전송한다면 재전송 공격에 취약할 수 있다. 세션 토큰만 가지고는 완벽한 재전송 공격의 방어가 어렵다.
따라서, 세션 토큰의 정보인 세션의 생성 시작시간과 파기된 시간을 이용하여 세션의 상태를 관리하고 상태에 따른 재전송 공격을 방어하는 기법을 고안하였다.
도 4는 세션 유지 시간을 설명하기 위한 도면으로서, 방어 기법은 도 4를 통하여 사용자가 정상 로그아웃하는 경우와 강제 로그아웃하는 경우로 구분하여 설명할 수 있다.
ΔTend = ΔTlogout ---(1)
Tend : 세션의 종료시간, Tlogout : 로그아웃 시간
도 4는 세션의 유지 시간 동안에 사용자가 정상적으로 로그아웃 버튼을 클릭한 후에 세션이 종료되는 Tlogout시간을 표시하였다. 이 경우에 수식(1)에서와 같이 세션 종료시간은 로그아웃한 시간과 같다. 이 경우의 세션은 로그 아웃하기 이전 시간까지 유지된다.
ΔTend = ΔTend1 + (ΔTlastAccess - ΔTstart) ---(2)
ΔTend1 : 세션의 종료시간, ΔTlastAccess : 마지막 접근시간, ΔTstart : 세션의 시작시간
위의 수식(2)는 사용자가 웹 브라우져의 닫기 버튼을 클릭하거나 PC가 강제 종료되는 경우에 강제로 로그아웃이 수행된 경우이다. 이 경우는 ΔTlastAccess의 사용자가 마지막 웹 페이지 조회한 시간이 다시 세션의 시작시간이 되고 ΔTlastAccess - ΔTstart의 ΔT만큼 다시 세션의 종료 예정시간이 연장된다. 다시 수식을 정리하면 수식(3)과 같다.
ΔTend = ΔTend1 + ΔT ---(3)
ΔT = ΔTend2 - ΔTend1 ---(4)
ΔT의 시간차이는 결국 수식(4)에서와 같이 새롭게 설정된 세션의 종료 시간인 ΔTend2 - ΔTend1 시간과 동일하다. 위의 수식들의 세션 상태를 알고리즘으로 나타내면 도 5와 같다.
도 5는 세션 상태 체크 알고리즘을 설명하기 위한 도면으로서, 입력 값으로 현재 시간 T의 타임스탬프를 입력하면 세션 종료 시간인 ΔTend와 비교할 수 있다. 세션의 상태를 세션이 유지되는 "session_active" 상태와 세션이 종료된 "session_destroy" 상태로 양분하여 계산할 수 있는 알고리즘이다.
상태 값을 구하고 세션의 상태 값을 이용하여 재전송 공격을 방어하고자 하는 것이다. 최종 접근 시간인 ΔTlastAccess와 세션이 파기되기 전의 유지 시간동안에 세션토큰이 중복되지 않는 값으로 "session_active"의 상태일 때 사용자는 새로고침이나 화면이동의 동작을 할 수 있게된다. 하지만 세션이 파기되면 "session_destroy" 상태로 바뀐다.
파기된 세션 토큰으로는 재전송이 불가능하도록 설계한다. 결국, 제안하는 기법의 일부부인 세션의 상태체크를 하는 알고리즘이 완성되었다.
ΔTstart < T < ΔTend 수식이거나 ΔTlastAccess < T < ΔTend2 에 해당하는 세션 유지 시간에는 데이터베이스에 세션 토큰이 입력되어 있고 이 토큰을 이용하여 로그인 여부를 체크할 수 있다.
이미 서버로 전송되었던 쿠키 값에 연동된 세션 토큰이 쿠키 값과 함께 재전송된다면 재전송 공격을 방어할 수 있다.
방어 기법은 지금까지 제안한 세션 토큰의 상태 값을 이용하여 데이터베이스의 접속이력관리 테이블인 session_history 테이블과 세션접속현황 테이블인 session_state 테이블을 이용하여 방어할 수 있다. session_state 테이블에는 세션 아이디와 세션 토큰, 최근 조회시간, 파기될 시간 그리고, 최초 로그인한 시간이 기록된다.
session_history 테이블에는 세션아이디와 세션 토큰의 값이 없으며 최초 로그인한 시간과 자동 증가 인덱스 번호(auto increment index number)만 존재한다. 접속시에 session_history 테이블에 입력 값이 무조건 처음에 입력되고 최종 입력된 데이터의 컬럼 중에 최초 로그인한 시간이 중복되어 계속 같은 값이 들어가는 경우는 같은 사용자가 새로 고침이나 페이지를 이동을 하고 있는 경우이므로 마지막 2개 로우(row)에 중복한 시간이 2개 검색된다면 최종 데이터 1개 로우는 화면이 로딩(loading)될 때 마다 계속 삭제하여 데이터베이스 공간 낭비를 줄인다.
session_history테이블에 최초 사이트 접속시에 로그인한 시간과 자동 증가되는 인덱스 번호가 입력되면 인덱스 번호를 역으로 정렬하여 최근에 입력된 2개의 마지막 데이터의 로그인 시간과 인덱스 컬럼을 검색한다. 2개의 데이터를 서로 비교하여 자동증가 인덱스 번호가 증가하였으나, 로그인한 시간은 오히려 감소하여 입력되어 이전 시간이 입력되었다면 100% 재전송 공격이므로 탐지한다.
즉, "session_active" 상태일 때는 세션 토큰의 유지시간이고 session_state 테이블에서 파기 전이므로 세션의 생성후 최초 로그인된 시간과 자동 증가되는 인덱스 번호를 session_history 테이블로 비교하여 방어한다.?quot;session_destroy" 상태일 때는 파기된 세션 토큰의 재전송이므로 무조건 방어한다.
만약, 중복 로그인을 했을 경우라면 정상적인 로그인 프로세스에 따라서 세션 토큰은 새로 발급되기 때문에 재전송 공격이라고 할 수 없다. "session_destroy" 상태에서는 쿠키 값에 매핑된 세션 토큰은 파기된다. 그리고 재전송하여 로그온 상태로 바꾸고자 할 때 검색되지 않는 값이므로 다시 로그온이 될 수 없고 방어된다. 따라서 파기된 세션 토큰의 재전송 공격은 또한 100% 방어된다고 할 수 있다.
8. 검증
재전송 공격을 제안한 기법으로 방어할 수 있는지의 여부를 실험을 통하여 알아보았다. 아파치(Apache), PHP, Mysql의 Windows환경에서 실험하였다.
9. 재전송 공격의 방어 검증
재전송 공격을 실행한 화면은 도 7과 같다. 공격자로 가정하여 재전송 공격을 실행했다. autoindex_01은 인덱스 번호의 최신번호이므로 autoindex_02다음의 번호이다. 따라서, 먼저 접속한 로그인 시간인 time_02가 time_01보다 작은 시간인 이전시간 이어야 한다. 하지만 공격이 실행된다면 아래의 수식이 성립된다.
time_01 < time_02 && autoindex_01 > autoindex_02 == TRUE
time_01 : 늦은 로그인 시간
time_02 : 이른 로그인 시간
autoindex_01 : 늦은 인덱스 번호
autoindex_02 : 이른 인덱스 번호
데이터베이스의 Mysql 관리자 화면은 도 6과 같다.
도 6은 도 7을 새로 고침하여 인덱스번호를 1증가시킨 화면이다. 인덱스번호가 983으로 증가되면서 재전송 공격이 되었다. session_history 테이블의 데이터는 도 6에서 확인할 수 있다. 인덱스 번호가 983일 경우의 시간이 971인 경우 보다 이후 시간이 되어야 하지만, 2013-02-17 13:08:21로 공격당한 세션의 최초 로그인한 시간인 이전 시간으로 입력되므로 재전송 공격임을 확인할 수 있어서 100% 공격을 방어할 수 있다. 그러므로, 재전송 공격 방어 기법의 검증이 성립되었으며 재전송 공격의 방어가 성공적으로 이뤄졌다.
10. 결론
본 발명에서는 SSO 인증후인 세션의 유지 시간 동안에 사용자가 세션 토큰을 최초 로그인한 시간과 자동 증가된 인덱스의 번호를 데이터베이스에 입력 후에 비교하며 재전송 공격을 방어하는 기법을 제안하였다.
최종 접근 시간과 종료되기 이전의 유지시간 동안에 세션 토큰이 세션 상태를 계속 "session_active" 상태로 유지하도록 한다. 사용자가 새로고침, 화면이동을 했을 경우는 "session_active" 상태로 유지시킨다. 세션 토큰이 "session_destroy" 상태일 경우는 무조건 방어한다.
기법에서는 데이터베이스 session_history 테이블에서 세션이 "session_active" 상태인 세션 토큰의 인덱스 번호와 세션의 신규 생성 후 최초 로그인한 시간을 이용하였다. session_history 테이블에서 자동 증가되는 인덱스 번호는 증가되었으므로 로그인 한 시간도 증가되어야 하지만, 로그인한 시간이 감소했으면 재전송 공격이 실행된 것이라는 법칙의 발견으로 쿠키 정보의 재전송 공격을 100% 방어할 수 있었다.
기존의 타임스탬프 방법은 통신할 때 참가자들은 동기화된 시계를 갖을 것을 요구하고 있고 순서번호 방법에서는 수신된 메시지의 경우 일정하게 유지되어야 하므로 인증과 키 교환에서는 적합하지 않았다. 하지만, 본 발명에서 이를 개선하여 쿠키를 재전송할 경우에 완벽히 방어할 수 있었다.
전술한 본 발명에 따른 웹 어플리케이션 SSO에서의 쿠키 재전송 공격 방어 기법에 대한 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명에 속한다.

Claims (1)

  1. 웹 어플리케이션 SSO에서의 쿠키 재전송 공격 방어 기법에 있어서,
    인증정보인 세션 토큰 발급의 프로세스는 제안하는 웹 어플리케이션 SSO에서의 방어기법의 일부분으로 사용자가 SSO 로그인을 할 때마다 세션 토큰이 암호화 되어 발급되고, 세션 토큰을 가지고 재전송 공격시 방어하는 기법의 알고리즘을 만들며, 세션 토큰은 일방향 해쉬 알고리즘인 SHA-1(Secure Hash Algorithm-1)를 통화여 암호화한 후에 발급하는 웹 어플리케이션 SSO에서의 쿠키 재전송 공격 방어 기법.
KR1020130022294A 2013-02-28 2013-02-28 웹 어플리케이션 sso에서의 쿠키 재전송 공격 방어 기법 KR20140110118A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130022294A KR20140110118A (ko) 2013-02-28 2013-02-28 웹 어플리케이션 sso에서의 쿠키 재전송 공격 방어 기법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130022294A KR20140110118A (ko) 2013-02-28 2013-02-28 웹 어플리케이션 sso에서의 쿠키 재전송 공격 방어 기법

Publications (1)

Publication Number Publication Date
KR20140110118A true KR20140110118A (ko) 2014-09-17

Family

ID=51756234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130022294A KR20140110118A (ko) 2013-02-28 2013-02-28 웹 어플리케이션 sso에서의 쿠키 재전송 공격 방어 기법

Country Status (1)

Country Link
KR (1) KR20140110118A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196892A (zh) * 2016-03-15 2017-09-22 阿里巴巴集团控股有限公司 一种网站登录方法和装置
KR20190064308A (ko) 2017-11-30 2019-06-10 삼성에스디에스 주식회사 비인증 사용자에 대한 세션 차단 방법 및 그 장치
WO2022260229A1 (ko) * 2021-06-08 2022-12-15 쿠팡 주식회사 회원 정보 관리 방법 및 그 장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196892A (zh) * 2016-03-15 2017-09-22 阿里巴巴集团控股有限公司 一种网站登录方法和装置
CN107196892B (zh) * 2016-03-15 2020-03-06 阿里巴巴集团控股有限公司 一种网站登录方法和装置
US10721231B2 (en) 2016-03-15 2020-07-21 Alibaba Group Holding Limited Website login method and apparatus
US10868813B2 (en) 2016-03-15 2020-12-15 Advanced New Technologies Co., Ltd. Website login method and apparatus
KR20190064308A (ko) 2017-11-30 2019-06-10 삼성에스디에스 주식회사 비인증 사용자에 대한 세션 차단 방법 및 그 장치
WO2022260229A1 (ko) * 2021-06-08 2022-12-15 쿠팡 주식회사 회원 정보 관리 방법 및 그 장치

Similar Documents

Publication Publication Date Title
Abdullah et al. Blockchain based approach to enhance big data authentication in distributed environment
US8185942B2 (en) Client-server opaque token passing apparatus and method
Yang et al. A security analysis of the OAuth protocol
Sun et al. Systematically breaking and fixing OpenID security: Formal analysis, semi-automated empirical evaluation, and practical countermeasures
US20130145447A1 (en) Cloud-based data backup and sync with secure local storage of access keys
US20090025080A1 (en) System and method for authenticating a client to a server via an ipsec vpn and facilitating a secure migration to ssl vpn remote access
US20110179478A1 (en) Method for secure transmission of sensitive data utilizing network communications and for one time passcode and multi-factor authentication
EP2572489B1 (en) System and method for protecting access to authentication systems
Dua et al. Replay attack prevention in Kerberos authentication protocol using triple password
Huang et al. A token-based user authentication mechanism for data exchange in RESTful API
Hossain et al. OAuth-SSO: A framework to secure the OAuth-based SSO service for packaged web applications
Liew et al. One-time knocking framework using SPA and IPsec
JP5186648B2 (ja) 安全なオンライン取引を容易にするシステム及び方法
KR20140110118A (ko) 웹 어플리케이션 sso에서의 쿠키 재전송 공격 방어 기법
Muhammad et al. Evaluation of OpenID-Based doublefactor authentication for preventing session hijacking in web applications
Fareed et al. Privacy-preserving multi-factor authentication and role-based access control scheme for the E-healthcare system
Gajek et al. A browser-based kerberos authentication scheme
Zhang et al. A New Type MySQL Integrated Mutual Authentication Security Model
Varalakshmi et al. Improvising JSON web token authentication in SDN
Deeptha et al. Extending OpenID connect towards mission critical applications
Jesudoss et al. Enhanced Kerberos authentication for distributed environment
Joseph et al. Cookie based protocol to defend malicious browser extensions
Ozha Kerberos: An Authentication Protocol
Namitha et al. A Survey on Session Management Vulnerabilities in Web Application
Mittal et al. Enabling trust in single sign-on using DNS based authentication of named entities

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination