진박사의 일상

[정보보안] 3강 - User Authentication 본문

프로그래밍/공부

[정보보안] 3강 - User Authentication

진박사. 2021. 9. 27. 08:38

RFC 2828의 User Authentication 정의 : 요구된 시스템 자원에 대해 identity를 검증하는 프로세스

 

유저 인증의 2가지 step

- Identification(신원 검증) step : User ID 입력

- Verification(검증) step : 입력된 ID에 대해 맞는지 확인하는 단계

 

유저 인증 기법의 4가지 카테고리

(1) 특정 개인만이 알고 있는 정보 이용 : PW, PIN, 미리 정해진 질문에 답하기

(2) 특정 개인만이 갖고 있는 자원(토큰) 이용 : 스마트카드, 전자 키카드, 물리적인 key

(3) 특정 개인의 static한 신체 정보 이용 : 지문, 홍채, 얼굴 인식

(4) 특정 개인의 dynamic한 신체 정보 이용 : 성문(음성), 필기, 타이핑 리듬 인식

 

Password Authentication

-널리 사용되는 방법 : ID/PW 로그인 -> 시스템 접근 권한, 특권 결정, discretionaly access control에 사용

 

Password의 Vulnerabilities

- Offline dictionary attack : 사람들이 많이 쓰는 PW용 단어 사전을 만들어 시도

- Specific account attack(특정 계정 공격) / PW guessing against single user : 특정 개인의 정보를 이용해 PW 유추

- Popular PW attack : PW에 흔하게 쓰이는 것으로 시도

- Workstation hijacking : 사용 중인 Workstation을 key logging 등으로 PW 유추

- Exploitiong user mistakes : 사용자의 실수를 유발(ex 피싱사이트 로그인)시켜 정보 유출

- Exploitiong multiple PW use : 여러 사이트에 동일 PW를 쓰는 경우가 많으니 다른 사이트에서도 시도

- Electronic monitoring : 네트워크 상에 암호화되지 않은 PW가 전송될 경우 패킷 캡처로 알아냄

 

PW의 Countermeasures

- 관리자가 시스템 내의 PW file에 부적절한 접근을 방지하도록 잘 관리

- Intrusion detection measures(침입 감지 방법)

- Rapid reissuance(재발급) of compromised(손상/노출된) PW

- Account lockout mechanisms : 잘못된 접근이 누적시 계정 잠금

- 사용자가 흔한 PW 선택하는 것을 금지하는 정책

- PW 정책에 맞게 강제하거나 교육 : 9글자 이상의 글자, 대소문자+기호

(곰이론? - 남보다는 더 PW가 어렵게 해놓으면 공격받을 확률 낮아짐)

- 자동 workstation 로그아웃 : 일정 시간 이상 미사용시 로그아웃

- 비슷한 pw를 사용하지 못하는 policy

 

Use of Hashed Passwords

UNIX 시스템의 패스워드 시스템

(1) {User ID, salt(랜덤값), (salt + PW)-> Hash function -> Hash code}의 Password File을 생성

(2) ID를 입력 받으면 ID에서 salt와 hash code를 가져와서 salt + pw를 해시함수에 넣은 값과 hash code를 비교해서 검증

- Salt 사용 이유 : 서로 다른 사용자가 같은 PW를 사용할 때 salt가 없으면 Hash가 같게 나옴. salt가 없으면 dictionary attack이 쉬운데 salt가 있으면 검색 범위가 넓어져 공격이 더 어려워짐.

 

Salt 적용시 얼마나 검색 사이즈가 증가하는가?

- 2^B * D (B는 random salt의 비트수, D는 dictionary attack의 단어 리스트 사이즈)

 

UNIX의 구현 방식

- original scheme : 최대 8글자 PW, 12bit salt와 DES 암호화 수정한 1-way has function -> 11글자 hash code -> 현재는 불충분하다고 간주되고 있음.

현재의 구현 방식

- 권고 : 최대 길이 제한 X PW, 48bit의 saolt와 MD5(이미 깨진 hash 함수)에 기반을 둔 해시 함수 -> 128bit hash code, 내부적으로 1000회 반복

- OpenBSD : Blowfish block cipher 기반의 해시 알고리즘인 Bcrypt 사용, 128-bit salt와 192-bit 해시 코드 사용

 

Password Cracking

