Pokazywanie postów oznaczonych etykietą Cryptography. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Cryptography. Pokaż wszystkie posty

poniedziałek, listopada 19, 2012

Alternatywne sterowniki do smart card

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

poniedziałek, lutego 20, 2012

Ciekawe linki

Ś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

niedziela, października 02, 2011

Certyfikaty i ich wykorzystanie – pomocne linki

Na uwagę zasługją dwie wirtyny polskie (obok sławetnego stowarzyszenia PEMI). Jedna to ipsec.pl a druga securitystandard.pl oraz osoba Pana Pawła Krawczyka (pseudo Krawiec). W Polsce najważniejsza strona to http://www.nccert.pl/ncc/home.aspxNarodowe Centrum Certyfikacji przy NBP, które jest wyznaczone do pełnienia “funkcji głównego urzędu certyfikacji dla infrastruktury bezpiecznego podpisu elektronicznego w Polsce” oraz “prowadzenia rejestru kwalifikowanych podmiotów świadczących usługi certyfikacyjne”. Jak bezpieczna jest strona “https://www.nccert.pl/ncc/home.aspx”? Nie za bardzo, w testach qualsys osiągnęla 81% (ING Bank Śląski uzyskał więcej bo 85%).

NCC prowadzi listę podmiotó świadczących usługi certyfikacyjne. Są to:

  1. MobiCert - http://www.mobicert.pl/?page=87 – posługuje się aplikajcą PROTECTOR
  2. CenCert - http://www.cencert.pl/ – (enigma i comp.pl)
  3. Safe Technologies z Krakowa
  4. KIR, CERTUM i SIGILLUM

Materiały Krawczyka (firma ipsec świadczy KOMERCYJNE usługi):

  1. http://www.securitystandard.pl/news/327774_6/Podpis.elektroniczny.w.dokumentach.Adobe.PDF.html a tam można znaleźć odnośniki do technicznych stron Adobe:
    1. http://learn.adobe.com/wiki/display/security/Document+Library – parametryzacja przy pomocy wpisów w rejestrze Windows
    2. http://www.adobe.com/devnet/acrobat.html
    3. Słynny odnośnik do paczki z zaświadczeniami polskich urzędów certyfikacyjnych
  2. http://ipsec.pl/kwalifikowany-podpis-elektroniczny/praktyka-podpisu-elektronicznego-w-polsce.html
  3. Jego doradctwo - http://ipsec.pl/informatyzacja/doradztwo-w-zakresie-podpisu-elektronicznego-bezpieczenstwa-it.html
  4. Co z tą eFakturą – interpretacja własna autora - http://ipsec.pl/faktura-elektroniczna-e-faktura/2011/jak-zapewnic-autentycznosc-integralnosc-faktury-elektronicznej.html
  5. Biblioteka i bibliografia - http://ipsec.pl/kryptografia/biblioteka-ipsecpl.html
  6. Wszystkie (mam nadzieję) ustawy o podpisie - http://ipsec.pl/prawo-polskie/podpis-elektroniczny-w-polskim-prawie.html a wśród nich najważniejsza ustawa o podpisach (jako projekt mający na celu wykonanie prawa Unii Europejskiej) wpłynęła ona do zatwierdzenia do Sejmu RP w dniu 23 listopada 2010, aktualnie sprawa jest niezamknięta (poprawki), jest też uzasadnienie - http://orka.sejm.gov.pl/Druki6ka.nsf/0/6D8DB0ECB92CDB76C12577E6005849C3/$file/3629-uzas.doc

Oficjalna strona MG na temat podpisu - http://www.mg.gov.pl/Wspieranie+przedsiebiorczosci/Dzialalnosc+gospodarcza+i+e-przedsiebiorczosc/Podpis+elektroniczny oraz oficjalny podręcznik do podpisu.

Najnowsze rozporządzenie o efakturze - http://www.mf.gov.pl/dokument.php?const=3&dzial=135&id=232702.

Certyfikaty testowe, darmowe dla osób indywidualnych i płatne (dla firm) - http://www.startssl.com/?app=26

czwartek, września 29, 2011

Dalszy przebieg wydarzeń z SSL-em

Na stronach the register pojawiła się wzmianka, że Firefox planuje blokowanie pluginów w Javie (popularnych appletów). Stało się to po tym jak badacze Thai Duong i Juliano Rizzo pokazali jak przy pomocy tej techniki obeszli wymóg SOP (same origin policy) – elementu koniecznego w procesie przeprowadzeniu ataku na SSL. Dlatego planuje się zablokowanie tego frameworku w Firefox tym bardziej, że FF i Chrome nie wspierają TSL 1.1 i wyżej (chyba tylko Opera i IE mają wbudowaną obsługę tego nowego protokołu, ale to nie zawsze pomaga, gdyż w momencie negocjacji połączenia klient - serwer, ten ostatni może wymusić obniżenie bezpieczeństwa poprzez zejście z sugerowanego przez klienta protokołu TSL 1.1 na TLS 1.0).

Konsekwencje blokady są straszne – java plugin to taka wersja ActiveX, która umożliwia “przemycanie” do komputera rozmaitych kodów wykonywalnych pochodzących z zewnątrz (np. z internetu), dzieje się to z obejściem wszelkich zabezpieczeń – sprawdza się tylko czy kod  apletu jest podpisany. Z tego mechanizmu korzysta wielu dostawców oprogramowania np. CISCO “wstrzykuje” na komputer klienta swego AnyConnecta, Facebook umożliwia usługę chat-u itd. Zablokowanie tego może pogorszyć tzw. user expirience ale niestety implementacja SSL w javie stanęła ma 1.0 - http://download.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html. Obecnie w blogu Mozilla Security piszę się aby jako obejście wprost zablokować wtyczkę do Javy w zarządcy wtyczek FF. Nawiasem mówiąc Chrome blokuje uruchamianie wtyczek w Javie. Dalej na stronach Chrome “Chrome and the BEAST” pisze się, że serwery Google od dawna stosują RC4.

