생성 수정
43 / 43문항
Q01인증과 인가는 어떻게 다릅니까?정답
인증·인가
인증(Authentication)은 '너는 누구인가'를 확인하는 것이고, 인가(Authorization)는 '너는 이걸 해도 되는가'를 확인하는 것입니다.
인증 실패는 401, 인가 실패는 403으로 서로 다른 코드를 씁니다.
Q02JWT의 서명이 암호화가 아니라는 사실은 왜 중요합니까?정답
JWT
JWT는 내용을 숨기는 것(암호화)이 아니라 내용이 변조되지 않았음을 보증하는 것(서명)이라, 토큰 안의 정보는 누구나 디코딩해 읽을 수 있습니다.
그래서 비밀번호 같은 민감 정보를 JWT 안에 직접 넣으면 안 됩니다.
Q03HS256과 RS256은 어떻게 다릅니까?정답
JWT
HS256은 대칭키(하나의 키로 서명·검증), RS256은 비대칭키(개인키로 서명, 공개키로 검증)입니다.
RS256을 쓰면 검증만 하는 쪽에는 공개키만 주고 개인키는 발급하는 컨테이너에만 가둬둘 수 있어 더 안전합니다.
Q04포워드 프록시와 리버스 프록시는 무엇으로 구별됩니까?정답
프록시
'누구 앞에 서는가'입니다. 포워드 프록시는 클라이언트 앞에 서서 클라이언트를 대신해 요청을 보내고, 리버스 프록시는 서버 앞에 서서 서버를 대신해 요청을 받습니다.
게이트웨이·로드밸런서·CDN·터널이 전부 리버스 프록시의 변종입니다.
Q05docker-compose.yml에서 ports: 한 줄을 지우는 게 왜 보안 작업입니까?정답
프록시
그 줄이 컨테이너의 포트를 호스트(바깥)에 직접 노출하는 문인데, 이를 지우고 리버스 프록시나 내부 네트워크로만 접근하게 하면 바깥에서 직접 두드릴 수 있는 문의 개수(공격 표면)가 줄어들기 때문입니다.
Q06이 단원를 한 문장으로 줄이면 무엇입니까?정답
핵심 문장
"열쇠는 둘로 나누어 개인키를 한 컨테이너에 가두고, 문은 하나로 모아 바깥에서 닿을 수 있는 입구를 터널 하나로 줄였다."
Q07IP와 URL, HTTP와 API는 각각 어느 범주입니까?정답
스스로 확인
IP와 URL은 식별자, HTTP는 응용 규약, API는 계약(창구의 목록과 규격)입니다.
Q08401과 403은 무엇이 다릅니까?정답
스스로 확인
401은 인증 실패('너는 누구냐'), 403은 인가 실패('너는 이걸 해도 되냐')입니다.
Q09OAuth는 인증 프로토콜입니까, 인가 프로토콜입니까?정답
스스로 확인
인가 프로토콜입니다. 비밀번호를 넘기지 않고 제한된 권한만 위임합니다.
Q10⑤단계(토큰 교환)가 브라우저를 거치지 않는 이유는 무엇입니까?정답
스스로 확인
인가 코드는 브라우저(프론트)로 오지만, 그것을 실제 토큰으로 바꾸는 요청은 서버(클라이언트=우리 서비스)가 직접 인가 서버와 통신해 처리하기 때문입니다. 토큰이 브라우저에 노출되지 않게 하려는 것입니다.
Q11네이버에서 동의를 받았는데 왜 우리 약관 동의가 또 필요합니까?정답
스스로 확인
개인정보 수집 주체가 다르기 때문입니다. 우리 서비스가 직접 받아야 하는 동의는 별도입니다(개인정보보호법).
Q12JWT Payload에 비밀번호를 넣으면 안 되는 이유는 무엇입니까?정답
스스로 확인
JWT는 암호화가 아니라 서명입니다. Payload는 Base64URL 인코딩일 뿐이라 누구나 읽을 수 있습니다.
Q13왜 HS256이 아니라 RS256을 골랐습니까?정답
스스로 확인
RS256은 개인키/공개키가 분리되어, 검증만 하는 서버에는 공개키만 주고 개인키는 발급 컨테이너에만 가둘 수 있어 더 안전하기 때문입니다.
Q14리프레시 토큰 재사용이 감지되면 왜 세션 전체를 끊습니까?정답
스스로 확인
재사용은 토큰이 탈취됐다는 신호이므로, 공격자와 정상 사용자를 구분할 수 없어 안전하게 전체 세션을 무효화하는 것입니다.
Q15RBAC가 ACL보다 나은 점을 사용자 1만 명 기준으로 설명하면 무엇입니까?정답
스스로 확인
ACL은 사용자마다 권한을 일일이 나열해야 하지만, RBAC는 역할 단위로 묶어 관리하므로 1만 명이라도 역할 몇 개만 관리하면 됩니다.
Q16포워드 프록시와 리버스 프록시는 무엇으로 갈립니까?정답
스스로 확인
누구 앞에 서는가입니다. 포워드는 클라이언트 앞, 리버스는 서버 앞에 섭니다.
Q17ports: 8000:8000 이 왜 보안 구멍입니까? 네 가지를 대면 무엇입니까?정답
스스로 확인
0.0.0.0 바인딩이라 LAN 전체에 열리고, 도커가 iptables를 직접 조작해 방화벽(UFW)을 우회하며, nginx 같은 리버스 프록시를 거치지 않고 직접 접근 가능해지고, 공격 표면이 넓어지기 때문입니다.
Q18localhost / 컨테이너 이름 / host.docker.internal 을 각각 언제 씁니까?정답
스스로 확인
localhost는 같은 컨테이너 안에서 자기 자신을 가리킬 때, 컨테이너 이름은 같은 도커 네트워크 안의 다른 컨테이너를 가리킬 때, host.docker.internal은 컨테이너에서 호스트 머신을 가리킬 때 씁니다.
Q19무중단 전환에서 ports: 제거를 왜 마지막에 합니까?정답
스스로 확인
새 길(리버스 프록시 경로)을 먼저 열어 검증한 뒤, 마지막에 옛 길을 지워야 서비스가 끊기지 않기 때문입니다.
Q20IP와 HTTP를 비슷한 것이라고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
하나는 주소, 하나는 대화 방식입니다. 비교 대상이 아닙니다.
Q21401을 권한 부족이라고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
401은 인증 실패(누군지 모름)입니다. 권한 부족은 403입니다.
Q22OAuth의 Client가 브라우저라고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
Client는 우리 서비스입니다.
Q23JWT는 암호화되어 있다고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
Payload는 Base64URL 인코딩일 뿐이라 누구나 읽을 수 있습니다.
Q24서명이 있으니 비밀도 넣어도 된다고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
서명은 무결성을 보장하지 기밀성을 보장하지 않습니다.
Q25공개키는 감춰야 한다고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
공개키는 공개해도 안전합니다. 그래서 JWKS로 게시합니다.
Q26액세스 토큰만 있으면 된다고 생각하면 왜 부족합니까?정답
자주 하는 실수
즉시 무효화가 안 됩니다. 짧은 수명 + 리프레시 로테이션이 짝을 이뤄야 합니다.
Q27개인키를 파일 상단에서 읽으면 왜 문제가 됩니까?정답
자주 하는 실수
백엔드 컨테이너에서 import 자체가 터집니다. 호출 시점에 읽어야 합니다.
Q28리버스 프록시는 트래픽이 거꾸로 간다는 뜻이라고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
방향은 같습니다. 누구를 대리하느냐가 뒤집힌 것입니다.
Q29방화벽을 켰으니 도커 포트도 안전하다고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
도커는 iptables를 직접 조작해 UFW를 우회합니다.
Q30컨테이너 안에서도 localhost가 밖을 가리킨다고 생각하면 왜 틀렸습니까?정답
자주 하는 실수
컨테이너의 localhost는 자기 자신입니다.
Q31OIDC(OpenID Connect)란 무엇입니까?정답
용어
OAuth 위에 신원(ID Token)을 표준화한 확장 층입니다.
Q32인가 코드(Authorization Code)와 Redirect URI는 각각 무엇입니까?정답
용어
인가 코드는 토큰으로 교환하기 위한 1회용 단명 코드이고, Redirect URI는 인가 코드를 받을 사전 등록된 주소입니다.
Q33state 파라미터는 무엇을 막습니까?정답
용어
왕복 대조로 CSRF(사이트 간 요청 위조)를 막습니다.
Q34sub, aud, jti 클레임은 각각 무엇입니까?정답
용어
sub는 토큰이 가리키는 주체(사용자), aud는 이 토큰을 쓸 수 있는 대상 서비스, jti는 토큰 고유 번호(블랙리스트 조회 키)입니다.
Q35JWKS란 무엇입니까?정답
용어
공개키들을 kid와 함께 JSON으로 게시한 것입니다(JSON Web Key Set).
Q36로테이션(Rotation)과 재사용 감지(Reuse Detection)는 각각 무엇입니까?정답
용어
로테이션은 쓸 때마다 새 리프레시 토큰으로 교체하고 옛것을 폐기하는 것이고, 재사용 감지는 폐기된 토큰이 다시 오면 세션 전체를 끊는 것입니다.
Q37최소 권한 원칙(Least Privilege)이란 무엇입니까?정답
용어
필요한 만큼만 권한을 주는 보안 원칙입니다.
Q38API 게이트웨이, 로드밸런서, CDN, 터널은 모두 무엇의 변종입니까?정답
용어
리버스 프록시의 변종입니다.
Q39TLS 종료(TLS Termination)란 무엇입니까?정답
용어
앞단에서 https를 풀고 뒤로는 http로 보내는 프록시 기능입니다.
Q40WAF와 레이트 리밋은 각각 무엇입니까?정답
용어
WAF는 웹 공격 패턴을 앞단에서 차단하는 방화벽이고, 레이트 리밋은 일정 시간당 요청 수를 제한하는 것입니다.
Q41공격 표면(Attack Surface)이란 무엇입니까?정답
용어
외부에서 닿을 수 있는 지점의 총합입니다.
Q42도커 내장 DNS와 host-gateway는 각각 무엇입니까?정답
용어
도커 내장 DNS는 컨테이너 이름을 사설 IP로 해석해 주는 기능이고, host-gateway는 리눅스에서 host.docker.internal 을 쓰게 해 주는 extra_hosts 값입니다.
Q43블루-그린 배포(Blue-Green Deployment)란 무엇입니까?정답
용어
새것을 세우고 트래픽을 옮긴 뒤 옛것을 지우는 무중단 전환 방식입니다.
LangTailor