기업 인증 연동 · SSO 연동 실전 · 퀴즈
퀴즈: SSO 연동 실전
문항 7개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
OIDC 에서 `state` 와 `nonce` 의 역할을 바르게 구분한 것은?
- state 는 토큰 재사용을 막고, nonce 는 콜백 위조를 막는다
- 둘 다 콜백 위조를 막는 같은 목적이라 하나만 보내도 충분하다
- state 는 서버 세션 식별자이고, nonce 는 서명에 쓰는 난수 시드다
- state 는 콜백이 내 요청에 대한 것인지, nonce 는 ID 토큰에 같은 값이 있는지를 본다
OIDC 가 토큰을 브라우저 URL 로 직접 주지 않고 인가 코드를 한 번 거치는 이유는?
- 코드가 토큰보다 짧아서 URL 길이 제한을 피하려고
- 토큰이 브라우저 히스토리·리퍼러·서버 로그에 남는 것을 피하고, 실제 토큰은 서버 대 서버로 받기 위해
- IdP 의 부하를 줄이기 위해
- 모바일 앱을 지원하기 위해
JWT 검증 코드에서 토큰의 `alg` 헤더 값을 그대로 믿으면 안 되는 이유는?
- alg 문자열 길이 제한이 없어 지나치게 긴 값으로 파서를 멈추게 할 수 있어서
- alg 는 선택 항목이라 없을 수 있고, 없을 때의 기본값이 구현마다 달라서
- alg 는 서명 대상 밖에 있어 값을 읽어도 신뢰할 수 없기 때문에
- 공격자가 alg 를 none 으로 바꾸거나 알고리즘을 바꿔치기해 검증을 무력화할 수 있어서
XML Signature Wrapping(XSW) 공격이 위험한 이유는?
- 서명 검증이 실패하도록 만들어 서비스를 마비시킨다
- XML 파서의 메모리를 고갈시킨다
- 인증서를 위조한다
- 서명 검증은 통과하지만 애플리케이션이 실제로 읽는 노드는 서명되지 않은 가짜가 되게 만든다
SAML 서명 인증서 만료가 특히 위험한 이유는?
- 서비스가 느려진다
- 기존 세션이 유지되어 보안 위험이 커진다
- 모든 사용자의 로그인이 동시에 실패해 전면 장애가 된다
- 인증서를 재발급할 수 없다
clock skew 허용치(60~120초)를 두지 않았을 때 나타나는 전형적인 증상은?
- 특정 서버로 요청이 갈 때만 간헐적으로 로그인이 실패한다
- 모든 로그인이 항상 실패한다
- 로그인은 되지만 권한이 없다
- 토큰이 만료되지 않는다
레거시 시스템은 SAML 만 지원하고 신규 시스템은 OIDC 로 가고 싶을 때 IdP 를 활용하는 방법은?
- 프로토콜별로 IdP 를 따로 두고 사용자 디렉터리만 공유하도록 구성한다
- 레거시를 먼저 OIDC 로 전환해야 하며, 그 전에는 SSO 를 붙일 수 없다
- 한 IdP 에 SAML·OIDC 클라이언트를 함께 등록해 같은 세션에서 각각 받아 간다
- 두 프로토콜은 세션 모델이 달라 같은 IdP 에서 함께 쓸 수 없다