개념 사전 · 개념
비밀번호 해싱
Password hashing · 비밀번호 해싱
은 비밀번호를 복원하는 대신 후보의 일치 여부를 검증할 값을 저장하는 방식이다. 무작위 와 계산 비용을 가진 전용 알고리즘으로 대량 추측의 비용을 높인다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 서버가 평문 비밀번호를 보관하지 않게 한다.
- 같은 비밀번호의 저장값이 계정마다 달라지도록 한다.
- 비용 매개변수를 기록하고 로그인 시 필요한 재해싱을 지원한다.
02어떤 순서로 동작하나
- 등록 입력 받기
서버가 비밀번호를 받아 비밀번호 저장 전용 함수의 입력으로 사용한다.
- 와 비용 설정
사용자별 와 계산 비용을 정해 같은 비밀번호의 저장값이 단순히 같아지지 않도록 한다.
- 검증 자료 저장
알고리즘·비용··결과 등 나중에 검증할 자료를 저장하며 평문 비밀번호를 보관하지 않는다.
- 로그인 입력 검증
저장 형식을 읽고 같은 조건의 검증 함수로 입력 비밀번호가 일치하는지 판단한다.
- 조건 갱신
검증이 성공했고 기존 비용이나 형식을 갱신해야 한다면 새 조건으로 저장값을 다시 만든다.
03먼저 알아둘 용어와 구성요소
- 해시 계산에 넣고 결과와 함께 저장하는 계정별 무작위 값.
- 한 번의 비밀번호 검증에 드는 계산·메모리 비용을 정하는 매개변수.
- 저장 해시와 분리해 관리하는 추가 비밀값.
- 정책 변경 시 새 비용·알고리즘으로 검증값을 다시 만드는 처리.
LEARN THROUGH PRACTICE
설치 이미지 해시 비교와 비밀번호 해시를 구분하기
파일 무결성 비교에서 문자열 처리 오류를 분리하고, 같은 해시 도구를 비밀번호 저장에 그대로 쓰면 안 되는 이유를 설명한다.
실습 구성과 전제
- 검증할 설치 이미지의 작업 사본과 배포자가 신뢰 가능한 경로로 제공한 SHA-256 값을 준비한다.
- 사진의 파일 경로·해시를 복사하지 말고 자신의 파일과 공식 배포 값으로 비교한다.
파일 바이트의 SHA-256을 계산한다
- Get-FileHash는 경로 문자열이 아니라 파일 내용을 읽어 다이제스트를 만든다. 다운로드 파일이 다르거나 일부 바이트가 변경되면 비교가 실패한다.
- 알고리즘과 배포 파일 종류를 먼저 맞춘다. 같은 제품의 boot ISO와 DVD ISO는 다른 파일이다.
powershell$actual = (Get-FileHash -Algorithm SHA256 -LiteralPath .\lab.iso).Hash $expected = '배포자가 제공한 SHA-256 문자열' $actual -eq $expected파일을 변경하지 않는 조회 예시. expected에는 신뢰 가능한 공식 값을 넣는다.
원본 크기로 보기 ↗- Algorithm 열이 SHA256이며 Get-FileHash 결과와 비교식의 True가 함께 보인다.
- 따옴표 없이 해시를 대입한 줄에는 명령으로 인식할 수 없다는 오류가 있다. 이는 해시 불일치가 아니라 PowerShell 구문 처리 문제다.
확인 기준비교 전에 계산 오류·다른 파일·다른 알고리즘을 각각 배제한다.
비교 결과가 증명하는 범위를 제한한다
- True는 선택한 두 문자열이 같다는 뜻이다. 기대 해시를 파일과 같은 위조 경로에서 받았다면 공급자 진정성까지 증명되지 않는다.
- 대소문자가 다른 16진수 표기는 같은 다이제스트를 표현할 수 있다. 공백·개행·알고리즘 표시를 제거할 때도 원래 64자리 값을 손상시키지 않는다.
확인 기준일치·불일치와 별도로 기대 값의 출처를 기록한다.
파일 해시와 비밀번호 저장 목적을 비교한다
- 과제의 unsalted hash는 후보 문자열을 같은 함수에 넣어 결과가 같은지 비교하는 대상이다. 출력 길이는 알고리즘 후보의 단서일 뿐 확정 근거가 아니다.
- 실제 비밀번호 저장에는 고유 와 비용을 조절하는 전용 함수가 필요하다. 빠른 SHA-256 파일 검사는 이 목적을 대신하지 않는다.
원본 크기로 보기 ↗- 과제는 plain (unsalted) hashes라고 명시하며 서로 길이가 다른 두 출력을 제시한다.
- 화면에는 해시에서 원문을 복호화하는 키가 없다. 가능한 입력을 해시해 비교하는 문제다.
확인 기준해시·인코딩·암호화를 각각 비교·표현·기밀성 기능으로 구분한다.
실습에서 확인한 동작 원리
- 파일 무결성은 계산값과 신뢰 가능한 기대값의 비교다.
- 빠른 파일 해시와 느리게 설계하는 은 목적이 다르다.
04예제로 따라가기
- 두 계정이 같은 비밀번호를 사용해도 가 다르면 저장 검증값은 달라진다.
- 로그인에서는 저장된 와 비용으로 입력 후보를 계산하고 저장 검증값과 비교한다.
- 비용을 높여야 하는 경우 성공한 로그인에서 새 검증값을 만들 수 있지만 기존 평문을 DB에서 복구하는 것은 아니다.
05혼동하기 쉬운 점과 확인 기준
- 파일 무결성용 빠른 SHA-256을 한 번 적용하는 것만으로는 비밀번호 추측 비용이 충분히 커지지 않는다.
- 는 비밀키가 아니므로 공개되어도 된다. 를 쓰면 별도 보관·교체·복구 정책이 필요하다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.