UID สำหรับการควบคุมการเข้าถึง

ฉันใช้ Mifare Ultralight C เพื่อสร้างระบบควบคุมการเข้าออก วิธีที่ฉันใช้นั้นขึ้นอยู่กับ UID ของการ์ด ฉันสามารถอ่าน UID ได้ด้วยเครื่องอ่าน NFC (ตัวป้องกัน SeeedStudio บน Arduino UNO) อย่างไรก็ตาม UID นั้นไม่น่าเชื่อถือเนื่องจากมีการ์ด UID ที่เขียนได้ในตลาด ดังนั้นฉันคิดว่าฉันควรรักษาความปลอดภัยการเชื่อมต่อด้วยการตรวจสอบสิทธิ์ 3DES จากนั้นบล็อกการอ่านจาก 0x00 ซึ่งมาจากไบต์หมายเลขซีเรียลแรก มันเป็นวิธีที่ถูกต้องในการใช้การควบคุมการเข้าถึงหรือไม่?


person Bao Doan    schedule 06.01.2014    source แหล่งที่มา


คำตอบ (1)


คุณไม่สามารถบล็อกการเข้าถึงการอ่าน UID ได้ UID เป็นส่วนหนึ่งของขั้นตอนการแจงนับ anticollision/tag ของ ISO 14443 ดังนั้นแท็กจะเปิดเผยข้อมูลนั้นเสมอ ยิ่งไปกว่านั้น Ultralight C ยังอนุญาตให้มีการป้องกันการอ่าน/เขียนตั้งแต่หน้า 3 ไปจนถึงส่วนท้ายของหน่วยความจำเท่านั้น

สิ่งที่คุณสามารถทำได้มีดังต่อไปนี้:

  1. ใช้ UID เพื่อระบุแท็ก
  2. รับคีย์เฉพาะแท็กตามคีย์หลักและ UID ของแท็ก

    Kแท็ก = fkey_derivation(UIDแท็ก, Kต้นแบบ)

  3. ใช้คีย์ Kแท็ก นั้นเป็นคีย์ 3DES สำหรับการตรวจสอบสิทธิ์ Ultralight C

  4. ปกป้อง (อ่านและเขียน) หน่วยความจำข้อมูลทั้งหมดของแท็ก
  5. อาจจัดเก็บข้อมูลการตรวจสอบสิทธิ์เพิ่มเติมบางอย่างไว้บนแท็ก (เช่น ลายเซ็นบน UID) อย่างไรก็ตาม คุณควรจำไว้ว่าหลังจากการตรวจสอบความถูกต้องแล้ว การดำเนินการอ่านจะไม่ได้รับการเข้ารหัสหรือการป้องกันความสมบูรณ์ ซึ่งหมายความว่าผู้โจมตีอาจดึงข้อมูลที่จัดเก็บไว้ในแท็กได้โดยการรับฟังการสื่อสารระหว่างแท็ก Legit และโปรแกรมอ่าน Legit ยิ่งไปกว่านั้น ผู้โจมตีอาจสามารถตรวจสอบสิทธิ์ด้วยแท็ก Legit แล้วสกัดกั้นคำสั่งอ่านเพิ่มเติมเพื่อส่งคืนข้อมูลที่จัดการ โดยพื้นฐานแล้วหมายความว่าคุณควรละเว้นจากการจัดเก็บข้อมูลการอนุญาตที่ไม่มีการป้องกันความสมบูรณ์บนแท็กดังกล่าว

และสุดท้าย: MIFARE Ultralight C ไม่ได้มีไว้สำหรับการควบคุมการเข้าถึงอย่างแน่นอน!

person Michael Roland    schedule 07.01.2014
comment
ดังนั้นฉันควรทำเช่นนี้: ผู้อ่าน: อ่าน UID จากนั้นคำนวณด้วย Kmaster ที่รู้จักเพื่อจัดเตรียม Ktag หลังจากนั้นใช้ Ktag นั้นเพื่อตรวจสอบสิทธิ์กับ Ultralight C หากได้รับการรับรองความถูกต้อง =› ให้การเข้าถึง Ultralight C: เขียน Kmaster ของฉันเอง (แชร์กับผู้อ่าน) ลงในแท็ก จากนั้นปกป้องข้อมูลทั้งหมดเพื่อไม่ให้ผู้อ่านรายอื่นอ่าน ฉันเข้าใจถูกต้องหรือไม่? คำถามเกี่ยวกับ 3DES: แล้วฟังก์ชัน 3DES ในแท็กคืออะไร มันทำให้เรามีช่องสำหรับเก็บกุญแจ 3 ดอกได้เพียงพออย่างที่ฉันเข้าใจหรือเปล่า? และอีก 1 อย่างในแผ่นข้อมูล เรามี 16 ไบต์สำหรับจัดเก็บ 2 คีย์ (8 ไบต์/อัน) ตอนนี้ฉันสับสนเกี่ยวกับเรื่องนี้ - person Bao Doan; 09.01.2014
comment
ตอนนี้ฉันขอถามคำถามอีกข้อ: แท็กสามารถตรวจสอบสิทธิ์กับ Ktag ที่เราคำนวณได้อย่างไร มันมีฟังก์ชันในการค้นหา Ktag นั้นโดยอัตโนมัติหรือไม่? - person Bao Doan; 09.01.2014
comment
ขอบคุณล่วงหน้า คุณคือผู้ช่วยชีวิตของฉันตั้งแต่ฉันหลงทางในเรื่องนี้มาสักพักแล้ว :) - person Bao Doan; 09.01.2014
comment
K_tag กับ K_master: ไม่ คุณจะต้องดำเนินการรับคีย์เดียวกันเมื่อปรับแต่งแท็กให้เป็นแบบส่วนบุคคล (เช่น เมื่อเริ่มเขียนคีย์ลงในแท็ก) ดังนั้น แต่ละแท็กของคุณจึงมีคีย์ที่ได้รับมาจริงๆ และไม่ใช่คีย์หลัก - person Michael Roland; 09.01.2014
comment
โดยพื้นฐานแล้ว 3DES เป็นการต่อกันของการดำเนินการ DES สามรายการ: ENC_3DES(x) = ENC_DES(DEC_DES(ENC_DES(x, K_1), K_2), K_3) (สำหรับการถอดรหัส 3DES การดำเนินการเข้ารหัสและถอดรหัส DES นั้นเป็นอีกทางหนึ่ง) มีสองเวอร์ชัน (หนึ่งเวอร์ชันมีความปลอดภัยน้อยกว่าและอีกเวอร์ชันปลอดภัยกว่า): 3DES แบบ 2 คีย์และ 3DES 3 คีย์ ใน 3DES แบบ 3 คีย์ K_1 != K_2 != K_3 ใน 3DES K_1 != K_2 และ K_3 = K_1 แบบ 2 คีย์ Ultralight C ใช้ 3DES แบบ 2 คีย์ ดังนั้นคีย์ 64 บิต 2 คีย์ (จริงๆ แล้วมีเพียง 56 บิตที่มีพาริตีบิตบางส่วน) คือ K_1 และ K_2 โดยที่ K_1 ใช้สำหรับการดำเนินการเข้ารหัส DES ทั้งสองรายการ และ K_2 ใช้สำหรับการดำเนินการถอดรหัส DES - person Michael Roland; 09.01.2014
comment
สวัสดี ขอบคุณสำหรับการตอบกลับอย่างรวดเร็ว :) ยิ่งไปกว่านั้น ผู้โจมตีอาจสามารถตรวจสอบสิทธิ์ด้วยแท็ก Legit แล้วสกัดกั้นคำสั่งอ่านเพิ่มเติมเพื่อส่งคืนข้อมูลที่ถูกจัดการ คุณหมายถึงวิธีการเช่น brute-force เพื่อลองใช้คีย์ Ktag ที่แตกต่างกันมากมายเพื่อ ตรวจสอบสิทธิ์กับแท็กของเราหรือไม่ - person Bao Doan; 10.01.2014
comment
เนื่องจากนี่คือ NFC ฉันตั้งใจที่จะติดตั้งแบบเดียวกันนี้กับโทรศัพท์ที่เปิดใช้งาน NFC แต่โทรศัพท์ไม่มี UID เฉพาะ คุณช่วยให้คำแนะนำหน่อยได้ไหม - person Bao Doan; 10.01.2014
comment
คุณหมายถึงโทรศัพท์มาแทนที่แท็กหรือใช้โทรศัพท์เพื่อตรวจสอบแท็ก - person Michael Roland; 10.01.2014
comment
ไม่ ด้วยข้อความนั้น ฉันหมายความว่าคุณไม่ควรเชื่อถือข้อมูลใดๆ ที่คุณอ่านจากแท็กที่คาดว่าเป็นของแท้ แม้ว่าจะผ่านการตรวจสอบสิทธิ์แล้วก็ตาม - person Michael Roland; 10.01.2014
comment
ฉันยังไม่ค่อยเข้าใจสิ่งที่คุณพูดถึง :) และฉันคิดว่าระยะของ NFC นั้นเล็กมาก (ประมาณ 4 ถึง 10 ซม.) ดังนั้นโอกาสในการสกัดกั้นก็น้อยเช่นกัน ใช่ไหม? คุณมีข้อเสนอแนะเกี่ยวกับวิธีการใช้การควบคุมการเข้าถึงหรือไม่? - person Bao Doan; 10.01.2014
comment
ใช่ โทรศัพท์จะแทนที่แท็ก ฉันหมายถึงว่าเราสามารถใช้โทรศัพท์เพื่อเข้าถึงได้ :) - person Bao Doan; 10.01.2014
comment
อืม นั่นมันไม่ง่ายขนาดนั้น ขึ้นอยู่กับรุ่นโทรศัพท์และระบบปฏิบัติการ ฉันขอแนะนำให้คุณดูการจำลองการ์ดโฮสต์ (การจำลองซอฟต์แวร์ cand) ในการใช้สแต็กโปรโตคอลแบบเพียร์ทูเพียร์ (+ LLCP + SNEP) หรือการใช้โหมดตัวอ่านผกผัน (หากคุณ แผงป้องกันเครื่องอ่าน NFC ใช้ PN532 ฉันจะบอกว่านั่นเป็นตัวเลือกที่ง่ายที่สุด) อย่างไรก็ตาม การสนทนาดังกล่าวอยู่ไกลเกินกว่าคำถามเบื้องต้นในตอนนี้ - person Michael Roland; 10.01.2014
comment
สำหรับผู้โจมตี ฉันค่อนข้างคิดถึงผู้โจมตีที่เป็นเจ้าของโทเค็นการเข้าถึงที่ถูกต้อง ตอนนี้ถ้าโทเค็น (ในหน่วยความจำข้อมูล) เข้ารหัสการอนุญาต (เช่น คุณมีประตูสองบานและทั้งสองใช้คีย์หลักเดียวกันเพื่อรับคีย์แท็ก และหน่วยความจำข้อมูลมีแฟล็กที่บ่งชี้ให้ผู้อ่านทราบว่าประตูใดในสองประตูนั้นควรจะเป็น เพื่อปลดล็อค) จากนั้นผู้โจมตีสามารถดำเนินการขั้นตอนการรับรองความถูกต้องด้วยแท็กของแท้และเปลี่ยนเส้นทางการสื่อสารเพิ่มเติมทั้งหมดไปยังแท็กที่มีธงที่เหมาะสมเพื่อปลดล็อคประตูใดก็ได้ที่พวกเขาต้องการ (แม้ว่าแท็กของแท้จะไม่มีธงการอนุญาตเหล่านั้นก็ตาม) - person Michael Roland; 10.01.2014
comment
ผมตั้งใจว่าจะนำสิ่งนี้ไปใช้กับระบบป้องกันการโจรกรรม (เพื่อขับมอเตอร์ไซค์คันเดียว) เพื่อให้เราสามารถใช้ป้ายของแท้ได้หลายป้าย แต่เปิดหรือขับเพียงระบบเดียวเท่านั้น (มอเตอร์ไซค์คันเดียว) จากนั้น ฉันไม่คิดว่าการเข้าถึงเพื่อขับคันอื่นๆ เพิ่มเติม (เช่น ประตู 2 บานตามตัวอย่างของคุณ) จะเป็นปัญหา - person Bao Doan; 10.01.2014
comment
เกี่ยวกับการใช้งานโทรศัพท์: ใช่ โล่ของฉันใช้ PN532 แล้วฉันจะใช้งานได้อย่างไร เนื่องจากมันจะเป็นขั้นตอนต่อไปในความคืบหน้าของฉันหลังจากเสร็จสิ้นการใช้แท็ก - person Bao Doan; 10.01.2014
comment
อย่างที่ฉันเขียนก่อนใช้โทรศัพท์นั้นอยู่ไกลเกินกว่าคำถามเริ่มแรกของคุณ ฉันได้ให้คำค้นหาที่เป็นประโยชน์แก่คุณแล้วเพื่อเริ่มต้นใช้งาน - person Michael Roland; 10.01.2014
comment
แล้วการที่ผมขับมอเตอร์ไซค์คันหนึ่งตามที่ผมบอกไป คิดว่าระบบรักษาความปลอดภัยโอเคไหม? มีใครสามารถเข้าถึงระบบได้หรือไม่? เราสามารถนำสิ่งที่จะเกิดขึ้นทุกครั้งที่มีการสื่อสารระหว่างเครื่องอ่านการ์ดและแท็กเพื่อให้ข้อมูลอยู่ในช่วงเวลานั้นเท่านั้นได้หรือไม่ ตัวอย่างเช่น สร้างความท้าทายแบบสุ่มและรับการตอบกลับที่สอดคล้องกัน - person Bao Doan; 11.01.2014
comment
สวัสดี เกี่ยวกับโทรศัพท์ คุณช่วยตอบฉันหน่อยได้ไหมว่าจะใช้วิธีใดในการจำลองการ์ดเมื่อฉันใช้โทรศัพท์ เช่น Nexus 5 ที่ใช้ Android Kitkat 4.4 หรือใช้แท็บเล็ต Nexus 7 ที่ใช้ Android Kitkat 4.4 - person Bao Doan; 15.01.2014
comment
และสำหรับโทรศัพท์ที่รองรับองค์ประกอบความปลอดภัย ฉันจะใช้วิธีใด - person Bao Doan; 15.01.2014
comment
สวัสดี ฉันไม่ค่อยชัดเจนเกี่ยวกับการรับรองความถูกต้องของ 3DES อย่างที่คุณบอกว่าฉันต้องได้รับ Ktag ดังนั้น Ktag นี้จึงได้มาจากการใช้ 3DES หรือไม่ และหากนี่คือการใช้ 3DES ฉันจะเก็บ Ktag ไว้บน Ultralight C ได้ที่ไหน ตั้งแต่ 0x2C ถึง 0x2F ที่เก็บข้อมูลของคีย์อยู่ที่ไหน และสิ่งที่รองรับของ 3DES บน Ultralight C คือความสามารถในการจัดเก็บ Ktag หรือมีฮาร์ดแวร์/เอ็นจิ้นสำหรับเข้ารหัส/ถอดรหัส Ktag หรือ Kmaster ฉันรู้สึกสับสนเล็กน้อย - person Bao Doan; 15.01.2014
comment
Android 4.4: การค้นหา Host Card Emulation ควรช่วยให้คุณเริ่มต้นได้ - person Michael Roland; 15.01.2014
comment
องค์ประกอบความปลอดภัย: เว้นแต่องค์ประกอบความปลอดภัยนั้นจะเป็นของคุณ (ซึ่งโดยทั่วไปจะไม่ใช่กรณีขององค์ประกอบความปลอดภัยแบบฝัง และ -- เว้นแต่คุณจะเป็นผู้ให้บริการเครือข่ายมือถือ -- ไม่ใช่สำหรับซิมการ์ด/UICC เช่นกัน) คุณจะไม่สามารถใช้องค์ประกอบดังกล่าวได้เนื่องจาก ไม่มีความสามารถในการติดตั้งแอปพลิเคชันของคุณลงไป - person Michael Roland; 15.01.2014
comment
การได้รับ Ktag: อ่านบทความนี้ เพื่อเริ่มต้น โดยทั่วไปคุณจะใช้ KDF ตามฟังก์ชันแฮชการเข้ารหัสปัจจุบัน - person Michael Roland; 15.01.2014
comment
การตรวจสอบสิทธิ์ 3DES กับ Ultralight C: รับเอกสารข้อมูล Ultralight C ฉบับเต็มจากผู้ขาย (ของ NXP) โปรดทราบว่าการดำเนินการนี้อาจต้องมี NDA - person Michael Roland; 15.01.2014
comment
3DES เป็น KDF หรือไม่ และ Ktag แต่ละตัวจะถูกเขียนลงในแต่ละแท็กที่เกี่ยวข้องใช่ไหม? - person Bao Doan; 15.01.2014
comment
3DES เพียงอย่างเดียวไม่เหมาะนักสำหรับ KDF (Google สำหรับ KDF และคุณควรหาอันที่เหมาะสมสักสองสามอัน!) ส่วนที่สองนั้นถูกต้อง Ktag แต่ละตัวจะต้องถูกเขียนลงในพื้นที่สำคัญของแท็กที่สอดคล้องในระหว่างขั้นตอนการตั้งค่าส่วนบุคคล - person Michael Roland; 15.01.2014
comment
สวัสดี สำหรับการใช้งานนี้ ฉันยังมีสิ่งหนึ่งที่สับสนว่าเราใช้ 3des บนเครื่องอ่านเพื่อสร้าง Ktag แล้วใช้คีย์นั้นในการตรวจสอบสิทธิ์ แล้วการถอดรหัสของ 3des จะถูกนำมาใช้ที่ไหน - person Bao Doan; 25.03.2014
comment
และถ้ามีใครพยายามโคลนแท็ก พวกเขาสามารถโคลน UID แล้วฟังการสื่อสารเพื่อรับ Ktag และเขียนลงในแท็กโคลน จากนั้นพวกเขาก็จะได้แท็กที่เหมือนกับแท็กจริง เราจะป้องกันได้อย่างไร - person Bao Doan; 25.03.2014
comment
หากคุณใช้ 3DES เพื่อสร้าง Ktag แสดงว่าคุณไม่ได้ใช้ Google สำหรับ KDF อย่างที่ฉันแนะนำ (ไม่เช่นนั้นคุณจะต้องเลือกฟังก์ชันแฮชทางเดียวบางรูปแบบอย่างชัดเจน) เนื่องจากคุณไม่ได้ส่ง Ktag ไปที่แท็กในระหว่างการตรวจสอบสิทธิ์ ผู้โจมตีจึงไม่สามารถแยกคีย์นั้นออกจากการสื่อสารนั้นได้อย่างง่ายดาย - person Michael Roland; 25.03.2014
comment
ฉันค้นหา KDF แล้ว แต่ยังสับสนอยู่ ในความคิดของฉัน KDF หรือ 3DES ใช้เพื่อสร้างคีย์ที่ซับซ้อนจากคีย์ที่เรียบง่ายกว่า ไม่ว่าจะด้วยวิธีใด เราจะได้ Ktag ที่ซับซ้อน และเราใช้ Ktag นั้นเพื่อเขียนลงในคีย์การรับรองความถูกต้องของแท็ก ดังนั้น แม้ว่า Ktag จะซับซ้อนแค่ไหน เมื่อเราสื่อสารเพื่อตรวจสอบความถูกต้อง มันก็เป็น Ktag ตัวจริง และถ้ามีใครพยายามปลอม UID ของแท็ก มันก็สามารถฟัง Ktag ที่เกี่ยวข้องจากเครื่องอ่านได้ และพวกเขาก็สามารถรับสิ่งนั้นได้ Ktag ไม่รู้ด้วยซ้ำว่าจะสร้างมันขึ้นมาได้อย่างไร ในที่สุดพวกเขาก็ปลอมแท็กอย่างสมบูรณ์ ฉันพลาดอะไรไปที่นี่หรือเปล่า? - person Bao Doan; 30.03.2014
comment
@BaoDoan ใช่ คุณขาดหลักการของข้อตกลงคีย์รับรองความถูกต้องด้วยรหัสผ่าน - person Michael Roland; 30.03.2014
comment
คุณช่วยอธิบายเพิ่มเติมได้ไหม เนื่องจากเอกสารฉบับเต็มสำหรับ Mifare Ultralight C จำเป็นต้องมี NDA จึงไม่ใช่เรื่องง่ายที่จะได้มา ดังนั้นฉันจึงเข้าใจผิดบางประเด็น - person Bao Doan; 30.03.2014
comment
สวัสดี คุณช่วยอธิบายสั้นๆ เกี่ยวกับการสื่อสารระหว่างอุปกรณ์ทั้งสองได้ไหม ฉันค้นหาไปรอบ ๆ มาระยะหนึ่งแล้ว แต่ก็ไม่เข้าใจว่าฉันขาดอะไรไป :( - person Bao Doan; 06.04.2014