밀랍에 눌러 찍은 커다란 옛 인장의 앞면

「확인되지 않은 개발자」는 무엇을 확인 못 했다는 뜻인가 — 서명과 공증

참고자료 · 자료 시점
핵심 출처 — Apple 지원 문서 — 확인된 개발자의 앱 열기 안내, Apple 개발자 문서 — 코드 서명(code signing)과 공증(notarization) 개념, 확장 속성을 이용한 격리 표식(quarantine attribute) 동작 개념, 서명 검증과 악성코드 검사의 구분에 관한 보안 일반 원리
자료 시점 — macOS 보안 개념 전반
정리 — Inkpipes 편집팀 · 2026.8

맥에서 내려받은 앱을 처음 열면 이런 경고가 뜹니다. 「확인되지 않은 개발자가 배포했기 때문에 열 수 없습니다.」

많은 분이 이것을 「이 앱은 위험하다」로 읽습니다. 그런데 문장을 그대로 보면 다릅니다. 확인이 «안 됐다»는 뜻입니다. 위험하다고 말한 것이 아닙니다.

그러면 무엇을 확인하려 했던 걸까요.

서명 — 「누가 만들었나」

첫 번째 층은 코드 서명입니다.

개발자는 애플이 발급한 인증서로 앱에 서명합니다. 이 서명이 하는 일은 둘입니다.

  • 누가 만들었는지 밝힙니다. 익명이 아니게 됩니다.
  • ★내려받는 동안 바뀌지 않았음을 보증합니다. 서명은 앱의 내용에 대해 계산되므로, 한 글자라도 달라지면 서명이 깨집니다.

여기서 중요한 것은 서명이 「안전하다」를 말하지 않는다는 점입니다. 봉인된 편지와 같습니다. 봉인은 중간에 뜯기지 않았다는 것을 보증할 뿐, 안에 무엇이 들었는지는 말하지 않습니다.

봉랍으로 봉인된 옛 우편 봉투
봉인은 «내용이 안전하다»가 아니라 «중간에 뜯기지 않았다»를 보증합니다. 서명과 공증도 같은 성격입니다. 자료: Russia Post / Wikimedia Commons (Public domain)

공증 — 「애플이 한 번 봤다」

두 번째 층은 공증입니다. 서명과 자주 혼동됩니다.

서명은 개발자가 합니다. 공증은 개발자가 앱을 애플에 보내고, 애플이 검사한 뒤 통과 표시를 돌려주는 절차입니다.

이 검사에는 악성코드 검사가 포함됩니다. 다만 애플이 검사 항목의 상세를 공개하지 않으므로, 이 글에서 「무엇을 어떻게 본다」고 적지 않겠습니다.

그리고 한 가지 더 알아 두셔야 합니다. 공증은 「애플이 이 앱을 검토하고 승인했다」가 아닙니다. 앱스토어 심사와는 다른 절차입니다. 공증은 자동 검사에 가깝고, 앱의 품질이나 기능을 보증하지 않습니다.

격리 표식 — 「밖에서 왔다」

세 번째 층은 눈에 잘 안 보입니다.

브라우저나 메시지 앱으로 파일을 받으면, 시스템이 그 파일에 「이건 밖에서 왔다」는 표식을 붙입니다. 파일에 딸린 별도의 정보로 저장됩니다.

그래서 이런 차이가 생깁니다.

  • 인터넷에서 받은 앱 → 표식이 붙음 → 처음 열 때 검사와 경고
  • 직접 만든 앱, 터미널로 옮긴 파일 → 표식이 없을 수 있음 → 경고가 안 뜸

⇒ 그래서 「같은 앱인데 어떤 건 경고가 뜨고 어떤 건 안 뜬다」가 설명됩니다. 앱이 달라서가 아니라 «어떻게 도착했는가»가 다른 것입니다.

그래서 그 경고는 무슨 뜻인가

세 층을 합치면 경고의 의미가 정확해집니다.

  • 「확인되지 않은 개발자」 — 서명이 없거나, 애플이 발급한 인증서로 서명되지 않았습니다.
  • 「손상되었기 때문에 열 수 없습니다」 — ★이 문구는 오해를 많이 삽니다. 파일이 깨졌다는 뜻이라기보다 서명 검증에 실패했다는 뜻일 수 있습니다. 내려받다 끊겼거나, 서명이 없거나, 공증 확인이 안 된 경우입니다.
  • 경고 없이 열림 — 서명과 공증이 확인됐거나, 격리 표식이 없는 경로로 들어온 것입니다.

우클릭으로 열면 왜 되나

이 방법은 널리 알려져 있는데, 무엇이 달라지는지는 잘 이야기되지 않습니다.

그냥 더블클릭하면 시스템은 「확인 안 됨 → 차단」으로 끝냅니다. 반면 우클릭 후 열기를 고르면 「사용자가 이 앱을 열겠다고 명시적으로 선택했다」는 신호가 됩니다. 그러면 확인 후 실행이 허용됩니다.

