Dans un contexte de communication en temps réel, les services d'IA transmettent le prochain jeton ri immédiatement après qu'il a été généré. Nos observations de plusieurs services d'assistants d'IA (référencés dans le tableau 1) indiquent que le jeton ri est envoyé soit en tant que message individuel, soit en tant que partie d'un message cumulatif (par exemple, [r1,r2,...,ri]). Dans les deux cas, la longueur de la charge utile du paquet est directement liée au nombre de caractères contenus dans ri.
Dans le cas des messages cumulatifs, la longueur de chaque jeton peut être déduite en calculant la différence de longueur de la charge utile entre les paquets successifs. Par conséquent, pour chaque message de réponse, il est possible de discerner la longueur de chaque jeton, même lorsque le trafic est chiffré. La séquence de longueur des jetons d'une réponse est notée T = [t1,t2,...,tn], où ti représente la longueur du jeton ri. La relation entre le jeton ri et sa longueur ti peut être exprimée par ti = |ri|, la valeur absolue du nombre de caractères dans ri.
Cette séquence de longueur de jeton L peut être exploitée pour déduire les jetons originaux, ce qui permet de violer la confidentialité de la conversation en révélant chaque réponse de l'IA. Ces réponses peuvent également être utilisées pour déduire les invites elles-mêmes, soit indirectement grâce au contexte, soit directement dans les cas où l'IA répète la question avant de poursuivre.
Partager