Archive for the ‘Cryptography’ Category

Ciekawostki środy 19 listopada   Leave a comment

Pamiętaj, jeżeli czegoś nie ma w Internecie (jakieś strony) to jest zawsze wayback machine – archiwum internetowe – to czasami bywa ostatnia deską ratunku.

Joga zawsze była modna. Oto parę linków na ten temat: http://greatist.com/move/free-online-yoga-videos oraz http://greatist.com/move/yoga-mega-inflexible-people

Szyfrowanie i podpisywanie informacji jest dostępne w różnych językach, nawet w JS. Jest wiele bibliotek np. Crypton. Tutaj jest opis innych narzędzi tym razem z Google (https://code.google.com/p/crypto-js/ – imponująca lista metod szyfrowania ale niestety autor nie ma czasu na rozwijanie tej biblioteki) – http://aspnettutorialonline.blogspot.com/2014/04/jquery-tutorial-encryption-and.html. Na tych stronach też jest wiele ciekawych podejść do tematu np. konwertowania HTML do PDF  http://aspnettutorialonline.blogspot.com/2012/04/converting-html-to-pdf-using-itextsharp.html. Jest alternatywna implementacja na github – https://github.com/digitalbazaar/forge.

Rewelacja w sieci – darmowe e-booki – http://it-ebooks.info/book/2652/, O’Reilly też ma darmowe – http://www.oreilly.com/openbook/

Są tu kursy płatne, ale ten jest za darmo – http://academy.javacodegeeks.com/course/java-concurrency-essentials/

Poglądowy artykuł co nowego w vs 2015 – http://blogs.msdn.com/b/visualstudio/archive/2014/11/12/visual-studio-2015-preview-visual-studio-community-2013-visual-studio-2013-update-4-and-more.aspx. Wiele odnośników do różnych technologii. Tamże odnośnie wsparcia dla Cordovy (jej siła polega na wtyczkach obsługujących natywne możliwości urządzeń. Teraz Cordova pozwala na budowanie aplikacji dla Windows 8.1 i Windows Phone 8.1):  jest wsparcie już w VS2013 Update 3, nawet w darmowej wersji Community i oczywiście w VS 2015

Kurs XAML w Windows 8.1 – http://www.microsoftvirtualacademy.com/training-courses/developing-universal-windows-apps-with-c-and-xaml i przykłady – https://code.msdn.microsoft.com/windowsapps/

Posted 21 listopada 2014 by marekwmsdn in Cryptography, free books, Java, JavaScript, jQuery, Tutoriale, Zdrowie

Kryptografia w JS lokalnie w przeglądarce   Leave a comment

Czy to możliwe? Tak oto garść linków:

Posted 14 sierpnia 2013 by marekwmsdn in Cryptography

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

Ciekawostki   Leave a comment

  1. Pilna sprawa, sprawdzanie danych wejściowych w PHP. Można wszystko sprawdzać ręcznie lub wykorzystać możliwości PHP 5. Na ten temat jest artykuł tu.
  2. Inne informacje związane ze sprawami bezpieczeństwa – http://phpmaster.com/phpmaster-security-roundup/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+PHPMaster_feed+%28PHPMaster%29. Jak ustrzec się przed XCORSS site scripting – http://phpmaster.com/php-security-cross-site-scripting-attacks-xss/. Inne pomcne strony: http://ha.ckers.org/xss.html, http://html5sec.org/.
  3. OWASP też ma coś do powiedzenia – http://code.google.com/p/owasp-esapi-php/. Są tam projekty dla PHP, .NET i Java.
  4. Stosowanie bcrypt w PHP – http://phpmaster.com/why-you-should-use-bcrypt-to-hash-stored-passwords/
  5. Time-out w SOAP dla PHP – http://www.aidanfindlater.com/php-soap-client-giving-error-fetching-http-headers – przy błędzie z KKANC może się przydać.
  6. Historia iPada – pouczająca – http://52tiger.net/brief-history-of-the-ipad-prologue/
  7. Joga – http://www.gandalf.com.pl/b/joga-dla-twoich-oczu/, wydawnictwo KOS
  8. http://webhosting.pl/Programowanie.w.srodowisku.Android.wprowadzenie.do.projektowania.aplikacji.dla.urzadzen.mobilnych?page=1
  9. http://webhosting.pl/Darmowe.zdjecia.z.Sieci%3A.jak.je.znalezc.i.jak.z.nich.korzystac
  10. Szkolenia z NB – http://netbeans.org/kb/trails/matisse.html np.
      jak stworzyć nową formatkę – http://netbeans.org/kb/docs/java/gui-functionality.html
      http://netbeans.org/kb/docs/java/gbcustomizer-basic.html
      GUI Tutorial – http://docs.oracle.com/javase/tutorial/uiswing/TOC.html
  11. Olimpiada dla mobilnych urządzeń – kto wygra w przekazywaniu transmisji – http://blogs.computerworld.com/smartphones/20694/olympics-2012-bbc-says-apple-ios-and-android-beat-windows-mobile?source=CTWNLE_nlt_os_2012-07-16
  12. W co się bawić – http://www.cbsnews.com/8301-505145_162-57464284/16-things-for-teens-to-do-this-summer/?tag=nl.e713
  13. Prezentacje na temat WPF – http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DEV335
  14. http://www.codecademy.com/tracks/code-year
  15. Assembler w JS – http://www.codeproject.com/Articles/417071/JavaScript-Assembler-Language-Specification-JS-ASM
  16. Jak przechwycić naciśnięcie klawiszy w JS na stronie – http://craig.is/killing/mice
  17. http://darmowy-kurs-uml.scire.pl/
  18. Darmowe książki – http://greenteapress.com/thinkpython/index.html
  19. Ważne – http://jayeshsorathia.blogspot.com/2012/07/net-tips-execute-linq-query-on.html

Posted 20 lipca 2012 by marekwmsdn in Bezpieczeństwo, Cryptography, PHP

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

Certyfikaty i ich wykorzystanie – pomocne linki   Leave a comment

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

Posted 2 października 2011 by marekwmsdn in Bezpieczeństwo, Cryptography

Zasoby ze stackoverflow na tematy java/crypto   Leave a comment

Posted 30 września 2011 by marekwmsdn in Cryptography, Java

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.

Kryptografia wymienialna   Leave a comment

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

Posted 6 września 2011 by marekwmsdn in C#, Cryptography, Java, PHP