アドホックコード署名
自分でコンパイルし、コード署名が必要なサードパーティのアプリケーションおよびバイナリの場合は、アドホックコード署名を使用します。
- アプリケーションは署名なしでは実行されないと想定しています。
- アプリケーションは配布されないと想定しています。
- 署名のIDが有効であることは気にしないと思います。
アドホック署名は、信頼できるセキュリティ上の利点を提供しません。これは、アプリケーションが変更されたかどうかを判断するために使用でき、資格などのセキュリティ制限をアプリケーションに適用するために使用できます。
アドホック署名はに対して検証しますが、検証しcodesign
ませんspctl
。これは、署名されているバイナリに応じて問題になる場合と問題になる場合があります。アプリケーションと実行可能ファイルの場合、spctl
ローカルで作成されたバイナリでは実行されないため、これは問題にはなりません。
なぜコードサインなのか?
洗練された質問について:
私が自分でコンパイルした未署名のソースコードをどのように扱うべきか、特に多くの貢献者がいるオープンソースプロジェクトへの小さな貢献に関しては、貢献者が常に自分のコードに署名できることを忘れないためです。
ほとんどの自己コンパイルされたアプリケーションでは、コード署名の必要はありません。これは、アプリケーションのコードを信頼していることを前提としています。macOSでは、Finderから信頼できないアプリケーションを開くことができます。Appleの「身元不明の開発者からアプリを開く」を参照してください。
コードまたは開発者を信頼しない場合は、アプリケーションをコンパイルまたは実行しないでください。
あなたの責任
ソースコードのプロバイダーは、ビルド済みのコード署名済みバイナリを提供する責任も義務も負いません。自己コンパイルされるため、すべてのコード署名はあなたの選択と責任です。
どちらの場合も、最終的なバイナリのみが署名されます。元のソースコードとリソースは署名されていません。
ソースコードは署名されていません
ソースコード自体は、macOSにとって意味のある方法でコード署名することはできません。ソースファイルとコードは、他のファイルと同様にデジタル署名できますが、macOSが結果のアプリケーションまたはバイナリを処理する方法に影響を与えることはありません。
Macアプリケーションにアドホックコード署名する方法
アドホック署名を使用してmacOS上のアプリケーションにコード署名するには、ID -s
フラグを-
次のように設定します。
codesign --force -s - </path/to/application>
codesign
コマンドの他のすべてのルール、要件、順列は同じままです。
ここでフラグ--force
を使用して、既存の署名を上書きします。
フレームワークや組み込みサービスなどのサブリソースに署名--deep
するには、codesign
コマンドにフラグを追加する必要がある場合があります。