-
Linux /etc/shadow 구조 살펴보기Engineer information security 2022. 7. 9. 18:46반응형
Linux는 passwd에 사용자 정보를 저장한다.
여기에는 계정명과 패스워드, UID, GID, 홈 디렉터리 등등 기본적인 계정의 정보가 있다.
그리고 패스워드의 경우 x로 나타나는데, x로 나타나는건 암호화되어 있다는 의미이다.
암호화된 패스워드는 /etc/shadow에 별도로 저장되어 있다.
shadow에서 나타난 암호화된 패스워드는 어떤 방식으로 저장되는 것인지 알아보자.
cat /etc/shadow 를 실행하여 출력되는 계정에 대한 암호화된 정보를 볼 수 있다.
그리고 이 정보들은 숫자와 대소문자의 영어로 이루어져 있다.
cat /etc/shadow 좀 더 자세하게 보면, $표시로 각 필드를 구분하고 있다.
필드마다 각각 의미하는 부분이 있다.
그렇다면, 구분된 필드는 각각 무엇인지를 알아야 한다.
$표시로 필드를 구분하고 있다. 각 필드는 $알고리즘ID$salt$암호화된패스워드 로 구성되어 있다.
알고리즘 ID에 있는 숫자 값이 의미하는 것은 아래와 같다.
1 -> MD5
2-> BlowFish
5 -> SHA-256
6 -> SHA-512
아래 이미지를 보면 6이라고 되어 있으므로 , 이것은 SHA-512 알고리즘을 사용한 것이다.
6이라고 되어 있으므로 SHA-512 알고리즘을 사용중 두 번째 필드에 있는 값은 salt 값이다.
salt는 일반 암호화되어 있는 값의 강도를 올리는 역할을 한다.
패스워드에 난수값을 추가한 뒤 암호화된 패스워드를 생성한다.
salt의 경우 랜덤으로 생성되므로, 서로다른 여러 개의 계정이 같은 암호를 사용해도 salt값이 다름으로 인해 암호화 강도를 유지한다.
계정을 두개 만들고 같은 암호로 지정한 뒤, /etc/shadow에서 salt 값을 확인해보면 알 수 있다.
salt는 랜덤한 값의 난수를 암호에 추가함으로써 암호화 강도를 올린다. 세 번째 필드에 있는 값은 암호화된 패스워드(Encrypted Password)이다.
이것은 알고리즘 + salt로 패스워드를 암호화한 것이다.
암호화된 패스워드는 알고리즘 + salt로 패스워드를 암호화 한것이다. 정리하자면,
- 암호화된 패스워드는 /etc/shadow 에서 확인이 가능하다.
- $로 필드가 구분되어 있고 알고리즘ID, salt, 암호화된 패스워드로 구성되어 있다.
- salt는 랜덤 난수 값으로 구성되어 있고 암호화에 추가됨으로써 암호화 강도를 높여준다.
- 추가적으로 패스워드 필드에 ! 가 있는 경우 패스워드가 잠기거나 암호 설정이 되어 있지 않는 상태이다.
- 패스워드 필드에 * 이 설정된 경우 패스워드가 잠긴 상태이다.
반응형'Engineer information security' 카테고리의 다른 글
Linux Crontab의 용도 및 사용 방법 (0) 2022.07.16 Linux /etc/passwd 살펴보기 (0) 2022.07.11 TCP Null Scanning 알아보기 (0) 2021.06.16 TCP Xmas Scanning 알아보기 (0) 2021.06.16 TCP FIN Scanning 알아보기 (0) 2021.06.15