Хешування паролів та підтримка вашого користувача


10

Нещодавно ми перейшли до кращої стратегії зберігання паролів. З нею вийшло все хороше:

  • Паролі зберігаються після переходу через bCrypt
  • Під час створення облікового запису користувачеві надсилається посилання для активації, щоб підтвердити право власності на адресу
  • Забули пароль без питання безпеки, на їх адресу надсилається посилання.
  • Посилання закінчується через 24 години, після чого їм потрібно буде подати запит на нове.
  • Якщо обліковий запис створено з наших співробітників, надіслати електронний лист із випадковим надійним паролем. Після входу в систему користувач повинен скинути його на те, що ми не знаємо, а це bCrypt'd.

Зараз це відповідає «найкращій практиці», але це значно збільшило наш обсяг підтримки від постійних користувачів, які все це не розуміють, вони просто хочуть увійти.

Ми часто отримуємо запит від користувачів, які скаржаться на:

  • Неправильний пароль (від того, який потрібно скинути, вони часто вставляють його з пробілом в кінці). Вони кажуть нам, що вони використовують, але ми не можемо їм сказати, який їх фактичний пароль.
  • Скажімо, вони не отримують електронний лист, який ми надсилаємо їм (активація, скидання тощо). Це часто не так, після багатьох проблем з усунення неполадок ми зазвичай з'ясовували, що вони вводили помилку в електронній пошті, що вони не перевіряють правильний обліковий запис електронної пошти або що він просто перейшов у папку зі спамом.

Ми, звичайно, не можемо спробувати це для них, оскільки у нас немає пароля. Ми реєструємо невдалі спроби, але також очищаємо пароль, який вони використовували, оскільки це, ймовірно, пароль, який використовується для іншого облікового запису, і ми не хотіли зберігати його у простому текстовому файлі журналу. Це залишає нам майже нічого, щоб допомогти їм, коли вони повідомляють про проблеми.

Мені цікаво, як більшість людей вирішують такі питання?


2
Крім того, щоб бути дещо описовішими в електронних листах, які ваша система надсилає користувачам, я не бачу, що ви могли б зробити інакше, зберігаючи кращі практики. Побажаєш, що ти можеш просто ляпнути дурних користувачів.
Бернар

1
Люди дурні, ваші користувачі, більше, ніж більшість інших, я не бачу тут питання?

8
Jarrod, ти просто ображаєш своїх користувачів. Дурний тут ти. Ви не розумієте рівня комп’ютерної грамотності своїх користувачів. Не ображайтесь, але ви пишете програмне забезпечення для людей, не для комп'ютерних вун. Якщо ви не бачите жодного питання, мабуть, це означає, що всіх тих експертів із юзабіліті там можна звільнити, бо вони насправді не потрібні. Це просто проблема з "дурними людьми", тож ми - розумні розробники просто забороняємо їх в Інтернеті, і проблема зникне :) Якщо хтось написав систему, якою може користуватися лише автор, ви не бачите проблеми?
Славек

2
@Slawek: ні, справді, люди дурні.
Брайан Боттчер

@JarrodRoberson - це навряд чи просто його користувачі - коли ти маєш справу з публічними веб-додатками, які зазвичай отримують. Сказане, подобається це чи ні , воно все ще займає ресурси підтримки, і це дуже вагоме питання.
ГрандмайстерB

Відповіді:


7

Неправильний пароль (від того, який потрібно скинути, вони часто вставляють його з пробілом в кінці). Вони кажуть нам, що вони використовують, але ми не можемо їм сказати, який їх фактичний пароль.

Виправляється, замість того, щоб включити посилання з одноразовим GUID, який входить в систему, і змушує їх скинути пароль. Не змушуйте користувача копіювати та вставляти. (Крім того, чому б не позбавити пробілів наприкінці пароля у вашій формі.)

Скажімо, вони не отримують електронний лист, який ми надсилаємо їм (активація, скидання тощо). Це часто не так, після багатьох проблем з усунення неполадок ми зазвичай з'ясовували, що вони вводили помилку в електронній пошті, що вони не перевіряють правильний обліковий запис електронної пошти або що він просто перейшов у папку зі спамом.

Переконайтеся, що ваша вихідна електронна пошта знешкоджена (можливо, встановіть тестові облікові записи на деяких поширених поштових сервісах), запишіть що-небудь, що трапиться, і, можливо, повідомте про це користувачеві, якщо він спробує запросити нове скидання (наприклад, пошту на johndoee @ gmail .com не вдалося, користувач не знайдений, чи правильно ви написали?). Крім того, будьте зрозумілі для користувачів щодо питань правопису та спаму.

Крім того, OpenID та інші сторонні автори також є варіантом, як говорили інші.


деякі люди ставлять пробіли у своїх паролях?
soandos

Деякі люди вирізають автоматично створені паролі та включають пробіли на початку та / або наприкінці випадково. (Прочитайте питання.)
Макке

3

Я б сказав, використовуйте сторонній метод аутентифікації, наприклад Facebook, OpenID, Google ... все, що підходить для ваших користувачів. Однак якщо ваші користувачі не можуть запам'ятати ваш пароль, можливо, вони не зможуть використовувати систему аутентифікації третьої сторони ...

Залежно від вашої ситуації, можливо, ви зможете використовувати іншу систему, наприклад, SSL-клієнтські сертифікати (їх, безумовно, важко встановити для кінцевих користувачів, але якщо це компанія і ви можете автоматизувати її встановлення, це чудово), Windows SSO, мобільний додаток тощо


Клієнтські сертифікати - це ідеальна ідея. Вони небезпечні і кошмар, щоб виправити віддалено, якщо щось піде не так. Хоча Openid - гарна ідея
Том Сквайрс

Як небезпечні сертифікати?
Бернар

@bernard кожен, хто є на цьому ПК, має сертифікат. Її також досить легко вивести. Вийти з вірусом
Том Сквайрс

1
Я погоджуюся, що вони такі ж безпечні, як і машина, на якій вони перебувають, але це зовсім інше питання.
Бернард

3

Вам це навіть потрібно робити? Перше, що вам потрібно зробити, це визначити, від чого ви захищаєте і від кого це захищаєте. Можливо, це просто не варто витрат на кращу практику, а може, найкраща практика навіть не зупинить вашого нападника.

Якщо ви проти проти АНБ і хочете чогось захотіти, відмовтесь і полегшіть життя своїх користувачів. Якщо у вас є номери кредитних карток, вам доведеться миритися з проблемами, необхідних для забезпечення необхідного рівня безпеки, адже там погані хлопці, які хочуть їх, і витратять гроші та час, щоб їх отримати. Це доступ до сімейного фотоальбому, чи потрібна вам вся така безпека.

Прочитайте твори Buce Scheiners («Секрети та брехня») як гарний початок розуміння безпеки.


3

Перше, що вискакує, це те, що ваші електронні листи надходять у небажану пошту. Налаштування електронної пошти таким чином, щоб вона була визнана справжньою, не є тривіальною. Я пропоную вам розібратися в тому, як не допустити неправильного позначення вашої електронної пошти (окреме запитання про ТАК?)

Друге, що я рекомендую, - це надати вашим користувачам веб-сайт / додаток одним кліком, який ініціює відновлення пароля електронною поштою. Відмовтеся робити це будь-яким іншим способом, ніж електронна пошта, це незахищено і створює поганий прецедент.


Не те, що електронна пошта є особливо безпечним способом передачі конфіденційної інформації. Якби тільки постійні користувачі могли турбуватись із GPG та ssh клавішами ...
tdammers

@tdammers Я згоден, що це не так безпечно. Однак це стало основою вашої ідентичності в Інтернеті (на краще чи гірше). В даний час немає кращої життєздатної альтернативи.
Tom Squires

Так, є. Зашифрована електронна пошта. Я користуюсь цим постійно, і це мене дратує, що навіть величезні корпорації не заважають пропонувати шифрування паскі для чутливої ​​електронної пошти. Це навіть не важко здійснити. Мені здається дивним, що існують закони (принаймні тут, у Нідерландах), які роблять SSL обов'язковим для конфіденційної інформації, але в той же час надсилання тієї самої інформації через звичайний SMTP вважається прийнятним.
tdammers

@tdammers Я недостатньо знаю про це, щоб сам рекомендувати його. Його викликає варто ОП, оглянувши це
Том Сквайрес

2

Той факт, що вони готові зателефонувати вам та повідомити свій пароль вголос, говорить вам про те, що для цих користувачів пароль та інформація, яку він захищає, не так вже й багато. Я б ніколи не робив жодної з цих речей зі своїм банківським паролем. Але є ряд сайтів, які вимагають паролів для речей, які їх справді не заслуговують. У мене є один стандартний пароль, який я використовую для всіх тих, і тим більше "ей, це не сильний пароль" або "ми зробимо вам пароль і змусимо вас регулярно його змінювати" і так далі, тим менше я хочу використовувати що служба. Я хотів би провести коротку розмову з людьми, що мають "ділову цінність" у вашому житті, щоб побачити, чи насправді кращим підходом просто зберігати їх у тексті та просто надсилати їх електронним повідомленням людям.

Якщо насправді це повинно бути таким безпечним, ви можете спробувати, що зробив один із моїх клієнтів із системою, яку ми кодували для них. Перебуваючи по телефону з людиною, заходьте в db і змініть їх електронну адресу на вашу. Потім перейдіть в Інтернет і натисніть Забули пароль. Зачекайте електронного листа та використовуйте його для входу. Використовуючи веб-сайт, змініть пароль на Пароль або щось інше, що ви усно погоджуєтесь із замовником. Поверніть свою електронну адресу на свою власну адресу та скажіть їм "все налаштовано, ваш новий пароль зараз активний!" Щасливий клієнт, і вам не потрібно пояснювати їм, що все відбувається.


2
Пряма модифікація бази даних сама по собі є порушенням безпеки. Це означає, що ви можете себе представити за будь-якого користувача, використовуючи вашу систему.
Бернар

