Identity, Access & Trust
디지털 환경에서 주체를 식별하고 적절한 권한을 부여하며 시스템 간의 신뢰 관계를 형성하는 인증, 인가 및 ID 관리 물리와 패턴을 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts6 min read
1. Overview
신원, 접근 및 신뢰(Identity, Access & Trust, IAT)는 "당신은 누구인가?"와 "당신은 무엇을 할 수 있는가?"라는 두 가지 근본적인 질문에 기술적으로 답하는 방식을 다룹니다.
모든 디지털 상호작용은 신뢰(Trust)를 바탕으로 시작됩니다. 학습자는 사용자를 식별하는 인증(Authentication)과 자원 접근 허용 범위를 결정하는 인가(Authorization)의 물리적 선결 조건을 배웁니다. 또한, 현대적 웹의 표준인 OAuth 2.0과 OpenID Connect(OIDC)를 통한 신원 합당성(ID Federation), 그리고 다중 요소 인증(MFA)의 신뢰 강화 메커니즘을 학습하여 시스템의 경계를 넘나드는 안전한 접근 관리 체계를 구축합니다.
2. Scope & Boundaries
In-Scope
- Authentication Mechanics: 비밀번호 해싱, 생체 인증, MFA 및 인증 토큰(JWT, Session) 물리
- Authorization Models: RBAC(역할 기반), ABAC(속성 기반) 및 정책 기반 접근 제어
- Federated Identity: OAuth 2.0 흐름, OIDC 신원 계층 및 SSO(Single Sign-On) 역학
- Identity Life-cycle: 사용자 가입, 탈퇴, 권한 회수 및 디렉토리 서비스(LDAP/AD) 관리
Out-of-Scope
- 암호화 알고리즘 자체의 수학적 구현 (10-01 SFC 영역으로 위임)
- 네트워크 패킷 필터링 기반의 방화벽 설정 (10-02 IPS 영역으로 위임)
Boundaries
- IAT vs. Application Security: 10-03 노드가 '코드 자체의 취약점'에 집중한다면, IAT는 '유효한 사용자에게 정해진 만큼의 권한만 제공하는 관리 규칙과 인프라'에 집중합니다.
3. Counterexample
- 단순히 로그인 화면을 만들고 DB의 회원 정보와 대조하는 기능을 구현하는 것은 IAT 학습이 아닙니다. 왜 세션(Session) 기반 인증이 분산 서버 환경에서 확장성 한계를 겪는지 설명하고, **무상태(Stateless) 토큰(JWT)**을 사용할 때 발생하는 물리적 '권한 즉시 회수'의 어려움과 그 기술적 대응책(Refresh Token 등)을 논리적으로 입증할 수 있어야 합니다.
4. Prerequisites
- 보안 기초 및 암호학 (Basic): 해시 함수와 비대칭키(디지털 서명) 기본 용도 이해가 필요합니다. (10. SFC)
- 웹 프로토콜 및 API 패러다임 (Recommended): HTTP 헤더와 쿠키 처리 방식에 대한 지식이 권장됩니다. (08. WAP)
5. Learning Map
- Who are you?: 주체를 식별하는 다양한 인증 수단의 물리적 강도와 특징을 익힙니다.
- Permission Guard: 식별된 주체에게 허용된 행동 범위를 제어하는 논리 모델을 배웁니다.
- Across the Border: 우리 시스템을 넘어 외부 시스템과 신원 정보를 공유하는 표준 프로토콜을 이해합니다.
- Contextual Trust: 위치, 기기 상태 등 상황에 따라 신뢰 수준을 동적으로 조정하는 고급 관리 기법을 탐구합니다.
6. Learning Topics
Basic
Core: 인증과 인가의 기본 물리 (Auth vs. Auth)
- Why to Learn: 시스템 보안의 가장 기초인 사용자 식별 및 접근 통제의 개념을 명확히 하여 구현 실수를 방지하기 위함입니다.
- What to Learn:
- Authentication(ID 확인) vs Authorization(권한 부여)의 물리적 단계 구분
- 비밀번호 저장 물리: 솔팅(Salting) 및 키 스트레칭(Key Stretching)
- 다중 요소 인증(MFA): 지식, 소유, 존재 기반 인증의 결합 시너지
- How to Learn:
- 간단한 로그인 폼을 구현하고, DB에 평문이 아닌 해시된 비밀번호가 저장되는 과정을 실습
- 휴대폰 앱을 통한 OTP(TOTP) 인증 흐름을 수동으로 추적하여 시각화
- Implement: 안전한 사용자 등록 및 로그인 절차를 기술한 표준 시퀀스 다이어그램
Recommended
Core: 접근 제어 모델과 RBAC (Access Models)
- Why to Learn: 수동적인 권한 관리를 넘어, 대규모 조직에서도 효율적이고 일관된 권한 통제 체계를 갖추기 위해서입니다.
- What to Learn:
- DAC(임의적) vs MAC(강제적) 접근 제어의 물리적 특징
- RBAC(역할 기반 접근 제어): 역할(Role)을 통한 권한 그룹화 및 할당 논리
- 최소 권한 원칙(Principle of Least Privilege)의 시스템적 적용
- How to Learn:
- 특정 조직(예: 학교)의 구성원별 권한(학생, 교수, 관리자)을 RBAC 테이블로 설계해보기
- 잘못된 권한 할당으로 인해 발생하는 권한 상승(Privilege Escalation) 공격 시나리오 분석
- Implement: 업무 기능별 역할 정의 및 매핑을 포함한 권한 매트릭스 설계서
Practical
Core: 현대적 신원 연동 (OAuth 2.0 & OIDC)
- Why to Learn: '구글로 로그인'과 같은 외부 신원 시스템을 안전하게 활용하고, 마이크로서비스 간 신뢰 관계를 구축하기 위함입니다.
- What to Learn:
- OAuth 2.0의 4가지 주요 흐름(Authorization Code 등)과 물리적 구성 요소
- JWT(JSON Web Token)의 구조(Header, Payload, Signature) 및 무결성 검증
- OpenID Connect(OIDC)를 통한 인증 계층 추가 서비스 역학
- How to Learn:
- Google 또는 GitHub API 콘솔에서 Client ID를 발급받아 내 서비스에 '소셜 로그인' 연동 실습
- 인증 코드가 액세스 토큰으로 교환되는 전 과정을 HTTP 요청 레벨에서 캡처 및 분석
- Implement: JWT 토큰을 활용한 API 요청 인증 및 유효성 검사 로듈
Advanced
Core: 디렉토리 서비스와 기업 통합 (IAM & SSO)
- Why to Learn: 수만 명의 사용자가 있는 대기업 환경에서 통합된 신원 관리(SSO)를 구현하기 위해서입니다.
- What to Learn:
- LDAP 및 Active Directory(AD)의 계층적 데이터 물리 구조
- SAML 2.0: XML 기반의 기업용 SSO 표준 및 신뢰 형성 논리
- SCIM(System for Cross-domain Identity Management)을 통한 자동 계정 프로비저닝
- How to Learn:
- 오픈소스 LDAP 서버(OpenLDAP 등)를 구축하고 사용자 데이터를 원격으로 조회하는 실습
- 여러 도메인 간에 세션 정보를 공유하여 재로그인 없이 서비스를 이용하는 SSO 흐름도 분석
- Implement: 이기종 시스템 간 통합 로그인을 위한 기업용 IAM 아키텍처 제안서
7. Terminology
8. References
Primary References
- [P3] CyBOK - Authentication, Authorization & Accountability (AAA) — Identity standards.
- [P1] CS2023 - SEC/Identity and Trust Management — Foundational concepts.
Secondary References
- [O'Reilly - OAuth 2 in Action] Justin Richer — Detailed protocol guide.
- [Identity in the Age of Cloud] Various authors — Modern IAM strategies.
Industry References
- [OAuth 2.0 Specification (RFC 6749)] — Official IETF standard.
- [Microsoft Entra ID (Azure AD) Documentation] — Real-world enterprise IAM implementation.
9. Final Checklist
Primary Checklist
- 인증(Authentication)이 성공했더라도 적절한 인가(Authorization) 절차가 누락되었을 때 발생할 수 있는 '수평적/수직적 권한 상승' 사고를 물리적으로 방지할 수 있는가? (P3)
- 비밀번호 저장 시 복호화가 불가능한 '일방향 해시'와 '솔트'를 결합해야 하는 보안적 필연성을 기술할 수 있는능가? (P1)
Secondary Checklist
- JWT의 페이로드(Payload)에는 민감한 정보를 담아서는 안 되는 이유를 토큰의 물리적 구조(Base64 인코딩)와 연결하여 설명 가능한가?
- OAuth 2.0의 'State' 파라미터가 CSRF 공격을 물리적으로 어떻게 차단하는지 그 방어 논리를 이해하고 있는가?
Industry Checklist
- 실무 서비스 설계 시, 사용자 경험(UX)과 보안 강도(SFA vs MFA) 사이의 균형점을 데이터 기반으로 제안 가능한가? (SFIA)
- 클라우드 IAM 정책에서 와일드카드(
*) 사용의 위험성을 인지하고, 특정 리소스에 한정한 정밀한 권한 제어를 수행할 수 있는 있는가?