0Pricing
Cryptology Academy · 강의

일반 SHA-256이 비밀번호에 적합하지 않은 이유

레인보 테이블, 무차별 대입 속도, 솔트를 이해합니다.

일반 SHA-256이 비밀번호에 적합하지 않은 이유은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

비밀번호를 안전하게 저장하는 방법은 보안 분야에서 가장 많이 오해되는 주제 중 하나입니다. 이 수업에서는 SHA-256처럼 빠른 해시가 비밀번호에 치명적으로 부적합한 이유를 이해합니다.

데이터베이스가 유출되면 일어나는 일

데이터베이스 침해는 끊임없이 발생합니다. 2024년에는 RockYou2024에서 10 BILLION개의 비밀번호가 유출되었습니다. 사용자 비밀번호가 복구 가능한 형태로 저장되어 있다면 공격자는 이를 복구할 수 있습니다.

단순한 SHA-256 저장

잘못된 패턴: hashed = sha256(password) store(username, hashed) 문제점: (1) sha256은 매우 빠릅니다. (2) 같은 비밀번호는 같은 해시가 됩니다(솔트 없음). (3) 흔한 비밀번호에 대한 레인보 테이블이 존재합니다.

레인보 테이블 공격

레인보 테이블은 수백만 개의 흔한 비밀번호에 대한 해시→비밀번호 매핑을 미리 계산해 둔 것입니다. SHA-256('password')는 항상 같은 해시입니다. 테이블에서 조회하면 대부분의 비밀번호를 즉시 해독할 수 있습니다.

솔트의 역할

솔트 = 해싱 전에 비밀번호 앞에 추가하는 무작위 바이트입니다. hash = sha256(salt + password) 사용자마다 고유한 솔트를 받습니다. 레인보 테이블은 쓸모없어지고, 공격자는 각 사용자를 개별적으로 무차별 대입해야 합니다.

하지만 솔트만으로는 충분하지 않습니다

최신 GPU는 초당 10 BILLION개의 SHA-256 해시를 계산합니다. 고유한 솔트를 사용하더라도, 유출된 해시를 가진 공격자는 8자리 비밀번호를 몇 분 안에 무차별 대입할 수 있습니다.

속도의 문제

SHA-256은 파일 무결성, TLS 등을 위해 빠르게 설계되었습니다. 비밀번호 해싱에서는 속도가 적입니다. 무차별 대입에 강한, 의도적으로 느린 알고리즘이 필요합니다.

키 스트레칭

키 스트레칭은 해시 함수를 수천 번 반복합니다: for i in range(100000): h = sha256(h). 이렇게 하면 공격자와 방어자 모두의 작업이 느려지지만, 하드웨어의 이점은 여전히 공격자에게 유리합니다.

메모리 집약 함수

최신 비밀번호 해싱 알고리즘은 CPU 연산뿐 아니라 많은 양의 RAM을 요구합니다. GPU는 CPU에 비해 코어당 사용할 수 있는 RAM이 제한적입니다. Argon2의 메모리 집약성은 GPU와 ASIC의 이점을 무력화합니다.

흔한 실수

하지 말아야 할 것: - sha256(password) - 반복 없이 sha256(salt + password) 사용 - md5(password) 사용(또는 모든 MD5 사용) - 비밀번호 암호화(복호화할 수 있음) - sha256(sha256(password)) 사용(여전히 빠름)

대신 사용할 것

다음을 사용합니다: bcrypt(가장 널리 배포됨), Argon2id(OWASP 권장, 메모리 집약적), PBKDF2-SHA256(FIPS 준수, 허용 가능). 세 알고리즘 모두 설계상 솔트를 사용하며 의도적으로 느립니다.

빠른 확인

솔트를 사용하더라도 SHA-256이 비밀번호 해싱에 적합하지 않은 이유는 무엇입니까?

복습

SHA-256은 비밀번호에 적합하지 않습니다. 다음으로 해싱을 의도적으로 느리고 하드웨어 공격에 강하게 만드는 알고리즘인 bcrypt를 학습합니다.

자주 묻는 질문

“일반 SHA-256이 비밀번호에 적합하지 않은 이유” 강의는 무료인가요?

네 — “일반 SHA-256이 비밀번호에 적합하지 않은 이유” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“일반 SHA-256이 비밀번호에 적합하지 않은 이유”에서 뭘 배우나요?

레인보 테이블, 무차별 대입 속도, 솔트를 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“일반 SHA-256이 비밀번호에 적합하지 않은 이유” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 일반 SHA-256이 비밀번호에 적합하지 않은 이유
  2. bcrypt: 알고리즘과 비용 인자
  3. Argon2: 메모리 집약적 비밀번호 해싱
  4. PBKDF2와 적절한 알고리즘 선택
← Cryptology Academy(으)로 돌아가기