인증서의 공개 필드를 읽는 데에는 그에 맞는 개인 키를 표시할 필요가 없으며, 그렇게 하는 도구는 VPN을 종료하는 모든 시스템에 함께 제공됩니다. 위험은 한 단계 앞, 즉 건네받은 파일이 인증서가 아닐 수도 있다는 데 있습니다. PEM 인증서, DER 덩어리, PKCS#12 번들, 그리고 OpenVPN 프로필은 같은 이름으로 도착하면서 전혀 다른 자료를 담을 수 있으므로, 명령을 고르기 전에 컨테이너를 식별해야 합니다.

어떤 명령이 안전한지는 세 가지 사실, 즉 파일이 무엇을 담고 있는지, 그 파일에서 무엇을 읽어야 하는지, 출력을 누가 보게 되는지에 달려 있습니다. 이 중 하나라도 틀리면 검사 자체가 사고가 됩니다.

건네받은 세 파일 중 어느 것인지

PEM 인증서는 BEGIN과 END 표시가 보이는 텍스트이고, DER 파일은 입력 형식 플래그가 필요한 바이너리이며, 번들은 인증서 옆에 키를 담을 수 있는 컨테이너입니다. file server.crt는 텍스트와 바이너리를 순식간에 구분하고, 첫 줄만 봐도 순수 인증서와 인증서를 내장한 프로필이 구분됩니다. 여기서 추측하는 것이 검사를 사고로 바꿉니다.

파일이 인증서가 아니라 프로필이라면, 반증될 때까지 자격 증명으로 취급하십시오. 그 가정에는 비용이 들지 않으며, 이 작업 전체에서 가장 흔한 실수를 막아 줍니다.

PEM 인증서의 공개 필드 읽기

검사 권한이 있는 인증서라면, -noout와 함께 쓰는 x509 하위 명령은 선택한 필드만 출력하고 그 밖의 것은 출력하지 않습니다. 본문을 억제하는 것이 출력을 메타데이터로 유지하며, 그래서 티켓에 붙여 넣어도 안전합니다. 아래 선택자는 공개 항목이며, openssl x509 문서에 나머지가 정리되어 있습니다.

openssl x509 -in server.crt -noout -subject -issuer -dates -fingerprint -sha256

로컬에서 생성한 테스트 인증서에서 그 명령은 주체와 발급자 줄, notBefore와 notAfter 쌍, SHA-256 지문 하나를 출력합니다. 그 필드들은 객체를 식별할 뿐, 유효한 신뢰 경로를 세우지는 않으며, 신뢰 경로는 자체 명령과 자체 답을 가진 별도의 검증 작업입니다. 체인 파일도 파일을 직접 반복하지 않으면 첫 인증서만 출력할 수 있습니다. 이렇게 두 파일을 비교하는 데는 명령 하나면 충분하고, 상대가 실제로 어느 것을 제시하는지 판정됩니다.

인증서 옆에 키를 담은 번들

.p12 또는 .pfx 파일은 개인 키를 담을 수 있고, 출력의 그 부분을 억제하지 않으면 파싱 명령이 그것을 출력합니다. -nokeys를 사용하면 같은 명령이 가려진 키 백을 포함한 컨테이너 구조를 보고하면서도 어떤 키 자료도 내보내지 않으며, 그 플래그를 빼면 터미널과 셸 기록에 키 블록이 나타납니다.

openssl pkcs12 -in bundle.p12 -nokeys -info -passin env:P12PASS

OpenVPN 프로필은 같은 자료를 텍스트로 내장하므로, 어디를 봐야 하는지 알면 경계가 보입니다. 공개 자료는 BEGIN CERTIFICATE와 END CERTIFICATE 사이에 있고, BEGIN PRIVATE KEY와 그에 맞는 END 줄 사이의 것은 키이며 호스트를 떠나서는 안 됩니다. 프로필을 통째로 복사하면 둘 다 공개됩니다.

참조 값을 다른 곳에서 얻기

검증하려는 연결에서 읽은 지문은, 신뢰하지 않는 상대가 그것을 제공했기 때문에, 아무것도 증명하지 못합니다. 이것은 지문에 반대하는 논리가 아니라 출처에 관한 논리입니다. 상대가 쓸 수 없는 경로로 얻은 값, 예를 들어 내부 저장소에 게시된 인증서나 서명된 변경 기록에 인쇄된 해시와 비교하십시오.

신뢰 저장소가 검증을 수행한다면 그렇게 하게 두고, 당신의 비교로 대체하지 말고 그것이 내는 오류를 읽으십시오. 중요한 구분은 참조를 누가 제공했는지이지, 어떤 해시 함수를 썼는지가 아닙니다.

결과 공유하기, 그리고 실수 후에 할 일

정확한 검증 오류, 관련 날짜, 그리고 받는 사람에게 필요한 신원 세부 정보만 보내십시오. 내부 호스트 이름과 계정 식별자는 키가 없어도 민감하게 남으며, 공개 붙여넣기 서비스는 그 무엇에도 잘못된 목적지입니다. 티켓에 붙여 넣고, 다른 사람이 공유하는 임시 버퍼에는 넣지 마십시오.

키 자료가 화면이나 파일에 실제로 나타났다면, 아무도 보지 않았기를 바라는 대신 유출된 것으로 보고 교체하십시오. 그 기록이 겁을 절차로 바꾸기 때문에, 그런 다음 검사한 파일, 사용한 명령, 출력이 간 곳을 기록하십시오. 아무도 스크린샷을 남기지 않았다고 가정하는 비용에 비하면 교체는 저렴하며, 같은 기록이 다음 엔지니어에게 어떤 파일을 건드렸는지 알려 줍니다. 티켓이 닫히기 전에 둘 다 하십시오.

관련 글