Created
May 25, 2016 12:03
-
-
Save getjump/57409c80433363ceb107e172dfd40c69 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Panagea Protocol Client/Server | |
| Протокол будет составлен из минимальных частей, которые будут наращиваться с каждой версией, слоёв. | |
| 0 слой - базовая единица для поддержания подключения между клиентом/сервером. | |
| Подключение через классическое TCP Keep-Alive соединение. | |
| Сериализация будет иметь следующий вид: | |
| { | |
| MessageHeader | |
| MessageBody | |
| } | |
| Где, MessageHeader - содержит информацию о типе данных перемещаемых в Body, а так-же различную полезную информацию. Любой запрос/ответ строго регламентирован, и может содержать только то что описано. | |
| Например, в header - может содержаться псевдо-параметр hash, который будет соотвествовать, например, строке, которая соотвествует необходимому конструктору для данных в Body. | |
| Любой верхний слой, может вызывать методы нижних слоёв, обратно неверно. | |
| На 0 слое необходимо реализовать: | |
| 1. Метод обмена ключами для начала сеанса шифрования траффика { -> RequestEncryptionHandshake, ResponseEncryptionData } | |
| 2. Саппорт-методы, вроде ping { -> NullResponse } | |
| 3. Запрос перехода на следующий слой { -> RequestNextLayer } | |
| 1 слой, уже предполагается, что перед использованием любых методов, используются Middleware - шифрование с 0-вого слоя. | |
| 1. Запрос на переход на i - слой -> { -> RequestLayer[layer] } | |
| 2. Передача fingerprint'а клиентского оборудования -> { -> RequestClientFingerprint } | |
| 3. Синхронизация времени { -> RequestTimeSynchronize } | |
| 2 слой: | |
| 1. Авторизация, возвращает сессию, которая верна, пока не будет явно уничтожена { -> RequestAuthorization[login, password], ResponseAuthorization } | |
| 3 слой: | |
| 1. Подгрузка необходимых дополнительных модулей в клиент, например Runtime Code Execution и т.д. | |
| 2. Выполнение запрашиваемых сервером процедур, как например, передать модулю ModuleName, данные | |
| 4 слой: | |
| 1. Получение необходимых данных, например подписок на хаки | |
| 2. Использование серверных обновлений для всех данных (внутри абстракция, над любым типом данных) | |
| 5 слой: | |
| 1. Запрос получения основных дллок хаков | |
| Внутри длл, будет вшита отдельная предгенерированная сессия |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment