AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

USB Gerät deaktivieren

Offene Frage von "berens"
Ein Thema von berens · begonnen am 21. Jun 2007 · letzter Beitrag vom 22. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#1

USB Gerät deaktivieren

  Alt 21. Jun 2007, 09:38
Hallo!

Für einen u.U. öffentlich zugänglichen Computer soll ich ein Zusatzprogramm entwickeln, dass bestimmte USB-Geräte sperrt. Wichtig dabei ist, dass -im Gegensatz zu bereits bestehenden Lösungen- auch Tastatur und Maus gesperrt werden müssen. Der PC ist ein reines Anzeigesystem und die Steuerung erfolgt zur Wartung mit VNC über das Netzwerk.

Die USB-Ports werden zwar ansich nicht von dem PC gebraucht, so dass man sie im Bios deaktivieren könnte, aber ggf. muss man bei einem Systemfehler mal schnell an das System ran.

Ideal wäre, wenn jedes USB-Gerät eine GUID (wie MAC-Adressen bei Netzwerkkarten) hätte: also nicht eine für die komplette Klasse "Mäuse und Zeigegeräte". Dann könnte man eine bestimmte Maus und eine bestimmte Tastatur freischalten. Der Rest wird blockiert.

Zunächst würde mich auch soetwas langen wie:
Neues USB-Geräte wird angesteckt --> Mein Programm wirft es automatisch wieder aus, es sei denn ...

Mittels der Suchfunktion habe ich auch schon viele theoretisch sinnvolle Codeschnipsel gefunden. Ich kann diese aber leider nicht so kombinieren, dass sie alles das können, was ich brauche.

1) SwissDelphiCenter http://www.swissdelphicenter.ch/de/showcode.php?id=2211 : ...entdecken, ob ein USB Device angeschlossen oder abgezogen wird
--> Netter Code, aber wie kann ich die Geräte wieder auswerfen oder deaktivieren?

2) Jedi VCL JvHidControllerClass von Robert Marquardt
--> Sehr Umfangreich mit Beispielen, aber der Auswerfen-Befehl "Checkout" bewirkt keine Änderungen, ausserdem (wie der Klassenname besagt) funktioniert die Klasse nur für HIDs und nicht für alle USB Geräte.

3) http://www.yeahware.com/ , Demo-Source Enable oder Eject http://www.yeahware.com/download/eject.zip
--> Listet zwar viel Hardware (auch Nicht-USB), aber leider sind da meine USB-Drucker etc. nicht dabei. Deshalb gehe ich von aus, dass die Liste wohl nicht ganz komplett ist. Der Code ist schlecht/gar nicht dokumentiert. Die Eject/Disable Funktion ist so komisch an den TTreeview angepasst, in dem die Hardware steht, dass ich das leider nicht soweit ableiten kann , dass ich die Eject/Disable Funktion z.B. mit einer hDevInfo von 1) oder 2) aufrufen könnte.

Eigentliche Fragen:
Q1) Gibt es für jedes einzelne USB-Gerät auf der Welt eine GUID wie bei den Netzwerkkarten die MAC-Adresse?

Q2) Wie kann ich eine bestimmte Hardware auswerfen/deaktivieren, z.B. mit einer hDevInfo?
Mit dem folgenden kann ich leider nichts anfangen:
Delphi-Quellcode:
  function CM_Request_Device_Eject(dnDevInst: DWord; out pVetoType: TPNPVetoType;
  pszVetoName: PChar; ulNameLength: ULong; ulFlags: ULong): DWord; stdcall;
  external SetupApiModuleName name 'CM_Request_Device_EjectA';
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#2

Re: USB Gerät deaktivieren

  Alt 22. Jun 2007, 08:55
Wenn der PC ein reines Anzeigegerät ist, wäre es dann nicht von Vorteil, den PC selber Wegzuschließen, sodass man ohne Schlüssel nur den Monitor erreichen kann? Das würde das Problem doch im Keim ersticken... also wenn das möglich ist...
Richard Mahr
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#3

Re: USB Gerät deaktivieren

  Alt 22. Jun 2007, 08:59
*seufz* (<-- das gilt nicht Dir, sondern der Situation) Nun, er ist weggeschlossen. Der Kunde hat aber Angst, dass jemand das Gehäuse aufschrauben könnte und sich mit dem, als Gast eingeloggtem, Benutzer am System und sämtlichen Firmendaten vergreifen könnte.

Das Gehäuse ist nur geschraubt und nachträglich lässt sich da leider kein Schloß mehr anbringen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: USB Gerät deaktivieren

  Alt 22. Jun 2007, 09:04
Es gibt Kiosk-Software von Microsoft, mit der kannst du den Rechner dicht machen. Und warum nicht die USB-Ports im BIOS deaktivieren? Das BIOS wird mit einem Passwort gesichert und gut ist. Wenn man sie braucht, aktiviert man sie eben wieder. Desweiteren wäre zu überlegen, warum der Rechner am Firmennetzwerk hängt mit den sensiblen Firmendaten?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#5

Re: USB Gerät deaktivieren

  Alt 22. Jun 2007, 09:14
> warum der Rechner am Firmennetzwerk hängt mit den sensiblen Firmendaten?
Die Daten die angezeigt werden, werdem vom Firmennetzwerk aus eingespeist.

Bios-Passwort wäre natürlich auch eine gute Idee, aber für uns nicht das Traumziel, weil

1) Aber, wie oben erwähnt, sollte der PC zu Wartungszwecken (wenn's geht ohne Neustart) schon direkt ansprechbar sein.

2) Wie noch nicht erwähnt gibt es eine Variante von dem Anzeige System, dass sich mit nem USB-Stick füttern lässt. Die Kunden spielen im ihrem Firmennetzwerk also die Anzeigedaten auf einen Stick und stecken den dann in das Anzeige System (welches nicht am Netzwerk hängt). Hier sind die USB-Anschlüsse natürlich frei zugänglich, da der Benutzer nicht jedes Mal das Gehäuse aufschrauben soll. Spätestens hier brauche ich eine Lösung um selektiv USB-Geräte zu blockiern.

(Sorry für die verspätete Zusatzinfo)
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: USB Gerät deaktivieren

  Alt 22. Jun 2007, 09:29
zu 2) Da besteht ein grundlegendes Missverstaendnis. Die Checkout-Methoden haben nichts mit Geraet an- bzw. abmelden zu tun. Es gibt eine Controller-Komponente und die erstellt fuer jedes vorhandene HID-Geraet ein Objekt. Diese Objekte kann man analog einem CVS zur Benutzung auschecken.

Ich halte die ganze Idee fuer Unsinn. Wer physischen Zugang zum Computer erlangt, der kann auch gleich die Festplatte klauen.

Q1 Nein. Nur USB-Geraete die Seriennummernstrings haben sind individuell erkennbar, aber ein Geraet muss keine Seriennummer haben und bei Maeusen und Tastaturen ist es ungewoehnlich.

Q2 CM_Request_Device_Eject ist schon der richtige Ansatz, aber es gibt da ein paar wirklich unfeine Probleme. Von einem Service aus wird es schwierig.
Die Funktion ist fuer das Safe Removal zustaendig (einschliesslich des Dialogs). Dummerweise hat die Funktion ein teilweise merkwuerdiges Benehmen. Ohne Dialog kann es zu Verzoegerungen beim Auswerfen kommen. Ca. 30 Sekunden bei einem USB-Stick sind nicht ungewoehnlich. Indiesem Zeitfenster kann man schon einiges kopieren.
Man kann mit dieser Funktion USB-Maeuse und (wahrscheinlich) USB-Tastaturen auswerfen, aber das ist ein offensichtlicher Bug der Funktion.

Mach dem Kunden klar was Sicherheit ist. Sicherheit ist nicht den Rechner wegschliessen, sondern auf den Schluessel aufzupassen.
Warum hat ein reines anzeigesystem ueberhaupt unternehmenskritische Daten gespeichert?
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#7

Re: USB Gerät deaktivieren

  Alt 22. Jun 2007, 09:46
Moin, moin

(leider kaum Zeit) Hint: plug&play Dienst abschalten !

Luckie hat sich doch schon einige Stunden investiert.
(wahrscheinlich wieder keine Zeit für die Dokumenta...)

Edit: Sorry Michael hat seine Webseiten aufgeräumt,
deshalt kommen hier die Linkalternativen

Tutorial for making Service Applications using Delphi
by Finn Tolderlund.
http://www.tolderlund.eu/delphi/service/service.htm

oder bei Torry
http://www.swissdelphicenter.ch/torr...de.php?id=1322


Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#8

Re: USB Gerät deaktivieren

  Alt 22. Jun 2007, 09:47
> Warum hat ein reines anzeigesystem ueberhaupt unternehmenskritische Daten gespeichert?
Nein, hat es nicht, kein Sorge!

1) Der Kunde hat Angst dass jemand sich über den PC in die Domäne "hacken" oder einloggen könnte. Wie das genau klappen soll mit Domänen-Gast-Rechten sei mal dahingestellt.

2) Angst von "Defaceing". Das Anzeigesystem steht im öffentlich zugänglichem Bereich des Kunden. Wenn jetzt wie oben beschrieben die USB-Steckplätze zugänglich sein müssen, könnte es natürlich zu einem "Defaceing" kommen. Stell euch mal vor auf eurem Beamer für Firmenpräsentationen läuft auf einmal ein Pr0n, das wäre nicht so schön.

Ich tendiere mittlerweile zu diese Lösung (Sperren des PCs beim anstecken eines neuen USB-Gerätes) http://www.delphipraxis.net/internal...t.php?t=112726 , allerdings habe ich auch da keine Idee wie es weitergehen soll.
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#9

Re: USB Gerät deaktivieren

  Alt 22. Jun 2007, 09:49
mschaefer: Error 404

Edit: http://www.michael-puff.de/Developer...s/TNetSend.zip

Edit2: Was hat NetSend mit dem aktuellen Problem zu tun?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: USB Gerät deaktivieren

  Alt 22. Jun 2007, 09:49
man sollte dabei beachten das vom Plug&Play-Dienst einige andere Dienste abhängig sind!
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz