Certyfikat do psucia Świąt, czyli historia o podpisywaniu aplikacji

Wpis, który mielibyście teraz przeczytać (o wydaniu kolejnej aktualizacji), miał pojawić się najdalej pod koniec grudnia 2017.
Dlaczego nowe wersje programów, zapowiadane na grudzień, jednak pojawiają się w lutym?
Odpowiedź znajdziecie w dzisiejszych wpisach. Przepraszam z góry za ich długość – jeśli macie trochę wolnego czasu, polecam otworzyć chipsy i piwo, będzie się działo!

Końcówka roku to czas, w którym zazwyczaj pojawia się więcej pracy niż zwykle. Więcej pracy, więcej zadań, chęć zakończenia realizacji wcześniejszych rozwiązań, zanim rok się skończy, aby w nowy wejść z nowymi pomysłami.
Zazwyczaj w tym czasie jest dobry moment do wydania kolejnej aktualizacji programów, dodania promocji świąteczno-noworocznej, nowe wpisy do poczytania czy publikacji nowego filmu. Taki był też plan na końcówkę 2017 roku.
W szczególności, nasz plan obejmował wydanie nowych wersji oprogramowania programów: RaportyGPS, PowerGPS, Sonda Dynamiczna, Labor Tech 2.

Aktualizacja z opóźnieniem

Niestety, w tym roku zaskoczyły nas nieoczekiwane problemy, co pociągnęło za sobą lawinowo opóźnienia w kolejnych zakresach. Z jednej strony, przedłużające się dostosowanie PowerGPS do obsługi sprzętów z wychyłomierzem (kompensacja – pomiary przy pochylonej tyczce), budowa naszego wychyłomierza Bluetooth czy integracji sensorów (np. odczytu smogu, modułów pomiarów offsetowych czy czujników pomocnych w testowaniu PowerGPSa).

Z drugiej – coraz więcej zgłoszeń serwisowych (sporo nowych propozycji usprawnień czy zapytań o kolejne funkcjonalności).

Jakby tego było mało pojawił się problem natury technicznej, który można tak powiedzieć – przelał czarę goryczy. I to właśnie – tuż przed Świętami, gdy wydawało się, że uda nam się wypuścić aktualizacje programów jeszcze przed „gwiazdką”.

Certyfikaty elektroniczne, czyli jak Microsoft utrudnia nam życie

W przypadku wydawania aplikacji od jakiegoś czasu standardem jest ich cyfrowe podpisywanie. Jest to proces, który polega na odpowiedniej modyfikacji pliku instalatora (lub wykonywalnego) i zaszyciu w nim informacji, pozwalających na późniejszą weryfikację, jaki podmiot wydał dany program, a może i czy plik nie został w jakiś sposób naruszony (czyli czy zgadza się np. suma kontrolna w czasie podpisu).

Od czasu wprowadzenia przez Microsoft mechanizmu UAC i fioletowy SmartScreen (te wyskakujące okienka, które np. informują, że aplikacja nie jest zaufana), producent Windowsa wymyślił sobie, że jeśli aplikacje Windows nie są podpisane cyfrowo, to będzie je traktował jako niezaufane i ostrzegał użytkownika przed nimi, lub utrudniał (uniemożliwiał w przypadku mało obytych z Windowsem osób) ich uruchomienie.

Naszą styczność z certyfikatami podpisu (nazywało się to Microsoft Code Signing) mieliśmy od 2013 roku, gdy zauważyliśmy (a także nasi Klienci), że takie ostrzeżenia pojawiają się przy naszych programach, które jeszcze wtedy nie były podpisane. Trzeba więc od tego czasu było inwestować ok. 600-800zł rocznie w certyfikaty podpisu (wydanie pierwszego to koszt prawie tysiąca zł) – my załatwialiśmy to w Unizeto/Certum (polskiej firmie, zajmującej się dystrybucją takich certyfikatów). Co ciekawe, już wtedy w wielu naszych programach stosowane były metody zapewniania spójności (kontroli niezmienialności pliku), które musieliśmy wyłączyć, ponieważ nie dało się ich pogodzić z mechanizmem Windowsowym do obsługi certyfikatów podpisu elektronicznego.

