데이터 보안은 모든 최신 데이터 플랫폼의 중요한 측면입니다. 마이크로 서비스 기반 아키텍처가 모든 대규모 앱에서 일반적인 패턴으로 자리 잡으면서 기존의 비밀번호 기반 사용자 인증 메커니즘은 비밀번호를 기억하기 어렵거나 해독될 수 있다는 사실은 말할 것도 없고 대규모로 관리하기 어렵습니다. 이에 대한 해결책으로 Couchbase Server 5.0은 X.509 인증서 인증을 도입했습니다.

카우치베이스 서버 5.5 추가 추가 개선 사항 를 사용하여 N1QL, 인덱싱, XDCR, 검색, 심지어 Couchbase 웹 UI 및 REST 엔드포인트를 포함한 모든 서비스와 인터페이스를 지원합니다.

인증서 기반 인증이란 무엇인가요?

간단히 말해서 '인증'은 사용자가 본인이 맞는지 확인하는 과정입니다. 기술 세계에서는 다양한 방법으로 인증을 수행할 수 있습니다. 인증서 기반 인증을 사용하면 사용자는 사용자 이름과 비밀번호 대신 디지털 인증서를 교환하여 서버에 안전하게 액세스할 수 있습니다. 이는 클라이언트가 사용자 이름이나 비밀번호를 서버로 전송하지 않음을 의미합니다. 비밀번호 기반 인증의 일반적인 문제인 피싱, 키 입력 로깅, 중간자 공격(MITM)을 방지합니다.

상호 인증을 보여주는 클라이언트-서버 TLS 핸드셰이크 예시

인증서 기반 인증은 X.509 공개 키 인프라(PKI) 표준을 활용하여 구축됩니다. 인증서 인증은 TLS 핸드셰이크 중에 신뢰할 수 있는 당사자(CA(인증 기관))와 서버를 사용하여 클라이언트와 서버를 상호 인증함으로써 더욱 강력한 보안을 제공합니다. 인증서가 서명되었기 때문에 실제 서버에만 연결할 수 있으며, 순환 또는 해지를 위해 CA를 사용하여 인증서를 중앙에서 관리할 수 있습니다.

인증서 내에서 사용자 식별

x509 인증서 인증이 어떻게 작동하는지 궁금하다면 만료일, CN 이름, 산 이름 등과 같은 여러 필드가 있어야 합니다. 조직과 정책에 따라 사용자 이름/ID를 인코딩하는 데 다른 필드가 사용됩니다. 예를 들어

사용자를 식별하기 위해 카우치베이스는 하나 이상의 필드를 파싱하고 사용자를 추출하도록 구성됩니다. 이 작업은 경로, 접두사 및 구분 기호를 사용하여 수행됩니다. 경로 경로 는 인증서에서 사용자 이름을 가져올 위치를 설명합니다. 접두사 는 사용자 아이디의 시작 부분을 떼어내고 구분 기호는 사용자 아이디를 종료합니다. 위의 예에서 ""라는 사용자를 추출하려면bob"를 사용할 수 있습니다:

카우치베이스에서 경로 표현식은 최대 10개로 제한되며, 동일한 경로 및 접두사 필드를 가진 두 표현식은 없으며, 표현식의 모든 필드는 필수적으로 지정해야 합니다. 카우치베이스는 지정된 순서대로 인증서의 각 경로 표현식을 하나씩 시도하고 비어 있지 않은 사용자 이름 문자열을 성공적으로 추출할 수 있는 첫 번째 것을 사용합니다. 모든 경로 표현식이 사용자 문자열을 추출할 수 없는 경우, X.509 인증서로 인증하려는 노력도 실패합니다.

카우치베이스 서버 구성

Couchb에서Server 5.5부터는 인증서 기반 인증이 기본적으로 비활성화되어 로컬 사용자/패스 또는 LDAP/PAM 기반 인증 방법에 의존합니다.

"클라이언트 인증서 필요"가 "사용"으로 설정되어 있으면 Couchbase Server는 제공된 인증서를 수락하고 이를 기반으로 인증을 시도합니다. 인증에 실패하면 Couchbase Server는 사용자/패스 또는 LDAP/PAM 기반 인증 방법으로 돌아갑니다.

'Req클라이언트 인증서"가 "필수"로 설정되어 있으면 X.509 인증서를 제공해야 하며, 그렇지 않으면 인증에 실패합니다.

이러한 설정은 CLI 또는 REST API를 통해서도 제공될 수 있습니다.

사용자 인증

사용자가 '인증'(본인임을 확인하는 것)을 받은 후에는 허용되는 작업을 결정하는 프로세스인 '권한 부여'를 받아야 합니다.

카우치베이스 서버에서는 다음과 같이 수행됩니다. 각 사용자에게 하나 이상의 역할 할당하기.

인증서 기반 인증을 위한 클라이언트 구성

X.509 인증서 기반 인증 기능은 모든 SDK 클라이언트에서 지원됩니다. 하지만 최신 버전에서만 지원되므로 사용 중인 SDK 버전에 대한 릴리스 정보를 확인하세요..

X.509는 공개 키 인증서에 대한 공식 표준이며 SSL/TLS는 이 표준에 의존합니다. 클라이언트에서는 서버와 동일한 루트 CA(인증 기관)에서 생성하고 서명한 유효한 x.509 인증서를 사용해야 합니다.

대부분의 일반적인 웹 브라우저는 초기 TLS 시절부터 클라이언트 인증을 지원해 왔습니다. 브라우저 인증서 저장소에서 클라이언트 인증서를 구성할 수 있으며, 바로 사용할 수 있습니다!

couchbase-cli 및 N1QL 셸과 같은 모든 Couchbase 도구도 X.509 인증을 지원하도록 업데이트되고 있습니다.

결론

이러한 유형의 인증을 설정하는 데는 약간의 작업이 필요하지만 매우 안전하고 대규모로 관리하기가 더 간편합니다. 제발 Couchbase Server 5.5 다운로드 를 클릭해 보세요. 여러분의 피드백을 기다리겠습니다!

작성자

게시자 페리 크루그

페리 크루그는 고객 솔루션에 중점을 둔 CTO실의 아키텍트입니다. 그는 8년 이상 Couchbase에서 근무했으며 12년 이상 고성능 캐싱 및 데이터베이스 시스템과 함께 일해 왔습니다.

댓글 하나

  1. 유용한 정보입니다. Couchbase 서버 4.5에서도 MA-SSL이 지원되나요?

    1. 페리 크루그, 수석 아키텍트, Couchbase 6월 20, 2018에서 5:24 오전

      안녕하세요 비디야, 댓글 감사합니다!

      MA-SSL은 인증서를 통한 _인증_을 지원하지 않고 암호화만 지원하므로 버전 5.5 이전에는 지원되지 않았습니다.

      도움이 되었기를 바랍니다.

      Perry

댓글 남기기