루트 키 없이 VPN 인증서 발급을 위임하기
인증서 발급은 권한이고, 루트 키 보유는 능력이다. 중간 인증서는 전자를 제한하며, 계정 삭제는 침해가 아니다.
누군가에게 VPN 클라이언트를 등록할 수 있는 능력을 주는 것과 루트 키의 휴대 가능한 사본을 주는 것은 서로 다른 행위이며, 그 차이는 그 사람이 떠나거나 그 키가 유출될 때에야 드러난다. 전자는 당신이 통제하는 워크플로 안의 작업을 부여하고, 후자는 어디서든, 오프라인으로, 무기한 신뢰를 만들어 낼 능력을 부여한다. 어떤 키 자료든 만지기 전에 그 일이 어느 쪽을 필요로 하는지 결정하라. 계충도는 그 질문에 답해 주지 않는다.
등록 업무를 세 가지 질문으로 적어라. 누가 요청할 수 있는가, 누가 승인하는가, 발급 구성 요소가 무엇에 서명할 수 있는가.
어떤 능력을 주는지 결정하라
발급 서비스는 서명 자료를 별도 소유자 아래에 두면서 승인 워크플로를 노출할 수 있다. 운영자가 장치 요청을 승인하고, 서비스가 정책을 적용하고 발급을 기록하며, 관계자 누구도 CA 키를 보유하지 않는다. 허용된 신원, 승인자, 서비스가 서명할 수 있는 범위를 문서화하고, 그 관리도 키만큼 신중하게 보호하라. 인증서 서명 요청은 요청이지 인가 결정이 아니다.
하드웨어 기반 저장은 키가 복사될 위험을 바꿀 뿐, 인가의 필요성은 바꾸지 않는다. 내보낼 수 없음은 키를 꾼낼 수 없다는 뜻이며, 서명 인터페이스를 호출할 수 있는 누구나 인증서를 받을 자격이 있다는 뜻은 아니다. 이 두 속성은 따로 평가하라.
중간 인증서는 권한을 제한한다
루트는 일상 발급을 위해 중간 인증서를 인증할 수 있으므로, 루트 자체의 서명 및 복구 절차가 보호되는 한 정형 작업이 더 이상 루트 키를 건드리지 않는다. 이는 실제 경계이며 공짜가 아니다. 인증서 하나, 키 하나, 갱신 하나, 그리고 유지해야 할 폐기 목록 하나가 더 필요하다. 관리상 또는 위험상 의도된 경계를 나타낼 때 사용하라. 관리자마다 발급자를 만들면 모든 것이 더 늘어날 뿐이며 워크플로가 이미 제공하지 않던 것을 사지 못한다.
VPN 검증기가 예상대로 체인을 만드는지 확인하라. 체인 구성을 위해 중간 인증서를 배포하는 것과 그것을 직접 신뢰되는 앵커로 설치하는 것은 다른 배치다.
pathLen 영은 생각하는 의미가 아니다
RFC 5280 4.2.1.9 절은 기본 제약을 정의하며, 경로 길이 필드는 유효한 경로에서 자기 발급이 아닌 중간 인증서가 몇 개까지 이어질 수 있는지 제한한다. 값 영은 추가 중간 깊이를 제한할 뿐, 최종 개체 인증서의 수를 제한하지 않는다. 사람들은 이를 인증서가 하나도 허용되지 않는다고 읽고 왜 발급이 여전히 동작하는지 궁금해한다. 이 필드를 CA에 대한 깊이 제한으로 읽으면 동작은 예측 가능해진다.
같은 절은 신뢰 앵커가 경로 내부의 평범한 인증서가 아니라 경로 검증의 입력임을 시사한다. 그래서 자체 서명 루트에 대한 폐기 항목을 게시해도 모든 저장소에서 확실히 제거되지는 않는다.
퇴사는 키 침해가 아니다
떠나는 사람이 개인 관리 계정만 보유했다면, 지원되는 신원 절차를 통해 그 접근과 세션을 취소하고, 그가 만든 활동과 승인을 검토하라. 이전에 발급된 클라이언트 인증서는 승인자가 떠났다고 해서 무효가 되지 않으며, 침해로 취급하면 크고 불필요한 재등록이 생긴다. 계정 비활성화로 복사된 서명 키를 무효화할 수도 없으므로, 대응은 어느 능력이 보유되었는지에 달려 있다.
중간 인증서가 침해되면 그 인가를 철회하고 그것이 보증한 모든 신원을 교체해야 하며, 검증기가 적용하는 정책을 따른다. 루트 신뢰는 자체 대응이 필요하다. 앵커는 당신이 통제하지 못할 수 있는 신뢰 저장소에 살기 때문이다.
네 가지 구체적 사례로 설계를 받아들여라. 자격 있는 장치가 등록된다, 승인되지 않은 요청은 거부된다, 제거된 운영자는 더 이상 발급할 수 없다, 은퇴한 발급자는 더 이상 접근을 부여하지 않는다. 그 네 가지 결과가 런북이다.