답변:
정보는 확장 된 속성 내에 저장되며 추가 정보는 잠재적으로 응용 프로그램에 임베드됩니다.
이 격리 정보는 확장 된 속성으로 저장됩니다 . xattr
도구를 사용하여 파일 또는 애플리케이션과 연관된 속성을보십시오.
이 메시지를 발생시키는 속성은 com.apple.quarantine
입니다.
Mac OS X에서 파일의 "확장 속성"을 제거하는 방법을 참조하십시오 . 그리고 이 정체 불명의 개발자에게 있기 때문에 응용 프로그램을 열 수 없습니다 자세한 내용은.
확장 속성은 macOS의 Gatekeeper 에서 사용되며 com.apple.quarantine 속성을 설정 (복원)하는 방법에서 설명 합니다.
응용 프로그램에 포함 된 선택적 디지털 서명은 응용 프로그램 개발자를 결정하는 데 사용됩니다. 서명이 없으면 macOS는 응용 프로그램을 식별되지 않은 개발자의 것으로 표시합니다.
실제로 "알 수없는 개발자 ..."라는 메시지 는 실제 서명 상태가 com.apple.quarantine 속성 확인 및 코드 서명 리소스 (* / Contents / _CodeSignature / CodeResources) 와 두 가지 작업이 결합 된 결과입니다. * / CodeResources에 의해서만 결정됩니다 .
다음을 입력하여 확장 된 속성을 얻을 수 있습니다.
$ xattr -p com.apple.quarantine /Applications/*.app
코드 서명 정보는 다음을 입력하여 액세스합니다.
$ codesign -dvvv /Applications/*.app
예:
$ codesign -dvvvv /Applications/Google\ Chrome.app/
Executable=/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Identifier=com.google.Chrome
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=273 flags=0x800(restrict) hashes=3+3 location=embedded
OSPlatform=36
OSSDKVersion=658432
OSVersionMin=657664
Hash type=sha256 size=32
CandidateCDHash sha1=bc8e3dffe7d9d5242e09ea80a220ed365d46fdf2
CandidateCDHash sha256=d7ae6211906bb17d593ce9c215d190a81f37e658
Hash choices=sha1,sha256
Page size=4096
CDHash=d7ae6211906bb17d593ce9c215d190a81f37e658
Signature size=8949
Authority=Developer ID Application: Google, Inc. (EQHXZ8M8AV)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=20. Mar 2018 at 07:23:20
Info.plist entries=36
TeamIdentifier=EQHXZ8M8AV
Sealed Resources version=2 rules=7 files=203
Internal requirements count=1 size=240
가장 중요한 부분은 인증서 체인 (및 신뢰 체인)입니다.
Authority=Developer ID Application: Google, Inc. (EQHXZ8M8AV)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
여기에 세 가지 다른 권한이 표시됩니다.
이는 앱이 개발자 인증서로 서명되고 Apple의 중간 개발자 기관에서 게시 및 서명 한 것이며, 자체 인증서는 Apple의 루트 CA에서 게시 및 서명 한 것입니다.
이 체인은 Google (또는보다 정확하게는 팀 / 단위 Google, Inc. (EQHXZ8M8AV))을 Apple 공인 개발자로 인정합니다.
직접 공동 설계하거나 다른 중간 / 루트 기관의 공동 설계 인증서로 앱을 공동 설계 할 수도 있지만 게이트 키퍼를 극복 할 수는 없습니다.
게이트 키퍼가 활성화되었다고 가정하면 (자체 서명 / 외계 서명은 고려하지 않음) 이제 네 가지 순열이 가능합니다.
처음 두 경우에는 앱이 시작됩니다. 세 번째 경우에는 Unindentified Developer 메시지가 나타납니다. 확장 된 속성 xattr -d com.apple.quarantine *
(= case 1) 을 제거하여이 문제를 해결할 수 있습니다 . 네 번째 경우에는 "*는 인터넷에서 다운로드되었습니다. 열겠습니까?"라는 메시지가 나타납니다.
macOS는이 정보를 어떻게 확인할 수 있습니까? 앱의 서명 메타 데이터는 어디에 저장됩니까?
서명은 응용 프로그램 이진 자체 내에 저장되며 응용 프로그램 번들 (파일 Contents/_CodeSignature/CodeResources
) 에 일부 추가 데이터가 있습니다.
명령 행 유틸리티를 사용하여 서명에 대한 정보를 얻을 수 있습니다 ( codesign
예 :
# codesign -dv /Applications/Preview.app
Executable=/Applications/Preview.app/Contents/MacOS/Preview
Identifier=com.apple.Preview
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20100 size=21314 flags=0x0(none) hashes=659+5 location=embedded
Platform identifier=4
Signature size=4485
Info.plist entries=35
TeamIdentifier=not set
Sealed Resources version=2 rules=13 files=2077
Internal requirements count=1 size=68