★핵심은 이것입니다. 검사가 통과된 것이 아니라 여러분이 «책임을 진 것»입니다. 시스템은 판단을 사용자에게 넘겼습니다.

⚠️그래서 이 동작은 출처를 아는 앱에만 쓰셔야 합니다. 개발자 이름을 확인할 수 없고 어디서 받았는지도 모른다면, 경고를 우회할 이유가 없습니다.

⛔그리고 터미널로 격리 표식을 지우는 방법은 이 글에 싣지 않겠습니다. 보안 장치를 파일 단위로 무력화하는 수단이고, 그 결과를 판단할 수 있는 분은 이미 알고 계십니다.

서명이 있어도 안심은 아닙니다

여기서 반대편으로도 선을 그어야 합니다. 경고가 «안 뜨는» 것이 「검증된 안전」을 뜻하지 않습니다.

이유는 세 가지입니다.

하나, 서명은 신원이지 품질이 아닙니다. 인증서를 받은 개발자도 나쁜 앱을 만들 수 있습니다. 서명은 그때 누가 만들었는지 추적할 수 있게 해 줄 뿐입니다. ⇒ 오히려 그것이 억지력입니다.

둘, 공증은 자동 검사입니다. 사람이 앱의 동작을 하나하나 살펴본 것이 아닙니다. 자동 검사를 통과하도록 만들어진 악성 소프트웨어가 있을 수 있습니다.

셋, 통과 뒤에 바뀔 수 있습니다. 앱이 설치된 뒤 내려받는 추가 구성 요소나, 앱이 접근하는 원격 서버의 내용은 최초 검사 대상이 아닙니다.

⇒ 그래서 애플은 나중에 문제가 발견되면 그 개발자의 인증서를 무효로 만들 수 있습니다. 그러면 이미 설치된 앱도 실행이 막힙니다. ★검증이 «한 번 통과하면 끝»이 아니라 계속 유지되는 상태라는 뜻입니다.

무엇을 보고 판단할까

  • 개발자 이름이 나오는가. 서명이 있으면 경고 문구에 만든 쪽이 표시됩니다.
  • 어디서 받았는가. 개발사 공식 사이트인지, 검색으로 나온 다운로드 사이트인지가 다릅니다.
  • 같은 앱을 다른 경로로 구할 수 있는가. 앱스토어나 공식 배포처가 있다면 그쪽이 낫습니다.
  • 경고 문구를 읽으십시오. 「확인되지 않음」과 「손상됨」과 「악성 소프트웨어가 포함되어 있음」은 다른 말입니다. 마지막 것은 실제로 검출된 경우입니다.

정리하면

  • 경고는 「위험하다」가 아니라 「확인할 수 없다」는 뜻입니다.
  • 서명은 「누가 만들었나」와 「바뀌지 않았나」를 보증합니다. 안전을 보증하지 않습니다.
  • 공증은 개발자가 애플에 보내 검사받는 절차이고 악성코드 검사를 포함합니다. ★검사 상세는 애플이 공개하지 않습니다.
  • ★공증은 앱스토어 심사가 아닙니다. 품질이나 기능을 보증하지 않습니다.
  • 격리 표식은 「밖에서 왔다」를 기록합니다. 같은 앱도 도착 경로에 따라 경고가 갈립니다.
  • ★우클릭 열기는 검사를 통과시키는 것이 아니라 책임을 사용자가 지는 것입니다.
  • ★경고가 «안 뜨는» 것도 「안전 검증」이 아닙니다. 서명은 신원이고 공증은 자동 검사이며, 통과 뒤에 바뀔 수 있습니다.
  • 검증은 한 번 통과하면 끝이 아닙니다. 문제가 드러나면 인증서가 무효가 되고 이미 설치된 앱도 막힙니다.
  • 문구를 구분해 읽으십시오. 「확인되지 않음」·「손상됨」·「악성 소프트웨어 포함」은 각각 다릅니다.

본 콘텐츠는 macOS 보안의 공개된 개념을 정리한 해설입니다. 공증 검사의 상세 항목은 애플이 공개하지 않아 적지 않았고, macOS 버전별 설정 경로는 자주 바뀌므로 싣지 않았습니다. 격리 표식을 제거하는 명령은 보안 우회 수단이라 의도적으로 싣지 않았습니다. 최종 확인일: 2026-08-28.

작성: Inkpipes 편집팀 — 「위험하다」와 「확인이 안 된다」 사이의 거리를 좁히는 것이 목표였습니다.

참고

  • Apple 지원 문서, 확인된 개발자의 앱 열기
  • Apple 개발자 문서, 코드 서명과 공증
  • 격리 표식의 동작과 도착 경로에 따른 차이
  • 서명 검증과 악성코드 검사의 구분

Similar Posts