Я автор сайту, що генерує випадкові паролі http://passwordcreator.org . Ось що я дізнався в процесі створення цього сайту про створення захищених випадкових паролів:
Випадкове джерело
Більшість генераторів випадкових чисел на комп’ютерах є псуедорандоми. Вони засновані на алгоритмах і не підходять для генерації паролів. Вони, як правило, висіваються з поточним часом. Якщо ця інформація відома (або її можна здогадатися), можна відтворити їх вихід і побачити паролі, які були б створені.
Для створення пароля слід використовувати криптографічно захищений генератор псевдовипадкових чисел (CPRNG) . З Вікіпедії два вимоги цього типу генератора випадкових чисел:
- з огляду на перші k біти випадкової послідовності, не існує алгоритму багаточленного часу, який би міг передбачити (k + 1)-й біт з вірогідністю успіху кращою 50%.
- У випадку, якщо частина або весь її стан був виявлений (або правильно здогадався), не можна реконструювати потік випадкових чисел до відкриття. Крім того, якщо під час запуску є ентропійний вхід, було б неможливо використовувати знання про стан введення для прогнозування майбутніх умов стану CSPRNG.
Сучасні веб-браузери (за винятком Internet Explorer) тепер мають крипто API для JavaScript, який має криптографічно захищений генератор випадкових чисел . Це спрощує веб-сайти, такі як мій, генерувати унікальні паролі та не підлягати довідці на основі того, коли знати, коли і де вони були створені.
Довжина пароля
Поширена атака проти паролів - це зловмисник отримати доступ до бази даних, де зберігаються зашифровані (хешовані) паролі. Тоді зловмисник може генерувати здогадки, хешувати здогадки, використовуючи той самий алгоритм хешування, і бачити, чи отримали вони відповідність. Ось стаття, яка показує, скільки паролів вразливі до такої атаки. Комп'ютери зараз досить потужні, що, як відомо, зловмисники намагаються спробувати 100 мільярдів паролів в секунду. Секретні військові та шпигунські комп'ютерні комп’ютери можуть більше робити замовлення.
З практичної точки зору це означає, що потрібно вибрати пароль із пулу квінтільйонів можливостей. 96 символів, які можна набрати на клавіатурі, можуть генерувати чотирилітні можливості, використовуючи вісім символів пароля. Щоб бути безпечними, паролі повинні бути довшими сьогодні, ніж колись у минулому. В майбутньому комп’ютери стануть більш потужними, і ви, можливо, захочете вибирати паролі, які ще довші, ніж ті, що вам можуть знадобитися, щоб відчувати себе захищеними сьогодні, щоб вони не могли легко зламатись у майбутньому. Я рекомендую принаймні довжину 10 для випадкових паролів на основі 96 можливих символів, але використання довжини 12 або 14 було б набагато краще для майбутньої безпеки.