NBDE(네트워크 바인딩 디스크 암호화) 기술
목차
NBDE 소개
NBDE(네트워크 바인딩 디스크 암호화)는 디스크 암호화 와 긴밀하게 결합되어 있습니다. 기업이나 개인이 디스크를 암호화해야 하는 이유는 무엇입니까? 회사 또는 개인 데이터가 유출되는 것을 원하지 않으면 추가 보안 조치 로 기밀 데이터가 포함된 디스크를 암호화해야 합니다.
디스크 암호화에는 두 가지 사용 사례가 있습니다.
- 하드웨어 장치 (보안되지 않은 서버, 노트북 등)를 도난당하거나 분실한 경우 디스크 암호화를 통해 데이터 유출 위험을 완화할 수 있습니다. 이는 일반적으로 물리적 보안을 갖춘 엔터프라이즈급 데이터 센터에 대한 위협이 아닙니다.
- 두 번째 사용 사례는 엔터프라이즈급 데이터 센터와 관련이 있습니다. 조만간 디스크는 결함으로 인해 또는 기술 관점에서 노후화되어 교체되어야 합니다. 또한 조직에서는 확장된 스토리지를 얻기 위한 교체가 일반적입니다. 교체된 디스크는 전혀 지울 수 없으며 필요한 지식이 있으면 적어도 부분적으로 데이터에 액세스할 수 있기 때문에 디스크 수명 주기가 끝나면 데이터 유출이 발생할 수 있습니다. 현재 디스크를 지우는 데는 많은 시간이 걸립니다(일반적으로 임의의 데이터가 아닌 0으로 덮어쓰는 경우). 암호화된 디스크는 삭제하거나 물리적으로 파괴할 필요 없이 간단히 폐기할 수 있습니다.
Linux의 디스크 암호화 표준은 LUKS (Linux Unified Key Setup)입니다. LUKS로 암호화된 장치를 정상적으로 사용하려면 디스크 암호 해독을 위한 비밀번호를 입력해야 합니다. 이러한 이유로 LUKS는 확장되지 않습니다. 시스템 시작 시 암호를 수동으로 입력해야 하며 이는 데이터 센터에서는 불가능하기 때문입니다.
NBDE는 시스템 시작 시 자동 디스크 잠금 해제를 활성화하여 비밀번호를 입력하기 위한 수동 개입을 방지합니다. 이를 통해 컴퓨터를 다시 시작할 때 암호를 수동으로 입력할 필요 없이 물리적 컴퓨터와 가상 컴퓨터의 하드 드라이브 볼륨을 암호화할 수 있습니다. 따라서 NBDE는 무엇보다도 다양한 종류의 장치에서 암호화된 디스크를 사용하고 수동 개입 없이 시스템 부팅 프로세스를 자동화하려는 조직에 대해 LUKS에 확장을 추가하는 완벽한 기술입니다. 이는 데이터 센터와 같은 대규모 환경에서 중요한 요구 사항입니다.
NBDE 기술
NBDE는 암호화 키를 네트워크 전체에서 익명으로 안전하게 외부 서버 또는 서버 세트에 바인딩합니다. 이는 클라이언트가 암호화 키를 저장하거나 네트워크를 통해 전송하지 않는다는 점에서 키 에스크로가 아니지만, 그렇지 않은 경우 NBDE는 유사하게 작동합니다.
NBDE는 두 가지 주요 구성 요소를 기반으로 하는 클라이언트-서버 아키텍처를 따릅니다.
-
Tang : 서버 에서 실행되는 소프트웨어입니다. HTTP를 통한 JSON을 기반으로 합니다. 통제된 환경(일반적으로 데이터 센터 내부의 개인 네트워크)에서 실행되는 것으로 가정되며 Clevis(클라이언트)가 연결하고 키를 얻을 수 있도록 HTTP 엔드포인트를 제공합니다. McCallum-Relyea 키 교환을 기반으로 하며 다음과 같은 특징이 있습니다.
- Diffie-Hellman 알고리즘 + 통합 암호화 체계를 기반으로 합니다.
- 암호화 키는 클라이언트를 떠나지 않습니다 (개인 키 역할을 함).
-
Clevis : 클라이언트 역할을 하는 소프트웨어입니다. 디스크를 암호화하고 자동으로 잠금 해제해야 하는 장치에서 실행됩니다. Clevis가 제공하는 자동 암호 해독은 다양한 기술을 사용하여 자동 암호 해독을 제공하는 플러그인인 다양한 "핀"을 기반으로 합니다. 사용 가능한 핀은 다음과 같습니다.
- tang : 실제 NBDE를 제공합니다. HTTP를 통해 Tang 서버에 연결할 수 있습니다.
- tpm2 : 머신의 보안 암호화 프로세서
- sss : 구성된 구성용(예: 두 개 이상의 Tang 서버를 사용하여 고가용성 달성)
Clevis 및 Tang은 NBDE를 제공하는 일반 클라이언트 및 서버 구성 요소입니다. Red Hat Enterprise Linux는 Linux 통합 키 설정-온-디스크-형식(LUKS)과 함께 이러한 구성 요소를 사용하여 루트 및 루트가 아닌 스토리지 볼륨을 암호화 및 해독하고 네트워크 바인딩된 디스크 암호화를 수행합니다.
클라이언트가 시작되면 암호화 핸드셰이크를 수행하여 사전 정의된 Tang 서버 세트에 접속을 시도합니다. Tang 서버에 도달할 수 있으면 노드는 디스크 암호 해독 키를 구성하고 디스크 잠금을 해제하여 부팅을 계속할 수 있습니다. 네트워크 중단 또는 서버를 사용할 수 없으므로 노드가 Tang 서버에 액세스할 수 없는 경우 노드는 부팅할 수 없으며 Tang 서버를 다시 사용할 수 있을 때까지 무기한 다시 시도합니다. 키는 네트워크에 있는 노드의 존재와 효과적으로 바인딩되므로 저장되어 있는 데이터에 대한 액세스 권한을 얻으려는 공격자는 노드의 디스크와 Tang 서버에 대한 네트워크 액세스 권한을 모두 얻을 수 있어야 합니다.
이전에 언급했듯이 NBDE의 가장 중요한 특징 중 하나는 McCallum-Relyea 키 교환을 사용한다는 것입니다. 다음 섹션에서는 이 교환이 어떻게 작동하는지 더 자세히 설명합니다.
McCallum-Relyea 키 교환
McCallum-Relyea 키 교환은 검색할 필요 없이 암호 해독 키를 다시 생성할 수 있는 키 에스크로의 대체 방법입니다. 이 알고리즘은 Diffie-Hellman 키 교환 알고리즘의 고급 버전 입니다. 알고리즘의 전반부는 Diffie-Hellman 교환과 동일하게 작동하지만 공유 키는 추가 계산에만 사용됩니다. 추가 확률 변수를 사용하여 계산합니다. 클라이언트는 서버에 대해 완전히 익명을 유지하며 이 무작위 데이터가 클라이언트와 서버 간에 전송될 때 암호화가 전혀 필요하지 않습니다.
McCallum-Relyea 키 교환은 두 단계로 수행됩니다.
- 프로비저닝 : 암호화된 디스크가 포함된 노드가 Tang 서버를 사용하여 잠금 해제되도록 Clevis 소프트웨어를 통해 구성되면 비밀 클라이언트 키가 노드를 떠나지 않고 클라이언트와 서버 간에 키 교환이 수행됩니다.
서버는 개인 키 S와 공개 키 s를 사용하여 키 쌍을 생성합니다. 그런 다음 공개 키 를 광고합니다. 클라이언트는 또한 개인 키 C와 공개 키 c를 사용하여 키 쌍을 생성합니다.
그 후 클라이언트는 서버 공개 키 s와 자신의 개인 키 C를 사용하여 대칭 키 K를 생성합니다.
하지만 이 경우 클라이언트는 공개 키 c를 광고하지 않습니다. 즉, 클라이언트만 K를 파생할 수 있습니다. 클라이언트는 LUKS 슬롯 중 하나에 K를 씁니다. 클라이언트가 K를 저장하면 K와 개인 키 C를 모두 삭제합니다. 이는 클라이언트가 적어도 서버의 도움 없이는 더 이상 K를 파생할 수 없음을 의미합니다.
다음 다이어그램은 이 프로세스를 보여줍니다.
- 복구 : 암호화된 디스크가 포함된 장치가 부팅되거나 마운트될 때 Clevis 클라이언트는 서버에서 필요한 정보를 복구하여 비밀 키를 생성해야 합니다. 클라이언트는 새로운 키 쌍 e를 생성하고 서버에 대한 메시지 키를 생성합니다. 클라이언트는 서버에서 반환되는 내용을 기반으로 K를 파생할 수 있습니다. K가 파생되면 Clevis는 이 키를 일반 디스크 마운트 프로세스(dmcrypt)에 전달하여 수동으로 입력된 비밀번호를 기다리지 않고 볼륨을 마운트합니다.
다음 다이어그램은 비밀 키 재생성 프로세스를 보여줍니다.
이전 프로비저닝 및 복구 프로세스에 따라 다음 사항에 유의하세요.
- 프로비저닝 중에는 서버 공개 키만 필요합니다. 이 공개 키는 Clevis 클라이언트가 네트워크를 통해 부팅하는 데에만 사용되는 것이 아닙니다. Clevis가 '오프라인'으로 사용하거나 Tang Server에 연결할 수 없는 프로비저닝 프로세스 중에 사용할 수 있습니다.
- 서버에는 상태가 없습니다. 암호 해독 키가 전송되지 않으므로 에스크로가 필요하지 않습니다.
- 전송된 모든 데이터(s, x, y)는 공개되거나 도청자에게 의미가 없으므로 TLS 또는 기타 채널 암호화가 필요하지 않습니다.
NBDE와 주요 에스크로 비교
이전 섹션에서는 McCallum-Relyea 키 교환의 작동 방식과 이것이 제공하는 특성을 자세히 설명했습니다. McCallum-Relyea 키 교환은 NBDE의 핵심이므로 다음 표에서는 키 에스크로 교환 방법과 그 이점을 직접 비교할 수 있습니다.
기능 | 키 에스크로 | NBDE |
---|---|---|
단일 디스크 도난으로부터 보호 | ✅ | ✅ |
전체 서버 도난으로부터 보호 | ✅ | ✅ |
암호화 키는 네트워크를 통해 전송되지 않습니다. | ❌ | ✅ |
클라이언트-서버 전송 암호화 불필요 | ❌ | ✅ |
레드햇 지원 | ❌ | ✅ |
Ansible 역할을 사용한 자동화 | ❌ | ✅ |
OpenShift에서 지원 | ❌ | ✅ |
Libguestfs에서 지원 | ❌ | ✅ |
스트라티스가 지원하는 | ❌ | ✅ |
NBDE 사용은 다음과 같은 이유로 자동 원격 디스크 잠금 해제에 더 적합합니다.
- McCallum-Relyea 키 교환은 보다 안전한 메커니즘 입니다(암호화 키는 네트워크로 전송되지 않습니다).
- McCallum-Relyea 키 교환은 디스크 잠금 해제를 위해 클라이언트와 서버 간의 트래픽 암호화가 필요하지 않기 때문에 이러한 종류의 시나리오 배포를 단순화합니다.
- NBDE 사용이 통합된 다양한 기술(OpenShift, Ansible, Libguestfs 또는 Stratis)이 있습니다. 이러한 종류의 기술은 일반적으로 키 에스크로에 사용할 수 없으며, 사용할 수 있는 경우 구현이 훨씬 더 복잡합니다.
NBDE 구성
이 문서는 NBDE 구성 방법에 대한 자세한 설명을 제공하기 위한 것이 아닙니다. 자세한 지침은 다음 RHEL 제품 설명서를 참조하세요.
- 클라이언트 소프트웨어 Clevis 설치. Clevis 클라이언트 소프트웨어는 자동 잠금 해제가 필요한 암호화된 디스크가 있는 모든 시스템에 적절하게 설치되어야 합니다.
- 서버 소프트웨어 Tang 설치. 배포에 포함될 모든 시스템에 Tang 서버를 설치하고 시작해야 합니다.
- Tang 서버에 바인딩할 클라이언트 구성. 시작 프로세스 중 키 검색을 위해 하나 이상의 Tang 서버를 사용하도록 각 클라이언트를 적절하게 구성해야 합니다.
여러 클라이언트와 서버가 관련된 대규모 배포의 경우 NBDE Ansible 역할을 사용하는 것이 좋습니다.
키 순환
키 순환은 장기적으로 NBDE 환경의 보안을 유지하기 위한 메커니즘입니다. 기기 도난 등 데이터 유출 가능성이 있는 경우 키 순환을 권장합니다. 순환은 주기적으로 수행되어야 하며 기간은 다음과 같은 다양한 측면에 따라 달라집니다.
- 특정 배포에 대한 보안 제약
- 키 크기
- 기관 내부 방침
키 순환에는 세 가지 작업이 포함됩니다.
- 서버에서 새 키를 생성하고 기존 활성 키를 순환합니다. 새로 생성된 키가 광고 대상 키가 됩니다.
- 새로 생성된 키에 클라이언트를 다시 바인딩합니다. 클라이언트는 숨겨진 회전 키로 계속 작업하지만 새로 생성된 키를 사용하려면 리바인딩을 수행하는 것이 좋습니다.
- 서버에서 이전 키 삭제. 모든 Clevis 클라이언트에 새 키를 다시 입력하면 이전 키를 서버에서 제거할 수 있습니다. NBDE로 암호화된 모든 노드가 키 재생성을 완료하기 전에 이전 키를 삭제하면 해당 노드가 구성된 다른 Tang 서버에 종속되기 때문에 이 작업은 주의해서 수행해야 합니다. 다른 서버가 없으면 자동 잠금 해제가 불가능합니다. 요약하자면, 순환된 키는 모든 클라이언트가 새 키로 리바인드된 경우에만 제거할 수 있습니다. 그렇지 않으면 데이터 손실이 발생할 수 있습니다. .
다음 구성표는 키 순환 작업과 관련된 다양한 단계를 보여줍니다.
키 순환 작업에는 여러 단계가 포함되며, 이는 다소 수동적이므로 결과적으로 오류가 발생하기 쉽습니다. 그러나 NBDE Ansible 역할을 사용하면 키 순환 작업을 올바르게 수행하여 이전 단계를 각각 자동화하고 필요한 모든 작업이 올바른 순서로 성공적으로 수행되도록 할 수 있습니다.
NBDE 시나리오
NBDE 시나리오는 다음과 같은 배포의 필수 매개 변수를 사용하여 분류할 수 있습니다.
- 주변 보안
- 로드 밸런싱
- 지리적 중복성
간단한 NBDE 시나리오
매우 간단한 시나리오에는 하나 또는 소수의 클라이언트와 Tang 서버가 포함됩니다.
이러한 종류의 시나리오는 매우 제한적이며 다양한 오류 지점이 발생할 수 있으므로 매우 작은 테스트 배포 또는 개념 증명에만 사용하는 것이 좋습니다.
- 내부 네트워크 중단
- Tang 서버 중단
로드 밸런싱을 사용한 NBDE 시나리오
이전 시나리오와 비교하여 더 발전된 시나리오에는 트래픽을 분산하기 위한 로드 밸런싱 기능을 갖춘 하나 이상의 클라이언트와 하나 이상의 Tang 서버가 포함되어 있습니다.
이러한 종류의 시나리오는 이전 시나리오만큼 제한되지 않으며 지리적으로 중복된 네트워크를 배포할 가능성이 없는 소규모 조직에 좋은 진입점이 될 수 있습니다. 가능한 실패 지점은 다음과 같습니다.
- 내부 네트워크 중단
이러한 종류의 시나리오에는 SSS 핀을 사용하여 다양한 Tang 서버에 대해 Clevis를 구성하는 작업이 포함됩니다.
중복 네트워크 세그먼트가 있는 NBDE 시나리오
중복 네트워크 세그먼트가 있는 시나리오에서는 중복된 네트워크 세그먼트를 포함하여 이전 배포의 이전 오류 지점을 수정할 수 있습니다.
이러한 종류의 시나리오에는 모든 Tang 서버에 대해 Clevis를 구성하는 것도 포함됩니다. 네트워크 설계자는 SSS 핀을 사용하여 Clevis 클라이언트와 모든 Tang 서버 간의 로드 밸런싱을 구성합니다.
NBDE 배포는 관련된 용도 및 조직의 종류에 따라 여러 네트워크 토폴로지로 구성될 수 있습니다. 다양한 요구 사항(예: 로드 밸런싱 또는 백업)을 분석하고 특정 배포 요구 사항에 맞게 조정할 수 있습니다.
NBDE 재해 복구 고려 사항
이 섹션에서는 NBDE 배포에서 발생할 수 있는 몇 가지 잠재적인 재해 상황과 각 상황에 대응하는 절차를 설명합니다.
-
클라이언트 시스템 손실 :
Tang 서버를 사용하여 디스크 파티션의 암호를 해독하는 클러스터 노드의 손실은 재앙이 아닙니다. 머신이 도난당했는지, 하드웨어 오류가 발생했는지 또는 다른 손실 시나리오가 발생했는지 여부는 중요하지 않습니다. 디스크는 암호화되어 복구할 수 없는 것으로 간주됩니다.
그러나 도난이 발생하는 경우 Tang 서버의 키를 미리 교체하고 나머지 모든 노드의 키를 다시 입력하여 공격자가 Tang 서버에 액세스할 수 있는 경우에도 디스크를 복구할 수 없게 됩니다.
이 상황을 복구하려면 노드를 다시 설치하거나 교체하십시오. -
클라이언트 네트워크 연결 끊김 :
개별 노드에 대한 네트워크 연결이 끊어지면 노드가 자동으로 부팅될 수 없게 됩니다.
네트워크 연결이 끊어질 수 있는 배포를 계획하는 경우 현장 운영자가 수동으로 사용할 암호 문구를 공개한 다음 나중에 키를 순환하여 무효화할 수 있습니다.
노드에서 네트워크 액세스 권한이 부족하면 노드의 기능 및 부팅 기능에 영향을 줄 것으로 예상할 수 있습니다. 수동 개입을 통해 노드를 부팅할 수 있더라도 네트워크 액세스가 부족하면 사실상 쓸모가 없게 됩니다. -
네트워크 세그먼트 손실 :
각각 하나 이상의 Tang 서버를 포함하는 여러 네트워크 세그먼트가 있는 시나리오에서 Tang 서버를 일시적으로 사용할 수 없게 만드는 네트워크 세그먼트의 손실은 다음과 같은 결과를 초래합니다.- 다른 서버를 사용할 수 있는 경우 구성된 노드는 계속해서 정상적으로 부팅됩니다.
- 새 노드는 네트워크 세그먼트가 복원될 때까지 암호화 키를 설정할 수 없습니다. 이 경우 고가용성 및 중복성을 위해 원격 지리적 위치에 대한 연결을 확인하십시오. 이는 새 노드를 설치하거나 기존 노드의 키를 다시 입력할 때 해당 작업에서 참조하는 모든 Tang 서버를 사용할 수 있어야 하거나 프로비저닝 시간 동안 IP와 함께 Tang 서버 공개 키의 복사본을 사용할 수 있어야 하기 때문입니다. Tang 서버의 주소입니다.
-
Tang 서버 손실 :
동일한 키 자료를 가진 로드 밸런싱된 서버 세트 내에서 개별 Tang 서버의 손실은 클라이언트에게 완전히 투명합니다.
동일한 URL에 연결된 모든 Tang 서버, 즉 전체 로드밸런싱 세트의 일시적인 장애는 네트워크 세그먼트의 손실과 동일하게 간주될 수 있습니다. 기존 클라이언트는 사전 구성된 다른 Tang 서버를 사용할 수 있는 한 디스크 파티션의 암호를 해독할 수 있습니다. 새 클라이언트는 이러한 서버 중 하나 이상이 온라인 상태가 될 때까지 등록할 수 없습니다.
서버를 다시 설치하거나 백업에서 서버를 복원하여 Tang 서버의 물리적 손실을 완화할 수 있습니다. 키 자료의 백업 및 복원 프로세스가 무단 액세스로부터 적절하게 보호되는지 확인하십시오. -
주요 자료의 손상 :
Tang 서버 또는 관련 데이터의 물리적 도난과 같이 Tang 서버의 개별 키 자료가 손상되면 키를 즉시 교체해야 합니다. 구체적으로 다음 작업을 수행합니다.- 영향을 받는 자료를 보관하는 모든 Tang 서버에 키를 다시 입력합니다.
- Tang 서버를 사용하여 모든 클라이언트를 다시 입력합니다.
- 원래의 주요 자료를 삭제합니다.
특정 노드에서 마스터 암호화 키의 손상으로 이어질 수 있는 키 자료의 손상을 주의 깊게 평가하십시오. 이상적으로는 서버를 오프라인으로 전환하고 해당 디스크를 완전히 다시 암호화하는 것이 좋습니다. 동일한 물리적 하드웨어에서 다시 포맷하고 다시 설치하는 것은 시간이 오래 걸리더라도 더 쉽고 엄격하게 자동화하고 테스트할 수 있습니다.
결론
이 기사에서는 NBDE 기술에 사용되는 키 교환 알고리즘인 McCallum-Relyea와 함께 NBDE 기술에 대한 자세한 설명을 제공했습니다. 또한 키 에스크로와 같은 다른 솔루션과 비교할 때 NBDE가 암호화된 디스크의 자동 잠금 해제를 위한 더 나은 키 검색 솔루션인 이유를 자세히 설명했습니다.
참고 자료
[1] OpenShift Container Platform: 디스크 암호화 기술에 대하여
[2] RHEL 8 보안 강화: 13장. 정책 기반 암호 해독을 사용하여 암호화된 볼륨의 자동 잠금 해제 구성
[삼] RHEL 9 시스템 역할을 사용한 관리 및 구성 작업: 16장. nbde_client 및 nbde_server 시스템 역할 사용
Comments