Archive for the ‘Smart Cards’ Category

Badania podstawowe nad certyfikatami i OCSP   Leave a comment

OCSP jest alternatywą do CRL (b. dużo informacji o nich jest na wiki anlgojęzycznej). Obie te metody sprawdzenia ważności certyfikatów są dobre z tym, że CRL pobiera listę z serwera (czasami może być ona ogromna, chociaż można pobrać ją przyrostowo), OCSP odpytywuje ją on-line (pytanie-odpowiedź). Co wybrać? Teoretycznie OCSP zapewnia najwyższy poziom aktualności informacji o stanie certyfikatów odwołanych, ale są problemy z implementacją protokołu OCSP (RFC 2560 – PKIX OCSP) ponieważ jest on zbyt liberalny: zawiera część obligatoryjną i opcjonalną; w przypadku konkretnego serwera OCSP tak naprawdę nie wiadomo jak wygląda jego implementacja. Do tego dochodzi brak wiedzy jakie są rzeczywiste adresy tych serwerów dla konkretnych dostawców certyfikatów. Czasami dostawcy zakrywają się zapewnieniem natychmiastowej aktualizacji CRL w przypadku wpisania na nią unieważnionego certyfikatu. Z tego co ustaliłem do są dostępne dla:

  1. Certum – rzetelna firma, ma swój serwer OCSP -  http://ocsp.certum.pl. Niestety nie udało mi się to sprawdzić. Z tego co jest na stronie CERTUM na ścieżce Strona główna > Wiedza > CERTUM PCC: regulamin usług certyfikacyjnych w dokumencie pt. Regulamin usług certyfikacyjnych wersja 1.7 (330 kB) wynika (cytat) i nie ma tu mowy o OCSP!:

    Informacja o unieważnionym certyfikacie umieszczana jest niezwłocznie na liście CRL. Wszystkie
    listy CRL publikowane są nie rzadziej niż co 24 godziny i automatycznie w repozytorium Urzędu
    Certyfikacji.

  1. KIR – brak danych, w opublikowanej polityce certyfikacyjnej KIR bazuje na CRL który jest publikowany NATYCHMIAST po zgłoszeniu unieważnienia certyfikatu. W bloku Informacje->Dokumenty i Umowy (http://www.elektronicznypodpis.pl/informacje/dokumenty-i-umowy) można znaleźć ich politykę “Polityki certyfikacji i Regulaminy” a tam wpis “Polityka certyfikacji KIR S.A. dla certyfikatów kwalifikowanych” . A tam można znaleźć:

      8.5.
      Unieważnienie certyfikatu
      W przypadku pozytywnej weryfikacji wniosku o unieważnienie/ zawieszenie certyfikatu KIR S.A. unieważnia/ zawiesza certyfikat. Unieważnienie/ zawieszenie certyfikatu następuje w momencie wpisania certyfikatu na listę unieważnionych i zawieszonych certyfikatów. Informacja o unieważnieniu/ zawieszeniu certyfikatu jest umieszczana na liście unieważnionych certyfikatów – CRL. KIR S.A. zawiadamia subskrybenta i ewentualnie inną osobę o unieważnieniu/ zawieszeniu certyfikatu

      8.7.
      Listy zawieszonych i unieważnionych certyfikatów
      Po zawieszeniu lub unieważnieniu certyfikatu, KIR S.A. generuje listę zawieszonych i unieważnionych certyfikatów. Lista ta zawiera:
      − wskazanie czasu jej powstania;
      − wskazanie czasu publikacji następnej listy zawieszonych i unieważnionych certyfikatów;
      − numer seryjny zawieszonego/ unieważnionego certyfikatu;
      − wskazanie czasu zawieszenia/ unieważnienia certyfikatu;
      − przyczynę zawieszenia/ unieważnienia certyfikatu.
      Po cofnięciu uprzedniego zawieszenia certyfikatu, informacja o takim certyfikacie jest usuwana z listy zawieszonych i unieważnionych certyfikatów.
      Z listy zawieszonych i unieważnionych certyfikatów mogą nie zostać usunięte informacje o certyfikatach unieważnionych, których okres ważności nadany przez KIR S.A. upłynął.
      Szczegółowy opis konstrukcji listy zawieszonych i unieważnionych certyfikatów określa punkt 10 niniejszej Polityki.

      8.8.
      Publikacje i repozytorium
      Informacje dotyczące usług certyfikacyjnych świadczonych przez KIR S.A., w informacje nt sposobu zawierania Umów, obsługi zamówień i odnowień certyfikatów są udostępniane wszystkim zainteresowanym na stronie internetowej KIR S.A. http://www.kir.com.pl lub w placówkach KIR S.A.
      Listy zawieszonych i unieważnionych certyfikatów są generowane przez KIR S.A. nie rzadziej niż co 12 godzin lub po zawieszeniu albo unieważnieniu certyfikatu. Aktualizacja list odbywa się nie później niż w ciągu 1 godziny od zawieszenia lub unieważnienia certyfikatu.
      Aktualne listy CRL generowane przez KIR S.A. są bezpłatnie udostępniane wszystkim zainteresowanym na stronie internetowej KIR S.A. http://www.kir.com.pl
      Wszystkie wydane przez KIR S.A. certyfikaty przechowywane są w KIR S.A. co najmniej przez okres wymagany przez ustawę.

    1. Sigillum – brak danych, podobnie jak w KIR. Ich regulamin jest na ścieżce – Strona główna > Repozytorium > Polityki > Polityki obowiązujące pod adresem http://sigillum.pl/polityki_obowiązujące.html w pliku Polityka PCCE dla Certyfikatów Kwalifikowanych ważna od 15.05.2012 r.
    2. CenCert – kolejna rzetelna firma, ich serwer jest pod adresem http://ocsp.cencert.pl (wg. http://www.cencert.pl/Us%C5%82uga%20OCSP/). Polityka certyfikacji dla certyfikatów kwalifikowanych jest na ich stronie w repozytorium – http://www.cencert.pl/site_media/upload/pdf/Polityka_certyfikatow_kwalifikowanych_w_2.02.pdf. Ciekawy wyjątek ze strony http://www.cencert.pl/Lista%20CRL/ na temat szybkości publikowania list CRL: 

      Lista unieważnionych i zawieszonych certyfikatów (lista CRL) wystawionych przez Podmiot Kwalifikowanych Usług Certyfikacyjnych Enigma SOI Sp z o.o. jest publikowana pod adresem http://www.cencert.pl/crl/enigma_ostatni_kwal.crl

      Planowa lista CRL jest publikowana co około 30 minut. W przypadku prac technicznych może być publikowana rzadziej, jednak co najmniej raz dziennie.

      W przypadku zmian statusu certyfikatu, lista CRL jest publikowana zasadniczo w ciągu kilku minut od zaistnienia zdarzenia, a w przypadku ewentualnego zaistnienia jakichś przeszkód, nie później niż w ciągu 1 godziny od momentu zdarzenia.

    3. Commodo – http://ocsp.usertrust.com
    4. Dostęp do standardu RFC 2560 – http://www.ietf.org/rfc/rfc2560.txt
    5. Przewodnik po PKI i kryptografii – http://www.cs.auckland.ac.nz/~pgut001/pubs/x509guide.txt – klasyka wg. Peter Gutmann

    Posted 26 Listopad 2012 by marekwmsdn in CLR, Kryptografia, OCSP, Smart Cards

    Alternatywne sterowniki do smart card   Leave a comment

    Obsługa czytników smart card (SC) czy to w postaci urządzeń i karty czy też w postaci pendrive (tzw. mała kart) zwany również jako token USB nieuniknienie wiąże się z obsługą USB. W tym celu powstały dwa standardy, pierwszy zwany PC/SC (za nim stoi grupa http://www.pcscworkgroup.com/)  związany z MS WIndows (jest on najstarszy i najbardziej okrzepł, właściwie jego rozwój się już dawno zakończył ostatnie prace pochodzą z 2000 roku a wersja standardu jest taka: PC/SC Part 10, rev. 2.02.05 (12/08)), z pełnym API udostępnionym poprzez CAPICOM (tak te standard API oparty na architekturze COM nadal działa, sprawdziłem nawet na Windows 8!) lub platformę .NET. Na rynku polskim zasłużyła sobie na pochwałę firma CryptoTech (produkuje sterowniki obsługi SC do Windows) oraz Sigillum (PWPW) która dostarcza w jednym pakiecie instalacyjnym WSZYSTKIE występujące w Polsce sterowniki do obsługi SC (wraz z zaświadczeniami certyfikacyjnym co jest dużym odciążeniem podczas instalacji). Duże brawa dla obu tych polskich firm!

    Schemat architektury obsługi SC pod Windows:

    imageimage

    Drugi jest dla języka Java a dzięki temu dla systemów nie Windows np. Unix/Linux. Nosi on różne nazwy np. psclite, PC CCID (Chip/Smart Card Interface Devices) wspiera urządzenia  takich producentów jak Omnikey, ACS, Gemalto (na naszym rynku to wystarczy, ponieważ większość urządzeń do składania bezpiecznego podpisu opierają się właśnie o te trzy firmy) pełna lista wpieranych urządzeń jest tu – http://pcsclite.alioth.debian.org/ccid/supported.html

    Uwaga ważna lista sterowników WSZYSTKICH na ten czas wystawców certyfikatów:

    image

    Z raportu działania CryptoCard Suite lista załadowanych sterowników sterowników:

    Procedure ‚CryptEnumProviders’ found, version A
    Provider ‚crypto3 CSP – profil zwykły’ type 1
    Provider ‚cryptoCertum CSP’ type 1 <— czyli niekwalifikowany, próbny
    Provider ‚cryptoCertum3 CSP – profil bezpieczny’ type 1 <— czyli podpis kwalifikowany
    Provider ‚CryptoTech CSP’ type 1
    Provider ‚Microsoft Base Cryptographic Provider v1.0’ type 1
    Provider ‚Microsoft Base DSS and Diffie-Hellman Cryptographic Provider’ type 13
    Provider ‚Microsoft Base DSS Cryptographic Provider’ type 3
    Provider ‚Microsoft Base Smart Card Crypto Provider’ type 1
    Provider ‚Microsoft DH SChannel Cryptographic Provider’ type 18
    Provider ‚Microsoft Enhanced Cryptographic Provider v1.0’ type 1
    Provider ‚Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider’ type 13
    Provider ‚Microsoft Enhanced RSA and AES Cryptographic Provider’ type 24
    Provider ‚Microsoft RSA SChannel Cryptographic Provider’ type 12
    Provider ‚Microsoft Strong Cryptographic Provider’ type 1

    Posted 19 Listopad 2012 by marekwmsdn in Bezpieczeństwo, Cryptography, Podpis, Smart Cards

    Sprawa certyfikatów   Leave a comment

    Certyfikatów jest wiele, m.in. komercyjny i kwalifikowany. W Polsce inne rodzaje certyfikatów są mało popularne no chyba jeszcze certyfikat na serwer internetowy i SSL. U nas z certyfikatów najczęściej korzystają PRZEDSTAWICIELE firm. Ciekawa sprawa, jeżeli ktoś dostał od firmy certyfikat kwalifikowany to nigdzie nie jest napisane, że nie może się nim posługiwać prywatnie (JEST on wystawiony na OSOBĘ). Taki certyfikat z nazwiskiem jego posiadacza jest jego niejako elektronicznym dowodem osobistym. To, że ma tam gdzieś nazwę firmy oznacza, że kiedyś w niej pracował – zresztą miejsce pracy nie jest takie ważne, dzisaj tu, jutro tam – chyba, że firma taki certyfikat unieważni. Zresztą wypróbowana praktyka w dokumentach papierowych jest taka, że podaje się dane osób UPOWAŻNIONYCH lub PRZEDSTAWICIELI do składania podpisu. Podpisując dokument z nazwiskiem osoby upoważnionej pozwala sprawdzić czy ona właśnie podpisała ten dokument elektroniczne – to taki double-check.

    Dla firm trudno raczej certyfikat uzyskać, kwalifikowany jest dla osób fizycznych tylko. Co robić? Można wystosować zapytanie do naszych trzech wystawców certyfikatów lub zwrócić się do uznanych firm zagranicznych jak Thawte lub Verisign (lub mniej znanych jak GlobalSign a na pewno nie do DigiNor – ta firma po skandalu z wyciekiem certyfiaktów i brakiem należytej kontroli nad procesem obsługi życia certyfikatu słusznie zresztą upadła). Poszukałem trochę w sieci – CERTUM daje certyfikat niekwalifikowany, podobnie KIR, inna definicja niezależna. Ale chyba najlepiej precyzuje różnice między tymi dwoma certyfiaktami stowarzyszenie PEMI:

    • certyfikat kwalifikowany może być używany jedynie do składania/weryfikacji podpisu elektronicznego. Ustawa zabrania używania go do innych celów takich jak logowanie, szyfrowanie. Certyfikaty kwalifikowane mogą być używane tylko z „bezpiecznymi aplikacjami” czyli takimi które posiadają oświadczenie producenta o zgodności z wymogami ustawy o podpisie elektronicznym
    • certyfikaty niekwalifikowane nie posiadają ograniczeń pod względem ich użytecznośc
    • certyfikaty niekwalifikowane mogą być przechowywane na komputerze użytkownika lub na urządzeniu kryptograficznym (karta mikroprocesorowa, etoken itp). Użytkownik ma pełna swobodę w wyborze nośnika certyfikatu
    • podpis elektroniczny weryfikowany przy pomocy certyfikatu niekwalifikowanego wywołuje skutki prawne podpisu odręcznego jeśli obie strony zawarły wcześniej umowę. W umowie powinny być zawarte zapisy o wzajemnym uznaniu podpisów weryfikowanych przy pomocy certyfikatów niekwalifikowanych
    • certyfikaty niekwalifikowane mogą wydawać Centra Certyfikacji niekwalifikowane i kwalifikowane
    • skutki prawne –  jeśli obie strony (wymieniające podpisane elektronicznie dokumenty) zawarły wcześniej umowę. W umowie (tak zwanej komunikacyjnej) powinny być zawarte zapisy o wzajemnym uznaniu podpisów weryfikowanych przy pomocy certyfikatów niekwalifikowanych oraz identyfikatory tych certyfikatów np. „nr seryjny”

    PEMI jest na tyle “dobre”, że oferuje przedsiębiorcom usługę pod nazwą e-Firma (raczej ją mgliście przedstawia) ale daje certyfiakty min do podpisywania kodu. Wszystko za darmo. Podpis elektroniczny w Polsce wg. PEMI:

      • Centra kwalifikowane:
        – PWPW Sigillum
        – TP Internet Signet (zawieszona działalność)
        – KIR
        – Unizeto Certum
      • Centra niekwalifikowane:
        – Polcert
        – Energocert
        – PCC EuroPKI

    Podobne szerokie kompendium wiedzy na temat podpisu jest tu na stronach IPSEC.

    Inna sprawa to wykorzystanie certyfiaktów do podpisywania kodu. Microsoft zawiera szereg programów wspierających ten proces – opis code signing jest tu. Ich lista znajduje się tu i można je pobrać ze strony Windows SDK (trzeba je ściągnąć), wsród nich jest signtool do podpisywania kodu certyfikatami. Innym poleceniem jest certmgr. Uwaga – ten polecenia certmgr.exe i inne wykonywać w katalogu z SDK (c:\program files\microsoft SDKs\Windows\v7.0A\bin)! W przeciwnym wypadku pojawi się wersja przystawkowa (msc). Certmgr.exe jest ważna ponieważ pozwala zarządzać CRL – tutaj na MSDN mamy opis. Powyższe programy wchodzą w skład “miękkiej” części Windows Client (klienckiej) – narzędzi do tworzenia oprogramowania. Z kolei z innej bajki jest równie pomocne polecenie certutil. Wchodzi w skład Serwera Windows 200X (a dokładnie jego komponentu tzw. Certificate Services) – a więc jest skierowane dla administratorów. Zarówno certutil jak i certmgr pozwalają na zarządzanie CRL (najbardziej interesujące jest odszyfrowanie formatu CRL i “wydruk” listy odwołanych certyfikatów). Można też samemu “odszyfrować” ten format – jest to ASN.1 (Abstract Syntax Notation 1).

    Nierozerwalnie ze sprawami certyfikatów wiąże się karta inteligentna tzw. smartcard. Microsoft wybrał implementację PC/SC – to zresztą standard na komputery PC. Architektura programowa obsługi SC jest opisana tutaj na stronach MSDN.

    Podpis można opatrzeć znacznikiem czas z bezpłatnego serwera publicznego – http://time.certum.pl.

    Ciekawostka – usługi dodatkowe świadczone przez CERTUM: Notarius oraz sprawdzenie stanu certyfikatu w trybie on-line. Trzeba też sprawdzić ofety KIR, Sigillum i Mobitrust – na komórkę / Mobicert. Zagraniczne rozwiązania mają firmy: Aloha, Eldos a w odniesieniu do PDF – GlobalSign. Firma ta jest partnerem Adobe w projekcie CDS (Certified Document Services) – mówi o tym ten dokument. Jej oferta jest droga i różni się technicznie od naszgo podpisu z CERTUM tym, że głównym urzędem certyfiakcyjnym jest w tym przypadku nie polski urząd a sama firma ADOBE (ale za to każe sobie słono płacić). Przypomina się tam też, że PDF nie jest zamkniętym formatem –  a standardem ISO 32000-1. Kolejny standard ETSI/ESI Technical Standard (TS) 102 778 (w skrócie PAdES) – stanowi odpowiedź na spełnienie wymogów dyrektywy unijnej – 1999 EU Signature Directive.

    Podobnie funkcje podpisywania dokumentów PDF ma biblioteka KIR napisana w języku Java.

    Linki z lenovo – czwartek   Leave a comment

    1. Podpisywanie i tworzenie PDF – http://stackoverflow.com/questions/745779/generate-pdf-with-digital-signature  – jest b. wiele bibliotek i duży wybór.
    2. Tamże ciekawy wpis – http://stackoverflow.com/questions/3428344/xml-digital-signature-in-net. Są dwie główne biblioteki: dla javy to “signature applet created by the Jaume I University (CryptoApplet), that you can find at projectestic.uji.es/pr/cryptoapplet” i dla .NET to “a new project I’m involved in (XAdES .NET Project), that you can find at xadesnet.codeplex.com”. Inne linki dla javy (na bazie http://stackoverflow.com/questions/3054106/digital-signature-integration-with-software-written-in-java):
      1. http://java.sun.com/developer/technicalArticles/xml/dig_signatures/
      2. http://www.ibm.com/developerworks/lotus/library/forms-digital/
    3. Weryfikacja podpisu w krzyżowych śśrodowiskach – http://stackoverflow.com/questions/4203652/problems-checking-net-signature-in-java i http://stackoverflow.com/questions/1601560/java-and-net-interop-on-rsa-signatures
    4. MS na rzecz środowisk open source – technologia REST:
      1. http://blog.noelios.com/2009/02/20/microsoft-selects-restlet-to-show-rest-interoperability/
      2. http://www.restlet.org/community/
    5. Też ze stackoverflow:
      1. http://stackoverflow.com/questions/4666970/signing-soap-messages-using-x-509-certificate-from-wcf-service-to-java-webservice
      2. http://stackoverflow.com/questions/4379786/calling-a-secured-web-service-in-java
      3. Wykorzystanie certyfikatów do walidacji tożsamości – http://stackoverflow.com/questions/2276594/how-to-configure-a-wcf-service-to-only-accept-a-single-client-identified-by-a-x50

    Ważne rzeczy dla rozwoju   Leave a comment

    Jedną z poważnych wad JS jest brak standardowego mechanizmu źródła danych i związania tego źródła z elementami na stronie HTML (tzw. data binding). W innych środowiskach jest wiele zaawansowanych mechanizmów tego typu np. OData. Próbą naprawienia tego braku jest projekt datatables.  Mamy tutaj nie tylko rozwiązany problem źródła danych ale też i wizualizacji w postaci tabeli z paginacją (oraz rozwiazanie dostarczania danych po stronie serwera). Biblioteka jest dojrzała i opiera się o jQuery.

    Z ciekawej prezentacji możliwości jQuery z poratlu http://www.wdvl.com/:

    1. Ciekawy menedżer układów na stronie zainspirowany EXT JS – UI.Layout
    2. ToolTips – http://jquery.bassistance.de/tooltip/demo/
    3. Stronicowanie – http://www.geckonewmedia.com/blog/2009/8/20/simplepager—jquery-paging-plugin—updated
    4. http://bassistance.de/jquery-plugins/jquery-plugin-accordion/

    Masz aplikację w Pythonie? Możesz ją skompilować do exe przy pomocy Py2exe lub cx_freeze. Lub napisać aplikację GUI przy pomocy PythonCard.

    Ku pamięci, jak osiągnąć więcej mniejszym wysiłkiem (Coaching Series: Accomplishing More By Doing Less) na YT z serii http://www.youtube.com/user/GoogleTechTalks

    Wielkopomne dzieła MS:

    1. .NET Web Services Security” autorstwa Juval Lowy
    2. Securely with XML Signatures and Encryption”
    3. Jeszcze jedna składnica e-book-ów: netbks.info oraz www.wowebook.com lub congloi.info
    4. Retrieving HTTP content in .NET” (inna strona Ricka S – http://americanparanoia.com/) + jego blog
    5. Przyczynek do programowania w C# od Yahoo (stosuje REST)
    6. Wzorce dla Ajax-a – http://ajaxpatterns.org/Ajax_Frameworks
    7. Explore Rich Client Scripting with jQuery
    8. Paul Morozowski – http://www.rcs-solutions.com/blog/CategoryView,category,WCF.aspx

    Rozwój duchowy:

    1. http://sanctus.org/lectionary.html
    2. http://higherthings.org/ – tamże jest też radio
    3. http://www.dragosroua.com/how-to-defrag-your-mind-in-5-easy-steps/

    Coś dla dzieci – portal – http://www.bestprogrammertools.info/everything.html

    Obsługa SC i OCSP   Leave a comment

    OCSP jest standardem opisanym jako – RFC 2560 – http://tools.ietf.org/html/rfc2560.

    Artykuł na temat SC w Windows – wg. specyfikacji PC/SC. Część 2 – http://www.aspfree.com/c/a/C-Sharp/Smart-Cards-in-.NET-Part-2/5/ i  3 – http://www.aspfree.com/c/a/.NET/Smart-Cards-in-NET-Part-3/5/

    Posted 16 Lipiec 2009 by marekwmsdn in Smart Cards