ዝርዝር ሁኔታ:

Mifare Ultralight C ን በአርዲኖ ላይ ከ RC522 ጋር መጠቀም - 3 ደረጃዎች
Mifare Ultralight C ን በአርዲኖ ላይ ከ RC522 ጋር መጠቀም - 3 ደረጃዎች

ቪዲዮ: Mifare Ultralight C ን በአርዲኖ ላይ ከ RC522 ጋር መጠቀም - 3 ደረጃዎች

ቪዲዮ: Mifare Ultralight C ን በአርዲኖ ላይ ከ RC522 ጋር መጠቀም - 3 ደረጃዎች
ቪዲዮ: Mifare Ultralight operations - part1 2024, ሀምሌ
Anonim
Mifare Ultralight C ን በአርዲኖ ላይ ከ RC522 ጋር መጠቀም
Mifare Ultralight C ን በአርዲኖ ላይ ከ RC522 ጋር መጠቀም

የ RFID ቴክኖሎጂን በመጠቀም የካርድ ባለቤቶችን ለመለየት ወይም አንድ ነገር ለማድረግ ፈቃድ ለመስጠት (በርን ወዘተ ይክፈቱ) በጣም የተለመደ አቀራረብ ነው። በ DIY ትግበራ ሁኔታ RC522 ሞዱል በጣም ርካሽ ስለሆነ ለዚህ ሞጁል ብዙ ኮድ አለ።

በአብዛኛዎቹ ሁኔታዎች የካርዱ UID የካርድ መያዣውን “ለመለየት” የሚያገለግል ሲሆን ሚፋሬ ክላሲክ ካርዶች ርካሽ ስለሆኑ ብዙውን ጊዜ የ RC522 ሞዱል ሲገዙ ይካተታሉ።

ግን እርስዎ እንደሚያውቁት ፣ ሚፋሬ ክላሲክ ስርዓት ለተወሰኑ ዓመታት ተጠልፎ ቆይቷል እና ከአሁን በኋላ እንደ ደህንነቱ አይቆጠርም። በክላሲክ ካርዶች ጥቅም ላይ የዋለው የኢንክሪፕሽን ሲስተም Crypto1 ሊሸነፍ ይችላል እና አንድ ዩአይዲ ዳግመኛ (አስማታዊ ካርዶች) እንደገና ሊስተካከል የሚችልበት እንደገና ሊጽፉ የሚችሉ ካርዶች ናቸው።

ስለዚህ ለማንኛውም ደህንነት ተዛማጅ ትግበራ የ Mifare Classic ካርዶችን መጠቀም አይመከርም! ተመሳሳይ (ለአብዛኞቹ) NTAG እና Mifare Ultralight ስርዓቶች ይሠራል

ስለዚህ ምርጫው የባለሙያ ስርዓትን ለመጠቀም ወይም የበለጠ ደህንነቱ የተጠበቀ የ RFID ስርዓትን ለመጠቀም መሞከር ነው። የሚገኙ ስርዓቶች Mifare Ultralight C ፣ Mifare DESFire እና Mifare Plus ናቸው። እነዚህን የበለጠ ደህንነቱ የተጠበቀ ስርዓቶችን የሚጠቀሙ ብዙ ሙያዊ ሥርዓቶች ስላሉ ፣ ለ DIY ማህበረሰብ ማለት ይቻላል ምንም መፍትሄዎች የሉም (በጣም ውድ በሆነው PN523 የመለያ ሰሌዳ ላይ የተመሠረተ አንድ Teensy የተመሠረተ DESFire መፍትሄ አለ)። በተጨማሪም የ DESFire ካርዶች በጣም ውድ ናቸው። ስለዚህ ፈተናው የተሻለ እና ርካሽ መፍትሄ መፈለግ ነበር።

የቀረበው መፍትሔ ርካሽ የቻይናን RC522 DIY ሞጁሉን በመጠቀም ርካሽ የሆነውን የ Mifare Ultralight “C” ካርዶችን ሙሉ መዳረሻን ይሰጣል። በዚህ ኮድ ላይ በመመስረት ደህንነቱ የተጠበቀ ሚፋሬ Ultralight C በ DIY መተግበሪያዎች ውስጥ ሊያገለግል ይችላል።

ደረጃ 1 ቅድመ -ሁኔታዎች

ቅድመ ሁኔታዎች
ቅድመ ሁኔታዎች

