Як запевнити користувачів, що веб-сайт та паролі захищені [закрито]


15

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

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

МОЕ ПИТАННЯ: Чи добре надати повідомлення про те, що "Усі паролі зашифровані та захищені", оскільки я не думаю, що пересічний користувач буде знати, в чому полягає різниця між хешированием і шифруванням, і, швидше за все, почуватиметься захищеним лише тому, що вони бачать слово комфорту "шифрування"? Або є альтернативне повідомлення, яке я повинен надати?

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


7
Особисто я не надто хвилювався б про спілкування: напишіть технічний опис того, що ви робите, поховавшись десь глибоко у FAQ, де технічно налаштовані люди знайдуть це. Кого б то не було все одно. Ще важливіше: переконайтеся, що ви робите правильно (це важко, якщо ви новачок, але принаймні намагаєтесь!). Не створюйте власний хеш, використовуйте щось на зразок bcrypt .
Йоахім Зауер

4
Ну, правильно - це об'єднати логін і не турбувати користувачів ще одним ім'ям користувача та паролем.
Ян Худек

1
OpenID - це добре, але ім'я користувача / пароль також добре. Я не думаю, що ваша проблема полягає в тому, щоб переконати користувачів у захищеності вашого сайту. Оскільки ви недосвідчені, це як обіцяти щось, чого у вас немає. Просто застосуйте загальні стандарти - ви не зупините професійних хакерів, але ніхто також не може звинуватити вас.
Хоанг Лонг

3
@coredump Дійсно. Використання SHA-512 для хешування паролів просто не добре. Це не "добре".
Томас

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

Відповіді:


22
  1. Користувачам все одно.

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

  2. Майже в кожному випадку я бачив такі повідомлення, що вони вводили в оману. Найсмішніший з них був на веб-сайті, на якому на кожній сторінці розміщено ярлики стилю "безпечний військовий клас". Повідомлення надійшло, що сертифікат HTTP недійсний. Існувала ін'єкція SQL у формі для входу. Через кілька тижнів веб-сайт був зламаний, а потім назавжди зник.

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

    Це як ті "W3C дійсні XHTML" мітки. Чому вони зазвичай розміщуються на веб-сайтах, де навіть домашня сторінка містить щонайменше десятки помилок та кодів на кшталт <DIV COLOR='red'>?

Якщо ви все ще хочете заспокоїти користувачів, можете помістити щось на кшталт:

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

Відверто кажучи, форма "Скинути пароль" замінивши "Я забув пароль; надішліть мені електронною поштою" - набагато заспокійливіші за будь-які слова.

Підказки з різних коментарів:

  • Не вигадуйте колесо: використовуйте OpenID. Таким чином, ви навіть не зберігаєте хеші.

    Джерело: коментар Яна Худека .

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

    Джерело: коментар Яна Доггена .


Дякую за вклад, хлопці. Проблема в тому, що я студент, який розробляє службу для свого університету. Я не хочу, щоб користувачі думали, що їх паролі не захищені, тому що якийсь дитина в школі розробив це. Я переглянув купу різних методів, включаючи bcrypt, і просто не вирішив, який саме використовувати. Я вважаю, що зараз він буде досить безпечним, і якщо багато людей почнуть його використовувати, я можу додати його до необхідності. Я зараз лише працюю над тим, щоб отримати його там. Знову дякую.
користувач2698818

3
@ user2698818 Що ви повинні зробити, це створити захист, а потім опублікувати питання, в якому його детально описати, і запитати "чи безпечно це (достатньо)". Хороша безпека може бути повністю публічною.
Ян Догген

@ user2698818: гаразд. Відредагував мою відповідь.
Арсеній Муренко

6
@JanDoggen: добре, що він повинен робити - це використовувати існуючу систему безпеки, яку хтось інший розробив і запитав "чи достатньо вона безпечна". Переважно той, де це питання стояв досить довго і мав увагу декількох експертів у цій галузі ;-)
Йоахім Зауер

12

Не зберігайте паролі в першу чергу! Дотримуйтесь прикладу Stack Exchange та дозвольте користувачам увійти зі своїм посвідченням на інший сайт, який забезпечує аутентифікацію через OpenID . Реалізація є вільною для більшості загальних веб-рамок.

Або, можливо, будь-який інший протокол. Якщо це внутрішній проект для якоїсь установи (як підказує ваш коментар до іншої відповіді), майже напевно вже є LDAP, Kerberos (Windows Active Directory також заснований на цих двох; апаш підтримує HTTP-аутентифікацію проти них) або якийсь така послуга для входу в комп'ютер. Просто підключіться до цього.

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


1
Скажіть, будь ласка, які сайти ви створили, щоб я міг їх уникнути, якщо розглядаю дозволи як не важливі для безпеки.
orlp

1
Що робити, якщо вимога полягає у збереженні паролів. Також питання конкретно задається питанням їх зберігання.
Пьотр Кула

3
@ppumkin: Є багато питань типу "як я використовую X, щоб зробити Y", де найкраща відповідь - "ти використовуєш Z". Якщо ви не згодні, просто надайте кращу відповідь ;-).
Ян Худек

