Я маю віддалений (2 роки тому) досвід хакерства, найскладніші пакети, які коли-небудь зламалися (і те, що я пропоную вам використовувати), - це метод симетричного шифрування ключа, який коротко описав Джонатан Дікінсон. Ви повинні використовувати TCP + TLS, як він також згадував. Однак він сказав зустрічну послідовність.
Я зіткнувся з періодами, коли система «хакер-доказів» програмістів була легко підроблена, оскільки у них є достатньо дивна система підрахунку, що я міг би зламати її без знань про програмування та алгебраїчної логіки першого року. Поки ви вибираєте правильний послідовний метод, тоді ваша ціль повинна отримувати дані точно так, як очікувалося, а це означає, що ви повинні використовувати TCP для найбільш безпечних операцій.
Повернувшись до «в моєму досвіді», одна система, яку я знайшов, працює фантастично. Послідовний метод на основі відправленого часу та очікуваного часу. Оскільки пакети завжди повинні бути отримані в належному порядку, сфабрикувати пакет тоді було майже неможливо, оскільки я ніколи не міг передбачити, коли пакет буде надісланий і коли його очікували (між одним пакетом та іншим), не спершу злому клієнтської програми.
Коротка відповідь
Коротше кажучи: кожна структура пакетів також мала б позначення часу, як коли вона була відправлена вниз до мілісекунди. Це чорт просте, і це дуже легко перевірити, чи час до / після іншого. Причина, по якій це має сенс, полягає в тому, що сервер все ще може отримувати пакети в порядку підробки, не маючи часу на аутентифікацію.
Це, очевидно, не єдиний послідовний метод або навіть найкращий з будь-яких методів. Я лише знайшов, що працює дуже добре. У поєднанні з TCP + TLS у вас не повинно виникнути занадто багато проблем.