รหัสรักษาความปลอดภัยบน AVR / Arduino และส่งมอบการปรับปรุง


9
  1. วิธีที่ดีที่สุดในการป้องกันโค้ดที่กระพริบลงบนอุปกรณ์ AVR ที่ใช้จากวิศวกรรมย้อนกลับคืออะไร?
  2. วิธีง่ายๆในการให้การอัปเดตแก่ผู้ใช้ปลายทางเพื่อกระพริบด้วยตนเองโดยไม่เปิดเผยรหัสคืออะไร (มันเป็น bootloader ที่ถอดรหัสภาพที่เข้ารหัสหรือไม่)

อย่าจุดประกายให้ฉันสำหรับการโปรโมต DRM ฉันชอบแพลตฟอร์มแบบเปิด - ฉันแค่อยากรู้ว่ามันจะทำงานอย่างไร


อย่า นอกจากนี้ไม่มีทางที่จะสิ้นเชิงป้องกันความเป็นไปของบุคคลที่เป็นอันตรายวิศวกรรมย้อนกลับฮาร์ดแวร์ / ซอฟแวร์ของคุณ มาตรการ Anti-RE ทั้งหมดนั้นใช้เวลานานกว่าในการย้อนกลับ
Connor Wolf

คำตอบ:


9

ครั้งแรก:

มีฟิวส์อยู่บนชิปที่สามารถตั้งค่าเพื่อป้องกันไม่ให้เครื่องมือภายนอกอ่านโค้ดจากชิป ค้นหาฟิวส์ป้องกันในแผ่นข้อมูลและ / หรือเอกสารประกอบของโปรแกรมเมอร์

มันไม่ได้สมบูรณ์แบบ แต่ปกป้องคุณจากการโจมตีง่าย ๆ

ประการที่สอง:

คุณไม่สามารถดาวน์โหลดเฟิร์มแวร์ได้อย่างปลอดภัย AVR ไม่สามารถป้องกันพื้นที่ได้ด้วยตนเอง:

http://www.atmel.com/dyn/resources/prod_documents/doc1644.pdf

วิธีที่ดีที่สุดที่คุณสามารถทำได้คือการใช้ภาษาโทเค็นที่เข้ารหัส (เช่นพื้นฐานหรืออื่น ๆ ) และมีล่ามที่ได้รับการป้องกันบนชิปด้วย bootloader ที่สามารถตั้งค่าโทเค็นที่เข้ารหัสไว้ในพื้นที่เปิด เมื่อรันชิปจะถอดรหัสและดำเนินการตามคำแนะนำในทันที


3
ถ้าฟิวส์ไม่สมบูรณ์แบบ attact ชนิดใดที่สามารถข้ามได้

1
@Anonymous - การแกะสลักทางเคมีของชิปและใช้กล้องจุลทรรศน์อิเล็กตรอนเลเซอร์และไมโครโปรตรอนเพื่อดูเชื่อมต่อกับและแก้ไขซิลิคอน ค่าใช้จ่ายอย่างน้อย $ 500 แต่สามารถถูกกว่า stbra งานใด ๆ ที่ใส่ลงในอุปกรณ์
Kevin Vermeer

@KevinVermeer คุณหมายถึง $ 500 หรือเปล่า ดูเหมือนว่าฉันจะมีราคาแพงกว่านั้นมาก
NickHalden

อดัมมีข้อผิดพลาดดังนั้นฉันจึงลบความคิดเห็นของฉัน
hulkingtickets

3

หากเป็นสิ่งสำคัญและคุณกังวลอย่างยิ่งเกี่ยวกับคู่แข่งที่ขโมยรหัสของคุณให้ใช้การป้องกัน IP ในส่วนรหัสของคุณ คุณควรมองเข้าไปในสิ่งนี้หากคุณกำลังพยายามทำเงินจากโครงการอยู่ดี

องค์ประกอบของรหัสบางอย่างอาจเป็นสิทธิบัตร (สำหรับวิธีการประมวลผลเฉพาะและอัลกอริธึมนวนิยาย) หรือลงทะเบียนเป็นการออกแบบอุตสาหกรรม (รูปลักษณ์เค้าโครงและการใช้รหัสของคุณกับอุปกรณ์) คุณอาจต้องการปรึกษาทนายความด้าน IP เกี่ยวกับเรื่องนี้


1

หากคุณเขียน bootloader ของคุณเองซึ่งยอมรับข้อมูลที่เข้ารหัสผ่านพอร์ตอนุกรมถอดรหัสและเก็บไว้ในพื้นที่จัดเก็บรหัสคุณอาจมีการปรับปรุงเฟิร์มแวร์รหัสที่ปลอดภัย แต่ละอุปกรณ์สามารถมีคีย์ถอดรหัสของตัวเองใน bootloader ที่คุณกำหนดเองได้


1
ฉันคิดว่าสิ่งที่ @Adam Davis กำลังพูดอยู่คือถ้าคุณใช้ bootloader (แม้แต่คนที่คุณเขียน) จากนั้นคุณไม่สามารถตั้งโปรแกรมล็อคพื้นที่ป้องกันบิต ดังนั้นหากคุณเขียน bootloader ที่เข้ารหัสของคุณเองคุณจะไม่สามารถป้องกันไม่ให้ชิปอ่าน (ฉบับที่ 1) นั่นเป็นสิ่งที่ฉันได้รับจากลิงค์และแผ่นข้อมูล
Lou

หาก bootloader และรหัสถูกเข้ารหัสมันจะแก้ปัญหาที่สองปัญหาแรกจะแก้ไขได้ถ้าเขาใช้การเข้ารหัสที่ปลอดภัยเพียงพอ (ความเร็วของยูซีซีอาจเป็นคอขวด)
Rick_2047

จริง @Adam Davis แนะนำภาษาโทเค็นที่เข้ารหัสข้างต้น
Lou
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.