HANGUL.WIKI

암호화 기술 (Argon2)

Argon2 Password Hashing

2,798자 · 2026-04-25
목차 (12개 섹션)

암호화 기술 (Argon2 패스워드 해싱)

당신이 어떤 웹사이트에 가입하면 비밀번호가 데이터베이스에 저장된다. 그런데 그 사이트가 해킹당했을 때 당신의 비밀번호가 그대로 노출될까, 아니면 안전하게 보호될까? 그 답은 그 사이트가 Argon2를 쓰느냐 안 쓰느냐에 달려 있다.

개요

Argon2는 2015년 패스워드 해싱 경쟁(PHC: Password Hashing Competition)에서 우승한 암호화 알고리즘이다. 해시 함수의 일종으로, 비밀번호를 되돌릴 수 없는 고정 길이 문자열로 변환한다. 현재 OWASP(웹 애플리케이션 보안 표준), NIST(미국 국립표준기술연구소), RFC 9106 표준에서 공식 권고하는 비밀번호 해싱 알고리즘이다. 기존 bcrypt, PBKDF2, scrypt 대비 메모리 집약적 설계로 GPU와 ASIC을 활용한 대규모 크래킹 공격에 훨씬 높은 저항성을 가진다.

배경

비밀번호 해싱의 역사는 단순 MD5/SHA-1에서 시작됐다. 이들은 속도가 빨라서 해시 생성은 쉬웠지만, 바로 그 '빠름'이 문제였다. 공격자가 GPU를 돌리면 초당 수십억 개의 해시를 생성해 대조하는 브루트포스 공격이 가능해졌기 때문이다. 이를 막기 위해 bcrypt(1999), PBKDF2, scrypt가 차례로 등장했지만, ASIC 전용 칩이 개발되면서 이마저도 취약해졌다. Argon2는 이 모든 공격 패턴을 염두에 두고 설계된 차세대 표준이다.

현황

2026년 기준 Argon2는 보안 업계의 사실상 표준(de facto standard)으로 자리잡았다. OWASP는 Argon2id를 비밀번호 저장의 최우선 권고 알고리즘으로 명시하고 있으며, Python의 passlib, PHP의 password_hash(), Java(OpenJDK JEP 8377081 드래프트) 등 주요 언어·프레임워크에서 네이티브 지원이 확대되고 있다. 국내에서는 금융보안원의 보안 가이드에서도 Argon2 사용을 권장하기 시작했다.

핵심 내용

세 가지 변형

Argon2에는 세 가지 변형이 있다.
  • Argon2d: 데이터 의존적 메모리 접근. GPU 크래킹에 강하지만 사이드채널 공격에 취약할 수 있다. 암호화폐 마이닝 등에 적합.
  • Argon2i: 데이터 독립적 메모리 접근. 사이드채널 공격에 강하나 GPU 공격에 상대적으로 취약. 패스워드 외 키 유도에 적합.
  • Argon2id: 두 방식을 혼합. 비밀번호 해싱에 가장 권장되는 변형. OWASP·NIST 모두 이 변형을 추천.
  • 메모리 하드니스

    Argon2의 핵심 차별점은 '메모리 하드니스(Memory Hardness)'다. 해시 생성 시 대용량 RAM(최소 19MiB, 권장 64~128MiB)을 반드시 사용하도록 설계되어 있어, 메모리가 비싼 GPU/ASIC으로 대규모 병렬 공격을 하기 어렵게 만든다. 2025년 연구에 따르면 Argon2id(128MiB 설정) 기반 8자리 비밀번호를 크래킹하는 데 최신 하드웨어로 약 50만 달러 이상의 비용이 든다. PBKDF2 대비 크래킹 비용이 100배 이상 높다.

    설정 파라미터

    Argon2는 세 가지 파라미터로 보안 강도를 조절한다.
  • m (메모리): KiB 단위. OWASP 권고: 19MiB 이상, 보안 강화: 64~128MiB
  • t (반복 횟수): OWASP 권고: 2회 이상, 보안 강화: 3~5회
  • p (병렬성): CPU 코어 수에 맞게 설정
  • 서버 성능과 보안의 균형점을 파라미터로 조절할 수 있어 유연성이 높다.

    실제 취약점 사례 비교

    2012년 LinkedIn 해킹: 비밀번호를 SHA-1(솔트 없음)로 저장 → 6.5억 개 해시 유출 후 대부분 크래킹. 2013년 Adobe 해킹: 3DES 암호화(해시 아님) 사용 → 1.53억 계정 노출. 이런 사고들이 Argon2 같은 현대적 해싱 도입을 가속화했다.

    논란

    성능 오버헤드: 메모리 집약적 특성 때문에 서버에서 동시 다수 로그인 처리 시 메모리 사용량이 폭증할 수 있다. 소규모 서버에서는 설정 조율이 필요하다. 일부 개발자는 여전히 bcrypt를 선호하는데, 오랜 검증 역사와 라이브러리 호환성 때문이다.

    양자 컴퓨팅 위협: 이론상 양자 컴퓨터가 현존 해시 알고리즘을 무력화할 수 있다는 우려가 있다. 그러나 현재 기술 수준에서 비밀번호 해시 크래킹에 활용 가능한 양자 컴퓨터는 존재하지 않으며, NIST는 2030년 이전 위협 가능성은 낮다고 평가한다.

    개발자 교육 부재: Argon2가 아무리 강력해도 개발자가 솔트(Salt)를 고정하거나, 파라미터를 너무 낮게 설정하거나, 해시 결과를 평문과 함께 로깅하면 무용지물이다. 알고리즘보다 구현의 문제가 더 크다는 지적이 있다.

    전망

    Java OpenJDK의 공식 Argon2 지원 JEP가 진행 중이며, 2026~2027년 사이 주요 언어 표준 라이브러리 통합이 완성될 전망이다. AI를 활용한 패스워드 추측 공격이 고도화되는 만큼, 메모리 파라미터의 지속적 상향이 권장된다. FIDO2·패스키(Passkey) 같은 비밀번호 없는 인증으로 패러다임이 이동하는 흐름도 있어, 장기적으로 패스워드 해싱 자체의 중요성이 줄어들 수도 있다.

    관련 항목

  • 해시 함수
  • bcrypt
  • OWASP
  • NIST
  • 양자 컴퓨팅
  • FIDO2
  • 패스키
  • 사이버보안
  • 데이터 유출
  • 암호학

문서 정보

최초 작성
최종 갱신
분량
2,798자 (성인 기준)
분류
기술

HANGUL.WIKI가 정리·작성한 문서입니다. 정확성을 위해 노력하나 오류가 있을 수 있으므로, 중요한 내용은 공식 출처를 통해 확인하시기 바랍니다. 내용의 오류나 정정 요청은 오류·정정 신고로 알려주시면 검토 후 반영합니다.