Geek++ · Dossier 23 / 25

Messages privés, Captcha et anti-spam

Étude technique publique · 334 mots · ≈ 2 min de lecture attentive

Étude intégraleSans réflexion CODEXSources & constantes conservées
Messagerie & Captcha
OP_MESSAGE
7 K 2 P ?
FILTER

1. Messagerie client-client historique

Le protocole contient depuis longtemps une messagerie directe entre clients.

Opcode relevé :

OP_MESSAGE = 0x4E

Le chat est indépendant du transport des fichiers mais partage l’identité et la connexion client-client.

2. Pourquoi un anti-spam a été ajouté

Une fonction de messagerie ouverte à des inconnus a naturellement attiré des robots et publicités automatiques.

Les versions plus récentes ont donc ajouté plusieurs couches locales :

accepter uniquement les amis selon préférence
filtres de texte configurables
heuristiques sur le premier message
détection d'URL
marquage spammer selon comportement
Captcha

3. Capability Captcha

Le support Captcha est annoncé dans CT_EMULE_MISCOPTIONS2.

Dans l’implémentation étudiée, SupportsCaptcha correspond au bit 11 de ce champ de capacités.

4. Opcodes Captcha

OP_CHATCAPTCHAREQ = 0xA5
OP_CHATCAPTCHARES = 0xA6

Le premier transporte la demande/challenge ; le second transporte la réponse ou le résultat associé.

5. Séquence typique

Le chemin étudié peut être résumé ainsi :

message d'un pair inconnu
→ message retenu
→ génération d'un Captcha
→ image envoyée au pair
→ réponse saisie
→ validation
→ message original affiché si réussite

6. Nombre d’essais

La logique étudiée autorise jusqu’à trois tentatives avant d’abandonner le challenge.

7. Validation de l’image reçue

Le code applique des contrôles grossiers avant d’accepter une image Captcha distante, notamment sur la taille du payload et sur les dimensions décodées.

L’ordre de grandeur observé pour la taille est approximativement :

128 à 4096 octets

avec des limites de dimensions afin d’éviter des entrées absurdes.

8. Ce que prouve réellement le Captcha

Le Captcha apporte au mieux une indication :

un humain a probablement interagi avec cette conversation

Il ne prouve pas :

l'identité civile du pair
l'authenticité de son logiciel
la sécurité d'un fichier
la fiabilité générale de ce client

9. Anti-spam heuristique

Le filtrage repose en partie sur des observations comportementales. Un premier message contenant certains motifs, ou une série de messages sans interaction réciproque, peut être classé comme suspect.

Ces règles sont une politique locale du client, pas une obligation du wire protocol.


Dossier 23 terminé

Messages privés, Captcha et anti-spam

← Dossier 22Dossier 24 →