IT 이야기

비밀번호는 어떻게 저장될까? 해시 암호화 완전 정복

빈둥거리기 2026. 4. 7. 15:28
반응형

내 비밀번호, 서버는 알고 있을까? 

여러분은 매일 수십 개의 서비스에 로그인합니다. 이메일, 쇼핑몰, SNS, 은행 앱… 그런데 한 번쯤 이런 생각 해보신 적 있으신가요?

"내가 입력한 비밀번호, 서버에서 어떻게 저장하고 있을까?"

만약 서버가 비밀번호를 그대로 저장하고 있다면, 해커가 데이터베이스를 털었을 때 여러분의 비밀번호가 고스란히 노출됩니다.

실제로 이런 사고가 수없이 발생했고, 그 교훈에서 탄생한 기술이 바로 해시(Hash) 암호화입니다.

오늘은 비밀번호가 어떻게 안전하게 저장되는지, 그 원리를 쉽게 풀어볼께요.

평문 저장 — ‘대문 열어놓고 외출?’

가장 위험한 방식은 비밀번호를 입력받은 그대로 저장하는 겁니다. 예를 들어, 내가 ‘apple123’으로 가입하면 DB에도 그게 그대로 적혀 있는 거죠. 이 방식이 위험한 이유는 단순합니다.

• 해커가 DB를 털면 모든 비밀번호가 즉시 노출됩니다.

• 관리자도 당신의 계정에 마음대로 접근할 수 있습니다.

• 같은 비밀번호를 여러 사이트에서 쓰는 사람은 도미노 피해를 입습니다.

2012년 LinkedIn이 바로 이런 문제로 약 6백만 개 계정의 비밀번호가 유출됐습니다. 이후 업계는 강력한 해시 기법을 표준으로 정했죠.

암호화 vs 해시 — 꼭 해시를 써야 한다!

많은 분이 헷갈리지만, 암호화와 해시화는 목적이 다릅니다.

구분 암호화 (Encryption) 해시 (Hash)
방향 양방향 (복호화 가능) 단방향 (복호화 불가)
특징 키가 있으면 원문 확인 가능 어떤 수단으로도 원문 추출 불가
용도 메시지 전달, 파일 저장 비밀번호 저장, 데이터 무결성 검증
알고리즘 AES, RSA SHA-256, bcrypt, Argon2

즉, 비밀번호 저장에는 오직 해시만 사용해야 합니다.

해시의 마법 — ‘한 번 들어가면 못 나온다’

해시 함수는 어떤 입력이든 고정된 길이의 외계어 같은 값으로 바꿉니다.

예를 들어,
hello → 2cf24...
hello! → ce060...

 

느낌표 하나 차이로 완전히 다른 결과가 나오죠. 이것을 ‘눈사태 효과’라고 합니다.

회원가입 시에는 비밀번호를 해시로 바꿔 DB에 저장하고, 로그인할 때는 사용자가 입력한 비밀번호를 다시 해시해서 값이 같은지만 비교합니다. 즉, 서버도 여러분의 진짜 비밀번호는 모르는 구조입니다.

SHA-256만으론 부족한 이유

MD5나 SHA-1은 이미 해킹에 취약해 폐기됐고, SHA-256도 이제 너무 빠르다는 게 문제입니다. 해커는 초당 수십억 번의 연산을 해 해시값을 미리 계산한 레인보우 테이블을 써서 단숨에 비밀번호를 추적합니다.

그래서 등장한 것이 bcrypt와 Argon2입니다. 이들은 일부러 연산 속도를 늦춘 ‘Key Stretching’ 기술을 적용해, 해커가 무작위 대입으로 깨는 데 수십~수백 년이 걸리게 만듭니다.

솔트(Salt) — 비밀번호에 ‘소금 한 꼬집’

두 사람이 같은 ‘123456’을 써도 해시값이 같다면 위험하겠죠? 그래서 개발자들은 비밀번호에 무작위 문자열(소금)을 섞습니다.

예시:

  • A: 123456 + random_1 → a98z...
  • B: 123456 + random_2 → x72q...

같은 비밀번호라도 DB에는 완전히 다른 값으로 저장되어, 레인보우 테이블 공격을 막을 수 있습니다.

어떤 해시를 써야 할까?

알고리즘 상태 설명
Plain Text 절대 금지 보안 기본 미비
MD5 / SHA-1 사용 금지 이미 뚫렸음
SHA-256 ⚠️ 비권장 너무 빠름, 무차별 대입 공격에 취약
bcrypt 권장 안전하고 대중적
Argon2 최상위 권장 최신 표준, 메모리 하드닝 적용

마무리 — 나도 할 수 있는 보안 습관

아무리 해시가 튼튼해도 사용자의 비밀번호가 ‘1234’면 무용지물입니다.

  • 길이가 깡패다: 8자리 복잡한 조합보다, 12자리 단순한 문장이 더 안전합니다.
  • 비밀번호 관리자 사용: Bitwarden, 1Password 등으로 사이트별 다른 비밀번호를 관리하세요.
  • 2단계 인증(MFA): 해시가 뚫려도 휴대폰 인증 없이는 접근 불가합니다.

작은 습관 하나로도 내 정보가 훨씬 더 안전해질

수 있습니다. 당신의 데이터 금고, 이제는 해시가 지켜줍니다

반응형