- Dictionary Attacks : 가능한 PW에 대한 큰 dictionary를 만들어 PW file의 PW에 각각 시도. (저장된 salt에 따라 각 hash를 따로 계산)

- Rainbow table attacks : 가능한 모든 salt에 대한 해시값의 table을 미리 계산해둠.(salt 크기가 커지면 hash값 table이 무한정 커짐 -> 그러나 최근 컴퓨팅 파워 증가로 가능할수도)

 

Password File 접근 통제

- 접근 권한 있는 사용자만 만들 수 있게, Shadow PW file로 만듬

-> 취약점 : OS의 취약점이 파일 접근 가능하게 할 수 있음, 사고로 파일의 읽기가 가능하도록 권한 설정, 다른 시스템과 같은 PW를 쓸 수 있음, 백업 파일의 보안이 취약하다면 백업 파일 접근, 네트워크 트래픽에서 PW를 스니핑

 

Password 선택 기술

(1) 사용자 교육 - PW 관리 잘하도록 -> (2) 컴퓨터가 생성한 패스워드 사용 - 외우기 어려움 -> (3) Reactive password checking - 주기적으로 password cracker를 실행해 유추가능한 PW를 찾아내기 -> (4) Proactive password checking - PW 생성 시점에서 검사해서 조건에 맞지 않으면 거절하기

 

PProactive Password Checking

- Rule Enfrocement : PW rule을 정해 적용

- Password cracker : Password cracker를 실행해 large dictionary에서 찾아봄 - 너무 오래 걸리면 사용자 불편

- Bloom filter : 사용하면 안되는 PW 리스트 dictionary를 만들어두고 거기 있는지 검사

(pw cracker랑 bloom filter의 차이점?)

 

Bloom Filter Example

{x, y, z} : dictionary

bloom filter : dictionary에 있는 값들이 위치한 곳의 bit는 1 없으면 0 (사진 상으로 18bit, 한 pw당 k=3개의 1)

w :  체크할 password -> w를 bloom filter에 넣어서 모두 1이 나오면 w는 dictionary에 있음 -> 쓸수 x

(false positive(w가 dictionary에 포함되지 않은데 포함되었다고 판단)는 있을 수 있음, but false negative(w가 dictionary에 있는데 없다고 판단)은 있을 수 없다)

Bloom filter의 성능

Password Security - Login Scoring

password 입력 시의 상태를 보고 동일인인지 확인하는 절차 - 점수가 낮으면 추가 인증 요구 등

요구되는 데이터 : IP 주소(국가, ISP 등 알수 있음), 사용자의 브라우저, 시간대, 쿠키 등...

Reputation score(평판 점수) : 이전에 공격에 사용되었던 IP

Global counters : ISP나 국가-level 정보

이전의 성공적인 로그인의 기록

 


3-2 강

 

가지고 있는 카드나 토큰을 이용하는 인증

카드타입 종류 : Embossed(볼록 튀어나온), Magnetic stripe, Memory, Smart( Contact / Contactless )

 

Memory Cards

- 정보 저장은 가능, but 처리는 불가능 

- 가장 흔한 건 magnetic stripe card

- 내부적 전자 메모리가 포함될 수 있음

- 호텔 카드키 등의 물리적 접근에 사용 가능

- ATM 같이 보안이 중요할 경우 Password나 PIN과 결합해서 사용

- drawbacks(문제점) : 특수한 리더기 필요, 토큰 분실 시 빠른 대처 필요, 사용자 불편 초래

 

Smart Cards

- 특징 : 마이크로프로세서 내장, 은행 카드와 같은 스마트 토큰

- 인터페이스 : 상호작용을 위한 키보드나 액정화면 포함, 호환되는 리더기 필요

- 인증 프로토콜( 3개 카테고리 ) : 정적 PW, 동적 PW 생성기, Challenge-response

 Smart Card와 리더기의 교류

 

Biometric Authentication(생체 인증)

종류 : 얼굴 인식, 지문 인식, 손금 인식, 망막 패턴 인식, 홍채 인식, 서명(필체) 인식, 성문(음성) 인식

방법 별 비용 / 정확도 그림

바이오 시스템의 동작 구조

Enrollment : 바이오 센서로 지문 인식 -> Feature Extractor로 특성 추출 -> Name(or PIN)과 함께 저장

Verification : 바이오 센서 인식 + 특성 추출 -> 입력받은 Name(or PIN)의 저장된 특성(template)이랑 비교

Identification : 바이오 센서 인식 + 특성 추출 -> 저장된 N개의 template과 특성 비교 -> 해당하는 사용자 확인

 

Biometric Accuracy

false nonmatch possible : 정상 사용자를 인식하지 못할 확률

false match possible : 공격자를 정상으로 인식할 확률

decision threshold : 두 확률을 다 낮추지 못하는 경우 임계점을 두어 처리함.

 

Biometric Measurement Operating Characteristic Curves

시스템 종류에 따라 false nonmatch rate랑 false match rate의 중요도가 다름

- 일반적인 경우 : false nonmatch rate = false match rate (Equal error rates) 정도

- 높은 보안이 필요한 경우 : false nonmatch rate > false match rate -> 인식이 잘 안되더라도 공격자 인식은 최소화

- 범죄 수사에 필요한 경우 : false nonmatch rate < false match rate -> 인식의 가능성이 있는 모든 경우를 찾기 위함

 

인증 방법에 따른 비교

지문 인식은 false match rate은 낮더라도 false non-match rate을 일정하게 유지

홍채 인식은 false match rate은 거의 없고 false non-match rate은 낮은 편

 

Remote User Authentication(원격 사용자 인증)

- 네트워크, 인터넷 등을 통과해야 해서 추가적인 보안 위협이 존재함.

- 주로 Challenge-response Protocol 사용

 

Challenge-response Protocol

- Password Protocol, Token Protocol, Static Biometric Protocol, Dynamic Biometric 등이 있음

 

Password Protocol

(1) Client에서 Host로 사용자 정보 U 제공

(2) Host에서 random number r이랑 h(), f() 함수 반환

(3) Client에서는 패스워드 P를 바로 보내지 않고 해시 함수를 적용해서 f(r', h(P'))를 보냄

(4) Host에서는 f(r', h(P'))를 f(r, h(P(U)))와 비교. h(P(U))는 Host에 저장되어있던 패스워드의 해시값

-> 공격자 입장에서는 U와 r을 알 수 있더라도 P가 애초에 네트워크 상에 전송이 되지 않기 때문에 패스워드 탈취 X

-> f(r', h(P'))값을 탈취해서 replay attack을 시도하더라도 r 값이 달라지면 f() 결과값이 달라지므로 실패

 

Token Protocol

PW 대신 가지고 있는 토큰에서 Passcode를 가져와 적용

 

Static & Dynamic Biometric Porotocl

Authentication Security Issues

- Eavesdropping : 물리적으로 사용자가 치고 있는 패스워드를 관찰해서 알아내는 방법 (키로깅, 키보드 소리 등)

- Host Attacks : Password( or token passcode, biomeric templates) 가 저장된 Host를 공격해 탈취

- Replay : 이전의 사용자 응답을 탈취해 재전송하는 방법

- Client Attacks : Host 대신 사용자를 공격

- Trojan Horse : 사용자 패시워드 등을 키로깅하는 악성코드를 사용자 컴퓨터에 심어둠

- Denial-of-service : 과도한 패킷을 집중시켜 인증 서비스를 정상적으로 작동할 수 없도록

 

Iris Biometric System - 실제 예

 

Cloud Security using User Authentication

- Cloud service의 사용자 인증 보안 프레임워크 : (최초 로그인 인증) -> (지속적인 인증 요청) <-> (템플릿 업데이트 등록) / 지속적 인증 시 패턴이 이상하다면 재로그인 요청

- Biometrics : Soft Biometric (특정 개인 구별 X 특징 O - 성별, 눈색, 키, 몸무게, 걸음걸이 등) <-> Hard Biometric (특정 개인을 구별 - 지문, 홍채, 동맥 등) - Soft Biometric으로 기존 사용자와 다른 특징을 보인다면 접근 제한을 거는 등 활용

 

'프로그래밍 > 공부' 카테고리의 다른 글

[컴보] 4강 - Access Control  (0) 2021.09.29
[데베시] 3강  (0) 2021.09.27
빅데이터 가명익명조치기술 전문 교육 2일차 요약  (0) 2021.09.22
컴퓨터 일반 요약 공부 - Part1. -2-  (0) 2021.09.16
[데베시] 2강  (0) 2021.09.16