인증 기술 : SSO, Kerberos, OAuth
요약
SSO(Single Sign-On), Kerberos, OAuth의 핵심 개념과 동작 원리, 차이점을 명확히 알아봅니다. 각 인증 기술의 특징과 장단점을 비교 분석하고, 정보처리기사 실기 대비 문제도 포함하여 인증 전문가로 거듭나세요.
세 가지 인증 기술 비교 요약
구분 | SSO (Single Sign-On) | Kerberos | OAuth |
---|---|---|---|
주요 목적 | 인증 (Authentication) | 인증 (Authentication) | 권한 부여 (Authorization) |
핵심 개념 | 한 번의 로그인으로 여러 서비스 이용 | 티켓 기반 상호 인증 | 비밀번호 없이 자원 접근 권한 위임 |
사용 환경 | 웹 기반 기업 내부 시스템, 클라우드 서비스 | 주로 내부 네트워크 (Windows Active Directory 등) | 외부 서비스 연동, 소셜 로그인, API 접근 |
보안 방식 | SAML, JWT 등 토큰 기반 | 대칭키 암호화, 티켓 기반 | Access Token 기반 |
비유 | 놀이공원 자유이용권 | 영화관 티켓 시스템 | 집 열쇠 대신 출입 카드키 |
인증 기술, 왜 중요할까요?
오늘날 우리는 수많은 서비스와 시스템을 사용하며 하루에도 몇 번씩 로그인을 합니다. 이때 사용자의 신원을 확인하고 안전한 접근을 보장하는 기술이 바로 '인증'입니다. 다양한 인증 기술 중에서도 SSO, Kerberos, OAuth는 현대 IT 환경의 핵심적인 역할을 담당하고 있습니다. 이 세 가지 기술의 개념과 차이점을 명확히 이해하고, 정보처리기사 실기 시험까지 대비해 봅시다.
SSO (Single Sign-On) - "한 번의 로그인으로 모든 것을"
SSO(Single Sign-On) 는 말 그대로 한 번의 인증 과정으로 여러 개의 다른 서비스에 자동으로 접속할 수 있게 해주는 시스템입니다. 사용자는 여러 개의 아이디와 비밀번호를 기억할 필요가 없어 편리하고, 기업은 중앙에서 사용자의 접근을 관리할 수 있어 보안성이 향상됩니다. SSO는 Kerberos, SAML, OAuth 등 다양한 기술을 통해 구현되며, 특히 Kerberos에서 사용되는 핵심 기술로도 알려져 있습니다.
- 핵심 개념: 중앙 인증 서버(IdP, Identity Provider)에서 한 번 인증받으면, 해당 인증 정보를 바탕으로 다른 서비스(SP, Service Provider)에 추가 로그인 없이 접근합니다.
- 동작 방식:
- 사용자가 서비스(SP)에 접근을 시도합니다.
- 서비스(SP)는 사용자를 인증 서버(IdP)로 리디렉션합니다.
- 사용자는 인증 서버(IdP)에 로그인합니다.
- 인증 서버(IdP)는 인증이 완료되었다는 토큰(SAML, JWT 등)을 생성하여 사용자에게 전달합니다.
- 사용자는 이 토큰을 가지고 다시 서비스(SP)에 접근합니다.
- 서비스(SP)는 토큰을 검증하고 사용자에게 접근을 허용합니다.
- 장점:
- 사용자 편의성 증대: 여러 개의 비밀번호를 관리할 필요가 없습니다.
- 보안 강화: 중앙에서 접근 제어가 가능하고, 다중 인증(MFA)을 적용하기 용이합니다.
- 관리 효율성: 사용자 계정 관리가 간소화됩니다.
- 단점:
- 중앙 인증 서버 의존성: 인증 서버에 장애가 발생하면 모든 서비스에 로그인이 불가능해집니다.
- 초기 구축 비용: SSO 시스템을 구축하고 연동하는 데 시간과 비용이 소요됩니다.
Kerberos - "티켓 기반의 신뢰할 수 있는 중재자"
커버로스(Kerberos) 는 그리스 신화에 나오는 머리 셋 달린 개 '케르베로스'에서 이름을 딴 인증 프로토콜로, 네트워크 상에서 신뢰할 수 있는 제3자(KDC, Key Distribution Center)를 통해 사용자와 서버 간의 신원을 상호 인증하는 방식입니다. 대칭키 암호화 기법을 기반으로 하며, 한 번 인증을 받으면 일정 시간 동안 유효한 '티켓'을 발급받아 여러 서버에 접근할 수 있습니다. Kerberos는 SSO(Single Sign-On)를 구현하는 핵심 기술로, 한 번의 인증 과정으로 여러 컴퓨터상의 자원을 이용할 수 있도록 해줍니다.
- 핵심 개념: 티켓 발급 서버(KDC)를 통해 사용자와 서비스가 서로를 안전하게 인증합니다.
- 주요 구성 요소:
- KDC (Key Distribution Center): 키 분배 센터로, 내부에 AS와 TGS로 구성됩니다.
- AS (Authentication Server): 인증 서버. 사용자의 신원을 확인하고 TGT(Ticket Granting Ticket)를 발급합니다.
- TGS (Ticket Granting Server): 티켓 발급 서버. TGT를 확인하고 특정 서비스에 접근할 수 있는 서비스 티켓(ST)을 발급합니다.
- 클라이언트(사용자)
- 서버(서비스)
- KDC (Key Distribution Center): 키 분배 센터로, 내부에 AS와 TGS로 구성됩니다.
- 동작 방식:
- AS에 인증: 사용자가 AS에 자신의 정보를 보내 인증을 요청합니다.
- TGT 발급: AS는 사용자를 인증하고, TGS에 접근할 수 있는 티켓인 TGT를 발급합니다.
- TGS에 서비스 티켓 요청: 사용자는 TGT를 가지고 TGS에 특정 서비스에 대한 접근 티켓(ST)을 요청합니다.
- 서비스 티켓(ST) 발급: TGS는 TGT를 검증하고, 해당 서비스에 접근할 수 있는 ST를 발급합니다.
- 서비스 접근: 사용자는 ST를 가지고 최종적으로 원하는 서비스에 접근합니다.
- 장점:
- 강력한 보안: 모든 통신이 암호화되고, 상호 인증을 통해 중간자 공격을 방지합니다.
- SSO 지원: 한 번의 인증으로 여러 서비스에 접근 가능합니다.
- 단점:
- KDC 의존성: KDC에 장애가 발생하면 전체 시스템 인증이 마비됩니다.
- 시간 동기화 필요: 모든 시스템의 시간이 동기화되어야 정상적으로 동작합니다.
- 설정의 복잡성: 초기 구성 및 관리가 복잡합니다.
OAuth - "비밀번호를 주지 않고 권한만 위임하기"
OAuth(Open Authorization) 는 '인증'보다는 '권한 부여(Authorization)' 를 위한 개방형 표준 프로토콜입니다. 사용자가 자신의 비밀번호를 직접 다른 서비스에 제공하지 않고도, 특정 서비스가 가진 자신의 정보나 기능에 대한 접근 권한을 다른 애플리케이션에 안전하게 위임할 수 있도록 해줍니다.
예를 들어, '구글 계정으로 로그인하기' 기능이 바로 OAuth를 사용하는 대표적인 사례입니다. 사용자는 자신의 구글 비밀번호를 해당 웹사이트에 알려주지 않고도, 구글이 사용자의 신원을 대신 인증해주고 웹사이트는 그 결과를 신뢰하여 로그인을 허용합니다.
- 핵심 개념: 사용자의 자원(데이터)에 대한 접근 권한을 제3자 애플리케이션에 안전하게 위임합니다.
- 주요 용어:
- Resource Owner: 사용자 (자원의 소유자)
- Client: 제3자 애플리케이션 (권한을 요청하는 서비스)
- Resource Server: 자원이 저장된 서버 (예: 구글 서버)
- Authorization Server: 권한을 부여하고 Access Token을 발급하는 서버
- 동작 방식 (Authorization Code Grant Type 기준):
- 사용자가 Client에서 '구글로 로그인' 버튼을 클릭합니다.
- Client는 사용자를 Authorization Server로 보냅니다.
- 사용자는 Authorization Server에 로그인하고, Client에게 권한을 부여할지 동의합니다.
- Authorization Server는 Client에게 임시 코드(Authorization Code)를 발급합니다.
- Client는 이 임시 코드를 가지고 다시 Authorization Server에 Access Token을 요청합니다.
- Authorization Server는 코드를 검증하고 Client에게 Access Token을 발급합니다.
- Client는 Access Token을 사용하여 Resource Server에 있는 사용자 정보에 접근합니다.
- 장점:
- 높은 보안성: 사용자의 비밀번호가 노출되지 않습니다.
- 권한 범위 제어: 특정 기능이나 정보에 대한 접근 권한만 선택적으로 위임할 수 있습니다.
- 표준화: 널리 사용되는 개방형 표준 프로토콜로 확장성과 호환성이 좋습니다.
- 소셜 로그인 지원: 구글, 페이스북, 네이버 등의 외부 계정을 활용한 간편 로그인이 가능합니다.
- 단점:
- 복잡한 구현: 프로토콜의 흐름이 다른 방식에 비해 복잡합니다.
정보처리기사 실기 대비 문제
문제를 불러오는 중...
문제를 불러오는 중...
문제를 불러오는 중...
문제를 불러오는 중...
문제를 불러오는 중...