목차
SSO
SSO(Single Sign On)는 사용자가 하나의 ID/Password로 여러 응용시스템을 접근할 수 있는 기술로써 여러 개의 사이트를 운영하는 대기업이나 인터넷 관련 기업이 각각의 회원을 통합 관리할 필요성이 생김에 따라 개발된 사용자 인증 방식 중 하나이다.
SSO 개요
SSO 정의
SSO(Single Sign On)는 사용자가 하나의 ID/Password로 여러 응용시스템을 접근할 수 있는 기술로써 여러 개의 사이트를 운영하는 대기업이나 인터넷 관련 기업이 각각의 회원을 통합 관리할 필요성이 생김에 따라 개발된 사용자 인증 방식 중 하나이다.
SSO 서비스 개념(이미지)
SSO 도입에 따른 기대 효과
SSO 도입에 따른 기대 효과는 다음과 같다.
SSO 기대 효과(이미지)
SSO 주요 기능 및 특징
SSO 주요 기능
SSO는 사용자 계정관리, 통합인증, 접근제어 기능을 구현할 수 있으며 일반적으로 다음과 같은 주요 기능을 보유하고 있다.
항목 | 주요 기능 |
---|---|
사용자 관리 | • 멀티 도메인간의 다양한 애플리케이션간의 통합인증(SSO)을 제공 • 조직별 사용자별 사용자 정보에 대한 통합관리 및 사용자별 시스템 접근 권한 관리 기능 제공 • 자원에 대한 접근 권한 제어 모델을 구현할 수 있는 기초 환경 제공 |
암호 관리 | • 암호 분실 시 사용자에 의한 일괄 변경 기능 제공 |
데이터 암호화 관리 | • 사용자 인증 정보 노출을 방지하기 위하여 데이터를 암호화한 송수신 기능 제공 |
정책기반 관리 | • 인증방법, ID규칙, 패스워드 제약사항, 접근 위치/시간 제약 등의 정책을 정의하여 조직, 사용자, 자원에 일괄 적용할 수 있는 관리 기능 제공 |
SSO 주요 특징
SSO의 주요 특징은 다음과 같다.
항목 | 주요 기능 |
---|---|
사용자 편의성 증대 | • 한번의 사용자 인증을 통한 모든 서비스 자원 사용으로 로그인 편의성 및 접근성 향상 • 강화된 인증 정책 및 인증 메커니즘(예, 인증서 이용)으로 접근 보안성 강화 |
애플리케이션 운영 관리의 효율성 증대 | • 사용자 인증 및 권한 보안 정책에 대한 일관성 확보로 시스템 개발 및 솔루션 도입 시 신속한 적용 및 비용 절감 효과 발생 |
개발 효율성 증대 | • 애플리케이션 개발 시 통합 인증/자원 통제 모듈을 사용할 수 있으므로 개발자는 Business Logic개발에만 전념함으로써 애플리케이션 품질 향상 및 중복된 모듈 개발 투자방지로 인한 개발 비용/시간 감소 |
SSO 구현 모델 및 기법
SSO 구현 모델
일반적으로 사용되고 있는 SSO에서 기본적으로 이용되는 내부 아키텍처는 다음과 같은 4가지 모델로 구분될 수 있다.
항목 | 주요 기능 |
---|---|
SSO Delegation(인증 대행) Model | • SSO 대상 애플리케이션에서 사용되는 사용자 인증방법을 별도의 SSO Agent가 대행해주는 방식 • SSO Delegation은 대상 애플리케이션의 인증 방식을 변경하기 어려울 때 많이 사용되며 대상 애플리케이션의 인증 방식을 전혀 변경하지 않고, 사용자의 대상 애플리케이션 인증 정보를 에이전트가 관리해 사용자 대신 로그온 해주는 방식임 • Target Server 1을 로그온 할 때 User1이 alice/alice라는 ID/ PWD가 필요하다면, 에이전트가 이 정보를 가지고 있고, User1이 Target Service 1에 접근할 때 에이전트가 대신 alice/alice ID/PWD 정보를 전달해서 로그온 시켜줌 |
SSO Propagation(인증정보 전달) Model | • SSO시스템과 신뢰관계를 토대로 사용자를 인증한 사실을 전달받아 SSO를 구현하는 방식 • SSO Propagation은 통합 인증을 수행하는 곳에서 인증을 받아 대상 애플리케이션으로 전달할 토큰(Token)을 발급 받아 대상 애플리케이션에 사용자가 접근할 때 토큰을 자동으로 전달해 대상 애플리케이션이 사용자를 확인할 수 있도록 하는 방식임 • 웹 환경에서는 쿠키(Cookie)라는 기술을 이용해 토큰을 자동으로 대상 애플리케이션에 전달할 수 있다. 이러한 웹 환경의 이점으로 웹 환경에서의 SSO는 대부분 이 모델을 채택하고 있음 |
Delegation & Propagation 방식 | • 웹 환경이라고 하더라도 Propagation 방식이 모두 적용될 수는 없으며, 특히 웹 애플리케이션의 변경이 전혀 불가능하고 사용자 통합이 어려운 경우 Delegation 방식을 사용하게 됨 • 대상 애플리케이션들이 많이 있고 애플리케이션의 특성들이 다양한 경우 각 애플리케이션에 Delegation 방식과 Propagation 방식을 혼용해서 전체 시스템의 SSO을 구성함 |
Web 기반 One Cookie Domain SSO | • SSO 대상 서비스와 응용 애플리케이션들이 하나의 Cookie Domain안에 존재할 때 사용되는 일반적인 기업 내부의 컴퓨팅 환경에서 사용 • 통합 인증을 받은 사용자는 토큰을 발급받게 되고, 이 토큰은 Cookie Domain에 Cookie로 설정되어 Cookie Domain 내의 다른 서비스로 접근할 때 자동으로 토큰을 서비스에 제공하게 되며 서비스에서 동작되는 SSO 에이전트는 토큰으로부터 사용자 신원을 확인하고 요청된 자원에 대한 접근을 허가 해 줌 |
Web 기반 Multi Cookie Domain SSO | • SSO 대상 서비스와 응용 애플리케이션들이 여러 도메인으로 분산돼 있을 경우다. Multi Domain 환경인 경우에는 사용자 인증 및 토큰의 발행을 위한 마스터 에이전트가 존재함 • 마스터 에이전트는 각 서비스 에이전트의 사용자 인증을 위임 받아 수행하며 인증된 사용자에게는 토큰을 발급하고 각 서비스 에이전트에게 안전하게 전달함 • 에이전트가 해당 토큰을 자신의 Domain에서 Cookie로 저장해 사용할 수 있도록 함 • 각 서비스 에이전트의 신뢰도 및 SSO 시스템의 보안 레벨에 따라 다음과 같이 두 가지 방식으로 서비스될 수 있음 - One Token for All Multi Cookie Domain: - Token for each cookie domain & One Token for Master Agent |
SSO 구현 기법
SSO를 구현하고자 할 때 구현하는 방식에 따라 다음과 같은 3가지 형태로 구성할 수 있다.
항목 | 주요 기능 |
---|---|
클라이언트 기반(Client-based) | • Vince Sorensesn사의 쉐어웨어 소프트웨어인 Password Plus와 같은 비밀번호 관리 도구를 이용하면 사용자는 자체 시스템에 수많은 ID와 비밀번호를 '기억'시키고 PC에서 자동으로 입력하게 할 수 있음 • 이 과정은 사용자가 설치하고 사용하기에 비교적 편리한 장점이 존재하지만 새로운 애플리케이션이나 사이트, 또는 커뮤니티가 추가될 때마다 정보가 갱신되어야 하는 문제점이 존재하며 비밀번호 조합에는 업계 표준이 없기 때문에 문제가 될 수 있음 • PC 중심의 솔루션이라 평소의 작업 장소가 아닌 경우(예를 들어 여행 중)에는 로그인하는 데 번거로워지는 등 사용자 입장에서는 융통성이 부족하며 기업 네트워크 관리자에게는 조직 전체적으로 통제할 수 있는 방법이 없는 문제점이 존재함 |
서버 기반(Server-based) | • 중앙 서버에서 각기 다른 모든 비밀번호를 관리할 수 있는 형태로 사용자는 업데이트와 관련한 번거로운 작업(예를 들어, 직무가 변하면 새로운 권한을 인증받는 것)을 하지 않아도 되며, 다양한 PC에서 접근할 수 있는 장점이 존재함 • 관리자는 비밀번호의 수준을 관리(예를 들어, 사소한 비밀번호의 삭제, 주기적 갱신, 필요시 접속 중단 등)할 수 있으며 서버 기반 시스템의 경우에는 사용자가 여행 중이거나 다른 PC를 사용할 때에도 사용자가 편리하게 이용할 수 있음 • 서버 기반 기법은 클라이언트 시스템에 대한 보안과 관리 문제뿐만 아니라 사용자와 서버 사이에 존재하는 전반적인 환경까지 처리해야 한다는 것이 제약이라고 할 수 있으며 현재 업계 표준이 없기 때문에 더 복잡한 문제점이 존재함 • 서버 기반은 사용자가 온라인에서 하는 모든 활동은 서버를 통하기 때문에, 서버는 항상 사용할 수 있도록 가용성이 보장되어야 함 |
서비스 기반(Service-based) | • 비밀번호를 하나의 서비스로 제공할 수도 있는 형태로 예를 들어, 마이크로소프트 패스포트(Microsoft Passport)는 기업들 가입의 비밀번호 잡무를 처리하기 위해 중앙집중 서버, 쿠키, 표준화된 구조를 이용하는 형태로 사용자 입장에서는 한번 마이크로소프트 서버에 접속하면 여러 웹사이트에 접속하거나 거래할 때 그 인증이 유지되는 형태임 • 서비스 기반은 수많은 사이트들이 특정 서비스의 제공업자와 제휴된 경우에 사용자에게 편리한 장점이 존재함 • 다양한 사이트에서 일어나는 사용자들의 활동을 포착할 수 있어서 더 심화된 고객 프로필로 연결될 수 있다는 점이 존재하여 기업들의 참여를 유도할 수 있는 장점이 존재함 • 그러나, 이런 기업측의 이점은 이미 개인정보 보호와 관련된 문제 발생 소지가 존재하고 있음 |
SSO 보안 기술
SSO관련 주요 보안 요구 사항
일반적으로 웹에서 사용되는 토큰은 쿠키를 통해 전달되므로 외부에 노출되는 정보이기 때문에 보안을 위해서는 토큰이 네트워크에서 노출되어서는 안되지만, 비용 및 관리상의 이유로 허용되고 있는 실정이다.
하지만, 이러한 토큰을 통해 토큰안에 포함하고 있는 정보까지 외부에 노출하는 것은 심각한 결함을 제공한다. 토큰의 네트워크 구간에서의 정보 노출 및 위•변조를 방지하기 위해 여러 보안기술들이 사용되고 있다.
구분 | 설명 |
---|---|
Data Confidentiality | • 토큰은 주요 암호 알고리즘(AES, SEED)과 128bit 이상의 키로 암호화돼 보호되어야 함 |
Data Integrity | • 토큰은 MAC (Message Authentication Code) 등을 포함해 데이터의 무결성을 보장해야 함 |
Replay Attack Protection | • 토큰은 사용자와 대상 애플리케이션 사이에 전달되는 인증 정보이며 일반적으로 토큰은 네트워크에 노출되며, 노출된 토큰을 사용해 다른 사용자가 인증을 받고 들어올 수 있음(Replay Attack). |
특히, 웹 환경에서 이러한 문제점이 중요한 이슈로 등장하고 있기 때문에 이러한 문제점을 근본적으로 해결하기 위해서는 토큰을 네트워크에 노출시키지 않아야 한다.