У мене є досвід системного проектування та програмування, але не інтернет-безпеки. Чи може хто-небудь допомогти визначити, чи є наступний дизайн достатньо безпечним?
Система складається з двох частин:
По-перше, веб-сайт / сервер (забезпечений за допомогою SSL), який відображає карту та розбиває пробіл про місцезнаходження користувача. Друзі & amp; родичі, які надали користувачеві пароль, можуть увійти і побачити, де знаходяться користувачі та де вони були (наприклад, за останні 24 години).
По-друге, телефонна програма, яка передає дані GPS на сервер. Основний розгляд останнього полягає в тому, щоб зберегти повідомлення про місцезнаходження як можна коротше, щоб мінімізувати час автономної роботи та допуск даних користувача. Тому я дійсно не хочу використовувати SSL для відправки повідомлень з телефону (це додасть великі накладні витрати в іншому невеликому повідомленні - можливо, надсилається кожну хвилину). Він також додає складності та розміру програми.
Моїм запропонованим рішенням є наступне:
При реєстрації (через веб-сайт) система створює хеш для користувача, який ґрунтується на імені користувача та паролі, який зберігається в базі даних як "ідентифікатор користувача" (це буде інший хеш, який використовується для зберігання пароля) . Можливо, SHA512, хоча це може бути не дуже довго.
Під час встановлення програми на свій телефон користувачі вводять ім'я користувача & amp; пароль. Додаток потім використовує той самий алгоритм хешування, і надсилає хеш-значення на сервер через кінцеву точку, яка не є SSL. Якщо розпізнано, сервер відповідає OK і додаток зберігає хеш як ідентифікатор користувача.
Під час запуску програми кожен раз, коли відзначається нове місце розташування, він надсилається разом із міткою часу та ідентифікатором користувача на сервер (знову ж таки не SSL). Сервер зберігає дані відповідно до правильного ідентифікатора користувача.
Сервер буде працювати на двох окремих веб-службах, один SLL і один не, обидва розмовляють з тією ж базою даних.
Там, ймовірно, дефект десь, будь ласка, дайте мені знати, якщо так! Безпека, звичайно, є те, що той, хто не отримав пароль, не повинен бачити місцезнаходження користувача. Заздалегідь спасибі.