- MD5를 대신해서 쓰이며 SHA-1과 동일한 기반 구조, 모듈러 연산, 논리 이진연산 사용
- 암호분석은 SHA-2가 SHA-1과 동일하나, 좀더 높은 안전성을 갖고 있음
- 512비트 값을 갖는 일방향 해시함수
- 최대 길이가 2^128비트 이하인 메시지를 입력으로 사용
- 입력 데이터는 길이가 1024비트인 블록으로 나누어서 처리됨
- 80개의 라운드로 구성
○ 512 비트 버퍼를 갱신
○ 현재의 메시지 블록으로부터 얻은 64-비트값 Wt와 덧셈 상수 Kt를 사용함
- SHA-512는 46~80 라운드를 통과해야 공격으로부터 안전한 것으로 판단함
- 출력 값에 있어서는 MD-5 보다 길기 때문에 SHA가 더 안전하나, SHA 버퍼 크기가 MD-5 보다
더 크기 때문에 속도면 에서는 MD-5가 25% 정도 더 빠름
알고리즘 |
출력비트수 |
블록크기 |
라운드 수 |
MD5 |
128 |
512 |
64 |
SHA512 |
512 |
1024 |
80 |
CentOS 에서 Password 저장 형태
/etc/shadow 암호 필드 분석
$6
- 해쉬 함수(SHA512)
$3VoxkdR4HzKzd9M8
- Salt 값(Hash 알고리즘에 적용되기전 암호에 붙는 값) 랜덤으로 Salt 값이 생성
$YMSsAvso0 …………7KCiK3
- $6$VoxkdR4HzKzd9M8 를 이용하여 해쉬된 결과 값
-> 현재 SHA512 방식으로 해싱이 된 것을 확인할 수 있음
- authconfig –test|grep hashing 명령으로 해싱 알고리즘이 sha512인것을 확인
솔트(SALT)
- 단방향 해시 함수에서 다이제스트를 생성할 때 추가되는 바이트 단위의 임의의 문자열
SALT 가 적용 되는 방법
$6$VoxkdR4HzKzd9M8 $YMSsAvso01234
암호가 해쉬 되기 전에 Salt값(랜덤)이 합쳐진 후 해쉬 함수에 적용 받게 됨
- MD5는 널리 사용된 해쉬 알고리즘이지만, 충돌 회피성에서 문제점이 있다는 분석이 있으므로 기존의 응용과의
호환으로만 사용하고 더 이상 사용하지 않도록 하고 있으며 리눅스 에서는 사용자 비밀번호를 MD5알고리즘에서
SHA 512 알고리즘으로 사용 되며 암호화 방식을 좀 더 안전하게 바꾸기 위하여 사용함
authconfig –test|grep hashing 명령으로 암호화 알고리즘 확인하여 md5일경우
authconfig –passa|go=sha512 –update 로 sha512 로 변경함
'Linux' 카테고리의 다른 글
[Linux] RedHat 6.4 Network 설정 초기화 (0) | 2020.08.20 |
---|---|
[Linux] Redhat 6.4 Software Raid 해제하기 (0) | 2020.08.11 |
[Linux] Redhat 6.4 Software Raid 구성하기 (0) | 2020.08.10 |