
Информатика: создаём своего цифрового помощника Урок 56 из 72
Пароль, хеш и второй фактор
Два человека знают один короткий пароль.
Где мы на карте
Урок 56 из 72. Блок «Цифровая безопасность» (55–62). Мы продолжаем локального помощника с тремя вымышленными задачами. Каждая мера имеет конкретную границу: учебная версия не становится готовым публичным сервисом.
Ситуация и вопрос
Два человека знают один короткий пароль. Даже если сайт хранит не сам пароль, украденный список может позволить его угадать. Разберём, что делает хеш, зачем нужна соль и почему второй фактор нужен отдельно.
Новые слова без пропусков
Пароль — секрет, который вы знаете. Хеширование преобразует вход в отпечаток без обычного обратного чтения. Соль — случайное значение, добавленное отдельно для каждой записи; медленная функция вывода ключа затрудняет массовый перебор. Второй фактор подтверждает вход другим типом доказательства, например устройством. Два пароля остаются одним типом фактора. Менеджер паролей помогает создавать уникальные длинные секреты.
Опорный сигнал
Прочитайте три клетки схемы слева направо, затем закройте третью. Назовите вход и действие в каждой клетке; предскажите, чем закончится путь и какой наблюдаемый факт подтвердит ответ. Сравните рисунок с файлом проекта или контрольным примером. Если число на схеме не получается из данных, исправьте схему, а не данные под красивую картинку.
Разбираем шаг за шагом
На бумаге сравните строки «два одинаковых пароля» и «две разные соли»: итоговые отпечатки будут различны. В step-06 пароли вообще не собираются и аккаунтов нет; этот урок моделирует принцип, а не предлагает вводить секрет в учебный помощник. Проверяйте адрес входа перед вводом и включайте MFA в настоящем сервисе там, где он доступен. Резервные коды храните отдельно от телефона.
Предскажите и проверьте
Запишите ожидаемый вывод до запуска кода. Выполните его в указанной папке step-06 или step-07, сравните результат символ за символом и объясните каждую строку. Затем измените один безопасный вымышленный вход и повторите цикл «предсказать — запустить — изменить — объяснить — проверить». Наблюдение на маленьком наборе не превращайте в обещание для реальных людей.
import hashlib, secrets
salt = secrets.token_bytes(16)
a = hashlib.scrypt(b"fictional long phrase", salt=salt, n=2**14, r=8, p=1)
b = hashlib.scrypt(b"fictional long phrase", salt=salt, n=2**14, r=8, p=1)
print(secrets.compare_digest(a, b))
Ожидаемый вывод
True
Поймайте ошибку
Обычный быстрый SHA-256 сам по себе не является подходящим хранением паролей. Соль не секретный ключ и не делает слабый пароль сильным. Второй фактор не отменяет проверку подлинности страницы.
Изменение проекта
В проекте 1.3 сохраняются исходные три задачи, четыре занятия и правила напоминаний. Новые действия вынесены в security_assistant.py: проверка, создание отдельной копии и восстановление только в новый файл. Запишите, от какой угрозы помогает это изменение и от какой не помогает; учебные данные остаются вымышленными.
Задание и доказательство
Объясните на схеме, почему два одинаковых пароля с разными солями дают разные записи. Назовите пример независимого второго фактора и способ восстановить доступ после потери устройства.
Перенос в новую ситуацию
Одноклассник предлагает общий пароль для школьного проекта. Как организовать отдельный доступ, чтобы отзыв прав одного участника не менял секрет всем?
Возврат через 1, 7 и 30 дней
Через 1 день нарисуйте схему по памяти и найдите в ней одну границу применения. Через 7 дней объясните её товарищу, не читая урок, и решите 7 из 10 вопросов блока; ошибочные ответы разберите на конкретных входах. Через 30 дней откройте свежую копию проекта, воспроизведите проверку и перенесите принцип в новый пример. Сохраните свой протокол с входом, ожидаемым и фактическим результатом.
Первоисточник для проверки
Следующий урок
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.