Avatar billede kkaen Nybegynder
16. februar 2009 - 18:47 Der er 30 kommentarer og
1 løsning

Identifikation af brugere

Jeg har lavet et site, hvor jeg gerne vil kunne identificere brugererne unikt, som besøger sitet. Der eksisterer ingen login-funktionalittet på sitet. Jeg har overvejet, at identificere brugerne vha. brugerens IP. Men da nogle brugere kan være på DHCP-server, virker denne løsning ikke så godt. Mit spørgsmål er så, om jeg ikke kan identificere brugerne vha. brugerens MAC-adresse? Så vil det da være en unikt identifikation.

Findes der evt. noget online dokumentaion på, om MAC kan afhjælpe problematikken?
Avatar billede erikjacobsen Ekspert
16. februar 2009 - 19:08 #1
Du kan ikke aflæse brugernes MAC-adresser - de passerer ikke gennem de routere trafikken går igennem.

Du må specificere hvad du mener med at "kunne identificere brugererne unikt" - man kan jo ikke se hvem, der sidder bag skærmen. Og IP-adresser kan ændres, og der kan være mange brugere bag samme IP. Og en cookie kan nægtes eller slettes.
Avatar billede arne_v Ekspert
16. februar 2009 - 20:16 #2
Den eneste måde at identificere brugere på er ved at lade dem logge ind (og selv med den løsning kan 1 person have 2 konti).

Når man i web statistik sammenhæng snakker om unikke brugere, så er det noget lidt andet.
Avatar billede kkaen Nybegynder
17. februar 2009 - 09:33 #3
Skrevet man. d. 16. februar 2009 kl. 19:08:22
Med "identificere en bruger unikt" mener jeg, at man på serveren kan identificere en aktuel bruger uafhængig af handlinger foretaget af brugeren - herunder at logge ind.

Jeg havde nu ellers en anden opfattelse af mulighederne i brugen af MAC-adressen, end hvad der blev skrevet i førnævnte indlæg.

Jeg har netop forsøgt at finde noget dokumentation på den information, jeg synes at have i hukommelsen. Den information er her:

Unik MAC-adresse:
http://www.codeguru.com/cpp/i-n/network/networkinformation/article.php/c5451
"... You must realize that every ethernet card in the world has a unique MAC address."

java script:
http://www.webdeveloper.com/forum/showthread.php?t=134120
http://neilkilbride.blogspot.com/2008/02/finding-user-mac-address-javascript.html
http://www.eggheadcafe.com/community/aspnet/3/10054484/get-mac-address-javascrip.aspx

C#:
http://social.msdn.microsoft.com/forums/en-US/netfxnetcom/thread/2b125a0e-f67d-476f-b8a0-a21c99279d5b/
http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/1344dad4-dffe-486c-bf30-1b75d21fc9ba/
http://www.csharpfriends.com/Forums/ShowPost.aspx?PostID=7188
http://www.codeguru.com/Csharp/Csharp/cs_network/article.php/c6041
http://www.dotnetspider.com/resources/4889-Get-MAC-address-your-system.aspx
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 09:39 #4
Jamen, god fornøjelse med din MAC-adresse. Nej, MAC-adresser er ikke 100% unikke i verden. De skal blot være unikke på et LAN eller tilsvarende. Og nej, generelt vil browsere afvise de teknikker du linker til. Joh, du kan sikkert finde en gammel IE, uden sikkerhedsindstillinger. Generelt kan du ikke.
Avatar billede kkaen Nybegynder
17. februar 2009 - 09:56 #5
Som jeg havde forstået min undervisning i hardware, så forholdte det sig sådan, at MAC-adresser netop skulle være unike. Og at det faktum efterhånden resulterede i et problem, da der snart ville eksistere flere netkort, end nummer-tildelingen tillod.

Det kan da godt være, at browseren vil gøre opmærksom på, at en sikkerhedsforanstaltning skal overskrides på den aktuelle side. Og at brugeren derfor manuelt skal give tilladelse til det (ligesom med ActiveX). Men det gør jo ikke scenariet umuligt.

Findes der noget online dokumentation på, at browsers ikke vil tillade det? Eller blot dokumentation på påstandende? Jeg har forsøgt at henvise til dokumentation for mine påstande, men jeg har ikke rigtig set nogen dokumentation på, at teknikkerne i mine links ABSOLUT ikke virker.
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 10:43 #6
Nej, selvfølgelig virker de, nok, i en passende IE med passende indstillinger osv, og hvis brugeren siger ja. Er det godt nok for dig, så skal jeg ikke blande mig. Hvis det er brugere generelt på Internettet, så vil jeg sige, at du ikke kan.

Man tilstræber vel at sende netværkskort ud med forskellige MAC-adresser, men det lykkes ikke altid, og de kan jo yderligere, i dag, ændres efter forgodtbefindedne.
Avatar billede kkaen Nybegynder
17. februar 2009 - 10:52 #7
Det er nu mest, om det overhovedet er muligt. Også uden de mest kryptiske krumspring. Og det synes jeg da, at mine links giver udtryk for, at det netop er (?).

Men når du siger "Hvis det er brugere generelt på Internettet, så vil jeg sige, at du ikke kan", så kan jeg ikke helt få de informationer i mine links omkring javascript og C# helt til at passe med det udsagn. Både javascript og C# er da grundlæggende teknologier på nettet.

Jeg var ikke klar over, at individuelle brugere selv kan ændre på MAC-adressen. Jeg havde på fornemmelsen, at disse numre var "brændt" ind i selve hardwaren.
Jeg mente nu også, at der netop var en bestemt årsag til, at alle netkort skulle have en unik MAC-adresse. Jeg kan blot ikke lige komme i tanke om, hvorfor det eftersigende skulle forholde sig sådan (?).
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 11:02 #8
På et lokal netværk skal de være forskellige. Forskellige lokal netværk kan have netværksdimser med samme MAC-adresse.

De er ikke "brændt" ind længere, men de var engang.

Det er ikke javascript, der er problemet, men anvendelse af activex-objekter og sikkerhedsindstillinger.

Og når du nu nævner C# og .NET - ja, hvis du kan få et program til at køre hos brugeren, så kan du sikkert aflæse MAC-adressen.

Hvor er det du skal bruge det?
Avatar billede kkaen Nybegynder
17. februar 2009 - 11:12 #9
ActiveX giver mange muligheder på klient-maskinen, som klienten ikke er herre over, hvorfor ActiveX slet ikke skal betragtes i denne sammenhæng.

Findes der noget online dokumentation for, at MAC ikke er brændt ind i hardwaren længere?

Ang. javascript så er mine påstande om, at der godt kan overføres informationer omkring MAC fra klienten til serveren altså rigtige nok?

Jeg skal bruge informationerne til at bevise overfor mine eksiminatorer, at jeg havde ret, da jeg påstod, at serveren godt kan opnå informationer omkring en aktuel klients MAC-adresse, og at serveren derfor man identificere brugeren unikt.
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 11:23 #10
Igen, med fare for at gentage mig selv: Kun i IE, kun hvis ActiveX, og javascript, er aktiveret, og måske noget installeret hos klienten, og kun hvis brugeren siger ja. (og måske andet) - jeg vurderer at det ikke er interessant i den virkelig verden. Men du er velkommen til at have en anden mening.

På enhver tråd- eller trådløs router kan man "klone" en mac-adresse. Lad være med at læse gammel litteratur.

Jeg mener at svaret på dit sidste afsnit er: nej, det kan ikke lade sig gøre. Men som sagt: du er velkommen til at have en anden mening.
Avatar billede kkaen Nybegynder
17. februar 2009 - 12:20 #11
Det vil sige, at en router kan klone en MAC-adresse. Kan routeren så indsætte denne information i headeren af data-pakken, som en klient til routeren har sendt videre ud på nettet?

Jeg læser ikke gammel litteratur. Da jeg læste litteraturen, var det ny litteratur. Det er derfor, jeg forsøger at finde dokumentation for, hvordan tingene forholder sig p.t. gennem dette spørgsmål.

Jeg er ikke interesseret i "meninger". Dem kan jeg ikke bruge til noget. Jeg er kun interesseret i fakta, hvorfor jeg også udbeder mig online dokumentation på aktuelle påstande. Jeg skulle mene, at jeg netop har fundet online argumentation for mine indtryk i de tidligere skreve links. Nu forsøger jeg bl.a. blot at få informationerne i disse links verificeret gennem dette spørgsmål.
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 12:51 #12
Ja, og hvis det fx er det med at ændre MAC-adresser, så

  http://finddetselv.net/search?q=%22clone+mac%22

;) eller

  http://finddetselv.net/search?q=%22clone+mac+address%22

Det er gammel litteratur, uden nogen for for tvivl, hvis det siger at alle MAC-adresser er unikke, og man ikke ændre dem.

Hvis du skal se om de scripts, du har fundet, virker. Men gør dig selv den tjeneste også at prøve i Chrome, Opera, Firefox. Jeg gør det ikke for dig, fordi jeg mener det er formålsløst.

En hjemme-router på et LAN modtager en pakke med en MAC-adresse på klienten, og sender den videre med den MAC-adresse routeren har på WAN-siden. Det sker også for hver gang pakken passerer en ny router. Der er intet i IP-protokollen, der kan transportere en MAC-adresse videre.

Der er heller intet i HTTP-protokollen, der kan, selv om en browser kan tilføje nye felter. Det er der ingen der gør.

Kan du få et program, ikke en browser, men et program som noget ActiveX, eller en .exe program du har lavet, til at køre hos brugeren, så kan du nok. Men det er ikke almindelig brug af Internettet.

Og så kan jeg ikke se hvad mere du skal vide.
Avatar billede kkaen Nybegynder
17. februar 2009 - 14:49 #13
Altså jeg oprettede dette spørgsmål i den hensigt at få input fra folk, som har større indsigt i emnerne, end jeg har. Jeg har selvfølgelig prøvet at undersøge tingene selv, før jeg oprettede dette spørgsmål, hvilket også fremgår at mine oprindelige links. Så jeg kan ikke se, hvorfor sådan noget fis som "finddetselv.net" skal ind i billedet.

På det link, der blev henvist til sidst, står der:

"
SMAC does not change the hardware burned-in MAC addresses.  SMAC changes the "software based" MAC addresses, and the new MAC addresses you change will sustain from reboots.
"

Jeg vil gå ud fra, at man kan programmere sig til en løsning, som går udenom de ændringer, som SMAC har forårsaget (da ændringerne jo kun er software-basserede)?

Om det er muligt at benytte MAC-adressen eller ej, skal ikke nødvendigvis virke i alle browsers. Ej heller med den samme kode.

På dette link
http://www.computing.net/answers/networking/why-mac-address-is-unique/30170.html
står der, at MAC-adressen skal være unik, da ISP dermed kan tildele net-adgang. Der står også, at 1 IP = 1 MAC. Dette er ikke interessant i mit tilfælde.
Faktisk understøtter teksten i dette link mine påstande.
Her står der også om unikke MAC:
http://www.computing.net/answers/networking/what-is-mac-address/4994.html

Dette link er også interessant:
http://compnetworking.about.com/od/networkprotocolsip/l/aa062202a.htm

Og her står noget om Cloning:
http://compnetworking.about.com/od/networkprotocolsip/a/macaddressing_2.htm

Ang. transmitering af MAC så kan dette vel blot gøres som almindelig tekst. Altså ikke som en bestemt del af headeren på en datapakke. Og dette burde C# eller javascript vel kunne klare?
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 15:01 #14
Du er meget velkommen til at tro på alt muligt, der står på nettet. Men det gør det jo ikke rigtigt. Nu er der lige det her "a hardware address that uniquely identifies each node of a network. " Ja, hvis MAC-adresserne ikke er unikke på et LAN, et netværk at routere, så går det kage i det.

Jeg ved ikke hvordan du vil få C#-kode til at blive afviklet hos klienten. Skal downloade et .exe program? Eller skal de afvikle kode med ActiveX, som der skal gives tilladelse til, og som måske kan virke i IE, og ikke i FF?

Eller mener du at din C# kode på serveren kan aflæse MAC-adresser på klienten? Nej, det sker ikke - du kan alene (måske) aflæse  MAC-adresser på det LAN hvor webserveren står. Ikke brugbart til identifikation.

Du kan sende MAC-adressen tekst, men du kan ikke - generelt - aflæse den på klienten i browseren. Almindeilig sikkerhed.

MAC-adresse findes kun på ISO lag 2, og kun pakker på ISO lag 3 passerer routerne.

Men fortæl os endelig hvad der sker til eksamen.

Jeg "driller" dig måske, fordi jeg vil helt indtil det sted hvor kæden hopper af, så du kan få en god eksamen. Jeg kender til eksamen fra begge side af bordet ;)

Så prøv gerne igen: Hvad er problememt?
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 15:02 #15
Det går får hurtigt. Jeg mener: "Ja, hvis MAC-adresserne ikke er unikke på et LAN, et netværk bag en router, så går det kage i det."
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 15:03 #16
"Der står også, at 1 IP = 1 MAC." - det er forkert. En MAC-adresse kan uden videre knyttes til mere end en IP-adresse.
Avatar billede kkaen Nybegynder
17. februar 2009 - 15:17 #17
Jeg er ikke interesseret i at tro på alt, hvad der står på nettet. Det er derfor jeg gerne vil have gode dokumenterede argumenter gennem dette spørgsmål. Dog skal det siges, at det dog giver en vis overbevisning, når nogle forskellige programmeringssprog stiller klasser til rådighed, til netop dette formål.

Giver en full-trust C#-applikation ikke mulighed for, at der kan sendes information omkring MAC?

Det lyder godt, at du kender til eksamen fra begge sider ;-)
Mit problem er, om der ikke findes muligheder for, at en browser-klient identificeres på server-side af vedkommendes MAC-adresse?
Og alle programmeings-muligheder er som udgangspunkt åbne for at opnå dette...hvis det altså er muligt.
Umiddelbart er det jo muligt, eftersom en ISP kan identificere opkaldet af netforbindelsen via MAC. Men hvis det er en router, så kommer problemet ved klienterne til routeren. Kan noget kode (frit spil på alle hylder) ikke klare dette problem? Muligvis med ekstra tildeling af sikkerhedsniveau.
Avatar billede kkaen Nybegynder
17. februar 2009 - 16:29 #18
Nu hara jeg lavet en lille test ud fra noget kode, jeg fandt online. Testen udskriver vist MAC-adressen.

Kan denne kode gøre det ønskelige?

Her er koden:

protected void Page_Load(object sender, EventArgs e)
    {
        IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties();
        NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
        Response.Write("Interface information for " + computerProperties.HostName + ": " + computerProperties.DomainName + "<BR/>");
        foreach (NetworkInterface adapter in nics)
        {
            IPInterfaceProperties properties = adapter.GetIPProperties();
            Response.Write(adapter.Description + "<BR/>");
            Response.Write(" Interface type .......................... : " + adapter.NetworkInterfaceType.ToString() + "<BR/>");
            Response.Write(" Physical Address ........................ :" + adapter.GetPhysicalAddress().ToString() + "<BR/>");
            Response.Write("<HR/>");
        }

    }
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 16:33 #19
Det kører på serveren og udskriver formentlig MAC-adresse på et af serverens netkort.
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 18:42 #20
"en ISP kan identificere opkaldet af netforbindelsen via MAC", mellem din hjemmerouter og det der sidder inde på ADSL-centralen, er der ingen yderligere routere. Derfor kan den aflæse din routers MAC-adresse.
Avatar billede kkaen Nybegynder
17. februar 2009 - 19:15 #21
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 19:33 #22
Der er formentlig ikke noget problem, som før sagt, når du kører et ActiveX program, eller lignende. Men kun i IE, og kun hvis brugeren siger ja. Hvem vil gøre det, når man bare skal ind og se vejrudsigten?

