1. 사용자 인증 개요
가. 사용자 인증 시 보안 요구 사항
사용자가 정보 자산에 접근을 요청할 때 시스템과 관리자는 사용자의 실재(實在), 사용자의 확인 그리고 권한의 부여와 같은 인증 허가의 일련의 과정을 거치게 된다. 이런 일련의 과정에서 사용자의 식별 및 인증, 사용 권한의 허가 그리고 책임추적성 보장 등의 메커니즘이 요구된다. 다음 [표 3-1]은 사용자 인증 시 요구되는 보안 요구사항이다.
[표 3-1] 사용자 인증시 보안 요구사항
보안 요구사항 | 내용 |
식별 | 식별은 시스템에게 주체(subject)의 식별자(ID)를 요청하는 과정으로 각 시스템의 사용자들은 시스템이 확인할 수 있는 유일한 식별자(예, Login ID)를 갖는다. 이러한 사용자의 식별자는 각 개인의 신원을 나타내기 때문에 사용자의 책임추적성(Accountability) 분석에도 중요한 자료가 된다. 따라서 개인 식별자는 반드시 유일한 것을 사용해야 하고, 공유되어서는 안 되며 중요한 의미를 갖는 식별자는 사용을 피하는 것이 좋다. |
인증 | 임의의 정보에 접근할 수 있는 주체의 능력이나 주체의 자격을 검증하는 단계이다. 이는 시스템의 부당한 사용이나 정보의 부당한 전송 등을 방지한다. |
인가 | 사용자, 프로그램 또는 프로세스에게 허가한 권한을 의미한다. 권한부여를 한다는 것은 누구에게 무엇을 할 수 있거나, 가질 수 있는 권한을 부여하는 과정이다. |
책임추적성 | 책임추적성은 오늘날과 같은 멀티유저, 멀티태스킹이 지원되는 네트워크 환경에서는 누가, 언제, 어떠한 행동을 하였는지 기록하여, 필요시 그 행위자를 추적 가능하게 하여 책임소재를 명확하게 할 수 있는 기반다. |
2. 사용자 인증 기술
사용자를 인증하는 방법에는 크게 사용자가 알고 있는 것을 이용하는 방법과 사용자가 소유한 것을 이용하는 방법, 사용자의 특성을 이용하는 방법이 있으며, 각각에 따른 사용자 인증 기술은 아래 [표 3-3]과 같다.
[표 3-3] 사용자 인증기술
인증 기술 | 내용 |
아는 것에 의한 인증 (What you know) | ID/Passwd, 암호구, 개인식별번호, S/Key, OTP 등 |
소유하고 있는 것에 의한 인증(Whay you have) | IC 카드(Smart card), 마그네틱 카드(memory card) 등 |
개체의 특징에 의한 인증(What you are) | 지문, 음성, 망막 측정, 서명 동작 등의 생체적 특성을 이용한 인증 |
가. 패스워드
사용자 인증 기술로 가장 널리 사용되는 방식으로 사용자만이 알고 있는 정보(패스워드)를 입력함으로써 사용자 인증을 수행한다. 이 방식은 가장 간편한 동시에 보안상 가장 취약한 인증 기술로써 다른 사용자가 패스워드를 추측할 수 없도록 하는 것이 보안상 가장 중요하다. 따라서 패스워드 설정 시 타인이 추측하기 어려우나 본인은 기억하기 쉬운 패스워드를 이용하여야 한다.
나. 일회용 패스워드
사용자의 아이디와 패스워드를 인증 기반으로 사용하는 시스템에서의 패스워드는 누출에 대한 많은 위험성과 그것에 대한 해킹 방법들이 많이 알려져 있다. 이러한 문제점을 보안하기 위하여 일회용 패스워드(OTP: One Time Password)가 쓰이기 시작하였다. 일회용 패스워드는 새로운 로그온 시도마다 새로운 패스워드가 사용되며 한번 사용된 패스워드는 더 이상 사용할 수 없다. 따라서 공격자가 통신망에서 현재 사용되고 있는 패스워드를 알아낸다고 하더라도 그 패스워드를 사용할 수 없으므로 보안성이 보장된다.
다. 개인 식별 번호
현금자동지급기나 전자투표와 같은 장치에 대한 접근 관리를 위해 개인에게 부여된 개인 식별번호(PIN: Personal Identification Number)로 일정한 알고리즘을 이용해 생성되며, 일련번호 형태로 제공된다. 패스워드 등과 같이 사용자가 알고 있는 것(What you know)에 의존한 인증 방식이다.
라. 암호구
암호구(Pass Phrase)는 연속적인 문자들의 집합으로 일반적으로 사용하는 패스워드보다는 더 긴 길이의 비트 열로 작성된 패스워드이다. 암호구는 패스워드와 같은 개념으로 사용자가 응용프로그램(예, PGP(Pretty Good Privacy))에 로그온하려면 해당 응용프로그램은 사용자가 비밀키를 써야하는 작업마다 암호구를 입력하라고 요구하는데 이는 비밀키 자체가 이 암호구에 의해서 암호화되어 저장되었기 때문이다. 또한 암호구는 일반적인 패스워드보다는 더 긴 비트 열을 이용하고 암호화기법을 사용하기 때문에 더 안전하다할 수 있다.
마. 메모리 카드
우리가 일반적으로 사용하는 은행의 현금카드나 신용카드 등의 마그네틱 카드도 자기 띠를 이용한 메모리 카드(Memory Card)라 할 수 있다. 메모리 카드는 데이터의 저장은 가능하나 데이터를 처리할 수는 없다. 메모리 카드에는 사용자의 인증을 위한 정보를 포함하고 있으며, 두 가지 이상의 인증 정보를 이용하여 사용자를 인증한다. 예를 들어 메모리카드(what you have)와 개인 식별번호(what you know)를 혼합하여 사용하는 것 등이다.
바. 스마트카드
스마트카드(Smart Card) 또는 칩 카드(Chip Card)는 신용카드 정도의 크기의 플라스틱으로 만들어져 있으며, 데이터를 저장할 수 있는 전자회로가 내장되어 있고, 교통카드와 전자화폐 등 다양한 용도로 사용될 수 있으며 주기적으로 충전하여 재사용할 수 있다. 또한 스마트카드는 메모리 카드보다는 보안성이 강하며 메모리 카드가 제공하지 못하는 다양한 기능의 제공으로 많은 관심과 연구가 진행되고 있다.
사. 생체인식 기술
(1) 생체인식 기술 개요
생체인식 기술이란 살아있는 사람의 신원을 생리학적으로 또는 행동 특징을 기반으로 인증하거나 인식하는 자동화된 기법을 말한다. 생체인식 시스템은 크게 생리적인 특징을 이용한 지문, 얼굴, 망막, 혈관 패턴, 홍채, 손목 또는 손등의 정맥분포 패턴, DNA를 식별하는 방식이 있고 사람의 행위나 형태적 특성을 이용한 서명과 음성인식 등의 방법이 있다.
(2) 생체인식 기술 요구 사항
사용자 인증 시스템으로써 생체인식 기술에 요구되는 생체의 특성은 다음과 같다. o보편성(Universal) : 누구나 가지고 있는 생체의 특성을 이용하여야 한다. o유일성(Unique) : 각 개인마다 고유한 특성이 있어야 한다.o영속성(Permanent) : 변하지 않고 변경이 불가능해야 한다.o정량성(Collectable) : 생체인식 시스템의 센서에 의한 획득과 정량화가 용이해야 한다.생체인식 기술의 정확성을 측정하는 기준은 다음 [표 3-4]와 같다.
[표 3-4] 생체인식 기술 정확성 측정기준
구분 | 내용 |
잘못된 거부의 비율 | - 시스템에서 인식된(접근허용) 인가된 사용자와 인식되지 못한 사용자간의 측정율(False on-Match Rate) - 허가된 사용자가 시스템의 오류로 인한 접근 거부되는 비율 |
잘못된 허용의 비율(False Acceptance Rate; FAR, 또는 Type II) | - 시스템에서 잘못 인식된 비인가 사용자와 인식하지 못한 사용자간의 측정율(False on-March Rate) - 허가되지 않은 사용자가 시스템의 오류로 인한 접근 허용되는 비율 |
FRR과 FAR의 교차점 | - 잘못된 거부의 비율(FRR)과 잘못된 허용의 비율(FAR)의 교차점 |
등록실패율 | - 하나의 생체원시 데이터 레코드를 등록할 수 없는 사용자가 발생 측정치 |
아. SSO
네트워크 사용자들은 그들이 사용하는 여러 서버들을 위해서 다수의 패스워드를 기억하고 있어야 한다. 예를 들어 한 사용자가 네트워크 접속, 전자메일 사용, 디렉토리 서비스 사용, 조직의 프로그램 사용 그리고 기타 여러 가지 서비스에 접근하기 위해서는 접속할 때마다 서로 다른 패스워드의 입력 절차를 거쳐야 하며 이것은 매우 번거로운 작업이다. 또한 관리자들은 각각의 서버에 분리된 암호 데이터베이스를 만들어야 하며 패스워드가 네트워크를 통해 자주 전달되기 때문에 이에 따른 보안 관리의 부담이 생기게 된다. SSO(Single Sign-On)란 사용자가 단 한 번의 로그인 절차를 거친 것만으로 조직의 모든 업무 시스템이나 인터넷 서비스에 접속할 수 있게 해주는 서비스로서, 사용자는 하나의 패스워드로 로그인하면 다른 인증 절차를 거치지 않더라도 자신의 사용권한이 있는 모든 네트워크 자원에 접근할 수 있는 권한을 부여한다. 관리자의 입장에서도 훨씬 적은 수의 사용자와 패스워드를 관리하게 되므로 네트워크 관리를 단순화시켜 인력이나 비용을 절감시키는 이점이 있다.특히 최근의 SSO 기술은 인증된 사용자에게 시스템 정보 및 자원에 접근할 수 있는 권한은 물론 중요 접근제어 권한까지 부여하는 EAM으로 발전되는 추세이다.다음 [표 3-5]는 SSO와 응용프로그램 인증 방식간의 차이를 설명한다.
[표 3-5] SSO와 응용프로그램 인증방식 차이
구분 | SSO 방식 | 응용프로그램 인증 방식 |
장점 | - 완벽한 보안제공 | - 구축기간 단기 소요 |
단점 | - 구축 기간 장기 소요 | - SSO 방식에 비해 보안성 취약 |
자. EAM
(1) EAM 개요
EAM(Extranet Access Management)은 SSO에 권한에 따른 자원 접근 통제(Access Control) 개념을 포함시킨 확장 기술이다. 기업 내부의 사용자와 함께 외부 직원 및 협력업체, 고객 등의 외부 사용자들이 접근할 수 있는 자원에 대한 권한을 관리, 제어함으로써, 기업 내 중요 정보에 비인가된 사용자가 접근하는 것을 방지하는 역할을 한다. 초기에는 웹 서버상의 자원에 대한 관리만 가능하였으나 현재는 다양한 어플리케이션에 대한 관리가 가능하다.
(2) EAM 관리 요소o 사용자(User)자원에 접속을 요구하는 주체를 말한다. 예를 들어 사람, 네트워크 장비, 프로그램 등이며 소속, 지리적 위치, 역할 등에 따라서 Group 또는 Role로 구분할 수 있다.
o 자원(Resource)접속이 요청되는 객체를 말한다. - Web : html file, directories, CGI, JSP, ASP files 등- File System : directories, files 등- Database : tables, rows, columns 등o 오퍼레이션(Operation)주체가 객체에게 접근 시 요구하는 행위를 말한다. - Web : GET, POST, PUT- File System : read, write, execute- Database : select, insert, delete, queries 등
(3) EAM 구축 효과
o 자원에 대한 접근 제어를 통한 보안성 향상
o 다양한 사용자 인증 방법 제공(ID/PW, PKI 인증서, 생체인식, 토큰 등)
o 사용자의 편리성과 관리 업무의 효율성 증대
o 업무 효율성으로 인한 비용 절감 효과
차. TACACS
TACACS는 유닉스 네트워크에 적용되는 인증 프로토콜로, 주어진 시스템에 접근을 허용할 것인지를 결정하기 위해 원격 액세스 서버가 사용자의 인증 정보를 인증 서버에 전달할 수 있게 해준다. 암호화되지 않은 프로토콜로 그 이후 나온 TACACS+와 RADIUS 프로토콜은 암호화가 지원된다. TACACS+는 TACACS의 인증 강화 버전이지만 XTACACS나 TACACS와 호환되지는 않는다. 그리고 SLIP/PPP와 telnet의 인증에 추가적으로 S/key, CHAP, PAP를 통한 인증을 허용한다. 인증과 인가가 분리되어 있으며 개별적으로 구성이나 구현하도록 할 수 있다.
카. RADIUS
RADIUS(Remote Authentication Dial-in User Service)는 사용자 인증 프로토콜이다. 인터넷의 발달로 사무실에 출근하지 않고 집에서 근무하는 재택근무자가 늘고 있는데 이러한 재택근무자와 이동 근무자가 다이얼 업 네트워킹을 통해서 본사 네트워크에 접속할 때 사설 네트워크의 경계를 보호하기 위한 것이 바로 RADIUS이다. RADIUS는 RAS가 다이얼 업 모뎀을 통해 접속해온 사용자들을 인증하고, 요청된 시스템이나 서비스에 관해 그들에게 액세스 권한을 부여하기 위해, 중앙의 서버와 통신할 수 있게 해주는 클라이언트/서버 프로토콜이다. RADIUS 서버는 중앙의 데이터베이스 내에 사용자의 인증 정보(이름, 패스워드 등)를 일괄적으로 관리하여 액세스 서버에 접속할 수 있게 한다. 다음 [표 3-6]은 RADIUS와 TACACS+와의 비교표이다.
[표 3-6] RADIUS 와 TACACS+ 비교
구분 | RADIUS | TACACS+ |
인증/인가 | 인증과인가 정보를 사용자프로필내에 모두가지고 있는 통합관리방식 | 인증과인가방식이 분리되어있어 별도로 구성가능한 방식 |
통신프로토콜 | UDP | TCP |
특징 | ADIUS는 해쉬기술로 암호화함 | ACL, 패스워드 기간지정 지원 |
타. 커버로스
(1) 커버로스 개요
커버로스(Kerberos)는 네트워크 사용자를 인증하는 것과 관련하여 미국 MIT의 Athena 프로젝트에서 개발된 네트워크 인증 표준이다. 커버로스는 개방된 안전하지 않은 네트워크 상에서 사용자를 인증하는 시스템이며 DES와 같은 암호화 기법을 기반으로 하기 때문에 그 보안 정도는 높다고 할 수 있다. 커버로스는 티켓이라는 것으로 사용자를 인증하고, 보안상으로 볼 때 좀 더 안전하게 통신할 수 있게 한다
(2) 커버로스 동작 원리
텔넷(Telent)이나 기타 이와 비슷한 로그인 요청을 통해, 다른 컴퓨터에서 서버에 접근을 요청한다고 가정하였을 때, 이 서버는 로그인 요청을 받아들이기 전에 커버로스 티켓을 요구한다. 티켓을 받기 위하여 접속자는 먼저 인증 서버에 인증을 요구한다. 인증 서버는 요구자가 입력한 패스워드에 기반을 두어 세션키와 서비스 요구를 나타내는 임의의 값을 만든다. 세션키는 사실상 ‘티켓을 부여하는 티켓’이다. 그 다음에 세션키를 티켓 부여 서버인 TGS(Ticket Granting Server)에 보낸다. TGS는 서비스를 요청할 때 서버에 보낼 수 있는 티켓을 돌려준다. 그 서비스는 티켓을 거절하거나, 또는 받아들여서 서비스를 수행한다. TGS로부터 받은 티켓은 발송일자와 시간이 적혀있기 때문에, 일정 시간(대체로 8시간) 내에는 재인증없이도 동일한 티켓으로 다른 추가 서비스를 요청할 수 있다. 티켓을 제한된 시간 동안에만 유효하게 만듦으로써, 후에 다른 사람이 그것을 사용할 수 없도록 한다.
'Security' 카테고리의 다른 글
해킹, 바이러스 감염 시 대응 요령 (0) | 2017.01.08 |
---|---|
암호학 (0) | 2017.01.08 |
FTP Active/Passive 정리 (0) | 2017.01.06 |
ubuntu 환경에 SNORT & BASE & Metasploit 설치 (0) | 2017.01.06 |
포트 스캐닝으로부터 OS 정보 숨기기 (0) | 2017.01.06 |