07 인증
1. 개요
2. 인증 방법
3. 패스워드
4. 생체 인식
5. 가지고 있는 어떤 것
6. 2개 요소 인증
7. 통합 인증과 웹 쿠키
1. 개요
접근 제어(Access Control)는 누군가가 무언가를 사용하는 것을 허가하거나 거부하는 기능을 말한다.
이때 접근 제어에 대한 2가지 개념이 있다.
인증(Authentication) : 내가 누구인가?
└ 시스템에 접근할 때, 사용자가 접근이 허용되었는가를 확인
인가(Authorization) : 내가 하는 것을 허용하는가?
└ 접근을 허용받은 사용자가, 시스템에 대한 권한이 있는가를 확인
2. 인증 방법
보안의 4가지 인증 방법 : You Know, You Have, You Are, where You Are
(여기서는 마지막의 '어디에 있는지'를 제외한 3가지만을 살펴본다.)
1. 당신이 알고 있는 것(Something You Know) : 머릿속에 기억하는 정보를 이용해 인증하는 방법
2. 당신이 가지고 있는 것(Something You Have) : 신분증이나 OTP 장치 등을 통해 인증하는 방법
3. 당신 자체의 것 (Something You Are) : 홍채와 같은 생체 정보를 통해 인증하는 방법
3. 패스워드 : Something you know
패스워드는 오늘날 보안 공학이 직면하는 거대한 실제적 문제 중 하나이다.
왜 알고 있는 것(You know)이 가지고 있는 것(You have)이나 본인(You are)보다 인기가 많을까?
그 이유는 비용이 존재하지 않고, 간편하기 때문이다.
패스워드의 역할을 하는 것은 PIN, 주민등록번호, 전화번호, 이름 등 여러 가지가 있다.
└ 나쁜 패스워드 : password, a123456789 등
└ 좋은 패스워드 : jflej-Emml+y, FSa7Ya@g0 등
암호키는 64bit로 구성하기에 2^64의 종류로, 공격자는 평균 2^63개의 시도를 해야 한다.
패스워드는 8자리에 256개의 문자가 가능하다고 할 때, 256^8 = 2^64로 확률은 같지만 실상은 다르다.
사용자들은 패스워드를 임의로 선정하지 않기 때문에 공격자는 2^63보다 적은 시도로 패스워드를 알아낸다.
이를 사전 공격(Dictionary Attack)이라고 한다.
공격자는 다음과 같은 시도를 할 수 있다.
ㆍ 특정 계정을 목표로 공격
ㆍ 시스템상 임의의 계정을 목표로 공격
ㆍ 임의의 시스템의 임의의 계정을 목표로 공격
ㆍ 서비스 거부 공격(DoS)을 시도
이때 일반적인 공격 경로는 '외부인 > 정상 사용자 > 관리자'이기에 단 하나의 취약한 패스워드로 충분하다.
따라서, 패스워드를 하나의 파일에 저장하면 안 된다.
혹은 패스워드 자체를 해시화(y = hash(password))하여 검증할 수 있다.
패스워드 파일을 확보했더라도 패스워드를 확보한 건 아니지만, 추측은 가능하다.
└ 일반 패스워드를 수록하고 있는 사전을 활용하여 hash(x)를 계산할 수 있다.
이는 단순 해시가 아니라 salt를 추가한 y = hash(password, salt)로 대응할 수 있다.
패스워드 풀기 예시)
패스워드는 8자리, 128개의 문자가 가능하다고 해보자.
가능한 패스워드는 총 128^8 = 2^56이다.
공격자는 2^20만큼 있는 패스워드 사전(dictionary)을갖고 있다면, 사전에 있을 확률은 약 1/4이다.
Case 1 : 사전을 이용하지 않은 1개 패스워드 공격 > 2^56/2 = 2^55
Case 2 : 사전을 이용한 1개 패스워드 공격 > 1/4 * 2^19 + 3/4 * 2^55 = 2^54.6
파일 안에 있는 1024 개의 패스워드 중 임의로 공격하는 경우)
Case 3 : 사전이 없는 경우 > salt X : 2^55 / 2^10 = 2^45, salt O : 2^55
Case 4 : 사전이 있는 경우 > salt X : 2^19 / 2^10 = 2^9, salt O : 2^22
요약
너무 많은 패스워드는 기억하기 어렵고, 결국 재사용하게 된다.
에러 로그로 패스워드를 기록하는 방법(버그, 키스트로크 로깅, 스파이웨어 등)도 존재하고,
패스워드를 푸는 도구 자체(Password Crackers, Password Portal 등)도 다수 존재한다.
결국, 패스워드는 풀기 쉬운 심각한 보안 문제라는 결론이다.
4. 생체 인식 : Something you are
생체 인식의 종류 : 지문, 홍채, 정맥, 서명, 안면, 음성, 보행 등
이상적인 생체인식은 여러 특성을 요구한다.
ㆍ 보편성 : 대부분의 사람들에게 적용해야 한다.
ㆍ 구별성 : 구별을 위한 명확한 판단이 가능해야 한다.
ㆍ 영구성 : 측정한 물리적 특성은 불변해야 한다.
ㆍ 수집성 : 자료 수집에 용이해야 한다.
ㆍ 신뢰성, 사용친화성
생체 인식 모드
ㆍ 식별 : 그곳에 누가 있는가? > 일대다 비교
ㆍ 인증 : 정말 본인이 맞는가? > 일대일 비교
(이를 위해서는 등록 단계와 인식 단계를 거쳐야 한다.)
FRR(False Reject Rate) : 사용자 본인임을 모르고 인증을 거부하는 오류 비율, 모욕률이라고도 한다.
FAR(False Acceptance Rate) 미등록 사용자를 오인하여 인증을 허용하는 오류 비율, 기만율이라고도 한다.
EER(Equal Error Rate) : FAR과 FRR이 동일할 때의 비율, 동일 인식 오류율이라고도 한다.
예시) 99%의 인식 성공을 원할 때, 높은 FRR(모욕률)과 낮은 FAR(기만율)을 갖는다.
예시) 30%의 인식 성공을 원할 때, 낮은 FRR(모욕률)과 높은 FAR(기만율)을 갖는다.
지문
1823年 Johannes Evangelist Purkinje 교수가 9가지 지문 패턴을 제시
1856年 William Hershel경이 인도에서 지문을 계약 체결에 실사용
1880年 Henry Faulds 박사가 Nature지에 ID를 위한 지문 사용을 기고
1883年 Mark Twain의 "Life on the Mississippi"에서 살인자를 지문으로 밝혀내는 장면이 등장
1888年 Francis Galton경(다윈의 사촌)이 분류 체계를 개발
└ 이때 개발한 'Minutia(지문 위치점)'는 오늘날까지 사용한다.
갈라지는 지점, 끝나는 지점이라는 2개의 특징점으로 판단한다.
Minutia는 이런 식으로 추출한 여러 가지의 특징들을 말한다.
장점
ㆍ 대중적인 방법으로 사용하기 좋다.
ㆍ 등록(1분)과 인식(5초)이 신속하다.
ㆍ 손은 거의 대칭이기에 반대편 손을 뒤집어 사용할 수 있다.
단점
ㆍ 손 자체의 기하학적 형태가 인증에는 적절하지만 식별에는 부적절하다.
ㆍ 매우 어리거나 매우 나이가 든 사람의 경우 사용이 불가하다.
ㆍ 상대적으로 높은 EER을 보인다.
홍채
1936年 Frank Burch에 의해 제안
1980年 "James Bond" 영화 소재로 등장
1986年 최초의 홍채 패턴이 등장
1994年 John Danugman가 오늘날 사용하는 패턴을 제시
└ Iridian Technologies 소유의 기술
스캐너에 홍채를 위치한 뒤, 흑백 사진을 촬영한다.
극좌표를 사용하여 2D 웨이브렛 변환을 발견하고, 256Byte의 홍채 코드를 수집한다.
홍채 유사성 측정을 해밍 간격을 기반으로 한다.
해밍 간격 d(x, y)를 다음과 같이 정의한다.
ㆍ 비매치 비트 수 / 비교한 비트 수
ㆍ d(0010, 0101) = 3/4, d(101111, 101001) = 1/3와 같다.
2048bit 홍채 코드 상에서 d(x, y)를 계산해보자.
완전 매치는 d(x, y) = 0의 값을 갖는다.
동일 홍채에 대한 예상 해밍 간격은 0.08, 임의 홍채들 간 예상 해밍 간격은 0.50이다.
즉 해밍 간격이 0.32 미만이면 매치(같다)로 판단한다.
└ 좋은 해상도의 눈 사진을 스캔하여 공격자가 공격할 수 있다는 말이다.
└ 사진을 이용한 공격 방지를 위해 스캐너는 빛을 이용하여 생명체인지 판단한다.
EER 비교
지문의 EER : 약 5%
손의 기하학 형태 : 약 10^(-3) EER
(이론상) 홍채 스캔 : 약 10^(-6) EER
대부분의 생체 인식은 지문보다 나쁜 EER을 갖는다.
생체 인식은 식별보다 인증에 필요한 부분이다.
식별을 위한 생체 인식은 오늘날에는 사용하지 않는다(쓸모가 없다).
요약
생체 정보는 위조하기 어렵지만, 공격 가능성이 잔존한다.
└ 누군가의 손가락 지문을 훔친다거나, 사진 등으로 스캔하거나, 데이터베이스를 전복한다거나
현재까지도 생체 정보는 완벽히 안전하지 않다.
5. 가지고 있는 어떤 것 : Something you have
1. 앨리스는 밥에게 본인이 앨리스임을 인증하려 한다.
2. 앨리스는 밥으로부터 질문(R)을 받는다.
3. 앨리스는 PIN과 질문(R)을 패스워드 생성기에 입력한다.
4. 패스워드 생성기로 응답(F(R))을 받는다.
5. 앨리스는 응답(F(R))을 밥에게 보내 자신임을 인증한다.
6. 2개 요소 인증
Something you know, Something you have, Somethine you are 각 단일로는 정확한 인증이 힘들다.
따라서 3가지 중 2가지를 요구하여 인증을 확실하게 진행한다.
예시) ATM기기(카드와 PIN 번호), 신용카드(카드와 서명) 등
7. 통합 인증과 웹 쿠키
통합 인증(SSO : Single Sign On)
사용자는 단 한 번으로 여러 곳에 인증하기를 원하지만, 반복적으로 패스워드를 입력해야 하는 번거로움이 있다.
이를 해소하기 위해 '인증서'를 도입하여 인증을 진행한다.
'인증서'는 사용자가 사용하는 컴퓨터 자원에 머무르고 있다.
이처럼 한 번의 인증 과정으로 여러 컴퓨터 자원을 이용하게 하는 기법은 SSO라고 한다.
└ SSO : 통합 인증, 단일 인증
인터넷에서의 통합 인증 예시
ㆍ Microsoft의 Passport
ㆍ Liberty Alliacne, SAML(Security Assertion Markup Language) 등
웹 쿠키
쿠키(Cookie)는 웹 사이트에 의해 제공되며 사용자 기계에 저장한다.
이 쿠키는 사용자가 방문한 웹 사이트에서 사용자 브라우저에 전송하는 작은 텍스트 조각이다.
웹 사이트에 있는 DB에 대한 색인 역할을 쿠키가 맡는다.
세션 간의 상태 유지, 세션 내부 상태 유지 등에 사용한다.
즉 쿠키가 있으면 웹에서 사용자 방문 정보를 기억한다.
그리고 다음번에 방문했을 때 번거로운 작업을 피할 수 있게 된다.
웹 사이트에 대한 SSO와 유사하지만 매우 취약한 형태의 인증 방법이다.