Generelt kan du ikke, men hvis din lærers og censor har et begrænset udsyn på verden - den består kun af IE - og de heller ved noget om ActiveX, så kan du måske hive den hjem.

Men det sker ikke via IP/TCP-protokollen, og det sker ikke via HTTP-protokollen, det sker kun fordi visse browsere tillader at afvikle programmer, der udleverer følsomme oplysninger.

Lad os håbe jeg ikke være din censor ;)
Avatar billede kkaen Nybegynder
17. februar 2009 - 21:21 #23
Nu er det ikke blot en vejrudsigt, der er tale om. Det er ret omfattende data på serveren. Den data kommer fra klientens lokale computer. Og dér er der også et sikkerheds-aspekt. Dette er dog blevet løst. Endda i en web-version.
Nu har jeg ikke snakket om ActiveX. Og med min viden kan ActiveX ikke sammenlignes med javascript. Og jeg har fortrinsvist henholdt mig til javascript. Så jeg kan ikke helt forstå, at javascript ikke bliver mere præcist behandlet i svarerne herinde.

Protokoller kan jeg heller ikke se, hvorfor skal behandles her. Så vidt jeg ved er en protokol blot et regelsæt til kommunikation. Og dette omfatter derfor ikke censur på bestemte data-typer.
Jeg går ud fra, at det er kode-teknologien, som skal understøtte, at man kan grave så dybt i klientens computer, så man kan få fat på de ønskede oplysninger. Når disse så er i besidelse, så kan de sendes via protokoller ligesom alt anden data.

Men browser-problematikken er kun i ekstremerne. For jeg har også en applikation, som er installeret på klientens computer. Det er en WPF-applikation, som også gemmer objekter på serveren. Og med en WPF-applikation mener jeg da bestemt, at en MAC-addresse er en unik værdi i denne sammenhæng?
Avatar billede erikjacobsen Ekspert
17. februar 2009 - 21:41 #24
De eksempler du har vist med Javascript anvender ActiveX.

Prøv om at du få dem til at køre - så ved du om de virker.

Hvis du allerede har en ".exe" application ude hos brugeren, kan den formentlig aflæse en hel del, måske også MAC-adresse. Prøv, og prøv også på Vista, og på en ikke-administrator-konto på XP.

Vi snakker altså tilsyneladende ikke bare om et site, som spørgmålet antyder.

Men selv her har du måske problemer, 3 ting skal du tage stilling til eller undersøge
1) Flere personer kan bruge samme maskine med forskellig login. De får samme MAC-adresse
2) Hvis man anvender tynde klienter (hedder sådan noget ikke Citrix, ca.?), får brugerne så samme MAC-adresse?
3) Der kan være flere netværkskort på en maskine, på en bærbar typisk et WLAN-kort og et LAN-kort med forskellige MAC-adresser. Det vil tælle som 2 brugere.

Når du har oplysningen, kan den sendes tilbage som tekst.
Avatar billede kkaen Nybegynder
17. februar 2009 - 22:34 #25
Benytter javascriåt-eksemplerne activeX? Det var jeg ikke klar over. Jeg ved ikke så meget om activeX. Jeg gik egentlig ud fra, at det var et stykke selvstændigt kode, som skal installeres seperat. Man plejer da at skulle acceptere, at man vil eksekvere softwaren på et netsite.

1.
Da der ikke er lavet login (måske skal det laves - måske ikke), så er det korrekt, at der ikke skelnes mellem forskellige brugere på den samme computer
2.
Nu kan jeg ikke lige huske den nøjagtige forskel på tynde og tykke klienter. Er det ikke noget med, at data-trafikken på serveren foregår på klientsiden eller ej?
3.
Ja, det er korrekt. Den havde jeg ikke lige tænkt på.

Men alfa og omega er altså, at hvis man har tilgang til MAC-adressen, så kan man også identificere computeren unikt? (ikke nødvendigvis brugeren - blot computeren)
Avatar billede arne_v Ekspert
18. februar 2009 - 02:09 #26
Du skal skelne mellem forskellige ting:

A) server ser MAC adresse uden at client gør noget d.v.s. udelukkende fra request

kun muligt på samme LAN (ARP på IP addresse) men ikke muligt i alle andre sammenhænge

B) browser sende info til server

kun muligt hvis enten brugeren giver noget større rettigheder end normalt (ActiveX komponent, signed Java applet etc.) eller der er et sikkerheds hul i browseren

C) fast client app sender info til server

muligt medmindre brugeren kører med meget restrictede rettrigheder

(der er forskellige API'er til det men WMI er oplagt)

----

I dit spoergsmål skrev du site, så vi antager at mente en browser - web server løsning.

Og til en sådan er det ikke muligt generelt (se ovenfor for detaljer).

----

MAC adresser var oprindeligt tiltænkt at være unikke.

Men man har altid haft både en HW adresse og den brugte adresse, som software kan ændre.

Hvis den sidste er forskellig fra den første er den formentligt ikke unik.

Metode #A ovenfor kan kun se den brugte adresse. Jeg vil tro at WMI også kun ser den brugte adresse. Der må være måder at få fat i adressen i hardware, men worst case så er de driver specifikke.
Avatar billede erikjacobsen Ekspert
18. februar 2009 - 07:27 #27
"Men alfa og omega er altså, at hvis man har tilgang til MAC-adressen, så kan man også identificere computeren unikt?"

Det sker ude i verden at fabrikanter sætter samme MAC-adresse på en serie udstyr - formentlig som en fejl. Se fx:
http://www.sat-industry.net/forums/dreambox-hardware/23756-two-dreamboxes-same-mac-how-can-i-fix.html

Der er også andre historier. Så selv om man ikke ændrer MAC-adressen, er den ikke nødvendigvis helt "unik", men måske "unik" nok til din anvendelse. Det er dig, der bestemmer.
Avatar billede kkaen Nybegynder
18. februar 2009 - 08:30 #28
Skrevet ons. d. 18. februar 2009 kl. 02:09:27

A.
Det havde jeg heller ikke tænkt mig. Der skal naturligvis være noget custom-made kode til formålet.

B.
Ja, der skal muligvis grantes større muligheder fra klientens side. Jeg ved stadig ikke rigtigt noget om ActiveX, men mon ikke det er muligt med Java Web Start?

C.
Fast client ved jeg ikke hvad er. Men jeg går ud fra, at det er en selvstændig lokal applikation på computeren. I så fald er jeg enig i, at den burde kunne klare det afhængig af API.

"Site" var måske et dårligt ordvalg fra min side. Måske skulle jeg have skrevet "server", da det både skal fungere som dataplads til en browser-applikation og en selvstændig installations-applikation.

Skrevet ons. d. 18. februar 2009 kl. 07:27:46
Jo, der sker naturligvis altid fejl. Men man må vel antage, at MAC er unik (den brændte). Hvis ikke er der fejl...som så skal rettes ligesom i tilfældet med Dreambox's (jeg ved ikke, hvad det stykke hardware reelt er).
Avatar billede kkaen Nybegynder
30. december 2010 - 16:02 #29
Arne_V ->
Lægger du lige et "svar" ?
Avatar billede arne_v Ekspert
30. december 2010 - 17:51 #30
ok
Avatar billede arne_v Ekspert
30. december 2010 - 17:51 #31
om igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Udviklings- og Forenklingsstyrelsen

Webanalytiker til digitale løsninger

RISMA Systems A/S

Senior PHP-udvikler

Udlændinge- og Integrationsministeriet

Forretningsudvikler med fokus på digitalisering og AI

Danmarks Meteorologiske Institut

IT-operatør søges til DMI