1. Certificate-Based Authentication(CBA)란?
Certificate-Based Authentication(CBA)은 공개키 인증 기반 방식의 하나로, 사용자의 공개키에 대해 신뢰할 수 있는 기관(Certificate Authority, CA)이 디지털 서명을 한 인증서를 사용하여 인증을 수행하는 방법입니다. 일반적인 공개키 방식에서는 서버에 사용자별 공개키를 미리 등록해 두어야 하지만, CBA는 이와 달리 신뢰된 CA에서 발급된 인증서만 있으면 어디서든 인증을 수행할 수 있다는 장점이 있습니다.
CBA는 특히 다음과 같은 특징을 가집니다.
• 사용자 키 관리 및 회수가 중앙에서 가능해져 관리성 향상.
• 짧은 유효기간의 인증서 사용을 통해 노출 위험 감소.
• PKI 기반의 신뢰 체계를 활용하여 보다 안전하고 유연한 인증을 구현할 수 있음.
• 사용자 인증뿐만 아니라 서버 인증, 호스트 간 상호 인증에도 사용 가능.
이 방식은 기존의 패스워드 방식 또는 단순 공개키 기반 인증 대비 보안성과 유연성을 강화하는 데 큰 역할을 합니다.
2. SSH에서의 Certificate-Based Authentication
OpenSSH는 버전 5.4 이상부터 **SSH 인증서 기반 인증(CBA)**을 공식 지원합니다. 이때 사용되는 인증서는 일반적인 X.509 인증서와는 달리, OpenSSH 전용의 간결한 포맷을 사용하는 OpenSSH Certificate Format을 따릅니다.
2.1 OpenSSH CA 구성 요소
• CA Key Pair: 인증 기관 역할을 하는 키 쌍. CA의 private key로 사용자나 호스트의 공개키에 서명하여 인증서를 생성한다.
• User Certificate: 사용자의 공개키에 대해 CA가 서명한 인증서. SSH 접속 시 이 인증서를 이용해 사용자를 인증한다.
• Host Certificate: SSH 서버(호스트)의 공개키에 대해 CA가 서명한 인증서로, 클라이언트가 서버를 검증할 때 사용된다.
2.2 OpenSSH CA 동작 과정
1. 관리자는 CA 키쌍을 생성한다.
2. 사용자는 자신의 SSH 공개키를 제출한다.
3. 관리자는 공개키에 대해 사용자 ID, 만료 시간, 허용된 노드 등을 포함해 CA의 개인키로 서명한 user certificate을 발급한다.
4. 사용자는 SSH 접속 시, 자신의 개인키와 함께 인증서를 전달한다.
5. SSH 서버는 사전에 등록된 CA의 공개키를 이용해 인증서의 유효성을 검증하고, 인증서에 포함된 정보에 따라 접근을 허용하거나
거부한다.
이 방식은 특히 동적으로 사용자 키를 발급/회수하거나 다수 서버에 일괄 적용하는 데 유리하여, 대규모 서버 인프라에 적합합니다.
3. Certificate-Based Authentication 사례
3.1. Teleport
Teleport는 대표적인 SSH CBA 기반 접근제어 솔루션으로, 중앙 인증서 발급과 세션 로깅, 정책 기반 접근 제어를 제공합니다.
3.2. AWS EC2 + SSH CA
AWS는 자체 IAM 체계를 활용한 SSH 인증서 기반 접근 통제를 공식적으로 지원합니다. 관리자는 EC2 인스턴스의 SSH 설정에
CA 공개키를 등록하고, IAM 인증을 통과한 사용자에게 Lambda 또는 AWS CLI를 통해 짧은 수명의 SSH 인증서를 발급합니다.
이 방식은 고정된 공개키 없이도 안전하게 EC2에 접근할 수 있게 합니다.
3.3. 넷앤드 HIWARE SecureKey (국내)
국내 넷앤드사의 HIWARE 제품은 SSH CA 기반 인증서 발급 및 정책 관리 기능을 갖춘 SecureKey 모듈을 통해 인증서 기반 접근을
지원합니다. 사용자는 인증서를 발급받아 SSH 서버에 접근하고, 이력 추적과 인증서 수명 관리가 자동으로 이루어집니다.
3.4. Netflix BLESS
Netflix는 자체적으로 BLESS(Bastion-Linked External SSH Signer)라는 오픈소스를 개발해, AWS Lambda를 통해 실시간으로 SSH
인증서를 발급하는 구조를 사용합니다. 사용자는 인증 요청 시, 제한된 기간의 SSH 인증서를 발급받고 이를 통해 서버에 접근하며,
모든 발급 요청은 IAM 및 CloudTrail을 통해 감사됩니다.
4. Teleport의 SSH Certificate-Based Authentication Flow
Teleport는 SSH 접근제어를 위해 자체 CA를 기반으로 한 CBA 인증 구조를 제공하며, 다음과 같은 구성 요소와 흐름을 통해 동작합니다.
4.1. 구성 요소
• Auth Service (CA 역할): 사용자와 노드의 인증서를 발급하고 감사 로그를 저장.
• Proxy Service: 외부 접근 포인트로, 사용자 요청을 내부 노드로 중계.
• Teleport Node or Agent: 실제 SSH 리소스가 존재하는 서버 또는 에이전트. 사용자 인증서를 검증하고 접근 허용 여부를 판단.
4.2. 인증 흐름
1. 사용자는 tsh login 명령어를 통해 Teleport Auth Service에 인증 요청.
2. 사용자가 OIDC, SAML, GitHub 등 외부 IdP를 통해 인증됨.
3. 인증된 사용자에 대해 Auth Service는 short-lived user certificate을 발급.
4. 사용자는 이 인증서를 포함하여 SSH 접속 요청을 수행.
5. Teleport Proxy Service는 요청을 적절한 Node에 전달.
6. 대상 Node는 CA 공개키로 인증서를 검증한 뒤, **Role-based Access Control (RBAC)**에 따라 권한 부여 및 세션 허용 여부를 판단.
7. 세션 전체 내용은 실시간으로 로깅되며, 필요시 동영상 리플레이 형태로 추적 가능.
4.3. 장점
• 중앙 집중형 키 관리: 사용자 키를 로컬 서버에 등록할 필요 없이 CA에서 일괄 발급 가능.
• Zero Trust 모델 강화: 사용자와 노드는 모두 Auth Service에 등록되어야 하며, 인증 전에는 일체의 접근이 불가.
• 정책 기반 제어: Role, TTL, 허용 Command, IP 제약 등 상세 정책 정의 가능.
• 세션 기록: 사용자 활동 전체를 완전하게 감사 가능.
Certificate-Based Authentication은 SSH 기반 환경에서 패스워드 방식보다 안전하고, 공개키 직접 관리보다 유연한 인증 방식을 제공합니다. 특히 Teleport와 같은 솔루션을 활용하면 중앙 CA 기반으로 접근 제어, 감사, 정책 관리, 인증서 수명 관리까지 포괄할 수 있어, 보안 인프라의 수준을 크게 향상시킬 수 있습니다.
대규모 인프라, DevOps 환경, 보안 감사가 필수적인 조직에서 CBA는 점점 더 표준적인 접근 방식으로 자리잡고 있으며, 다양한 클라우드 환경 및 온프레미스 인프라에 적용 가능한 유연성을 가지고 있습니다.
⭐발표자 : 이경훈님
1. Certificate-Based Authentication(CBA)란?
Certificate-Based Authentication(CBA)은 공개키 인증 기반 방식의 하나로, 사용자의 공개키에 대해 신뢰할 수 있는 기관(Certificate Authority, CA)이 디지털 서명을 한 인증서를 사용하여 인증을 수행하는 방법입니다. 일반적인 공개키 방식에서는 서버에 사용자별 공개키를 미리 등록해 두어야 하지만, CBA는 이와 달리 신뢰된 CA에서 발급된 인증서만 있으면 어디서든 인증을 수행할 수 있다는 장점이 있습니다.
CBA는 특히 다음과 같은 특징을 가집니다.
• 사용자 키 관리 및 회수가 중앙에서 가능해져 관리성 향상.
• 짧은 유효기간의 인증서 사용을 통해 노출 위험 감소.
• PKI 기반의 신뢰 체계를 활용하여 보다 안전하고 유연한 인증을 구현할 수 있음.
• 사용자 인증뿐만 아니라 서버 인증, 호스트 간 상호 인증에도 사용 가능.
이 방식은 기존의 패스워드 방식 또는 단순 공개키 기반 인증 대비 보안성과 유연성을 강화하는 데 큰 역할을 합니다.
2. SSH에서의 Certificate-Based Authentication
OpenSSH는 버전 5.4 이상부터 **SSH 인증서 기반 인증(CBA)**을 공식 지원합니다. 이때 사용되는 인증서는 일반적인 X.509 인증서와는 달리, OpenSSH 전용의 간결한 포맷을 사용하는 OpenSSH Certificate Format을 따릅니다.
2.1 OpenSSH CA 구성 요소
• CA Key Pair: 인증 기관 역할을 하는 키 쌍. CA의 private key로 사용자나 호스트의 공개키에 서명하여 인증서를 생성한다.
• User Certificate: 사용자의 공개키에 대해 CA가 서명한 인증서. SSH 접속 시 이 인증서를 이용해 사용자를 인증한다.
• Host Certificate: SSH 서버(호스트)의 공개키에 대해 CA가 서명한 인증서로, 클라이언트가 서버를 검증할 때 사용된다.
2.2 OpenSSH CA 동작 과정
1. 관리자는 CA 키쌍을 생성한다.
2. 사용자는 자신의 SSH 공개키를 제출한다.
3. 관리자는 공개키에 대해 사용자 ID, 만료 시간, 허용된 노드 등을 포함해 CA의 개인키로 서명한 user certificate을 발급한다.
4. 사용자는 SSH 접속 시, 자신의 개인키와 함께 인증서를 전달한다.
5. SSH 서버는 사전에 등록된 CA의 공개키를 이용해 인증서의 유효성을 검증하고, 인증서에 포함된 정보에 따라 접근을 허용하거나
거부한다.
이 방식은 특히 동적으로 사용자 키를 발급/회수하거나 다수 서버에 일괄 적용하는 데 유리하여, 대규모 서버 인프라에 적합합니다.
3. Certificate-Based Authentication 사례
3.1. Teleport
Teleport는 대표적인 SSH CBA 기반 접근제어 솔루션으로, 중앙 인증서 발급과 세션 로깅, 정책 기반 접근 제어를 제공합니다.
3.2. AWS EC2 + SSH CA
AWS는 자체 IAM 체계를 활용한 SSH 인증서 기반 접근 통제를 공식적으로 지원합니다. 관리자는 EC2 인스턴스의 SSH 설정에
CA 공개키를 등록하고, IAM 인증을 통과한 사용자에게 Lambda 또는 AWS CLI를 통해 짧은 수명의 SSH 인증서를 발급합니다.
이 방식은 고정된 공개키 없이도 안전하게 EC2에 접근할 수 있게 합니다.
3.3. 넷앤드 HIWARE SecureKey (국내)
국내 넷앤드사의 HIWARE 제품은 SSH CA 기반 인증서 발급 및 정책 관리 기능을 갖춘 SecureKey 모듈을 통해 인증서 기반 접근을
지원합니다. 사용자는 인증서를 발급받아 SSH 서버에 접근하고, 이력 추적과 인증서 수명 관리가 자동으로 이루어집니다.
3.4. Netflix BLESS
Netflix는 자체적으로 BLESS(Bastion-Linked External SSH Signer)라는 오픈소스를 개발해, AWS Lambda를 통해 실시간으로 SSH
인증서를 발급하는 구조를 사용합니다. 사용자는 인증 요청 시, 제한된 기간의 SSH 인증서를 발급받고 이를 통해 서버에 접근하며,
모든 발급 요청은 IAM 및 CloudTrail을 통해 감사됩니다.
4. Teleport의 SSH Certificate-Based Authentication Flow
Teleport는 SSH 접근제어를 위해 자체 CA를 기반으로 한 CBA 인증 구조를 제공하며, 다음과 같은 구성 요소와 흐름을 통해 동작합니다.
4.1. 구성 요소
• Auth Service (CA 역할): 사용자와 노드의 인증서를 발급하고 감사 로그를 저장.
• Proxy Service: 외부 접근 포인트로, 사용자 요청을 내부 노드로 중계.
• Teleport Node or Agent: 실제 SSH 리소스가 존재하는 서버 또는 에이전트. 사용자 인증서를 검증하고 접근 허용 여부를 판단.
4.2. 인증 흐름
1. 사용자는 tsh login 명령어를 통해 Teleport Auth Service에 인증 요청.
2. 사용자가 OIDC, SAML, GitHub 등 외부 IdP를 통해 인증됨.
3. 인증된 사용자에 대해 Auth Service는 short-lived user certificate을 발급.
4. 사용자는 이 인증서를 포함하여 SSH 접속 요청을 수행.
5. Teleport Proxy Service는 요청을 적절한 Node에 전달.
6. 대상 Node는 CA 공개키로 인증서를 검증한 뒤, **Role-based Access Control (RBAC)**에 따라 권한 부여 및 세션 허용 여부를 판단.
7. 세션 전체 내용은 실시간으로 로깅되며, 필요시 동영상 리플레이 형태로 추적 가능.
4.3. 장점
• 중앙 집중형 키 관리: 사용자 키를 로컬 서버에 등록할 필요 없이 CA에서 일괄 발급 가능.
• Zero Trust 모델 강화: 사용자와 노드는 모두 Auth Service에 등록되어야 하며, 인증 전에는 일체의 접근이 불가.
• 정책 기반 제어: Role, TTL, 허용 Command, IP 제약 등 상세 정책 정의 가능.
• 세션 기록: 사용자 활동 전체를 완전하게 감사 가능.
Certificate-Based Authentication은 SSH 기반 환경에서 패스워드 방식보다 안전하고, 공개키 직접 관리보다 유연한 인증 방식을 제공합니다. 특히 Teleport와 같은 솔루션을 활용하면 중앙 CA 기반으로 접근 제어, 감사, 정책 관리, 인증서 수명 관리까지 포괄할 수 있어, 보안 인프라의 수준을 크게 향상시킬 수 있습니다.
대규모 인프라, DevOps 환경, 보안 감사가 필수적인 조직에서 CBA는 점점 더 표준적인 접근 방식으로 자리잡고 있으며, 다양한 클라우드 환경 및 온프레미스 인프라에 적용 가능한 유연성을 가지고 있습니다.
⭐발표자 : 이경훈님