2016-11-03 3 views
0

Все,Несколько пользователей с доступом микро помощью веб-браузера

Я работаю на микроконтроллере (а PIC32MZ быть конкретными), которые могут быть удаленно получить доступ через Интернет. Микроконтроллер предлагает рабочую реализацию стека TCP/IP, и я могу успешно использовать браузер для связи с микроконтроллером.

Если несколько пользователей обращаются к микроконтроллеру, существуют ли рекомендации по безопасному различию между несколькими пользователями?

Я хотел бы, чтобы не изобретать колесо ... Я посмотрел немного в Основном контроля доступа - но это большой нет-нет ...

У меня также есть страница Логин рабочий, поэтому я могу запросить имя пользователя и пароль, но мне нужно локально создавать и поддерживать структуры данных для управления различными пользователями?

Учитывая повсеместный характер проблемы, я бы подумал (надеюсь), что существуют установленные рекомендации о том, как различать и управлять несколькими пользователями во встроенной среде.

Я ценю вашу помощь и помощь.

С уважением, Винченцо

---- EDIT ----

P.S. - Если бы я действительно должен был кодировать все самостоятельно, это блок-схема, я придумал (обратная связь снова оценили)

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

Если [это применимо] (http://ww1.microchip.com/downloads/en/AppNotes/00833c.pdf), то просто введите код для cgi. – xvan

+0

Если вы никогда не переустанавливаете 'globalNumberOfFailures' (вы, похоже, не делаете этого), вы можете стать легкой жертвой атаки DoS.Так что это, вероятно, контрпродуктивно – tofro

+0

Пожалуйста, не * всегда * рассматривайте возможность подключения Pic32MZ к Интернету. Это звучит тревожно, так как в конечном итоге ваше устройство будет в новостях за то, что не обеспечило надлежащего доступа к Интернету и тем самым способствовало демонизации IoT как прохода безопасности в мир забвения в Интернете. Просто потому, что вы можете обслуживать веб-страницы из ПОС, что не означает, что он является надлежащим защищенным веб-сервером. – barny

ответ

0
  1. Человек А посещает сайт в первый раз, и он видит логин форма. Он заполняет его и отправляет на ваш сервер с помощью метода http POST.

  2. Ваш сервер получает метод POST, проверяет, действительны ли учетные данные , и если все в порядке, ваш сервер создает хэш из строки входа пользователя, объединенной с текущей датой и временем. Хэш, логин, дата & время auth, добавляются в какую-то таблицу на вашем сервере (это может быть даже текстовый файл). Этот маленький драгоценный хэш отправляется обратно вашему пользователю через HTTP-заголовок «Set-Cookie».

  3. Каждый раз, когда ваш сервер получает какой-либо HTTP-запрос, ваш сервер проверяет наличие cookie с хешем. Сервер сравнивает печенье с записью в таблице, проверьте, если время еще не истек, а сервер иметь в виду, что это запрос сделан VIP, вошедшего в систему.

Реализовать выше, и вы хорошо идти. Посмотрите, как это выглядит. Не связывайтесь с тем, как вы называете его «sessionID» с пользовательским ip. Хорошо отслеживать это как-то, но не отказывать пользователю, который прошел действительный sessionid из другого ip. Люди с мобильными устройствами имеют тенденцию часто менять свои ip.

Я думаю, что нет более простого способа.
Это может быть забавное упражнение.

+0

спасибо за ваши предложения ...:) – Vincenzo