암호화
SALT 이용 암호화 (SHA - 512)
s_hoonee
2023. 1. 3. 11:05
반응형
SHA - 512
- 국가안보국(NSA)이 설계한 암호해시함수
- 512bit(64byte) 해시 값을 생성하는데, 일반적으로 길이가 128자리인 16진수로 렌더링
해시 알고리즘 한계점
- 동일 메시지는 동일한 다이제스트 값을 가짐
- 무차별 대입 공격
SALT
해시함수를 돌리기 전 원문에 임의의 문자열을 덧붙이는 방식
사용자들의 비밀번호가 겹치는 경우 (동일) 다른 SALT 값을 사용하므로 같은 비밀번호를 사용하고 있는 사용자에 대한 보안을 지킬 수 있음
1번 유저가 설정한 비밀번호: 1234
부여된 SLAT값 (랜덤값) : [ 랜덤 문자열A ]
DB에 저장된 1번 유저 비밀번호 : 해쉬함수( 1234 + [랜덤 문자열A] )
-> 샬라샬라 문자열 [AAAA]
2번 유저가 설정한 비밀번호: 1234
부여된 SLAT값 (랜덤값) : [ 랜덤 문자열B ]
DB에 저장된 2번 유저 비밀번호 : 해쉬함수( 1234 + [랜덤 문자열B] )
-> 샬라샬라 문자열 [BBBB]
설정 비밀번호 (1234)는 같으나 솔트가 달라서 데이터 베이스에
각 각 AAAA / BBBB 저장
(1) 데이터베이스에 사용자가 입력한 비밀번호가 저장되는 것이 아닌 해시값을 저장
(2) 그렇다면 같은 비밀번호 (EX1234) 끼리는 같은 해시값을 가지지 않나 ? -> SALT값을 이용하여 다른 해시값 유도
같은 비밀번호라도 다른 해시값이 저장되는 것을 확인