Символы для предотвращения в автоматически сгенерированных паролях

Вот несколько известных библиотек, которые обрабатывают обнаружение браузера.

Bowser by lancedikson - 2,713 ★ s - Последнее обновление 12 марта 2018 г. - 2.9KB

console.log(bowser);
document.write("You are using " + bowser.name +
               " v" + bowser.version + 
               " on " + bowser.osname);

Platform.js by bestiejs - 1912 ★ s - Последнее обновление 23 января 2018 г. - 5.9KB

]

console.log(platform);
document.write("You are using " + platform.name +
               " v" + platform.version + 
               " on " + platform.os);

Detect.js by darcyclarke - 501 ★ s - Последнее обновление Oct 26, 2015 - 2.9KB

var result = detect.parse(navigator.userAgent);
console.log(result);
document.write("You are using " + result.browser.family +
               " v" + result.browser.version + 
               " on " + result.os.family);

jQuery Browser от gabceb - 485 ★ s - Последнее обновление 23 ноября 2015 г. - 1.3KB

console.log($.browser)
document.write("You are using " + $.browser.name +
               " v" + $.browser.versionNumber + 
               " on " + $.browser.platform);

Обнаружение браузера (ARCHIVE) QuirksMode - Последнее обновление 14 ноября 2013 г. - [88]

Дальнейшее чтение

23
задан Raedwald 10 October 2014 в 13:31
поделиться

11 ответов

Вот наборы символов, которые Steve Gibson использует для его "Идеальный Бумажный Пароль" система. Они - "символы, чтобы позволить", а не "символы избегать", но они кажутся довольно разумными для того, что Вы хотите:

стандартный набор А 64 символов

!#%+23456789:=?@ABCDEFGHJKLMNPRS
TUVWXYZabcdefghijkmnopqrstuvwxyz

А больший набор 88 символов

!"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHJKLMNO
PRSTUVWXYZ[\]^_abcdefghijkmnopqrstuvwxyz{|}~

Для удобопроизносимых паролей, я не знаком с алгоритмами, но Вы могли бы хотеть посмотреть APG и pwgen как начальная точка.

39
ответ дан 29 November 2019 в 00:56
поделиться

Мой предпочтительный метод состоит в том, чтобы получить список слов 3, 4 и 5 слов буквы. Тогда выберите по крайней мере 2 из тех и поместите случайные 2 символа числа цифры или специальный символ (% & * # $) между каждым словом. Если Вы хотите Вам, может использовать для своей выгоды до одного символа на слово наугад.

В зависимости от Ваших требований к силе Вы заканчиваете с легким, чтобы помнить и передаете пароли как:

  • lemon%desk
  • paper& boy32hat

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

, Как правило, только используйте символы, которых люди обычно знают название. На американской Стандартной клавиатуре я избежал бы ~ ''/\^

, я предполагаю это более отвеченное Ваш вопрос наездника, чем Ваш основной вопрос...

Удачи!

9
ответ дан 29 November 2019 в 00:56
поделиться

Читайте Безопасные пароли .

Выбора

Один интересный лакомый кусочек оттуда: Для большего количества безопасных паролей удостоверьтесь, некоторые числа и специальные символы появляются в середине. Взламывание проверки программ на них вначале и заканчивается раньше.

6
ответ дан 29 November 2019 в 00:56
поделиться

Для добавления к ответу Jim, Вы могли также использовать список слов и случайным образом заменить определенные символы символами (для A, 0 (нуль) для O или 5 для S) и/или удалить гласные из слов.

  • lmn%Desk
  • p@per& b0y32H@t

, Все еще главным образом человекочитаемый.

3
ответ дан 29 November 2019 в 00:56
поделиться

Как другая опция, Вы могли использовать моноширинный/терминальный шрифт как курьер для печати паролей. Подобные символы должны быть намного более различимыми тот путь.

3
ответ дан 29 November 2019 в 00:56
поделиться

Для международного клиента несколько лет назад, я должен был генерировать случайные, безопасные пароли, которые были тогда объединены с почтой в документы моего клиента и отправлены почтовой почтой получателям в 40 странах. Не зная, какая гарнитура должна была использоваться в документах, я использовал список символов как Steve Gibson с 64 символами набор для устранения беспорядка между подобными глифами.

Для создания получающихся паролей удобопроизносимыми, и таким образом легче помнить я соединил согласные и гласные вместе, с некоторыми совместимыми диграфами (sh, th, wh, и т.д.) добавленный к соединению.

Для сокращения возможностей несоответствующих или оскорбительных слов от того, чтобы быть сгенерированным (на английском языке или на recipients’ языках) я ограничил выполнения последовательных альфа-символов к два с цифрами или знаками пунктуации betwee:

Es4tU$sA6
wH@cY8Go2

Оглядывание назад по моему методу теперь, я понимаю, что был простор для совершенствования в алгоритме неуместности. Используя справедливое правила выше, некоторые оскорбительные слова возможны теперь, когда некоторыми цифрами и пунктуацией заменяют буквы.

3
ответ дан 29 November 2019 в 00:56
поделиться

Для человекочитаемых паролей я недавно использовал Сценарий PHP, очень похожий на тот ниже. Это работало хорошо. Предоставленный, пароли не будут невероятно безопасными (поскольку они подвержены атакам с подбором по словарю), но для memorisable, или по крайней мере читаемый, пароли, это работает хорошо. Однако эта функция не должна быть использована как есть, это больше для иллюстрации, чем что-либо еще.

function generatePassword($syllables = 2, $use_prefix = true)
{

    // Define function unless it is already exists
    if (!function_exists('arr'))
    {
        // This function returns random array element
        function arr(&$arr)
        {
            return $arr[rand(0, sizeof($arr)-1)];
        }
    }

    // Random prefixes
    $prefix = array('aero', 'anti', 'auto', 'bi', 'bio',
                    'cine', 'deca', 'demo', 'dyna', 'eco',
                    'ergo', 'geo', 'gyno', 'hypo', 'kilo',
                    'mega', 'tera', 'mini', 'nano', 'duo',
                    'an', 'arch', 'auto', 'be', 'co',
                    'counter', 'de', 'dis', 'ex', 'fore',
                    'in', 'infra', 'inter', 'mal', 
                    'mis', 'neo', 'non', 'out', 'pan',
                    'post', 'pre', 'pseudo', 'semi',
                    'super', 'trans', 'twi', 'vice');

    // Random suffixes
    $suffix = array('dom', 'ity', 'ment', 'sion', 'ness',
                    'ence', 'er', 'ist', 'tion', 'or',
                    'ance', 'ive', 'en', 'ic', 'al',
                    'able', 'y', 'ous', 'ful', 'less',
                    'ise', 'ize', 'ate', 'ify', 'fy', 'ly'); 

    // Vowel sounds 
    $vowels = array('a', 'o', 'e', 'i', 'y', 'u', 'ou', 'oo', 'ae', 'ea', 'ie'); 

    // Consonants 
    $consonants = array('w', 'r', 't', 'p', 's', 'd', 'f', 'g', 'h', 'j', 
                        'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', 'qu');

    $password = $use_prefix?arr($prefix):'';
    $password_suffix = arr($suffix);

    for($i=0; $i<$syllables; $i++)
    {
        // selecting random consonant
        $doubles = array('n', 'm', 't', 's');
        $c = arr($consonants);
        if (in_array($c, $doubles)&&($i!=0)) { // maybe double it
            if (rand(0, 2) == 1) // 33% probability
                $c .= $c;
        }
        $password .= $c;
        //

        // selecting random vowel
        $password .= arr($vowels);

        if ($i == $syllables - 1) // if suffix begin with vovel
            if (in_array($password_suffix[0], $vowels)) // add one more consonant 
                $password .= arr($consonants);

    }

    // selecting random suffix
    $password .= $password_suffix;

    return $password;
}
2
ответ дан 29 November 2019 в 00:56
поделиться

Я не люблю подход списка слов. Например, в/usr/share/dict/words на OSX, существует 5 110 слов с 4 символами. Используя двух из них с разделителем символ производит ~600M комбинации. Но если бы Вы использовали набор символов непосредственно с сильным генератором случайных чисел, то Вы имели бы 88^9 возможные пароли, 3.16e+17 комбинации.

Так или иначе, вероятное нападение на эту систему будет против генератора случайных чисел, поэтому удостоверьтесь, что Вы используете криптографически сильный. При использовании стандартной функции рэнда PHP она подвергнется нападению путем регистрации, и сброс тысяч паролей для выборки RNG указывает и затем предсказывает остающееся состояние RNG, которое сократит количество возможных паролей, которые должен протестировать взломщик.

1
ответ дан 29 November 2019 в 00:56
поделиться

В моем (электротехника, техник) аспирантура, все учетные записи компьютера были инициализированы с паролями, которые, я принимаю, были сгенерированы стандартной утилитой Linux. Они состояли из трех случайных слогов с тремя строчными буквами в каждом слоге. Результат был довольно безопасен (на порядке миллиардов возможных комбинаций) все же столь удобопроизносимый, что я все еще использую некоторые из тех паролей более чем десятилетие спустя. Примером заторов является превосходная демонстрация этого.

А комментируют пароли в целом от профессионала сетевой безопасности: они ужасны, по нескольким причинам, включая:

  • Обычно легко поврежденный, или через социальную инженерию или с программным обеспечением нападения, особенно если Вы знаете что-нибудь о Вашей цели.

    Пример 1: я недавно должен был пересмотреть защищенный паролем технический документ. Смотря на дату, я знал, кем наш Технический писатель в местонахождении был в то время, ввел первое слово, которое ввело мой ум и сразу разблокировало документ.

    Пример 2: Стандартные взламывающие пароль программы позволяют взломщику определять ряд правил, которые воздействуют на предоставленный пользователями словарь. Это тривиально, чтобы заменить определенные буквы $ymb01$ или перевести в 1337, и т.д.

  • , "Безопасные" пароли не. Учитывая чистое количество паролей большинство людей должно помнить, наиболее распространенный способ "помнить" a "сильный" пароль как "a4$N! 8_q" должен записать это на листке бумаги (или, хуже, сохранить его в текстовом файле). 'Nuff заявил.

, Если Вам нужно действительно безопасный аутентификация, , мультифактором (или с двумя факторами ) является принятый промышленностью механизм. "Два фактора" обычно являются чем-то, что Вы имеете (такие как плата доступа) и что-то, что Вы знаете , который включает ее (такие как PIN). Никакой не работает без другого - Вам нужны оба.

, С другой стороны, рассмотрите уровень безопасности, в которой Вы действительно нуждаетесь. Что Вы защищаете? Как плохо делают "плохие парни" хотят получить его, и каковы последствия, если они делают? Возможности, "Its@Secret!" более, чем достаточно хорошо.:-)

2
ответ дан 29 November 2019 в 00:56
поделиться

Стартовый подход мог бы быть должен генерировать главным образом допустимые английские слоги, смешать их, затем добавить текст-> l33t преобразование. Была работа, сделанная на грамматиках естественного языка поколений, таким образом, один из тех мог бы помочь.

, Например, ах луг ул. является всеми допустимыми слогами, или близко к нему... смешивают их-> Ingulah... l33t он-> 1ngu4 h. Действительно ли это является лучшим там? Nah. Но по крайней мере это semipronouncable (если Вы говорите l33t), и более защищенный по вычислениям.

1
ответ дан 29 November 2019 в 00:56
поделиться

Если вас интересует генерация произносимых паролей, есть порт C# по адресу: http://www.hoogervorst.ca/arthur/?attachment_id=1708

В коде вы найдете полезные ссылки для получения дополнительной информации. http://www.multicians.org/thvv/gpw.html

Удачи. James

1
ответ дан 29 November 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: