Да, вы правы. Но на практике этот метод работает — на графике за большой временной интервал ищутся пики, потом эти пики детализируются до индивидуальных точек при необходимости (мы снимаем данные раз в минуту, окно для расчета персентилей имеет размер в 80 секунд)
По моему опыту, временные ряды нужны только для двух целей — анализ пиковой нагрузки (max агрегация по нужному персентилю) и анализ средней нагрузки (avg агрегация по среднему арифметическому)
Так надо при построении графиков по персентилям агрегировать не по среднему значению, а по максимальному. Тогда и получится ожидаемая метрика «максимальное время открытия страницы для 99% пользователей».
Самый простой метод — пропатчить KeePass. Или exe-шник, или образ в памяти. Или, как вариант, все-таки использовать кейлоггер, который распознает окно аутентификации KeePass.
Есть разница между потерей вводимых паролей и потерей всех паролей. Поэтому я никогда не сохраняю пароли в браузере. Тем более, что большинство троянов не ставят кейлоггер, а просто собирают сохраненные пароли из известных мест.
Сам спросил — сам ответил: github.com/dropbox/zxcvbn/commit/d20704b7328b10ec6eef0e4b204893c1a8e6ed0a
Цифра занижена, т.к. на практике придумываются не случайные пароли, а пароли, которые выглядят случайными. А брутфорсеры строят статистические модели и активно используют их при подборе. Простейший вариант — таблица вероятности появления символа от его положения в пароле (многие любят добавлять число в конец) или таблица вероятности появления символа от значения двух предыдущих символов (да-да, так называемые человеко-читабельные пароли)
zxcvbn как-то странно считает энтропию.
Например, пароль fmbftpcntp — это 10 симвловов, мощность 26^10 ~ 10^14
А калькулятор этот пишет guesses_log10: 10
Я вот чего не понимаю — почему все проблемы с безопасностью паролей валят на пользователей, а не на разработчиков сайтов?
Почему вместо использования стойкого алгоритма хеширования паролей (того же bcrypt) пользователей заставляют придумывать пароли от 8 символов с заглавными-строчными-цифрами-спецсимволами?
Почему я не могу использовать пароль из 4 символов для сайта, где ничего ценного нет и никогда не будет?
Почему мало кто делает систему обнаружения взлома аккаунта?
В качестве дешевого и сердитого метода можно использовать тот же OAuth2, где провайдеры сами управляют аккаунтами, а некоторые из них (тот же гугл) предлагают и двухфакторную аутентификацию.
В статье очень правильно написано: программировать — сложно и дано не каждому. Комментарием выше я хотел сказать, что новичок должен либо продемонстрировать, что ему дано программировать, либо доказать, что обладает достаточной хорошей головой и усидчивостью, чтобы усилия, потраченные на его обучение, не пропали зря.
Вариант с «ПТУ» — это индийский путь. Да, он позволяет дешево и сердито клепать сайты-визитки и админить серверные фермы для больших корпораций, но это точно не тот путь, которым стоит идти России, с её инженерными традициями.
Не все так плохо. Типичный университетский курс вполне себе может подготовить человека, которого возьмут джуниором. НО — чтобы попасть на хорошую работу после университета, надо быть достаточно умным и целеустремленным человеком, который и в любой другой области не прогорит. Если новичка-инженера возьмут на работу при наличии диплома, то новичку-программисту придется доказать, что:
— он выучил и помнит до сих пор базовую теорию (структуры данных, алгоритмы и т.п.)
— он писал сам сложные алогитмы в универе (вычмат, обучение нейронных сетей, системы управления, обработка сигналов)
— он способен решать олимпиадные задачи по математике.
Альтернатива? Любить программирование. Болеть программированием. Программировать для себя и идти в профессию как пусть начинающий, но уже состоявшийся программист.
Программисты, программирующие ради программирования, — это скорее новички/середнячки. Сеньоры программируют с какой-то целью, технической или бизнес. Обязанность менеджмента — совмещать эту цель с реальными потребностями организации.
Я бы сказал, что прежде всего работу скучной делает отсутствие цели. Когда по полгода толчешь в ступе одну и ту же воду без видимого результата.
Как этого избежать? Нужен так называемый «leadership». Не «доработать приложение для интеграции с клиентом XYZ», а донести до всех и понимание смыла, и эмоции. Как этому клиенту эту интеграцию продавали. Что эта интеграция значит и для него, и для компании. Какие люди будут счастливы иметь эту интеграцию и почему. Дать четкие сроки и четкое направление движения. И сделать так, чтобы при достижении цели все понимали, что это была Цель. Для технических целей всё примерно то же самое.
Как этого добиться? Я не знаю. Этот талант у руководителя или есть, или нет.
По моему опыту, временные ряды нужны только для двух целей — анализ пиковой нагрузки (max агрегация по нужному персентилю) и анализ средней нагрузки (avg агрегация по среднему арифметическому)
github.com/dropbox/zxcvbn/commit/d20704b7328b10ec6eef0e4b204893c1a8e6ed0a
Цифра занижена, т.к. на практике придумываются не случайные пароли, а пароли, которые выглядят случайными. А брутфорсеры строят статистические модели и активно используют их при подборе. Простейший вариант — таблица вероятности появления символа от его положения в пароле (многие любят добавлять число в конец) или таблица вероятности появления символа от значения двух предыдущих символов (да-да, так называемые человеко-читабельные пароли)
Например, пароль fmbftpcntp — это 10 симвловов, мощность 26^10 ~ 10^14
А калькулятор этот пишет guesses_log10: 10
Почему вместо использования стойкого алгоритма хеширования паролей (того же bcrypt) пользователей заставляют придумывать пароли от 8 символов с заглавными-строчными-цифрами-спецсимволами?
Почему я не могу использовать пароль из 4 символов для сайта, где ничего ценного нет и никогда не будет?
Почему мало кто делает систему обнаружения взлома аккаунта?
В качестве дешевого и сердитого метода можно использовать тот же OAuth2, где провайдеры сами управляют аккаунтами, а некоторые из них (тот же гугл) предлагают и двухфакторную аутентификацию.
Если он прочитает его не сразу, это же не мой прокол, правда?
Вариант с «ПТУ» — это индийский путь. Да, он позволяет дешево и сердито клепать сайты-визитки и админить серверные фермы для больших корпораций, но это точно не тот путь, которым стоит идти России, с её инженерными традициями.
— он выучил и помнит до сих пор базовую теорию (структуры данных, алгоритмы и т.п.)
— он писал сам сложные алогитмы в универе (вычмат, обучение нейронных сетей, системы управления, обработка сигналов)
— он способен решать олимпиадные задачи по математике.
Альтернатива? Любить программирование. Болеть программированием. Программировать для себя и идти в профессию как пусть начинающий, но уже состоявшийся программист.
Как этого избежать? Нужен так называемый «leadership». Не «доработать приложение для интеграции с клиентом XYZ», а донести до всех и понимание смыла, и эмоции. Как этому клиенту эту интеграцию продавали. Что эта интеграция значит и для него, и для компании. Какие люди будут счастливы иметь эту интеграцию и почему. Дать четкие сроки и четкое направление движения. И сделать так, чтобы при достижении цели все понимали, что это была Цель. Для технических целей всё примерно то же самое.
Как этого добиться? Я не знаю. Этот талант у руководителя или есть, или нет.