컴퓨터 통신망은 공개된 통신망이므로 등록된 가입자는 누구든지 접속이 가능하다. 하지만 인가된 가입자가 아닌 사람의 불법 행위로 인해 정보 범죄의 발생 요인이 되고 있다.
따라서 정당한 가입자의 접속인지를 확인하는 사용자 인증이 필수적인 요건이 되고 있다.
사용자 인증 : 사용자 A가 사용자 B와 협조하여 자신이 A 임은 증명할 수 있으나 제3자 C는 자신이 사용자 A처럼 가장할 수 없는 경우를 사용자 인증이라 한다.
개인 식별 : 사용자 A가 사용자 B와 협조하여 자신이 A임은 증명할 수 있고 제3자 C가 A로 가장하거나 사용자 B가 다른 제3자 D에게 사용자 A로 가장할 수 없는 경우를 말한다. (사용자 인증의 발전된 방식)
사용자 인증 기법
1) 지식 기반 인증(What or Sth you know)
사용자가 알고 있는 어떤 것에 의존하는 인증기법이다. 사용자는 신원을 입증하기 위한 신원정보를 제공하고 사용자에 의해 제공된 지식요인은 사용자 신분확인을 통해 획득한 참조지식과 비교된다. (1:1 검증)
지식 기반 인증의 보안성은 비밀번호의 크기와 랜덤성에 달려 있다.
지식 기반 인증은 다양한 분야에서 사용 가능하고 애매 모호성이 없어 검증이 확실하다. 또, 관리와 유지 보수비용이 거의 들지 않는다.
하지만 진짜 사용자라도 패스워드를 잊어버리면 인증받을 수 없고 사용자가 기억해야 하다 보니 망각 가능성에 대비해 개인 정보를 이용해 생성하므로 공격자에 의한 추측이 가능하다. 사회 공학적 공격에 취약하기도 하다.
- 패스워드(Password)
가장 간단하면서 오랫동안 사용된 개체인증 방법이다. 또, 가장 널리 사용되면서도 가장 안전성이 떨어지는 메커니즘이다.
패스워드 인증 구조를 두 개의 집단으로 분리할 수 있는데 하나는 고정된 패스워드고, 다른 하나는 일회용 패스워드다.
·고정된 패스워드(fixed password)
접속 시에 반복해서 사용되는 패스워드를 말한다. 저장하는 형태를 3가지로 나눌 수 있다.
첫 번째 방법 > 표나 파일에 사용자 아이디를 정렬해서 저장해 놓는다. 이 시스템 자원에 접근하기 위해 사용자는 자신의 사용자 아이디와 패스워드를 평문 형태로 시스템에 제공한다.
두 번째 방법 > 패스워드를 평문으로 저장하는 대신 패스워드의 해시를 저장하는 것이다. 누군가가 파일의 내용을 볼 수는 있지만 해시함수의 일방향성으로 인해 패스워드 값을 추측하기는 거의 불가능하다.
세 번째 방법 > 패스워드 솔팅이라고도 부른다. 패스워드로 사용할 문자열이 생성되면 솔트 값을 패스워드에 이어 붙인다. 그리고 솔팅된 패스워드에 해시함수를 적용한다.
·일회용 패스워드(one-time password)
일회용 패스워드(OTP)는 동적 패스워드라고도 불린다. 인증 목적을 위해 사용되며 오직 한 번만 유효하다. 패스워드가 사용되고 나면 OTP가 더 이상 유효하지 않아 공격자가 패스워드를 획득하더라도 재사용될 수 없다.
첫 번째 방법 > 사용자와 시스템이 패스워드 목록에 대해 합의를 한다. 목록상의 각 패스워드는 오직 한 번만 사용한다.
두 번째 방법 > 사용자와 시스템은 패스워드를 순차적으로 업데이트하기로 합의한다.
세 번째 방법 > 사용자와 시스템은 해시함수를 이용하여 순차적으로 업데이트된 패스워드를 생성한다. 사용자와 시스템은 원래의 패스워드 P0와 카운터 n에 동의하고 시스템은 hn(P0)를 계산한다.
·패스워드 인증의 문제점
개인정보(생일, 전화번호) 등을 사용하면 패스워드 추측이 쉽다.
크래킹 툴 NTCrack 이나 John the ripper 같은 소프트웨어로 크랙하기 쉽다.
무작위로 만든 패스워드 사용 시 기억하기가 어렵다.
·패스워드 보안 정책
패스워드는 최소한 8자리 이상의 문자와 4가지 유형의 문자로 구성된다.
동일한 패스워드를 재사용하면 안 되고 공유되어서도 안 된다.
시스템은 실패한 로그인 시도 횟수를 제한하도록 임계치를 설청한다.
단기간의 휴면 사용자 계정은 사용 불가능하게 하며 더 이상 사용되지 않는 사용자 계정은 삭제한다.
- 시도-응답 개인 식별 프로토콜
패스워드를 이용한 개인 식별 방식은 도청이 가능한 환경에서는 안전한 방식이라고 할 수 없다.
시도-응답 프로토콜은 대칭형 암호와 공개키 암호에 기반을 둔다. 이 프로토콜은 자신만이 소유하고 있는 어떤 비밀 정보를 알고 있다는 사실을 간접적으로 보여주는 프로토콜이다.
·일방향 개인 식별 프로토콜
시스템 서버 또는 클라이언트 중에 어느 한 대상을 식별하는 프로토콜을 일방향 개인 식별 프로토콜이라고 한다.
·상호 개인 식별 프로토콜
시스템 서버와 클라이언트 양측을 식별하는 프로토콜을 말한다.
- 영지식 개인 식별 프로토콜
패스워드를 이용한 개인 식별과 시도-응답 방식의 개인 식별 프로토콜은 클라이언트가 서버에게 패스워드나 비밀키 같은 정보를 알고 있다는 사실을 직접 또는 간접으로 증명하는 프로토콜이다.
하지만 영지식 개인 식별 프로토콜은 자신의 비밀 정보를 서버에게 제공하지 않으면서 자신의 신분을 증명한다.
- i-PIN(Internet Personal Identification Number)
인터넷상에서 주민번호 대신에 아이디와 패스워드를 사용해 본인 확인을 하는 수단이다.
일반 웹 사이트에 본인의 주민번호를 제공하지 않아도 되므로 주민번호 유출 위험을 크게 줄일 수 있다.
2) 소유 기반 인증(What or Sth you have)
사용 권한을 가지고 있는 문의 열쇠, 운전면허증, 신분증, 암호키 등의 다양한 수단이 있다. 소유에 기반을 둔 인증 방식은 다른 사람이 쉽게 도용할 수 있기 때문에 단독으로 쓰인다기보다 일반적으로 다른 방식과 함께 쓰인다.
소유 기반 인증 방법은 일반적이며 입증된 기술이고 비용 측면에서 경제적이라는 장점이 있다. 반면 소유물이 없을 경우 인증이 어렵고 복제가 가능하며 자산 관리 기능이 요구된다는 단점도 있다.
- 메모리 카드(Token)
간단한 보안 코드를 저장할 수 있다.
- 스마트카드
실질적으로 정보를 처리할 수 있다는 점에서 메모리 카드보다 발전된 형태이다. 마이크로 프로세스, 카드 운영체제, 보안 모듈, 메모리 등으로 구성되어 특정 업무를 처리할 수 있다.
- OTP
OTP용 프로그램에서 사용자 비밀번호와 일회용 비밀번호 생성용 입력값을 입력하면 암호 알고리즘을 사용해서 일회용 패스워드를 생성하는 사용자 인증 방법이다. 지식 기반 인증 방법에서 소개했지만 OTP를 사용하기 위해서는 단말장치가 존재해야 하므로 소유 기반 인증 방법이라 볼 수 있다.
패스워드 가로채기, Shoulder surfing 등에 대처하며 일정시간마다 비밀번호를 변경한다. OTP가 토큰을 발행하는 유형에는 질의응답, 시간 및 이벤트 동기화, S/Key 방법이 있다.
· 질의응답 방식
시도-응답 방식이다. 인증 서버는 사용자에게 시도(challenge/nonce) 값을 보내면 사용자는 그 임의값을 토큰장치에 입력한다. 그러면 토큰장치가 사용자에게 OTP로 값을 되돌려주고 사용자가 OTP와 이름을 인증 서버로 전송하여 서버가 이전에 보낸 값과의 비교를 통해 사용자를 인증하게 된다.
구조가 비교적 간단하며 동기화가 필요 없는 장점이 있지만 사용자가 질의 값을 직접 입력해야 하므로 사용이 번거롭고 같은 질의 값이 생성되지 않도록 인증 서버 관리가 필요하다.
· 시간 및 이벤트 동기화 방식
동기화 토큰장치의 인증과정은 시간 혹은 계수기를 이용한 인증서비스와 동기화가 핵심이다. 토큰장치와 인증서비스는 반드시 동일한 비밀키를 공유하여 암·복호화에 사용한다.
· S/KEY 방식
UNIX 계열 운영체제에서 인증을 위해 사용되고 있다.
클라이언트가 임의의 비밀키를 서버로 전송하면 서버는 비밀키를 첫 번째 값으로 사용하여 해시 체인 방식으로 이전 결과값에 대한 해시값을 구하는 작업을 n번 반복한다. 그렇게 생성된 n개의 OTP를 서버에 저장한다.
3) 개체 특성 기반 인증(What or Sth you are)
개체의 생체적 특성에 기반을 둔 인증기법은 지문, 홍채, 장문, 성문, 얼굴이미지 등의 다양한 기법들을 사용한다.
사용자는 사전에 생체정보 리더기를 이용해 자신의 생체정보를 DB에 등록해야 한다. 인증을 위한 생체 데이터와 저장된 생체 템플릿을 비교함으로써 생체인증이 수행된다.
사용하기가 쉬우며, 잊어버리거나 손실되거나 도난당할 수 없고 위조가 어려운 장점이 있다. 하지만 판단 모호성이 존재하고 관리가 어려우며 인증을 위한 임계치 설정이 어렵다.
- 생체인증 기술의 평가항목
보편성(Universality) - 모든 사람이 가지고 있는 생체 특징인가?
유일성(Uniqueness) - 동일한 생체 특성을 가진 타인은 없는가?
지속성(Permanence) - 시간에 따른 변화가 없는 생체 특징인가?
획득성(Collectability) - 정량적으로 측정이 가능한 특성인가?
성능(Performance) - 환경변화와 무관하게 높은 정확성을 얻을 수 있는가?
수용성(Acceptability) - 사용자의 거부감은 없는가?
반기만성(Anti-Circumvention) - 고의적인 부정사용으로부터 안전한가?
- 생체인증의 정확도
시스템이 지나치게 민감하면 생체인증의 작은 차이도 크게 인식하여 실제 사용자를 잘못 판정하는 경우가 많아진다. 즉, 시스템이 민감할수록 오거부율(FRR / False Rejection Rate)이 높아진다.
반면 시스템의 민감도가 떨어지면 위장 사용자의 생체 정보를 제대로 판별하지 못해 정상 사용자로 잘못 판정하는 경우가 많이 발생하게 되고, 오인식율(FAR / False Acceptance Rate)이 높아진다.
대부분의 생체인식 시스템은 FRR과 FAR이 같아지는 균등 오류율/교차 오류율(EER / CER)에 맞는 민감도를 유지하도록 설정한다. 사용자 편의성을 요구하는 경우에는 FAR이 높아지고 FRR이 낮아지며 보안성을 강화해야 하는 경우에는 FAR이 낮아지고 FRR이 높아지게 된다.
높은 보안 성능을 유지하기 위해서는 FRR보다 FAR의 성능이 매우 중요하다.
통합 인증 체계(SSO, Single Sign On)
SSO는 한 번의 시스템 인증을 통해 접근하고자 하는 다양한 정보시스템에 재인증 절차 없이 접근할 수 있도록 하는 통합 로그인 솔루션이다. SSO는 사용자, 인증 서버, LDAP, SSO Agent 로 구성된다.
커버로스 (Kerberos)
SSO의 대표적인 예시 중 하나인 커버로스는 대칭키 암호기법에 바탕을 둔 티켓 기반 인증 프로토콜이며 동시에 KDC이다.
커버로스는 사용자에게 동일한 계정정보로 여러 가지 서비스를 받을 수 있게 한다. 커버로스는 개방형 아키텍쳐이기 때문에 상호운용성 논점을 가져온다.
- 커버로스의 구성요소
1. KDC
커버로스 시스템에서 가장 중요한 키 분배 서버로 모든 사용자와 서비스의 비밀키를 보관한다. 클라이언트와 서비스는 KDC의 무결성을 신뢰하며 이러한 신뢰가 커버로스 보안의 근간이 된다. 사용자의 패스워드는 비밀키로 변환되어 주체와 KDC 사이에서 민감한 데이터를 전송하기 위해 사용되며 사용자 인증 목적을 위해서도 사용된다.
TGS와 AS로 구성된다.
2. AS (Authentication Service)
실질적인 인증을 수행한다.
3. TGS (Ticket Granting Service)
티켓을 부여하고 티켓을 분배한다.
4. Ticket
사용자에 대해 신원과 인증을 확인하는 토큰이다. 사용자가 다른 주체들과 통신이 필요할 때마다 패스워드를 입력하지 않도록 도와준다.
- 커버로스의 구성도
커버로스는 모든 사용자의 패스워드를 알고 있고, 중앙집중식 DB에 그 패스워드를 저장하고 있는 AS를 이용한다. AS는 각 서버와 유일한 비밀키를 공유한다.
TGS는 AS에게 인증 받은 사용자에게 티켓을 발행한다. 그래서 사용자는 우선 AS에게 티켓 승인 티켓(Tickettgs)을 요청한다. 클라이언트는 이 티켓을 보관한다.
사용자가 새 서비스를 요청할 때마다 클라이언트는 자신을 인증하는 티켓을 이용해 TGS에 접속한다. 이때 TGS는 요청된 서비스에 대한 티켓을 발행한다. 클라이언트는 각 서비스 승인 티켓을 보관하고 특정 서비스가 필요할 때마다 해당 티켓을 사용하여 클라이언트의 사용자를 서버에게 인증시킨다.
티켓에 timestamp를 이용한 시간제한을 두어 다른 사람이 티켓을 복사하여 나중에 그 사용자인 것처럼 위장하여 티켓을 사용하는 것을 막는다.
- 커버로스 취약점
KDC는 실패 단일 지점(SPoF, Single Point of Failure)이 될 수 있다. 만약 KDC에 문제가 발생하면 누구도 리소스에 접근할 수 없게 된다. KDC를 위한 이중화 구성이 필요하다.
비밀키는 사용자의 워크스테이션에 임시로 저장이 되며 이것은 intruder가 암호화된 키를 획득하는 것이 가능해다는 것을 의미한다.
커버로스는 패스워드 게싱 공격에 취약하다. 커버로스 프로토콜은 이런 유형의 보호 기능을 제공하지 않으므로 다른 구성요소가 패스워드 추측 공격에 대항하기 위해 배치되어야 한다.
KDC는 사전공격이 발생하고 있어도 알지 못한다.
TGS와 AS는 물리적 공격 및 악성코드로부터 공격에 취약하다.
'정보보안기사' 카테고리의 다른 글
접근통제 보안위협 및 대응책 (1) | 2023.03.19 |
---|---|
접근통제 보안 모델 (0) | 2023.03.18 |
접근통제 (0) | 2023.03.16 |
키, 난수 (0) | 2023.03.15 |
PKI (공개키 기반 구조) (0) | 2023.03.14 |