CSS Tutor Study Hub 메인으로

Computersystemsicherheit 2025/26

20. Password strength·Online/Offline guessing 완전 초보 강의

비유, 단계별 예시, 자체 흐름도, 강의 스크립트 원본, 시험 답안까지 한 페이지에서 연결합니다.

CSS 1타 강사 · CONCEPT 20/25

복잡해 보이는 비밀번호가 왜 실제로는 쉽게 추측될 수 있을까요?

12345나 king2026은 흔한 순서와 단어+연도 패턴이라 쉽게 추측됩니다. Online attack은 server rate limit/MFA의 영향을 받고, DB가 유출된 offline attack은 저장 방식의 KDF 비용이 핵심입니다.

전문 용어를 보기 전에 이 장면부터 잡으세요

문 끝에 느낌표 하나를 붙여도 공격자의 사전에 이미 있는 패턴이면 강해지지 않습니다.

복잡해 보이는 패턴보다 길고 예측하기 어려운 것이 중요합니다

00

한 장면으로 문제를 시작해 봅시다

이번 페이지에서 끝까지 따라갈 예시

king2026!처럼 사전 단어+현재 연도+특수문자 패턴과 password manager가 만든 긴 random password를 비교합니다.

비유와 실제 시스템을 정확히 연결하기

  • 사람들이 자주 숨기는 장소부터 수색dictionary·rule-based guessing
  • 문 앞 경비의 시도 제한online rate limiting
  • 자물쇠를 훔쳐 자기 창고에서 시험offline guessing

이 예시에서 사람·장치·데이터·화살표를 먼저 찾습니다. 아직 용어를 완벽히 몰라도 “누가 무엇을 가지고, 어떤 처리를 거쳐, 무엇이 달라지는가”를 말할 수 있으면 출발점은 충분합니다.

01

긴 이름을 작은 용어로 분리하기

한 제목에 여러 단어가 들어 있어도 같은 기능을 뜻하지 않습니다. 아래 카드를 하나씩 읽고 각 용어의 대상과 역할을 따로 잡으세요.

강한 password를 공격자 관점에서 평가하기

Password strength는 사람이 보기에 복잡한지가 아니라 공격자가 몇 번의 추측으로 맞힐 가능성이 높은지로 평가한다. 12345 같은 순서, 사전 단어, 이름과 연도 조합, 여러 사이트에서 재사용한 password는 먼저 시도된다. 길고 예측하기 어려운 고유 passphrase나 password manager가 만든 무작위 password가 유리하다.

TERMS FROM ZERO

강한 password를 공격자 관점에서 평가하기 핵심 용어

아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.

Password entropy

공격자 관점에서 password가 얼마나 예측 불가능한지를 나타내는 정도입니다.

Dictionary attack

흔한 단어와 알려진 변형 규칙을 우선 시험하는 password 추측 공격입니다.

Credential stuffing

다른 site에서 유출된 username/password 조합을 재사용해 login하는 공격입니다.

MFA

Password 외에 별도의 factor를 요구해 password 하나의 유출만으로 login하기 어렵게 하는 인증 방식입니다.

Password를 저장하지 않고 검증값을 저장하는 법

Server는 사용자의 plaintext password를 다시 읽을 필요가 없다. 가입할 때 각 사용자마다 무작위 salt를 만들고 password와 함께 느린 password KDF에 넣어 나온 hash와 salt만 저장한다. 로그인 때 입력 password로 같은 계산을 수행해 비교한다. Argon2id, bcrypt, scrypt, PBKDF2 같은 KDF는 반복 계산과 memory 사용으로 대량 추측을 비싸게 만든다.

TERMS FROM ZERO

Password를 저장하지 않고 검증값을 저장하는 법 핵심 용어

아래 단어는 이미 안다고 가정하지 않습니다. 먼저 쉬운 뜻을 읽고, 본문에서 같은 단어가 나오면 이 정의로 다시 바꾸어 읽으세요.

Password hash / KDF

Password 검증을 위해 의도적으로 비용을 높여 만든 단방향 계산 결과입니다.

Salt

사용자마다 새로 만드는 공개 random 값으로 같은 password도 서로 다른 저장 결과를 만들게 합니다.

Cost parameter

Password 추측 한 번에 필요한 시간·memory 비용을 조절하는 설정입니다.

Offline guessing

공격자가 유출된 database를 자기 장비에서 server 제한 없이 시험하는 공격입니다.

02

실제 시스템에서는 이 순서로 움직입니다

모바일에서는 그림 안을 좌우로 움직이며 번호 순서대로 읽으세요.

예시를 단계별로 해체하기

  1. 1단계공격자는 모든 문자열을 무작정 시도하기보다 유출 목록과 흔한 패턴부터 시도합니다.
  2. 2단계길이와 예측 불가능성이 실제 search space를 키웁니다.
  3. 3단계Online guessing은 server의 rate limit·lockout·MFA 영향을 받습니다.
  4. 4단계Offline guessing은 유출된 KDF output을 공격자 장비에서 제한 없이 비교합니다.
  5. 5단계Offline 방어의 핵심은 per-user salt와 높은-cost slow KDF입니다.
  6. 6단계사용자는 password manager의 고유한 긴 password와 MFA로 재사용 피해를 줄입니다.

이 단계들은 시험 답안에서 원인과 결과가 빠지지 않도록 만든 설명 순서입니다.

손으로 따라가는 초보 예제

