Archive for the ‘Podpis’ Category

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 listopada 2012 by marekwmsdn in Bezpieczeństwo, Cryptography, Podpis, Smart Cards

Różności   Leave a comment

Posted 19 czerwca 2012 by marekwmsdn in Crystal Reports, Dzieci, Eclipse, linq, PDF, Podpis, Tutotiale, WCF

Różne narządka   Leave a comment

Portal technibble jest nieocenionym źródłem wiadomości i różnych pomocnych programików jak np. do wyszukania sterowników do karty sieciowej (i tu), lub do naprawy Windows 7. Albo też i lista darmowych narzędzi na bootowalnych CD. Oraz wiele, wiele innych.  Np.:

Warto go okresowo sprawdzać…

Coraz częściej mówi się o nowej erze w aplikacjach webowych opartej o stosowanie HTML5, na tej stronie – http://caniuse.com/#search=webstorage – można sprawdzić jakie przeglądarki wspierają elementy tego standardu. Jeżeli chodzi o IE8 to jest niedobrze, ale wspiera ona lokalną pamięć.

Tyle się mówi o certyfikatach, można jest przetestować korzystając z darmowych certyfikatów wystawionych przez cacert.org lub korzystać z narzędzi takich jak http://tinyca.sm-zone.net/. Pozwoli to na podpisanie dokumentów w LibreOffice – opis procedury przedstawiony jest tu.

Kapitalny artykuł na temat wprowadzenia do pisania własnych modułów pod IIS – http://www.codeproject.com/Articles/335968/Implementing-HTTPHandler-and-HTTPModule-in-ASP-NET

Stare zasoby o Javie – http://members.fortunecity.com/seagull98/Java.html – stare ale jare!

Zasoby MSDN o LS – http://msdn.microsoft.com/en-us/lightswitch/ff938857#1

Nieruchome nagłówki do tabel przewijanych w HTML (plugin jQ) – http://www.easy400.net/fixedHeaderTable/html/aboutit.htm#3 – może się przydać

Gdyby ktoś chciał pisać aplikacje na urządzenia mobilne to niech wie, że są do tego narzędzia:

Kryptograficzna biblioteka   Leave a comment

Mało znane miejsce w Internecie – austriacka firma dostarcza wielu narzędzi do uzyskania dostępu do kart kryptograficznych. narzędzia są płatne ale jedno z nich owijka (wrapper) jest dostarczana na zasadzie licencji otwartej – PKCS#11 Wrapper.

Odłam ze strony głównej – informacja o oprogramowaniu do podpisywania PDF – https://www.buergerkarte.at/pdf-signatur.en.php. Tamże jest strona z możliwością weryfikacji podpisu pod dokumentem PDF – https://www.signature-verification.gv.at/ – pobiera się z komputera plik PDF i można go niezależnie zweryfikować. Jest tam też cały zespół linków – http://www.signatur.rtr.at/en/links/index.html

Znany i ceniony Peter Gutman (jego autorska strona – http://www.cs.auckland.ac.nz/~pgut001/) wydał bibliotekę w C++ wraz z owijką w postaci DLL do różnorodnych funkcji kryptograficznych. Adres do niej – http://www.cs.auckland.ac.nz/~pgut001/cryptlib/index.html. Dodatkowo autor udostępnił mega tutorial na temat kryptografii (1000 slajdów) – http://www.cs.auckland.ac.nz/~pgut001/tutorial/index.html

Mimo wszystko źródłem najdokładniejszych informacji na temat kryptografii jest firma RSA -  “PKCS #11: Cryptographic Token Interface Standard

Posted 14 grudnia 2011 by marekwmsdn in Cryptography, Kryptografia, Podpis

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.

Ciekawostki programistyczne   Leave a comment

Kompilacja C# poprzez środowisko Mono. Wiele darmowych rzeczy – http://www.thefreecountry.com/utilities/index.shtml, np. darmowe dźwięki. Cytaty o C/C++ http://www.di-mgt.com.au/cprog.html.  Jak zacząć z C#? Darmowy kurs – http://channel9.msdn.com/Series/Kurs-aplikacji-web-od-podstaw?sort=viewed&WT.mc_id=ban-c-pl-dca–&WT_mc_id=ban-c-pl-dca–

Więcej o HTML5/JS i ogólnie tworzeniu aplikacji webowych na stronie HTMLgoodies:

  1. Edytory HTML5 – http://www.htmlgoodies.com/html5/tutorials/five-essential-html5-editors.html#fbid=Qu6g6p94HcT:
    1. http://maqetta.org/
    2. http://www.aloha-editor.org/
    3. http://www.bluegriffon.org/

Tworzenie i podpisywanie PDF:

  1. http://old.nabble.com/smartcard-and-ocsp-td25822166.html
  2. http://www.datadynamics.com/Help/ActiveReports6/arHOWPDFDigitalSignature.html
  3. http://www.novapdf.com/kb/digital-pdf-signature-332.html
  4. http://itextpdf.com/examples/iia.php?id=222

Posted 23 września 2011 by marekwmsdn in PDF, Podpis, Programowanie

Certyfikaty ciąg dalszy   Leave a comment

Uwagi:

  1. Są dwa niezależne od platformy systemowej polecenia do przetwarzanie certyfikatów:
    1. keytool – należące do środowiska deweloperskiego Java (wraz z jarsigner) odnośnie bezpieczeństwa, zaleta to specjalizacja do wykonania określonych zadań (keytool to zarządzanie certyfikatami w specjalnym repozytorium ‘keystore’, a jarsigner – wykorzystanie certyfikatów z repozytorium do składania podpisu)
    2. openssl – prawdziwie niezależne narzędzie do pracy z certyfikatami, jego wadą jest “niskopoziomowość” dostępu do funkcji kryptograficznych a zaletą jest to, że na jego bazie powstało wiele implementacji  w różnych językach programowania np. php a poprzez port na Windows także w .NET. Ciekawe artykuły na ten temat:
      1. wyliczanka różnych odmian poleceń  – http://www.zalejski.pl/linux/openssl/
      2. wymienialność – http://www.derkeiler.com/Newsgroups/microsoft.public.platformsdk.security/2004-04/0304.html
    3. Jest jeszcze wiele innych “narzędzi” do których zaliczamy:
      1. xca
      2. cryptool
      3. tinyCA – http://tinyca.sm-zone.net/

Posted 24 sierpnia 2011 by marekwmsdn in Java, Kryptografia, Podpis