ምንም እንኳን RC522 በጥሩ ሁኔታ የተነደፈ ቢሆንም ፣ አንዳንድ ክፍሎች በደንብ ስላልሆኑ በአብዛኛዎቹ ሁኔታዎች ደካማ በሆነ ሁኔታ ይገነባሉ። ይህ ወደ ዝቅተኛ ሞጁል መጥፎ ስም ይመራዋል እና ሁሉም ዓይነት ካርዶች አይታወቁም። በተለይ የ Mifare Ultralight C ተለይቶ አይታወቅም ወይም ካርዶቹን ማንበብ አይቻልም።

ዋናው ችግር የኢንደክተሮች L1 እና L2 ዝርዝር መግለጫ ነው። በ https://ham.marsik.org/2017/04/using-cheap-rc522-nfc-reader-to-read.html ላይ እንደተገለጸው። ልክ እነዚህን ኢንደክተሮች ወደ ተገቢ ሰዎች ለምሳሌ በመተካት FERROCORE CW1008-2200 በድንገት RC522 እውነተኛ አቅሙ ምን እንደ ሆነ ያሳያል።

ስለዚህ የተሰጠውን ኮድ ከመሞከርዎ በፊት ኢንዶክተሮችን መተካት አለብዎት። እሱ አስቀድሞ ከተጫነው ኢንደክተሮች ጋር አይሰራም!

የዚህ ሁሉ ዳራ የ “Ultralight C” ካርዶች በጣም ኃይል የተራቡ መሆናቸው ነው። ይህ ኃይል በ RC522 RF- መስክ ይሰጣል። በኢንደክተሮች ዝቅተኛ ስፋት ምክንያት ፣ የኃይል መስኩ Ultralight C. ን እንደ Mifare Classic ያሉ ሌሎች ካርዶች አነስተኛ ኃይልን ይፈልጋሉ እና ስለሆነም በጣም የተረጋጉ እንዲሆኑ ለማድረግ በቂ ኃይል የለውም።

ደረጃ 2 - እንዴት ይሠራል?

እንዴት ነው የሚሰራው?
እንዴት ነው የሚሰራው?
እንዴት ነው የሚሰራው?
እንዴት ነው የሚሰራው?
እንዴት ነው የሚሰራው?
እንዴት ነው የሚሰራው?
እንዴት ነው የሚሰራው?
እንዴት ነው የሚሰራው?

ስለዚህ የ RC522 ሞዱሉን ካሻሻሉ በኋላ ፣ ለማመልከቻዎ ሚፋሬ ኡልራልት ሲን እንዴት መጠቀም ይችላሉ?

ዘዴው ፣ Mifare Ultralight C በ 3DES cipher ላይ የተመሠረተ የይለፍ ቃል ማረጋገጫ ይደግፋል። ይህንን የይለፍ ቃል በመጠቀም የካርዱ ይዘት “ያልተነበበ ብቻ” ወይም ላልተፈቀደለት ተጠቃሚ ሙሉ በሙሉ የማይታይ ሊሆን ይችላል።

ይህንን የይለፍ ቃል ጥበቃ ለመጠቀም የይለፍ ቃሉ ወደ ካርዱ መፃፍ እና ገጾቹን መጠበቅ ያስፈልጋል። አንዴ ከጨረሱ ፣ በይለፍ ቃል ላይ የተመሠረተ ማረጋገጫ ወይም በተጨማሪ ከተጠበቀው አካባቢ ዝግጁ መረጃ በመጠየቅ በማመልከቻዎ ውስጥ ያለውን ካርድ ማረጋገጥ ይችላሉ። የቀረበው UID በካርዱ ላይ እምነት መጣል እንደሚችሉ ማወቅ የሚችሉት ይህ ከተሳካ ብቻ ነው።

ይጠንቀቁ -በይለፍ ቃል ላይ የተመሠረተ ማረጋገጫ ከሌለ “አስማታዊ ካርዶች” እንዲሁም “Ultralight C” ን የሚያስመስሉ ስለሆኑ አሁንም በ Mifare Ultralight C ካርድ ላይ መታመን አይችሉም።

ከቴክኖሎጂው ነፃ የሆነ እያንዳንዱ ካርድ (በትክክለኛው ድግግሞሽ ውስጥ ከሆነ) በ RF- መስክ ሲበራ በእራሳቸው UID ምላሽ ይሰጣሉ እና እራሳቸውን እንዲለዩ ይጠይቃሉ። በተጨማሪም ስለ ካርዱ ዓይነት አነስተኛ መረጃን የሚሰጥ የ SAK እሴት ይሰጣሉ። እንደ አለመታደል ሆኖ ሁሉም Mifare Ultralight እና NTAG እንደ ሲም ዓይነት (SAK = 0x00) ፣ Mifare Ultralight C. ን ጨምሮ ለካርዶች በሚመርጡበት ጊዜ ቢያንስ የ 0x00 SAK እሴት በአንባቢው ላይ Ultralight C ሊኖር እንደሚችል ፍንጭ ይሰጣል።.

እሱ Ultralight C መሆኑን ለማረጋገጥ ኢንክሪፕት የተደረገ የማረጋገጫ ጥያቄ ወደ ካርዱ ሊላክ ይችላል። ይህ የ Ultralight C ካርድ ካልሆነ ፣ ይህ ጥያቄ አይረዳም ፣ እና ምላሹ NAK (not-acknolege) ይሆናል።

ይህ የ Ulralight C ካርድ ከሆነ 8 ባይት መልስ ያገኛሉ። እነዚህ 8 ባይቶች 3DES cipher ን በመጠቀም በካርዱ ላይ ባለው የተከማቸ ቁልፍ የተመሰጠረ የዘፈቀደ ቁጥር “ለ” (RndB) ናቸው።

ይህ የተመሰጠረ RndB በፕሮግራሙ ውስጥ ተመሳሳይ ቁልፍ በመጠቀም ዲክሪፕት መደረግ አለበት። ይህ የዘፈቀደ ቁጥር በትንሹ ተስተካክሏል (በአንድ ባይት ated ባይት 1 ወደ ባይት 8 ይዛወራል እና ሁሉም ሌሎች ባይቶች አንድ ባይት ዝቅ ብለው ይገፋሉ ፣ ከዚያ RndB’ይባላሉ)። ከዚያ ፕሮግራሙ 8 ባይት የዘፈቀደ ቁጥር “ሀ” እራሱ (RndA) ያመነጫል እና ይህንን RndA ከተሻሻለው RndB’ጋር ያያይዘዋል። ይህ ቁልፉን በመጠቀም እንደገና የተመሰጠረ እና ወደ ካርዱ ይላካል።

ካርዱ መልዕክቱን ዲክሪፕት ያደርጋል እና RndB 'በካርዱ ላይ ቀደም ሲል ከተፈጠረው RndB ጋር የሚስማማ መሆኑን ይፈትሻል። እነሱ የሚዛመዱ ከሆነ ካርዱ አሁን ያውቃል ፣ ፕሮግራሙ ቁልፉን ያውቃል።

በዚህ ጊዜ ካርዱ ቁልፉን ያውቃል እና ስለዚህ ሊታመን ወይም ሊታመን ይችል እንደሆነ ፕሮግራሙ አሁንም አያውቅም። ይህንን ለማሳካት ካርዱ አሁን ዲክሪፕት የተደረገውን RndA ን በአንድ ባይት ያሽከረክራል ፣ ከዚያ ቁልፉን ተጠቅመው እነዚህን ባይት ኢንክሪፕት በማድረግ መልሰው ይልኳቸዋል።

ከዚያ ፕሮግራሙ የካርዱን መልስ ዲክሪፕት ያደርጋል እና የመጀመሪያውን RndA እና የተመለሰው የ RndA ግጥሚያ ካለ ይፈትሻል። ከዚያ ሁለቱም አካላት (ፕሮግራም እና ካርድ) የአንድ ቁልፍን ዕውቀት እንደሚካፈሉ ያውቃሉ።

ይህ ሂደት ለማረጋገጥ ብቻ ጥቅም ላይ ይውላል። ሁሉም ተጨማሪ መግባባት ሁል ጊዜ በ “ግልፅ ጽሑፍ” ውስጥ ነው።

ምንም እንኳን ዩአይዲ ሊቀየር የሚችልበት “አስማት Ultralight C” ካርዶች ቢኖሩም ፣ ቁልፉ ራሱ ከካርዱ ሊገኝ አይችልም እና የ 3DES cipher በትክክል ደህንነቱ የተጠበቀ ነው። ቁልፉ 16 ባይት ቁልፍ ነው ፣ ስለዚህ ቁልፉን ለማግኘት ጠንከር ያለ የኃይል አቀራረብ የተወሰነ ጊዜ ይወስዳል።

እንደተገለፀው ፣ ከማረጋገጡ በፊት እና ከመረጋገጡ በፊት ያለው ግንኙነት ሁል ጊዜ በግልፅ ጽሑፍ ውስጥ ነው (aka አልተመሰጠረም)። ለካርዱ አዲስ ቁልፍ በሚጽፉበት ጊዜ የቁልፍ ይዘቱ ትክክለኛውን መሣሪያ በመጠቀም ማሽተት ይችላል። ስለዚህ እባክዎን ቁልፉን ደህንነቱ በተጠበቀ አካባቢ ውስጥ ብቻ ይፃፉ እና ቁልፉን በሚስጥር ይያዙ።

የ Ultralight C ካርድን ሲጠቀሙ

የ Ultralight C ካርድ በርካታ የደህንነት ባህሪዎች ተገንብተዋል-

  1. የአንድ ጊዜ ፕሮግራም (ኦቲፒ) ማህደረ ትውስታ። በዚህ አካባቢ ቢት ሊፃፍ ይችላል ፣ አውቶቡስ አልተሰረዘም።
  2. ባለ 16 ቢት በአንድ መንገድ ቆጣሪ። ይህ ቆጣሪ ሊጨምር በሚችልበት ጊዜ ብቻ ሊጨምር ይችላል።
  3. በማስታወሻ ውስጥ ያሉ ገጾችን “ይፃፉ” ወይም “ያንብቡ/ይፃፉ” ጥበቃ። በቁልፍ ከተረጋገጠ ብቻ ፣ እነዚህ ገጾች ሊነበቡ ወይም ሊቀየሩ ይችላሉ።
  4. ከማንኛውም ማሻሻያ ለመከላከል የግለሰብ ገጾችን ማቀዝቀዝ / ማገድ።

የኦቲፒ ፣ የ 16 ቢት ቆጣሪም ሆነ የማገጃ ቢቱ አጠቃቀም በተሰጠው ኮድ ውስጥ አይተገበሩም ፣ ግን በ https://www.nxp.com/docs/en/data- ውስጥ በተሰጠው መረጃ መሠረት በቀላሉ ሊተገበር ይችላል። ሉህ/MF0ICU2.pd…

Mifare Ultralight C ን ለመጠቀም በቁልፍ ጥበቃ አስፈላጊ እንደመሆኑ ሁሉም ተዛማጅ ተግባራት አሉ።

ሁሉም ትዕዛዞች በተከታታይ ማሳያ ውስጥ በ “አዲስ መስመር ብቻ” እና ከ 115200 ባውድ ጋር ያገለግላሉ

  • “Auth 49454D4B41455242214E4143554F5946” በተሰጠው ቁልፍ ማረጋገጫ ይጠይቃል (በዚህ ሁኔታ መደበኛው Mifare Ultralight C ቁልፍ)
  • “መጣል” እስከሚታዩ ድረስ የካርዱን ይዘት ይጥላል። ገጾች በቁልፍ ከተጠበቁ ፣ ከቁልፍ ጋር ቀዳሚ ማረጋገጫ እስኪያገኝ ድረስ እነዚህ ገጾች ላይታዩ ይችላሉ። በመጀመሪያዎቹ ሁለት ዓምዶች ውስጥ ገጾች ተቆልፈው ከሆነ ወይም መዳረሻ ከተገደበ ይጠቁማል።
  • “NewKey 49454D4B41455242214E4143554F5946” ለካርዱ አዲስ ቁልፍ ይጽፋል። ቁልፉ ወደ ገጾች ከ 44 እስከ 47 የተፃፈ ነው። ይህ የሚሠራው ፣ እነዚህ ገጾች ያለ ቀዳሚው ማረጋገጫ ካልተቆለፉ ወይም ካልተጠበቁ።
  • “wchar 10 hello world” ከገፅ 10 ጀምሮ “ሠላም ዓለም” ይጽፋል ፣ እንደገና ፣ ይህ የገጾቹ ሥራዎች ብቻ ያለ ቀዳሚ ማረጋገጫ አልተቆለፉም ወይም ጥበቃ አይደረግባቸውም። ከገፅ 39 በላይ ወይም ከገጽ 4 በታች ለመጻፍ ሲሞክሩ ይህ ጥያቄ ይጠይቃል። እነዚህ ገጾች የተጠቃሚ ማህደረ ትውስታ ስላልሆኑ ስህተት ወይም ውሂብ ችላ ተብለዋል።
  • “Whex 045ACBF44688” የሄክስ እሴቶችን በቀጥታ ወደ ማህደረ ትውስታ ይጽፋል ፣ የቀደሙ ሁኔታዎች ይተገበራሉ።
  • “ጥበቃ 30” ሁሉንም ገጾች ከገጽ 30 ወደላይ ይጠብቃል። በፈቃዱ ላይ በመመስረት ፣ እነዚህ ገጾች ሊለወጡ ወይም ሊነበብ የሚችሉት ቀደም ሲል በቁልፍ ከተረጋገጠ በኋላ ብቻ ነው። ከ 47 በላይ በሆኑ እሴቶች “ጥበቃ” መጠቀም ሁሉንም ገጾች በገጽ 44-47 (ቁልፉ ብቻ ሊለወጥ የሚችል ግን የማይነበብ) ቁልፍን ያካተተ ወደ “ጥበቃ ያልተደረገ” ያደርገዋል። ቁልፉን እንዳይቀይር ለመከላከል ጥበቃው ቢያንስ ከገጽ 44 መጀመር አለበት።
  • “Setpbit 0” የጥበቃ ቢት ያዘጋጃል እና የተጠበቁ ገጾች ተነባቢ ብቻ (“setpbit 1”) ወይም ያለ ቁልፍ ማረጋገጫ (“setpbit 0”) ሊነበቡ እንደማይችሉ ይወስናል።