`king2026!`와 password manager 값의 공격 순서 비교

공격자는 무작위 전체 공간보다 유출 목록, 사전 단어, 연도, `!` 추가 규칙을 먼저 시험합니다.

  1. 1단계공격자는 `password`, 이름, 팀명 같은 흔한 단어 목록을 먼저 시험합니다.
  2. 2단계그다음 현재 연도와 `!`, 대문자 첫 글자 같은 인간의 흔한 변형 규칙을 붙입니다.
  3. 3단계`king2026!`는 길어 보여도 이 규칙 앞쪽에 있어 빠르게 맞을 수 있습니다.
  4. 4단계Online attack은 server rate limit·lockout·MFA로 속도가 제한됩니다.
  5. 5단계DB를 훔친 offline attacker는 자기 hardware에서 KDF output을 비교하므로 server lockout의 영향을 받지 않습니다.
  6. 6단계Password manager가 만든 길고 site별 고유한 random password와 MFA가 재사용·예측 위험을 줄입니다.

그래서 무엇을 배웠나? 강도는 특수문자 개수가 아니라 공격자의 추측 순서에서 얼마나 뒤에 있는지로 봐야 합니다.

03

관련 개념도 하나씩 따로 이해하기

강한 password를 공격자 관점에서 평가하기

비유에서 실제 시스템으로 옮겨 보기

먼저 떠올릴 장면 · 자물쇠 번호가 길어도 1234567890이면 공격자는 첫 시도에 가깝게 맞힌다. 짧은 장식보다 선택의 예측 불가능성이 중요하다.

정확한 뜻 · Password strength는 사람이 보기에 복잡한지가 아니라 공격자가 몇 번의 추측으로 맞힐 가능성이 높은지로 평가한다. 12345 같은 순서, 사전 단어, 이름과 연도 조합, 여러 사이트에서 재사용한 password는 먼저 시도된다. 길고 예측하기 어려운 고유 passphrase나 password manager가 만든 무작위 password가 유리하다.

  1. 1단계Common password list와 사전 단어 여부를 본다.
  2. 2단계이름+연도, 키보드 배열, 숫자 순서 같은 pattern을 찾는다.
  3. 3단계길이와 무작위성, 사이트별 고유성을 확인한다.
  4. 4단계저장 방식의 KDF 강도와 사용자가 고른 password 강도를 별도로 평가한다.

Password를 저장하지 않고 검증값을 저장하는 법

비유에서 실제 시스템으로 옮겨 보기

먼저 떠올릴 장면 · 비밀번호 원본을 창고에 보관하는 대신, 입력한 열쇠가 맞는지만 검사하는 느린 시험 장치를 보관하는 것이다. Salt는 같은 열쇠라도 사용자마다 다른 시험지를 받게 한다.

정확한 뜻 · Server는 사용자의 plaintext password를 다시 읽을 필요가 없다. 가입할 때 각 사용자마다 무작위 salt를 만들고 password와 함께 느린 password KDF에 넣어 나온 hash와 salt만 저장한다. 로그인 때 입력 password로 같은 계산을 수행해 비교한다. Argon2id, bcrypt, scrypt, PBKDF2 같은 KDF는 반복 계산과 memory 사용으로 대량 추측을 비싸게 만든다.

  1. 1단계사용자마다 고유한 random salt를 생성한다.
  2. 2단계Password와 salt를 느린 KDF에 넣는다.
  3. 3단계Salt, KDF parameter, 결과 hash를 저장한다.
  4. 4단계로그인 시 검증 API로 비교하고 role authorization은 별도로 확인한다.

04

강의 스크립트 원본과 연결하기

Password database attack과 password fatigue를 보여 주는 대표 슬라이드입니다. 먼저 위의 초보 설명을 읽고, 원본에서는 같은 개념이 어떤 기호와 독일어·영어 용어로 표현되는지 확인하세요.

Password strength·Online/Offline guessing 관련 강의 스크립트 대표 슬라이드
원본 Vorlesung/05 Authentifizierung.pdf · p.24, p.28 · Password database attack과 password fatigue
  • 05 Authentifizierung.pdf · p.24, p.28

05

시험 함정과 답안에 적용하기

  • 강한 password를 공격자 관점에서 평가하기 · 특수문자 하나나 최신 연도를 붙였다는 이유만으로 strong이라고 단정하지 않는다.
  • Password를 저장하지 않고 검증값을 저장하는 법 · 일반적인 빠른 hash 한 번만 사용하거나 모든 사용자에게 같은 salt를 쓰면 대량 추측과 미리 계산한 table 공격에 약하다.

서술형 답안 골격

길이, 예측 가능성, 재사용, 공격 형태를 평가하고 password manager와 MFA를 함께 제안합니다.

정의 → 등장 주체 또는 입력 → 작동 순서 → 보안 효과 → 조건과 한계 순서로 쓰고, 위 단계별 예시에서 필요한 문장을 골라 붙이세요.

30초 자가 확인

책을 덮고 “복잡해 보이는 비밀번호가 왜 실제로는 쉽게 추측될 수 있을까요?”에 대해 핵심 용어 두 개, 작동 단계 세 개, 대표 함정 하나를 말해 보세요.

다음 개념으로 넘어가기 전 확인

  1. 연도와 느낌표를 붙여도 약할 수 있는 이유는?
  2. Online과 offline guessing의 rate limit 차이는?
  3. Password 재사용이 credential stuffing으로 이어지는 이유는?