14Fermer16
PolluxLe 27/03/2006 à 15:21
Pour les jetons : est-ce que c'est une information infiniment réplicable qu'on peut éventuellement cacher (= comme une clé privée), ou est-ce que c'est qqch que l'on peut détruire de manière prouvable (= on peut faire une liste exhaustive des jetons auquel un processus a accès) ?

spectras
: Quel que soit le bug qu'il peut y avoir dans le serveur, à aucun moment le système ne peut être compromis, puisque "l'exploit" tournera avec les permissions de l'utilisateur qui le lance (=aucune s'il n'est pas loggé)

Euh, c'est quand même beaucoup dire : le serveur a quand même accès aux mots de passe des utilisateurs, c'est loin d'être négligeable... Par exemple le serveur :
char name[100],pass[100];
for ( ; ; ) {
  FILE *stream = wait_new_connection();
  if (fgets(name,100,stream) && fgets(pass,100,stream))
    fork_and_login(name,pass);
  close_connection(stream);
}

a une grosse, grosse vulnérabilité : si je crée un compte avec un mot de passe de un caractère (ou même vide), j'ai accès au mot de passe de l'utilisateur précédent sorry (modulo les 1 ou 2 premiers caractères, mais ça peut se deviner ou se bruteforcer)


Ou encore : si ce serveur a un buffer overflow qui permet d'exécuter du code arbitraire, alors je peux connaître les mots de passe de tous ceux qui se logguent, savoir qui se logge et quand, etc... (bon par contre c'est vrai qu'avec des jetons suffisamment fins on doit pouvoir faire en sorte qu'il soit impossible de modifier le code ou d'exécuter du code arbitraire smile)