Mac 응용 프로그램의 디지털 서명이 깨졌을 때 어떤 성가심이나 실제 문제가 발생할 수 있습니까?
Mac의 응용 프로그램은 디지털 서명이 가능합니다. 서명이 어떻게 든 깨어지면 몇 가지 응용 프로그램에서 알 수 있습니다. 그러나 나는 이것이 단지 성가신 일이거나 실제로 일을 부러 뜨릴 지 자세히 알지 못합니다.
OS X 방화벽이 임시 서명을 올바르게 설정하지 못하여 "응용 프로그램 '[..]'이 (가) 들어오는 네트워크 연결을 수락하도록 하시겠습니까?"
보호자 통제에서 허용 된 응용 프로그램이 더 이상 실행되지 않을 수 있습니까?
키 체인 접근이 끊어 졌습니까?
일부는 Apple 소프트웨어 업데이트가 실패 할 수 있다고 말합니다. 사실이라면 이것이 실제로 코드 서명 서명에 의존하는지 또는 전체 응용 프로그램에 대한 일부 일치하지 않는 해시 또는 BOM 파일의 정보 때문인지 궁금 합니다 .
아래에 더 많은 배경 정보가 있습니다.
코드 서명 세부 사항은 다음을 사용하여 표시 할 수 있습니다.
codesign --display -vv /Applications/iTunes.app/
... 다음과 같은 결과가 나올 것입니다 (그러나 수정에 대해서는 경고 하지 않습니다 ).
[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]
다음을 사용하여 서명을 확인할 수 있습니다.
codesign --verify -vv /Applications/iTunes.app/
어느 것이 산출 될까요?
/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement
... 또는 (애플리케이션의 ./Contents/Resources 폴더에 추가 파일을 넣는 경우에도) :
/Applications/iTunes.app/: a sealed resource is missing or invalid
... 또는 (위의 메시지보다 나쁠 수 있습니다) :
/Applications/iTunes.app/: code or signature modified
코드 서명은 OS 9 이전으로 돌아가지만 현재 구현 은 10.5 Leopard에서 도입 되었습니다. Ars Technica의 글을 참고하세요 :
코드 서명은 암호로 확인할 수있는 ID를 코드 모음에 연결하고 해당 코드에 대한 수정이 감지되도록합니다. 관련된 당사자에 대해 보증하지 않습니다. 예를 들어 Acme Inc.에서 서명 한 응용 프로그램을 다운로드 한 경우 마지막으로 웹 사이트에서 무언가를 다운로드했을 때 Acme Inc.라고 주장하는 동일한 법인에서 온 것 외에는 그에 대한 증거가 없습니다.
이 예제는 실제로 소비자의 관점에서 가장 유용한 기술 적용을 강조합니다. 오늘날 Mac OS X 응용 프로그램을 업그레이드 할 때 (10.4 Tiger, AvB), 사용자는이 응용 프로그램이 키 체인에 액세스하여 사용자 이름과 암호를 검색 할 수 있는지 다시 확인하라는 메시지를 종종받습니다. 이것은 좋은 보안 기능처럼 보이지만 실제로는 Mac 사용자가 나타날 때마다 "항상 허용"을 맹목적으로 클릭하도록 훈련시키는 것입니다. 그리고 실제로, 일반 사용자는 무엇을하고, 디스어셈블러를 통해 실행 파일을 실행하고 코드가 안전한지 수동으로 확인합니까?
반면에 서명 된 응용 프로그램은 과거에 신뢰를 표명했던 동일한 공급 업체의 동일한 응용 프로그램의 새 버전임을 수학적으로 증명할 수 있습니다. 결과적으로 안전을 확인하는 합리적인 방법이없는 선택을 확인하도록 요청하는 대화 상자가 종료됩니다.
10.5 Leopard의 방화벽에 대해 Apple은 다음 과 같이 설명합니다 .
이 목록에 응용 프로그램을 추가하면, Mac OS X은 응용 프로그램에 디지털 서명을합니다 (서명되지 않은 경우). 나중에 응용 프로그램을 수정하면 들어오는 네트워크 연결을 허용하거나 거부하라는 메시지가 표시됩니다. 대부분의 응용 프로그램은 자체적으로 수정되지 않으며 변경 사항을 알려주는 안전 기능입니다.
[..]
시스템에서 신뢰하는 인증 기관 (코드 서명을 위해)에 의해 디지털 서명 된 목록에없는 모든 응용 프로그램은 들어오는 연결을 수신 할 수 있습니다. Leopard의 모든 Apple 응용 프로그램은 Apple이 서명했으며 들어오는 연결을 수신 할 수 있습니다. 디지털 서명 된 응용 프로그램을 거부하려면 먼저 목록에 추가 한 다음 명시 적으로 거부해야합니다.
10.6 Snow Leopard에서는 "서명 된 소프트웨어가 들어오는 연결을 자동으로 받도록 허용합니다. 유효한 인증 기관에서 서명 한 소프트웨어가 네트워크에서 액세스 한 서비스를 제공 할 수 있도록 허용"으로 명시 적이며 비활성화 될 수 있습니다.
(10.6에서 "모든 들어오는 연결 허용", "필수 서비스 만 허용"및 "특정 서비스 및 응용 프로그램에 대한 액세스 설정"10.5.1 옵션이 "모든 들어오는 연결 차단"또는 목록에 대한 선택으로 개정되었습니다. 허용 된 응용 프로그램 및 옵션 "서명 된 소프트웨어가 들어오는 연결을 자동으로 받도록 허용"및 "스텔스 모드 활성화" 10.5.1 업데이트 이전에는 "필수 서비스 만 허용"이 실제로 "모든 들어오는 연결 차단"이라고했습니다.)
원래 서명이 손상 된 (Apple) 응용 프로그램의 경우이 임시 서명이 유지되지 않을 수 있으며 구성, mDNSResponder 및 너구리 에 문제 를 일으킨 것으로 알려져 있습니다 .