KAZIK/docs/SECURITY_NOTES.txt

50 lines
3.4 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ASSEMBLER CASINO - SECURITY NOTES
=================================
Что уже защищено
----------------
1. Установщик проверяет SHA-256 архива игры внутри PokerGameSetup.exe.
Если после сборки кто-то подменит payload установщика, установка остановится.
2. Установщик не распаковывает файлы наружу через пути вида ../.
Каждый путь из архива проверяется, чтобы он оставался внутри выбранной папки установки.
3. Сохранения лежат отдельно в AppData.
Это не защита от взлома, но защищает их от случайного удаления при переустановке.
4. Лаунчер Assembler Casino.exe проверяет SHA-256 bin/poker.exe перед запуском.
Если основной игровой exe подменили после установки, лаунчер остановит запуск.
5. Сохранения получили простую checksum/signature.
Новые save-файлы пишутся с подписью по первым 276 байтам и соли в коде.
Старые 276-байтные сохранения читаются для совместимости, а новые поврежденные/измененные
сохранения не загружают банк и статистику.
Что это НЕ защищает
-------------------
1. Это не DRM.
Если игра лежит на компьютере игрока, ее можно дизассемблировать, патчить и запускать под отладчиком.
2. Это не цифровая подпись издателя.
Чтобы Windows показывал доверенного автора и чтобы было сложнее незаметно подменить сам PokerGameSetup.exe,
нужен Authenticode-сертификат и подпись через signtool.
3. Подпись сохранений не является криптографической защитой.
Она ловит грубую ручную правку и случайное повреждение, но патчер с дизассемблером может
найти алгоритм и пересчитать подпись.
Что можно добавить следующим слоем
---------------------------------
1. Authenticode:
подписывать PokerGameSetup.exe, Assembler Casino.exe, Uninstall Assembler Casino.exe и bin/poker.exe.
2. Release manifest:
хранить список SHA-256 всех файлов релиза в docs/RELEASE_MANIFEST.txt.
3. Более сильная защита сохранений:
вынести save version, HMAC-подобную проверку и явную метку tampered-профиля.
Честный вывод
-------------
Для офлайн-казино цель защиты - не сделать невозможный взлом, а поймать случайную/грубую подмену файлов,
защитить установщик от повреждения и усложнить ручное редактирование прогресса.