ካርዱ ከተገኘ በኋላ ሁሉም ትዕዛዞች ወዲያውኑ ጥቅም ላይ ሊውሉ አይችሉም። ቀደም ሲል ወደ ሌላ ትእዛዝ “መጣያ” ሁል ጊዜ ይረዳል።

ደረጃ 3: አስፈላጊ

  1. ፕሮግራሙ ገጽ 43 ን እና 44 ን በማንበብ በ Ultralight ዓይነቶች መካከል ይለያል። ገጽ 43 የሚነበብ ከሆነ እና ገጽ 44 የማይሆን ከሆነ ፣ እሱ ምናልባት Ultralight ሐ ነው ፣ ግን ካነበቡ/ከጻፉ ገጽ 43 ን ይጠብቁ ካርዱ እንደአሁን አይታወቅም Ultralight C (በምንም ነገር ላይ ምንም ተጽዕኖ የለውም) የ Ultralight ትክክለኛ መታወቂያ በቁልፍ (በማረጋጊያ ምክንያቶች ምክንያት ያንን አላደረግኩም)።
  2. “Setpbit” እና “ጥበቃ” ትዕዛዞችን ከመጠቀምዎ በፊት “መጣል” የሚለው ትእዛዝ ጥቅም ላይ መዋል አለበት ፣ አለበለዚያ የገጾቹ ጥበቃ ሁኔታ አይታወቅም።
  3. የካርድዎን የመጀመሪያ ገጾች “ካነበቡ/ከጻፉ” አሁንም አንድ ካርድ መኖሩን ለማየት የመጀመሪያው ገጽ በቋሚነት ስለሚነበብ ከዚህ ፕሮግራም ጋር ከእንግዲህ አይሰራም። የመጀመሪያዎቹ ሁለት ገጾች ለማንኛውም ብቻ እንደሚነበቡ (UID እዚያ ተከማችቷል) ፣ እነሱን ለመጠበቅ ምንም ስሜት የለም።

የመረጋጋት ጉዳዮች።

ይህ ኮድ ለአርዱዲኖ “መደበኛ” RC522 ቤተ -መጽሐፍትን እና የ 3DES ቤተ -መጽሐፍትን ከ https://github.com/Octoate/ArduinoDES ይጠቀማል። የ RC522 ቤተ -መጽሐፍት በተለምዶ ጥቅም ላይ የሚውል ቢሆንም ፣ የ 3DES ቤተ -መጽሐፍት በጣም የተስፋፋ አይመስልም እና በእጅ መጫን አለበት።

ኮዱ በአርዱዲኖ ኡኖ ላይ ተፈትኗል። ነገር ግን እኔ እየጻፍኩ ሳለ ከመረጋጋት ጋር በተያያዘ ብዙ ያልተለመዱ ችግሮች አጋጥመውኛል። በሆነ መንገድ ወይም የፕሮግራም ችሎቶቼ ያን ያህል ጥሩ አይደሉም ፣ ያገለገሉ ቤተመፃህፍት አንዱ ያልተረጋጉ ወይም ቤተመፃህፍቱን መቀላቀል ጥሩ ሀሳብ አይደለም።

እባክዎን ኮዱን ሲጠቀሙ ይህንን ልብ ይበሉ !!!

እሱን መለወጥ ወይም የእሱን ክፍሎች ብቻ መጠቀም ከካርዱ በሚያነቡበት ጊዜ እንደ ብልሽት ፣ እንግዳ ነገሮችን ማተም ወይም የእረፍት ጊዜያትን ወይም NAK ን ወደ እንግዳ ባህሪ ሊያመራ ይችላል። ይህ በኮዱ ውስጥ በማንኛውም ቦታ ላይ ሊከሰት ይችላል (ብዙ ሰዓታት ማረም አስፈልጎኛል)። ለዚህ ምክንያት (ቶች) ካገኙ እባክዎን ፍንጭ ይስጡኝ።

የሚመከር: