Linux 32 . 리눅스의 암호체계

2024. 6. 12. 10:43Linux/CentOS7

이전에 배운 내용이지만

다시 복기해보겠다.

 

 

 

그런데 passwd 파일의 권한부여는

모두가 읽을 수 있게 되어있다.

 

이를 이상하게 여길 수도 있지만

644 권한을 지우게 되면 로그인이 불가능해져서 그대로 둘 수 밖에 없다..

 

 

안의 내용을 살펴보면 아시다시피 패스워드 내용은 x로 되어있다.

 

안보여줄거면

그냥 아무것도 없으면 되지 왜 x를 굳이 표시했을까?

한번 지워보자!

이처럼 x 값이 없어지면 어떻게 될지

사용자 변경을 통해 로그인 해보자

 

사진상으로 잘 표현되지 않았지만

패스워드를 묻지않고 바로 로그인된다!

 

그렇다고 passwd 파일에 패스워드 해쉬값이 아예 없다는건 또 아니다

pwunconv
입력 후

vi /etc/passwd

pwconv 
입력시 다시 암호화

해당 명령어를 입력한 뒤에 다시 들어가보면

패스워드 해쉬값이 다시 보이게된다.

 

passwd 파일은 모두가 읽을 수 있기 때문에

해쉬값이 노출되면 어떤식으로든 암호가 크랙될 수도 있으니 평소에는 x로 표시되고

해쉬값은 shadow에 보관하게 된다!

 

 

또한 test의 패스워드 해쉬는

 

$6

$.M2G0rCbBWtvPQHl

$v9PYJqDZnh8fwqROI0oj9/rTB1ZyTOniJ47RMfxhvbQFZ4wvW14E.nuczIEkIwgmS40vmTq.jrLmiNrrnETtC.

 

$기호를 기준으로 세가지로 나뉘게된다!

각각

 

$6       < 해쉬타입 ( $1 MD5,  $2 Blowfish,  $5 SHA-256,  $6 SHA-512 )

$.M2G0rCbBWtvPQHl      < Salt 값

$v9PYJqDZnh8fwqROI0oj9/rTB1ZyTOniJ47RMfxhvbQFZ4wvW14E.nuczIEkIwgmS40vmTq.jrLmiNrrnETtC.       

< 암호화된 패스워드=Salt + Password 

 

위처럼 세가지 값이다

Salt 값이 존재하는 이유는 알다시피

1234

1234

두계정의 비밀번호가 같을때 Salt 가 없다면

ab234AB

ab234AB

이런 식으로 똑같이 암호화 되어 같다는 걸 알 수 있게되기 때문에

무작위 값인 Salt를 넣어주는 것이다!

(마치 조미료처럼)

 

mariadb 는 아직 암호화할때 salt 값을 사용하지 않는데

한번 확인해보자!

create user 'korea'@'localhost' identified by '1234';
create user 'korea1'@'localhost' identified by '1234';

똑같은 패스워드의 계정을 두개 만들어주었다.

select host, user, password from user;

korea, korea1 의 패스워드가 똑같은 결과값을 가지는게 보인다!

이는 보안의 취약점을 만들어내는 것이다

 

그런데 salt 값이 무작위라면

해쉬값이 같아질수도 있다!

 

다른 패스워드든, 같은 패스워드든 무작위 salt 값과 만나 암호화 되면

말그대로 무작위기 때문에 salt값의 용량이 작을수록 

결과값이 같아질 확률이 높아진다!

이를 해쉬 충돌이라 한다.

 

그래서 salt 값은 점점 그 값이 커지고 있었다.

MD5 = 128bit

에서

SHA-512 = 512bit 

까지 

이러한 이유로 증가하게 된 것이다.

 

 

authconfig --passalgo=md5 --update
useradd test1
passwd test1

해쉬타입을 MD5로 변경해보았다.

 

만들어진 해쉬값의 길이가 확연히 차이난다!

authconfig --passalgo=sha512 --update

위 명령어로 다시 해쉬타입을 원상복귀 시켜주자

 

 

해쉬 타입을 다른 방법으로도 바꿀 수 있다.

vi /etc/sysconfig/authconfig

PASSWDALGORITHM 의 값을 바꿔줘도 가능하다!

 

 

이상으로 새로 알게된 사실과

passwd 관련 내용을 가볍게 살펴보았다.

 

'Linux > CentOS7' 카테고리의 다른 글

Linux 33. CentOS에서 침투 실습  (1) 2024.06.12
Linux 31 . PXE 부팅 시스템  (0) 2024.05.14
Linux 30 . Database 한글  (0) 2024.05.13
Linux 29. Database 이중화  (0) 2024.05.10
Linux 27. XE로 웹서비스  (0) 2024.05.07