Certyfikat do podpisywania kodu dla projektów open source?

119

Chcę opublikować jedną z moich aplikacji jako open source i podpisać cyfrowo pliki binarne, które utworzyłem, własnym certyfikatem. (Oczywiście każdy może po prostu pobrać kod i samodzielnie zbudować go z własnym certyfikatem). Chcę to zrobić, aby każdy mógł sprawdzić, czy ta kompilacja została wykonana przeze mnie, a nie przez kogoś innego. Chcę również utworzyć bezpieczną witrynę internetową z ważnym certyfikatem SSL, aby odwiedzający mogli tworzyć własne konta w bezpieczny sposób, aby mogli wnieść swój wkład w ten projekt.

Mógłbym stworzyć certyfikat z podpisem własnym, ale nie podoba mi się ta opcja. Albo mógłbym zapłacić Verisignowi kilka sztuk złota, aby otrzymać certyfikaty, które byłyby ważne tylko przez kilka lat. Ta opcja też mi się nie podoba, ponieważ mój skarbiec jest dla mnie cenny.

Czy są więc jakieś inne opcje? Na przykład dostawca, który obsługuje projekty open source, oferując certyfikaty po obniżonej cenie? Nie musi być za darmo, tylko dużo tańsze niż Verisign ...

(Projekt jest tworzony w C # w programie Visual Studio 2008. Plus dodatkowy projekt w ASP.NET, który wymaga SSL).

Wim ten Brink
źródło
To pytanie jest na temat. Opisuje problem (chęć opublikowania) i to, co zostało zrobione (aplikacja zbudowana, ale nie podpisana). Nie prosi o rekomendacje, a jedynie o nazwiska jednego lub kilku bezpłatnych lub tanich dostawców. Prosi o odpowiedzi, które „znajdują” zasoby poza witryną, ale nie w sposób, który mógłby przyciągnąć uparte odpowiedzi lub spam, ponieważ dostępnych jest kilka opcji.
Edward Brey,
5
Chcę zaznaczyć, że zadałem to pytanie już prawie 8 lat. Obecnie dostępnych jest kilka innych opcji, ale problemem staje się niezawodność. Istnieje również wiele bezpłatnych opcji SSL i tworzenia stron internetowych, ale certyfikatów do podpisywania kodu nadal brakuje ...
Wim ten Brink
1
Niestety, LetsEncrypt nie będzie obsługiwać certyfikatów do podpisywania kodu . Mid 2018, najtańsze znajdę to Comdo za codesigncert za 59 $ za Anum. Byłoby znacznie łatwiej, gdyby rządy wydały wszystkim obywatelom / poddanym certyfikat do podpisywania kodu jako dowód tożsamości ... ale wtedy byłbym zmuszony zaufać mojemu rządowi
kamera douszna

Odpowiedzi:

9

Możesz spróbować CAcert . Dzięki temu uzyskujesz certyfikaty innych użytkowników CAcert. CAcert ma system oparty na reputacji, więc jeśli wystarczająco często uzyskujesz certyfikat, Twój certyfikat jest liczony jako ważny.

Może być konieczne dodanie CAcert jako zaufanego urzędu w systemie docelowym. Samopodpisywanie pliku wykonywalnego powinno być wystarczającą opcją, ale konieczne będzie dostarczenie certyfikatu publicznego. Skorzystanie ze znanego organu może pomóc w weryfikacji pliku, ale wydaje mi się, że jest to nadmierne zabicie, w tym przypadku użyj sumy kontrolnej lub skrótu sha2 pliku w połączeniu z certyfikatem z podpisem własnym. Możesz skonfigurować Linuksa jako CA, ale będą musieli ufać Twojemu certyfikatowi publicznemu.

Mnementh
źródło
48
Wadą CACert jest to, że nie jest on domyślnie dołączony do żadnej z głównych przeglądarek ( wiki.cacert.org/InclusionStatus ), więc typowe wrażenia użytkownika nie są lepsze niż w przypadku certyfikatu z podpisem własnym.
Kohsuke Kawaguchi
6
Ponadto, jeśli jesteś zainteresowany podpisywaniem plików wykonywalnych Windows, pamiętaj, że CACert nie znajduje się na liście urzędów certyfikacji (CA), które są członkami programu certyfikatów
głównych
Próbowałem CAcert. To zdjęcie podsumowuje: imgur.com/a/rNYqBme
selbie
zaktualizowaną listę urzędów
Erdogan Kurtur
35

Dla programistów open source Certum zapewnia bezpłatne certyfikaty do podpisywania kodu *

Po prostu wpisz „programista open source” w polu „firma”, gdy zażądasz certyfikatu. Otóż ​​to.

Link do certyfikatów podpisywania kodu open source jest tutaj

[*] Od 2016 r. Certyfikat Open Source Code Signing nie jest już dostępny bezpłatnie. Jest to teraz usługa płatna.

Stefan
źródło
2
Byłeś w tej witrynie i widzisz tylko certyfikaty SSL. Czy możesz umieścić precyzyjny link do certyfikatów do podpisywania kodu?
Frozenskys
3
Wydaje się, że już tego nie oferują.
Czad
3
AFAIK przestali oferować bezpłatne certyfikaty programistów Open Source. W przeciwnym razie naprawdę byłbym wdzięczny za link.
reiniero
15
Wygląda na to, że certyfikaty nie są już darmowe - odniesienie do podpisywania kodu open source zostało usunięte ze strony certyfikatów testowych, a teraz istnieje osobna strona produktu en.sklep.unizeto.pl/data-safety/code-signing-certificates/ ... . Za 14 euro są jednak znacznie tańsze niż inne certyfikaty. Proces rejestracji wydaje się być taki sam, jak wtedy, gdy były one również bezpłatne.
Alex Warren,
2
@quasoft to są certyfikaty SSL.
Nathan Osman
27

Aktualizacja: już nie za darmo, teraz 105,78 € (od 19 lutego 2017 r.). Koszt jest niższy, jeśli masz już swój sprzęt kryptograficzny. FWIW, poniżej znajdują się poprzednie instrukcje.


Aby otrzymać bezpłatny certyfikat do podpisywania kodu od Certum / Unizeto dla siebie jako osoby fizycznej, wykonaj następujące kroki. Użyj przeglądarki Internet Explorer lub Safari, ponieważ obsługują one mechanizm wymiany kluczy.

  1. Przejdź do certyfikatów Test ID i OpenSource Code Signing , a następnie prześlij formularz.

  2. Certyfikat pojawi się w sekcji Aktywuj certyfikaty . Kliknij Aktywuj .

  3. Przejdź przez kreatora aktywacji. W polu Organizacja wpisz Open Source Developer . W przypadku jednostki organizacyjnej wpisz Software Publishing .

  4. Otrzymasz wiadomość e-mail z prośbą o potwierdzenie tożsamości. Odpowiedz, podając łącze do projektu open source i obraz prawa jazdy (lub innego zaakceptowanego dokumentu). Aby chronić swoją prywatność, należy zaszyfrować odpowiedź. * Sposób szyfrowania różni się w zależności od klienta poczty e-mail. W przypadku programu Outlook upewnij się, że masz certyfikat e-mail ( dostępny bezpłatnie ) i włącz szyfrowanie .

  5. W ciągu jednego dnia powinieneś otrzymać e-mail z linkiem do odebrania certyfikatu. Musisz otworzyć link z tego samego komputera i przeglądarki, których użyłeś do rozpoczęcia procesu.

* Chociaż e-mail weryfikacyjny od Certum nakazuje wysłanie dowodu na [email protected]adres [email protected], Certum akceptuje również dowód wysłany na adres zwrotny , na który można wysłać zaszyfrowaną wiadomość e-mail.

Edward Brey
źródło
Działa dobrze, wielkie dzięki! Czy wiesz, czy odnawiają certyfikat bezpłatnie po upływie 1 roku? A może to tylko okres próbny, a potem staje się płatnym certyfikatem?
Al-Khwarizmi
1
Po około 10 miesiącach otrzymasz wiadomość e-mail z przypomnieniem o wygaśnięciu certyfikatu. W tej wiadomości wspominają, że możesz odnowić, ale to nie zadziałało (dla mnie 4 miesiące temu). Poprosiłem o nowy certyfikat w taki sam sposób, jak rok wcześniej i otrzymałem go. Krótko mówiąc: co roku prosisz o nowy certyfikat.
Martijn Stolk
Wydaje się, że lista krajów nie zawiera już Stanów Zjednoczonych? Otrzymałem certyfikat w 2013 roku, więc kiedyś działał dla mnie.
Warty,
Próbowałem tego. Teraz certyfikat na 90 dni. Ale nie można ominąć kroku „Aktywuj”, ponieważ kliknięcie przycisku „Generuj klucze” nic nie robi, a Następny wyświetla alert „Generuj parę kluczy” ....
StevoKeano
Wydaje się, że pozostała im metoda CSR. Skąd mogą wiedzieć, czy CSR został wygenerowany przez ich sprzęt, czy nie?
OCTAGRAM
22

Aktualizacja 2016: StartCom został przejęty przez WoSign w wątpliwych okolicznościach . Nie ufałbym StartCom / WoSign. Potraktuj poniższy tekst jako notatkę historyczną o tym, jak dobry był StartCom do początku 2015 roku .

Mam certyfikat do podpisywania kodu z StartCom (StartSSL). Jestem bardzo zadowolony z ich obsługi: obsługa klienta jest bardzo szybka, a ceny są bardzo rozsądne.

Uzyskanie certyfikatu do podpisywania kodu

Uzyskanie certyfikatu do podpisywania kodu wymaga weryfikacji tożsamości klasy 2 . StartCom przeprowadzi Cię przez cały proces (z doskonałymi wskaźnikami odpowiedzi, z mojego doświadczenia zwykle w ciągu dziesięciu minut).
Jeśli chcesz uzyskać szczegółowe informacje od razu, przeczytaj ten wpis na blogu . Zostałem zweryfikowany w ciągu godziny (za opłatą 59,90 $, przez Paypal).

Po weryfikacji wygeneruj nowy klucz prywatny i żądanie podpisania certyfikatu (CSR). Zauważ, że wszystkie pola z wyjątkiem klucza publicznego są ignorowane . Wszystkie informacje zawarte w certyfikacie są wywnioskowane z informacji podanych podczas weryfikacji tożsamości, a nie z Twojego CSR .

# Create key and CSR (key must be at least 2048 bit, per Policy Statement)
openssl req -nodes -newkey rsa:2048 -keyout codesigning.key -out codesigning.csr
# Add pass phrase to key (optional, but highly recommended)
openssl rsa -in codesigning.key -des3 -out codesigning2.key && \
    mv codesigning2.key codesigning.key

Prześlij to przez interfejs sieciowy, a szybko otrzymasz nowy certyfikat ważny przez dwa lata (mój otrzymałem w ciągu godziny).

Problem: OID podpisywania na całe życie

Certyfikaty klasy 2 firmy StartCom mają ustawiony identyfikator Lifetime Signing OID. Z tego powodu podpis podpisanego kodu straci ważność po wygaśnięciu certyfikatu, nawet jeśli jest oznaczony znacznikiem czasu.

Kiedy zapytałem Eddy'ego Nigga (COO / CTO w StartCom) o powód tego OID, odpowiedział:

Wymaga od nas, aby listy CRL działały przez okres do 20 lat po wygaśnięciu certyfikatów. To jest coś, co możemy zrobić dla certyfikatów na poziomie EV (dużo mniejszy wolumen, różne warunki płatności), ale podniosłoby to cenę dla klasy 2 tylko dla tej korzyści (gdzie podpisywanie kodu jest tylko częścią opcji na tym poziomie).

Dlatego oznaczanie czasu jest dostępne tylko po rozszerzonej walidacji (EV), która jest dostępna tylko dla legalnie działających organizacji i kosztuje 199,90 $. Dlatego indywidualni programiści nie mogą używać znaczników czasu z certyfikatem do podpisywania kodu z StartCom .

Przez długi czas uważałem to ograniczenie za duży problem. Ostatnio zmieniłem zdanie: zdarza się to tylko raz na dwa lata, użytkownicy zorientowani na bezpieczeństwo mogą być bardziej skłonni do pobrania najnowszej wersji mojego oprogramowania, a stare wersje oprogramowania nadal będą działać (dla tych, którzy chcą z niego korzystać; choć bez weryfikowanego podpisu).

Uwaga: zawsze oznaczaj swój kod sygnaturą czasową, nawet jeśli flaga podpisywania dożywotniego jest ustawiona ! Podpisy z datownikiem pozostaną ważne do daty wygaśnięcia certyfikatu, nawet jeśli certyfikat został unieważniony (oczywiście tylko wtedy, gdy podpis został złożony przed unieważnieniem certyfikatu).

Praktyczne wykorzystanie certyfikatu

W StartCom płacisz tylko za walidację. Weryfikacja tożsamości jest ważna przez 350 dni iw tym okresie możesz bezpłatnie zażądać certyfikatów do podpisywania kodu. Możesz mieć tylko jeden ważny certyfikat podpisujący kod i można go użyć do podpisania dowolnego kodu (MSI, DLL, XPI, ...), ale nie kodu sterownika (wymaga to EV).

Aby zmienić atrybut na certyfikacie, poprzedni certyfikat musi zostać unieważniony i zażądany nowy. Cofnięcie certyfikatu kosztuje 29,90 $. Chociaż dzień po otrzymaniu certyfikatu do podpisywania kodu zmieniłem adres e-mail, wyjątkowo unieważnili mój certyfikat bez opłaty (byłem pozytywnie zaskoczony)!

Wygaśnięcie

Kiedy Twój certyfikat wkrótce wygaśnie (po prawie dwóch latach), otrzymasz powiadomienie (z dwutygodniowym wyprzedzeniem). Jeśli Twoja zweryfikowana tożsamość jest nadal ważna (pamiętaj, że walidacja wygasa po 350 dniach; wtedy musisz ponownie potwierdzić swoją tożsamość za 59,90 $), możesz poprosić o nowy certyfikat bez unieważniania poprzedniego. Nie zapomnij opublikować nowej wersji oprogramowania, która jest podpisana tym nowym certyfikatem do podpisywania kodu, ponieważ w poprzednich wersjach wkrótce będzie wyświetlany komunikat „(niezweryfikowany)” lub coś podobnego.

OCSP

Kiedy otrzymałem certyfikat, podpisałem dodatek do Firefoksa. Jednak nadal wyświetlał się komunikat „(Autor niezweryfikowany)”, mimo że mój plik XPI został poprawnie podpisany. Okazało się, że Firefox nie uzyskał aktualnego statusu certyfikatu, gdy odpytywał serwery OCSP StartCom o stan odwołania mojego nowego certyfikatu. prawdopodobnie odpowiedni temat na forum

Po około pół dniu mój certyfikat był znany serwerom OCSP, a moje imię i nazwisko pojawiło się zgodnie z oczekiwaniami. Wyciągnięta lekcja: po otrzymaniu nowego certyfikatu zaczekaj około jednego dnia, zanim opublikujesz oprogramowanie z nowym podpisem.

Rob W
źródło
1
Dziękujemy za wgląd w dożywotnie podpisywanie i „tylko jeden aktywny certyfikat do podpisywania kodu”. Zdecydowanie warto wiedzieć. Planowałem to zrobić pewnego dnia i myślę, że nadal chcę to zrobić. Korzystasz już z bezpłatnych certyfikatów SSL.
ygoe
2
Aktualizacja w StartCom: certyfikaty kodu nie mają teraz ustawionego OID podpisu dożywotniego. Są teraz tak dobre, jak każdy inny certyfikat do podpisywania kodu. Do walidacji organizacji dołączono nawet podpisywanie kodu jądra.
Josef mówi Przywróć Monikę
8

Możesz także sprawdzić KSoftware . Oni odsprzedawać Comodo certyfikatów podpisywania kodu dla US $ 99 / rok.

Joe Kuemerle
źródło
1
W przeszłości z powodzeniem je stosowałem. Tucows jest również sprzedawcą i jeśli zawrzesz umowę wieloletnią, myślę, że możesz je zdobyć przez około 70 rocznie.
EricLaw
KSoftware ma świetny serwis, podczas gdy Comodo nie jest dobry, chłopaki z KSoftware szybko odpowiadają, nie jestem spokrewniony, tylko zadowolony klient.
digitai
1
Niedawno kupiłem certyfikat z KSoftware, ale nadal nie ukończyłem procesu walidacji, zespół walidacyjny Comodo ciągle pyta mnie o numer telefonu, ale Face-to-Face nie powiedział, że jest to obowiązkowe.
Nicke Manarin
1
Właśnie kupiłem certyfikat do podpisywania kodu od K Software, ponieważ różnica w cenie była znaczna: 75 USD rocznie zamiast 175 USD rocznie. Spróbuję opublikować tutaj aktualizację po przejściu przez weryfikację i wydanie. Moje przeczucie mówi jednak, że prawdopodobnie warto zapłacić dodatkowe 100 USD i po prostu iść bezpośrednio z Comodo. Dam ci znać, jak leci ...
Joshua Pinter
1
Aktualizacja: próbowałem skontaktować się z naszymi prawnikami, aby ukończyć wymagany dokument, ale powiedzieli, że będzie to kosztować około 1500 USD. Dlatego zdecydowaliśmy się po prostu zarejestrować się w D & B.com, aby uzyskać numer DUNS i użyć go jako „weryfikacji”, że istniejemy. Mamy to teraz, ale było to upierdliwe i trwało około miesiąca od początku do końca. Jeśli się spieszysz, spojrzę na innego dostawcę, na przykład digicert.com. (To powiedziawszy, nie jestem pewien, czy są inne / lepsze.)
Joshua Pinter
8

Możesz rzucić okiem na produkt StartSSL .

Uwaga StartSSL został zamknięty i nie wydaje już certyfikatów.

Frozenskys
źródło
4
Zabawny. Google Chrome zgłasza mi, że startssl.com ma nieprawidłowy certyfikat i ostrzega o ryzyku związanym z przejściem do tej witryny. :-) Ale kontynuowałem. Wygląda dobrze.
Wim ten Brink
1
Jeśli dodasz certyfikat głównego urzędu certyfikacji ze startów, to zniknie. Uważam, że FireFox 3+ jest dostarczany z wbudowanym certyfikatem CA.
Frozenskys,
47
Importowanie głównych urzędów certyfikacji to zawsze wspaniałe uczucie. Kinda pokonuje cały cel ich posiadania.
Matthew Whited
3
StartSSL to pierwszy (wciąż jedyny) bezpłatny urząd certyfikacji z RootCA w systemie Windows Vista +. Istnieje aktualizacja certyfikatu dla starszych wersji systemu Windows, która zawiera ją również afaik. Dlaczego Chrome nie ma go jako RootCA lub awaryjnego systemu Windows do sprawdzenia, to tylko problem z Chrome.
Robert MacLean,
6
Certyfikaty do podpisywania kodu BTW StartSSL są w wersji beta i wymagają weryfikacji (co obecnie nie jest darmowe 50 USD)
Robert MacLean