Sicherheitsmaßnahmen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Sicherheitsmaßnahmen?

Beitrag von PureBasic4.0 »

Hi, Leute

Habe hier ein Programm geschrieben, nicht unbedingt für jeden zugänglich sein soll. Welche Möglichkeiten gibt es, ein Programm abzusichern? Ich möchte nach Möglichkeit keine Kennwortabfrage benutzen, weil dann der "Endbenutzer" das Kennwort einfach weitergeben könnte.

Habe mir schon folgendes überlegt:

Ich nehme einen USB-Stick und lese die Serial-Nr. aus. Das gleiche mache ich mit der Festplatte C: . Nur wie bekomme ich die Serial-Nr. heraus? Bin mir sicher, das schafft man mit API, allerdings ist bei mir die win32.hlp irgendwie beschädigt und ich habe keine Zeit, mir eine neue herunterzuladen.

Welche Sicherheitsmaßnahmen können noch benutzt werden? (Außer Kennwortabfrage und Serial-Nr.?) Habe mich auch hier im PureBoard schon umgeschaut, aber die Mac-Adresse eines Netzwerkgerätes möchte ich nicht unbedingt benutzen, da man diese auch verändern kann.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
shadow
Beiträge: 189
Registriert: 23.03.2005 17:52
Wohnort: Lübeck

Beitrag von shadow »

Hi,

seit wann kann man eine MAC-Adresse ändern? Habe ich was verpasst?

Aber gut, zum Thema, du meinst also, du möchtest eine Absicherung damit nicht jeder das Programm einfach ausführen kann. Wo wird die Anwendung denn ausgeführt? Ich meine, nur auf einem speziellen Rechner (ich nehme an, dafür brauchst du die Seriennummer der Festplatte) oder an jedem beliebigen Rechner?
Da fällt mir ein, dass so eine lokale Absicherung nichts bringen würde. Ein anderer Anwender könnte sich am Computer anmelden und dann wär die Absicherung futsch.

Ich persöntlich würde dir vorschlagen ein Zertifikat zu verwenden (mit oder ohne privaten Schlüssel). So kannst du dir sicher sein, dass wirklich nur der Zugriff auf die Anwendung hat, der das Zertifikat (und u. U. die PIN) hat. Und wenn jemand die Zugriffsdaten weitergibt, so ist das wahrlich nicht das Problem des Entwicklers.
Oder ist es z. B. eine Shareware-Anwendung und du willst nur sicher gehen, dass man diese nicht cracken kann?

Sorry, aber ich versteh den Sachverhalt nicht ganz. Bitte näher erläutern.
Benutzeravatar
D@nte
Beiträge: 324
Registriert: 24.04.2007 15:33
Wohnort: Berlin

Beitrag von D@nte »

Keine Ahnung ob dir das weiterhilft: USB-Serial
Hab ich irgendwann mal beim stöbern gefunden, aber mich noch nit weiter auseinander gesetzt da ich dafür noch keine Verwendung hatte.

Ansonsten vllt nen Onlineabgleich bei der beim ersten Programmstart eine EINMAL zu verwendende ID eingegeben wird, wenn die ID noch nicht verwendet wurde erzeugt das Programm nen Reg Eintrag der bei jedem Start des Prog abgefragt wird und das Prog frei gibt.[/url]
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

shadow hat geschrieben: seit wann kann man eine MAC-Adresse ändern? Habe ich was verpasst?
Bei den meisten onboard-Netzwerkkarten lässt sich die MAC-Adresse problemlos über das BIOS auf einen beliebigen Wert setzen. Ansonsten kann man die auch im System spoofen.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

Thorium hat geschrieben:
shadow hat geschrieben: seit wann kann man eine MAC-Adresse ändern? Habe ich was verpasst?
Bei den meisten onboard-Netzwerkkarten lässt sich die MAC-Adresse problemlos über das BIOS auf einen beliebigen Wert setzen. Ansonsten kann man die auch im System spoofen.
Und unter Solaris MUSST du die sogar setzen .. sonst hast du evtl 2 NIC's mit der seleben MAC - Ah gibt das ein nettes chaos .. ;)

Thalius
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Es ist schon richtig, dass das Programm nur auf MEINEM Rechner ausgeführt werden soll.

Aber jetzt mal zu den Zertifikaten:

Was sind das genau, gibt es dafür ne Library, wie funktioniert das ganze, wie kann ich sowas in PB einbinden????? - Bitte klärt mich auf!
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
shadow
Beiträge: 189
Registriert: 23.03.2005 17:52
Wohnort: Lübeck

Beitrag von shadow »

Besuch mal die Seite www.openssl.org. Dort solltest du alle Informationen erhalten.
Bei den Zertifikaten handelt es sich um eine Art Ausweis. Nur wenn das verwendete Zertifikat validiert wurde hat der User Zugriff auf gesicherte Daten. Solche Zertifikate werden überall verwendet, z. B. als Identifikation bei der SSL-Verbindung. Aber auch um Daten zu ver- und entschlüsseln (ich glaub da wird ein RSA-Hashcode im Zertifikat hinterlegt oder so).
Ich bin mir aber nicht sicher, ob es für PureBasic dafür bereits Bibliotheken gibt mit denen man arbeiten kann.

Es ist nur eine Idee. Wenn du die Anwendung aber tatsächlich ausschließlich nur auf deinem Rechner ausführen willst, so war deine erste Idee mit den Seriennummern nicht schlecht. Ich würde dann verschiedene Informationen des Systems (z. B. Seriennummern, Labels, Registry-Schlüssel ...) sammeln und daraus eine Checksumme bilden. Und nur wenn die Checksumme stimmt wird die Anwendung ausgeführt.
HemSA
Beiträge: 221
Registriert: 16.10.2005 13:59
Wohnort: Manisa / Türkei
Kontaktdaten:

Beitrag von HemSA »

Hallo PureBasic4.0,
also wenn ich das richtig verstanden habe, dann willst du nur, dass DEIN Programm nur auf DEINEM gewolltem PC läuft.

Mach es doch einfach so, dass du auch gleichzeitig in einem anderem Verzeichnis ( z. B. C:\Windows\....\... ) eine Textdatei anlegst. Und bei deinem Programmstart einfach kontrollierst, ob auch diese Textdatei vorhanden ist - wenn nicht - abrechen. Wenn keiner weis, dass das ( habe ich das jetzt richtig geschrieben? ) Programm diese Textdatei benötigt zum starten ist es denke ich eine genügende Sicherheit gegen kopieren und weiterverteilen - was ja wohl deine Absicht ist.

Schaue dir dazu auch mal den Beitrag in der PureBasic-Louge von PureBasic4.0 an. Es ging zwar da nur um eine Zeitbegrenzung von Demos - aber im Prinzip kannst du das auch leicht für deine Bedürfnisse umstellen. Hier der Link: http://pb-lounge.pb-club.de/viewtopic.php?t=4259
Hab Geduld - der Server ist langsam.
PB 4.02 (wegen Disphelper), 5.72 (Windows) (x64)
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Ja, das Problem verstehe ich nicht.

Wenn es nur auf deinem Rechner laufen soll, wer kommt denn an deinen Rechner ran, dass er es mit nehmen kann?

Dafür gibt es doch Zugriffsrechte.

Also jemand fremdes ist an deinem Rechner und hat Admin Rechte.
Demjenigen gefällt dein Programm und er schickt es sich nach Hause per Email.

Kannst dich nicht einfach in deine eigene Registry eintragen?
Oder du überprüfst, welcher Benutzer angemeldet ist.

Du kannst auch ein Kabel nehmen und den ParallelPort kurzschließen, sofern du noch einen hast. Eine Art Profi-Dongle :mrgreen:

Die Sache mit der MAC macht mich aber stutzig. Ich dachte jede Karte hat eine eigene.
http://de.wikipedia.org/wiki/MAC-Adresse

http://www.libe.net/themen/MAC_Adresse_ ... itteln.php

Ansonsten kannste auch Digitalkameras oder ähnliches benutzen.
Canon-Kameras kann man zum Beispiel registrieren lassen.
Dann würde die Software nur noch mit deiner Kamera laufen.
Oder du hast ein Handy. Versuchst die Sache mit Bluetuth.

Aber es sollen ja wohl auch andere die Software nutzen können.

Frag einfach die Hardware-Komponenten ab.
Grafikkarte, Prozessor. Größe der Festplatten und die Anzahl der Laufwerke.

Es müsste jemand exakt den gleichen Rechner haben, damit die Sache noch funktioniert.

Also gut, du hast 10 Rechner und alle haben die gleiche Hardware?!

Die MAC muss unterschiedlich sein. Eine Datei wäre schon eine Lösung.
Aber wenn jemand hinter kommt, kopiert er die und gut ist.

Mach es mit einer Webcam und Iris Erkennungssoftware :mrgreen:

Oder bestimmte Symbole müssen auf dem Desktop in geheimer Anordnung stehen :wink:

So ganz hab ich das noch nicht verstanden. Wann gibt es denn sowas, dass eine Software nur auf einem Rechner, aber von mehreren Mitarbeitern genutzt werden darf? Haben die keinen eigenen?
Schichtarbeit?

... aber am Ende ist eine Datei irgendwo hin verstecken das einfachste.
Und wohl auch das Beste, wenn es um Aufwand und Nutzen geht. :allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Xaby hat geschrieben: Die Sache mit der MAC macht mich aber stutzig. Ich dachte jede Karte hat eine eigene.
http://de.wikipedia.org/wiki/MAC-Adresse
Wenn du schon auf einen Artikel verlinkst, dann lies ihn dir auch durch. :wink:

"Die Adressen der Schnittstellen jedes netzwerkfähigen Geräts sollten theoretisch weltweit eindeutig vorbelegt sein (es sind aber schon Einzelfälle bekannt geworden, bei denen zwei Netzwerkkarten im gleichen Netzwerk identische MAC-Adressen besaßen"

"Die Software unterstützt jedoch auch häufig, jeden beliebigen Wert als MAC-Adresse verwenden zu können. Dies wird zum Beispiel bei Backup-Systemen genutzt, wo Ersatzgeräte die MAC-Adresse eines ausgefallenen Geräts übernehmen können."

Ausserdem ist dort auch erklärt mit welchen Konsolenkommandos man die MAC-Adresse in den verschiedenen Betriebssystemen setzen kann.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten