Probleme mit dem Kopierschutz, dem geistigen Schutz und der Bereitstellung


10

Nach einer Zeit mit dem Raspberry Pi 2 Model B v1.1. Habe ich folgende Bedenken?

  1. Ich weiß, dass es darauf ausgerichtet ist, gefährdete Bildungssektoren zu verbessern, aber es ist möglich , ein Produkt zu verkaufen , das auf dem RPi basiert. Um damit Geld zu verdienen? Werden Sie damit Zillionär?.
  2. Wie soll ich eine Entwicklung schützen , sagen wir, ich möchte nicht, dass jemand meine RPi-SD-Karte nimmt, sie dupliziert und seine eigenen Repliken hat ? Meine aktuelle Alternative ist es, den SDCard-Port mit Sekundenkleber zu füllen :). Eine andere Wahl könnte RPI machen ping einen Lizenzserver online, was natürlich würde erfordern WiFi - Verbindung. Oder eine Hardware-HASH-ID (Dies sollte eine bessere Antwort sein, denke ich ...)
  3. Ich habe überprüft, dass es auch Mechanismen gibt, um die Installation wiederherzustellen, selbst wenn Sie nicht über das Stammverzeichnis verfügen, indem Sie die SD-Karte einbinden. Wieder ist meine beste Lösung der Sekundenkleber-Ansatz ....

Danke im Voraus.


2
Dies ist eine allgemeine Frage zu Embedded Linux. Es ist sowohl technisch als auch rechtlich ein komplexes Problem.
Craig

2
Hallo und willkommen bei RaspberryPi.SE! Das sind zu viele Fragen in einer. Einige Themen sind auch sehr umfassend und nicht Pi-spezifisch. Sie müssen berücksichtigen, dass bei gegebener Zeit und Mühe alle Kopierschutzsysteme umgangen werden können. Besonders dann, wenn Ihr System bereitgestellt wird und Sie den "Bösen" nicht daran hindern können, alle verfügbaren Tools zu verwenden, um Ihren Schutz zu brechen.
Ghanima

@craig: Gibt es eine Embedded Linux Community?
Brethlosze

WRT # 2: Sie können Piraterie auf keiner Plattform technisch verhindern. Sie können sie nur legal bekämpfen . Ich denke du hast den Karren hier vor dem Pferd. Wenn Sie ein pi-basiertes Softwareprojekt haben, bei dem dies ein Problem darstellt, werden Sie feststellen, dass es kein pi-basiertes Projekt gibt, das wirklich an das pi gebunden ist. Es ist nur ein Allzweckgerät, und die Community ist entwicklungsorientiert.
Goldlöckchen

2
Es ist nicht "ihre Plattform", was die Anwendungsentwicklung betrifft, und sie wissen das und kümmern sich nicht darum. Das ist nicht "ihr Zweck". Es ist ein Broadcom SoC, der eine ARM-Architektur implementiert. Es gibt nichts, was irgendjemand mit einem Pi tun würde, der nicht trivial auf eine Vielzahl anderer Geräte portiert werden könnte. Also noch einmal: Sie haben den Karren vor dem Pferd . Wenn Sie an einem Punkt angelangt sind, an dem Ihre Sorge um geistiges Eigentum eine Bedeutung oder Bedeutung hat, werden Sie verstehen, was ich Ihnen zu sagen versuche ...
Goldlöckchen

Antworten:


6

Wenn Sie wirklich Bedenken haben, Ihr geistiges Eigentum zu schützen, können Sie Ihre Rapberry Pi-basierte Anwendung mit einem externen, speziell angefertigten Hardwareschlüssel (MCU wie AVR, PIC, 8051 ...) kombinieren (über USB, RXTX, Pi mit Pi verbunden). I2C, SPI, 1wire ...). Beispielsweise generiert die Pi-seitige Anwendung eine Zufallszahl, die an die MCU gesendet, dekodiert und als Entsperrschlüssel zurückgesendet wird, um etwas Wichtiges zu entschlüsseln. Dann haben Sie zusätzlich einige wichtige Funktionen direkt in der MCU ausgeführt (Sie übergeben nur Parameter und erhalten das Ergebnis von der MCU). Sie können sich vorstellen, wie dies für einen Hacker in der Größenordnung zu Knackschwierigkeiten führen würde, da sein Wissen viel breiter sein müsste als gewöhnlich. Es gibt keinen perfekten Schutz, aber wenn Sie es wirklich zu einer Herausforderung machen wollen, könnte dies ein guter Weg sein.


1
Dies ist in der Tat eine schöne Lösung ... Ich werde es mit diesem Konzept versuchen ...
Brethlosze

1
Leider ist die Lösung für einen Hardwareschlüssel dieselbe wie für einen Softwareschlüssel - entfernen Sie einfach den fehlerhaften Teil des Codes, bauen Sie die richtige Antwort ein usw. Die gleichen Fähigkeiten funktionieren also auch für einen Hardwareschlüssel.
Tomnexus

2
Nicht, wenn Sie eine wichtige Funktion in den Hardwareschlüssel einfügen und das Ergebnis für die Funktionalität Ihrer Pi-Anwendung kritisch machen. Da die Funktion nur in einem Mikrocontroller vorhanden ist, muss auf der Pi-Seite nichts entfernt werden. Dies ist nicht unmöglich zu brechen, aber um ein Vielfaches schwieriger, da es viel höhere Fähigkeiten erfordert als das übliche Knacken von Code.
Avra

1
Während diese externen Schaltkreise tatsächlich Schutz bieten, kosten diese Dinge viel Geld: Forschung, Prototyping, Herstellung, Test, Implementierung, Wartung. Was ist, wenn etwas entlang der Linie passiert? Was ist, wenn Himbeeren ihre Benutzeroberfläche (n) in zukünftigen Modellen ändern? Wenn es sich um eine kurze Lebensdauer oder ein Hobbyprojekt handelt, machen Sie es. Wenn es sich um ein Industrie- / Handelsprodukt handelt, ist OEM möglicherweise eine sicherere Wahl.
EDV

5
  1. Ich denke, das war die Idee mit dem Rechenmodul die ganze Zeit. Es sollte kein Problem sein, einen Gewinn zu erzielen.

  2. / 4. Die Sekundenkleberoption ist wahrscheinlich ein guter Kompromiss. Letztendlich können Sie einen Angreifer mit physischem Zugriff auf das Gerät nicht besiegen. Schauen Sie sich Spielekonsolen an, die wahrscheinlich Millionen in die DRM-Infrastruktur investiert haben und die schließlich alle fallen. In einem anderen Sinne könnten Sie auch Offenheit annehmen und eine Entwicklungsversion Ihres Produkts verkaufen und eine Art SDK hinzufügen. Das Feedback, das Sie von einer technisch ausgerichteten Benutzergruppe erhalten, kann wertvoll sein und in Ihrem Interesse funktionieren.


Die Sekundenkleberoption ist wahrscheinlich völlig verrückt, aber Sie machen hier einige andere gute Punkte. ; |
Goldlöckchen

Eigentlich habe ich über eine Hardware-ID vom Raspberri Pi nachgedacht, damit jede RPi-Software für jede RPi-Karte programmiert werden kann. Wenn ich also die Software klone, funktioniert das System nicht. Alte uProzessoren wurden einfach an Bord programmiert, daher kann man sie nicht ausstecken :).
Brethlosze

1
Selbst wenn Sie eine Hardware-ID hätten, könnte sie jeder andere mit physischem Zugriff lesen. Prozessoren, die an Bord programmiert sind, bieten natürlich auch Debugging-Schnittstellen, sodass Sie sie tatsächlich lesen können. In komplexeren Systemen kümmert sich der SOC wahrscheinlich nur um die Ausführung von signiertem Code. Ich wäre nicht allzu überrascht, wenn der Broadcom-Chip einige Funktionen in diese Richtung hätte, aber Sie haben keine Dokumentation dafür. Wenn Sie planen, Millionen auf Einheiten zu verkaufen, könnten sie mit Ihnen darüber sprechen;)
user1217949

