본문 바로가기

PostgreSQL

PostgreSQL 14 암호 hash(scram-sha-256) 관련

2022년 7월 AWS에서 Aurora PostgreSQL 14 버전을 릴리즈 하였다.

커뮤니티 버전이나 RDS는 꽤 오래 전에 릴리즈 되었는데,  이번에 redshift 관련하여 이슈가 발견되었다.

 

PostgreSQL은 오래 전부터 사용자 암호를 md5 방식으로 해시 처리를 하였는데, 이 방식은 최근 몇년 동안 취약점이 발견되어 권장하지 않는 방식이 되었고, PostgreSQL 10버전에서부터는 scram-sha-256 방식을 지원하여 왔다. 

 

PostgreSQL 14버전으로 기존 aurora 클러스터를 업그레이드 시키고 별 문제없이 잘 쓰고 있었는데

구성이 변경되며 amazon redshift가 추가되면서 이슈가 발견되었다.

이슈는 redshift에서 external table 기능을 사용하려고 Aurora 엔드포인트에 붙는데 기존에 계정들은 접근이 되는데

새로 해당 서비스 용도로 암호를 변경한 계정만 접근이 되지 않는 것이었는데, 원인을 찾고 보니 변경된 암호 hash 방식이었다.

 

비슷한 경우를 겪는 사람들을 위해 아래에 내용을 찾아 정리하였다.

 

PostgreSQL 10버전부터 지원하기 시작한 scram-sha-256 방식의 비밀번호 hashing 기법

이와 관련되어 에러 메시지는 아래와 같이 발생한다.

authentication method 10 not supported
The authentication type 10 is not supported.
Authentication method not supported (Received: 10)

특정 클라이언트로 PostgreSQL에 접근해야 할 때 해당 클라이언트가 scram-sha-256을 지원하지 않는다면, 이와 같이 해당 이슈인지에 대해 확인이 가능하다.

>show password_encryption ;
 password_encryption
---------------------
 scram-sha-256
(1 row)

> set password_encryption TO 'md5';
SET
Time: 4.439 ms

>\password appuser

위의 방식을 거쳐 암호를 변경하면, 해당 유저의 암호는 md5방식으로 hash되어 저장되므로, scram-sha-256 방식을 지원하지 않는 클라이언트에서도 정상적인 접근이 가능할 것이다.

 

다만 md5 방식의 암호 hashing을 이용함으로써 존재하게 되는 취약점에 대한 별도의 대안이 없지 않는 이상, 가급적 클라이언트를 scram-sha-256을 지원하는 버전으로 업그레이드 하는 것을 고려하는 것이 바람직할 것이다.

 

 

출처들:

To scram-sha-256 from MD5 in PostgreSQL- CYBERTEC (cybertec-postgresql.com)