Benutzer mit den meisten Antworten
MAC Adresse ausfiltern

Frage
-
Hallo,
ich habe ein Formular, welches ständig einen Webservice kontaktiert. Kann ich im Webservice die MAC-Adresse des Clientrechners ermitteln? Ich benötige diese Adresse zur Authentifizierung, da diese Adresse auf den Server hinterlegt wird.
Gruß
Claudia
Antworten
-
Hallo Frau Salzwedel,
das ist nur in einem Spezialfall möglich, und zwar wenn sich Client und Server im gleichen Netzwerk befinden. Dann kann man die MAC-Adresse auflösen. Andernfalls, wird bei der Auflösung die MAC-Adresse des ersten Routers ausgegeben. Das ist eine Beschränkung des TCP/IP-Protokoll, die Sie nicht umgehen können. [1]
Außerdem eignet sich die MAC-Adresse nicht als Authentifizierung, da Sie nicht sicherstellen können, dass eine MAC-Adresse eindeutig ist. Ein Angreifer könnte außerdem sein MAC-Adresse manipulieren und sich als der Client-Rechner ausgeben.
[1] http://de.wikipedia.org/wiki/Transmission_Control_Protocol/Internet_Protocol
Viele Grüße,
Thomas Fröhle
MSDN Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline
Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu MarkenzeichenInformationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.- Bearbeitet Thomas Fröhle Mittwoch, 25. Juli 2012 10:36
- Als Antwort vorgeschlagen Thomas Fröhle Mittwoch, 25. Juli 2012 10:59
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 23. August 2012 15:34
-
Ahhhh, jetzt kommt licht ins dunkle....
also, denke schleife ist die einfachste methode. bei allem anderen müsstest du ja dein eigenen netzwerkverkehr abfangen und prüfen ob die ziel adresse die des webservers entspricht, von welcher ip dieses geschickt hat, deine netzwerkadapter durchlaufen bis du den mit der richtigen ip gefunden hast und dem nach seiner mac fragen.
denke das ist nicht ganz so trivial wie die sschleife und probieren. musst ja nur einmal machen und die mac adresse die funktioniert merken. beim starten des programms z.b.
mfg
Shmoo
***********************************************************
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 23. August 2012 15:34
Alle Antworten
-
Hallo Frau Salzwedel,
das ist nur in einem Spezialfall möglich, und zwar wenn sich Client und Server im gleichen Netzwerk befinden. Dann kann man die MAC-Adresse auflösen. Andernfalls, wird bei der Auflösung die MAC-Adresse des ersten Routers ausgegeben. Das ist eine Beschränkung des TCP/IP-Protokoll, die Sie nicht umgehen können. [1]
Außerdem eignet sich die MAC-Adresse nicht als Authentifizierung, da Sie nicht sicherstellen können, dass eine MAC-Adresse eindeutig ist. Ein Angreifer könnte außerdem sein MAC-Adresse manipulieren und sich als der Client-Rechner ausgeben.
[1] http://de.wikipedia.org/wiki/Transmission_Control_Protocol/Internet_Protocol
Viele Grüße,
Thomas Fröhle
MSDN Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline
Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu MarkenzeichenInformationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.- Bearbeitet Thomas Fröhle Mittwoch, 25. Juli 2012 10:36
- Als Antwort vorgeschlagen Thomas Fröhle Mittwoch, 25. Juli 2012 10:59
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 23. August 2012 15:34
-
Hallo Claudia,
wie Thomas schon schrieb, ist die MAC Adresse kein sinnvolles Kriterium für Aufrufbeschränkungen.
Es gibt verschiedene Möglichkeiten, eine solche Authentifizierung vorzunehmen. Damit man dir sagen kann, was sich gut eignet, bräuchte man aber weitere Informationen.
Soll der Service nur von einem einzigen Client aufgerufen werden?
Was ist in deinem Fall das "Formular"? Eine Form in einer lokalen (WinForms, WPF, ...) Anwendung?
Wie wird der Webservice aufgerufen? Per http, https, ...?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
sofern du dein Webservice mit visual studio und dessen Webservice vorlage erstellt hast,
sollte dir das hier weiterhelfen.
http://msdn.microsoft.com/de-de/library/9z52by6a(v=vs.100).aspx
mfg
***********************************************************
- Als Antwort vorgeschlagen Thomas Fröhle Mittwoch, 25. Juli 2012 10:59
-
Danke für die vielen Antworten. Ich benötige die MAC Adresse nur einmal, um der Clientanwendung eine für ihn bestimmte Information zurück zu senden. Ich hatte mich falsch ausgedrückt. Anhand der MAC Adresse wird der richtige Rechner auf den Server gefunden.
Ich hatte mal mit "NetworkInterface[] NetworkAdapters = NetworkInterface.GetAllNetworkInterfaces();" die Networkadapter ausgelesen und festgestellt, das z. B. auf meinem Notebook 5 Adressen vorhanden sind.
Gibt es vielleicht eine Möglichkeit, die richtige MAC Adresse für den Aufruf des WS festzustellen um damit die Adresse mit an den Service als String zu übertragen?
Gruß
Claudia
-
Gibt es vielleicht eine Möglichkeit, die richtige MAC Adresse für den Aufruf des WS festzustellen um damit die Adresse mit an den Service als String zu übertragen?
solange der webservice nicht im gleichen netz befindet, also im heimnetzwerk vor dem router, sind alle 5 adressen falsch. da du die adresse vom letzten knoten punkt bräuchtest bevor dein paket beim webservice eintrudelt, da dies mit hoher wahrscheinlichkeit bei einer anfrage mehrfach ändern kann ist das asulesen "der richtigen mac" praktisch unmöglich, abgesehen von der sinnhaftigkeit, da selbst wenn die mac adressen von deinem notebook bis zum webservice überleben sollte (was diese nicht tut), ist die authentifizierung so sicher wie die abfrage nach einer zahl zwischen 1 u. 5.
lies dir doch bitte die links durch und mach eine header authentifizierung, diese ist optional, genauso wie die art und anzahl der parameter. sieht zugegebener maßen erstmal kompliziert aus, aber wenns einigermaßen fluppt ist es eigentlich ganz einfach.
Gibt es vielleicht eine Möglichkeit, die richtige MAC Adresse für den Aufruf des WS festzustellen um damit die Adresse mit an den Service als String zu übertragen?
sinnfrei aber, Ja, im SOAP header -> Hier <-
MfG
Shmoo
***********************************************************
- Bearbeitet Lennart F Mittwoch, 25. Juli 2012 11:41
-
Danke. Ich habe wahrscheinlich falsch angefangen, die Aufgabe zu beschreiben. Im eigentlichen Sinne ist es gar nicht notwendig, die MAC Adresse aus der URL auszulesen. Ich habe das schon verstanden, dass es nicht möglich ist, die Adresse von meinem WS zu erkennen - ist ja auch logisch.
Ich benötige nur den richtigen Netzadapter, welcher aktuell eine Verbindung von z. B. meinem Laptop ins Netzwerk aufbaut. Ist das möglich? Letztendlich benötige ich dann die MAC Adresse dieses Adapters, unabhängig vom WS.
Auf dem Webserver wurde vor Jahren auf Grund der Zuordnung zu den Clientrechnern ein eindeutiger Name vergeben. Dieser Name ist die MAC Adresse der einzelnen Rechner. Daher benötige ich letztendlich diese Adresse, damit ich dann die richtigen Informationen für meinen Rechner zurückbekomme. Der Webservice benötigt nur einen Namen ( in meinem Fall die MAC), um in der Datenbank die Informationen für mich zu finden.
Das heißt, das ich als Parameter für den WS den Rechnernamen (playername) in Form der MAC Adresse übergebe.
[WebMethod] public string NewProjectInfo(string playername, string hashwert, string oldnumber)
Ich könnte die vorhandenen 5 Adressen als Schleife durchlaufen lassen solange, bis die richtige Adresse dabei ist. Oder geht es einfacherer, dass ich schon beim Aufruf feststellen kann, welcher Adapter mit welcher Adresse die Verbindung aufbaut, so dass ich den playername=MAC_Adresse zuweisen kann?
Ich hoffe, dass ich es diesmal etwas besser beschrieben habe, was ich möchte.
LG
Claudia
-
Ahhhh, jetzt kommt licht ins dunkle....
also, denke schleife ist die einfachste methode. bei allem anderen müsstest du ja dein eigenen netzwerkverkehr abfangen und prüfen ob die ziel adresse die des webservers entspricht, von welcher ip dieses geschickt hat, deine netzwerkadapter durchlaufen bis du den mit der richtigen ip gefunden hast und dem nach seiner mac fragen.
denke das ist nicht ganz so trivial wie die sschleife und probieren. musst ja nur einmal machen und die mac adresse die funktioniert merken. beim starten des programms z.b.
mfg
Shmoo
***********************************************************
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 23. August 2012 15:34