Inna strona o tym - http://www.h-online.com/open/news/item/Mozilla-considers-disabling-Java-in-Firefox-1351590.html

sobota, września 24, 2011

Sprawa certyfikatów

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.

poniedziałek, września 12, 2011

Takie sobie nowinki

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:

wtorek, września 06, 2011

Kryptografia wymienialna

Prawdziwe wezwanie dla aplikacji posługujących się metodami kryptograficznymi następuje w przypadku gdy zachodzi potrzeba wymienialności danych między różnymi platformami aplikacyjnymi. Jasne są zasady:

  1. Należy przyjąć najmniejszy wspólny podzielnik dla wszystkich platform (bibliotekę zaimplementowaną we wszystkich środowiskach), może to być np. openssl, BC lub Jascrypt (tylko dla Java, nie ma odpowiednika w .NET).
  2. Niektóre biblioteki (BC) można wykorzystać na dwa sposoby, jako rozszerzenie możliwości danej platformy (jak to mam miejsce w przypadku Java JCE) lub potraktować niezależnie jako źródło algorytmów kryptograficznych np. takich, których jeszcze nie ma w implementacji danej platformy np. Blowfish lub bardziej egzotycznych.

Najgorzej się tutaj mają języki skryptowe jak Python lub PHP, tutaj nie ma żadnego standardu biblioteki kryptograficznej i posługuje się zewnętrznymi implementacjami kryptografii. PHP ma dwie biblioteki mcrypt (dobrze udokumentowana z wieloma przykładami) i openssl (źle udokumentowana).

Świetny artykuł na temat uzupełniania danych do pełnego bloku - http://www.di-mgt.com.au/cryptopad.html (po to to i jak działa). Tak w ogóle na serwisie www.di-mgt.com.au jest wiele innych ciekawych artykułów:

  • Praca z alfabetem narodowym – należy pamiętać że kryptografia działa na bajtach a nie znakach oraz MS przyjął kodowanie UTF-8 (dokładnie mówiąc UTF-16LE, zresztą jedynie słuszna decyzja). Konsekwencją tego jest wymóg przekształcenia danych typu String do tablicy bitów (Array of Bytes). Przy okazji wyjaśniło się dlaczego w przypadku podpisu cyfrowego przy pomocy klucza publicznego (digital signature with public key) stosuje się nazwy dwuczłonowe np. SHAwithRSA – jest to bowiem proces dwuetapowy, najpierw jest liczony hash za pomocą algorytmu symetrycznego a potem szyfrowanie kluczem publicznym korzystając.
  • UTF-8 ma wiele wariantów np. UTF-16LE (little endian), UTF-16BE (big endian), jaki to kod w pliku wyznacza jego pierwszy bajt tzw. BOM (byte order mark): UTF-8 ma ‘EFBBBF’, UTF16LE – ‘FFFE’.
  • Należy pamiętać, że wynikowy kod nie przechowywać w polach znakowych ale w binarnych polach blobowych bądź opakować je bezpiecznie przy pomocy base64 (radix64 w PGP) i zapamiętać w polu znakowym (kosztem nieznacznego wydłużenia danych).
  • Podstawowe pojęcie o kluczach w kryptografii 
  • Bardzo dogłębnie wyjaśnienie  kodowania UTF-8. Bazuje ono na UCS – uniwersalnej stronie kodowej. W UTF-8 każdy znak ma zmienną długość, o tym decyduje najstarszy bit w pierwszym bajcie (gdy ma ‘0xxxxxxx’ to oznacza, że jest to “zwykły” znak ASCII, a gdy ‘1’ to oznacza wielobajtowy znak i tak ‘11xxxxxx’ oznacza  że znak zajmuje 2 bajty a ‘111xxxxx’ że trzy bajty). ten pierwszy baj zwany jest też jako bajt wiodący (lead-byte). Reszta bajtów to bajty ogonowe (trail) i mają zawsze sygnaturę ‘10xxxxxx’ .
  • Skrośna platforma kryptograficzna – polega na wykorzystaniu symetrycznego kodowanie blokowego (symmetric block cipher) i korzysta się z jednego z zalecanych algorytmów DES, Blowfish lub EAS. One z kolei mają tryby pracy (ECB, CBC,…). Jedynie ECB nie wymaga wektora inicjującego (szyfruje jedynie w obrębie pojedynczego bloku)

Linki - http://www.di-mgt.com.au/crypto.html#links

Cryptography FAQ
Ten parts of the sci.crypt FAQ. Read these before you ask any questions.

Bruce Schneier's page
By the author of Applied Crytography: Protocols, Algorithms and Source Code in C, John Wiley, 1996, and the Blowfish Encryption Algorithm. Lots of info, papers, newsletters, a very comprehensive links page, and variants of the Blowfish source code.

Peter Gutmann's page
Up-to-date information on cryptography and PKI matters from a leading expert in the field with a good sense of humour. Check out his DumpASN1 C program to read BER-encoded ASN.1 files, his style guide to writing X.509 certificates, and his rant on the M*soft inspired PFX/PKCS-12 standard.

Neal R. Wagner
The Laws of Cryptography: a series of well-explained and informative pages on cryptography and coding and information theory by Neal Wagner, a professor at University of Texas at San Antonio. Includes a lot of Java code.

Snake Oil Warning Signs
Avoiding bogus encryption products: Snake Oil FAQ. "Encryption Software to Avoid" by Matt Curtin.

The Six Dumbest Ideas in Computer Security
Marcus Ranum's introduction to the six dumbest ideas in computer security.

Ross Anderson
An excellent and well-written site on cryptography issues by the Reader in Security Engineering at the University Of Cambridge. Check out his book Security Engineering: A Guide to Building Dependable Distributed Systems. The entire first edition (2001) and some chapters from the second edition (2008) are now available on his site. One of the interesting facts from the second edition is that the most commonly-used password has changed in recent years from password to password1.

Digital Timestamping Service
Matthew Richardson's PGP Digital Timestamping Service will timestamp an email sent to it so you can prove your document existed at a given time. Includes a proof of posting service. Operates in clear, header, text, pgp and binary modes. Dates are old, but it still works.

RSA Lab's Public Key Cryptography Standards
RSA Labs specifications on public key cryptography (the PKCS standards) and other useful stuff.

SUNET crypto archive
A downloadable index of cryptography tools on the SUNET archive, especially for privacy of electronic mail.

Worst hotel in the world

wtorek, sierpnia 23, 2011

Linki

czwartek, kwietnia 14, 2011

E-faktura, stan prawny

Rzeczpospolita - Są zgłoszone dwa projekty ustaw dotyczących e-podpisów:

  • poselska (zrównanie podpisu osobistego w dowodzie z odręcznym),
  • rządowy (ograniczającym działanie podpisu osobistego do kontaktów z e-administracją). Poza tą różnicą mają wspólne punkty, wprowadzają zaawansowany podpis elektroniczny (nie wymaga karty czy czytnika) oraz pojęcie pieczęci elektronicznej powiązanej z podmiotem.

Obecnie z e-podpisu korzysta 300 tyś osób.

Tamże z dnia 10.01.2011 - aby przesyłać e-faktury, ale pliki muszą spełniać określone warunki. Informacje o zmianach w VAT na 2011 są opublikowane w broszurze przez Min Fin. Od 1 stycznia ulega uproszczeniu wysyłanie faktur online (zgodnie z rozporządzeniem z 17.12.2010 - DzU z 2010 r. nr 249, poz 1661 w odpowiedzi na nową dyrektywę Rady 2010/45/UE z 13 lipca 2010). Faktura może być wysłana w dowolnym formacie elektronicznym ale z obwarowaniem zapewnienia autentyczności pochodzenia i integralności treści. Ale nie ma mowy o minimalnych warunkach technicznych jakie muszą być spełnione.

Trochę więcej na temat dyrektywy
Pozwala ona na zastosowanie, obok EDI i bezpiecznego podpisu stosować dowolnej technologii która zapewni:

  • autentyczności pochodzenia,
  • integralności treści (integralność treści oznacza niezmienność obowiązkowych elementów faktury, można dodać lub zmienić dane nieobowiązkowe takie jak znaczniki lub komentarze lub zmienić format faktury - ale z tym należy postępować ostrożnie gdyż można liczyć się na różne interpretacje - sumarycznie lepiej fakturę podpisać i zapieczętować i nic w niej nie ruszać) oraz,
  • czytelność

Obowiązek wprowadzenia do końca roku 2012.

wtorek, stycznia 18, 2011

Deweloperka

  1. Jak zwykle dobre pomysły w portalu DYNAMICDRIVE, tym razem biblioteka z obrazkami jako tzw. tooltip. Nadaje się do przystosowania.
  2. W portalu code project jest wiele ciekawych artykułów i tzw. tip-ów
  3. Ciekawy cytat "Nighttime, not the late hours but the gloaming, when the sun was setting and dinner must be prepared and the long evening stretched out before her — that's when the loneliness settled in like the ache in her hip on a rainy day, when the regrets, the bad memories, sometimes came to call." — From Lisa Unger's 2010 novel Fragile”
  4. Nowa wersja serwera Tomcat – położono nacisk na większą ilość wątków co ma zwiększyć jego reaktywność. Tak w ogóle po co ułatwiać wielowątkowość przecież to i tak nie zwiększy wydajności czy szybkości przetwarzania? Ano  po to by pojedynczy proces/watek nie zagrabił nam (zmonopolizował) zasoby procesora, żeby stworzyć iluzję przed użytkownikiem, że coś się dzieje, żeby zwiększyć jego reagowolność na zdarzenia utd. W ten sposób tworzymy ILUZJĘ, że wszystko działa, aplikacja przyjmuje nowe zgłoszenia i obsługuje stare jak gdyby nic (ale płacimy za to większym narzutem na zarządzanie i dłuższym czasem obsługi. I tu realizuje się zasada demokracji wszyscy są obsługiwani tyle, że coraz wolniej.
  5. Bardzo ciekawy plugin dla jQuery pozwalający na nowy sposób zademonstrowania menu. Są też inne elementy GUI jak notes, cards, maps.
  6. nareszcie mam –jquery JQGRIDprzykłady w php i js
  7. Coś co każdy lubi ale nie każdy ma – integracja środowisk i platform –znajdziesz w portalu codemesh. Aplikacja JuggerNET. Przykład JDBC w .NET – tu.
  8. Implementacja:
    1. using Codemesh.JuggerNET;




      IJvmLoader	loader = JvmLoader.GetJvmLoader( true, true, TraceFacility.TraceJvm, TraceLevel.TraceErrors );

      loader.AppendBootClassPath = "../lib/hsqldb.jar;../../lib/hsqldb.jar";

      Class.ForName("org.hsqldb.jdbcDriver");



  9. Jak tak naprawdę wystartować z tworzeniem aplikacji pod Androidem - http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/A-developers-perspective-on-Googles-Android-SDK/. Maszyna wirtualna dla Androida - http://content.techrepublic.com.com/2346-12849_11-497936-1.html?tag=content;leftCol


  10. Kapitalna strona o podstawach web i html - http://www.xs4all.nl/~sbpoley/webmatters/index.html, jest też przykład wzorcowej walidacji formularza


  11. Jestem na LINKEDIN przyjęty do grupy PKI, a tam sposób jak sprawdzić ocsp poprzez opessl. tam pokazano nową ideę OTPK (one time private key)


  12. Nowe pojęcie Secure String tamże w stopce są ciekawe odnośniki do:



    1. Klasy List - http://articles.techrepublic.com.com/5100-10878_11-6068652.html?tag=btxcsim#


    2. ListView -


    3. Podstawy – stream – co to takiego


    4. Inne tematy są w archiwum



  13. Bomba - http://weavesilk.com/


  14. Pascal - http://www.dobreprogramy.pl/Lazarus,Program,Windows,12653.html


  15. Po co LINQ (z portalu - http://gasior.net.pl/tag/c/):



    1. var polishCustomers = new List<Customer>();

       
      foreach (var customer in customers)


      {


      if (customer.Country == "Poland")


      polishCustomers.Add(customer);


      }



      teraz:



      var polishCustomers = customers.Where(x => x.Country == "Poland");



piątek, stycznia 14, 2011

Ciekawe

  1. Operacje na składnicy certyfiaktów w .NET - http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509store.remove(v=vs.80).aspx
  2. Crockford o bezpieczeństwie JS i HTML5 - http://answers.oreilly.com/topic/1483-doug-crockford-discusses-javascript-html5-security-issues/
  3. Kolejna ciekawa ksiażka - JQuery cookbook a tam wykorzystanie .data() – “How to attach objects and data to DOM with jQuery.data to avoid memory leak issues” np. do uniknięcia przecieków pamięci i ustawienia zegara
  4. Stosowanie Module pattern w jS – do organizaowania kodu - http://answers.oreilly.com/topic/2177-how-to-use-the-module-pattern-in-javascript/
  5. Obok jQ jest wiele innych frameworków: The following won't help you much to make a choice, because it's just a plain list of options--but at least it will help you see some of the most popular options. I copied this list right from Chapter 19 of Learning PHP, MySQL, and Javascript by Robin Nixon.
    1. ASP.NET Ajax Framework, http://asp.net/ajax/
    2. Clean Ajax, http://sourceforge.n...ects/clean-ajax
    3. Dojo Toolkit, http://dojotoolkit.org
    4. jQuery, http://jquery.com
    5. MochiKit, http://mochikit.com
    6. MooTools, http://mootools.net
    7. OpenJS, http://openjs.com
    8. Prototype, http://prototypejs.org
    9. Rialto, http://rialto.improv...logies.com/wiki
    10. script.aculo.us, http://script.aculo.us
    11. Spry Framework, http://labs.adobe.co...chnologies/spry
    12. YUI, http://developer.yahoo.com/yui
  6. Np. Rico - http://rialto.improve-technologies.com/wiki/ – ze wsparciem dla GWT, Javy i .NET
  7. Kolejne sztuczki z jQ na podstawie artykułu na O’Reilly na temat książki JQuery Pocket book:
    1. zamiast $(documentt).ready() można stosować $().
    2. Aby stworzyć element można skorzystać z $(tagname) a jako drugi parametr przekazać obiekt zawierający właściwości przekazane do attr(), dodatkowo jeżeli te właściwości będą maiły nazwy atrybutów DOM to zostaną zarejestrowane jako handlery:
      ar image = $("<img>", {
                        src: image_url,
                        alt: image_description,
                        className: "translucent_image",
                        click: function() {$(this).css("opacity", "50%");},
                        css: { border: "dotted red 3px" }
                     });

  8. Procesory zdarzeń to np. click() lub change(), jest bardziej ogólny procesor (handler) zwany bind() np.
$('a').bind('mouseover.myMod', f);


  1. Wtedy możliwe jest:
// Unbind all mouseover and mouseout handlers
// in the "myMod" namespace
$('a').unbind("mouseover.myMod mouseout.myMod");
// Unbind handlers for any event in the myMod namespace
$('a').unbind(".myMod")


  1. Mozliwe jest też kolejkowanie animacji:
    $("img").fadeIn(500)
            .animate({"width":"+=100"},
                     {queue:false, duration:1000})
            .fadeOut(500);
    I na koniec sprytne wykorzystanie zdarzeń startu i zakończenia operacji AJAX do włączania i wyłączania elementu animacji:
    $("#loading_animation").bind({
        ajaxStart: function() { $(this).show(); },
        ajaxStop: function() { $(this).hide(); }
    });
    A to wszystko pochodzi z serwisu O’Reilly – answers


    Stosowanie przestrzenie nazw w JS, nic trudnego:

    Since these are home-made javascript libraries, this isn't too hard.
    You can assign an object to a variable, and combine your libraries within this object. You can repeat the process within the object to achieve multiple levels as well.
    e.g.
    var mycompany = {
    'utilities': {
    'removeEmail': function(string) {
    // Code to remove all email addresses
    return newString;
    },
    },
    'display': {
    'defaultSize: [100, 100],
    'showBox': function(x, y, sizex, sizey) {
    // do some stuff create stylized div for box, etc.
    return boxDivElement;
    },
    },
    'var1': 'foo is at foo@bar.com',
    'func1': function() { return 'bar is at bar@foo.com'; }
    }
    // Example usage
    var myString1 = mycompany.var1;
    var myString2 = mycompany.func1();
    var someFunction = mycompany.func1;
    var myString3 = someFunction(); // myString3 == mySting2;
    var parsedString = mycompany.utilities.removeEmail(mystring1);
    var divBox = mycompany.display.showBox(400, 500, 200, 300);
    divBox.innerHTML = parsedString;
    Now, I haven't actually tested the above code, so there may be numerous errors, and even some basic JS logic problems as it's been a little while since I wrote any functional JS, but the general theory is sound.
    P.S. there's more complex and complete ways to get namespaces in JS, but this should suffice for combining a few home-made libraries.

środa, grudnia 15, 2010

Linki

  1. Artykuł w blog-u wioota na temat rozwoju JS. Jest tam odnośnik do serwisu http://www.quirksmode.org/. Występuje wiele postaci z adresami do ich stron, np. Ben Nolan ze swoją biblioteką behawioralną (on sam zrezygnował z jej prowadzenia i przeszedł na stronę jQuery). Bardzo krytycznie ustosunkowano się do eksperymentu z własnością prototype występującą w każdym obiekcie w bibliotece Prototype, pochwalono YUI oraz EXT. Pochwały zebrała również biblioteka jQuery (jej blog jest tu - http://blog.jquery.com/ i bezpłatna książka do nauki JS i jQuery - http://addyosmani.com/blog/essentialjsdesignpatterns/). Blog twórcy jQuery – Johna Resiga.
  2. Nitobi obiecująca biblioteka - http://www.nitobi.com/products/.
  3. Blog MS na temat JS.
  4. Oferta west-wind za darmo - http://www.west-wind.com/DotNetTools.asp + wstęp do jQuery.
  5. Na stronach devcurry jest wiele ciekawych przykładów.
  6. Dodatek do bibliotek online:
    1. http://www.cdolivet.com/index.php?page=editArea&sess=bd02d54745893a2c53a1a8e143ef4850 – biblioteka EditArea.
    2. http://codepress.sourceforge.net/install.php
    3. http://www.uize.com/
  7. Biblioteka kryptograficzna - http://crypto.stanford.edu/sjcl/
  8. Korzystanie z js w C# poprzez ikvm - http://www.codeproject.com/KB/cs/EmbeddingJSCS.aspx?display=Print (Embedding JavaScript into C# with Rhino and IKVM By GWBas1c | 11 Nov 2009)
  9. Popraw wzrok - http://www.wzrok.net/

środa, grudnia 08, 2010

Resztki (8.12.2010)

  • Małe cudeńka w C# dla szkolących się - http://geekswithblogs.net/BlackRabbitCoder/archive/2010/11/11/c.net-little-wonders---a-presentation.aspx.
  • Ciekawy artykuł “Encryption for the Internet and for telephony” w serwisie NETWORLD. Opisuje kulisy powstania PGP. W 1991 Zimmerman autor PGP piszę “"It's personal. It's private. And it's no one's business but yours. You may be planning a political campaign, discussing your taxes, or having a secret romance…. Whatever it is, you don't want your private electronic mail… [e-mail] or confidential documents read by anyone else.”.  Wykorzystał algorytmy bazujące na RSA po to aby zaszyfrować pocztę elektroniczną by nikt nie mógł jej przeczytać i został oskarżony przez rząd USA o naruszenie “Arms Export Control Act oraz wynikającego z niego U.S. International Traffic in Arms Regulations (ITAR)” . Po trzech latach sprawę umorzono. Podobna sytuacja jaka miała miejsce w przypadku poczty jest w telefonii. Rządu wielu państw zabraniają szyfrowania VoIP.

czwartek, kwietnia 22, 2010

Przygotowanie stacji użytkownika do skłądania podpisu

    Instalacja oprogramowania niezbędnego do obsługi podpisu na stacji klienckiej

  1. Środowisko pracy - Windows Client (od XP przez Vista do W7).
  2. Instalacja sterowników do obsługi czytników kart inteligentnych (tzw. Smart Card - SC):
    • Najniższy poziom - programowanie CryptoCard Suite ze strony firmy Crypto Tech. Jest to prawdziwy kombajn funkcjonalny. Potrafi m.in. sprawdzić poprawność komponentów sprzętowych i programowych, zainstalować certyfikat w repozytorium, ustawić parametry wielopodpisu. Dodatkowo instaluje się jako usługa MS Windows dzięki czemu po włożeniu karty do czytnika automatycznie rejestruje ją w repozytorium.
    • Na tej bazie należy zainstalować oprogramowanie firmy dostarczajacych certyfikaty:
      • Sigillum - nic (dziwne) - korzysta ze sterownika sprzętowego CCPKIP11.dll wgrywanego po cichu przez CCS
      • KIR - nic (trzeba to jeszcze sprawdzić)
      • Unizeto/Certum - najpierw sterownik do czytnika np. ACR38, potem aplikację proCertum Card Manager. Wszystko jest dostępne na stronie CERTUM. Korzysta ze sterownika cryptoCertumPKCS11.dll
  3. Całość sprawdzamy przy pomocy CCS. Wynik powinien być taki:
  4. clip_image001
  5. Struktura obsługi kart kryptograficznych w MS Windows jest taka (idąc od dołu w górę):
    • SC Base - wbudowany komponent systemu operacyjnego (sterownik sprzętowy w postaci .DLL)
    • Warstwa standardów kart inteligentnych. Są dwa niezależne standardy:
      • PKCS#11 (promowany przez środowisko Java) - API do obsługi kart, bazuje bezpośrednio na sterowniku sprzetowym (taki jest standard zaimplementowany w języku Java)
      • CSP + Crypto API (promowany przez MS) - warstwa dostawców usług kryptograficznych oraz API do korzystania z nich z poziomu aplikacji
    • System operacyjny - MS Windows - ma jeszcze dodatkową warstwę służącą do przechowywania informacji o dostępnych certyfikatach w tzw. repozytorium. Do obsługi jego służy polecenie: certmgr.msc. Windows ma dodatkowe narzędzia wspierające weryfikację certyfikatów końcowych i pośrednich które są zintegrowane z narzędziami do zarządzania. W przypadku rozwiązań Java (np. w postaci implementowanej przez KIR) są one przechowywane jawnie bezpośrednio w pliku. Udostępnia funkcje kryptograficzne (crypto API) poprzez technologię CAPICOM (stara, już nie zalecana dla Vista i W7 ale wciąż poprawnie na nich działająca) oraz poprzez platformę .NET
    • Aplikacje - w każdym języku programowania są dostępne biblioteki z funkcjami do obsługi SC bądź poprzez platformę MS .NET bądź JSE. Dodatkowo można na poziomie poleceń systemu wykonywać skrypty korzystające z CAPICOM (instalując CAPICOM SDK z witryny MS - tworzy się katalog z przykładowymi skryptami) lub przy pomocy PowerShell (korzysta ze wszystkich dobrodziejstw .NET)

piątek, kwietnia 16, 2010

Nauka

  1. Office Online – portal z ćwiczeniami oraz poradnikami na temat tego pakietu biurowego - http://office.microsoft.com/en-us/training/FX100565001033.aspx
  2. Pytania i odpowiedzi na temat Office - http://answers.microsoft.com/en-us/office/default.aspx#tab=1
  3. Dodatek do MS Word – chemia - http://research.microsoft.com/en-us/projects/chem4word/
  4. Nowy, profesjonalny framework do testowania – Seleneese jest to połączenie Selenium z Fitnesee (serarchsoftwarequality.techtarget.com). Z tegoż samego portalu pochodzi artykuł na temat SoapUI
  5. Nowe aplikacje typu express na portalu MS (teraz w wersji 2010)
  6. Jak poznać możliwości Azure – oto są filmy - Front Runner for Azure, Tony's training videos oraz Four-minute Windows Azure virtual lab.
  7. Z innej beczki – sterowanie serwisami Google Data poprzez cURL - http://code.google.com/intl/pl/apis/gdata/articles/using_cURL.html
  8. Podpis XAdES w MS Office 2010 – na czym polega rola sygnatury wizualnej - http://blogs.technet.com/office2010/archive/2009/12/08/digital-signitures-in-office-2010.aspx. Jak do tego doszło? MS Office 2007 pozwala na podpisywanie zgodnie z XML-DSig (starsze wersje tego pakietu używały mniej zaawansowanego podpisu binarnego) – standardem http://www.w3.org/Signature. Najnowsza wersja MS Office 2010 stosuje nowe algorytmy wspierane przez Windows Vista  (krzywe elityczne), można również stosować bardziej zaawansowany algorytm mieszający (hash)  taki jak SHA-252. Uporano się także z problemem wygasanie certyfikatów i starych dokumentów je zawierających (podpis cyfrowy dokumentu któremu nie można zaufać po wygaśnięciu certyfikatu, odpowiedź na pytanie czy w momencie składania podpisu certyfikat był ważny czy nie?) – poprzez przejście na rozszerzenie standardu XML-DSign tj. XAdES. Dzięki temu uzyskano zgodność z dyrektywą EU -  Advanced Electronic Signature Criteria Directive 1999/93/EC. mamy wiele wersji XAdES: najprostsza XAdES-BES/EPES – zawiera informację o samym certyfikacie, już odporna na czas wersja XAdES-T gdzie jest oznakowanie czasem oraz jeszcze bardziej zaawansowane. Żeby oznakować czasem należy skonfigurowac serwer czasu zgodny z RFC 3161. Odnośnie podpisu – można stosować wiersz podpisu (signature line) lub pieczęć (signature stamp).
  9. Podglądanie stron webowych - http://fireshark.org/
  10. Ciekawy portal – TOAD – wtyczka do VS 2K10 – na razie jest w wersji beta i można ja testować za darmo - http://toadextensions.com/beta.jspa. Uwaga dla mySQL jest też swój TOAD – free. Na stronie http://www.toadworld.com/DOWNLOADS/Freeware/tabid/680/Default.aspx jest wiele ciekawych darmowych aplikacji.

wtorek, kwietnia 13, 2010

Wspólny mianownik dla kryptografii w różnych rozwiązaniach

  1. W blogu coolthingoftheday jest wzmianka o ciekawym instalatorze dla Windows – Windows Installer XML (WiX)  - jest on bardzo trudny w użyciu chociaż piekielnie uniwersalny
  2. Portal o bezpieczeństwie – net-security.org
  3. Taki rodzynek – praca Rijndaela - http://csrc.nist.gov/archive/aes/rijndael/Rijndael.pdf
  4. W tymże portalu jest opis biblioteki kryptograficznej Botan C++, inna biblioteka też w C++ to pkif, jeszcze  - http://polarssl.org/reference_docs. Widać, że bibliotek w C i C++ jest bardzo dużo na pewno można coś znaleźć.
  5. Prace nad przenaszalną biblioteką kryptograficzną – temat badawczy dla naszej firmy – można rozpocząć od wyboru platformy deweloperskiej. Jedno z podejść polega na wybraniu platformy deweloperskiej wspólnej dla wszystkich środowisk uruchomieniowych (od AIX,poprzez Linux i Windows). Mamy do wyboru środowiska maszyn wirtualnych:
    1. OpenSSl – wszędzie dostępna i wywołuje się nią z linii poleceń
    2. C/C++ – jak w punkcie 4
    3. Platforma Java – tutaj jest wiele implementacji – chyba najbardziej pełna i jednocześnie będąca uzupełnieniem wbudowanych bibliotek JSE jest BC. Obok niej jest także pakiet na google code – Keyczar (dla Pythona też istnieje). I wiele innych o których nie mam pojęcia…
    4. PHP – implementuje wiele standardów kryptograficznych które są wbudowane w dystrybucję tego języka. I pewnie jest wiele innych…
    5. Python – jest standardowa biblioteka oraz pakiet Keyczar od google code
    6. Platforma .NET – standardowe, wbudowane moduly oraz BC lub Bonnie.NET. I pewnie wiele innych…
  6. Warunkiem wyboru jednego języka z punktu 5 jest jego przenaszalność – tj. obecność jej w środowiskach gdzie jest potrzeba szyfrowania/podpisywania.
  7. Innym podejściem jest wybranie takiego algorytmu kryptograficznego, który działa na wszystkich wymaganych przez aplikacje platformach serwerów aplikacyjnych (np. jest implementowany w PHP i Zope)
  8. Dosyć pełna lista bibliotek kryptograficznych - http://www.homeport.org/~adam/crypto/

poniedziałek, kwietnia 06, 2009

Nowinki

  1. Rywal Google rozwija się na piersi Yahoo – Hadoop - http://www.cioinsight.com/c/a/Linux-and-Open-Source/Why-Hadoop-Has-Google-Fans-and-Rivals-Excited-616181/?kc=CIOMINUTE04032009CIO1
  2. Joel on Software - That's one sure tip-off to the fact that you're being assaulted by an Architecture Astronaut: the incredible amount of bombast; the heroic, utopian grandiloquence; the boastfulness; the complete lack of reality. And people buy it! The business press goes wild!" -  Groovy (Ray Ozzie) przejęte przez MS maiło na celu zreformowanie Lotus Notes. Obecnie Ray Ozzi jest naczelnym architektem MS i jego utopijne idee znalazły światło dzienne w MS MESSH.
  3. Niebezpieczeństwo nauczania Java - Poziom edukacji studentów wyznaczają takie własnie kursy - “The other hard course for many young CS students was the course where you learned functional programming, including recursive programming. MIT set the bar very high for these courses, creating a required course (6.001) and a textbook (Abelson & Sussman's Structure and Interpretation of Computer Programs) which were used at dozens or even hundreds of top CS schools as the de facto introduction to computer science. (You can, and should, watch an older version of the lectures online.)” – źródło. Kurs w postaci ksiązki - Structure and Interpretation of Computer Programs
  4. Zamienniki dla CAPICOM – wejście - http://msdn.microsoft.com/en-us/library/cc778518(VS.85).aspx
  5. Odnośniki do info na SIgillum :
    1. http://www.sigillum.pl/sig-cmsws/page/?F;163 - dokumentacja
    2. http://www.sigillum.pl/sig-cmsws/page/?F;167 – sprawdzanie faktur
  6. Ciekawe zdanie (http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509chain.build.aspx):“

    Note that a valid X.509 certificate from a trusted issuer is valid only for the use specified in the X509ChainPolicy object. Certificates that meet these chain policy rules might still be invalid for specific uses with such features as Security/MIME (SMIME), Authenticode, or Secure Sockets Layer (SSL). If further processing is required to determine whether the certificate is valid for a specific policy, derive a class from X509Chain and override the Build method so that it calls the base class Build method first, and then does the additional processing.

  7. Dostęp do TV - Korzystając z takiego programu jak GPass (dostępny pod tym adresem internetowym) możesz ukryć swój adres IP i uzyskać pełny dostęp do zablokowanych strumieni TV za pośrednictwem serwera proxy. Na dodatek pozostaniesz anonimowy w Sieci.
  8. Ważna pozycja “Certificate Revocation and Status Checking” - http://technet.microsoft.com/en-us/library/bb457027.aspx. Lista CRL jest stworzona i podpisane przez urząd CA. Są dwie listy CRL: base zawiera wszystkie odwołane certyfikaty i delta – te, które doszły od ostatniej publikacji. Inne formaty list to: OCSP, SCVP - (Simple Certificate validation protocol), XKMS (XML Key management Specification) są również obsługiwane przez CAPI dzięki wtyczkowej budowie dostawców (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/rpcrypto.asp).  CRL można zobaczyć poprzez przystawką lub dump z Certutil.
    1. Składnice certyfikatów – testowano z 1300 certyfikatami, nie ma problemów z wydajnością. Nazwy:  “My”, “Root”, “Trust”, “CA”
    2. Dalej opisany jest format CRL.
    3. Wejście do listy CRL (URI) może znaleźć się w certyfikacie w polu CDP (Crl Distribution Point). Błąd “revocation offilne” zachodzi wtedy gdy nie uda się pobrać z URL danej listy (nie może przejść przez proxy lub time-out ponieważ lista za duża). Wtedy będzie sprawdzane lokalne repozytorium lub cache.
    4. Sprawdzenie cache: certutil –urlcache CRL
  9. Inna ważna pozycja “Troubleshoting Certificate Status and Revocation” - http://technet.microsoft.com/pl-pl/library/cc700843(en-us).aspx
  10. MS ma cały blog na temat PKI: http://blogs.technet.com/pki/
  11. http://blogs.technet.com/pki/archive/2006/11/30/basic-crl-checking-with-certutil.aspx – opis certutil
  12. https://blogs.msdn.com/spatdsg/archive/tags/Crypto/default.aspx?p=2
  13. http://technet.microsoft.com/en-us/library/cc772670.aspx
  14. Import certyfikatu do karty - http://blogs.technet.com/pki/archive/2007/11/13/manually-importing-keys-into-a-smart-card.aspx
  15. Sprawdzanie certyfikatów: http://www.junlu.com/msg/393857.html
  16. Jakieś problemy z weryfikacją -http://www.mail-archive.com/itext-questions@lists.sourceforge.net/msg33966.html tam jest link do  http://itextpdf.sourceforge.net/howtosign.html#howtoverify
  17. Tu też problem - http://www.eggheadcafe.com/forumarchives/NETsecurity/Jul2005/post23279711.asp
  18. Gdzie kopiować wsadowo - http://blogs.technet.com/pki/archive/2008/02/24/update-import-the-root-ca-certificate-and-crl-into-an-intermediate-ca-from-a-batch-file.aspx:
  19. for %C in (FloppyDrive:\*.crt) do certutil –addstore Root %C
    for %C in (FloppyDrive:\*.crl) do certutil –addstore CA %C

  20.  Zmiana nazwy przyjaznej -   Defining the friendly name certificate property

  21. The friendly name of a certificate can be helpful if multiple certificates with a similar subject exist in a certificate store.

    One way to set the friendly name is through the certificate MMC SnapIn. Alternatively certutil.exe can be used in the following way:

    1. Open Notepad and past the following text into the editor

      [Version]
      Signature = "$Windows NT$"
      [Properties]
      11 = "{text}My Friendly Name"

    2. Save the file as friendlyname.inf
    3. Determine the serialnumber of the certificate where the friendly name should be changed.
    4. If the certificate exists in the user’s certificate store, run the following command at a command-line

certutil –repairstore –user my {SerialNumber} FriendlyName.inf

piątek, marca 20, 2009

E-faktura i jej obszar

  1. Wiadomości z formum PEMI - http://pemi.ayz.pl/forum/viewtopic.php?t=109&postdays=0&postorder=asc&start=45
  2. Co oznacza keyUsage:
  3. a) digitalSignature: przeznaczenie certyfikatu do realizacji usługi uwierzytelnienia za pomocą podpisu cyfrowego w innych celach niż określone w pkt b, f i g;
    b) nonRepudiation: przeznaczenie certyfikatu dla zapewnienia usługi niezaprzeczalności przez osoby fizyczne, ale jednocześnie dla innego celu niż określony w pkt f i g. Bit nonRepudiation może być ustawiony tylko w kwalifikowanych certyfikatach kluczy publicznych użytkowników służących do weryfikacji bezpiecznych podpisów elektronicznych i nie może być łączony z innymi przeznaczeniami, w tym w szczególności, o których mowa w pkt c-e związanych z zapewnieniem poufności,
    c) keyEncipherment: do szyfrowania kluczy algorytmów symetrycznych zapewniających poufność danych,
    d) dataEncipherment: do szyfrowania danych użytkownika, innych niż określone w pkt c i e;
    e) keyAgreement: do protokołów uzgadniania klucza,
    f) keyCertSign: klucz publiczny jest używany do weryfikacji poświadczen elektronicznych w certyfikatach i zaświadczeniach certyfikacyjnych wydanych przez kwalifikowany podmiot świadczący usługi certyfikacyjne,
    g) cRLSign: klucz publiczny jest używany do weryfikacji poświadczen elektronicznych w listach unieważnionych i zawieszonych certyfikatów oraz listach unieważnionych i zawieszonych zaświadczen certyfikacyjnych wydanych przez kwalifikowany podmiot świadczący usługi certyfikacyjne,
    h) encipherOnly: może być użyty tylko z bitem keyAgreement do wskazania, że służy tylko do szyfrowania danych w protokołach uzgadniania klucza,
    i) decipherOnly: może być użyty tylko z bitem keyAgreement do wskazania, że służy tylko do odszyfrowania danych w protokołach uzgadniania klucza.
    Brak ustawienia jakiegokolwiek z powyższych bitów oznacza użycie certyfikatu w innym celu, niż określony w pkt a-i.
  4. Przy podpisywaniu deklaracji w formacie XML, zgodnie ze specyfikacją Ministerstwa Finansów, stosuje się XAdES-BES (XMLDSIG typu enveloped) albo PKCS#7. Zaleca się pierwszą metodę. W tym przypadku MF wymaga następujących algorytmów:
    • CanonicalizationMethod Algorithm=http://www.w3.org/TR/2001/REC-xml-c14n-20010315
    • SignatureMethod Algorithm=http://www.w3.org/2000/09/xmldsig#rsa-sha1
    • DigestMethod Algorithm=http://www.w3.org/2000/09/xmldsig#sha1
    • Transform Algorithm=http://www.w3.org/2000/09/xmldsig#enveloped-signature
    a w podpisanym dokumencie muszą być elementy:
    • KeyInfo zawierający X509Certificate
    • Object zawierający SigningCertificate
  5. Sprawdzenie XAdES – bramka testowa - testowej Ministerstwa Finansów