ГлавнаяБлогATLOCK: защита файлов на уровне Windows ACL
Python

ATLOCK: защита файлов на уровне Windows ACL

ATLOCK — Python-инструмент для блокировки файлов на уровне NTFS ACL. Узнайте, как работает защита от несанкционированного доступа и как применить это в своих проектах.

Al
Редакция Algolitalgolit.ru
8 мин чтения1 сентября 2026 г.

Почему обычные блокировки файлов не работают

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

Что такое ATLOCK v4.0

ATLOCK — это полноценный набор инструментов безопасности для Windows, написанный на Python. Это четвёртая полная переработка проекта, начатого с нуля после того, как я понял, что предыдущие версии не были по-настоящему безопасными.

Пять модулей ATLOCK

  • Lockdown — блокировка экрана с обратным отсчётом (от 10 минут до 8 часов), предназначена для ситуаций «отошёл от ноутбука».
  • File Guard — основная функция. Блокирует файлы на уровне NTFS ACL, а не с помощью пароля. Перезаписывает список контроля доступа так, что доступ запрещён всем пользователям, включая SYSTEM. Windows сама отказывается открывать файл — нет пароля для взлома, потому что блокирует сама ОС.
  • Password Vault — зашифрованное хранилище для email, UPI-идентификаторов и PIN-кодов.
  • Intruder Ops — при неверном вводе мастер-пароля приложение незаметно делает фото, а после нескольких неудачных попыток записывает 10-секундное видео. Всё сохраняется в галерею, без облака и третьих лиц.
  • Settings — настройки захвата и управление папкой галереи.

Ключевые решения безопасности

Вот что я переделал в четвёртой версии, потому что предыдущие реализации были недостаточно хороши:

  • Раньше хранилище использовало простую XOR-«шифровку», что не является шифрованием. В v4 заменено на Fernet (AES-128-CBC + HMAC).
  • Мастер-пароль генерируется через PBKDF2-HMAC-SHA256 с 200 000 итераций и случайной солью для каждого хранилища — это медленно, что делает перебор дорогим.
  • Каждая неудачная попытка вторжения маскируется перед записью в журнал, чтобы ничего чувствительного не хранилось в открытом виде.
  • Учётные данные для оповещений хранятся зашифрованными с помощью ключа, привязанного к машине, поэтому копирование конфигурационного файла не помогает атакующему.

Ничего экзотического — стандартные, проверенные примитивы, используемые правильно. Это важнее любых «хитрых» решений.

Технологический стек

Интерфейс написан на customtkinter (тёмная тема с золотом), криптография — cryptography (Fernet/PBKDF2), для работы с NTFS ACL используется pywin32, а для съёмки — opencv-python. Упаковано в standalone .exe с помощью PyInstaller.

Почему это важно для Python-разработчиков

Проект демонстрирует, как использовать системные механизмы безопасности (ACL) вместо «защиты через обфускацию». Это ценный подход для любого приложения, работающего с чувствительными данными.

Практический вывод

Если вы разрабатываете ПО для Windows и хотите обеспечить реальную защиту файлов, изучите работу с NTFS ACL через pywin32. Начните с простого скрипта, который изменяет список контроля доступа для тестового файла, и постепенно усложняйте. Помните: безопасность — это не магия, а правильное использование стандартных инструментов.

#NTFS ACL#безопасность#Python#шифрование#Windows
Al
Редакция Algolit

Пишем про алгоритмы, подготовку к собеседованиям и карьеру в IT — так, чтобы было понятно и полезно.

Хочешь закрепить знания на практике?

Решай задачи на Algolit — интерактивная платформа для обучения

Начать бесплатно →