docs(netcode): mur DTLS franchi côté serveur + boucle d'itération live
Build Game Server / build (push) Successful in 14s
Build Game Server / build (push) Successful in 14s
This commit is contained in:
@@ -88,3 +88,22 @@ On a amené un serveur dédié gameplay The Cycle plus loin qu'aucun projet publ
|
|||||||
(le projet communautaire deiteris/Prospect n'émule que les services en ligne, pas le
|
(le projet communautaire deiteris/Prospect n'émule que les services en ligne, pas le
|
||||||
netcode de jeu). Le mur restant — DTLS-PSK dont la clé est derrière un packer
|
netcode de jeu). Le mur restant — DTLS-PSK dont la clé est derrière un packer
|
||||||
anti-triche — est un chantier crypto + RE dynamique d'un autre ordre de grandeur.
|
anti-triche — est un chantier crypto + RE dynamique d'un autre ordre de grandeur.
|
||||||
|
|
||||||
|
## MAJ (2026-07-16) — mur DTLS franchi (côté serveur)
|
||||||
|
|
||||||
|
- **PSK récupérée** : la clé 32 octets a été obtenue au runtime (dump du `.text`
|
||||||
|
déchiffré du client via `/proc/<pid>/mem` sous Proton — BattlEye n'a pas de driver
|
||||||
|
kernel sous Linux). Stockée dans **Vault** (`secret/the-cycle`, clé
|
||||||
|
`GAMESERVER_DTLS_PSKS`, format `user_id:hex32`), **jamais dans le repo**.
|
||||||
|
- **Serveur DTLS-PSK implémenté** (BouncyCastle) :
|
||||||
|
- `DtlsPskStore` (env `PROSPECT_DTLS_PSKS`), `DtlsPacketTransport` (pont bloquant→paquet),
|
||||||
|
`ProspectPskTlsServer` (DTLS 1.2, identité=user_id), `DTLSHandlerComponent` (pipeline).
|
||||||
|
- `UWorld` sur `NMT_Hello` chiffré : PSK connue → `NMT_EncryptionAck` + handshake.
|
||||||
|
- Compile (0 erreur). **Non validé en live.**
|
||||||
|
- **Reste (itération live obligatoire, invalidable hors client)** :
|
||||||
|
1. ordre exact du pipeline `[DTLS, Stateless]` et routage des records de handshake
|
||||||
|
(émis via `LowLevelSend` — doivent porter le framing stateless attendu) ;
|
||||||
|
2. framing DTLS-sur-PacketHandler d'UE (record layer, cookie DTLS éventuel) ;
|
||||||
|
3. bascule handshake→données applicatives.
|
||||||
|
Méthode : lancer `Prospect.Server.Game` avec la PSK, diriger le client dessus, itérer
|
||||||
|
sur les logs serveur.
|
||||||
|
|||||||
Reference in New Issue
Block a user