Jeśli jesteście zainteresowani – jak wyglądał proces podpisu, spieszę z wyjaśnieniem. Przy zakupie certyfikatu generowane były klucze kryptograficzne (publiczny i prywatny), których łączne użycie pozwalało na cyfrowe podpisanie przez aplikacje dostarczane przez Windows. Klucze to po prostu pliki, które mają zapisane ciągi znaków, które są wspomnianymi kluczami (ciąg znaków = hasło = klucz – to ta sama zasada).

Mieliśmy przygotowany plik wykonywalny (niepodpisany) i przy pomocy odpowiednich aplikacji (w zasadzie zautomatyzowane to było dość mocno), po zakończeniu generowania, odbywał się proces znakowania czasowego i podpisu cyfrowego. Trwało to parę sekund – i jak wspomniałem, nie generowało z naszej strony dodatkowych wymogów czasowych z tym związanych (no może poza załatwieniem samego certyfikatu, gdzie zazwyczaj potrzebna była łącznie 1h {rozłożona na parę dni} i wspomniane kilkaset zł netto). Czasowo u nas aktualizacja tych certyfikatów wypadała w grudniu.

Jednakże, w pewnym momencie Unizeto zostało przejęte przez Asseco (firma odpowiadająca za program ZUS Płatnik – kto miał styczność…nie trzeba tłumaczyć). I nagle okazało się, że standardowe przedłużanie certyfikatu wymaga np. poświadczenia notarialnego dokumentów czy innych tego typu utrudnień – tylko po to, aby wydać certyfikat, służący w zasadzie tylko do jednego celu (usuwania komunikatu denerwującego użytkownika).

Żeby było „ciekawiej” w 2017 roku, gdy znów stawaliśmy przed faktem zakupu przedłużenia certyfikatu, okazało się, że usługa „Microsoft Code Signing” nie jest już dostępna. Dlaczego? Microsoft wycofał tę usługę na rzecz innej „Standard Code Signing”, która, wg zapewnień dystrybutora (Unizeto/Asseco) miał posiadać właściwości certyfikatu „Microsoft Code Signing” czyli niby nic się nie zmienia ale … do przechowywania certyfikatu będzie konieczny zakup urządzenia kryptograficznego, gdzie będzie realizowana instalacja certyfikatu.

Podjąłem więc standardowe kroki – zamówienie certyfikatu (tradycyjnie przedłużenie, skoro certyfikat zachowuje właściwości poprzedniego) + opcja z dostawą urządzenia kryptograficznego. 13 grudnia składamy więc zamówienie na w/w rzecz, dokonujemy zapłaty i czekamy na informację o zakończeniu weryfikacji, aby wykonać aktywację certyfikatu. 22 grudnia, gdy wciąż nie ma informacji o prawidłowej weryfikacji, ale sprzęt kryptograficzny już dotarł podejmujemy akcję aktywacji certyfikatu, która … zgadliście, nie udała się.

Co to jest to urządzenie kryptograficzne?

Urządzenie kryptograficzne (inaczej: karta kryptograficzna) to połączenie pendrive, z kartą SIM, kartą microSD. Wygląda to niepozornie i łatwo można to zgubić:

Na karcie microSD wgrane są sterowniki i instrukcja, karta SIM prawdopodobnie służy do przechowywania kluczy. Po podłączeniu do komputera ukazuje się zawartość karty pamięci (2 GB), nic niezwykłego. Za tę przyjemność płaci się prawie 100zł.

Numery identyfikacyjne zostały oczywiście zamazane.

Aby w/w urządzenie było przydatne, trzeba zainstalować w komputerze sterowniki (notabene: nic tak bardzo nie narusza bezpieczeństwa systemu, niż nowe sterowniki czy zewnętrzny, niesprawdzony sprzęt) i program od dostawcy, który komunikuje się z kartą.

No to skoro jest urządzenie, to z czym jest problem?

„Facepalm” w wydaniu klasycznym

Wracam do sedna sprawy. Jest 22 grudnia (piątek), wiele osób już myśli o tym, jak spędzi Święta. Ja spędzam je robiąc „facepalm”, ponieważ zakupiony certyfikat podczas aktywacji nie jest pokazywany w sklepie dostawcy!. Efekt jest więc taki, że niby mamy wykupiony certyfikat, ale nie jest on dostępny! I na ten moment nic nie można zrobić…

Niestety, napisanie maila do firmy nic nie daje. Nikt nie odpowiada, ale raczej jest to oczywiste… Święta. Tak więc następnym dniem, w którym mam szansę się „wykazać” w tym temacie to.. tak zgadliście 27 grudnia, tuż po Świętach. Dlaczego mam szansę się wykazać? Ponieważ nie otrzymałem odpowiedzi na maila, więc chwyciłem 27-go za telefon, aby przypomnieć o problemie.

Dowiaduję się wtedy, że w sumie to źle wybrałem, bo powinienem zamówić „Wydanie certyfikatu” a nie „Odnowienie”. Co zaprzecza wcześniejszym zapowiedziom, że certyfikat Standard Code Signing posiada właściwości certyfikatu Microsoft Code Signing. Skoro posiada właściwości i jest zastępstwem – to jest logiczne, że firma nie będzie nas kasować na droższe wydanie…
Jednak nie.. okazało się, do wydania trzeba dopłacić, ale niestety formularz i kwestie załatwiania trzeba przesunąć na kolejny dzień. OK pomyślałem – załatwimy to w końcu jutro, wydajemy aktualizację i uda się to zrobić przed końcem 2017, jak zapowiadałem!

Oż.. ja naiwny. 28 grudnia otrzymuję maila o dopłacie (robię to tego samego dnie). W kolejnym mailu dostaję info o rozpoczęciu procesu złożenia wniosku certyfikacyjnego (czyżby kwota już dotarła?) i o tym, że sam proces będzie podzielony na etapy (to jest to aż tak bardzo złożone?):

  • Etap I – weryfikacji mailowej (kliknięcie w linka)
  • Etap II – dokument tożsamości osoby zgłaszającej lub notarialne potwierdzenie tożsamości / potwierdzenie tożsamości w punkcie rejestracji / posiadanie certyfikatu kwalifikowanego wydanego przez Certum/Unizeto
    oraz rachunek na dane certyfikowanej organizacji (gaz, prąd, woda, telefon..itp), pełnomocnictwo czy dokument rejestrowy, jeśli firma nie widnieje w KRS/GUS/CEiDG

Jednak w trakcie wcześniejszej aktywacji można było wybrać także telefoniczny sposób aktywacji (weryfikacja po numerze telefonicznym), który wybrałem.

No i 28 grudnia (daleko po południu) w kolejnym mailu dostaję info – że nie mogą potwierdzić mojego numeru telefonicznego i w związku z tym kontynuować aktywacji. Pomimo, iż numer SkyRaster (603 784 757) był w systemie Certum od 2013 roku (i nie zmienił się) – także w korespondencji mailowej nr telefonu do nas jest wykazany. Ale dla jednostki certyfikującej jest to niewystarczające! Wspominają o notarialnym potwierdzeniu tożsamości.

29 grudnia znajduję skan poświadczenia notarialnego (robiłem w grudniu 2015r.) to podsyłam.
W odpowiedzi – dokument nie może być starszy niż 13 miesięcy, to wysyłam skan innego dokumentu tożsamości, który robiłem w grudniu. Ładnie mi dziękują, ale niestety, księgowa niedostępna, więc certyfikat wydadzą dopiero 2 stycznia!

Tutaj plany wydania do końca roku biorą w łeb!

2 stycznia (już 2018r.) dostaję info, że do dziś nie odnotowali płatności, w mailu dostaję też info, że zamówienie mogę też anulować… (no fajnie, zrobiłem zapłatę najpierw 13 grudnia, potem 28 grudnia, a oni wskazują, że transakcja niedokonana, no pięknie). Tego samego dnia w kolejnym mailu o treści:

Przepraszamy za pominięcie w ostatniej wiadomości do Państwa informacji o potrzebie przesłania rachunku wystawionego na dane certyfikowanej organizacji (…) (np. FV za gaz, wodę, telefon, internet itp.; dane liczbowe można zamarkerować). Prosimy aby dokument ten nie był starszy niż 13 miesięcy. Po jego otrzymaniu certyfikat zostanie niezwłocznie wydany. Jednocześnie potwierdzamy zaksięgowanie płatności za certyfikat.

Czyli – prześlij nam rachunek za media to wydamy certyfikat!… Wtedy mam już kompletnie dość i zamiast pracować nad rozwojem kolejnej funkcjonalności, siadam do maila i piszę do nich co o tym wszystkim myślę. Wspominam o metodach sprawdzania firmy (w końcu jest dostępna w publicznych rejestrach), piszę o tym, iż aktualizacja czeka, Klienci też, a firma nawet nie informowała nas o tym, że nie jest w stanie wykorzystać informacji jakie posiadają!

Ponieważ jestem przeciwnikiem wysyłania rachunków z firm trzecich do firm niezaufanych (Unizeto/Certum, pomimo, iż zajmuje się technologią związaną z bezpieczeństwem, jest z naszego punktu widzenia firmą trzecią/niezaufaną, nieuprawnioną do otrzymywania informacji typu rachunki od firm trzecich). Na tej samej zasadzie mogliby sobie np. zażyczyć listy klientów, którym wydaliśmy oprogramowanie, prawda? I to wszystko pod płaszczykiem autoryzacji i rzekomego bezpieczeństwa.

Wyłudzanie danych (w tym osobowych)

Pozwolę sobie na małą dygresję. To, że korzystając z różnych serwisów, czasem może się zdarzyć zapytanie o rachunek – nie jest rzeczą niespotykaną. Taki np. PayPal (serwis obsługujący płatności internetowe) potrafi np. zażądać tego typu danych, dokumentów tożsamości i na czas ich weryfikacji całkowicie wstrzymać wypłaty. Historie ludzi, którym poblokowano konta i mieli problemy z odblokowaniem – można znaleźć spokojnie w sieci. Firma, stojąc w pozycji silniejszego (mając decyzję, aby zablokować konto i wstrzymać należne wypłaty) wymusza niejako na użytkowniku przesłanie danych, których nie powinien (przesłanie np. zwykłego rachunku za gaz sprawia, że firma uzyskuje informacje dodatkowe, do których nie jest uprawniona). Podobne podejście stosuje np. Facebook (co więcej, ostatnio były nawet zapowiedzi, że serwis może w przyszłości będzie chciał od użytkowników nagie zdjęcia {pod przykrywką automatycznego cenzurowania i blokady ich zdjęć, gdyby kiedyś wypłynęły}).

Ponieważ w większości ludzie nie lubią „przeszkadzajek”, łatwiej jest zrobić skan, przesłać, „stać się cyfrowym zakładnikiem”, pozwolić na tę „znikomą szkodliwe” akcję. Dając kolejny argument firmom, aby sięgały po coraz więcej naszych danych. W przypadku osób fizycznych przesłanie rachunku (gdy nie ma innych publicznych rejestrów) może być do pewnego stopnia zrozumiałe. Jednak zakładając firmę jesteśmy zmuszeni do obecności w różnych rejestrach (także tych oficjalnych), więc skoro rejestr typu CEiDG czy KRS (w uzupełnieniu do firmowej strony czy stron firmowych produktów) nie jest wystarczający i komuś potrzebny jest rachunek…. wrrr to po prostu jest nielogiczne!

Rozumiecie więc mój wku…moje wkurzenie, gdy firma odpisuje, że jest im bezwzględnie potrzebny mój rachunek. Na taką okazję wystawiłbym środkowy palec, ale rozumiecie.. w świecie cyfrowym pozostaje mail, trzeba zachować minimum powagi.
Zaświtało mi więc: skoro żądają ode mnie jakiegoś rachunku, wyślę im ich własną fakturę, którą sami mi wysłali rok temu!

Tego samego dnia otrzymuję kolejnego maila, że niby w rejestrach zweryfikowali, ale rachunek wciąż jest potrzebny. W odpowiedzi (czy Wy jesteście poważni?) wystosowuję oprócz innych słów prośbę o wskazanie, jakie punkty zawartej umowy uniemożliwiają wydanie certyfikatu i że samo powoływanie się na „procedury” nie jest wystarczające. W końcu – sprzedając różne produkty sprzedawca nie może ot tak ograniczać możliwości sprzedaży i tym bardziej – uzależniać wykonania umowy od przekazywania danych, które nie są w żadnej mierze potrzebne.

W kolejnej odpowiedzi otrzymuję info, że faktura od nich się nie liczy (naprawdę?) i że powinien to być rachunek związany z działalnością firmy lub lokalem. I że przepraszają, że o tym na stronie nie informowali. Do punktu uniemożliwiającego wydanie certyfikatu nie odnoszą się (temat nie istnieje?).

Wówczas (wciąż jest 2 stycznia, okolice godziny 20-tej) informuję organ certyfikacyjny, że nie traktuję ich firmy jako zaufanej i nasze firmowe procedury zabraniają mi przekazywania niezaufanym firmom informacji takie jak rachunek (co zresztą jest prawdą), a brak realizacji zlecenia traktuję jako niewywiązanie się z umowy sprzedaży. Po raz kolejny ponawiam prośbę o podanie zapisu umowy sprzedaży, który w tym przypadku uniemożliwia kontynuację aktywacji certyfikatu i wspominam o fakcie, iż następnym krokiem będzie udanie się do prawnika w celu dalszych konsultacji (niestety czasem nie da się inaczej).

Tuż przed 21-szą 2 stycznia otrzymuję odpowiedź: pytanie zostało przekazane do działu inspektorów bezpieczeństwa, otrzymuję również informację, w której dosłownie: jestem proszony o dopisanie firmy do bazy typu DUNS/ „panoram firm” (nawet na kilka godzin), aby firma mogła przeprowadzić weryfikację telefoniczną. A wcześniej podane przez nas źródła nie zostały zaakceptowane przez ich inspektora bezpieczeństwa.

Czy to się dzieje naprawdę, czy tylko mi się śni?

Tak zaśpiewał swego czasu Freddie Mercury, tak w sumie wtedy ja mógłbym zaśpiewać (gdybym miał w ręce mikrofon i potrafił śpiewać 🙂 ).

To już przechodzi wszelkie pojęcie – firma wydająca certyfikaty, zajmująca się bezpieczeństwem, sugeruje mi, żeby na parę godzin dodać wpis do płatnych katalogów firm 🙂 O ile znam tego typu rozwiązania, nikt na coś takiego nie idzie…. nie ma wpisów godzinowych, opłaca się wpis na określony czas (np. na rok, może pół roku), kasują Cię co najmniej na kilkaset zł (jeśli nie ponad tysiąc) rocznie, a efekt tego typu wpisu bywa w dzisiejszych czasach kiepski (w sumie to już parę lat temu był). W zakresie tego typu usług, wręcz bardzo łatwo trafić na katalog, w którym rejestracja okaże się potencjalną drogą w kierunku strat (ciekawy wpis lub inny).

Dlatego już dawno stwierdziłem, że szkoda marnować kasę na tego typu rozwiązania, lepiej wrzucić ją w inwestycję w rozwój oprogramowania nam tym użytkownik na pewno skorzysta!

Trzeciego stycznia (dla mnie formalnie jest jeszcze jakby drugi – bo maila do nich wysyłam 9 minut po północy):

Jeśli Państwa inspektor bezpieczeństwa zamiast myśleć, kieruje się procedurami napisanymi przez podobnie myślące osoby, to nie dziwię się, czemu tak utrudniacie życie swoim klientom. Przypominam, że początki naszej współpracy z Unizeto i zamawianie podpisów elektronicznych (jeszcze przed przejęciem przez Asseco i zanim zmieniliśmy formę na spółkę) to rok 2013. Po 5 latach współpracy nie potrafić zweryfikować nr telefonu, który zapewne gdzieś widnieje w Waszej bazie jest doprawdy zadziwiające (nagrywacie rozmowy, rejestrujecie zapewne zgłoszenia – możecie zweryfikować u siebie). Przy takich perspektywach nie wiem czy w ogóle zdecydujemy się na dalszą współpracę w następnym roku (przy założeniu, że certyfikat zostanie poprawnie przez Państwa wydany). Z roku na rok coraz gorzej, szczególnie po przejęciu przez Asseco.

W skrócie – informuję ich też o naszych domenach i stronach na kontach społecznościowych – w końcu to też jest dobra możliwość weryfikacji. Przy okazji proszę, aby każdy mail jaki od nich przychodzi był podpisany z imienia i nazwiska (bo dziwnym trafem, wcześniejsze maile wymijające nie były podpisane osobowo tylko nazwa firmy).

Trzeciego stycznia z rana otrzymuję odpowiedź, tym razem osobową, od specjalisty do spraw jakości: że o warunkach zostałem wcześniej poinformowany (tak była info. o rachunku, ale była też informacja o aktywacji telefonicznej, którą wybrałem zamiast aktywacji przez rachunek). Pisze też o tym, że są zobowiązani korzystać ze źródeł publicznych (a np. oficjalna strona taką nie jest?) I tutaj otrzymuję informację, że żadne przesłane linki (nawet do zewn. rejestrów) nie należą do stron zakwalifikowanych przez nich jako wiarygodne. Wtedy zrozumiałem, że zamiast rozwijać Raporty czy PowerGPS może trzeba było założyć klon bazy firm, wówczas byłoby z górki 🙂

Dostaję też info, że nie powinienem mieć żadnej wątpliwości co do zaufania wydanemu przez nich certyfikatowi (Wow! naprawdę?)

No nie wierzę!

Strona, jaką prowadzimy od lat, linki do FB i innych stron, na których można nas znaleźć (np. wpis firmowy na Geoforum) – są dla Certum niewiarygodne, natomiast strony typu katalogi firm, gdzie płacąc można dodać każdą firmę (nawet taką legalną tylko na papierze – czyli firma na słupa) i gdzie podstawą publikacji i utrzymania jest odpowiednio wysoka „gaża” dla właściciela serwisu są dla „inspektorów bezpieczeństwa” wiarygodne!

Doprawdy wspaniałe procedury!

Tutaj łapię się za głowę i przyznam, że już szukam ofert innych firm, wydających certyfikaty, zastanawiając się, dlaczego np. zagraniczny DigiCert nie wymaga kart kryptograficznych, a Unizeto już tak. Zastanawiam się już poważnie czy aby nie zrezygnować w całości z podpisywania aplikacji. Muszę trochę ochłonąć, zdaję sobie sprawę, że w ciągu paru dni będę musiał przeprowadzić procedurę anulowania zamówienia, a może i coś więcej (pomoc prawną, gdyby były problemy z tym związane).

I nagle!

Otrzymuję info, że certyfikat zostanie wydany na podstawie poprzedniego skanu potwierdzenia z banku, który przesłałem w grudniu 2016 roku, i że dołączyli go do bieżących dokumentów.
(czyli rozumiem to tak, że wtedy nie był dołączony do mojej historii klienckiej?)

W końcu, 3 stycznia, certyfikat zostaje wydany. Powinienem teraz otworzyć szampana!

Czy faktycznie tak się stało? O tym w następnym wpisie (tak, też jest trochę przydługawy).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *