Kilka pytań o podpisywanie kodu

0

Mam kilka pytań co do podpisywanie kodu w Javie.

  1. Natrafiłem na bardzo wiele różnic w cenach od komercyjnych dostawców. Dlaczego jeden żąda tylko 99$ a ani za to samo chce ponad 300$. Czy istnieją różne stopnie wartości takiego podpisania czy też jest to jednolity proces?

  2. Przeczytałem na Wikipedii, że można uzyskać podpisanie kodu za darmo. Czy będzie ono tak samo wartościowe jak podpisanie płatne? Czym będzie się różnić?

0

Ci drozsi sa pewnie bardziej znani (pewnie to Verisign, Thawte) wiec istnieje szansa ze ich root CA beda juz na systemie uzytkownika. Np oba wspomniane sa w przegladarkach, w liscie root CA Javy. Wezmiesz cos tanszego, mniej znanego, i sie okaze ze owszem, Twoj klucz jest podpisany ich kluczem i masz certyfikat, ale i tak nikt mu nie wierzy bo najpierw musisz zaimportowac ten root - czyli moze sie okazac ze niewiele to daje w stosunku do opcji 2.

Opcja 2 to pewnie tzw self-signed certyficates. Generujesz klucz, i podpisujesz go samym soba, bez uzycia zadnego root CA. Jako ze jest to nowy klucz, zadna przegladarka czy Java nie ma go w swojej liscie, wiec kazde uruchomienie aplikacji bedzie mialo warning czy moze nawet nie zadzialac. Aby zapobiec warningom twoj self-signed cert musi byc zaimportowany jako root CA np w przegladarce lub do trust store javy. Czyli mozliwe ze dokladnie to samo co przy tanszych root CA athorities z pynktu 1.

Zalezy co chcesz robic - jesli sprzedajesz prawdzwie aplikacje i chcesz o tych problemach zapomniec, to ja bym sie nie pierniczyl i kupil verisigna - wszyscy go znaja. Jesli to sa aplikacje tylko takie na pokaz albo dla 1 czy 2 klientow, to bym zrobil self signed i nie zastanawial nad tym - pewnie koszt podpisania bedzie wiekszy niz cena aplikacji ;d

0

Hej, dzięki wielkie za szybką odpowiedź.

Mam jeszcze jedno pytanie:

Aside from commercial CAs, some providers issue digital certificates to the public at no cost. Large institutions or government entities may have their own CAs.

Czy istnieje provider, który dostarcza cerfyfikaty za darmo i równocześnie jest dobrze znany (czyli obecny w przeglądarkach, na listach etc.) ? Niekoniecznie tak jak VeriSign ale też dobrze.

Zależy co chcesz robić

Ma to być aplikacja na stronie internetowej, aplet, więc zależy mi na braku ostrzeżeń.

0

Certyfikaty płatne i darmowe technicznie technicznie niczym się nie różną. Różnica leży w "ufności" do wystawcy. Istnieje grupa firm (Verisign, Thawte, a w Polsce np. KIR), które są tzw. "zaufanymi dostawcami". Oznacza to mniej więcej tyle, że firmy te zostały sprawdzone przez odpowiednie instytucje (w Polsce Narodowe Centrum Certyfikacji + MSWiA w zakresie ochrony informacji niejawnej, a w USA bodajże NIST) i podpisy wydawane przez te firmy są "godne zaufania". Co to oznacza dokładnie? W praktyce tyle, że znajdują się na listach "zaufanych dostawców" w przeglądarkach czy szerzej w oprogramowaniu kryptograficznym.
Jeżeli nie chcesz płacić w dolarach poszuka wśród polskich dostawców, ceny są niższe, a funkcjonalność taka sama.

0

Szansa oczywiscie jest ale trudno mi powiedziec jak wielka, nie szukalem nigdy. To pewnie zalezy tez od regionu, firmy itp itd. Np. nowi pracownicy pewnej duzej polskiej firmy IT na C swojego czasu musieli instalowac w przegladarkach certyfikat wystawiony przez jakis dzial tej firmy, wtedy aplikacje nie zglaszaly problemow - no i byl za darmo. W Chinach moze rzad wymaga aby miec ich certyfikat, moze nawet wszystkie przegladarki tam maja to z automatu, aby cicho i bez ostrzezen moc podpartywac co robia internauci.
Chodzi o to ze jak aplikacja jest internetowa czyli moze byc czytana przez caly swiat, to musialbys uzyc takiego certu ktory przez caly swiat moze byc zweryfikowany. Niekoniecznie musi byc wystawiony przez kogos kto jest znany - moze byc to byc certyfikat Twojej babci, ktora ma swoj cert podpisany przez kogos znanego (np VeriSign) i to juz starczy dzieki lancuchowi certyfikatow. Albo Twoja babcia ma cert podpisany przez dziadka ktory ma cert podpisany przez kolege z pracy ktory ma cert podpisany przez Vodafone ktory ma vert podpisany przez Thawte - i tez jest ok. Z doswiadczenia jednak wiem ze takie duze firmy, rzady itp raczej maja swoje, self-signed certyfikaty ktore trzeba importowac aby nie miec ostrzezen.

0
Koziołek napisał(a)

Certyfikaty płatne i darmowe technicznie technicznie niczym się nie różną. Różnica leży w "ufności" do wystawcy. Istnieje grupa firm (Verisign, Thawte, a w Polsce np. KIR), które są tzw. "zaufanymi dostawcami". Oznacza to mniej więcej tyle, że firmy te zostały sprawdzone przez odpowiednie instytucje (w Polsce Narodowe Centrum Certyfikacji + MSWiA w zakresie ochrony informacji niejawnej, a w USA bodajże NIST) i podpisy wydawane przez te firmy są "godne zaufania". Co to oznacza dokładnie? W praktyce tyle, że znajdują się na listach "zaufanych dostawców" w przeglądarkach czy szerzej w oprogramowaniu kryptograficznym.
Jeżeli nie chcesz płacić w dolarach poszuka wśród polskich dostawców, ceny są niższe, a funkcjonalność taka sama.

Bardzo fajnie ze potwierdziles to co juz napisalem.
Ale mylisz sie - funkcjonalnosc nie jest taka sama - user ze Stanow nie ma pojecia o naszych polskich certach, i o ile one nie sa podpisane czyms czemu on ufa (a pewnie nie sa, jak napisalem, takie instytucje maja self-signed bo one sa root CA) to i tak dostanie ostrzezenie, tak jakby czytal Twoj wlasny self-sifned certyfikat.
Wniosek - jesli chcesz trafic do userow z calego swiata, a w necie pewnie tak jest, musisz podpisac czyms co w swoim lancuchu certyfikatow ma cos co zna caly swiat. Jesli chcesz trafic tylko do Polakow, a reszta moze miec warningi, podpisz czyms co jest u nas. Nie zapomnij tylko ze ja np. sciagam zawsze anglojezyczna wersje chroma / firefoxa, nie mam pojecia z jakich serwerow, i one pewnie nie maja certyfikatow lokalnych, czyli jakiegos MSWiA, wiec i tak pewnie bym dostal na takiej stronce warninga.

0

To ja mam pytanie odnośnie certyfikatów w ogóle.

Tu są jakieś certy SSL: http://www.webhost.pl/certyfikaty-ssl
Czym różnią się cery SSL od zwykłych certów? Do jakich celów można używać poszczególnych?

Gdy pracowałem w C******u to ich poczta była sygnowana ich własnoręcznie wygenerowanym Root CA. Podobnie wszelkie aplikacje do uwierzytelniania się takowymi posługiwały i dla każdego pracownika też były certy z owym Root CA. (Mail uczelniany (jak i strefa intranetu) jest podobnie sygnowany certem wygenerowanym własnoręcznie przez uczelnię.) Na początku stażu w firmie zapytałem czemu nie mają jakiegoś Root certa podpisanego szeroko zaufanym certem. Odpowiedzieli, że musieliby zapłacić po 3 tysiące na każdego pracownika, żeby mieć legalne i pełne certy dla każdego. Ja myślę, że wystarczy kupić jednego zwykłego certa i potraktować go jako Root certa, a potem generować własne na podstawie tego. Kto ma rację? Generalnie wydaje mi się, że prawda leży gdzieś pośrodku.

A jeżeli chcę podpisywać swoje programy to muszę wykupywać osobno certa na każdy program czy wystarczy mi jeden Root cert i będę sobie potem generował certy dla każdego programu? Mam na myśli podpisywanie JARków (także z dołączonymi bibliotekami natywnymi), jak i np paczek MSI.

0
Gregory House napisał(a)

Ma to być aplikacja na stronie internetowej, aplet, więc zależy mi na braku ostrzeżeń.

W tej sytuacji bym sie nie bawil w zadne root CA tylko zrobil uzyl self-signed, a gdziestam podal linka wyjasniajacego co to jest i dlaczego, i co zrobic aby tego uniknac. Np. mozesz podac ze jak sie otworzy okienko to ma kliknac "Always trust this certificate" albo cos podobnego, Java sobie go zaimportuje do swojego trust-store i tyle, drugie uruchomienie nie pokaze warninga. Userzy ktorzy sa nietechniczni nawet nie beda kwestionowac, a tacy ktorzy sa techniczni i rozumieja te problemy wiedza dlaczego jest self-signed, i wiedza ze musza zyc z warningiem.
A dla takich co marudza napisz ze podpisanie kosztuje, zaloz konto i napisz ze jesl ich wkurza korzystanie z darmowego softu w necie bo maja warningi, to moga przelac Ci kase na konto takie a takie, i jak tylko osiagniesz cene podpisania przez verisign to to zrobisz i nie bedzie problemow.

0
Wibowit napisał(a)

To ja mam pytanie odnośnie certyfikatów w ogóle.

Tu są jakieś certy SSL: http://www.webhost.pl/certyfikaty-ssl
Czym różnią się cery SSL od zwykłych certów? Do jakich celów można używać poszczególnych?

http://stackoverflow.com/questions/78869/java-code-signing-certificates-same-as-ssl-certificate

Wibowit napisał(a)

Gdy pracowałem w C******u

Dokladnie ta firme mialem na mysli.

Wibowit napisał(a)

Odpowiedzieli, że musieliby zapłacić po 3 tysiące na każdego pracownika, żeby mieć legalne i pełne certy dla każdego. Ja myślę, że wystarczy kupić jednego zwykłego certa i potraktować go jako Root certa, a potem generować własne na podstawie tego. Kto ma rację? Generalnie wydaje mi się, że prawda leży gdzieś pośrodku.

Oni tam mowili czesto bardzo glupie rzeczy ;d Skoro oni uzywaja jednego wlasnego, to co im szkodzi uzywac jednego wlasnego podpisanego VeriSign? Mozliwe jednak ze jak zamawiasz certyfikat to mowisz po co on ma byc potrzebny. Jesli ma to byc np jako root CA w wielkiej firmie powyzej 2000 pracownikow, to mozliwe ze sa drozsze. Ale 3k na kazdego pracownika to jest smieszne.

Wibowit napisał(a)

A jeżeli chcę podpisywać swoje programy to muszę wykupywać osobno certa na każdy program czy wystarczy mi jeden Root cert i będę sobie potem generował certy dla każdego programu? Mam na myśli podpisywanie JARków (także z dołączonymi bibliotekami natywnymi), jak i np paczek MSI.

Cert jest najlepiej jeden, ktory odpowiada fimie (firma to tutaj z znaczeniu doslownym - nazwa), nie ma sensu kupowac certa na jara. Dodatkowo np kiedys Java Web Start mial ograniczenie ze wszystkie jary ktore pochodza z jednego pliku JNLP musza miec ten sam cert, jesli sa inne, trzeba bylo generowac JNLP extensions, a i tak bylo zabugowane.
Musisz wziac tylko pod uwage ze certyfikaty maja okreslona date waznosci, np rok.

0

Aha, jak kupujesz certyfikat to robi sie to tak: generujesz swoj wlasny cert z klucza, np. keytool, nastepnie tworzysz tzw plik certification request (-certrequest w keytool) i tworzony jest pliczek ktory wysylasz do root CA. Placisz, dostajesz z powrotem cert podpisany juz przez nich, np w formacie pkcs#12 lub podobnym. Keytool -importcert Twoim przyjacielem. Od tego momentu uzywasz aliasu tego nowego podpisanego przez VS certu i powinno dzialc bez warningow.

Fajny list wyjansiajacy problem pewnie o wiele lepiej niz ja: http://webdesign.about.com/od/ssl/a/signed_v_selfsi.htm

0

Aha, jeszcze jedna rzecz o self-signed ktorej nie ma na powyzeszj stronce - teoretycznie ja moge zrobic cert ktory powie ze jestem Vibowit, a to wcale nieprawda. Jak wiec mozna temu certowi zaufac? Otoz uzytkownicy ktorzy dostaja na twarz okienko z watningiem moga certyfikat podejrzec. W sklad certu wchodzi jego hasz w md5 i sha1 (zdaje sie za oba, ale pewnosci nie mam). Teraz, taki user dzwoni do Vibowita i prosi go o przeczytanie hashy jego certyfikatu - jesli sie zgadzaja, mozna uznac ze faktycznie kod podpisal Vibowit. Jesli podpisal go impostor, np ja, hasze beda inne i user bedzie wiedzial ze nie wolno mu uruchomic aplikacji.
Certyfikaty mozna umiescic na stronce internetowej aby userzy mogi sobie podejrzec, VeriSign i Thawte to robia. Kwestia tutaj jest taka czy stronka jest tej osoby ktora podaje sie za Vibowita? Dlatego w takich sytuacjach przydaje sie SSL ktory tez wymaga certyfikatow, podpisywania i root CA aby byc pewnym ;d

0

Dzięki @::. za Twoje obszerne wypowiedzi, naprawdę mi pomogłeś.

Okienko z przyciskami "Run" i "Cancel" oraz polem "Always trust..." mi nie przeszkadza. Jednakże będę korzystał z zasobów które potrzebują zapisać coś na komputerze uzytkownika, zatem z tego co wiem pokaże się jeszcze inne dużo bardziej odstraszające ostrzeżenie.

0
Gregory House napisał(a)

Dzięki @::. za Twoje obszerne wypowiedzi, naprawdę mi pomogłeś.

Okienko z przyciskami "Run" i "Cancel" oraz polem "Always trust..." mi nie przeszkadza. Jednakże będę korzystał z zasobów które potrzebują zapisać coś na komputerze uzytkownika, zatem z tego co wiem pokaże się jeszcze inne dużo bardziej odstraszające ostrzeżenie.

No wlasnie jak podpiszesz certyfikatem to juz nie bedzie innych okienek poza tym pierwszym - przeciez applet podpisany, zaakceptowany i zaufany, wiec po co jeszcze pytac?
Ale moge sie mylic - gdzie o tym przeczytales?

0

@::. Na jakimś forum, tak więc informacja średnio zaufana.

0

Takie forum pewnie jak i tutejsze ;d Wiec musisz sam sprawdzic.

0

Nie ma żadnych więcej ostrzeżeń...
Tylko jeśli ktoś zrobi niepodpisany applet, w którym użyje podpisanego jara jako biblioteki, która nie ma zdefiniowane, że jest library, to wtedy dodatkowy monit się pojawi... ale w przypadku zupełnie własnego appletu w jendym jarze, to nie nastąpi

0

Chodzi o to ze jak aplikacja jest internetowa czyli moze byc czytana przez caly swiat, to musialbys uzyc takiego certu ktory przez caly swiat moze byc zweryfikowany. Niekoniecznie musi byc wystawiony przez kogos kto jest znany - moze byc to byc certyfikat Twojej babci, ktora ma swoj cert podpisany przez kogos znanego (np VeriSign) i to juz starczy dzieki lancuchowi certyfikatow. Albo Twoja babcia ma cert podpisany przez dziadka ktory ma cert podpisany przez kolege z pracy ktory ma cert podpisany przez Vodafone ktory ma vert podpisany przez Thawte - i tez jest ok. Z doswiadczenia jednak wiem ze takie duze firmy, rzady itp raczej maja swoje, self-signed certyfikaty ktore trzeba importowac aby nie miec ostrzezen.

Mógłbyś polecić mi taką firmę-babcię? Rozumiem że ma podobny zasięg do VeriSign jeśli ma od nich certyfikat i jest odpowiednio tańsza?
Bo 1200zł na oryginalnego od VeriSign po prostu mnie nie stać :(

0

Mowiac 'babcia' mialem na mysli troche ironicznie Twoja / moja babcie. Nie znam takiej firmy, nie zajmuje sie tym na codzien, znam tylko te 2 duze plus wiem ze inne firmy maja swoje, np mam telefon Nokii i tutaj jest jakis root CA Nokii, pomijajac VeriSign.

Napisalem co bym zrobil - olal platny cert i uzyl wlasnego self-signed.

0

Mały OT, parokrotnie przeglądarka pytała mnie czy akceptują jakiś "domowy" podpis jara. Nie akceptowałem, ściągałem aplet na swój dysk, dekompilowałem i okazywało się, że aplet nie robił żadnych potencjalnie niebezpiecznych operacji: nie łaził po moim dysku, nie łączył się ze światem. Podpis był zupełnie niepotrzebny. Morał: nie podpisywać na wszelki wypadek.

0

@up - prawda

0

OK. A czy gdzieś mogę znaleźć listę / jakieś statystyki, które powiedza mi certyfikaty jakich firm są powszechnie dostepne (ew. ile około procent userów obejmują), albo które firmy są standardowo w listach bezpiecznych?

Co do tej firmy-babci. Mówisz że certyfikat jakiejs firmy, nad którą jest np. VeriSign jest równie dobrze rozpoznawalny a możliwe że tańszy. Jeśli nie znasz takiej firmy, mógłbyś mi dac wskazówkę jak jej szukać?

Niestety zostawić tego nie mogę, bo użytkownicy nie będą zbyt chętnie czytać jak to powinni mi zaufać i zignorowac ostrzezenie. Po prostu ich stracę.

0
Gregory House napisał(a)

Niestety zostawić tego nie mogę, bo użytkownicy nie będą zbyt chętnie czytać jak to powinni mi zaufać i zignorowac ostrzezenie. Po prostu ich stracę.

Nie doceniasz ignorancji, olewactwa i niewiedzy. Dla wiekszosci to raptem jeden dialog do klikniecia.
No ale jak masz takie problemy to kup tego VeriSigna czy cos. Ja nie potrafie podac zadnych statystyk ani firm bo sie tym po prostu nie zajmuje. Wiem jak to dziala, i dostalem od szefa cert Thawte i skonfigurowalem mavena aby podpisywal czesc naszych jarow ktore ida do klienta, tyle.

0

Ależ doceniam, po prostu ostrzeżenie, że ten aplet bedzie grzebał w Twoim kompie jest wystarczającxe żeby zmniejszyć mi statystki o połowę. Co innego aplet z "Run" i "Cancel" - tu bym sie zgodził z Toba.

0

No to pytanie: masz juz tych userow, czy martwisz sie na zapas? Co to za grupa docelowa? Rozumie po angielksu? Zarabiasz na tym kase? Jesli masz faktycznie wielu userow i kase trzepiesz, to nie wiem nad czym sie zastanawiasz - bierz ktoregos z wielkich graczy i juz. Jesli nie masz userow, lub to jest jakis app za darmo, napisalem co bym zrobil na Twoim miejscu. Jest to cos open source? Zawsze mozesz ujawnic kod, kto chce spojrzy i sprawdzi czy nie dzieja sie w nim zle rzeczy.

0

ja mam tam jakiś applet do ściągania z wrzuta.pl, wymaga potwierdzenia... ludzie umieszczali go sobie na stronach, wedle statsów jest około 2-3k unikalnych użyć dziennie

0

A jeśli podpisałem już kod (samodzielnie, bez zewn. firm), to w jaki sposób mógłbym podpisać go po wprowadzeniu zmian w kodzie?
Próbując podobnie jak za pierwszym razem dostaję info że już istnieje. Czy muszę stworzyć nowy klucz?

0

Workflow z reguly wyglada tak:

  1. generujesz klucz
  2. tworzysz i budujesz aplikacje, masz 1 lub wiecej jarow bez podpisu
  3. kazdy z jarow podpisujesz i umieszczasz na serwerze
  4. dopisujesz zmieniasz cos w aplikacji, budujesz - masz znowu 1 lub kilka jarow bez podpisu
  5. podpisujesz i umieszczasz na serwerze
  6. while (project.isAlive()) do 4 and 5 over and over again

Z tego co mowisz wynika ze probujesz podpisac tego samego jara kilkakrotnie tym samym kluczem, czego nie rozumiem. Roznumi kluczami mozna podpisywac, to wiem na bank, mozliwe ze tym samym dostaje sie komunikat, nie wiem, ale w kazdym razie wyglada ze zle robisz.

0

A jakie są konsekwencje podpisania kodu dla developera?

0

Juz nigdy wiecej nie zobaczysz golych cyckow.

1 użytkowników online, w tym zalogowanych: 0, gości: 1