Podpisywanie kodu ad-hoc
W przypadku aplikacji i plików binarnych innych firm, które sam skompilujesz i które wymagają podpisania kodu, użyj podpisu kodu ad hoc .
- Zakładam, że aplikacja nie będzie działać bez podpisu;
- Zakładam, że aplikacja nie będzie rozpowszechniana;
- Zakładam, że nie obchodzi cię ważność podpisu.
Podpis ad-hoc nie zapewnia niezawodnych korzyści bezpieczeństwa. Można go użyć do ustalenia, czy aplikacja została zmieniona, i można zastosować do zastosowania ograniczeń bezpieczeństwa, takich jak uprawnienia, do aplikacji.
Podpis ad-hoc zostanie zatwierdzony, codesign
ale nie spctl
. To może, ale nie musi mieć znaczenia, w zależności od podpisanego pliku binarnego. W przypadku aplikacji i plików wykonywalnych nie ma to większego znaczenia, ponieważ spctl
nie jest uruchamiane na lokalnie tworzonych plikach binarnych.
Dlaczego znak kodowy?
Jeśli chodzi o dopracowane pytanie:
Jak powinienem obsługiwać niepodpisany kod źródłowy, który sam kompiluję, ponieważ nie oczekuję, że autorzy zawsze będą w stanie podpisywać swój kod, lub pamiętają o tym, szczególnie jeśli chodzi o niewielki wkład w projekty open source z wieloma autorami.
W przypadku większości samodzielnie skompilowanych aplikacji podpisywanie kodu nie jest konieczne. Zakłada się, że ufasz kodowi aplikacji. W systemie macOS możesz otwierać niezaufane aplikacje z Findera, zobacz Apple Otwórz aplikację od niezidentyfikowanego programisty .
Jeśli nie ufasz kodowi ani programistom, nie kompiluj ani nie uruchamiaj aplikacji.
Twoja odpowiedzialność
Dostawca kodu źródłowego nie jest odpowiedzialny za dostarczenie gotowych plików binarnych z podpisanym kodem. Ponieważ sam kompilujesz się, wszystkie podpisywanie kodu jest twoim wyborem i obowiązkiem.
Apple wymaga podpisania kodu w swoich sklepach z aplikacjami.
Jabłko żądania deweloperów spoza swoich sklepach App podpisać swój kod, ale to jeszcze nie jest wymagane.
W obu przypadkach podpisywane są tylko końcowe pliki binarne. Oryginalny kod źródłowy i zasoby nie są podpisane.
Kod źródłowy nie jest podpisany
Sam kod źródłowy nie może być kodowany w znaczący sposób dla macOS. Pliki źródłowe i kod mogą być podpisane cyfrowo, tak jak każdy inny plik, ale nie ma to wpływu na sposób, w jaki aplikacja lub plik binarny jest traktowany przez macOS.
Jak kodować Ad-Hoc Podpisz aplikację na Maca
Aby podpisać aplikację w systemie macOS za pomocą podpisu ad-hoc, ustaw -s
flagę tożsamości na -
:
codesign --force -s - </path/to/application>
Wszystkie pozostałe reguły, wymagania i permutacje codesign
polecenia pozostają takie same.
Flaga --force
służy tutaj do zastąpienia istniejącego podpisu.
Konieczne może być dodanie --deep
flagi do codesign
polecenia, aby podpisać zasoby podrzędne, takie jak struktury i usługi osadzone.
Samo podpisanie programu nie rujnuje celu podpisywania kodu. Ogólnym celem podpisywania kodu jest umożliwienie sprawdzenia, czy program jest niezmodyfikowaną kopią, która została pierwotnie utworzona przez konkretną jednostkę (osobę lub firmę). Kiedy podpisujesz program, aby sam działał tylko na twoim komputerze, umożliwiasz systemowi sprawdzenie, czy to ty stworzyłeś plik binarny i czy nie został on zmodyfikowany przez innych.
Różnica jakościowa między samodzielnym podpisywaniem pliku binarnego aplikacji a po prostu zezwalaniem na aplikacje od niezidentyfikowanych programistów w GateKeeper polega na tym, że w pierwszym przypadku zezwalasz na uruchomienie jednej, konkretnej aplikacji - podczas gdy w drugim przypadku otwierasz się na możliwość otwarcia wielu różne aplikacje, klikając je prawym przyciskiem myszy i wybierając opcję Otwórz. Tzn. Jest to bardziej restrykcyjne, a przez to nieco bardziej „bezpieczne” przez samodzielne podpisanie konkretnego programu.
Odpowiedzialność za podpisanie należy wyłącznie do Ciebie. Deweloper open source nie może podpisać kodu źródłowego - możliwe jest tylko podpisanie skompilowanych plików binarnych. Gdy sam tworzysz skompilowane pliki binarne, podpisanie ich zależy od ciebie.
Możesz założyć konto programisty w witrynie internetowej Apple, które pozwoli ci utworzyć certyfikat, którego można użyć do podpisania. Jeśli jesteś programistą i regularnie kompilujesz pliki binarne do uruchamiania na komputerach Mac, jest to preferowany sposób robienia rzeczy. Jeśli jest to jednorazowa rzecz, której prawdopodobnie nigdy więcej nie zrobisz, prawdopodobnie przejście przez ten proces jest przesadą. YMMV.
Inne odpowiedzi na twoje pytanie tutaj zalecają podpisywanie ad-hoc dla twojego pliku binarnego. To nie zadziała. Musisz wygenerować prawidłowy podpis, aby uruchomić binarnie z GateKeeper na jego najbardziej bezpiecznym ustawieniu.
źródło
Jeśli nie jesteś programistą, to nie.
Podpisywanie kodu, w skrócie, jest metodą, aby powiedzieć, że jesteś (programistą) tym, za kogo się podajesz, a kod nie zmienił się od czasu ostatniego podpisania.
To brzmi jak twoje mylące podpisywanie kodu (co jest wymagane przez programistów do publikowania aplikacji w App Store) i Gatekeeper (co chroni komputer Mac przed instalacją oprogramowania przed niezidentyfikowanymi programistami).
Jeśli zezwolisz komputerowi Mac na instalowanie oprogramowania zarówno z App Store, jak i zidentyfikowanych programistów, nadal będziesz otrzymywać wyskakujące okienko z informacją, że oprogramowanie zostanie zainstalowane
A jeśli pochodzi od niezidentyfikowanego programisty, otrzymasz to samo wyskakujące okienko z „ikoną ostrzegawczą”
Nadal możesz zainstalować oprogramowanie. Jest to tylko mechanizm, który zmusza interakcję użytkownika do zainstalowania oprogramowania, zapewniając warstwę bezpieczeństwa przed samodzielnie zainstalowanym złośliwym oprogramowaniem.
źródło