484. Identification and Authentication Failures (인증 및 세션 관리 실패)
핵심 인사이트 (3줄 요약)
- 본질: 인증 및 세션 관리 실패(Identification and Authentication Failures)는 도둑이 창문을 부수거나 벽을 뚫는 게 아니라, 아예 집주인의 열쇠(비밀번호, 탈취된 세션 토큰)를 훔쳐 당당하게 정문(로그인 화면)을 열고 들어와 시스템의 최고 권한을 탈취하는 프론트도어(Front-door) 방어망 붕괴 현상이다.
- 가치: 해커의 자동화된 매크로 툴(무차별 대입 공격, 크리덴셜 스터핑)에 맞서, 단순히 ID/PW가 맞는지 비교하는 1차원적 로직을 폐기하고, 다중 인증(MFA), 로그인 횟수 제한(Rate Limiting), 토큰(JWT) 생명주기 관리 등 인간의 실수를 시스템의 겹겹이 쳐진 자물쇠로 덮어버리는 강력한 출입국 관리소 역할을 수호한다.
- 융합: OWASP Top 10의 전통 강호(2021년 7위)로, 비밀번호 해싱을 다루는 **'암호화 실패(A02)'**와 찰떡같이 연계되며, 마이크로서비스(MSA) 환경에서 중앙 집중식 신원 증명을 담당하는 SSO(OAuth 2.0, OIDC) 및 제로 트러스트(Zero Trust) 아키텍처와 융합되어 현대 신원 인프라(IAM)의 척추를 세운다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: 사용자가 "나 철수야(Identification)"라고 주장하고 "여기 내 비밀번호(Authentication)"를 제출할 때, 서버가 그를 검증하고 "여기 수시로 통과할 수 있는 팔찌(Session/Token)"를 채워주는 이 일련의 입장 프로세스가 박살 난 상태다.
1234같은 허접한 비밀번호를 그냥 허용하거나, 비밀번호를 1초에 1만 번 틀려도 서버가 막지 않거나, 로그아웃 버튼을 눌렀는데도 팔찌(세션)의 효력이 영원히 죽지 않는 모든 멍청한 입장권 관리 실패를 묶어 부른다. -
필요성: 개발자가 아무리 내부에 튼튼한 금고(DB 암호화)를 만들고, 권한 체크(A01 방어)를 빡세게 발라놔도, 해커가 애초에 '최고 관리자(Admin)'의 아이디와 비밀번호로 정상 로그인을 성공해 버리면? 시스템 입장에서는 해커가 아니라 '진짜 합법적인 사장님'이 들어온 것이므로 모든 권한 방어막이 프리패스로 무장 해제된다. 즉, 집(시스템)이 튼튼함을 증명하기도 전에 집주인의 영혼(Identity) 자체가 도둑맞는 가장 허무하고 완벽한 패배를 막기 위해 대문 앞의 깐깐한 경비원(세션 통제)이 절대적으로 필요하다.
-
💡 비유: 인증 및 세션 관리 실패는 클럽의 **'허술한 기도(경비원)와 도장 찍기'**와 같습니다. 손님(해커)이 미성년자인데도 기도가 신분증 검사를 대충 하고 들여보냅니다(인증 실패). 심지어 한 번 들어온 손님 손등에 야광 도장(Session)을 찍어줬는데, 그 손님이 집에 가면서 자기 동생한테 도장이 찍힌 피부 껍질을 떼어서(?) 넘겨줍니다. 동생이 그 도장(탈취된 세션)을 들이미니 기도는 프리패스로 또 들여보내 줍니다. 신분증과 도장이 털려 클럽 전체가 미성년자 판이 되는 대재앙입니다.
-
등장 배경 및 발전 과정:
- "비밀번호만 맞으면 됨" (과거): ID/PW만 맞으면 무조건 문을 열어줬다. 하지만 해커들이 다른 사이트에서 털어온 ID/PW 명부를 자동화 툴에 넣고 초당 1만 번씩 때려 박는(Credential Stuffing) 기계적 공세를 펼치자 비밀번호라는 방패 자체가 찢겨나갔다.
- 모바일과 잦은 로그인의 피로도: 유저들이 로그인할 때마다 튕기는 걸 혐오하게 되면서, 한 번 로그인하면 1년 동안 안 풀리는 영구 세션(쿠키)을 부여했다. 해커들은 이 PC방에 남겨진 쿠키를 훔쳐서 무제한으로 털어먹기 시작했다.
- MFA와 토큰(JWT) 통제 시대 (현재): 비밀번호 1개는 이미 죽었다고 가정한다. 무조건 폰으로 2차 인증번호(MFA)를 쏘고, 입장 팔찌(Token)의 수명을 30분으로 토막 낸 뒤, 리프레시 토큰(Refresh Token)으로 몰래 수명을 연장해 주는 고도의 아키텍처 전쟁으로 돌입했다.
-
📢 섹션 요약 비유: 이 취약점은 **'얼굴 인식 없는 낡은 아파트 카드키'**입니다. 내가 카드키(비밀번호)를 잃어버려서 도둑이 주웠습니다. 아파트 현관(서버)은 카드키만 대면 도둑인지 집주인인지 얼굴(MFA)을 안 보고 그냥 "어서오십시오" 하고 문을 엽니다. 진짜 최첨단 보안은 카드키를 대더라도 지문을 한 번 더 찍어라(다중 인증), 혹은 3번 틀리면 카드를 먹어버리라(Rate Limiting)는 혹독한 통제가 필수입니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
1. 인증/세션 실패의 3대 지옥문 (해커의 침투 루트)
- 크리덴셜 스터핑 (Credential Stuffing) & 무차별 대입 (Brute Force)
- 현상: 해커가 야놀자에서 털린 아이디/비번 100만 개 엑셀을 샀다. 그걸 배달의민족 로그인 창에 매크로 로봇을 돌려 1초에 만 번씩 때려 박는다. 사람들은 귀찮아서 비번을 통일하므로, 100만 개 중 1만 명은 무조건 로그인이 성공한다.
- 아키텍트 방어: 무조건 로그인 시도 5회 실패 시 5분간 계정 강제 잠금(Lockout), 혹은 캡차(CAPTCHA) 화면을 띄워 로봇의 매크로 폭격을 물리적으로 마비시킨다.
- 세션 고정 (Session Fixation) 및 탈취 (Hijacking)
- 현상: 해커가 피시방에서 미리 접속해 세션(쿠키 ID)
1234를 발급받고 자리를 피한다. 피해자가 그 자리에 와서 로그인한다. 피해자는 서버와 연결되지만, 해커는 여전히 자신의 폰에1234라는 동일한 쿠키를 갖고 있으므로 피해자 계정으로 실시간 동시 접속(탈취)이 성공한다. - 아키텍트 방어: 사용자가 로그인 버튼을 누르는 찰나의 순간, 프레임워크 단에서 **기존 세션 ID를 완전히 파괴하고 아예 새로운 세션 ID로 강제 교체(Rotate)**하여 해커의 낡은 티켓을 휴지 조각으로 만들어야 한다.
- 현상: 해커가 피시방에서 미리 접속해 세션(쿠키 ID)
- 만료되지 않는 토큰 (Non-expiring Session / JWT)
- 현상: 사용자가 로그아웃을 눌렀는데, 브라우저 쿠키만 지워지고 서버의 세션(또는 JWT)은 영원히 살아있다. 해커가 1년 뒤에 그 토큰을 주워서 던져도 서버는 환영한다.
- 아키텍트 방어: JWT 엑세스 토큰 수명은 무조건 15분으로 난도질한다. 로그아웃 즉시 서버 단의 인메모리(Redis) 블랙리스트에 토큰을 등재하여, 유효기간이 남았더라도 강제로 즉사(Revoke)시켜야 한다.
2. 인증 방어의 궁극기: 다중 인증 (MFA, Multi-Factor Authentication)
ID/비밀번호(알고 있는 것) 하나만 믿는 시대는 끝났다. 3가지 요소(Factor) 중 무조건 2개 이상을 섞어 찌개로 만들어야 문이 열리는 아키텍처다.
-
지식 기반 (Something you Know): 비밀번호, 핀(PIN) 번호, 어머니 성함
-
소유 기반 (Something you Have): 내 스마트폰(SMS 인증번호), 이메일, 하드웨어 보안 키(OTP, YubiKey)
-
생체 기반 (Something you Are): 지문, 홍채, 안면 인식 (Face ID)
-
📢 섹션 요약 비유: MFA(다중 인증)는 은행 금고의 **'핵미사일 동시 발사 키'**입니다. 영화를 보면 미사일을 쏘려면 장군과 부관이 동시에 서로 다른 열쇠 2개를 꽂고 돌려야 발사됩니다. 해커가 장군의 열쇠(비밀번호) 1개를 훔쳐서 금고에 꽂아도, 부관의 폰(SMS 인증)으로 날아가는 2번째 열쇠를 훔치지 못하면 절대 미사일(로그인)을 발사할 수 없는, 해커를 딜레마에 빠뜨리는 절대 방벽입니다.
Ⅲ. 융합 비교 및 다각도 분석
1. 인증(AuthN) 붕괴 vs 인가(AuthZ) 붕괴 (OWASP 1위와 7위의 차이)
OWASP 1위(A01: Broken Access Control)와 가장 헷갈리는 형제다.
| 척도 | A07. 인증/세션 실패 (Authentication) | A01. 인가/접근 통제 실패 (Authorization) |
|---|---|---|
| 발생 위치 | 대문 (로그인 화면, 로그아웃, 세션 생성) | 집 안의 방문 (API 호출, 데이터 조회) |
| 해커의 상태 | 아직 로그인하지 못한 '외부인(Guest)' | 이미 정상 로그인을 마친 '내부인(User)' |
| 방어 로직 | ID/PW 대조, 5번 틀리면 락, OTP 쏘기, 세션 수명 관리 | "너 이 게시판 관리자 권한(Role) 있어? 내 글 훔쳐보는 거 아냐?" (RBAC/ABAC) |
| 해킹 목표 | 남의 신분증(Session)을 훔쳐서 로그인 성공하기 | 로그인한 상태에서 남의 권한(등급)까지 몰래 뺏어 쓰기 |
과목 융합 관점
-
클라우드 및 마이크로서비스 (OAuth 2.0 / OIDC): MSA 시대에 서비스가 50개다. 각 서버마다 로그인 코드를 치면 유지보수가 박살 나고 보안 빵꾸가 무조건 난다. 아키텍트는 50개 서버의 로그인 기능을 모조리 뜯어내서, 거대한 중앙 인증 서버(Keycloak, AWS Cognito, Okta) 단 하나로 몰빵시킨다. 유저는 중앙 서버에서 1번만 구글/카카오 로그인(OAuth 2.0)을 하고 JWT 토큰을 받는다(SSO, Single Sign-On). 50개의 마이크로서비스는 그냥 "이 토큰 가짜 아냐?" 확인만 하는 무상태(Stateless) 구조로 융합되어 거대한 인프라 인증 혁명을 낳았다.
-
보안 공학 (비밀번호 저장소 - A02 융합): 인증 시스템이 완벽하려면, 해커가 DB를 통째로 털어가도 비밀번호를 모르게 '암호화 실패(A02)' 단원에서 배운 Bcrypt/Argon2 단방향 해시(Salt 첨가)가 무조건 적용되어야 한다. 인증 아키텍처는 절대 혼자 돌지 않으며, 암호화 뼈대 위에 서 있는 융합의 산물이다.
-
📢 섹션 요약 비유: 중앙 인증 서버(SSO) 설계는 놀이공원의 **'자유이용권 매표소'**입니다. 롤러코스터, 바이킹(마이크로서비스)을 탈 때마다 현금을 내고 돈을 거슬러 받으면(개별 로그인) 시간이 너무 오래 걸리고 삥땅 칠 구멍(보안)도 많습니다. 입구(중앙 인증 서버)에서 한 번에 10만 원을 내고 손목에 자유이용권 팔찌(JWT 토큰)를 채웁니다. 놀이기구 알바생(각 서비스 서버)은 돈 대신 손목에 찬 팔찌가 진짜인지만 슬쩍 쳐다보고(토큰 검증) 즉시 태워줍니다. 효율과 보안의 극치입니다.
Ⅳ. 실무 적용 및 기술사적 판단
실무 시나리오
-
시나리오 — 비밀번호 찾기(Reset) 로직의 참사, 예측 가능한 임시 비번: 주니어 개발자가 "비밀번호 찾기" 기능을 만들었다. 고객이 이메일을 입력하면, 서버가 임시 비밀번호를 이메일로 쏴주고, 고객이 그 임시 비밀번호로 로그인한다. 문제는 임시 비밀번호를 난수로 만들지 않고
고객ID + 1234로 고정해서 생성해 버렸다. 해커는 타겟의 아이디를admin으로 입력해 찾기 버튼을 누르고, 바로 1초 뒤에admin1234로 로그인하여 회사의 최고 관리자 계정을 합법적으로 날름 먹어 치웠다.- 아키텍트의 해결책: 비밀번호 재설정 라이프사이클의 논리적 붕괴다. 비밀번호를 '초기화'해 주는 방식 자체가 쌍팔년도 안티패턴이다. 아키텍트는 비밀번호를 쌩으로 날려주지 말고, 이메일에 **'예측 불가능한 CSPRNG 기반의 1회용 토큰(만료 시간 10분)이 박힌 링크'**를 쏴야 한다. 고객이 그 링크를 클릭해서 들어왔을 때만, 오직 자기 손으로 '새로운 비밀번호'를 1번만 입력하게 만드는 구조로 강제해야 한다. 이것이 인증 생명주기를 닫아버리는 완벽한 빗장이다.
-
시나리오 — 영원히 죽지 않는 좀비 토큰 (JWT의 태생적 한계): 최근 트렌드라며 세션(Session)을 다 버리고 무상태성(Stateless) JWT 토큰으로 갈아탔다. 유저가 로그인하면 1주일짜리 JWT 토큰을 폰에 쥐여줬다. 어느 날 VIP 유저 폰이 털려 토큰이 해커에게 넘어갔다. 고객이 급하게 피시방에서 로그인하여 "모든 기기에서 로그아웃" 버튼을 눌렀다. 그런데 해커는 고객의 돈을 계속 빼가고 있었다. 백엔드 서버는 DB를 안 보고 JWT 토큰 껍데기(유효기간)만 읽고 통과시켜 주므로, 서버 입장에선 한 번 발급된 1주일짜리 토큰을 강제로 죽일 물리적 방법(Kill-switch)이 없었던 것이다.
- 아키텍트의 해결책: 상태 없음(Stateless) 뽕에 취해 통제력(Control)을 상실한 대참사다. JWT는 날개가 달린 자유지만, 한 번 날아가면 추락시킬 수 없다. 아키텍트는 절충안을 짜야 한다. JWT 토큰 수명은 극단적으로 5분~15분으로 토막 낸다. 대신 생명을 연장해 줄 **Refresh Token(리프레시 토큰, 수명 1달)**을 유저에게 몰래 주고, 이 리프레시 토큰은 서버의
Redis(인메모리 DB)에 상태(Stateful)로 꽉 잡고 저장해 둔다. 고객이 강제 로그아웃을 누르면? Redis에 있는 리프레시 토큰을 갈기갈기 찢어버린다. 15분 뒤 엑세스 토큰이 수명을 다해 갱신을 요청할 때, 서버가 "리프레시 토큰 죽었어!"라며 킥(Kick)을 날려 완벽한 강제 로그아웃을 성립시키는 융합 아키텍처의 꽃이다.
- 아키텍트의 해결책: 상태 없음(Stateless) 뽕에 취해 통제력(Control)을 상실한 대참사다. JWT는 날개가 달린 자유지만, 한 번 날아가면 추락시킬 수 없다. 아키텍트는 절충안을 짜야 한다. JWT 토큰 수명은 극단적으로 5분~15분으로 토막 낸다. 대신 생명을 연장해 줄 **Refresh Token(리프레시 토큰, 수명 1달)**을 유저에게 몰래 주고, 이 리프레시 토큰은 서버의
도입 체크리스트
- 비즈니스적: 편의성과 보안(Trade-off)의 마지노선은 어디인가? 인증 보안을 올린답시고 유저가 쇼핑몰 들어올 때마다 매번 스마트폰 OTP를 치게 만들면 결제율이 90% 폭락하고 회사가 망한다. 아키텍트는 "장바구니 담기, 조회" 같은 일반 행동은 기존 토큰(약한 인증)으로 프리패스 시켜주고, "100만 원 이상 결제, 배송지 변경, 비밀번호 변경" 등 파괴적 엣지 구간에서만 **MFA(지문/OTP)를 기습적으로 한 번 더 요구하는 단계적 인증(Step-up Authentication)**으로 보안과 고객 경험(UX) 두 마리 토끼를 영리하게 낚아채야 한다.
- 기술적: 기본(Default) 비밀번호가 시스템 구석에 숨어있지 않은가? 스프링(Spring), 오라클(Oracle), 젠킨스(Jenkins) 등 모든 소프트웨어는 처음 깔면
admin / admin,system / manager라는 전 세계 공용 비밀번호를 쓴다. 데브옵스 엔지니어가 이 깡통 비번을 바꾸는 쉘 스크립트를 파이프라인에 누락하여 배포하는 순간, 전 세계 해커들의 봇(Bot) 스캐너가 10분 만에 냄새를 맡고 들어와 시스템을 랜섬웨어로 구워삶는다.
안티패턴
-
"내가 짠 나만의 커스텀 세션 관리자 (Roll Your Own Auth)": 주니어 개발자가 "스프링 시큐리티(Spring Security)는 설정이 너무 복잡해서 못 쓰겠어요! 제가 맵(HashMap)이랑 세션 직접 짜서 로그인 모듈 만들게요!"라고 우기는 안티패턴. 해커들에게 맛집을 열어주는 짓이다. 인증/세션 관리는 타이밍 공격(Timing Attack), 세션 고정, 해시 충돌 등 1만 가지의 미친 방어 로직이 떡칠 되어 있다. 방구석에서 짠 인증 로직은 3일 만에 털린다. 무조건 프레임워크가 제공하는 글로벌 표준 검증 1티어 보안 라이브러리(Spring Security, Passport.js)에 영혼을 맡기고 얹혀가야 한다.
-
📢 섹션 요약 비유: 나만의 인증 로직을 짜는 것은, **'은행 금고 자물쇠를 동네 철물점 아저씨(개발자)가 남는 철사로 대충 용접해서 만드는 꼴'**입니다. 철물점 아저씨가 아무리 손재주가 좋아도 다이너마이트와 다이아몬드 드릴을 쓰는 프로 금고털이범(해커) 앞에서는 1초 컷입니다. 은행 금고는 무조건 전 세계 보안 규격을 통과한 **'스위스제 100억짜리 글로벌 인증 금고 도어(Spring Security)'**를 수입해서 달아야만 철통 방어가 됩니다.
Ⅴ. 기대효과 및 결론
정량/정성 기대효과
| 구분 | 단순 ID/PW 1차원 인증 및 영구 세션 남용 (AS-IS) | MFA 다중 인증 + Rate Limiting + 단기 토큰 (TO-BE) | 개선 효과 |
|---|---|---|---|
| 정량 | 해커의 매크로 툴로 10만 개 계정 무차별 대입 성공 | 5회 실패 시 캡차(CAPTCHA) 및 IP 락킹으로 튕겨냄 | 봇(Bot) 기반 크리덴셜 스터핑 해킹 100% 원천 봉쇄 |
| 정량 | PC방 세션 고정 털림으로 매달 50명 고객 돈 유출 | 로그인 시 세션 ID 강제 재발급(Rotation) 처리 | 세션 하이재킹(Hijacking)으로 인한 계정 탈취율 제로화 |
| 정성 | "스프링 시큐리티 너무 무거워서 빼고 개발했어" (오만) | "인증은 프레임워크와 중앙 SSO에 100% 종속시킨다" | 인증 로직 개발 피로도 제로 및 글로벌 표준 아키텍처 안착 |
미래 전망
- 패스워드리스(Passwordless) 시대의 완성 (FIDO/WebAuthn): 인류 최대의 보안 빵꾸는 "사용자가 비밀번호를 까먹거나, 1234로 대충 짓는 인간의 나태함"이다. 이를 박살 내기 위해 구글, 애플, MS가 연합하여 패스워드리스 시대를 열었다. 아이디를 치고 엔터를 누르면 비밀번호 칸이 아예 없다. 대신 내 스마트폰으로 알람이 오고 지문(생체 인증)을 딱 찍으면 끝나는 FIDO 기반 아키텍처다. 외울 비번이 아예 뇌에 존재하지 않으니, 해커가 피싱(Phishing)으로 비번을 훔쳐 갈 구멍 자체가 우주에서 증발해 버리는 혁명이다.
- 연속적/적응형 인증 (Continuous/Adaptive Authentication): 한 번 로그인에 성공했다고 끝까지 믿어주는 멍청한 시대가 막을 내린다. AI가 유저의 평소 마우스 클릭 속도, 타이핑 리듬, 폰 기울기를 1분 단위로 24시간 감시한다(행동 생체 인식). 내가 화장실 간 사이 해커가 내 자리에 앉아 마우스를 클릭하는 순간, AI가 "이건 주인의 손놀림이 아니야!"라며 1초 만에 화면을 잠가버리고 다시 로그인을 띄워버리는 SF 영화 같은 극강의 세션 통제 기술이 금융권부터 스며들고 있다.
참고 표준
- OWASP Top 10 (A07: Identification and Authentication Failures): 2017년 2위에서 2021년 7위로 내려오긴 했지만, 한 번 뚫리면 회사에 경찰이 압수수색을 들어오는 핵폭탄 급의 근본 취약점. 프레임워크가 많이 좋아졌지만 여전히 설정 빵꾸로 미친 듯이 털린다. (이전 장 477번)
- NIST SP 800-63B: 미국 국립표준기술연구소가 "비밀번호는 몇 글자로 해라, SMS 인증은 어떻게 쏴라"라며 전 세계 기업들이 달달 외워야 하는 디지털 신원 가이드라인의 바이블.
인증 및 세션 관리 실패(Identification and Authentication Failures)는 결국 '인간(사용자)의 게으름과 해커의 집요함'이 빚어낸 시스템의 가장 슬픈 아킬레스건이다. 개발자가 아무리 완벽하게 20겹의 콘크리트 성벽을 쌓아 올리고 100억 원어치 암호화 금고를 사 왔더라도, 성문을 열어주는 경비병이 적군에게 우리 편 얼굴이 찍힌 가짜 신분증에 속아 정문을 활짝 열어버리는 순간 그 모든 천재적 아키텍처는 쓰레기 조각으로 전락한다. 기술사는 성벽(코드)만 바라보는 시야를 거두고, 사용자가 처음 성문을 밟는 그 첫 발자국(Login)의 무게를 견뎌내야 한다. 귀찮아하는 사용자에게 지문을 강제(MFA)하고, 30분마다 출입증을 강제로 빼앗으며(Session Timeout) 깐깐하고 융통성 없는 최악의 독재자 경비원이 되어야만, 1,000만 고객의 목숨 같은 돈과 정보를 털리지 않고 영원히 수호할 수 있다.
- 📢 섹션 요약 비유: 완벽한 인증과 세션 관리는 은행의 **'이중 잠금 투명 유리문'**과 같습니다. 1차 문(ID/PW)을 열고 들어왔다고 바로 돈다발(서버 내부)로 뛰어갈 수 없습니다. 1차 문이 닫히고 작은 유리 공간에 갇힌 채로, 2차 문 앞에서 생체 인식 지문(MFA)을 찍어야 비로소 진짜 내부로 진입할 수 있습니다. 만약 1차 문을 억지로 부수고 들어온 도둑(비밀번호 탈취)이라면, 2차 문 앞에서 갇혀버려 결국 경비원(계정 잠금 룰)에게 생포되는 절대 빠져나갈 수 없는 죽음의 통제 구역입니다.
📌 관련 개념 맵 (Knowledge Graph)
| 개념 명칭 | 관계 및 시너지 설명 |
|---|---|
| 취약한 접근 제어 (A01) | 인증 실패가 "남의 카드를 훔쳐 호텔 정문을 통과하는 것"이라면, 1위인 A01 접근 제어 실패는 "정문은 제대로 통과해놓고 남의 방문(데이터)을 부수고 훔쳐보는 것"이다. (이전 장 478번) |
| 크리덴셜 스터핑 (Credential Stuffing) | 털린 다른 사이트 비번을 긁어모아 1초에 만 번씩 우리 사이트에 쑤셔 넣어보는 공격. 사용자가 귀찮아서 비번을 통일하는 습관을 노린, 캡차(CAPTCHA) 없이는 100% 털리는 공포의 공격. |
| MFA (다중 인증, 2FA) | 아이디/비번이 뚫렸을 때 최후의 순간 해커의 뒤통수를 때리는 신의 한 수. "비번은 맞네? 근데 네 폰으로 간 6자리 숫자(OTP) 불러봐." 해커를 절망에 빠뜨리는 절대 방패. |
| OAuth 2.0 / JWT | "로그인 짜기 귀찮아! 구글/카카오톡이 로그인 대신해주고 팔찌(JWT)만 줘!" 마이크로서비스 50개의 로그인 인증 로직을 중앙 1개로 통일시켜버린 인증계의 고속도로 톨게이트. |
| 세션 하이재킹 (Session Hijacking) | "너 로그인 성공했어? 그럼 내가 니 팔찌(세션 쿠키)만 복사해서 훔쳐갈게!" 인증의 맹점을 노려 중간에 와이어샤크(WireShark)로 낚아채는 도청. HTTPS 강제화로 방어한다. |
👶 어린이를 위한 3줄 비유 설명
- 우리 집 도어락 비밀번호를 '1234'로 엄청 쉽게 해놨어요. 그런데 어떤 나쁜 도둑이 동네 모든 집 문에 '1234'를 다 눌러보다가(무차별 대입 공격) 우리 집 문이 덜컥! 하고 열려버렸죠!
- 너무 놀란 아빠는 비밀번호를 엄청 길게 바꾸고, 비밀번호를 맞추더라도 아빠 핸드폰으로 지문을 한 번 더 찍어야만(다중 인증, MFA) 문이 열리게 철통 방어를 했어요.
- 이렇게 나쁜 사람이 내 번호를 몰래 알아내서 당당하게 우리 집 정문으로 걸어 들어오는 것을 막기 위해 2중, 3중으로 깐깐하게 검사하는 출입구 경비 시스템을 **'인증 및 세션 관리'**라고 부른답니다!