본문 바로가기

정보보호/정보보호론(박승철)

정보보호론-(16) 사용자 인증, 패스워드 기반 인증

정보보호론-(16) 사용자 인증, 패스워드 기반 인증

사용자 인증(User Authentication)
- 통신하고자 하는 상대방이 제시한 신원(Identity)의 진위를 검증하는 작업으로써 통신의 상대방이 실제로 통신하고자 하는 실체(entity)가 맞는 지 확인하는 작업

사용자 인증 수단
- something you have : 여권, 신분증, 인증서(certificate)
- something you know : 패스워드 PIN
- somthing you are : 지문, 홍채

메시지 인증(Message Authentication)
- 통신 세션에서 송신자는 매 메시지 마다 메시지 인증 코드(MAC)를 메시지와 함께 수신자에게 제시

사용자 인증(User Authentication)
- 통신 세션을 개시하기 전에 한번 이루어지고 사용자 인증이 성공하면 세션 전체에 적용

인증 후 하이재킹 공격 방어
- 사용자 인증과 메시지 인증을 결합해야 함(사용자 인증과정만으로는 하이재킹 공격을 방어할 수 없음)

<그림 1: 단순 패스워드 기반의 인증>

패스워드 파일 접근 공격(Password File Access Attack)
- 사회공학 공격 또는 악성 소프트웨어 침투 등을 통해 관리자 접근 권한 획득
- 패스워드를 암호화(encryption)하여 저장 필요(키 관리 필요)
- 암호화된 패스워드를 제시하는 시스템의 경우 재현 공격(Replay Attack) 가능

추측 공격(Guessing Attack)
- 기억하기 쉬운 패스워드를 사용하기 위해 추측 가능한 패스워드를 선택하는 경향을 이용하는 공격
- 사용자는 자신의 이름, 생일과 연관된 패스워드를 사용하는 경향이 있음

사전 공격(Dictionary Attack)
- 미리 만들어진 패스워드 후보 단어들을 사용한 공격
- Password 후보 테이블을 만들어 공격하는 기법

패스워드 스니핑(Password Sniffing)
- 스니핑 도구를 통해 네트워크상 전송되는 패스워드를 탈취

인증 후 세션 하이재킹(Post-authentication Session Hijacking)
- 인증을 완료한 후에 설정된 세션을 공격자가 가로채 사용하는 공격
- 일회용 패스워드와 같이 강력한 인증 메커니즘을 사용하는 인증 시스템에도 시도될 수 있는 공격

전사 공격(Brute Force Attack)
- 사용자가 선택가능한 범위내의 모든 패스워드를 대입하여 패스워드를 알아내는 공격

해싱된 패스워드 기반의 인증
패스워드 해시값 저장
- 평문 형태로 저장되는 대신 해시 함수를 적용하여 패스워드의 해시값을 패스워드 파일에 저장
- 공격자가 서버를 공격해 패스워드 파일을 탈취하더라도 원본 패스워드가 무엇일지 해시 함수의 일방향성 특성으로 추론할 수 없음
- 패스워드 사전 공격에 취약함. 공격자가 사전의 각 단어의 해시값 표(Rainbow Table)을 이용하면 서버에 있는 패스워드 파일을 탈취해 원본 패스워드가 무엇일 지 추론할 수 있음

<그림 2: 해싱된 패스워드 기반의 인증>

 

패스워드 솔트(Salt)
- 해시값을 구하기 전에 패스워드에 추가되는 일정 크기의 난수(Random Number)
- 공격자는 솔트를 추론하기 어려우며, 각 사용자의 솔트는 유일함

패스워드 솔팅(Password Salting)
- 패스워드와 솔트에 대한 해시값을 패스워드 파일에 저장

<그림 3: 패스워드 솔팅 기반의 인증>

패스워드 솔팅 기반의 인증 특성
- 패스워드 파일에 중복된 패스워드가 존재하더라도 솔트(Salt)값이 다르므로 서로 다른 해시값이 저장됨
- 한 사용자가 동일한 패스워드를 여러 시스템에 사용하더라도 각 시스템의 솔트(Salt)값이 다르므로 서로 다른 해시값이 저장됨
- 공격자가 패스워드 파일을 탈취하더라도 Rainbow Table을 이용한 해시값->원본 추론이 불가능(매우 어려워짐)함(해시값을 솔트와 함께 생성했기 때문)

일회용 패스워드(OTP, One Time Password)
- 사용자에게 한번만 사용할 수 있게 주어지는 패스워드
- 악의적인 제3자에게 노출되더라도 재현 공격(Replay Attack) 불가

시간 동기화 기반 OTP
- 사용자와 인증 기관간에 동기화된 시간에 기초하여 매번 다른 패스워드 생성
- 사용자는 보안 토큰(Security Token)이라 불리는 일회용 패스워드 생성기를 제공함
- 보안 토큰은 인증자와 정확하게 동기화된 시계를 내장함
- 보안 토큰을 인증자에게 등록할 때 시드(seed)라 불리는 유일한 번호가 할당됨
- 시간 동기화 기반 OTP는 보안상 이점이 있지만 전용 인증 토큰 장치를 휴대해야 하는 불편함과 보안 토큰의 배포, 유지 관리에 대한 비용 문제가 발생

<그림 4: 시간 동기화 기반 OTP>

해시 체인 기반 OTP
- 사용자와 인증자는 패스워드(P)와 카운터 n에 동의함.
- 사용자가 패스워드 인증을 진행할 때 서버로부터 카운터(n)값을 요청받아 n번 해시한 패스워드 해시값(h[n])을 서버로 전송함.
- 서버는 패스워드(P), 카운터(n), 패스워드 해시값(h[n])을 갖고 있으며 한번 인증이 완료될 때마다 n = n -1로 갱시낳고 h[n]값을 갱신함으로써 One time password 기능을 갖는다

<그림 5: 해시 체인 기반 OTP>

Reference
1. 

제16강+사용자인증개요와패스워드기반인증.pdf
0.77MB

2. https://www.youtube.com/watch?v=HGF1lSU5S1w