การป้องกันการคัดลอกการป้องกันทางปัญญาและปัญหาการปรับใช้


10

หลังจากเวลาผ่านไปด้วยรุ่น Raspberry Pi 2 B v1.1. ฉันมีข้อกังวลต่อไปนี้หรือไม่?

  1. ฉันรู้ว่ามันมุ่งเน้นที่จะเพิ่มภาคการศึกษาที่เปราะบาง แต่มันเป็นไปได้ที่จะขายผลิตภัณฑ์ตาม RPi? สร้างรายได้ด้วยหรือเปล่า กลายเป็นมหาเศรษฐีด้วยหรือไม่
  2. วิธีที่ฉันควรปกป้องการพัฒนาสมมติว่าฉันไม่ต้องการใครสักคนที่จะใช้ RPI SD Card ของฉันซ้ำและมีของตัวเองของพวกเขาเลียนแบบ ? ทางเลือกปัจจุบันของฉันคือเติมพอร์ต SDCard ด้วย superglue :) อีกทางเลือกหนึ่งที่สามารถทำให้ RPi ทำการpingเซิร์ฟเวอร์ใบอนุญาตออนไลน์ได้ซึ่งแน่นอนว่าจะต้องใช้การเชื่อมต่อWiFi หรือรหัสแฮชของฮาร์ดแวร์ (นี่น่าจะเป็นคำตอบที่ดีกว่าฉันว่า ... )
  3. ฉันได้ตรวจสอบแล้วว่ายังมีกลไกในการกู้คืนการติดตั้งแม้ว่าคุณจะไม่ได้รูทด้วยการติดตั้งการ์ด SD อีกครั้งทางออกที่ดีที่สุดของฉันคือแนวทาง superglue ....

ขอบคุณล่วงหน้า.


2
นี่เป็นคำถามทั่วไปของ Linux ที่ฝังอยู่ มันเป็นปัญหาที่ซับซ้อนทั้งทางเทคนิคและทางกฎหมาย
Craig

2
สวัสดีและยินดีต้อนรับสู่ RaspberryPi.SE! นี่เป็นคำถามที่มากเกินไปในข้อเดียว ปัญหาบางอย่างก็กว้างมากและไม่เฉพาะ Pi คุณต้องพิจารณาว่าเวลาและความพยายามที่กำหนดระบบป้องกันการทำสำเนาทั้งหมดสามารถหลีกเลี่ยงได้ โดยเฉพาะอย่างยิ่งหากระบบของคุณถูกปรับใช้และคุณไม่มีทางที่จะป้องกัน "คนเลว" จากการใช้เครื่องมือที่มีอยู่ทั้งหมดเพื่อหยุดการป้องกันของคุณ
Ghanima

@craig: มีชุมชน Linux ในตัวหรือไม่
Brethlosze

WRT # 2: คุณไม่สามารถป้องกันการละเมิดลิขสิทธิ์ทางเทคนิคบนแพลตฟอร์มใด ๆ ทั้งหมดที่คุณสามารถทำได้คือการต่อสู้กับมันถูกต้องตามกฎหมาย ฉันคิดว่าคุณมีรถเข็นก่อนม้าที่นี่ เมื่อถึงเวลาที่คุณมีโปรเจ็กต์ pi ที่นี่เป็นข้อกังวลคุณจะรับรู้ว่าไม่มีโปรเจ็กต์ pi ที่ผูกพันกับ pi จริงๆ มันเป็นเพียงอุปกรณ์วัตถุประสงค์ทั่วไปและชุมชนก็มุ่งเน้นการพัฒนา
goldilocks

2
ไม่ใช่ "แพลตฟอร์มของพวกเขา" การพัฒนาแอปพลิเคชันที่ชาญฉลาดและพวกเขารู้และไม่สนใจ นั่นไม่ใช่ "วัตถุประสงค์ของพวกเขา" มันเป็น Broadcom SoC ที่ใช้สถาปัตยกรรม ARM ไม่มีอะไรที่ทุกคนจะทำอย่างไรกับไพที่ไม่สามารถส่งผ่านไปยังอุปกรณ์อื่น ๆ ได้อย่างมากมาย ดังนั้นอีกครั้ง: คุณมีรถเข็นก่อนที่ม้า เมื่อถึงจุดที่ความกังวลเกี่ยวกับทรัพย์สินทางปัญญาของคุณมีความหมายหรือความสำคัญคุณจะเข้าใจในสิ่งที่ฉันพยายามจะพูดกับคุณ ...
goldilocks

คำตอบ:


6

หากคุณกังวลเกี่ยวกับการปกป้องทรัพย์สินที่แท้จริงของคุณคุณสามารถรวมแอพพลิเคชั่น Rapberry Pi ของคุณเข้ากับไมโครคอนโทรลเลอร์คอนโทรลเลอร์แบบกำหนดเองภายนอก (เช่น MCU, AVR, PIC, 8051 ... ) คีย์ฮาร์ดแวร์ (เชื่อมต่อกับ Pi ผ่าน USB, RXTX, I2C, SPI, 1 สาย ... ) ตัวอย่างเช่นแอปพลิเคชันด้าน Pi สร้างหมายเลขสุ่มซึ่งถูกส่งไปยัง MCU ถอดรหัสและส่งกลับเป็นกุญแจปลดล็อคเพื่อถอดรหัสสิ่งที่สำคัญ นอกจากนี้คุณยังมีฟังก์ชั่นที่สำคัญดำเนินการโดยตรงใน MCU (คุณเพียงแค่ส่งพารามิเตอร์และรับผลลัพธ์จาก MCU) คุณสามารถจินตนาการได้ว่าจะเพิ่มความยากลำบากในการถอดรหัสสำหรับแฮ็กเกอร์ได้อย่างไรเนื่องจากความรู้ของเขาจะต้องกว้างกว่าปกติมาก ไม่มีการป้องกันที่สมบูรณ์แบบ แต่ถ้าคุณต้องการที่จะทำให้มันเป็นความท้าทายนี่อาจเป็นวิธีที่จะไป


1
นี่เป็นทางออกที่ดีแน่นอน .... ฉันจะลองกับแนวคิดนี้ ....
Brethlosze

1
น่าเสียดายที่โซลูชันสำหรับคีย์ฮาร์ดแวร์นั้นเหมือนกับซอฟต์แวร์ - เพียงลบส่วนที่ละเมิดของรหัสสร้างคำตอบที่ถูกต้อง ฯลฯ ดังนั้นทักษะเดียวกันจะทำงานกับคีย์ฮาร์ดแวร์
tomnexus

2
ไม่ใช่ถ้าคุณใส่ฟังก์ชั่นที่สำคัญลงในคีย์ฮาร์ดแวร์และทำให้ผลลัพธ์นั้นสำคัญสำหรับฟังก์ชั่นแอปพลิเคชัน Pi ของคุณ เนื่องจากฟังก์ชั่นมีอยู่ในไมโครคอนโทรลเลอร์เท่านั้นจึงไม่มีสิ่งใดที่จะลบบนฝั่ง Pi นี่เป็นไปไม่ได้ที่จะหยุดยั้ง แต่มีหลายครั้งที่ยากขึ้นเนื่องจากต้องการทักษะที่สูงกว่ามากแล้วจึงทำการถอดรหัสรหัสตามปกติ
avra

1
ในขณะที่วงจรภายนอกเหล่านี้เพิ่มการป้องกันสิ่งเหล่านี้มีค่าใช้จ่ายเงินจำนวนมาก: การวิจัยการสร้างต้นแบบการผลิตการทดสอบการใช้งานการบำรุงรักษา เกิดอะไรขึ้นถ้าสิ่งที่เกิดขึ้นตามสาย? เกิดอะไรขึ้นถ้า Raspberry เปลี่ยนอินเทอร์เฟซในรุ่นอนาคต ถ้ามันเป็นอายุการใช้งานสั้นหรือเป็นงานอดิเรกไปเลย หากเป็นผลิตภัณฑ์อุตสาหกรรม / เชิงพาณิชย์บางที OEM อาจเป็นทางออกที่ปลอดภัยกว่า
EDP

5
  1. ฉันคิดว่านั่นเป็นความคิดที่มีโมดูลการคำนวณตลอด มันไม่ควรเป็นปัญหาในการทำกำไร

  2. / 4. ตัวเลือก superglue น่าจะเป็นการแลกเปลี่ยนที่ดี ในที่สุดคุณไม่สามารถเอาชนะผู้โจมตีด้วยการเข้าถึงอุปกรณ์ได้ ลองดูเกมคอนโซลที่อาจมีผู้ลงทุนหลายล้านคนในโครงสร้างพื้นฐาน DRM และในที่สุดพวกเขาก็ล้มเหลว ด้วยจิตวิญญาณที่แตกต่างคุณสามารถเปิดกว้างและขายรุ่นพัฒนาผลิตภัณฑ์ของคุณและรวม SDK บางประเภท ความคิดเห็นที่คุณได้รับจากกลุ่มผู้ใช้ที่มุ่งเน้นด้านเทคนิคอาจมีค่าและทำงานได้ตามความสนใจของคุณ


ตัวเลือก superglue น่าจะเป็นถั่วอย่างสมบูรณ์ แต่คุณได้คะแนนที่ดีอื่น ๆ ที่นี่ ; |
goldilocks

ที่จริงแล้วฉันกำลังคิดเกี่ยวกับ ID ฮาร์ดแวร์บางส่วนจาก Raspberri Pi เพื่อที่จะสามารถตั้งโปรแกรมซอฟต์แวร์ RPi สำหรับการ์ด RPi ทุกใบได้ดังนั้นถ้าฉันลอกแบบซอฟต์แวร์ระบบจะไม่ทำงาน uProcessors เก่าถูกตั้งโปรแกรมไว้บนเครื่องดังนั้นคุณจึงไม่สามารถถอดปลั๊กออกได้ :)
Brethlosze

1
แม้ว่าคุณจะมี ID ฮาร์ดแวร์ใครก็ตามที่มีการเข้าถึงแบบฟิสิคัลสามารถอ่านได้ โปรเซสเซอร์ที่ตั้งโปรแกรมไว้บนบอร์ดแน่นอนยังมีส่วนต่อประสานการดีบักดังนั้นคุณจึงสามารถอ่านได้ ในระบบที่ซับซ้อนกว่านี้ SOC อาจดูแลเฉพาะการเรียกใช้โค้ดที่ลงนามแล้วเท่านั้น ฉันไม่แปลกใจถ้าชิป Broadcom มีฟังก์ชั่นบางอย่างในทิศทางนั้น แต่คุณไม่มีเอกสารประกอบ หากคุณต้องการวางแผนที่จะขายล้านหน่วยพวกเขาอาจพูดคุยกับคุณเกี่ยวกับเรื่องนั้น;)
1217949

ฮ่า ๆ .. ไม่ฉันว่าฉันจะขายในปริมาณเล็กน้อยจริงๆ! ดังนั้นถ้าฉันมีรหัสที่ทำงานภายใต้ Raspbian อื่น ๆ สามารถใช้การ์ด SD และอ่านมันได้หรือไม่ แก้ปัญหาหรือไม่ แตกหรือไม่ ฉันแน่ใจทั้งหมดคำตอบคือใช่ ทางเลือกที่ดีที่สุดจะHardware Keyแนะนำโดยavraและฝังการ์ด SD กับ SuperGlue ภายในตัวเชื่อมต่อหรือไม่
Brethlosze

4

ในขณะที่การฝึกฝนนี้กำลังสูญเสียความครอบคลุมอย่างแน่นอนคุณจะประหลาดใจกับจำนวนของตัวเชื่อมต่อ USB ที่ติดอยู่บนเครื่องเดสก์ท็อปในสภาพแวดล้อมสำนักงานขององค์กร และฉันกำลังพูดถึง บริษัท ข้ามชาติขนาดใหญ่ที่นี่

แต่ตอนนี้ในหัวข้อ ...

สำหรับโครงการเชิงพาณิชย์ที่การป้องกัน IP เป็นปัจจัยสำคัญ Pi นั้นดีสำหรับการสร้างต้นแบบ / การพิสูจน์แนวคิดที่ดีที่สุด แม้ว่าการป้องกันจะไม่เป็นปัญหาการปรับใช้ Pi ในระดับที่สูงขึ้นนั้น IMHO ไม่ใช่ทางออกที่ดีที่สุด - ด้วยเหตุผลหลายประการที่ฉันได้อธิบายไว้ในเธรดก่อนหน้าบนฟอรัมนี้

ไม่มีระบบที่ปลอดภัยสำหรับวิศวกรรมย้อนกลับ / การแฮ็ก / การทำซ้ำ ระบบใด ๆ ที่เป็นประโยชน์ อย่างไรก็ตามทุกระบบมีคะแนนการเจาะ ด้วยวิธีการเปิดและการ์ด SD ภายนอกทำให้ Pi มีค่าต่ำมาก บอร์ดฮาร์ดแวร์ที่ได้รับการออกแบบโดยทหารซึ่งได้รับการออกแบบมาโดยเฉพาะพร้อม SoC แบบกำหนดเองส่วนประกอบแซนวิชและ PCB แบบหลายชั้นร่วมกับบูทโหลดเดอร์ที่กำหนดเองการเข้ารหัสฮาร์ดแวร์จะมีคะแนนสูงกว่า

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

หากฮาร์ดแวร์เป็นชิ้นส่วนต้านทานของคุณในการตั้งค่าทั้งหมดและการปกป้องเทคโนโลยีของคุณเป็นปัจจัยสำคัญฉันไม่คิดว่า Pi เป็นผลิตภัณฑ์สำหรับคุณ หากฮาร์ดแวร์ของคุณเป็นผู้อำนวยความสะดวกในการขายบริการบางทีการปกป้องเทคโนโลยีควรทำในฝั่งเซิร์ฟเวอร์แทนที่จะเป็นฝั่งไคลเอ็นต์

เราใช้ Pi เพื่อขายบริการดังกล่าว ซอฟต์แวร์ของเราใน Pi มีระดับการป้องกันที่เพิ่มขึ้นเรากำลังใช้แอปพลิเคชั่น C ที่คอมไพล์ล็อคในหมายเลข MAC และ / หรือ CPU แต่ท้ายที่สุดแล้วหากไม่มีฝั่งเซิร์ฟเวอร์ของเราแม้แต่ซอร์สโค้ดก็ไร้ประโยชน์อย่างแท้จริง


3

คุณสามารถใช้ลูกหมูกลับเข้าไปในราสเบอร์รี่ด้วยกุญแจเข้ารหัส มีอุปกรณ์เชิงพาณิชย์สองคู่ในตลาด ฉันใช้Software Serial Protection สำหรับ Raspberry Piซึ่งทำงานได้ดีมาก


2
สิ่งนี้จะไม่ช่วยคุณในการป้องกันระบบจากการโคลน - แฮ็กเกอร์จะลบการตรวจสอบกุญแจ HW จากไบนารีของคุณหากพวกเขาต้องการ ... คีย์ HW จะให้การป้องกันในระดับหนึ่งเท่านั้น (อาจหยุดงานอดิเรกระดับแรก แฮกเกอร์)
Kozuch

2

ทำให้เป็นโอเพ่นซอร์ส

อย่าพยายามป้องกันการคัดลอกอย่างจริงจัง ทำให้เป็นโอเพ่นซอร์ส ถ้าเป็นไปได้ให้ผู้อื่นเข้าร่วมโครงการของคุณ

จากนั้นเรียกเก็บค่าบริการ คุณสามารถทำเงินได้ถ้าคุณทำอย่างนั้น

Red-hadทำเช่นนี้และ บริษัท อื่น ๆ พวกเขาทั้งหมดทำได้ดีและกำลังเติบโต


1
ไม่นี่เป็นผลิตภัณฑ์ไม่ใช่โครงการไม่ใช่โครงการขนาดใหญ่หรือโครงการเขียนโปรแกรมที่น่าสนใจมาก ฟังดูสวย แต่อีกครั้งไม่มี
Brethlosze

