보안

SSO(Single Sign-On), SAML, OAuth, 커버로스

스윙스윙 2021. 10. 28. 16:28

▣ SSO(Single Sign-On), SAML, OAuth, 커버로스

 

■ SSO(Single Sign-On)

  -  한번의 로그인으로 접근하고자 하는 많은 정보시스템에 재인증 절차 없이 접근할 수 있는 기능

     (한개의 Login ID와 Password로 여러 시스템 접근)

  - 기업의 정보 시스템 다양화에 따른 관리의 효율화를 제공하고 중앙집중적인 사용자 관리를 통해 보안 기능의 증대

  -  다른 사이트(또는 앱) 에서 로그인 및 인증 부분만 따로 사용하는 것 (API, 모듈 등)

  -  통합 인증, 단일 계정 로그인, 단일 인증

 

■ SAML(Security Asserting Markup Language)

  -  네트워크를 통해 여러 컴퓨터에서 보안 자격 증명을 공유할 수 있도록 하는 공개 표준

  -  XML 을 사용하며, cross domain(크로스 도메인) 간 SSO 구현이 가능

 

■ OAuth

  -  사용자 인증을 위해 다른 앱 또는 웹사이트의 사용자 인증 방식으로 허락(인가) 받는 프로토콜

  -  해당 앱의 ID/PW 로 직접 로그인하는 방식과는 범위의 제약이 존재

  -  토큰 인증 방식 사용

 

■ 커버로스 프로토콜(Kerberos Protocol)

커버로스는 티켓(ticket) 기반의 컴퓨터 네트워크 인증 프로토콜 / 미국 MIT대의 Athena Project에 의해 개발

암호화 알고리즘 ver4 : DES 사용 (fade-out 진행중, 5로 update 권고), ver5 : DES 외의 다른 알고리즘도 사용 가능

SSO 시스템의 종류로써 대칭키 암호화 방식 및 종단간 암호화를 사용

Needham-Schroeder의 신뢰할 수 있는 제3자 프로토콜에 근거한 모델

 

 

▶ 티켓에 포함하는 대표적인 정보

유저 아이디
유저 호스트의 IP 주소
타임 스탬프(time stamp, 시간 기록)
티켓 수명을 정의하는 값
세션 키

* 이러한 정보들을 담고 있는 티켓은 티켓을 발급하는 서버의 비밀 키(secret key)로 암호화(encrypt)

 

 

 

KDC (Key Distribution Center) :Kerberos에서 인증을 위해 사용하는 티켓(Ticket)을 발행하는 서비스(AG, TGS, DB)

AS(Authentication Server) : 요청을 보내는 유저의 아이디와 패스워드를 인증하고, TGS(Ticket Granting Service)와 통신하기 위한 티켓을 유저에게 발급해주는 서버

TGS : SS(Service Server, =Resource Server)와 통신하기 위한 티켓을 유저에게 발급해주는 서비스

SS :  유저가 최종적으로 통신하고자 하는 목적지 서버

 

▶ 커버로스의 인증 절차

 1) 클라이언트가 AS에 TGT(Ticket Granting Ticket) 요청

 2) AS는 암호화된 session key와 TGT 응답

 3) 클라이언트는 TGT 이용하여 TGS에 Ticket 요청

 4) TGS는 Ticket과 Session Key 응답

 5) 클라이언트는 응용서버에 세션키로 암호화 한 Ticket전달

 6) 응용서버는 Ticket검증 후 인증완료

 

▶ 단점

패스워드 유출시 무의미(패스워드 추측 공격에 취약)
인증값, 티켓 등이 임시로 사용자에게 저장되므로 탈취당할수 있음
인증서버 또는 티켓발급 서버(KDC)에 문제발생시 전체 인증에 문제가 발생할 수 있음(단일오류지점(SPOF))
사용자 패스워드 변경시 비밀키도 변경해야됨


2018년 106번

정답 : 1번

SSO는 중앙 시스템을 통해 단일화된 인증 및 접근 제어 정책을 관리하기 위한 목적을 가지고 있음

 

 한번의 로그인으로 접근하고자 하는 많은 정보시스템에 재인증 절차 없이 접근할 수 있는 기능

   (한개의 Login ID와 Password로 여러 시스템 접근)

- 기업의 정보 시스템 다양화에 따른 관리의 효율화를 제공하고 중앙집중적인 사용자 관리를 통해 보안 기능의 증대

 


2013년 104번

정답 : 1번

커버로스 시스템에 대한 문제로 대칭키 기반의 인증시스템임, 키분배 센터(KDC)를 사용함

 

 커버로스 프로토콜(Kerberos Protocol)

커버로스는 티켓(ticket) 기반의 컴퓨터 네트워크 인증 프로토콜 / 미국 MIT대의 Athena Project에 의해 개발

암호화 알고리즘 ver4 : DES 사용 (fade-out 진행중, 5로 update 권고), ver5 : DES 외의 다른 알고리즘도 사용 가능

SSO 시스템의 종류로써 대칭키 암호화 방식 및 종단간 암호화를 사용

Needham-Schroeder의 신뢰할 수 있는 제3자 프로토콜에 근거한 모델

 

▶ 티켓에 포함하는 대표적인 정보

유저 아이디
유저 호스트의 IP 주소
타임 스탬프(time stamp, 시간 기록)
티켓 수명을 정의하는 값
세션 키

* 이러한 정보들을 담고 있는 티켓은 티켓을 발급하는 서버의 비밀 키(secret key)로 암호화(encrypt)

 

 

 

KDC (Key Distribution Center) :Kerberos에서 인증을 위해 사용하는 티켓(Ticket)을 발행하는 서비스(AG, TGS, DB)

AS(Authentication Server) : 요청을 보내는 유저의 아이디와 패스워드를 인증하고, TGS(Ticket Granting Service)와 통신하기 위한 티켓을 유저에게 발급해주는 서버

TGS : SS(Service Server, =Resource Server)와 통신하기 위한 티켓을 유저에게 발급해주는 서비스

SS :  유저가 최종적으로 통신하고자 하는 목적지 서버

 

▶ 커버로스의 인증 절차

 1) 클라이언트가 AS에 TGT(Ticket Granting Ticket) 요청

 2) AS는 암호화된 session key와 TGT 응답

 3) 클라이언트는 TGT 이용하여 TGS에 Ticket 요청

 4) TGS는 Ticket과 Session Key 응답

 5) 클라이언트는 응용서버에 세션키로 암호화 한 Ticket전달

 6) 응용서버는 Ticket검증 후 인증완료

 

▶ 단점

패스워드 유출시 무의미(패스워드 추측 공격에 취약)
인증값, 티켓 등이 임시로 사용자에게 저장되므로 탈취당할수 있음
인증서버 또는 티켓발급 서버(KDC)에 문제발생시 전체 인증에 문제가 발생할 수 있음(단일오류지점(SPOF))
사용자 패스워드 변경시 비밀키도 변경해야됨

 


2016년 118번

정답 : 4번

커버로스(Kerberos)는 공개키가 아닌 비밀키 기반의 인증 프로토콜임

 

 커버로스 프로토콜(Kerberos Protocol)

커버로스는 티켓(ticket) 기반의 컴퓨터 네트워크 인증 프로토콜 / 미국 MIT대의 Athena Project에 의해 개발

암호화 알고리즘 ver4 : DES 사용 (fade-out 진행중, 5로 update 권고), ver5 : DES 외의 다른 알고리즘도 사용 가능

SSO 시스템의 종류로써 대칭키 암호화 방식 및 종단간 암호화를 사용

Needham-Schroeder의 신뢰할 수 있는 제3자 프로토콜에 근거한 모델

 

▶ 티켓에 포함하는 대표적인 정보

유저 아이디
유저 호스트의 IP 주소
타임 스탬프(time stamp, 시간 기록)
티켓 수명을 정의하는 값
세션 키

* 이러한 정보들을 담고 있는 티켓은 티켓을 발급하는 서버의 비밀 키(secret key)로 암호화(encrypt)

 

 

 

KDC (Key Distribution Center) :Kerberos에서 인증을 위해 사용하는 티켓(Ticket)을 발행하는 서비스(AG, TGS, DB)

AS(Authentication Server) : 요청을 보내는 유저의 아이디와 패스워드를 인증하고, TGS(Ticket Granting Service)와 통신하기 위한 티켓을 유저에게 발급해주는 서버

TGS : SS(Service Server, =Resource Server)와 통신하기 위한 티켓을 유저에게 발급해주는 서비스

SS :  유저가 최종적으로 통신하고자 하는 목적지 서버

 

▶ 커버로스의 인증 절차

 1) 클라이언트가 AS에 TGT(Ticket Granting Ticket) 요청

 2) AS는 암호화된 session key와 TGT 응답

 3) 클라이언트는 TGT 이용하여 TGS에 Ticket 요청

 4) TGS는 Ticket과 Session Key 응답

 5) 클라이언트는 응용서버에 세션키로 암호화 한 Ticket전달

 6) 응용서버는 Ticket검증 후 인증완료

 

*RFC(Request for Comments)란 "비평을 기다리는 문서" 라는 의미로 컴퓨터 네트워크 공학 등에서 인터넷 기술에 적용 가능한 새로운 연구, 혁신, 기법 등을 아우르는 메모를 나타냄

RFC는 IETF, IRTF, IAB 와 같은 다양한 기관뿐만 아니라 개인 저자도 작성할 수 있음

모든 RFC 문서가 표준은 아니지만인터넷국제표준화기구(IETF)는 일부 RFC를 인터넷 표준으로 받아들이기도 함