Archive for the ‘Kryptografia’ 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 listopada 2012 by marekwmsdn in CLR, Kryptografia, OCSP, Smart Cards

    Ciekawe linki   Leave a comment

    Świetny kurs JS – http://jqfundamentals.com/book/index.html, a informacja pochodzi ze strony – http://citizen428.net/blog/2010/08/12/30-free-programming-ebooks/. Praca z PDF-ami. Zapełnienie formularza przygotowanego w PDF-ie poprzez program – http://www.codeproject.com/Articles/23105/Programmatically-Complete-PDF-Form-Fields-using-Vi. Uproszczone wprowadzenie do szyfrowania w .NET – http://www.codeproject.com/Articles/10154/NET-Encryption-Simplified.

    Ciekawy artykuł na temat parsowania formatu PDF – http://www.codeproject.com/Articles/12445/Converting-PDF-to-Text-in-C.  Autor przucił bibliotekę itext na rzecz PDFBox. (piękny link z muzyką – http://pdfbox.org/sugar-hill-gang-apache-jump-on-it/). Aktualny link do ściągnięcia – PDFBOX –> http://sourceforge.net/projects/pdfbox/files/latest/download?source=files. To wszystko działa dzięki IKVM.NET. Inny projekt to scalanie plików PDF – http://www.codeproject.com/Articles/28283/Simple-NET-PDF-Merger.

    Podpis cyfrowy PDF – opis jak to zrobić – http://www.codeproject.com/Articles/14488/E-signing-PDF-documents-with-iTextSharp wraz z kodami źródłowymi oraz podobna biblioteka – http://www.codeproject.com/Articles/29274/Digital-Signatures.

    Super cytat – “He usually works late hours with some heavy music and prefers to test and prove everything to his own satisfaction before committing himself and likes to finish what he starts without interruptions. ” z http://www.codeproject.com/Articles/6623/Porting-Java-Public-Key-Hash-to-C-NET na temat wymiany kluczy między Javą (Unix) a .NET-em.

    Wymienialność kryptograficzna między Javą a .NET-em:

    Informacja o dodatkowej funkcjonalności w C# przy przejściu z wersji 2.0 do 4.0 – http://www.codeproject.com/Articles/327916/C-Language-Features-From-C-2-0-to-4-0

    Posted 20 lutego 2012 by marekwmsdn in C#, Interoperability, iText, Java, JavaScript, Kryptografia, PDF

    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.

    Takie sobie nowinki   Leave a comment

    Gartner przewiduje w swym raporcie, że po okresie spadku zakupów PC ponowny wzrost w drugiej połowie 2012 roku. Twierdzi, że możliwości PC (wygoda, ergonomia, szybkość, pasmo internetowe) w stacjonarnym miejscu nie zastąpią urządzenia przenośne.

    Google ma wiele ciekawych miejsc do zwiedzenia:

    • Code Playground: zasoby API dla JS (closure, JSONP oraz funkcje anonimowe) i innych technologii Google (biblioteki JS, wizualizacja danych: wykresy, panele). Przykład pobrania danych z arkusza i ich użycia.
    • API do dokumentów 
    • Uwaga! Jest płatne (399) narzędzie do integracji .NET z Google Docs firmy RSSBUS
    • Oskryptowanie arkusza poprzez ściąganie danych z serwisów webowych i umieszczanie ich w arkuszu Google spreadsheet – ciekawe co mówi EU – dane mają być przechowywane na terenie Unii (ale jakie dane? wszystkie czy te osobowe tylko?). Tutaj przy okazji jest pomysł do zrealizowania – pobieranie kursów walut i prezentowanie ich w arkuszu (doskonała wprawka programistyczne)
    • Zaawansowane techniki JS które musisz znać

    Rynek aplikacji do tworzenia mobilnych – jest taka firma Nitobi, która zajmuje się tworzeniem GUI w JS, teraz zainteresowała się RAD-em dla urządzeń mobilnych (PhoneGap). Co z tego wyjdzie? A w jaką stronę zmierza projekt Mono – obecnie pod opieką firmy Xamarin? Ma teraz trzy odnogi: Mono for Android, MonoTouch oraz Mono dla Visual Studio. Są jeszcze dwa inne projekty: .NET for iPhone and .NET for Android. Cena tych RAD jest znaczna – 399 US. Jest jeszcze Google App Inventor.

    Najlepsze z najlepszych otwartych projektów:

    Kryptografia:

    Posted 12 września 2011 by marekwmsdn in Android, BI, Google, JavaScript, Kryptografia, Mobile, Mono, open-source, PHP

    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

    Podpisy   Leave a comment

    1. Projekt XADES w technologii MS na codeplex – http://xadesnet.codeplex.com/
    2. Podobne ale w technologii Java – http://download.oracle.com/javase/1.4.2/docs/guide/security/CryptoSpec.html z przykładami (parsowanie PKCS#7 – http://download.oracle.com/javase/1.4.2/docs/guide/security/CryptoSpec.html#ParseCert)
    3. Zasoby kryptograficzne w wydaniu MS – http://msdn.microsoft.com/en-us/library/aa380256%28v=vs.85%29.aspx
    4. Bezpłatny serwis do składania podpisu pod PDF – http://www.globalsign.com/pdf-signing-tool/:
      1. podpis dokumentów PDF – http://www.globalsign.com/resources/datasheet-cds.pdf
      2. DOC – Learn more about Digital Signatures
      3. Trial –owy certyfikat – http://www.globalsign.com/document-security-compliance/adobe-cds/buy-adobe-cds/free-adobe-cds-demo.html
      4. http://www.labnol.org/software/sign-pdf-documents/9333/
      5. http://help.adobe.com/en_US/Acrobat/9.0/Standard/WS58a04a822e3e50102bd615109794195ff-7d48.w.html
      6. Link do YT na hasło “pdf signing”
    5. Podpis wg. Adobe dla wersji:
      1. 8 – http://help.adobe.com/en_US/Reader/8.0/help.html?content=WS58a04a822e3e50102bd615109794195ff-7d48.html
      2. 9 – dla Readera “
      3. Sign a PDF

        When you sign a PDF, you assure the sender that the PDF reached its intended recipient. In Reader, only PDFs with Reader Usage Rights enabled can be signed. (In Acrobat, Advanced > Extend Features In Adobe Reader.)

        1. Click the Sign button Signature button in the Signature Panel, or choose Document > Sign > Sign Document.
        2. Follow the instructions to create a place for the signature, and then complete the Sign Document dialog box.
    6. Przykłady z biblioteki iText – http://itextpdf.sourceforge.net/howtosign.html#howtosign
    7. On-line –> http://www.makeuseof.com/tag/electronically-sign-pdf-documents-free-adobe-esignatures/
    8. Nieoceniony stackoverflow – http://stackoverflow.com/questions/378247/how-to-digitally-sign-pdf-files i tam http://www.codeproject.com/KB/files/Esignature.aspx
    9. Można się pokusić na rozwiązanie w PHP – http://www.web-development-blog.com/archives/create-pdf-documents-online-with-tcpdf/ (przykład skladania podpisu – http://www.tcpdf.org/examples/example_052.phps)
    10. Podobne rzeczy (i inne cuda) można robić w PowerShellu – http://stackoverflow.com/questions/3725389/how-to-sign-digitally-with-sha-2-in-powershell-not-openssl. To jest do osiągnięcia dzięki rozszerzenim – http://pscx.codeplex.com/documentation. Nic dziwnego, że znalazło się to na liście Hanselmana – http://www.hanselman.com/blog/ScottHanselmans2009UltimateDeveloperAndPowerUsersToolListForWindows.aspx
    11. Jeszcze jedna biblioteka w javie – PDFBox i problem – http://stackoverflow.com/questions/6197852/pdfboxbouncy-castle-signing-pdf. Jest jej reimplementacja w .NET poprzez IKVM – http://pdfbox.apache.org/userguide/dot_net.html
    12. Można poprzez applet w javie – http://stackoverflow.com/questions/4750137/sign-java-applet-step-by-step

    Posted 17 lipca 2011 by marekwmsdn in Kryptografia, PDF, Podpis, XADES