1
ฉันไม่เห็นด้วย. จากประสบการณ์ของฉันทุกโปรแกรมที่ฉันเขียนซึ่งถูกจัดส่งและใช้งานอย่างแข็งขันโดยลูกค้าจะมีการสนับสนุนการร้องขอการปรับปรุงและแน่นอนการแก้ไขข้อบกพร่อง ซอฟต์แวร์เดียวที่ไม่มีซอฟต์แวร์เหล่านี้คือซอฟต์แวร์ที่ไม่ได้ใช้
MadMike


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

1
อีกครั้งนี่คือการอภิปรายที่ดีเลิศของ gifting งานของคุณเพื่อประโยชน์ของมนุษย์หรือชาร์จทุกคนสำหรับทุกสิ่งที่คุณทำ
Brethlosze

1

ไม่กี่เซ็นต์ของฉัน:

  1. อย่าสร้างโซลูชันรอบสคริปต์ซึ่งสามารถอ่านได้โดยตรง
  2. ฟังก์ชันการแยกย่อยในแง่ของซอฟต์แวร์ / กระบวนการและฮาร์ดแวร์ที่หลากหลาย
  3. เพิ่มการพึ่งพาฮาร์ดแวร์ "การทำงาน" ที่อ่านบางส่วน
  4. เพิ่มเครื่องอ่านสมาร์ทการ์ดและจำหน่ายสมาร์ทการ์ด "เปิดใช้งาน" กับผลิตภัณฑ์ของคุณ
  5. มีเซิร์ฟเวอร์สิทธิ์การใช้งาน
  6. มีเคาน์เตอร์การใช้งานใน EEPROM !!! และควรมีวิธีการ "เติมเงิน" ออนไลน์ .. ;-)

...


1

เป็นการป้องกันระดับเริ่มต้นมี ID การ์ด SD ที่ไม่ซ้ำกัน/sys/block/mmcblk0/device/ซึ่งไม่ได้คัดลอกโดยซอฟต์แวร์การโคลนอิมเมจดิสก์ทั่วไป นี่เป็นข้อได้เปรียบที่ไม่จำเป็นต้องมีอุปกรณ์แยกต่างหากเพื่อเก็บ ID ที่ไม่ซ้ำกันและใช้งานได้ดีเช่นเดียวกับการป้องกันชั้นที่สองหลังจากมหาอำนาจ อย่างน้อยมันก็จะหยุดคนที่สามารถโคลนการ์ด SD ได้

เคล็ดลับอีกประการเกี่ยวกับการป้องกันโดยใช้ ID คือหลีกเลี่ยงการใช้การตรวจสอบง่ายๆเช่น

if(readID() != 0xDEADBEEF) exit();

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

i = i + readID() - 0xDEADBEEF + 1;

ซึ่งจะเป็นการยากกว่าที่จะค้นพบเนื่องจากรหัสที่แน่นอนจะไม่ปรากฏในรหัสของคุณ ( 0xDEADBEEF + 1 == 0xDEADBEF0) และการตรวจสอบการโทรทั้งหมดเพื่อexit()จะไม่เปิดเผยตำแหน่งของรหัสป้องกันของคุณ แต่รหัสของคุณก็จะผิดพลาดในระบบที่มี ID ผิดและผู้โจมตีจะต้องแก้ปัญหาตรรกะของแอปพลิเคชันของคุณเพื่อทำความเข้าใจและแก้ไขปัญหา


0

เมื่อใช้ส่วนประกอบภายนอกฉันหมายถึงองค์ประกอบความปลอดภัยจะแก้ปัญหานั้นได้ หากคุณคิดว่าความคิดของคุณนั้นยอดเยี่ยมและคุ้มค่าที่จะทำฉันขอแนะนำให้คุณใช้ MCU / CPU ระดับมืออาชีพเพื่อทำเช่นนั้น เช่นเดียวกับ Broadcom BCM58101 series ราคาไม่แพงและไม่เป็นมิตรกับผู้ใช้รายใหม่ แต่ระดับความปลอดภัยสูงสามารถปกป้องความคิด / การออกแบบของคุณได้

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