프로파일은 설정 화면에 이름, 서명자, 설치 버튼과 함께 나타나며, 사람들이 가장 많이 읽는 부분은 서명자 줄입니다. 그 줄은 한 가지 질문에만 답합니다: 서명 검증 규칙에 따르면 누가 이 설정을 포장했는가 하는 점입니다. 그것은 VPN 페이로드가 회사 게이트웨이를 가리킨다거나, 포함된 루트 인증서가 TLS 신뢰 저장소에 들어가야 한다고 말해 주지 않습니다. 아래 설명은 기기가 실제로 적용하는 순서대로 패키지를 열어 봅니다.

봉투부터: 누가 이 프로파일에 서명했는가

iOS에서 프로파일은 설정, 일반, VPN 및 기기 관리에 나타나며, 설치 버튼 위에 서명자가 표시됩니다. 무엇이든 누르기 전에 그 이름을 읽고, 설정을 받을 것으로 예상한 조직이 맞는지 물어보십시오. 모르는 주체가 발급한 유효한 서명도 여전히 유효한 서명이며, 그것은 내 구성이 아니라 그들의 구성을 승인합니다. 같은 화면에서 프로파일에 서명이 되어 있는지 자체도 알 수 있습니다.

Mac에 파일이 있다면 휴대폰에 도달하기 전에 검사하십시오. 보안 도구가 CMS 봉투를 해독해 기기가 읽을 plist를 출력하므로, 설치 버튼에 가로막히지 않은 같은 내용을 볼 수 있습니다. Apple의 구성 적용 문서는 서명을 출처 검증으로 설명하는데, 그것이 바로 여기서 다루는 범위입니다.

security cms -D -i corp-vpn.mobileconfig -o corp-vpn.plist
plutil -p corp-vpn.plist

서명자가 예상과 다르거나, 파일이 서명되지 않은 채 신뢰를 보증할 수 없는 경로로 왔다면 여기서 멈추십시오. 이 설명의 뒤에 오는 어떤 내용도 신뢰할 수 없는 봉투를 신뢰할 수 있게 만들지 않습니다.

각 페이로드를 열어 무엇을 설치하는지 이름 붙이기

프로파일은 컨테이너이고, 흥미로운 부분은 그 안의 PayloadContent 배열입니다. 각 항목에는 기기가 무엇을 설치할지 알려 주는 PayloadType가 있습니다: 관리형 VPN 구성, PKCS#12 아이덴티티, 루트 인증서 또는 관리 등록입니다. 설정을 읽기 전에 유형부터 출력하십시오.

plutil -extract PayloadContent xml1 -o - corp-vpn.plist |
  grep -E 'PayloadType|PayloadDisplayName'

VPN 페이로드는 연결을 지정합니다: 서버 주소, 인증 방식, 그리고 경우에 따라 앱별 또는 요청 시 규칙입니다. 아이덴티티 페이로드는 그 연결이 제시할 클라이언트 자격 증명을 제공합니다. 루트 인증서 페이로드는 신뢰 앵커를 추가하고, 관리 페이로드는 지속적인 제어를 서버에 넘깁니다. 이것은 서로 다른 네 가지 약속이며, 서명은 패키지 전체를 덮을 뿐 각각을 따로 보증하지 않습니다. VPN은 아이덴티티 없이는 쓸모가 없고 아이덴티티는 누가 발급했는지 모르면 의미가 적으므로, 이 순서대로 읽으십시오.

파일의 암호 보호는 또 다른 속성입니다. 암호화된 패키지는 암호가 없는 사람에게 내용을 숨기지만 그 안의 것을 승인해야 하는지 결정하지는 않습니다. 암호는 검토가 아니라 전달 수단으로 취급하십시오.

인증서를 그것을 사용하는 연결까지 추적하기

패키지의 인증서를 나열하고 각각을 하는 일과 연결하십시오. 클라이언트 인증서는 이 기기를 게이트웨이에 식별시키고, 그것을 발급한 CA는 그 연결의 신뢰 체인에 속하며, 프록시나 내부 서비스를 위해 설치한 루트가 모든 HTTPS 사이트의 앵커가 되는 것은 아닙니다. iOS에서 직접 설치한 루트는 설정, 정보, 인증서 신뢰 설정에서 활성화할 때까지 TLS에 대해 신뢰되지 않지만, 관리로 배포된 루트는 그 단계 없이 신뢰됩니다. 그 차이가 바로 페이로드의 목적이 중요한 이유입니다.

openssl pkcs7 -inform DER -in corp-vpn.mobileconfig -print_certs -noout
security find-certificate -a -c "Corp Root" -p | openssl x509 -noout -subject -dates

트래픽을 중계하는 제공자가 그 이유만으로 방문하는 모든 웹사이트의 TLS 종단점이 되는 것은 아닙니다. 가로채기에는 트래픽 경로와 애플리케이션이 받아들이는 신뢰 앵커가 필요하며, 인증서 하나를 담은 프로파일은 둘 다 증명하지 않습니다. 프로파일 설치가 모든 것을 복호화한다고 가정하지 말고, 어느 연결이 그 인증서를 쓰고 어느 애플리케이션이 그것을 받아들이는지 물어보십시오.

설치 후: 확인하고, 제거가 무엇을 하는지 알기

프로파일을 설치한 뒤에는 내려받은 파일이 아니라 기기에서 확인하십시오. 설정 화면은 설치된 프로파일과 서명자, 페이로드를 나열하고, VPN 화면은 연결이 의도대로 구성되었는지 보여 줍니다. 내려받은 파일을 삭제해도 아무것도 지워지지 않으며, 설치된 구성은 별개의 객체입니다.

profiles show -type configuration
scutil --nc list

프로파일에 관리 등록이 포함되어 있다면 설치한 뒤가 아니라 설치 전에 제거 결과를 읽으십시오. 그 등록을 제거하면 관련 구성이 함께 사라지고, 기기가 어떻게 등록되었는지에 따라 관리형 앱도 제거될 수 있습니다. 인증서가 이상해 보일 때 시도할 수리 단계가 아닙니다. 무엇이든 제거하기 전에 관리자에게 어느 페이로드가 문제를 일으키는지 물어보십시오.

이 설명은 네 가지 별개의 답으로 끝납니다: 누가 패키지에 서명했는지, 어떤 페이로드를 설치하는지, 각 연결이 어떤 아이덴티티와 신뢰를 쓰는지, 제거하면 무엇이 함께 사라지는지입니다. 그것들을 분리해 두면 서명된 프로파일은 초록색 체크 표시가 아니라 검토된 결정이 됩니다.

관련 글