주요 콘텐츠로 건너뛰기
FreeOnlineTools Go
한국어
문제 해결

비밀번호 보안: 강력한 비밀번호 생성, 저장 및 감사 방법

작성자: FreeOnlineTools Team · 2026-08-28에 업데이트됨

빠른 답변

비밀번호 생성기를 사용하여 16자 이상의 무작위 비밀번호를 생성하고 절대 재사용하지 말고 비밀번호 관리자에 저장하세요. 서버에서는 bcrypt(작업 요소 12+), scrypt 또는 Argon2id를 사용하여 해시합니다. 절대 MD5 또는 SHA-256이 아닙니다. Have I Been Pwned의 k-익명성 API을 통한 감사 위반. 일반 텍스트 비밀번호를 전송하거나 기록하지 마십시오.

소개

대부분의 계정 탈취는 취약하고, 재사용되고, 부적절하게 저장된 비밀번호로 인해 발생합니다. 이 가이드는 (1) 무차별 대입에 저항할 수 있을 만큼 충분한 엔트로피를 가진 비밀번호 생성, (2) 빠른 해시 대신 느린 KDF를 사용하여 비밀번호 해싱, (3) 서비스 전반에서 재사용 방지, (4) 유출된 자격 증명 감사라는 네 가지 구체적인 문제를 해결합니다. 각 솔루션은 실행 가능하고 도구로 지원됩니다.

단계별

  1. 엔트로피가 높은 비밀번호 생성

    비밀번호 생성기를 사용하면 대문자, 소문자, 숫자, 기호를 혼합하여 16자 이상의 비밀번호를 만들 수 있습니다. 엔트로피 = log2(charsetSize^length); 94개의 기호로 구성된 16자 알파벳은 ~105비트를 제공하며, 이는 초당 10^12 추측에서도 무차별 공격이 불가능합니다.

  2. 서비스 전반에 걸쳐 비밀번호를 재사용하지 마세요.

    하나의 비밀번호를 재사용하면 단일 위반으로 이를 공유하는 모든 계정이 손상된다는 의미입니다. 서비스별로 고유한 비밀번호를 생성하여 비밀번호 관리자(Bitwarden, 1Password, KeePassXC)에 저장하세요. 마스터 비밀번호는 기억해야 할 유일한 비밀번호이므로 긴 비밀번호로 만드세요.

  3. 서버에서 느린 KDF를 사용하여 비밀번호를 해시합니다.

    MD5, SHA-1 또는 원시 SHA-256을 사용하여 비밀번호를 저장하지 마세요. 비밀번호는 너무 빠르며 GPU는 초당 수십억을 시도할 수 있습니다. 작업 요소가 12+인 bcrypt, N=2^17인 scrypt 또는 64MB 메모리가 있는 Argon2id를 사용하세요. 이러한 KDF는 GPU/ASIC 공격을 방어하기 위해 의도적으로 느리고 메모리가 어렵습니다.

  4. 소금을 사용하여 무지개 테이블을 물리치세요

    솔트는 해싱 전에 추가되거나 결합된 비밀번호당 고유한 임의 값입니다. 동일한 비밀번호가 다른 해시를 생성하도록 보장하여 미리 계산된 레인보우 테이블을 쓸모없게 만듭니다. bcrypt와 Argon2는 솔트를 자동으로 생성하고 포함합니다. 직접 굴리지 마세요.

  5. 유출된 비밀번호에 대한 감사

    비밀번호를 수락하기 전에 k-익명성 프로토콜을 사용하여 Have I Been Pwned API와 비교하여 확인하세요. SHA-1 해시의 처음 5자만 보내고 일치하는 접미사 목록을 받아 로컬에서 비교하세요. 이는 API에 대한 전체 비밀번호를 공개하지 않습니다.

예

강력하게 생성된 비밀번호(16자, ~105비트 엔트로피)

입력: 길이 16, 모든 문자 클래스

산출: K9$mP2#vL7@nQ4!x(무작위, 고유, 재사용되지 않음)

마스터 비밀번호의 비밀번호 문구(기억 가능 + 강력)

입력: 4개의 무작위 일반 단어

산출: correct-horse-battery-staple (~44 bits but easy to remember; use 5-6 words for ~60+ bits)

비밀번호의 bcrypt 해시(작업 요소 12)

입력: bcrypt 비용이 12인 비밀번호 123

산출: $2b$12$N9qo8uLOickgx2ZMRZoMy.MrqKQp7vqB4V1e5sTq7vqB4V1e5sTq (소금 + 비용 + 해시 포함)

일반적인 문제

  • 비밀번호 해싱에 MD5 또는 SHA-256 사용: 둘 다 빠른 해시입니다. 최신 GPU는 최대 100억 SHA-256/s를 계산하여 몇 분 안에 8자 비밀번호를 해독합니다. 항상 bcrypt, scrypt 또는 Argon2id를 사용하십시오.
  • 여러 사이트에서 하나의 비밀번호 재사용: 가장 취약한 사이트에서 침해가 발생하면 모든 사이트의 비밀번호가 유출됩니다. 고유한 비밀번호를 생성하여 관리자에 저장하세요.
  • 일반 텍스트 또는 가역 암호화로 비밀번호 저장: 데이터베이스가 유출되면 모든 계정이 즉시 손상됩니다. 해싱은 단방향이며 되돌릴 수 없습니다. 심지어 서버에서도 원본을 복구할 수 없습니다.
  • bcrypt의 낮은 작업 요소: 2002년에는 비용 4가 괜찮았습니다. 2026년에는 사용 비용이 12+(대략 4096회 반복)입니다. 비밀번호를 강제로 재설정하지 않고도 로그인 시 다시 해시하여 기존 해시를 업그레이드할 수 있습니다.

팁

  • 고가치 계정의 ​​경우 최소 100비트의 엔트로피를 목표로 하십시오. 즉, 94개 기호 알파벳 중 임의의 문자 16개 또는 임의의 주사위 단어 6개입니다.
  • 이를 지원하는 모든 계정에 대해 2단계 인증(TOTP 또는 하드웨어 키)을 켜십시오. 비밀번호가 피싱을 당했다면 강력한 비밀번호만으로는 충분하지 않습니다.
  • 비밀번호를 소리내어 읽거나 인쇄물에서 입력하는 경우 비밀번호 생성기의 '모호한 문자 제외' 옵션(0/O, 1/l/I)을 사용하십시오.
  • 고정된 일정이 아닌 위반이 확인된 후에만 비밀번호를 교체하세요. 강제 교체는 사용자를 Spring2026과 같은 예측 가능한 패턴으로 유도합니다.

관련 도구

관련 가이드

참고자료