2016-11-03 5 views
0

Alle Zugriff aufMehrere Benutzer ein Mikro mit einem Webbrowser

ich auf einem Mikrocontroller arbeite (a PIC32MZ um genau zu sein), die über Web zugegriffen werden kann. Der Mikrocontroller bietet eine funktionierende TCP/IP-Stack-Implementierung, und ich kann erfolgreich einen Browser verwenden, um mit dem Mikrocontroller zu kommunizieren.

Wenn mehrere Benutzer auf das Mikro zugreifen, gibt es Richtlinien für die sichere Unterscheidung zwischen mehreren Benutzern?

Ich mag nicht das Rad neu erfinden ... sah ich ein wenig in Basic Access Control - aber das ist eine große no-no ...

ich auch eine Login-Seite Arbeits habe, also kann ich nach einem Benutzernamen und einem Passwort fragen, aber muss ich lokal Datenstrukturen erstellen und pflegen, um die verschiedenen Benutzer zu verwalten?

Angesichts der allgegenwärtigen Natur des Problems würde ich (hoffe), dass es Richtlinien gibt, wie man zwischen mehreren Benutzern in einer eingebetteten Umgebung unterscheiden und verwalten kann.

Ich schätze Ihre Hilfe und Unterstützung.

Mit freundlichen Grüßen, Vincenzo

---- ---- EDIT

P. S. - Wenn ich wirklich alles selbst habe zu kodieren, das ist das Flussdiagramm, kam ich mit (Feedback wird wieder geschätzt)

browser requests web page and sends a (possibly uninitialized) sessionID 

server extracts IP/sessionID 

if IP is blacklisted 
{ 
    deny web page and (re)start timer 
} 
else          // possible legit request 
{ 
    if IP/sessionID is valid    // existing user ! 
    { 
     process request 
    } 
    else         // new user? 
    { 
     if activeConnections < max AND globalNumberOfFailures < max  // if we have connections available and we are not under attack 
     { 
      request credentials 

      if credentials are valid   // legit user 
      { 
       create new unique sessionID 

       update IP/sessionID table 

       process request (and return sessionID) 

       activeConnections++ 
      } 
      else        // distracted user ? 
      { 
       deny request 

       globalNumberOfFailures++ (start timer) // system wide attack ? 

       if first fail for that IP 
       { 
        add IP to list of suspicious IPs 
       } 
       IP_failCounter++ 

       if IP_failCounter > max 
       { 
        blacklist IP, start timer 
       } 
      } 
     } 
     else 

      deny request 
    } 
} 
+0

Wenn [dies zutrifft] (http://1.microchip.com/downloads/en/AppNotes/00833c.pdf), dann googeln Sie einfach nach cgi-Sitzungscode. – xvan

+0

Falls Sie 'globalNumberOfFailures' nie zurücksetzen (Sie scheinen es nicht zu tun), könnten Sie ein leichtes Opfer für eine DoS-Attacke werden.Das ist wahrscheinlich kontraproduktiv. – tofro

+0

Bitte denken Sie daran, Ihr Pic32MZ nicht an das Internet anzuschließen. Das hört sich erschreckend an, als würden Sie damit enden, dass Ihr Gerät in den Nachrichten ist, weil es den Internetzugang nicht richtig sichert und so zur Verteufelung des IoT als Sicherheit zurück in eine Welt der Internet-Vergessenheit beiträgt. Nur weil Sie Webseiten von einem PIC aus bedienen können, bedeutet das nicht, dass es ein richtiger sicherer Webserver ist. – barny

Antwort

0
  1. Person A ist zu Besuch Website zum ersten Mal und er Login sehen bilden. Er füllt es aus und sendet es mithilfe der http POST-Methode an Ihren Server.

  2. Ihr Server erhalten die POST-Methode, überprüfen Sie, ob die Anmeldeinformationen gültig sind und wenn alles in Ordnung ist, erstellt Ihr Server Hash aus der Zeichenfolge der Benutzeranmeldung verkettet mit aktuellem Datum und Uhrzeit. Hash, Login, Datum & Zeit der Auth, werden zu einer Art von Tabelle auf Ihrem Server hinzugefügt (es kann sogar Textdatei sein). Dieser kleine wertvolle Hash wird über den HTTP-Header "Set-Cookie" an Ihren Benutzer gesendet.

  3. Jedes Mal, wenn Ihr Server eine HTTP-Anfrage erhält, prüft Ihr Server, ob auch ein Cookie mit dem Hashwert angegeben wurde. Server vergleicht Cookie mit Eintrag in der Tabelle, ob die Zeit noch nicht abgelaufen ist und der Server im Auge behält diese Anforderung von VIP, der angemeldet gemacht wird.

die oben implementieren und Sie sind gut zu gehen. Schau, wie lustig es aussieht. Verbinden Sie nicht, wie Sie es 'sessionID' mit Benutzer-IP nennen. Es ist gut, es irgendwie zu verfolgen, aber leugne keinen Benutzer, der eine gültige SessionID von einer anderen IP-Adresse erhalten hat. Menschen mit mobilen Geräten neigen dazu, ihre IPs oft zu ändern.

Ich denke, es gibt keinen einfacheren Weg.
Es könnte Spaß machen Übung.

+0

danke für deine Vorschläge ...: -) – Vincenzo

Verwandte Themen