LOL .. nein, ich denke ich werde eine wirklich kleine Menge davon verkaufen !. Wenn also ein Code unter Raspbian ausgeführt wird, kann jeder andere die SD-Karte nehmen und lesen? debuggen? knacken?. Ich bin mir absolut sicher, die Antwort lautet natürlich ja. Wird die beste Wahl sein, einen Hardware KeyVorschlag von avra zu haben und die SD-Karte mit SuperGlue in ihrem Anschluss zu vergraben?
Brethlosze

4

Während diese Praxis definitiv die Abdeckung verliert, werden Sie erstaunt sein, wie viele USB-Anschlüsse in Desktop-Umgebungen auf Desktop-Computern aufgeklebt wurden. Und ich spreche hier von großen multinationalen Unternehmen.

Aber jetzt zum Thema ...

Für kommerzielle Projekte, bei denen der IP-Schutz ein wichtiger Faktor ist, eignet sich der Pi bestenfalls für frühes Prototyping / Proof of Concept. Auch wenn der Schutz kein Problem darstellen würde, ist die Bereitstellung des Pi in größerem Maßstab meiner Meinung nach nicht die beste Lösung - aus einer Reihe von Gründen, die ich in einem früheren Thread in diesem Forum beschrieben habe.

Es gibt kein System, das gegen Reverse Engineering / Hacking / Reproduktion sicher ist. Jedes System ist ausnutzbar. Jedes System hat jedoch einen Penetrationswert. Mit seinem offenen Ansatz und der externen SD-Karte hat der Pi eine sehr niedrige. Eine speziell entwickelte, vom Militär zugelassene Hardware-Karte mit benutzerdefiniertem SoC, Sandwich-Komponenten und mehrschichtiger Leiterplatte in Kombination mit einem benutzerdefinierten Bootloader. Die Hardware-Verschlüsselung erzielt eine höhere Punktzahl.

Hinzu kommt der Bereitstellungsfaktor. Je breiter Ihr Markt ist, desto interessanter wird es für die Menschen, in Ihre Technologie einzudringen und sie zu stehlen.

Wenn die Hardware Ihr Widerstand im gesamten Setup ist und der Schutz Ihrer Technologie ein wichtiger Faktor ist, denke ich nicht, dass der Pi das Produkt für Sie ist. Wenn Ihre Hardware den Verkauf von Diensten erleichtert, sollte der Schutz der Technologie möglicherweise eher auf der Serverseite als auf der Clientseite erfolgen.

Wir verwenden den Pi für den Verkauf solcher Dienstleistungen. Unsere Software auf dem Pi verfügt über ein erhöhtes Schutzniveau. Wir verwenden eine kompilierte C-Anwendung, die auf die MAC- und / oder CPU-Seriennummer festgelegt ist. Aber am Ende ist ohne unsere Serverseite sogar der Quellcode praktisch nutzlos.


3

Sie können ein Huckepack in Himbeere mit einem Verschlüsselungsschlüssel verwenden. Es gibt ein paar kommerzielle Geräte auf dem Markt. Ich habe diese Software Serial Protection für Raspberry Pi verwendet , die sehr gut funktioniert.


2
Dies hilft Ihnen nicht, das System vor dem Klonen zu schützen - die Hacker entfernen die Prüfung für den HW-Schlüssel aus Ihrer Binärdatei, wenn sie möchten ... Der HW-Schlüssel bietet nur ein bestimmtes Schutzniveau (möglicherweise, um das Hobby der ersten Ebene zu stoppen Hacker).
Kozuch

2

Machen Sie es Open Source

Versuchen Sie im Ernst nicht, es durch Kopien zu schützen. Machen Sie es Open Source. Wenn möglich, lassen Sie andere an Ihrem Projekt teilnehmen.

Dann berechnen Sie für Dienstleistungen. Sie können Eimer Geld verdienen, wenn Sie das richtig machen.

Red-had macht das so und ein paar andere Firmen. Ihnen allen geht es gut und sie wachsen.


1
Nein, dies ist ein Produkt, kein Projekt, weder ein großes Projekt noch ein sehr interessantes Programmierprojekt. Klingt hübsch, aber nein.
Brethlosze

