신뢰의 높은 비용: macOS 코드 서명의 마찰

현대 인디 개발자에게 소프트웨어를 "shipping"하는 행위는 단순한 파일 전송에서 플랫폼 게이트키퍼와의 복잡한 협상으로 진화했습니다. Go와 같은 언어로 정적 바이너리를 컴파일하는 것은 거의 즉각적이지만, 보안 경고의 폭격을 유발하지 않고 해당 바이너리가 실제로 사용자의 기기에서 실행되도록 보장하는 과정은 상당한 스트레스와 경제적 부담의 원인이 되었습니다.

이러한 긴장은 Apple의 보안 아키텍처가 취미 활동가와 소규모 개발자에게 높은 진입 장벽을 만드는 macOS 생태계에서 가장 두드러집게 나타납니다. 개발자가 서명되지 않은 바이너리를 배포하면 macOS는 "quarantine"을 트리거합니다. 이는 앱 실행을 방지하고 사용자가 터미널이나 시스템 설정을 통해 수동으로 제한을 해제하도록 강제하는 보안 기능입니다. 전문적인 제품의 경우 이는 좋지 않은 사용자 경험을 제공하지만, 취미 활동가에게는 거대한 벽과 같습니다.

"Walled Garden"의 경제적 대가

이러한 경고를 우회하려면 개발자는 Apple Developer Program에 등록해야 합니다. 많은 이들에게 이 비용은 시작조차 할 수 없게 만드는 요인입니다. 이 프로그램은 연간 구독료(약 $99 USD)를 요구하며, 이는 왜곡된 경제적 유인을 만듭니다. 예를 들어 Itch.io와 같은 플랫폼에서 "pay-what-you-want" 모델로 작은 유틸리티를 출시한다면, 소프트웨어를 "official"하게 만들기 위해 시도하는 과정에서 실제로 돈을 잃을 수도 있습니다.

이러한 가격 구조는 "Serious Users" 또는 기성 기업들만이 소프트웨어를 배포하도록 권장하는 철학을 암시합니다. 한 개발자가 언급했듯이, 이러한 경제 구조는 소프트웨어 개발을 "home-cooked meal" 방식에서 배포 비용을 충당하기 위해 의무적으로 수익화를 해야 하는 방식으로 밀어붙입니다.

기술적 마찰과 신원 확인

경제적 비용을 넘어, 온보딩 과정은 기술적 장애물로 가득 차 있습니다. Apple의 신원 확인은 종종 정부 발행 신분증 사진을 찍기 위해 특정 기기(예: iPhone)의 앱을 사용하도록 요구합니다. 이는 하드웨어 의존성 루프를 생성합니다. Mac을 위한 소프트웨어를 배포하려면 iPhone을 소유해야 한다는 압박을 받게 되며, 신원 확인 과정은 조명이나 내장 웹캠의 오토포커스 문제로 인해 실패하는 경우가 많아 매우 까다롭기로 유명합니다.

결제가 완료되고 서류가 제출된 후에도 과정은 끝나지 않습니다. 개발자들은 계정 상태가 여러 기기에서 계속 "eventual consistency" 문제를 겪으며 대기 상태로 남아 있는 현상을 보고하며, 이는 이미 불투명한 과정에 더해져 좌절감을 더합니다.

시스템적 문제: Apple을 넘어

Apple이 이러한 불만의 주된 타겟이 되는 경우가 많지만, 이 문제는 코드 서명 산업 전체로 확장됩니다. Windows 배포가 특별히 더 쉽지는 않습니다. Certum과 같은 제3자 인증 기관은 연간 200 EUR 이상이 들 수 있습니다. Azure Artifact Signing과 같이 더 낮은 월간 요율을 제공하는 클라우드 기반 솔루션도 종종 개별 사용자 계층의 액세스를 특정 지역(예: US and Canada)으로 제한하여, EU 기반의 개인 개발자들을 곤란하게 만듭니다.

이는 코드 서명 분야의 "Let's Encrypt moment"를 요구하는 목소리로 이어졌습니다. 즉, 신뢰를 범용화하여 개인 개발자가 몇몇 대형 기업에 "rent-seeking" 세금을 내지 않고도 자신의 작업물을 암호화 방식으로 서명할 수 있도록 하자는 움직임입니다.

반론: 마찰의 필요성

모든 사람이 이러한 장애물을 순수하게 방해 요소로만 보지는 않습니다. 일부는 악성 소프트웨어가 기하급수적으로 증가하는 시대에 이러한 마찰이 필요한 악(evil)이라고 주장합니다. 이러한 관점에서는 경제적 및 신원 확인 장벽벽은 신뢰의 신호 역할을 합니다.

"소프트웨어에 내장된 악성 코드의 양이 기하급수적으로 증가하고 있습니다... Mac 사용자로서, 저는 개발자가 이 소프트웨어를 저에게 전달하기 위해 상당한 비용을액을 지불했는지 알고 싶습니다. 그것은 저에게 유용한 신호입니다."

하지만, 이 주장은 사용자가 자신의 기기기에 대한 궁극적인 제어권을 가져야 한다고 믿는 이들에 의해 반박됩니다. 일부는 파워 유저라면 터미널(sudo spctl --master-disable)을 통해 Gatekeeper를 단순히 비활성화할 수 있다고 제안하며, 기본 설정은 대중을 위해 제한적이어야 하지만 위험을 아는 사람들에게는 열려 있어야 한다고 주장합니다.

결론: 더 합리적인 대안의 필요성

기업용 코드 서명과 정부 주도 디지털 신원 확인 시스템의 사이선은 극명합니다. 발틱 국가들과 같은 일부 지역에서는 시민들이 SmartID 또는 eParaksts와 같은 도구를 사용하여 정부 발행 신분증으로 몇 초 만에 신원을 확인하거나 문서를 서명할 수 있습니다.

만약 국가적 수준에서 개인의 신원을 확인하고 문서를 암호화 방식으로 서명할 수 있는 인프라가 존재한다면, 소프트웨어에 대해서도 동일한 기술적 능력을 갖출 수 있습니다. 업계계가 비싸고 독점적인 walled garden 방식에서 벗어나지 않는 한, 인디 개발자들이 "publish" 버튼을 누를 때마다 그들의 "cortisol levels"는 계속해서 높아질 것입니다.n

Sources