<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Makdaam.eu</title>
	<atom:link href="http://www.makdaam.eu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.makdaam.eu</link>
	<description>Admiration of simplicity</description>
	<lastBuildDate>Sat, 12 Sep 2009 20:07:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Odpowiedzialność za dane</title>
		<link>http://www.makdaam.eu/2009/09/odpowiedzialnosc-za-dane/</link>
		<comments>http://www.makdaam.eu/2009/09/odpowiedzialnosc-za-dane/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 14:39:24 +0000</pubDate>
		<dc:creator>Makdaam</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[bezpieczeństwo]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.makdaam.eu/?p=54</guid>
		<description><![CDATA[W Internecie huczy i grzmi z powodu niedawnego wycieku niedawnej publikacji produkcyjnej bazy danych  serwisu wykop.pl (np. blog Piotra Koniecznego), zawierającej m.in. dane użytkowników. O ile wyciek danych z profilu, które i tak są publikowane nie jest tak bolesny, to nazwa użytkownika + niesolony hash hasła + adres e-mail już jest. Jak podaje VaGla [...]]]></description>
			<content:encoded><![CDATA[<p>W Internecie huczy i grzmi z powodu <del datetime="2009-09-07T13:05:01+00:00">niedawnego wycieku</del> <ins datetime="2009-09-07T13:05:01+00:00">niedawnej publikacji</ins> produkcyjnej bazy danych  serwisu wykop.pl (np. blog <a href="http://blog.konieczny.be/2009/09/05/hasla-uzytkownikow-wykop-pl-wyciekly">Piotra Koniecznego</a>), zawierającej m.in. dane użytkowników. O ile wyciek danych z profilu, które i tak są publikowane nie jest tak bolesny, to nazwa użytkownika + niesolony hash hasła + adres e-mail już jest. Jak <a href="http://prawo.vagla.pl/node/8629">podaje VaGla</a> wykop.pl miał zarejestrowany zbiór danych osobowych. Pytanie brzmi, czy login + niezabezpieczone hasło + e-mail są danymi osobowymi należącymi do chronionego zbioru?</p>
<p>Skrót dla osób odciętych od świata: Portal wykop.pl ustawił serwer testowy nowej wersji serwisu w taki sposób, że był on dostępny z Internetu. Testowy serwer bazy danych został wypełniony prawdziwymi danymi z produkcyjnej wersji wykopu i niezabezpieczony żadnym hasłem. Po kilku tygodniach od zdarzenia (szantaż ze strony nieznanego sprawcy) odkrył to użytkownik gimbus1xD, który opublikował informacje na ten temat na samym wykopie. Błędy techniczne popełnione na wykopie zostały już wymienione na innych blogach i portalach, błędy PRowe w komentarzach pod <a title="Wpis na blogu wykop.pl nt. wycieku danych" href="http://www.wykop.pl/blog/post/55">oficjalnym wpisem</a> i <a title="Oficjalna przemowa administratora wykop.pl" href="http://www.wykop.pl/link/232937/wyciek-bazy-danych-dlaczego-zwlekalismy-z-informacja-o-wlamaniu">oficjalną przemową</a>. Na razie cicho jest w sprawie odpowiedzialności za ewentualne szkody.</p>
<p>Jedyną metodą postępowania w sprawie szkód wynikłych z opublikowania danych, która przychodzi mi na myśl, są indywidualne pozwy cywilne. <a title="Pytanie noway'a" href="http://www.wykop.pl/link/232937/wyciek-bazy-danych-dlaczego-zwlekalismy-z-informacja-o-wlamaniu#comment-1476432">Pytania</a> o inny sposób załatwiania tego typu spraw pozostają bez odpowiedzi. Do tego polskie prawo nie sprzyja poszukiwaniom osoby odpowiedzialnej za taki stan rzeczy, a nawet ją chroni (vide art.267 ust.2 kodeksu karnego). Karnie odpowiada nie administrator, który poprzez zaniedbanie opublikował dane swoich użytkowników, ale niecny &#8220;hakier&#8221;, który na tę publikację trafił. Nie ma też obowiązku informowania użytkowników o tym, że ich dane wyciekły, a szybkie poinformowanie użytkowników mogłoby zapobiec wykorzystaniu ich danych. Brakuje w tym wszystkim równowagi pomiędzy odpowiedzialnością użytkownika, a odpowiedzialnością zarządcy systemu informatycznego.</p>
<p>W sieci zaczęły już pojawiać się komentarze mówiące, że przecież każdemu mogło się to zdarzyć, nikt nie jest nieomylny. W branży informatycznej, a konkretniej w webdesignie istnieje jednak zbiór dobrych praktyk, które często okazują się wiedzą tajemną. Te dobre praktyki nie są jakimiś nieżyciowymi wymaganiami o stosowaniu drutu kolczastego w serwerowni, ale prostymi regułami do których należy się stosować, jeżeli nasz serwis przyjmuje dane z zewnątrz (sprawdzaj każdy input, najlepiej przy pomocy gotowych mechanizmów) lub ma przechowywać hasła (hashuj hasła z tzw. solą, możliwie długą &#8211; tu <a title="DI: Allegro nie hashuje haseł" href="http://di.com.pl/news/28001,0,Allegro_kontrowersje_wokol_sposobu_przechowywania_hasel.html">pozdrowienia dla Allegro</a>). Usprawiedliwianie administratorów, że &#8220;tak dużego portalu nie da się w 100% zabezpieczyć&#8221; przy tego typu zaniedbaniach jest równie trafne, co stwierdzenie, że malowanie pojazdów wojskowych w jaskrawożółte i czerwone naprzemienne pasy to nic złego, bo i tak nie można ich uczynić w 100% niewidzialnymi.</p>
<p>Na razie użytkownikom portali pozostaje tylko siedzieć cicho i mieć nadzieję, że w ulubionych portalach pracują ludzie, którzy wiedzą co robią. Niestety prawo nie daje możliwości wyciągnięcia szybkich i automatycznych (bez siedzenia w sądzie przez kilka lat) konsekwencji wobec administratora serwisu internetowego. Może czas zacząć bezwzględnie wymagać rozsądku od użytkowników Internetu?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makdaam.eu/2009/09/odpowiedzialnosc-za-dane/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Czytnik Gemplus ExpressCard (od Lenovo)</title>
		<link>http://www.makdaam.eu/2009/07/gemplus-expresscard/</link>
		<comments>http://www.makdaam.eu/2009/07/gemplus-expresscard/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 16:36:03 +0000</pubDate>
		<dc:creator>Makdaam</dc:creator>
				<category><![CDATA[Drobnica]]></category>
		<category><![CDATA[smartcard]]></category>
		<category><![CDATA[sprzęt]]></category>

		<guid isPermaLink="false">http://www.makdaam.eu/?p=42</guid>
		<description><![CDATA[ W związku z coraz większym zainteresowaniem kartami chipowymi na tle podpisów elektronicznych, elektronicznej legitymacji studenckiej oraz zastosowań pokrewnych (np. wpis Zal&#8217;a na temat kart openpgp) postanowiłem opisać na 100% działający zarówno pod Windowsem (PC/SC) jak i pod Linuxem (PCSC-Lite) zakup z ostatniego tygodnia.
Niedawno kupiłem nowy czytnik do kart chipowych. Szukałem czegoś do laptopa (interfejs [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://www.makdaam.eu/wp-content/gallery/gemplus/gemplus_m.jpg" title="" class="shutterset_singlepic101" >
	<img class="ngg-singlepic ngg-right" src="http://www.makdaam.eu/wp-content/gallery/cache/101__320x240_gemplus_m.jpg" alt="Gemplus ExpressCard" title="Gemplus ExpressCard" />
</a>
 W związku z coraz większym zainteresowaniem kartami chipowymi na tle podpisów elektronicznych, elektronicznej legitymacji studenckiej oraz zastosowań pokrewnych (np.<a href="http://blog.4zal.net/2009/06/27/openpgp-smartcard/"> wpis Zal&#8217;a na temat kart openpgp</a>) postanowiłem opisać na 100% działający zarówno pod Windowsem (PC/SC) jak i pod Linuxem (PCSC-Lite) zakup z ostatniego tygodnia.</p>
<p>Niedawno kupiłem nowy czytnik do kart chipowych. Szukałem czegoś do laptopa (interfejs ExpressCard), znalazłem nowy czytnik za około 100PLN i jestem z niego zadowolony. Czytnik jest zgodny z CCID, w związku z tym działa pod Linuxem (było to dla mnie kluczowe), przedstawia się jako urządzenie USB (wbudowany host USB na ExpressCard).</p>
<p>Dodatkowym atutem tego czytnika jest to, że nie wystaje poza obudowę laptopa. Co oznacza, że nie muszę go demontować na czas transportu komputera. Obecnie dostępnych jest jeszcze 9 czytników i całkiem możliwe, że nie zostaną sprzedane do końca aukcji.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makdaam.eu/2009/07/gemplus-expresscard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nowa odsłona Makdaam.eu</title>
		<link>http://www.makdaam.eu/2009/06/witaj-swiecie/</link>
		<comments>http://www.makdaam.eu/2009/06/witaj-swiecie/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 22:24:31 +0000</pubDate>
		<dc:creator>Makdaam</dc:creator>
				<category><![CDATA[Bez kategorii]]></category>

		<guid isPermaLink="false">http://www.makdaam.eu/?p=1</guid>
		<description><![CDATA[Makdaam.eu już po remoncie, chociaż trwają prace wykończeniowe. Jeżeli brakuje jakiejś treści, to proszę o kontakt.
]]></description>
			<content:encoded><![CDATA[<p>Makdaam.eu już po remoncie, chociaż trwają prace wykończeniowe. Jeżeli brakuje jakiejś treści, to proszę o kontakt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makdaam.eu/2009/06/witaj-swiecie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interpretacja i weryfikowanie danych z ELS</title>
		<link>http://www.makdaam.eu/2008/08/interpretacja-i-weryfikowanie-danych-z-els/</link>
		<comments>http://www.makdaam.eu/2008/08/interpretacja-i-weryfikowanie-danych-z-els/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 17:33:06 +0000</pubDate>
		<dc:creator>Makdaam</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[els]]></category>
		<category><![CDATA[kod]]></category>
		<category><![CDATA[x509]]></category>

		<guid isPermaLink="false">http://www.makdaam.eu/?p=31</guid>
		<description><![CDATA[Artykuł 	ten jest drugim z serii na temat Elektronicznej Legitymacji Studenckiej. Pierwszy opisywał jak uzyskać binarny zrzut pliku danych i certyfikatu (dwa pliki opisane w załączniku nr 3 do 	rozporządzenia).
Co można znaleźć w plikach?
W pliku z danymi (w tym artykule nazwany „dane.bin”, zrzucany za pomocą polecenia „./elsr &#62; dane.bin”) można znaleźć imiona i nazwisko studenta, [...]]]></description>
			<content:encoded><![CDATA[<p>Artykuł 	ten jest drugim z serii na temat Elektronicznej Legitymacji Studenckiej. Pierwszy opisywał jak uzyskać binarny zrzut pliku danych i certyfikatu (dwa pliki opisane w załączniku nr 3 do 	rozporządzenia).</p>
<h3>Co można znaleźć w plikach?</h3>
<p>W pliku z danymi (w tym artykule nazwany „dane.bin”, zrzucany za pomocą polecenia „./elsr &gt; dane.bin”) można znaleźć imiona i nazwisko studenta, numer albumu, kod serii albumów, nazwę uczelni, PESEL oraz datę ważności legitymacji. Dodatkowo znajduje się tam numer seryjny układu karty (do weryfikacji czy dane znajdują się na oryginalnym nośniku) oraz wersja formatu pliku (na razie istnieje tylko wersja 1). Oczywiście wszystkie powyższe dane są otoczone strukturą podpisu elektronicznego, o czym później.<br />
<span id="more-31"></span> W pliku z certyfikatem (u mnie nazwany „cert.bin”, zrzucany poleceniem „./elsr cert &gt; cert.bin”) znajduje się certyfikat, którego użyto do podpisania pliku z danymi. Wystawiony jest na pracownika uczelni odpowiedzialnego za podpisywanie legitymacji (wśród danych opisujących posiadacza certyfikatu oprócz imienia i nazwiska, znajduje się numer PESEL, nazwa uczelni, adres e-mail). Według informacji na mojej legitymacji „Certyfikat powstał w oparciu o Polityki PCCE dla Certyfikatów Kwalifikowanych. Treść Polityki oraz Regulamin PCCE znajduje się pod adresem <a href="http://www.sigillum.pl/repozytorium">http://www.sigillum.pl/repozytorium </a>CPS: <a href="http://www.sigillum.pl/PolitykaCA.htm">http://www.sigillum.pl/PolitykaCA.htm</a>”.</p>
<h3>Jak wyciągnąć czyste dane?</h3>
<p>W danych zakodowanych przy pomocy Distinguished Encoding Rules, zgodne z Basic Encoding Rules w przypadku odczytu (Uwaga! BER są ogólniejsze od DER – dopuszczają kilka rzeczy niedostępnych w DER) opisanych w rekomendacji ITU-T X.690. Sam podpis jest zgodny z formatem PKCS7 (stosowany w tzw. „bezpiecznej poczcie” SMIME oraz przez naszych dostawców „kwalifikowanego podpisu elektronicznego”).<br />
Zawartość pliku dane.bin jak i cert.bin można przeglądać w formie czytelnej dla ludzi za pomocą komendy „openssl asn1parse -inform DER -in nazwapliku -i” spowoduje to wyświetlenie wszystkich struktur zapisanych za pomocą DER wraz z wcięciami porządkującymi układ dokumentu.<br />
Typy obiektów możemy określić po <a href="http://www.alvestrand.no/objectid/top.html">Object ID</a> (OID). Obiekty znanych typów pakuje się w sekwencję, w której pierwszym elementem jest OID, a następnie zawartość obiektu. W przypadku danych ELS OID=1.2.616.1.101.4.1.1. Niestety dane nie są kontynuacją w hierarchii, a elementem OCTET STRING (ciąg bajtów) zawierającym ciąg danych zakodowanych przy pomocy BER (tym razem już dane zgodnie z opisem w rozporządzeniu).</p>
<h3>Co z certyfikatem i weryfikacją?</h3>
<p>Certyfikat w pliku cert.bin, jest zwykłym plikiem zgodnym z PKCS1 (w przypadku mojej legitymacji kluczem publicznym do szyfrowania/podpisywania SHA1 z RSA wydanym przez Sigillum). Wszystko oczywiście w formacie DER. Niestety nie udało mi się jeszcze skompletować weryfikowalnego łańcucha certyfikatów od certyfikatu CA Sigillum do certyfikatu osoby podpisującej ELS. Prace trwają, ale niestety nie są priorytetem (minus bezdochodowego hobby).</p>
<h3>Oprogramowanie</h3>
<p>Program elsextractor.py wyciągnie dane z pliku dane.bin i przepisze je do wygodnego w użyciu słownika. Kod nie jest jeszcze dopasowany i nie wyszukuje obiektów po OID, tylko polega na stałej lokalizacji obiektu w hierarchii PKCS7 (oczywiście zostanie to poprawione w przyszłych wersjach). Do tego stosuje niezbyt uniwersalny sposób wczytywania danych (ze względu na uproszczenie kodu).</p>
<h3>Epilog?</h3>
<p>Artykuł ten znajduje się w fazie beta, ale postanowiłem go opublikować, po tym jak przeleżał w tym stanie pół roku. Zainteresowanie odczytywaniem ELSki wzrosło, a te kilka uwag i kod do rozbijania DER na obiekty może się komuś przydać. Dokończenie przewiduję w bliżej nieokreślonej przyszłości po obronie pracy magisterskiej (2009).</p>
<h3>Załączniki</h3>
<p><a href="http://www.makdaam.eu/wp-content/uploads/2009/06/elsextractor.tar.gz">ELS Extractor (tar.gz)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makdaam.eu/2008/08/interpretacja-i-weryfikowanie-danych-z-els/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Czytanie ELS przez interfejs stykowy</title>
		<link>http://www.makdaam.eu/2008/04/czytanie-els-przez-interfejs-stykowy/</link>
		<comments>http://www.makdaam.eu/2008/04/czytanie-els-przez-interfejs-stykowy/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 01:19:08 +0000</pubDate>
		<dc:creator>Makdaam</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[els]]></category>
		<category><![CDATA[kod]]></category>
		<category><![CDATA[smartcard]]></category>

		<guid isPermaLink="false">http://www.makdaam.eu/?p=17</guid>
		<description><![CDATA[Poniższy artykuł jest krótkim opisem moich eksperymentów z ELS. Mam nadzieję, że pomoże rozpocząć zabawę z kartami 7816, które z jednej strony są już zastępowane przez karty z interfejsem bezstykowym, z drugiej (głównie ze względu na bezpieczeństwo i pobór mocy) wchodzą do naszego życia codziennego.]]></description>
			<content:encoded><![CDATA[<p>Poniższy artykuł jest krótkim opisem moich eksperymentów z ELS. Mam nadzieję, że pomoże rozpocząć zabawę z kartami 7816, które z jednej strony są już zastępowane przez karty z interfejsem bezstykowym, z drugiej (głównie ze względu na bezpieczeństwo i pobór mocy) wchodzą do naszego życia codziennego.<span id="more-17"></span></p>
<h3>Co to jest ELS?</h3>
<p>ELS, czyli Elektroniczna Legitymacja Studencka jest kartą chipową zawierającą informacje o studencie podpisane <a href="http://pl.wikipedia.org/wiki/Podpis_elektroniczny_%28prawo%29">kwalifikowanym podpisem elektronicznym</a> przez wydawcę. Dokładne informacje na temat wyglądu nośnika jak i zawartości można znaleźć w <a href="http://isap.sejm.gov.pl/DetailsServlet?id=WDU20062241634">odpowiednim rozporządzeniu</a>. O samej legitymacji i przygodach związanych z jej wdrażaniem można przeczytać na stronie VaGli:</p>
<ul>
<li><a href="http://prawo.vagla.pl/node/6631">ELS: w jedności, neutralności i kompatybilności siła</a> – <a href="http://prawo.vagla.pl/vagla" target="_self">VaGla</a> o dodatkowej funkcjonalności ELS w Warszawie</li>
<li><a href="http://prawo.vagla.pl/node/6605">Rozmiękczanie plastiku czyli komu bije ELS</a> – <a href="http://www.put.poznan.pl/%7Etommy">Tomasz Kokowski</a>, osoba odpowiedzialna za wdrożenie ELS w Poznaniu i nie tylko, o tym, jakie trudności napotkano podczas pierwszego przetargu (w odpowiedzi na artykuł w Rzeczypospolitej)</li>
<li><a href="http://prawo.vagla.pl/node/7106">Jaka karta ELS?</a> &#8211; Jacek Biskupski, opinia vice prezesa jednej z firm dystrybuujących karty i startujących w przetargu, polecam szczególnie dyskusję w komentarzach.</li>
<li><a href="http://prawo.vagla.pl/node/7639">Komu bije ELS v2.0</a> – Tomasz Kokowski, co jeszcze można było (można by) zrobić przy okazji wdrażania ELS</li>
</ul>
<p>Karta powinna być zgodna ze standardem <a href="http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816.aspx">ISO 7816</a>, a dane na niej zawarte powinny być zapisane w formacie <a href="http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf">ASN.1 Basic Encoding Rules</a> zgodnie ze specyfikacją w <a href="http://isap.sejm.gov.pl/DetailsServlet?id=WDU20062241634">załączniku nr 3 do rozporządzenia</a>. Nie znalazłem szczegółowych informacji na temat interfejsu bezstykowego, ale z <a href="http://prawo.vagla.pl/node/7599#comment-7416">wiarygodnego źródła</a> wiem, że ELSki wyposażone w interfejs Mifare pozwalają na odczytanie danych związanych z legitymacją (imię, nazwisko, nr albumu, PESEL) każdemu bez żadnego uwierzytelniania. Nie mam jeszcze sprzętu do czytania kart RFID 13,56MHz (w tym Mifare), ale w najbliższym czasie powinienem mieć dostęp do odpowiednich czytników.</p>
<h3>Sprzęt</h3>
<p>Do zabaw z kartami chipowymi używam bardzo starego czytnika do kart stykowych Schlumberger Reflex USB, który nabyłem okazyjnie na allegro. <a href="http://pcsclite.alioth.debian.org/">PCSC-lite</a> pozwala mi rozmawiać z tym sprzętem na odpowiednio wysokim poziomie i do tego ma API niemal identyczne z Windowsowym PCSC (łatwiej będzie przeportować).</p>
<h3>Zawartość karty</h3>
<p>Pierwsza wersja programu odczytującego służyła do skanowania karty w poszukiwaniu wybieralnych plików. Dane na każdej karcie stykowej zgodnej z ISO 7816 są ułożone w strukturę drzewiastą. Odpowiednikami katalogów są pliki DF (Dedicated File – czasami nazywane Directory File), rolę plików zwykłych pełnią pliki EF (Elementary File), każdy plik ma 2 bajtowy adres. Korzeniem drzewa jest plik 0&#215;3F00, oznaczony jako MF (Master File). Oprócz tego zarezerwowane są adresy 0&#215;3F00 (obecny katalog, odpowiednik &#8216;.&#8217;) i 0xFFFF. Wszystkie DFy dostępne z MF muszą być zarejestrowane (aby uniknąć kolizji w przypadku więcej niż jednej aplikacji na jednej karcie) i szczerze mówiąc nie wiem gdzie znaleźć ich spis <img src='http://www.makdaam.eu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (najprawdopodobniej jest dostępny za drobną opłatą u podmiotu rejestrującego).</p>
<p>Przeskanowanie ujawniło następujące pliki DF:</p>
<ul>
<li>0&#215;0101 (DF.SELS) – Elektroniczna Legitymacja Studencka
<ul>
<li>0&#215;0001 TRANSPARENT (EF.CERT) – kwalifikowany certyfikat emitenta</li>
<li>0&#215;0002 TRANSPARENT (EF.ELS) – plik z danymi legitymacji + podpis</li>
</ul>
</li>
<li>0&#215;5011 DF – nieznany
<ul>
<li>0&#215;8001</li>
<li>0&#215;8002</li>
<li>0&#215;8003</li>
<li>0&#215;8004 hic sunt dracones</li>
<li>0&#215;8005</li>
<li>0&#215;8006</li>
<li>0&#215;8007</li>
</ul>
</li>
</ul>
<p>Skanowanie wszystkich 65535 możliwości trwało około 4h. Jeżeli chodzi o DF 0&#215;5011 jest on najprawdopodobniej interfejsem do wgrywania aplikacji na kartę.</p>
<h3>Wyjaśnienie kodu programu</h3>
<p>Nie będę tutaj opisywać inicjalizacji komunikacji z kartą, szczegóły można znaleźć w dokumentacji ISO. Kod załączony do artykułu wywołuje wszystkie funkcje potrzebne do połączenia i pracy z kartą przez interfejs PCSC. Pozwala też na łatwą modyfikację i automatyzację niektórych działań (licencja GNU GPLv3).</p>
<p>Ogólna struktura komend wysyłanych do karty chipowej ma następującą postać (kolejne bajty numerowane od 0):</p>
<table border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4&#8230;</td>
<td>ostatni</td>
</tr>
<tr>
<td>CLA</td>
<td>INS</td>
<td>P1</td>
<td>P2</td>
<td>pola opcjonalnych danych</td>
<td>Le</td>
</tr>
</tbody>
</table>
<p>gdzie CLA to klasa komend (przyjąłem 0&#215;00 &#8211; patrz <a href="http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx#chap5_4_1">ISO 7816-4 5.4.1</a>), INS to bajt wskazujący instrukcję, a P1 i P2 to dwa parametry komendy. W przypadku, gdy komenda wymaga wysłania więcej niż dwóch bajtów danych (np. zapis do pliku) stosuje się pola opcjonalne, z których pierwszy bajt opisuje długość, a pozostałe zawierają konkretne dane. Ostatnim polem jest Le, które najczęściej podaje liczbę bajtów jaką jest w stanie przyjąć nasz czytnik kart.</p>
<p>Aby odczytać zawartość pliku na karcie, musimy go najpierw wybrać przy pomocy komendy SELECT FILE (0xA4), która przyjmuje 2 parametry określające sposób wyboru pliku (my wybieramy na podstawie identyfikatora i nie interesuje nas na razie jakie informacje zwróci komenda – P1 = 0&#215;00 i P2 = 0&#215;00). Następnie podajemy długość danych (0&#215;02) i same dane, czyli identyfikator pliku (np. 0&#215;0101), bajt Le zostawiamy pusty (nie wysyłamy go).</p>
<p>Po wybraniu odpowiedniego pliku odczytujemy jego zawartość za pomocą komendy READ BINARY (0xB0), która przyjmuje przesunięcie danych w pliku jako jeden parametr zajmujący P1 i P2 (2 bajty), a bajt Le wskazuje liczbę danych jakie jesteśmy w stanie przetworzyć.</p>
<p>Jeżeli kod nadal nie jest czytelny proszę o kontakt. Zaznaczam jednak, że nie udzielam lekcji z podstaw programowania w języku C, ani nie zajmuję się tłumaczeniami standardów ISO na polski <img src='http://www.makdaam.eu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . W następnym artykule na temat ELS postaram się opisać strukturę samego pliku danych i certyfikatu oraz zaprezentować weryfikację podpisu legitymacji.</p>
<h3>Uaktualnienie</h3>
<p>Jak się okazuje same dwubajtowe identyfikatory plików (FID) nie muszą być globalnie takie same. Poniższą, uniwersalną metodę selekcji DF.SELS przesłał <a href="http://www.kress-net.com/">Krzysztof Rutecki</a> z Wrocławia, za co serdecznie dziękuję. Preferowanym sposobem wyboru DF.SELS (najprawdopodobniej także DFów innych aplikacji) jest AID (Application ID), który to właśnie znajduje się w odpowiednim załączniku do piątej części ISO7816 i jest zarezerwowany tylko dla danej aplikacji. Pełna komenda wybierająca DF.SELS przez AID znajduje się w funkcji &#8220;selectDfselsByAID&#8221; nowego kodu źródłowego. Jest to zwykły SELECT FILE, tyle że P1=0&#215;04, a P2=0&#215;00, później znajdziemy długość AIDu w bajtach i sam AID. Ten sposób powinien zagwarantować zgodność oprogramowania z legitymacjami innymi niż te z Poznania.</p>
<h3>Linki</h3>
<p>Załącznik do artykułu: <a href="http://www.makdaam.eu/wp-content/uploads/2008/04/els_reader.tar.gz">els_reader.tar.gz</a></p>
<p><a href="http://lukaszkulasek.pl/">Łukasz Kulasek</a> napisał <a href="http://lukaszkulasek.pl/pliki/czytajels.zip">klasę w Javie</a> służącą do odczytywania zawartości ELS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makdaam.eu/2008/04/czytanie-els-przez-interfejs-stykowy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
