공시 한 판

정보보호론 개념서 · 사용자 인증과 접근통제

SSO(단일 사인온)와 커버로스

설명 영상 SSO와 커버로스 · 2:42

핵심 정리

SSO는 여러 정보 시스템을 한 번의 인증으로 재인증 없이 이용하게 하는 통합 인증 기능이다. 사용자가 시스템마다 따로 로그인하는 번거로움을 줄이고, 인증 정보를 한곳에서 다룬다는 데 의의가 있다. SSO는 한 번의 인증으로 다수의 시스템에 접근할 수 있게 하는 인증 시스템이다. 인증을 한 번으로 모으는 구조가 이 개념의 뼈대다.

커버로스는 SSO를 설명할 때 대표적인 구현 방식으로 흔히 다루는 체계다. 커버로스는 신뢰하는 제3자가 인증 서비스를 제공하는 중앙집중형 인증 체계다. 인증 서비스가 제3자 한곳에 모여 있으므로, 사용자는 이용할 때마다 자격을 따로 증명하는 대신 발급받은 티켓으로 여러 서비스를 이용한다.

커버로스에서 사용자는 인증 서버에 TGS 이용을 위한 TGT를 요청한다. 클라이언트가 AS로부터 받은 TGT는 TGS 요청 메시지에 포함된다. TGS는 TGT를 확인한 뒤 원하는 서비스 서버에서 사용할 티켓을 발급한다. 한 번 얻은 인증으로 여러 서비스를 연달아 이용할 수 있는 것은 이 절차 덕분이다.

커버로스는 대칭키 기반 티켓으로 인증하며 패스워드를 직접 전송하지 않는다. 패스워드를 주고받지 않으므로 패스워드 노출 위험을 줄이는 것이 이 방식의 핵심이다. 대칭키 기반 티켓 인증

SSO는 한 번의 인증 결과를 여러 시스템에서 사용하는 구조이므로, 인증 체계 하나의 안전성이 전체 이용의 안전성을 좌우한다. 따라서 키 관리와 티켓을 재사용할 수 있는 범위가 함께 중요한 쟁점이 된다.

자세히

커버로스의 구성과 적용 범위

커버로스는 네트워크를 이용한 인증 프로토콜이다. 이 프로토콜은 MIT에서 개발되어 공공 및 상업 영역에서 사용된다. 기본적으로 네트워크 환경에서 여러 서버가 서로 신뢰하는 인증 절차를 거친다.

구성 요소는 클라이언트, 응용 서버, 커버로스 서버(키분배센터)로 나뉜다. 같은 체계를 인증 서버, 티켓 발급 서버, 다수의 서비스 서버로 나누어 설명하기도 한다. 두 설명 모두 인증을 맡는 쪽과 서비스를 받는 쪽을 구분한다는 점에서 같다.

구분SSO(커버로스)OAuth
핵심 목적한 번의 인증으로 여러 시스템 이용다른 웹 사이트에 자원 접근 권한 위임
패스워드직접 전송하지 않음비밀번호를 직접 공유하지 않음

티켓 구조와 키

커버로스 티켓에는 사용자 주체 이름, 즉 클라이언트 ID가 포함된다. 티켓에 누구의 것인지 식별하는 값이 있어야 서비스 서버가 요청자를 확인할 수 있다.

버전 4 티켓의 구성요소는 서비스 주체 이름, 사용자 주체 이름, 사용자 호스트 IP 주소, 시간 기록, 티켓 수명, 세션 키 사본이다. 티켓 안에 세션 키 사본이 포함된다는 점이 구성요소를 묻는 선지의 핵심이다.

AS는 TGS 접속용 세션키와 TGS에 제시할 티켓을 암호화하여 클라이언트에게 돌려보낸다. 클라이언트는 이 두 가지를 받아 TGS에 요청할 때 사용한다. 세션키는 클라이언트와 TGS 사이의 통신에 쓰이고, 티켓은 TGS에 그대로 제시하므로 두 요소의 역할을 구분해야 한다.

인증 절차와 TGT 재사용

커버로스 인증 서버가 발급한 TGT는 유효기간 동안 재사용할 수 있다. 따라서 사용자는 유효기간 안에 인증 서버에 다시 요청하지 않고도 같은 TGT로 TGS에 여러 번 요청할 수 있다. TGT 유효기간 내 재사용

TGS 요청 메시지에는 요청하려는 서비스 서버 V의 식별자가 포함된다. TGS는 이 식별자를 보고 어느 서비스 서버용 티켓을 만들지 정한다. TGT는 TGS에 다시 인증하지 않고 서비스 티켓을 요청할 때 쓰고, 서비스 티켓은 응용 서버에 직접 제시할 때 쓴다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 절 읽기