3
Мої клієнти мали додаток для Windows, за допомогою якого вони могли редагувати будь-яке поле для будь-якого користувача, скажімо, якщо вони отримали факс із повідомленням, що тепер вони мають новий номер телефону. Звичайно, це було проведено аудит. Звичайно, коли я побачив цю письмову процедуру, приклеєну до стіни біля стійки підтримки, я НЕ ЧАСТИЙ. Але я прийшов прийняти це, і є аудиторський слід, який показує, що сталося, якщо хтось коли-небудь телефонує та скаржиться, що їх пароль було скинуто без їхньої згоди. Річ у тому, що не все має бути таким безпечним. І користувачі говорять вам, що цього не потрібно.
Кейт Григорій

1
На жаль, більшість користувачів не знають нічого кращого. Розробники програмних програм повинні застосовувати кращі практики.
Бернар

4
Я згоден, що це велика дірка у безпеці. І я згоден, що це може бути найбільш підходящим рішенням. Однак здається, що підтримка клієнтів тимчасово повинна змінити електронну адресу клієнта, щоб тимчасово змінити пароль користувача, тимчасово змінювати електронну адресу клієнта: якщо ви збираєтесь дозволити службі підтримки клієнтів скидати паролі, просто дозвольте їм це зробити безпосередньо.
Іван Варфоломій

4
Я хотів би також відзначити , що виявлення простих текстових паролів , які користувачі встановили (насправді, зберігання паролів в звичайний текст на всіх), на мій погляд, надзвичайно гірше , ніж дати підтримку клієнтів можливість безпосередньо змінити паролі користувачів.
Іван Варфоломій

2

У крайньому випадку, який я використовував у системі з дуже неграмотними користувачами в минулому, було спрямовувати користувача на екран, де їм було надано номер телефону та номер підтвердження. Вони зателефонували за номером телефону, підтвердили свою особу за допомогою ручних засобів, а потім прочитали підтвердження. особа служби підтримки увійшла до окремої системи, ввела номер та отримала другий номер, щоб повернути клієнту. клієнт використовував другий код для продовження переходу на сторінку скидання пароля. клієнтська версія сторінки не могла запускатися з підмереж служб підтримки, а екран підтримки не міг працювати з клієнтами.

він не є бронезахисним, оскільки особа, яка надає підтримку, може використовувати vpn для запуску обох кінців з одного місця, але це було достатньо для аудиту, оскільки обліковий запис підтримки був зареєстрований як відповідальний за діяльність


-5

Можливо, застосовуючи правила безпеки, які не є INSANE. Роблячи це, все, що ви отримуєте, - це насправді менша безпека, оскільки система настільки важка у використанні, що ваші клієнти оновлюватимуть паролі вам та їхнім друзям лише для того, щоб вони працювали!

Чи не можете ви просто надіслати їм НОРМАЛЬНІ посилання, а потім пароль нижче. Якщо посилання порушено клієнтом електронної пошти, просто виведіть форму з одним полем "код активації" ... "введіть код активації, який ви маєте в електронній пошті" ... 5 цифр, щоб вони не помилилися 0 з O і т.д. 4 для кредитних карток це нормально, і вам потрібна така складна політика для простого входу? Якщо код не працює, повторіть перевірку з рядком TRIMmed? Я думаю, це не зробить його менш безпечним, правда? :)

Для мене це трапляється часто теж ... Я двічі клацну пароль та копіюючи пробіл. Мені незбагненно, чому peple не може зрозуміти, просто видалити кінцеві білі символи, коли перевірка не вдалася і повторити процес? Тоді можливо TOGGLE обкладинка листа для мене, щоб перевірити, чи я випадково не натиснув CL.

Ви так сильно ускладнили це. Це не "скидання пароля" та "початковий пароль" ... але "Код підтвердження" та "Введіть номер підтвердження, який ми надсилаємо вам на електронну пошту", "Не маєте електронної пошти? Це було надіслано на xxx@yyy.com, перевірте ваш спам знову, у вас все ще немає? Відправте підтвердження електронною поштою ". У тілі HTML посилання. http://xxx.com/conf-12345-mymail-gmail-com.html . Жоден поштовий клієнт не порушить це.


5
Політика безпеки, яку він згадав, є не тільки не "INSANE", але має бути вимогою до всіх програм "SANE". Посилання, подібні до цього, надіслані електронною поштою, мають через деякий час закінчуватися, щоб запобігти перезавантаженню пароля (або за допомогою крадіжки посилання безпосередньо, або натрапивши на нього за допомогою комп'ютерного алгоритму). Паролі, ймовірно, слід обрізати, перш ніж перевірити. Користувачі НЕ дурні. Це Закон. Відповідь полягає не в тому, щоб зменшити наші заходи безпеки, а вжити активних заходів, щоб допомогти нашим користувачам зрозуміти належні процедури.
Dalin Seivewright

7
-1. Це розумний спосіб зробити це, який використовують більшість сайтів. Якщо я видаю на сайті "забутий пароль" і отримую електронний лист із своїм паролем у простому тексті, я закриваю свій обліковий запис.
Метт Гранде
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.