ในทางปฏิบัติหากรหัสและกุญแจอยู่ในเครื่องการ์ด SD พวกเขาจะสามารถรวบรวมได้พวกเขาจะสามารถค้นพบกุญแจและพวกเขาจะสามารถดึงข้อมูลที่มีความละเอียดอ่อนได้
มันเหมือนกับการเข้ารหัสภาพยนตร์ดีวีดีจะต้องมีข้อมูลทั้งหมดที่จำเป็นในการถอดรหัสภาพยนตร์เพื่อให้สามารถแสดงต่อผู้ชมได้ดังนั้นกลไกการป้องกันการคัดลอกภาพยนตร์ทั้งหมดจะถูกกำหนดไว้ในท้ายที่สุด
สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือเปลี่ยนเศรษฐศาสตร์ของวิศวกรรมย้อนกลับผลิตภัณฑ์ของคุณ
การเข้ารหัสและ / หรือการทำให้งงมีค่าหรือไม่
ตอนนี้เราได้พิสูจน์แล้วว่าไม่มีทางที่จะป้องกันตัวเองได้อย่างสมบูรณ์คำถามกลายเป็น
- มีโอกาสมากที่จะเกิดขึ้น?
- คุณค่าของอัลกอริธึมและข้อมูลของคุณคืออะไร
- พวกเขาต้องซื้อใบอนุญาตให้ใช้งานซอฟต์แวร์ของคุณราคาเท่าไหร่?
- ราคาของการจำลองอัลกอริทึมและข้อมูลของคุณคืออะไร
- ราคาของวิศวกรรมย้อนกลับอัลกอริทึมและข้อมูลของคุณคืออะไร
- คุณต้องปกป้องอัลกอริทึมและข้อมูลของคุณเป็นจำนวนเท่าใด
หากสิ่งเหล่านี้ก่อให้เกิดความจำเป็นทางเศรษฐกิจที่สำคัญในการปกป้องอัลกอริทึม / ข้อมูลของคุณคุณควรพิจารณาดำเนินการ ตัวอย่างเช่นหากมูลค่าของบริการและค่าใช้จ่ายต่อลูกค้าสูงทั้งคู่ แต่ค่าใช้จ่ายด้านวิศวกรรมย้อนกลับรหัสของคุณต่ำกว่าค่าใช้จ่ายในการพัฒนาตนเองมากผู้ใช้อาจลองใช้งาน
ดังนั้นสิ่งนี้นำไปสู่คำถามของคุณ
- คุณรักษาความปลอดภัยอัลกอริทึมและข้อมูลของคุณอย่างไร?
obfuscation
ตัวเลือกที่คุณแนะนำ, ทำให้งงงวยรหัส, ยุ่งกับเศรษฐศาสตร์ข้างต้น - มันพยายามที่จะเพิ่มค่าใช้จ่ายให้กับพวกเขา (5 ข้างต้น) อย่างมีนัยสำคัญโดยไม่ต้องเพิ่มค่าใช้จ่ายให้กับคุณ (6) อย่างมาก ปัญหาคือว่าเช่นเดียวกับการเข้ารหัส DVD มันถึงวาระที่จะล้มเหลวและหากมีความแตกต่างเพียงพอระหว่าง 3, 4 และ 5 ในที่สุดก็มีคนจะทำมัน
ตัวเลือกอื่นอาจเป็นรูปแบบของSteganographyซึ่งช่วยให้คุณสามารถระบุได้ว่าใครถอดรหัสรหัสของคุณและเริ่มแจกจ่ายมัน ตัวอย่างเช่นหากคุณมี 100 ค่าลอยตัวที่แตกต่างกันเป็นส่วนหนึ่งของข้อมูลของคุณและข้อผิดพลาด 1 บิตในLSBของแต่ละค่าเหล่านั้นจะไม่ทำให้เกิดปัญหากับแอปพลิเคชันของคุณเข้ารหัสรหัสเฉพาะ (ลูกค้าแต่ละราย) ลงในบิตเหล่านั้น . ปัญหาคือถ้ามีคนเข้าถึงข้อมูลแอปพลิเคชันของคุณหลายสำเนาก็จะเห็นได้ชัดว่ามันแตกต่างกันทำให้ง่ายต่อการระบุข้อความที่ซ่อนอยู่
การป้องกัน
ตัวเลือกเดียวที่มีความปลอดภัยจริงๆคือการให้ส่วนสำคัญของซอฟต์แวร์เป็นบริการแทนที่จะรวมไว้ในแอปพลิเคชันของคุณ
แนวคิดแอปพลิเคชันของคุณจะรวบรวมข้อมูลทั้งหมดที่จำเป็นในการรันอัลกอริทึมของคุณรวมเป็นคำขอไปยังเซิร์ฟเวอร์ (ควบคุมโดยคุณ) ในคลาวด์บริการของคุณจะคำนวณผลลัพธ์ของคุณแล้วส่งกลับไปยังไคลเอนต์ ซึ่งจะแสดงมัน
สิ่งนี้จะช่วยรักษาข้อมูลที่เป็นกรรมสิทธิ์ของคุณข้อมูลลับและอัลกอริทึมภายในโดเมนที่คุณควบคุมได้อย่างสมบูรณ์และขจัดความเป็นไปได้ที่ลูกค้าจะแยกข้อมูลออก
ข้อเสียที่ชัดเจนคือลูกค้าเชื่อมโยงกับการให้บริการของคุณอยู่ที่ความเมตตาของเซิร์ฟเวอร์และการเชื่อมต่ออินเทอร์เน็ตของพวกเขา ในด้านบวกพวกเขาอยู่เสมอกับการแก้ไขข้อบกพร่อง น่าเสียดายที่หลายคนคัดค้านSaaSด้วยเหตุผลเหล่านี้
นี้จะเป็นขั้นตอนมากที่จะใช้แม้ว่าและอาจมีค่าใช้จ่ายมาก 6 ข้างต้น แต่เป็นวิธีเดียวที่ฉันสามารถดูเพื่อให้ขั้นตอนวิธีการและข้อมูลของคุณปลอดภัยอย่างสมบูรณ์