3
@ppumkin Для використання аналогії: "Я намагаюся розбити скелю кулаком, які рукавички я повинен використовувати?" Перевірте, чи знають вони зубила, перш ніж запропонувати 19-ту німецьку кавалерійську рукавичку.
deworde

1
Я б не надто швидко запропонував OpenID. Так, це чудово, але, як правило, найкраще працює, якщо ви підтримуєте декілька постачальників OpenID / OAuth. Існує безліч технологічних форумів, блогів, питань і т.д. тощо, де ви повинні увійти через OID-провайдер Facebook і не можете використовувати жодного іншого. Я працюю в мережі, яка блокує домени Facebook оптом, і тому я не можу працювати з цими сайтами. Якщо ви збираєтеся підтримувати OID, і поки тільки збираєтесь використовувати його, виберіть постачальника, який є популярним серед вашої цільової аудиторії та навряд чи буде заблокований системою. Google і Windows Live - хороший вибір.
KeithS

2

Говорячи:

"Це безпечно".

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

Значення: Ця заява загрожує застарілістю, можливо, навіть не усвідомлюючи цього.

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


Ні, «Це безпечно» не є «особистим» або суб'єктивна думка, це не так, як «це дуже», для мене . Це фактично семантично порожнє твердження, не вказуючи "стосовно того, що" або "захистити від яких атак" або "на якому рівні в якому контексті". Якщо все ваше твердження складається з "це безпечно", воно застаріло, перш ніж ви закінчите його вводити, і велика ймовірність, що ви про це не знаєте. Я згоден, хоча в останній частині, це все про деталі.
AviD

@AviD: Можливо, ти занадто багато читаєш у моєму конкретному виборі слів. Так, говорити, що щось "безпечно", не даючи більше деталей, безглуздо. Але я переконаний, що це також особисте судження, тому що не кожен має однакові почуття та вимагає "безпеки": те, що A виявляється достатньо безпечним, може почуватись незахищеним до Б. Тож сказати, що щось "захищено" говорить про те, що особа, яка робить заяву, «вважає це безпечним». І це не аргумент з такою ж вагою, як надання комусь відповідних фактів і дозволяти їм зробити власний висновок.
stakx

Правильно, "стосовно того, що я мав на увазі, які вимоги, профіль безпеки, ризики тощо. Все ж це не особисте судження, але, можливо, те, що ви мали на увазі під" особистим "- це те, що я маю на увазі під" контекстом ". "Безпечний" - це важка наукова метрика, а не м'яке жадібне "почуття". Але так, як ти кажеш, не кажи мені, що це "безпечно", скажи мені, що ти зробив, щоб зробити це так.
AviD

@AviD: Гаразд. Я не буду більше сподіватися на цей аргумент, за винятком того, що кажу, що безпека - це теж бажання почуття. Звичайно, це більше, але коли питання стосується "запевнення" користувачів (див. Назву питання), то вражаюче почуття - це те, що враховується в підсумку.
stakx

1

Це дійсно залежить від контексту вашого конкретного веб-сайту.

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

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

Весь цей контекст значно визначає, про що вам слід спілкуватися, і який рівень впевненості потрібно.

Наприклад, для нетехнічних споживачів досить мати загальні, прості коментарі, такі як:

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

(І, як уже говорили інші, вам краще навіть не мати паролів, використовуйте такі стандарти, як OpenId або OAuth.)

Для високотехнологічних підприємств вам потрібно мати повну сторінку технічних та процедурних деталей, таких як:

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

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

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

Очевидно , що це за невеликий відсоток цієї турботи - ви повинні бути дозволяючи смарт - користувачам робити те , що правильно, щоб дати їм необхідну їм інформацію, а також надати їм освіту , яке вони могли б попросити.
Якщо цього не зробити, коли це піде не так, інші 98% раптом прокинуться і розлютяться.
("Звичайно, я знав, що мені не потрібен пароль, щоб побачити мої фотографії, але я не думав, що хтось ще може їх бачити !!")


0

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

Що вам потрібно зробити, це запевнити користувачів, що погані хлопці не можуть в першу чергу дістатися до своїх хешей. Одна фірма, що працювала над безпекою, працювала над трирівневою веб-системою, де веб-сервери фізично не були підключені до серверів баз даних. Коли мій бос хотів розмістити свій веб-сайт і отримати прямий доступ до БД (погано розроблений код, 'нуфф сказав,) йому сказали, що він не може його мати, і коли він натиснув ... йому сказали, що між ними немає проводів. . Йому довелося його архітектувати, щоб він передав усі запити даних через сервіс середнього рівня. І ці служби не тільки були забезпечені, але й зазнавали мінімальної поверхні для нападу, і були закриті. І БД ніколи не піддавав жодних своїх таблиць для читання, лише зберігаються процедури, які, в свою чергу, були заблоковані, тому доступ до них мав лише відповідний сервіс.

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


0

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

Ви можете створити найменш захищений сайт на планеті та мати чудовий досвід користувачів. Користувачі будуть вважати, що ваш сайт захищений. Принаймні, поки вона не з’явиться у вечірніх новинах.

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