41
工學碩士學位論文 토큰 업데이트를 이용한 사용자 인증에 관한 연구 Modified Token-Update Scheme for Site Authentication 2006년 2월 仁 荷 大 學 校 大 學 院 컴 퓨 터ㆍ情 報 工 學 科 李 正 鎬

工學碩士學位論文 토큰 업데이트를 이용한 사용자 인증에 관한 연구 · 토큰을 이용한 인증 알고리즘 연구가 폭넓게 진행 되고 있다. 그

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • 工學碩士學位論文

    토큰 업데이트를 이용한 사용자 인증에 관한 연구

    Modified Token-Update Scheme for Site Authentication

    2006년 2월

    仁 荷 大 學 校 大 學 院

    컴 퓨 터ㆍ情 報 工 學 科

    李 正 鎬

  • 工學碩士學位論文

    토큰 업데이트를 이용한 사용자 인증에 관한 연구

    Modified Token-Update Scheme for Site Authentication

    2006년 2월

    指導敎授 柳 亨 善

    이 論文을 碩士學位請求 論文으로 提出함

    仁 荷 大 學 校 大 學 院

    컴 퓨 터ㆍ情 報 工 學 科

    李 正 鎬

  • 이 論文을 李正鎬 의 碩士學位 論文으로 認定함

    2006年 2月

    主審 印

    副審 印

    委員 印

  • i

    국 문 요 약

    일반적으로 다중사용자 시스템에서는 시스템에 로그인 허가나 식별을 하기

    위해 아이디와 패스워드를 요구한다. 전송되는 데이터는 항상 공격자에게 노출

    되어 있기 때문에, 간단한 아이디나 패스워드 기법을 이용한 인증 기법은 취약

    점을 가지고 있다.

    네트워크 상에서 인증은 매우 중요한 요소로 인식되고 있다. 이를 위해 난수와

    토큰을 이용한 인증 알고리즘 연구가 폭넓게 진행 되고 있다. 그 중 다양한

    공격으로부터 서버와 사용자들을 보호하기 위해 OTP와 스마트 카드 기법 등이

    연구되고 있다.

    본 논문에서 제안하고 있는 토큰 업데이트 기법은 사용자의 MAC 주소와

    1회성 난수를 적용하고 있다. 그리고 해쉬와 암호문으로 전송이 이루어진다.

    MAC 주소는 고유한 식별자로 이루어져 있기 때문에, KIC를 대신 할 수 있다.

    이와 같은 기법은 패스워드 추측공격, 재전송 공격, 패킷 스니핑, 위조공격으로

    부터 안전하다. 그리고, MAC 주소와 서버의 난수로 구성된 토큰은 효율적인

    패스워드 복구 방법을 제공 할 수 있다. 제안된 토큰 업데이트 방법은 사이트

    인증을 위해 효과적인 알고리즘이 된다.

  • ii

    Abstract

    It is common that multi-user systems require “id” and “password” to

    identify and permit logging onto the system. Since the transmitted data are

    always open to an attacker, the simple id and password scheme has weak

    points for authentication.

    An authentication is very important in network. Most papers discuss

    schemes with nonce and token updates. One-time password and smart card

    schemes are widely studied to protect servers and users from various

    malicious activities.

    In this paper, we suggested a modified token-update scheme with Mac

    address and one-time random number. And the transmission is by hash and

    encrypted data. Since the Mac address of LAN card could be used as an

    identifying number, it might replace the KIC. It is safe in various

    circumstances such as password-guessing attack, replay attack, packet

    sniffing, and forgery attack. This scheme can provide an efficient password

    recovery method by the MAC number and a random number by the server.

    The suggested modified token-update method algorithm is shown to be very

    effective in site authentication.

  • iii

    차 례

    국문요약∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙i

    ABSTRACT∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙ii

    차 례∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙iii

    제 1 장 서론∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙…∙∙∙∙∙1

    제 2 장 인증기법

    2.1 인증의 개념∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙3

    2.2 일반패스워드∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙4

    2.3 OTP∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙5

    2.4 암호화 시스템∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙6

    제 3 장 사용자 인증 알고리즘의 분석

    3.1 Peyravian과 Zunic의 알고리즘∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙7

    3.2 OTP 인증 알고리즘∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙9

    3.3 스마트 카드 인증∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙11

    제 4 장 토큰 업데이트를 이용한 사용자 인증 방법

    4.1 MAC 주소의 구성∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙12

    4.2 토큰의 구성원리∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙13

    4.3 등록절차∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙14

    4.4 로그인 및 인증 절차∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙16

  • iv

    4.5 패스워드 복구 절차∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙18

    제 5 장 보안 분석

    5.1 패스워드 추측공격∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙20

    5.2 재전송 공격∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙23

    5.3 패킷 스니핑∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙26

    5.4 위조 공격∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙29

    제 6 장 결 론∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙32

    참고문헌∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙33

  • 제 1 장 서 론

    컴퓨터 시스템과 통신 네트워크에서 인증은 매우 중요한 위치하고 있다. 일반

    적으로 많이 사용되는 인증을 구성 아이디와 패스워드를 사용하며, 그 중 패스워

    드는 비밀 키의 역할을 한다. 하지만, 인간이 기억할 수 있는 패스워드의 길이는

    제한적이며, 이에 대한 관리를 잘못하게 되면 시스템 안전성의 위험요소가 되므로,

    패스워드 관리와 선택은 중요하다[1,2,5,6,8].

    특히, 1976년 Diffe-Hellman 알고리즘을 시작으로 RSA 알고리즘을 이용한

    공개키 암호화 시스템의 개발은 인증 데이터를 보다 안전한 형태인 암호문으로

    전송이 가능하게 만들었지만, 당시 하드웨어의 성능 때문에 대중화되기 어려워

    제한적으로만 사용이 되었다. 현재는 하드웨어의 급속한 발전으로 공개키 암호화

    시스템 등 많은 계산량을 요구하는 알고리즘의 처리가 가능하게 되었다. 공개키

    암호화 알고리즘의 암호문은 공격자에게 노출되어도 비밀키를 가지고 있지 않으면,

    복호화하는 것이 어렵다는 장점을 가지고 있기 때문에, 다양한 형태로 암호화

    시스템에 적용되고 있다[10,13,14]. 또한, 1981년 L. Lamport는 처음으로

    OTP(One-Time Password)의 개념을 정의하였으며 이후 Bellcore에서 S/Key

    시스템으로 개발하였다. 이는 사용자와 시스템간의 반복적인 인증 데이터의 사용

    하지 않고, 암호화 시스템을 적용하지 않기 때문에 빠르고 간편하게 사용이 가능

    하다[2,3,4,5].

    2000년에는 M. Peyravian과 N. Zunic은 해쉬함수를 사용하여 인증토큰을

    구성함으로써 사용자와 시스템간의 별도 인증기관이 필요 없는 패스워드 전송

    기법을 제안하였다[8]. 2003년 J. Archer는 OPA(One-Time Password System)

    모델을 연구하였다[3]. 또한, 최근에는 연산과 저장이 가능한 스마트 카드를 이용한

    인증 시스템 개발도 활발히 이루어 지고 있으며, 사이트, 인터넷 지불 시스템 등

    사용자 인증을 위해 사용하기도 한다. 그 중, 1999년 Yang와 Shieh는 KIC(Key

  • Information Center)라고 불리는 제 3자의 인증기관에서 CID(Card Identifier)를

    인증데이터와 함께 스마트 카드에 저장한 후, 호스트에서 인증이 가능한 알고리즘을

    제안하였다[7].

    다양한 사용자 인증 시스템을 사용하기 위해서는 다음과 같이 4가지의 특성이

    요구된다. 첫째, 시스템과 사용자는 인증테이블이 없어야 하며, 둘째, 사용자는

    패스워드를 자유롭게 선택하여 사용할 수 있어야 하며, 셋째, 최소한의 통신과

    연산을 수행 할 수 있어야 한다. 마지막으로, 신뢰 할 수 있는 상호 인증이 가능

    해야 한다[7,15]. 공격에 노출을 최소화하고, 안전한 사용자 인증을 하기 위해

    RSA 알고리즘, 타원곡선 암호화 기법, 해쉬함수 등을 적용한 연구가 진행되고 있다.

    본 연구에서는 스마트 카드 시스템에서 인증을 위해 사용하고 있는 KIC를

    대체 사이트 인증에 적용하기 위해 컴퓨터의 랜 카드에 저장되어 있는 MAC 주소와

    함께 토큰을 구성하고, 토큰을 업데이트 하기 위해 서버에서 생성한 난수를 사용

    하였다. 또한, 본 연구에서는 토큰의 노출을 막기 위해서 강력한 공개키 암호화

    시스템과 충돌이 적은 해쉬함수를 요구한다. 4장에서 제안된 알고리즘은 등록,

    로그인과 인증, 패스워드 복구로 총 3단계로 구성되어 있으며, 이에 대한 안전성을

    검증하기 위해서 패스워드 추측공격, 재전송 공격, 패킷 스니핑, 위조공격으로

    분석하였다.

  • 제 2 장 인 증 기 법

    2.1 인증의 개념

    인증이란, 특정 시스템의 서비스를 사용하기 위해서 사용자가 권한을 얻기

    위한 절차이다. 사용자는 정보를 시스템으로 보낼 수 있지만, 접근 권한에는

    영향을 미치지 않는다. 인증서비스는 메시지에 대한 인증과 개체에 대한 인증으로

    구분된다. 메시지 인증은 메시지의 원본이 정확하게 확인되고 그 확인이 잘못되지

    않았다는 확신을 얻기 위한 요구이다. 개체 인증은 통신자의 신원확인 절차로서

    신원확인 또는 개인 식별, 사용자 인증이라고 한다. 사용자의 인증데이터는

    악의적 3 자에게 노출이 되지 않는 비밀성, 정확하고 완전한 상태를 유지해야

    하는 무결성, 발신자와 수신자의 데이터에 부인방지의 특성을 가지고 있다.

    그림 1은 사용자가 서버로부터 사용자 인증을 받기 위해 인증데이터를 구성하여

    전송을 하며, 서버는 인증데이터를 비교하여 허가 혹은 거부를 하는 기본적인

    사용자 인증과정을 보여주고 있다[1,2,6,7,11,14,15].

    그림 1. 기본적인 사용자 인증과정

    Authentication Data

    Accept or Reject User Server

  • 2.2 일반 패스워드

    기존의 UNIX 시스템에서 사용자를 인증하기 위해 많이 일반적으로 사용되는

    방법이다. 이 방법은 연산과정이 필요 없으며, 단순히 텍스트 형태의 아이디와

    패스워드만 전송하여 시스템에서는 이를 비교만하여 인증을 하기 때문에,

    인증과정이 매우 간단하고 수행시간이 빠르다. 다음 그림 2은 사용자가 선택한

    아이디와 패스워드를 서버에 등록을 한 후, 인증을 받기 위해 서버에게 아이디와

    패스워드를 보내면, 서버는 등록된 사용자의 아이디와 패스워드를 체크하여

    인증을 결정을 한다[1,14].

    그림 2. 일반 패스워드를 이용한 인증기법

    그러나 일반패스워드를 사용한 방법에서 패스워드가 악의적 3자에게

    노출되었을 경우, 사용자를 가장하여 시스템에 접근하는 것이 용이하다. 이로

    인해 정보유출 등과 같은 보안상의 위험성이 존재하고 있다. 이런 문제점을

    보완하기 위해서 중요한 정보를 사용하기 위해서는 OTP, 생체정보, 암호화

    알고리즘 등을 적용한 인증시스템을 사용하기도 하며, 이와 관련된 많은 연구 및

    제품이 개발되고 있다.

    id, pw

    Accept or Reject User Server

  • 2.3 OTP(One-Time Password)

    일반 패스워드 인증기법에서 주기적으로 변하지 않는 패스워드 사용으로

    나타나는 보안상의 문제점을 보완하기 위해 사용하는 기법이다. 매번 인증과정이

    발생 할 때마다, 새로운 패스워드를 생성하여 사용한다. 초기 OTP에서는

    사용자와 서버가 규칙을 가지고 있는 패스워드 테이블을 만들어서 인증을 위해

    정해진 순서대로 사용하였다. 이후, 테이블 노출의 문제점을 해결하기 위해

    상용화된 S/Key에서는 Nonce와 난수를 이용하여 구성하였다. 그림 3에서는

    사용자가 서버에 아이디를 등록한 후, 패스워드 테이블을 이용하여 인증을 받는

    방법이다. 사용자는 아이디를 패스워드 테이블에 저장된 패스워드를 매번 정해준

    순서에 의해서 서버에게 보내며, 이를 통해 서버로부터 사용자가 인증이 되고

    있는 과정을 보여주고 있다[2,3,4,5,14].

    그림 3. 기본적인 OTP 인증기법

    OTP는 현재 다양한 분야에 적용되어 사용되고 있다. 하지만, 사용자와 서버

    사이에 일정한 규칙성을 가지고 있기 때문에, 최근에도 이를 해결하기 위한

    연구가 활발히 진행되고 있으며, 3장에서 소개될 OTP알고리즘을 분석을 통하여

    알아본다.

    id, pwi : i=1,2,3…..

    User Server Accept or Reject

  • 2.4 암호화 시스템

    최근에 메시지 보안성과 인증데이터의 노출을 방지하기 위해서 다양한

    암호화 알고리즘이 적용된 시스템을 사용한다. 이러한 암호화 시스템에 사용하는

    알고리즘은 크게 공개키 알고리즘과 대칭키 알고리즘으로 구분할 수 있다. 공개키

    알고리즘은 각각의 사용자 별로 암호문으로 만들기 위한 공개키와 암호문을

    복호하기 위한 비밀키로 구성되어 있다. 공개키는 인터넷을 통해 공개되어 있지만,

    비밀키는 공개키를 생성한 사용자만 가지고 있다. 대칭키 알고리즘은 한 개의

    키로 구성되어 있으며, 생성한 사용자만 보관해야 하며 이를 가지고 인증데이터나

    메시지를 암호화와 복호화를 할 수 있다[10,13,14].

    그림 4에서는 암호화 알고리즘을 이용해 암호화와 복호화 할 수 있는 Kε 를 생성하여 사용자가 아이디와 함께 암호화 한 패스워드를 서버에 보낸다. 그리고

    서버는 비밀키를 사용하여 사용자의 암호문을 복호화 한 후 등록된 패스워드와

    비교하여 사용자의 인증여부를 결정하는 것을 보여주고 있다. 이렇게 구성된

    패스워드나 메시지가 악의적 3자에게 노출이 되어도 데이터의 수정과 노출을

    막을 수 있다[10,13].

    그림 4. 암호문을 이용한 인증기법

    Accept or Reject

    id, Kε (pw) User Server

  • 제 3 장 사용자 인증 알고리즘의 분석

    3.1 Peyravian과 Zunic의 알고리즘

    Peyravian과 Zunic의 알고리즘은 데이터 전송을 위해 암호화 알고리즘을

    적용하지 않았으며, 사용자 인증을 받기 위해서 난수와 해쉬로 구성되어 있다.

    따라서, 패스워드가 악의적 3자에게 노출이 되지 않도록 해쉬를 사용하여

    )),((_ pwidhdigestidpw = 로 구성하였기 때문에, 패스워드를 직접 사용하지

    않는다. 난수 ),( rsrc 가 포함된 인증토큰 )_( tokenauth 은 사용자 인증을 위해

    사용되는 중요한 데이터이다. 알고리즘의 표현은 아래와 같은 단계로 구성되어

    있다[8].

    digestidpwpwidCU _},,{:.1 →

    사용자(U)가 클라이언트(C)에게 아이디와 패스워드를 보안채널로 구성된

    네트워크로 보내주면, 클라이언트는 digestidpw _ 로 구성한다.

    },{:.2 rcidSC →

    클라이언트는 난수생성기를 이용하여 rc 를 생성하고, id 와 함께

    서버(S)에게 보낸다.

    }{:.3 rsCS →

    서버는 난수생성기를 이용하여 rs 를 생성하고, 클라이언트에게 보낸다.

    ),,_(_.4 rsrcdigestidpwhtokenauthcalculatesC =

    클라이언트는 digestidpw _ , rc , rs 로 구성하여 해쉬를 통해 인증토큰으로

    구성한다.

  • }_,{:.5 tokenauthidSC →

    클라이언트는 서버에게 id와 알고리즘 4번에서 구성한 인증토큰을 전송한다.

    ._*_

    *_.6

    otherwiserejectstokenauthtokenauthifaccept

    tokenauthcalculatesS=

    서버는 이미 사용자의 digestidpw _ 를 가지고 있으며, 알고리즘 4번과 같이

    인증토큰을 구성하여, 클라이언트의 인증 토큰과 비교하여 인증을 결정한다.

    알고리즘 2, 3에서 rcrs, 를 평문의 형태로 전송을 한다. 그래서 악의적

    3자에 의해서 rsrcid ,, 가 패킷 스니핑과 같은 공격방법으로 획득가능하며,

    패스워드는 추측을 통해 노출이 될 가능성이 충분히 있다. 따라서, 악의적 3자에

    의해 구성된 인증토큰은 시간차를 이용하여 등록된 사용자보다 먼저 서버의

    인증을 받을 수 있다.

  • 3.2 OTP 인증 기법

    2장에서 설명한 OTP는 인증이 필요할 때 매번 새로운 패스워드나 인증

    데이터를 사용하는 인증 기법이다. OTP를 사용하기 위해서는 우선 난수(R)를

    생성하기 위한 난수 생성기와 임시로 정한 Nonce(N)가 필요하다. 서버는

    사용자의 인증요구가 발생했을 때, 난수를 생성하여 N번 해쉬한 값을 저장한다.

    그리고 사용자에게 N-1과 난수를 보내 사용자가 N-1번 해쉬한 것을 다시 1회

    더하여 해쉬하여 서버에 저장된 것과 비교하여 인증 여부를 결정하게 된다[2,3].

    이에 대한 알고리즘은 아래와 같은 단계 구성되어 있다.

    )()(, NRhcomputesNselectsS

    사용자의 인증요구가 발생하게 되면, 우선 서버는 N을 선택하고, R을

    N번만큼 해쉬하여 저장한다.

    RNCS ,1:.1 −→

    서버는 클라이언트에게 N-1, R를 보낸다.

    )1()(:.2 −→ NRhSC

    클라이언트는 N-1번 R을 해쉬하여, 서버에게 보낸다.

    .))(()(

    ),)((.3)1()(

    )1(

    otherwiserejectsRhhRhifaccepts

    RhhcalculatesSNN

    N

    =

    서버는 클라이언트에서 보내온 N-1번 해쉬 값에 1회 더 해쉬하여 연산한

    ))((( )1( −NRhh 을 서버의 )()(( NRh 와 비교하여 인증 여부를 결정한다.

  • 10

    위 알고리즘 1에서 N-1과 R은 평문의 형태로 전송이 되기 때문에, 악의적

    3자에게 획득이 가능하며, 획득한 N-1과 R을 사용한 해쉬 값을 생성하여

    서버로부터 인증을 받을 수 있다. 또한, N의 선택이 규칙적이고 N-1 혹은 N-2

    이라는 규칙이 노출되면, 공격자는 동일한 난수 생성기를 이용하여 R을 생성한 후

    서버를 대신하여 사용자를 속일 수 있다.

  • 11

    3.3 스마트 카드 인증 기법

    스마트 카드는 휴대가 가능한 하드웨어로 저장과 연산이 가능하며, 언제

    어디서든 시간과 장소의 제약을 받지 않고, 안정적이며 간편하게 사용자와 메시지

    인증을 할 수 있다. 스마트 카드를 인증에 사용하기 위해서는 KIC를 통해 발급

    받은 CID와 인증 데이터가 저장되어 있어야 한다. 이를 통해 KIC와 연동되어

    인증데이터를 확인할 수 있는 연산자를 가지고 있는 서버는 해당 스마트 카드를

    등록 및 인증할 수 있다[6,7]. 아래 그림 5는 사용자가 스마트 카드를 발급 받기

    위해 아이디와 패스워드를 보안채널을 통해 KIC에게 전송하여 스마트 카드를

    발급받는 과정이다.

    그림 5. 스마트 카드 발급 과정

    스마트 카드에는 사용자를 인증하기 위한 모든 데이터가 들어있기 때문에,

    분실될 경우 악의적 3자에 의해 악용될 소지가 높다. 하지만, 휴대와 인증의

    편리함 때문에, 이를 이용한 연구 및 시스템 개발이 활발히 이루어지고 있다.

    Smart card(included CID,

    authentication data)

    id, pw

    User KIC

  • 12

    제 4 장 토큰 업데이트를 이용한 사용자 인증 방법

    4.1 MAC 주소의 구성

    본 연구에서는 사이트 인증을 위해 컴퓨터의 랜 카드에 있는 MAC 주소를

    사용한다. 이는 네트워크를 이루는 최하위계층의 기본이 되며, 네트워크 상에서

    우리가 사용하는 주민등록번호와 같은 역할을 한다. 일반적으로는 물리적인

    주소로 표현하기도 한다. 아래 그림 6은 16진수로 표현된 MAC 주소의 구조를

    보여준다.

    그림 6. MAC 주소의 구성

    랜 카드의 MAC 주소는 총 6byte로 구성되어 있으며, 앞쪽으로부터 3byte는

    IEEE로부터 받은 식별번호와 제조회사의 정보가 들어있다. 그리고 뒤쪽 3byte는

    제품의 생산번호로 되어있다. 1byte는 8bit로 구성되어 있기 때문에, 총 3byte로

    구성된 제품의 생산번호는 1개의 제조회사가 224(=16,777,216)개의 맥 주소를

    만들 수 있다. 만약 제조회사의 수가 100개, IEEE로부터 받은 식별번호가

    100개일 경우, 224 × 10000(=16,777,260,000)개의 MAC 주소를 만들 수 있기 때문에, 전세계에 동일한 MAC 주소는 존재하지 않는다.

    00 ea a7 4b 56 2e

    IEEE and some company’s identifier Product’s identifier

  • 13

    4.2 토큰의 구성원리

    토큰이란, 통신상에서 이루어지는 데이터를 말한다. 본 연구에서 사용하는

    토큰은 사용자의 인증데이터 mapwid ,, (MAC)가 포함되어 그림 7과 같이

    구성된 1token 으로 표현된다. 서버에서 생성한 난수 )(rs 를 이용하여 )(rsh 로

    구성한 다음 그림 8과 같이 1token 의 업데이트를 위해 사용한다. 그림 7과 그림

    8은 4.3부터 4.5에 제안될 등록, 로그인과 인증, 패스워드 단계에서 사용되는

    기본적인 토큰의 구성과 업데이트 방식을 보여주고 있다.

    그림 7. Token1의 구성

    그림 8. Update Token2의 구성 원리

    2tokenUpdate || )(rsh 1token

    1token mapwid ||||

  • 14

    4.3 등록절차

    등록을 하기 전 서버와 사용자는 공개키 알고리즘을 이용하여 생성한 서로의

    공개 키를 알고 있으며, 1token 과 난수에 적용되어질 해쉬 함수는 collision-

    resistant(ex : SHA-1)를 가지고 있다. 다음은 본 연구에서 제안하고 있는 사용자

    등록 알고리즘을 보여주고 있다.

    )||||(1.1 mapwidtokenconstructU =

    사용자는 아이디( id )와 패스워드( pw ), 맥 주소( ma )로 1token 을 구성한다.

    )}1(),1({:.2 tokentokenhSU SKε→

    사용자는 1token 을 해쉬 연산한 )1(tokenh 과 서버의 공개키 Ks로 암호화

    한다. 사용자는 )1(tokenh 과 암호화된 1token 를 서버에 보낸다.

    otherwiserejectsrshreturnstokenhtokenhifaccepts

    tokenhtsreconstrucanddecryptsSUK ))(()*,1()1(

    *)1(.3ε=

    서버는 사용자로부터 받은 암호문을 복호하여 )1(tokenh 으로 재구성한다.

    만약 두개 해쉬의 값이 같으면, 서버는 등록을 허가한다. 서버는 랜덤넘버를

    생성하여 )(rsh 로 구성한 후, 암호문으로 만들어 리턴한다.

    ).2(),(||22.4 tokenhrshtokentokenconstructsS =

    서버는 1token 과 )(rsh 로 2token 를 구성하고, 다음 번 사용자의 로그인 및

    인증 요청이 발생하면, 비교하기 위해 )2(tokenh 로 구성하여 유지한다.

  • 15

    등록 알고리즘 1에서 알고리즘 4를 그림 9에서 보는 것과 같이 간단하게

    표현할 수 있다.

    그림 9. 제안된 기법의 등록 절차

    User Server

    )1(),1(, tokentokenhid ksε

    ))(( rshkuε

    -pw freely -construct token1= (id||pw||ma)

    -Store: kuε (h(rs))

    -Check h(token1) -Create h(rs) token2=token1||h(rs)

    -Store : h(token2)

  • 16

    4.4 로그인 및 인증 절차

    사용자가 등록을 하고, 서버에 인증 요청하기 위해서는 4.3에서 마지막에 서버

    로부터 받은 암호화된 )(rsh 가 필요하다. 다음은 본 연구에서 제안하고 있는

    등록된 사용자 로그인 및 인증을 위한 알고리즘을 보여주고 있다.

    )}2(,{:

    )2()),(||1(2))((.1

    tokenhidS

    tokenhrshtokentokenconstructrshdecryptU UK

    사용자는 인증 요청을 하기 전 저장하고 있는 암호화된 )(rsh 복호하여

    )(rsh 를 얻는다. 그래서 1token 과 )(rsh 로 2token 를 구성하고 해쉬하여

    )2(tokenh 로 구성한다. 사용자는 id 와 )2(tokenh 를 서버에게 전송을 한다.

    .*))((*),(*2

    *)2()2(.2

    otherwiserejectsrshreturnsrshwithtokenupdates

    tokenhtokenhifacceptsSUKε

    =

    서버는 이전에 저장된 )2(tokenh 와 사용자로부터 전송된 )2(tokenh 를

    비교한다. 만약 두개의 해쉬가 동일하면, 서버는 로그인과 인증을 허가하고,

    서버는 새로운 *rs 를 생성하여 해쉬한 *)(rsh 를 사용자의 공개키 Ku로

    암호화하여 사용자에게 전송한다. 서버는 이전의 )2(tokenh 를 삭제하고, 다음 번

    인증에 사용하기 위해 업데이트된 토큰을 *)2(tokenh 로 구성하여 유지한다.

  • 17

    알고리즘 1과 알고리즘 2을 그림 10에서 보는 것과 같이 표현할 수 있다.

    그림 10. 제안된 기법의 로그인 및 인증 절차

    User Server

    )2(, tokenhid

    )*)(( rshkuε

    -Decrypts kuε (h(rs)) -token2

    =token1||h(rs) -h(token2) -Store: kuε (h(rs*))

    -Check :id, h(token2) -Update

    h(rs*) token2*=token1||h(rs*)

    -Return kuε (h(rs*)) -Store : h(token2’)

  • 18

    4.5 패스워드 복구 절차

    사용자의 패스워드가 쉽게 구성되어 있어도 잊어버리는 경우가 발생하기 때문에

    패스워드 복구 절차가 필요하다. 패스워드 복구 절차는 등록절차와 비슷한 절차를

    가지고 있으며, 이를 위해 필요한 것은 마지막으로 서버에서 받은 암호화된

    *)*(rsh 이다. *)*(rsh 을 가지고 토큰을 구성하여, 서버로부터 인증을 받을 수

    있다. 다음은 본 연구에서 제안하고 있는 패스워드 복구를 위한 알고리즘을 보여

    주고 있다.

    )}3(),3({:*)}*(||||{3.1

    tokentokenhSrshmaidtokenconstructsU

    SKε→=

    패스워드를 분실한 사용자는 id , ma , *)*(rsh 로 구성된 새로운 3token 를

    만든다. 사용자는 3token 를 해쉬하여 )3(tokenh 와 암호화한 3token 를 서버에게

    보낸다.

    **))}.*((,,({:.

    **)*(1*)3()3(

    *)3(.2

    rshpwidUotherwiserejects

    rshwithtokenupdatestokenhtokenhifaccepts

    tokenhtsreconstrucS

    SKε→

    =

    사용자에게 받은 암호화된 3token 를 *)3(tokenh 로 재구성하여 )3(tokenh 와

    비교하여 *)*(rsh 가 포함된 것을 확인하고, **)*(rsh 를 생성하여

    **)2(tokenh 로 구성하여 다음 번 로그인을 위해 저장한다. 그리고 사용자의

    공개키로 **)*((,, rshpwid 을 암호화 하여 사용자에게 전송한다. 사용자는

  • 19

    복호화하여 pw 를 확인한다. **)*(rsh 는 사용자가 다음 번 인증을 요청할 때,

    *)*2(tokenh 로 구성하여 사용할 수 있다.

    알고리즘 1과 알고리즘 2을 그림 10에서 보는 것과 같이 표현할 수 있다.

    그림 11. 제안된 기법의 패스워드 복구 절차

    User Server

    )3(),3(, tokentokenhid ksε

    **))*(,,( rshpwidkuε

    -Construct token3=id||ma||h(rs**) h(token3)

    -Store: kuε (id, pw, h(rs***))

    -Check : id, h(token3) -Update h(rs***), token2** =token1||h(rs***)

    -Store : h(token2**) -Returns

    kuε (id, pw, h(rs***))

  • 20

    제 5 장 보 안 분 석

    5.1 패스워드 추측공격

    기억하기 쉬운 정보들을 포함하거나 짧은 문장으로 이루어진 패스워드를

    대부분의 사용자는 사용을 하고 있다. 이러한 패스워드는 사용자가 자주 사용하는

    정보를 이용하여 악의적 3자에 의해서 추측으로 획득이 가능하다. 본 연구에서

    제안하고 있는 패스워드에는 제약이 없으며, 자유롭게 선택할 수 있다. 따라서

    공격자가 이러한 패스워드를 쉽게 알아 낼 수 있다[7,14].

    등록, 로그인 및 인증 절차의 보안성과 안전성을 검증하기 위해, 우선

    공격자는 사용자의 패스워드를 알고 있으며, 서버에 재등록 혹은 인증을 받기

    위해 공격자는 자신의 컴퓨터를 사용하여 시스템에 접근을 시도한다.

    그림 12. 등록절차의 안전성

    Server

    A S : id, pw

    S A : reject

    U S : id, h(token1), SKε (token1) S U : UKε (h(rs))

    Attacker

    User

    Guess User’s pw

  • 21

    그림 12에서는 등록을 완료하고, 공격자가 사용자의 패스워드를 얻었다고

    가정을 하였다. 공격자는 아이디와 패스워드로 구성된 토큰을 서버에 재등록을

    하기 위해 보냈다. 하지만, 등록을 위한 토큰의 구성은 )|||(1 mapwidtoken = 로

    이루어져 있기 때문에, 공격자의 토큰에는 맥 주소가 포함되어 있지 않다. 따라서

    서버는 공격자의 토큰 등록을 거부한다. 만약, 포함되어 있어도 서버는 동일한 맥

    주소의 등록을 거부하기 때문에, 등록을 거부한다.

    그림 13. 로그인 및 인증 절차의 안전성

    그림 13에서는 이미 등록된 사용자의 올바른 패스워드를 공격자가 얻었다고

    가정을 하였다. 공격자는 등록된 사용자의 아이디와 패스워드로 구성된 토큰을

    가지고 있으며, 서버로부터 인증을 받기 위해 토큰을 보낸다. 사용자는

    h(token2)로 인증을 받은 후, 암호화된 h(rs*)를 다음 로그인시 인증에 사용하기

    위해 서버로부터 전송 받게 된다. 하지만, 공격자의 토큰에는 맥 주소와 h(rs*)가

    포함되어 있지 않기 때문에, 서버는 로그인 및 인증을 거부한다.

    User

    Attacker

    Guess User’s pw

    Server

    U S : id, h(token2)

    S U : UKε (h(rs*))

    A S : id, pw

    S A : reject

  • 22

    그림 14. 패스워드 복구 절차의 안전성

    그림 14는 사용자가 패스워드를 기억하지 못하고, 대신 공격자가 추측으로

    얻어낸 패스워드를 가지고 있다고 가정하였다. 사용자는 패스워드를 알기 위해

    서버에게 위와 같은 인증데이터를 보낸다. 공격자는 아이디와 패스워드로 구성된

    토큰을 사용하여 서버에 접근하여 사용자의 패스워드를 변경하려고 시도하고

    있다. 하지만, 공격자의 토큰에는 마지막으로 서버에서 보낸 h(rs***)가 포함되어

    있지 않기 때문에, 서버는 거부한다.

    Attacker

    Guess User’s pw

    Server

    U S : id, h(token3), ), SKε (token3) S U : UKε (id,pw,h(rs***))

    A S : id, pw

    S A : reject

    User

  • 23

    5.2 재전송 공격

    일반적으로 서버의 인증을 받기 위한 사용자의 인증데이터는 고정되어

    사용된다. 기존 사용자가 접속 중이거나 접속 종료 후, 악의적 3자가 동일한

    인증데이터를 가지고 사용자를 가장하여 서버의 인증을 받을 수 있다. 본

    연구에서 사용된 인증데이터를 공격자가 가지고 있을 수 있다[7,14].

    등록, 로그인 및 인증 절차의 보안성과 안전성을 검증하기 위해, 우선

    공격자는 기존 사용자의 최근 인증데이터를 가지고 있으며, 이를 이용해 서버에

    재등록 혹은 인증을 받기 위해 접근을 시도한다.

    그림 15. 등록절차의 안전성

    그림 15에서는 등록을 완료하고, 공격자가 사용자의 h(token1)과 암호화된

    h(token1)을 얻었다고 가정을 하였다. 사용자를 가장하여 인증 데이터를 가지고

    등록을 시도하려고 한다. 하지만, 이미 기존 사용자의 MAC 주소와 아이디가

    A S : id, h(token1), SKε (token1) S A : reject

    U S : id, h(token1), SKε (token1) S U : UKε (h(rs))

    Attacker

    User Server

  • 24

    등록이 되어 있기 때문에, 서버는 공격자의 토큰 등록을 거부한다.

    그림 16. 로그인 및 인증 절차의 안전성

    그림 16에서는 이미 등록된 사용자가 사용한 인증데이터를 공격자가 얻었다고

    가정을 하였다. 공격자는 최근에 보낸 h(token2)를 가지고 있으며, 서버로부터

    인증을 받기 위해 보낸다. 하지만, 사용자는 h(token2)로 인증을 받은 후,

    h(token2*)를 구성하기 위해 암호화된 h(rs*)를 서버로부터 이미 전송 받았다.

    그러나 공격자의 h(token2)는 h(rs*)가 포함된 h(token2*)가 아니기 때문에,

    서버는 로그인 및 인증을 거부한다.

    Attacker

    User Server

    U S : id, h(token2)

    S U : UKε (h(rs*))

    U S : id, h(token2*)

    A S : id, old h(token2)

    S A : reject

  • 25

    그림 17. 패스워드 복구 절차의 안전성

    그림 17에서 사용자는 패스워드를 복구하기 위해 위와 같은 절차를 따라

    서버에게 패스워드와 h(rs***)를 받았다. 패스워드 복구가 종료된 후, 공격자는

    동일한 토큰을 가지고 서버에 접근하여 사용자의 패스워드와 해쉬된 난수를 얻기

    위해 시도하고 있지만, h(rs***)를 포함한 업데이트된 인증데이터가 아니므로

    서버는 이를 거부한다.

    A S : id, h(token3), SKε (token3) S A : reject

    U S : id, h(token3), SKε (token3) S U : UKε (id,pw,h(rs***))

    Attacker

    User Server

  • 26

    5.3 패킷 스니핑

    인터넷이나 네트워크에서 사용되는 모든 정보나 메시지, 인증데이터는 패킷

    전송을 통해 이루어 진다. 따라서, 모든 정보가 담겨있는 패킷이 악의적 3자에게

    공격을 당한다면, 텍스트 형태로 전송되는 모든 메시지나 정보는 그대로 노출이

    된다[7,8,14]. 본 연구에서 사용되는 인증데이터도 패킷 스니핑을 통해 공격자가

    가질 수 있다.

    등록, 로그인 및 인증 절차의 보안성과 안전성을 검증하기 위해, 공격자는

    패킷 스니핑을 하여 사용자와 서버의 인증데이터를 모두 알고 있다. 그래서

    공격자는 이를 이용하여 서버에 재등록 및 인증을 받기 위해 접근을 시도한다.

    그림 18. 등록절차의 안전성

    그림 18에서는 사용자가 등록을 완료하고, 공격자가 사용자의 h(token1)과

    A S : id, h(token1), SKε (token1) S A : reject

    U S : id, h(token1), SKε (token1) S U : UKε (h(rs))

    Attacker

    User Server

    Packet Sniffing

  • 27

    암호화된 h(token1), 암호화된 h(rs)를 패킷을 통해 얻었다고 가정을 하였다.

    공격자는 사용자를 가장하여 얻은 인증데이터를 가지고 등록을 시도하려고 한다.

    하지만, 이미 기존 사용자의 MAC 주소와 아이디가 등록이 되어 있기 때문에,

    서버는 공격자의 토큰 등록을 거부한다. 그리고 공격자는 로그인 및 인증을 받기

    위해 암호화된 h(rs)를 사용하려고 한다. 그러나, 비밀키를 가지고 있지 않기

    때문에 token2로 구성하는 것은 불가능하다.

    그림 19. 로그인 및 인증 절차의 안전성

    그림 19에서는 최근에 1회 사용한 인증데이터를 공격자가 패킷을 통해

    얻었다고 가정을 하였다. 공격자는 최근에 보낸 h(token2), 암호화된 h(rs*)를

    가지고 있으며, 서버로부터 인증을 받기 위해 h(token2)를 보냈지만, 업데이트된

    h(token2*)가 아니므로 서버는 거부한다. 또한, 공격자는 사용자의 비밀키를

    가지고 있지 않으므로, 암호화된 h(rs*)를 복호하지 못해 h(token2*)로 구성을

    하지 못한다.

    Attacker

    User Server

    Packet Sniffing

    U S : id, h(token2)

    S U : UKε (h(rs*))

    A S : id, old h(token2)

    S A : reject

    U S : id, h(token2*)

  • 28

    그림 20. 패스워드 복구 절차의 안전성

    그림 20에서 사용자는 패스워드를 복구하기 위해 위와 같은 절차를 따라

    서버에게 패스워드와 h(rs***)를 받았다. 패스워드 복구가 종료된 후, 공격자는

    패킷을 통해 인증데이터를 획득하였다. 그래서 기존 사용자의 패스워드를

    수정하기 위해 접근을 시도하지만, h(rs***)를 포함한 인증데이터가 아니므로

    서버는 이를 거부한다.

    Attacker

    User Server

    U S : id, h(token3), SKε (token3) S U : UKε (id,pw,h(rs***))

    A S : id, h(token3), SKε (token3) S A : reject

    Packet Sniffing

  • 29

    5.4 위조 공격

    악의적 3자가 사용자의 인증데이터를 위조하여 서버의 인증을 얻기 위한 공격

    방법이다[7,8,14]. 서버에서는 올바른 인증데이터를 선별해야 하며, 기존의

    등록된 사용자의 인증 정보를 가지고 재등록 및 인증을 하지 못하도록 해야 한다.

    등록, 로그인 및 인증 절차의 보안성과 안전성을 검증하기 위해, 본 연구에서

    사용하고 있는 인증데이터를 위조하여, 서버에 재등록 혹은 인증을 받기 위해

    시도한다.

    그림 21. 등록 절차의 안전성

    그림 21에서는 사용자가 등록을 완료한 후, 공격자는 사용자의 아이디,

    패스워드, 맥 주소를 위조하여 토큰을 구성하고, h(token1)과 암호화된 h(token1) 을

    구성하였다. 공격자는 서버에 등록을 하기 위해 인증데이터를 보낸다. 하지만,

    이미 기존 사용자의 MAC 주소와 아이디가 등록이 되어 있기 때문에, 서버는

    Attacker

    Forgery

    Server

    A S : id, h(token1), SKε (token1) S U : UKε (h(rs))

    A S : id, h(token1), SKε (token1) S A : reject

    User

  • 30

    공격자의 토큰 등록을 거부한다. 공격자는 다시 아이디 혹은 MAC 주소를

    변경하여 등록을 시도한다. 서버는 아이디와 MAC 주소를 함께 비교하기 때문에,

    서버는 거부한다.

    그림 22. 로그인 및 인증 절차의 안전성

    그림 22에서는 공격자는 사용자의 아이디와 패스워드, MAC 주소를 위조한다.

    그래서 token1을 구성할 수 있게 된다. 서버로부터 인증을 받기 위해 해쉬된

    토큰과 암호화된 토큰을 서버에 보낸다. 서버에는 기존의 사용자가 등록되어 있고,

    공격자가 보낸 토큰은 등록 이후 h(token2)로 업데이트 되지 않았기 때문에

    거부한다.

    Attacker

    Server

    U S : id, h(token2)

    S U : UKε (h(rs*))

    A S : id, h(token1)

    S A : reject

    User

    Forgery

  • 31

    그림 23. 패스워드 복구 절차의 안전성

    그림 23에서 사용자는 패스워드를 복구하기 위해 위와 같은 절차를 따라

    서버에게 패스워드와 h(rs***)를 받았다. 패스워드 복구가 종료된 후, 공격자는

    서버의 인증을 받기 위해 시도한다. 하지만, 공격자의 인증데이터에는 기존

    사용자가 인증 후 받은 h(rs***)가 포함되어 있지 않기 때문에 거부한다.

    Attacker

    Server

    U S : id, h(token3), SKε (token3) S U : UKε (id, pw, h(rs***))

    A S : id, h(token3), SKε (token3) S A : reject

    User

    Forgery

  • 32

    제 6 장 결 론

    최근 인터넷 사용량이 급증하면서 메시지, 사용자 인증에 관련된 크고 작은

    보안 문제가 발생하였으며, 이를 해결하기 위하여 보안성 및 안전성을 가지고 있는

    인증이 필수적인 요소가 되었다. 이에 많은 관련연구가 있었고, 그 중 본 논문에서는

    사용자 인증을 위한 알고리즘을 제안하고 있다.

    본 논문에서는 스마트 카드 인증을 위해 사용되는 KIC와 같은 별도의 인증기관을

    사용하지 않는다. 개인용 컴퓨터를 사용하는 사용자와 사이트 사이에서 신뢰성을

    가진 인증을 하기 위해 랜 카드의 MAC 주소를 사용하게 되었다. 4장에서 제안한

    알고리즘에는 고유한 값을 가지고 있는 MAC 주소가 포함되어 있기 때문에, 컴퓨터

    혹은 휴대용 단말기를 소유 하고, 등록된 사용자 만이 사이트의 인증을 받을 수

    있다. 또한, 사이트에서 생성한 난수를 사용하므로 전송되는 인증데이터가 매번

    변동된다. 그리고 사용자의 정보를 담고 있는 token1과 토큰을 업데이트 하는데

    사용되는 난수 등 인증에 필요한 데이터를 전송은 해쉬 함수와 암호화 알고리즘을

    사용하였다. 이와 같은 인증기법은 5장에서 분석한 패킷 스니핑, 재전송 공격,

    패스워드 추측공격, 위조 공격으로부터 안전성을 가지고 있다. 제안된 토큰 업데이트

    방법은 사이트 인증을 위해 효과적인 알고리즘이 된다.

    본 논문에서 사용하고 있는 하드웨어의 고유한 식별자는 메시지 인증 혹은

    사용자 인증을 하는데 활용이 되기 때문에, 이에 관련하여 다양한 연구가 필요

    하다.

  • 33

    참고문헌

    [1] M.Bishop, “Password Management,” Proceedings of COMPCON, 167-

    169, 1991

    [2] B.Soh and A.Joy, “A Novel Web Security Evaluation Model for a One-

    Time Password System,” Proceedings of the IEEE/WIC, WI(’03), IEEE

    Computer Society, 2003

    [3] J.Archer Harris, “OPA: A One-Time Password System,” ICPPW’02, IEEE

    Computer Society, 2002

    [4] Haller, Neil, “The S/Key One-Time Password System,” Proceedings of

    the ISOC Symposium on Network and Distributed System Security,

    February 1994, San Diego, CA

    [5] Neil Haller, Neil, and Metz, Craig, “A One-Time Password System,” RFC

    1938, May 1996

    [6] W.S.Juang, “Efficient Password Authenticated Key Agreement Using

    Smart Cards,” Computers & Security, 23, 167-173, 2004

    [7] W.Yang and S.Shieh, “Password Authentication Schemes with Smart

    Cards,” Computers & Security, 18, 727-733, 1999

    [8] M.Peyravian and N.Zunic, “Methods for Protecting Password

    Transmission,” Computers & Security, 19, 466-469, 2000

    [9] T.H.Chen,, W.B.Lee and G.Horng, “Secure SAS-like password

    authentication schemes,” Computer Standards & Interfaces, 27, 25-31,

    2004

    [10] S.Halevi and H.Krawczyk, “Public-key cryptography and password

    protocols,” ACM TISSEC, 2, 230-268, 1999

  • 34

    [11] H.T.Yeh and H.M.Sun, “Password-based user authentication and key

    distribution protocols for client-server applications,” The Journal of

    Systems and Software, 72, 97-103, 2004

    [12] Y.M.Tseng, “On the security of and efficient two-pass key agreement

    protocol,” Computer Standards & Interfaces, 26, 371-374, 2004

    [13] H.Y.Chien and J.K.Jan, “New hierarchical assignment without Public Key

    cryptography,” Computers & Security, 22, 523-526, 2003

    [14] Wenbo Mao, “Modern Cryptography,” Prentice Hall PTR, 2004

    [15] H.M.Sun, “An efficient remote user authentication scheme using smart

    cards,” IEEE Transaction on Consumer Electronics 46, 958-961, 2000

    목차1 서론2 인증기법2.1 인증의 개념2.2 일반패스워드2.3 OTP(One-Time Password)2.4 암호화 시스템

    3 사용자 인증 알고리즘의 분석3.1 Peyravian과 Zuinc의 알고리즘3.2 OTP 인증 기법3.3 스마트 카드 인증 기법

    4 토큰 업데이트를 이용한 사용자 인증 방법4.1 MAC 주소의 구성4.2 토큰의 구성원리4.3 등록절차4.4 로그인 및 인증 절차4.5 패스워드 복구 절차

    5 보안분석5.1 패스워드 추측공격5.2 재전송 공격5.3 패킷 스니핑5.4 위조 공격

    6 결론

    그림목차[그림-1] 기본적인 사용자 인증과정[그림-2] 일반 패스워드를 이용한 인증기법[그림-3] 기본적인 OTP 인증기법[그림-4] 암호문을 이용한 인증기법[그림-5] 스마트 카드 발급 과정[그림-6] MAC 주소의 구성[그림-7] Token1의 구성[그림-8] Update Token2의 구성원리[그림-9] 제안된 기법의 등록절차[그림-10] 제안된 기법의 로그인 및 인증절차[그림-11] 제안된 기법의 패스워드 복구 절차[그림-12] 등록절차의 안전성[그림-13] 로그인 및 인증 절차의 안전성[그림-14] 패스워드 복구 절차의 안전성[그림-15] 등록절차의 안전성[그림-16] 로그인 및 인증 절차의 안전성[그림-17] 패스워드 복구 절차의 안전성[그림-18] 등록절차의 안전성[그림-19] 로그인 및 인증 절차의 안전성[그림-20] 패스워드 복구 절차의 안전성[그림-21] 등록절차의 안전성[그림-22] 로그인 및 인증 절차의 안전성[그림-23] 패스워드 복구 절차의 안전성