1
Ich stimme dir nicht zu. Nach meiner Erfahrung hatte jedes Programm, das ich geschrieben habe und das vom Client ausgeliefert und aktiv verwendet wurde, Supportanrufe, Verbesserungswünsche und natürlich Fehlerbehebungen. Die einzige Software, die keine davon hatte, war Software, die nach dem Versand nie verwendet wurde.
MadMike


Das ist der Punkt, dies ist für ein Produkt, ein Gerät. Die Software enthält überhaupt keine Kunst, aber die Art und Weise, wie die Variablen verarbeitet werden, muss wie bei jedem Smart Controller geschützt werden. Sie beabsichtigen nicht, Ihre Entwicklungen in diesem Sinne als Open Source zu veröffentlichen, das kommt nicht in Frage, das ist eine andere Art von Arbeit. Vielleicht sind Sie in einem Unternehmen und Sie sind sauer, wenn der Kunde Sie anruft, wenn es Ihren Vorgesetzten tatsächlich mehr Abrechnungen gibt und Sie den Post-Sales-Service erhalten, der auf lange Sicht gut ist. In jedem Fall ist Open Source gut für die Menschheit, nicht um Profit zu machen.
Brethlosze

1
Auch dies ist die utopische Diskussion, all Ihre Arbeit zum Wohle des Menschen zu verschenken oder alle für alles zu belasten, was Sie tun.
Brethlosze

1

Ein paar Cent von mir:

  1. Erstellen Sie niemals eine Lösung für Skripte, die direkt gelesen werden können.
  2. Aufschlüsselung der Funktionen in Bezug auf mehrere Software / Prozesse und Hardware.
  3. Fügen Sie eine "funktionale" Abhängigkeit der gelesenen Hardware hinzu.
  4. Fügen Sie einen Smartcard-Leser hinzu und verkaufen Sie die "Enabler" -Smartcard mit Ihrem Produkt.
  5. Haben Sie einen Lizenzserver
  6. Haben Sie einen Nutzungszähler im EEPROM !!! Und es sollte eine Möglichkeit geben, online "aufzuladen" .. ;-)

...


1

Als Einstiegsschutz gibt es eine eindeutige SD-Karten-ID, unter /sys/block/mmcblk0/device/der keine typische Software zum Klonen von Disk-Images geklont wird. Dies hat den Vorteil, dass kein separates Gerät erforderlich ist, um die eindeutige ID zu speichern, und funktioniert ziemlich gut als zweite Schutzschicht nach dem Sekundenkleber. Es wird zumindest Leute stoppen, die in der Lage sind, die SD-Karte einfach zu klonen.

Ein weiterer Tipp zum Schutz durch IDs ist die Vermeidung einer einfachen Prüfung, d. H.

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

Solche einfachen Überprüfungen sind leicht zu erkennen (entweder durch Suchen nach der bekannten ID oder durch Überwachen von Anrufen exit()) und zu entfernen. Ein viel besserer Ansatz besteht darin, die ID als Konstante in die Berechnungen einzubeziehen. Das heißt, anstatt i++irgendwo in Ihrem Code werden Sie schreiben

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

Dies ist viel schwieriger zu ermitteln, da die genaue ID nicht wörtlich ( 0xDEADBEEF + 1 == 0xDEADBEF0) in Ihrem Code angezeigt wird und bei der Überprüfung aller Aufrufe exit()auch der Speicherort Ihres Schutzcodes nicht angezeigt wird. Stattdessen stürzt Ihr Code einfach auf einem System mit der falschen ID ab, und der Angreifer muss die Logik Ihrer Anwendung debuggen, um das Problem zu verstehen und zu beheben.


0

Mit einer externen Komponente meinte ich, dass die Sicherheitskomponente dieses Problem lösen würde. Wenn Sie wirklich der Meinung sind, dass Ihre Idee großartig ist und zusätzliche Kosten wert sind, würde ich Ihnen empfehlen, dafür eine professionelle MCU / CPU zu verwenden. Wie die Broadcom BCM58101-Serie kann auch Ihre Idee / Ihr Design geschützt werden, wenn sie nicht wirklich kostengünstig und nicht benutzerfreundlich ist, aber ein hohes Sicherheitsniveau aufweist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.