Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

정보 보안의 핵심, 인증(Authentication)이란 무엇일까?


인증(Authentication)의 기본 개념

인증(Authentication)은 어떤 개인이나 시스템이 스스로 주장하는 신원이 실제와 일치하는지 확인함으로써, 그 신원을 검증하는 절차입니다. 인증은 서버와 클라이언트 양쪽 모두에서 활용될 수 있습니다.

서버는 누군가 데이터에 접근하려 할 때 그 사용자가 누구인지 파악해야 하므로 인증을 사용합니다. 반대로 클라이언트는 접속하려는 대상이 실제로 자신이 주장하는 서버가 맞는지 확인해야 할 때 인증을 활용합니다.

서버 인증의 주요 방식

서버 측 인증은 일반적으로 아이디(사용자 이름)와 비밀번호 조합으로 수행됩니다. 이 외에도 스마트카드, 망막 스캔, 음성 인식, 지문 인식 등 생체 인증과 하드웨어 기반의 다양한 인증 방식이 함께 사용될 수 있습니다.

다만 인증은 특정 프로세스 안에서 개인이 어떤 서비스를 수행할 수 있는지, 어떤 문서를 열람·읽기·수정할 수 있는지를 규정하지 않습니다. 그러한 작업은 권한 부여(Authorization)의 영역이며, 인증의 핵심 목적은 해당 개인이나 시스템이 정확히 누구(무엇)인지 식별하는 것입니다.

모바일 환경에서의 사용자 인증

사용자 인증은 PDA(Personal Digital Assistant)를 비롯한 모바일 및 휴대용 기기를 지키는 1차 방어선입니다. 그러나 전통적인 인증 구조는 중앙 집중화된 사용자 신원 데이터베이스에 기반하기 때문에, 서로 다른 관리 도메인에 속한 사용자를 인증하기가 매우 복잡하다는 한계가 있습니다.

이러한 구조는 소중한 개인 정보와 맞춤형 서비스에 대한 안전한 접근을 제공하는 모든 시스템에 걸림돌이 됩니다. 따라서 인증 메커니즘은 분산형으로 설계되어야 하며, 인증자(authenticator)를 구성하는 여러 요소들이 상호 통신하여 하나의 사용자를 함께 검증할 수 있어야 합니다.

인증 서비스가 보장하는 것

인증 서비스는 통신 내용이 진본(authentic)임을 보장하는 데 초점을 둡니다. 경고 신호나 알람처럼 단일 메시지로 이루어진 경우, 인증 서비스의 역할은 해당 메시지가 실제로 명시된 발신지에서 온 것임을 수신자에게 확신시키는 것입니다.

반면 단말기와 호스트의 연결처럼 연결 지향적인 상호작용에서는 두 가지 사항을 반드시 확인해야 합니다.

첫째, 연결 설정 시점에 참여하는 두 개체가 모두 정확한지, 즉 각각이 자신이 주장하는 개체가 맞는지를 검증해야 합니다.

둘째, 제3자가 정당한 당사자 중 하나로 위장하여 무단으로 데이터를 송수신하지 못하도록, 연결 자체가 침해되지 않았음을 보장해야 합니다.

X.800 표준이 정의하는 두 가지 인증 서비스

  • 피어 개체 인증(Peer Entity Authentication) − 통신에 참여하는 두 개체의 신원을 상호 확인하는 서비스입니다. 연결이 설정되는 시점 또는 데이터 전송 과정 중에 적용될 수 있으며, 개체가 위장(masquerade) 행위를 하거나 이전 연결을 무단으로 재전송(replay)하지 않는다는 확신을 제공합니다.

  • 데이터 출처 인증(Data Origin Authentication) − 메시지의 발신지(발신자)를 검증하는 서비스입니다. 다만 정보 단위의 복제나 변조로부터는 보호해주지 못한다는 한계가 있습니다. 이 서비스는 통신 개체 간에 사전 상호작용이 없는 전자우편(e-mail)과 같은 애플리케이션에 적합합니다.