레디스 Password Encryption(암호화)

<< Login Parameters Introduction >>

Password 암호화

시작하기

Auth는 레디스 보안에 중요한 기능이다. 그러나 password를 평문(plain text)로 conf 파일에 저장되어 있어 공격자가 서버에 접근하면 password가 그대로 노출되는 취약점이 있다.   이제 password를 암호화해서 보관하는 기능을 제공함으로써 보안 취약점을 개선하였다.

레디스 서버에 원래 있는 기능이 아니고 레디스게이트에서 개발한 것이다.

이 프로그램 소스와 문서는 버전 3.2.2를 기준으로 만들었다.


Password 설정하기

Standalone 모드에서는 redis.conf 파일에 requirepass에 password를 설정하고, 클러스터(Cluster) 모드에서는 redis.conf 파일에 requirepass와 masterauth에 동일한 password를 설정한다.   센티널(Sentinel)에서는 마스터, 슬레이브 서버의 redis.conf 파일에 requirepass와 masterauth와 센티널 서버의 sentinel.conf 파일에 sentinel auth-pass에 password를 설정한다.   센티널 서버에서 password를 거는 것은 아니다.   센티널은 auth 명령 자체가 없다.

PASSWORD 생성

debug newpw password 명령을 실행하면 암호화된 password가 나온다.   이것을 위에서 설명한 conf 파일에 복사하면 된다.   Auth Password Encryption(암호화) 기능을 사용한다고 해서 반드시 암호화된 password 만 사용할 수 있는 것은 아니다.   기존 평문(plain text) password도 사용할 수 있다.   Password의 길이와 prefix를 check 해서 encrytion 모듈에서 처리할지 기존 모듈에서 처리할지를 정한다.

'암호화 Encryption'에 대해서는 로그인기능의 '암호화 Encryption' 부분을 참고하기 바란다.

PASSWORD 설정

redis.conf의 requirepass에 입력한 예

requirepass "$2b$05$HDbkLjfyVVbrQhfOQiDAUeufLy6jGAHL2ople2EaftsRO//wKpTKu"

AUTH 사용

클라이언트에서 auth password를 입력하면 된다.

127.0.0.1:6000> auth password
OK

클러스터(Cluster)에서 사용하기

모든 마스터, 슬레이브 서버의 redis.conf에 requirepass와 masterauth에 동일한 암호화된 password를 복사해서 넣으면 설정 완료.


센티널(Sentinel)에서 사용하기

마스터, 슬레이브 서버의 redis.conf에 requirepass와 masterauth에 동일한 암호화된 password를 복사해서 넣고, sentinel.conf에 sentinel auth-pass <master-name> <password>에도 같은 password를 넣으면 설정 완료.


라이선스와 법적 책임

  • 본 소스는 BSD 라이선스에 기반을 둡니다
  • 레디스게이트에서는 본 기능을 여러 번 테스트를 했으나 문제 발생 가능성은 있습니다.
    문제 발생에 대한 책임이 레디스게이트에 없음을 알려드립니다.
  • 버그 발견 시 본 페이지에 댓글 또는 redisgate@gmail.com으로 알려주시기 바랍니다.

소스 파일 리스트

  • 본 파일에는 redis-users.zip의 파일을 포함하고 있으며 따라서 로그인기능을 포함하고 있습니다.
  • 수정 파일 목록: server.h, server.c, sentinel.c, replication.c
  • 포함된 파일 목록: server.h, server.c, sentinel.c, debug.c, replication.c, config.c, util.h, util.c, cluster.c, redis-cli.c, users.h, users.c, crypt_blowfish.h, crypt_blowfish.c, Makefile

받기(download)

위 리스트에 있는 수정 파일, 새로 작성한 파일을 zip으로 묶었습니다.   클릭해서 다운 받으세요.
레디스 버전 3.2.2 소스에 다운 받은 파일을 복사하고 make로 컴파일하세요.
본 소스는 레디스 버전 3.2.2로 만들었습니다.
redis-auth.zip      





<< Login Auth Password Encryption Parameters Introduction >>

질문하거나 댓글을 보려면 클릭하세요.  댓글수 :    조회수 :

Email 返事がかかってなれば、メールでお知らせします。