logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

sle4428 jak i co? System podobny do systemu kart Vitay na stacjach Orlenu.

MiLupo 14 Gru 2004 16:40 5250 16
REKLAMA
  • #1 1059932
    MiLupo
    Poziom 12  
    Posty: 102
    Ocena: 18
    Witam,
    Przegladnalem forum (szukaj tez wcisnalem) ale nie znalazlem nic konkretnego na temat SLE4428. Owszem, jest pare informacji ale po przegladnieciu wszystkich postow niektore sa sprzeczne i stad kilka pytan:

    1) Jaki producent tych kart jest najlepszy (czyt. najtanszy)
    2) Jaki programator najlepiej zastosowac (gotowy to koszt ok. 30 Eur. + VAT)... a moze da sie cos innego zastosowac??
    3) Jak wyglada programowaniej czystej karty od producenta?
    a) Czy nie ma zadnego problemu z zapisaniem do takich kart informacji?
    b) Jak wyglada sprawa zabezpieczenia wprowadzonych danych... tzn.:
    b1) np. Imie i Nazwisko zapisac tylko 1x bez mozliwosci jakiejkolwiek zmiany
    b2) np Punkty tak zeby mozna bylo zwiekszac ich wartosc ale zeby bylo maksymalnie utrudnione dobicie sobie punktow przez osoby znajace sie na rzeczy...
    4) Jakie programy nadaja sie do ustawiania takich danych jak w pkt. 3 ?
    5) Czy sa jakies zrodla do takich programow... chcialbym przeniesc to na platforme linuxowa.

    Reasumujac:
    Chcialem zbudowac system oparty o karte SLE4428, ktory umozliwa uprawnionej osobie wydanie karty (wpisanie Imienia i Nazwiska bez mozliwosci zmiany oraz poczatkowej wartosci punktow rownej 0-ro, ktora moze zmieniac osoba tylko do tego uprawniona... czym wiecej zabezpieczen tym lepiej) oraz pozniejsze modyfikowanie wartosci punktow (rowniez tylko i wylacznie przez osobe do tego upowazniona).
    Caly system wygladalby mniej wiecej tak jak system kart Vitay na stacjac Orlenu.


    Z gory dziekuje za wszystkie informacje.
    Mysle, ze zebrana wiedza w tym temacie pomoze nie tylko mi ale innym uzytkownikom.
    Posty ktore przeczytalem dotycza kart wprowadzonych do obrotu (telefonicznych i ślaskich kas chorych) natomiast nie ma ani jednej informacji jak przygotowac moza samamu taki mini system. Wszystkich chetnych zapraszam do dyskusji. Pozdrawiam
  • REKLAMA
  • #2 1059996
    Jaca
    Poziom 32  
    Posty: 1332
    Pomógł: 239
    Ocena: 217
    Witam...
    Swego czasu robiem system oparty o karty z chipem Siemensa SLE4428. Układ ten ma zabezpieczenie przed zapisem - PSC - dwubajtowy PIN, ustawiony przez producenta (PIN transportowy) z możliwością późniejszej zmiany na swój. Specyficzny jest zapis do niego. Aby tego dokonać, należy:
    - zapisać, nie zapisany bit w rejestrze błędów (adres 1021);
    - wpisać pierwszy bajt PSC (adres 1022);
    - wpisać drugi bajt PSC (adres 1023);
    - po prawidłowym "zalogowaniu" należy wyzerować rejestr błędów i dokonać zapisu (pamięci, PSC, itp.).
    Jak widać mamy 8 prób logowania. Po 8-mym, nie udanym logowaniu, karta może służyć jedynie do odczytu. Protokół komunikacyjny jest na tyle prosty, że można samemu zrobić odpowiedni czytnik. Ja to robiłem w asemblerze na AT89C2051.
    Załączniki:
    • DS_SLE44x8.zip (375.45 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #3 1060033
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Karty SLE4428 produkuje tylko jeden producent czyli Infineon. Co do ceny, to nie pamiętam, ale można poszukać w sieci, jest wiele firm które sprzedają je. Protokół komunikacyjny jest tajny i firma udziela jedynie tym który podpiszą lojalke (chociaż pewnie w sieci da się wygrzebać).
  • #4 1060251
    MiLupo
    Poziom 12  
    Posty: 102
    Ocena: 18
    Jaca napisał:


    Jak widać mamy 8 prób logowania. Po 8-mym, nie udanym logowaniu, karta może służyć jedynie do odczytu.


    hmmm zgadzaloby sie to z nota katalogowa ktora znalazlem:
    Cytat:

    1.2 SLE 4428
    Additionally to the above functions this version has a PSC verification logic. All the memory, except
    for the PSC, can always be read. The memory can be written or erased only after PSC verification.
    The error counter can always be written. After eight successive incorrect entries the error counter
    will block any subsequent attempt at PSC verification and hence any possibility to write and erase.


    Natomiast ciekawa jest jedna rzecz:

    Jaca napisał:

    Protokół komunikacyjny jest na tyle prosty, że można samemu zrobić odpowiedni czytnik.

    elektryk napisał:

    Protokół komunikacyjny jest tajny i firma udziela jedynie tym który podpiszą lojalke (chociaż pewnie w sieci da się wygrzebać).

    Z tego co mi wiadomo to protokol nie jest tajny :)
    Ciekawie wyglada pomysl programatora na atmelu :)
    Ja znalazlem taki:
    http://www.fiskas.pl/index.php?sekcja=dodatkowy&id=13
    ale po co wydawac kase jak moznaby bylo zrobic samemu ??
  • #5 1060324
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    MiLupo napisał:
    Z tego co mi wiadomo to protokol nie jest tajny :)
    Ciekawie wyglada pomysl programatora na atmelu :)
    Ja znalazlem taki:
    http://www.fiskas.pl/index.php?sekcja=dodatkowy&id=13
    ale po co wydawac kase jak moznaby bylo zrobic samemu ??
    Poszukaj w podstawowej dokumentacji coś np o wprowadzeniu kodu PSC, owszem procedura odczytu danych jest identyczna jak pozostałych kart z serii SLE44xx. Praktycznie każdy czytnik czyta takie karty, jest tylko problem z oprogramowaniem, ten czytnik który podałeś to tylko sam interfejs i driwery do systemu, samą aplikacje która będzie się komunikowała z kartą muszisz napisać sam.
  • REKLAMA
  • #6 1060338
    MiLupo
    Poziom 12  
    Posty: 102
    Ocena: 18
    aha jeszcze jedno...
    jaca moglbys udostepnic ten czytnik na forum lub na maila?
    i czy za jego pomoca mozna zapisywac i czytac z karty? czy tylko czytac ?

    P.S.
    Dodaje jeszcze linka do sklepu gdzie mozna taka karte kupic gdyby ktos byl zainteresowany
    http://sklep.monpol.pl/index.php?fidx=41&pg=fl&sortby=symbol
  • #7 3903119
    grmstudio
    Poziom 11  
    Posty: 26
    Model tej karty jest podobny do ,Karty z kasy chorych , jak ją sformatować
  • #8 9117096
    cebulonimbus
    Poziom 2  
    Posty: 4
    Witam serdecznie wszystkich!!

    Mam podobną sytuację jak kolega MiLupo, z tą tylko różnicą, że chciałem zastosować kartę SLE4428 do logowania się do systemu windows załóżmy...lub w ogóle przechowywać jakieś informacje na tej karcie, po czym później napisać programik, który na ich podstawie udziela dostępu do jakiś zasobów - np konkretnego katalogu.

    Kupiłem taką kartę na allegro, lecz sprzedawca nie był w stanie powiedzieć mi, czy karta jest zupełnie czysta, czy jest na niej system operacyjny...no a o kluczach transportowych to już w ogóle pierwsze słyszał.
    Teraz rodzi się pytanie: jak mogę od zera taką kartę oprogramować, jeśli nie znam kluczy transportowych no i załóżmy nie ma systemu operacyjnego?
    Docelowo chciałbym korzystać z czytnika zintegrowanego z klawiaturą Dell rt7d60, ale przyjmijmy na początek że działamy na jakimś solidniejszym...OmniKey albo coś w tym stylu.
  • #9 9172958
    cebulonimbus
    Poziom 2  
    Posty: 4
    aha, i jeszcze wszystko wskazuje na to, że producentem chipów jest NXP.
  • #10 9206334
    rogal32
    Poziom 10  
    Posty: 9
    Ocena: 1
    Witam. Walcze z karta SLE4428 i stoje w miejscu. Mam nowa karte sle4428 i probuje zapisac/odczytac cokolwiek przez komendy APDU. Znalazlem pdf'a z komendami APDU dla roznych kart (do pobrania: http://www.mediafire.com/?1a3i8a8k737ndex - strona 97 pdf'a) i mam kilka programow do wysylania komend apdu: SkyCard ( http://sourceforge.net/projects/skycard/ ), ApduExchange ( http://www.codeproject.com/KB/smart/SmartcardFmwk.aspx ) i Smart Card ToolSet PRO i nie moge nic zrobic. Moze zle wpisuje komendy? Wg pdf'a:
    
    Update Binary APDU
    Command APDU: 
     
    CLA  INS  P1    P2     Lc    Data Field 
    00    D6  Adr1  Adr0  Len   Data to be written 
     
    CLA is always 00 
    INS is always D6 
    P1 is upper byte of address to write and must not be greater than ‘03’ 
    P2 is lower byte of address to write. 
    Lc is the number of bytes to write, 0-1024 
    Data Field contains the bytes to write.  If a byte to be written is already protected, a status 
    6581 will be returned. 

    CLA i INS zostawiam jak jest. Tylko jak wpisywac reszte? Rozumiem, ze dzialam na liczbach hex. Wiec chcac zapisac cos pod adresem "1021" zamieniam sobie 1021 na hex = 3FD. No wiec P1 = 3, a P2 = D, tak? Tylko to troche bez sensu, bo jak wpisac cos dla adresu "101" (65 jako hex), skoro P1 musi byc <= 3?! I co z Lc? Czy "number of bytes to write" oznacza de facto adres bajtu, ktory chce zapisac? Wpisac wiec: 3FD?
    Prosze o pomoc i podanie konkretnego przykladu, zeby przeprowadzic jakikolwiek zapis, a pozniej odczyt z czystej karty sle4428, przy pomocy komend apdu.
  • REKLAMA
  • #11 10056829
    iryseee
    Poziom 14  
    Posty: 160
    Pomógł: 1
    Ocena: 1
    Znalazłem coś takiego sam walczę i nic. Karty śląskiej kasy chorych to na pewno sle4428. Na razie nic prawidłowego nie odczytałem. Do daję parę info w załącznikach.
    Załączniki:
    • Cw6_MemoryCard.pdf (237.85 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • 9315.rar (27.63 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #12 10056844
    iryseee
    Poziom 14  
    Posty: 160
    Pomógł: 1
    Ocena: 1
    nie wiem czemu mi nie weszło. tylko link
    http://aq.ia.agh.edu.pl/Aquarium/Dydaktyk/Laborat/PUE/Cw6_MemoryCard.pdf

    Dodano po 4 [godziny] 59 [minuty]:

    Witam ponownie w końcu czytam eeproma. Spoko tylko raz mam odczyt ok a raz same zera . np.
    00000000000000000000000000000000
    00000000000000000000000000000000
    33R X8

    33R X8


    92231091FFFF8113FFFFFFFFFFFFFFFF
    FFFFFFFFFFD27600000400FFFFFFFFFF
    33R X8
    i tak non stop nie wiem dlaczego?
    program w bascomie

    
    If Czip = 0 Then
    Waitms 100
    Czytam_karte_dane
    End If
    
    If Czip = 1 Then
    
    End If
    
    Loop
    
    End                                                         'end program
    
    
    
    Sub Czytam_karte_dane
    Print #1 ,R ; "R    X" ; X
    Print #1 ,
    
    Led = 0 : Delay
    Res = 0 : Delay
    Clk = 0 : Io = 1 : Delay                                    'Pierwsze impulsy Answer To reset, patrz wykresy w pliku PDF
    Res = 1 : Clk = 1 : Delay
    Clk = 0 : Res = 0 : Delay
    
    For R = 1 To 32                                             '...zaczynamy od adresu C7h
       For X = 0 To 7
          Clk = 1 : Delay
          A.x = Io
          Clk = 0 : Delay
       Next X
        Tab(r) = A
    
    
    Next R
     Print #1 ,
     For R = 1 To 16
     Print #1 , Hex(tab(r)) ;
     Next R
     Print #1 ,
     For R = 17 To 32
     Print #1 , Hex(tab(r)) ;
     Next R
     Print #1 ,
     Print #1 , R ; "R    X" ; X
     Print #1 ,
     Led = 1
     Do
     Loop Until Czip = 1
    
     End Sub        
    
    



    Jeszcze ciekawi mnie jak odczytać nr. karty ?
    i jak by wyglądał zapis ?
    Może ktoś wie jak odczytać nr. karty?

    Dodano po 27 [minuty]:

    nareszcie czyta ok:
    chodzi o inicjalizację karty mała poprawka
    
    If Czip = 0 Then
    For R = 1 To 32
     Tab(r) = &HFF
     Next R
    Led = 0 : Delay
    Res = 0 : Delay
    Clk = 0 : Io = 1 : Delay
    Res = 1 : Clk = 1 : Delay
    Clk = 0 : Res = 0 : Delay
    Czytam_karte_dane
    End If
    
    If Czip = 1 Then
    
    End If
    
    Loop
    
    End                                                         'end program
    
    
    
    Sub Czytam_karte_dane
    Print #1 ,R ; "R    X" ; X
    Print #1 ,
    
    
    Led = 0 : Delay
    Res = 0 : Delay
    Clk = 0 : Io = 1 : Delay
    Res = 1 : Clk = 1 : Delay
    Clk = 0 : Res = 0 : Delay
    
    

    Czy ktoś wie jak cztać nr. karty?
  • #13 10177433
    cebulonimbus
    Poziom 2  
    Posty: 4
    Witam serdecznie,

    Z kartami chipowymi ogromnego doświadczenia nie mam, ale coś nie coś się orientuję i na moje oko wygląda to następująco.
    Otóż generalnie kupując czystą, nową kartę prosto od producenta otrzymujemy łysy chip, który nie zareaguje nawet na ATR (najprawdopodobniej), dlatego że nie ma na nim żadnego applet'u. Dopiero po zaaplikowaniu takowegoż, można się pokusić o komunikację przy użyciu APDU.
    Żeby jednak zainstalować applet, potrzebne są wspomniane już klucze transportowe, których o ile mi wiadomo Infineon nie udostępnia publicznie. Trzeba mieć NDA podpisane z Infineonem.
    Jeśli jednak ktoś byłby w posiadaniu tych kluczy, to z chęcią bym je pozyskał jakoś (i chyba nie tylko ja :)), bo myślałem o wszczęciu podobnych działań jak szanowni forumowicze :)

    Dobrze jest zatem kupować karty, które już wcześniej były do czegoś używane. Wtedy chociaż mamy pewność, że jest na niej applet i istnieje jakieś APDU. Inną sprawą jest zdobycie middleware'u, żeby samemu jakiś sofcik naskrobać, no ale już coś będziemy mieć.

    Pozdrawiam
  • REKLAMA
  • #14 10206811
    iryseee
    Poziom 14  
    Posty: 160
    Pomógł: 1
    Ocena: 1
    Z tego co ja wiem to każdy kto ma kartę NFZ śląskiej kasy chorych posiada materiał do testowania.
    np. takie dane może każdy odczytać sobie:

    "
    Imie: ...............................................................
    Nazwisko: ...............................................................
    Nr. Seryjny karty: 0000000000
    Nr. Pesel: 000000000000
    Data urodzenia: 0000r. 00 mie. 00 dnia.
    ulica: ........................ Nr. domu:......... Nr. mieszkania:........
    Miasto: ........................
    "
    Mnie na początek to interesuje jak z karty sle4428 (NFZ) odczytać jej nr.
    Który z reguły jest nie powtarzalny. ( a na pewno te karty go posiadają)
    bo mam możliwość odczytu nr takich kart.
    Ale nie wiem ja się do tego zabrać nawet.
    U mię odczytać z tej karty całe 1024 bajty i nic więcej mi się na razie nie udało.
    Z resztą mam przeważnie mało czasu na testy (a tłumacz google tłumaczy pdf jak tłumaczy ). Co to te applet'y, APDU ATR?
    Prostym polskim językiem.
    Pozdrawiam
  • #15 10212462
    cebulonimbus
    Poziom 2  
    Posty: 4
    Applety to są generalnie takie mini aplikacyjki. W przypadku kart pełnią one funkcję czegoś a'la systemu operacyjnego. Java wypuściła taką technologię java card, dzięki której sam możesz sobie taki applecik napisać.
    Karty, które są w ogóle gdziekolwiek jakkolwiek używane muszą mieć coś w rodzaju takiego OS'u, dlatego że to w nim określone jest APDU (application protocol data unit), czyli zestaw komend dzięki którym możesz się z kartą komunikować i które Twoja karta rozumie.
    ATR zaś to jest jedna z tych komend APDU i to jest zwykły reset. Na ATR każda karta Ci odpowie jeśli nie jest uszkodzona.

    Jeśli chcesz zdobyć identyfikator karty, to musisz poszukać w apdu (czy gdzieś w sieci albo dokumentacji) jakiejś komendy, która zwróci Ci UID karty.
  • #16 10265426
    iryseee
    Poziom 14  
    Posty: 160
    Pomógł: 1
    Ocena: 1
    Wielkie dzięki za odpowiedź. Faktycznie musi być jakiś system bo karty NFZ nie mają tego nr. ID. Więc to nie takie proste ale dzięki. Ta od powieź wiele mi wyjaśniła
    , czas szukać w tym kierunku. Wesołych tak przy okazji. Pozdrawiam
  • #17 15476803
    MiLupo
    Poziom 12  
    Posty: 102
    Ocena: 18
    Temat stary i nieaktualny. Zamykam.

Podsumowanie tematu

✨ Dyskusja dotyczy kart chipowych SLE4428, stosowanych m.in. w systemach podobnych do kart Vitay na stacjach Orlenu. Karty SLE4428 produkowane są przez Infineon (w późniejszych postach pojawia się informacja o NXP jako producencie chipów). Układ posiada zabezpieczenie zapisu w postaci dwubajtowego PIN-u PSC, który można zmieniać, a po ośmiu nieudanych próbach logowania karta przechodzi w tryb tylko do odczytu. Programowanie kart wymaga znajomości protokołu komunikacyjnego, który jest częściowo tajny i dostępny tylko po podpisaniu umowy NDA z producentem. Możliwe jest samodzielne wykonanie programatora i czytnika, np. na mikrokontrolerach AT89C2051 lub Atmel, jednak wymaga to pisania własnego oprogramowania. Do zapisu i odczytu danych stosuje się komendy APDU, jednak ich prawidłowe użycie bywa problematyczne, zwłaszcza bez dostępu do kluczy transportowych i oprogramowania middleware. Nowe, "czyste" karty nie posiadają systemu operacyjnego (appletu), co uniemożliwia komunikację bez wcześniejszej instalacji oprogramowania, do czego potrzebne są klucze transportowe. Karty używane, np. z NFZ, mają już zainstalowany applet i umożliwiają odczyt danych, takich jak imię, nazwisko czy numer seryjny, choć odczyt UID może wymagać specjalnych komend APDU. W dyskusji pojawiły się także przykłady programów do wysyłania komend APDU (SkyCard, ApduExchange, Smart Card ToolSet PRO) oraz linki do dokumentacji i sklepów z kartami. Ostatecznie temat uznano za stary i nieaktualny, a dalsze działania wymagają zaawansowanej wiedzy i dostępu do kluczy producenta.
Wygenerowane przez model językowy.
REKLAMA