OVH Cloud OVH Cloud

PPPoE: protocole securise ?

20 réponses
Avatar
johndekalb
bonjour

j'envisage de mettre en place une solution wifi en utilisant le
protocole pppoe.
c'est a dire que sur les machines clientes se trouvent un client pppoe
qui contacte via une carte wifi et un AP le serveur pppoe.
le serveur pppoe tourne sur linux, les clients seront de tous types:
mac, win, linux, bsd, du moment qu'ils ont un client pppoe
l'authentification se fera par user/pass CHAP

donc si je ne dis pas de betise, l'un des risques dans cette
architecture est de se faire sniffer les trames ethernet entre le
client et le serveur.
Est-ce le seul risque ? Est-ce une architecture raisonnable (usage
semi-professionnel sans données rellement confidentielles) ? est-il
aisé de sniffer les trames ethernet ?

Je comprend tout à fait qu'il serait préferable de faire transiter un
flux TCP/IP crypté (VPN) mais je n'ai pas (encore) les compétences
pour le mettre en place. Donc en attendant j'étudie les solutions
alternatives dont le pppoe.

Merci pour vos avis eclairés sur le sujet.

John

10 réponses

1 2
Avatar
Cedric Blancher
Dans sa prose, Pierre LALET nous ecrivait :
Oui, mais là, il faut une machine sur le réseau filaire, c'est quand
même vachement contraignant, non ?
Je vais peut-être (surement même, vu que tu sembles sur de toi, mais

j'ai même pas peur) dire une bêtise, mais tu peux te contenter d'avoir
une machine sur le net, si le réseau en question permet de sortir. Non ?
(pas taper).


Tout à fait, seulement il faut injecter des trames correctement
chiffrées sur le réseau. Et contrairement à certains écrits que j'ai
pu lire, s'il est aisé de refaire des trames valides du point de vue CRC,
injecter des trames IP valides tout court est une autre paire de manche.

Je ne connais pas d'implémentation de ce truc là.

--
BOFH excuse #99:

SIMM crosstalk.


Avatar
T0t0
"Cedric Blancher" wrote in message
news:
Pour autant que je sache, le chiffrement, c'est du RC4. C'est le calcul de
la somme d'intégrité qui est à base de XOR.


C'est le RC4 lui-même (en personne) qui est à base de XOR (le shériff)

"WEP uses the RC4 encryption algorithm, which is known as a stream
cipher. A stream cipher operates by expanding a short key into an
infinite pseudo-random key stream. The sender XORs the key stream with
the plaintext to produce ciphertext. The receiver has a copy of the
same key, and uses it to generate identical key stream. XORing the key
stream with the ciphertext yields the original plaintext."

On peut ainsi envoyer une trame chiffrée et récupérer le clair (en
mettant notre machine en destination) La clé est ensuite obtenue en
faisant un XOR des deux.
Oui, mais là, il faut une machine sur le réseau filaire, c'est quand

même vachement contraignant, non ?


En fait, il suffit de prendre une trame chiffrée, de modifier l'adresse
destination (une machine sur le net par exemple, il faut effectivement
dans ce cas que les accès wifi aient accès au net) pour recevoir la
trame déchiffrée.

Effectivement, ca nécessite l'accès au net par le wifi (c'est un cas
que j'ai souvent rencontré) C'est moins contraignant que l'accès au
filaire ;-)

Faut voir le nombre de trames nécessaires.


On peut faire la manip à chaque trame reçue je pense.
On n'a plus besoin d'une certaine quantité statistique de trames pour
mener l'attaque, il n'y a plus de crypto en jeu.




--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG


Avatar
johndekalb
Cedric Blancher wrote in message news:...

Bref, je m'orienterait plutôt vers une solution type 802.1x que supporte
aujourd'hui pas mal de points d'accès, avec une authentification PEAP par
exemple qui permet une authentification mutuelle des deux parties (forte
pour le serveur d'authentification). Il faut certes un serveur RADIUS sous
la main, mais on en trouve des très bien dans le monde du logiciel libre,
de mise en oeuvre aisée.

En outre, l'avantage de 802.1x est qu'il permet de générer des clés WEP
différentes à chaque authentification et de les renouveler
régulièrement, nuançant par là _la_ grosse faille de WEP.


Merci pour vos reponses qui m'éclairent un peu mieux sur le sujet.

Je vais mettre le pppoe de coté pour étudier des solutions
d'authentification du client et du serveur....ce qui semble faire
défaut à mon architecture initiale. J'ai avancé sur le sujet et mis en
place un RADIUS qui fonctionne, pour l'instant il fait marcher CHAP.

</commentaire perso on>
Cedric nous dit:
"Il faut certes un serveur RADIUS sous la main, mais on en trouve des
très bien dans le monde du logiciel libre, de mise en oeuvre aisée."
Alors là je me marre:
je viens de mettre en place (pour la première fois) un freeradius 0.90
(sur debian), et pour trouver de la doc c'est une galère incroyable
(je parle de la configuration ad-hoc du serveur radius pour mes
besoins, donc rien de spécial, sans doute une conf banale). Cela rend
la mise en oeuvre vraiment pas aisée, on trouve quelques docs sur le
net qui sont trop pointus quand on ne maitrise pas Freeradius et sinon
on se retrouve avec la mailing list de freeradius qui est une
excellente source d'info mais pas du tout orientée "howto".
On trouve des docs géniales sur iptables, squid, apache, et une tonnes
d'autres appli du monde libre...., mais avec freeradius on atteint des
records d'absence de doc synthétique.
D'ailleurs si quelqu'un avait une URL je suis preneur, et je serais
même pret à tenter la rédaction d'un how-to freeradius (basique) si
j'arrive à le maitriser à peu près correctement !!!
(A moins que je ne sois passé complètement à coté du site de la doc
freeradius ????)
</commentaire perso off>

@+

John

Avatar
Cedric Blancher
Dans sa prose, T0t0 nous ecrivait :
C'est le RC4 lui-même (en personne) qui est à base de XOR (le shériff)
"WEP uses the RC4 encryption algorithm, which is known as a stream
cipher. A stream cipher operates by expanding a short key into an
infinite pseudo-random key stream. The sender XORs the key stream with
the plaintext to produce ciphertext. The receiver has a copy of the same
key, and uses it to generate identical key stream. XORing the key stream
with the ciphertext yields the original plaintext."


Oui, mais non (tm). Tu as loupé la phrase "A stream cipher operates by
expanding a short key into an infinite pseudo-random key stream". Ce qui
veut dire que pour le XOR, ce n'est pas la clé qui est utilisée, mais
une bloc de données dérivé de la clé, le keystream. C'est d'ailleurs
pourquoi, dans pas mal de papier, quand on te parle d'un chiffrement
d'un message C par RC4 avec une clé k, on note :

C = P XOR RC4(k)

Si RC4 n'était qu'un XOR, il ne s'appelerait pas RC4, mais XOR, et ne
serait pas le sheriff de l'espace (SSL utilise principalement RC4 128bits
parce que ça va vite).

En fait, il suffit de prendre une trame chiffrée, de modifier l'adresse
destination (une machine sur le net par exemple, il faut effectivement
dans ce cas que les accès wifi aient accès au net) pour recevoir la
trame déchiffrée.


OK.

Effectivement, ca nécessite l'accès au net par le wifi (c'est un cas que
j'ai souvent rencontré) C'est moins contraignant que l'accès au filaire
;-)


Cette attaque est intéressante dans la mesure où elle permet de
récupérer le contenu de n'importe quelle trame émise sur le réseau en
la rejouant après avoir modifié des paramètres, dont le principal et
l'adresse destination (modifier la TTL aussi facilite les choses). Mais
comme RC4 n'utilise pas directement la clé pour le XOR, ce n'est pas la
clé WEP que tu vas récupérer, mais le keystream. Par conséquent, tu
pourras casser tous les messages qui auront le même IV, puisqu'ils auront
été chiffrés avec le même keystream. Pour les autres, il va falloir
recommencer...

Ton attaque découle donc sur une attaque par table. Tu vas stocker pour
chaque IV le keystream qui va bien, puisque tu auras été capable de le
récupérer par ton attaque en clair connu. Quand tu auras récupéré
_tous_ les IV, tu auras environ 2Go de données sous la main qui te
permettront de déchiffrer n'importe quel message sur la base de son IV.
Mais cela nécessite la même opération sur 2^24 trames, éventuellement
moins si on retire les IV faibles comme le font pas mal d'AP maintenant,
ce qui impose la transmission d'une 15e de Go de données. Selon la BP
disponible, ça peut se révéler très long devant une renégociation de
clé forcée par EAP.

--
On peut aussi trouver une façon de modifier l'adresse pour déclancher
les soupçons des impôts, histoire d'être aussi chiants que lui ?
-+- ALG in : GNU - Neuneu a recommandé son percepteur -+-


Avatar
Cedric Blancher
Dans sa prose, John nous ecrivait :
Cedric nous dit:
"Il faut certes un serveur RADIUS sous la main, mais on en trouve des
très bien dans le monde du logiciel libre, de mise en oeuvre aisée."
Alors là je me marre:
je viens de mettre en place (pour la première fois) un freeradius 0.90
(sur debian), et pour trouver de la doc c'est une galère incroyable (je
parle de la configuration ad-hoc du serveur radius pour mes besoins, donc
rien de spécial, sans doute une conf banale). Cela rend la mise en oeuvre
vraiment pas aisée, on trouve quelques docs sur le net qui sont trop
pointus quand on ne maitrise pas Freeradius et sinon on se retrouve avec
la mailing list de freeradius qui est une excellente source d'info mais
pas du tout orientée "howto".


Je t'ai dit qu'il y avait des serveurs RADIUS libres sympa et simples à
mettre en oeuvre, pas qu'ils l'étaient tous ;)

Tu peux jeter un coup d'oeil du côté de GNU Radius (pas plus simple,
mais y'a de la doc), Cistron ou encore YARD Radius (sympa). Je te laisse
chercher sur Freshmeat.

--
Au fait, tu sais quel animal a deux neurones ?
un freebsdiste avec un rat sur l'épaule ?

-+- K in GFA : L'animal de compagnie de Beastie -+-

Avatar
johndekalb
Cedric Blancher wrote in message news:...
Dans sa prose, John nous ecrivait :
Cedric nous dit:
"Il faut certes un serveur RADIUS sous la main, mais on en trouve des
très bien dans le monde du logiciel libre, de mise en oeuvre aisée."
Alors là je me marre:
...


Je t'ai dit qu'il y avait des serveurs RADIUS libres sympa et simples à
mettre en oeuvre, pas qu'ils l'étaient tous ;)

Tu peux jeter un coup d'oeil du côté de GNU Radius (pas plus simple,
mais y'a de la doc), Cistron ou encore YARD Radius (sympa). Je te laisse
chercher sur Freshmeat.


La doc guide mon choix, va pour GNU radius pour l'instant (Yard est
probablement "sympa" mais beaucoup moins que GNU radius pour la doc).

@+
John


Avatar
Bruno Bonfils
(John) writes:


</commentaire perso on> Cedric nous dit: "Il faut certes un serveur
RADIUS sous la main, mais on en trouve des très bien dans le monde
du logiciel libre, de mise en oeuvre aisée." Alors là je me marre:
je viens de mettre en place (pour la première fois) un freeradius
0.90 (sur debian), et pour trouver de la doc c'est une galère
incroyable (je parle de la configuration ad-hoc du serveur radius
pour mes besoins, donc rien de spécial, sans doute une conf
banale). Cela rend la mise en oeuvre vraiment pas aisée, on trouve
quelques docs sur le net qui sont trop pointus quand on ne maitrise
pas Freeradius et sinon on se retrouve avec la mailing list de
freeradius qui est une excellente source d'info mais pas du tout
orientée "howto". On trouve des docs géniales sur iptables, squid,
apache, et une tonnes d'autres appli du monde libre...., mais avec
freeradius on atteint des records d'absence de doc synthétique.
D'ailleurs si quelqu'un avait une URL je suis preneur, et je serais
même pret à tenter la rédaction d'un how-to freeradius (basique) si
j'arrive à le maitriser à peu près correctement !!! (A moins que je
ne sois passé complètement à coté du site de la doc freeradius ????)
</commentaire perso off>


Moi j'aime encore assez freeradius, et la doc, a part les fichiers de
config, il y en a pas, sauf quelques articles trainant par là sur le
site. Par contre, je ne sais pas ce que les autres serveurs radius
libres valent, mais freeradius offre des possibilités intéressantes
sur le failover et compagnie (pour autant que je me souvienne)

Si tu as besoin d'aide pour une configuration de base de freeradius,
je peux peut etre t'aider


--
Bruno Bonfils http://www.debian-fr.org/
http://www.asyd.net/

Avatar
T0t0
"Cedric Blancher" wrote in message
news:
Oui, mais non (tm). Tu as loupé la phrase "A stream cipher operates by
expanding a short key into an infinite pseudo-random key stream". Ce qui
veut dire que pour le XOR, ce n'est pas la clé qui est utilisée, mais
une bloc de données dérivé de la clé, le keystream. C'est d'ailleurs
pourquoi, dans pas mal de papier, quand on te parle d'un chiffrement
d'un message C par RC4 avec une clé k, on note :

C = P XOR RC4(k)

Si RC4 n'était qu'un XOR, il ne s'appelerait pas RC4, mais XOR, et ne
serait pas le sheriff de l'espace (SSL utilise principalement RC4 128bits
parce que ça va vite).


Exact.

[snip]
Ton attaque découle donc sur une attaque par table. Tu vas stocker pour
chaque IV le keystream qui va bien, puisque tu auras été capable de le
récupérer par ton attaque en clair connu. Quand tu auras récupéré
_tous_ les IV, tu auras environ 2Go de données sous la main qui te
permettront de déchiffrer n'importe quel message sur la base de son IV.
Mais cela nécessite la même opération sur 2^24 trames, éventuellement
moins si on retire les IV faibles comme le font pas mal d'AP maintenant,
ce qui impose la transmission d'une 15e de Go de données. Selon la BP
disponible, ça peut se révéler très long devant une renégociation de
clé forcée par EAP.


Merci des précisions. Je commence à y voir plus clair. Par contre, j'ai
cru comprendre que l'IV passait en clair dans le message (il serait
ajouté à l'en-tête)
Donc la connaissance du keystream et de l'IV permet d'obtenir la clef,
qui permet elle même de déchiffrer le message. A chaque trame reçue,
on peut déchiffrer le message.

Ainsi, on récupère une première fois le keystream en faisant l'attaque
proprement dite, puis à chaque trame reçue, on peut directement
déchiffrer le message.
Ca semble trop simple, y a un truc que j'ai du louper :-/




--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Avatar
Cedric Blancher
Dans sa prose, T0t0 nous ecrivait :
Merci des précisions. Je commence à y voir plus clair. Par contre, j'ai
cru comprendre que l'IV passait en clair dans le message (il serait
ajouté à l'en-tête)


Yes it is.

Donc la connaissance du keystream et de l'IV permet d'obtenir la clef, qui
permet elle même de déchiffrer le message. A chaque trame reçue, on
peut déchiffrer le message.


Euh, franchement, je ne suis pas sûr de la réversibilité du keystream
RC4, i.e. retrouver la clé à partir du keystream. Un cryptologue dans
l'assemblée ?

Ainsi, on récupère une première fois le keystream en faisant l'attaque
proprement dite, puis à chaque trame reçue, on peut directement
déchiffrer le message.


Manifestement, tout ce que j'ai lu s'arrête au même IV.

Ca semble trop simple, y a un truc que j'ai du louper :-/


La réversibilité de RC4...

Sinon, j'ai bien réfléchi à la question et j'ai quelques pistes, que je
viens de soumettre à relecture par quelqu'un de plus compétent que moi
dans le domaine, pour optimiser la récupération des trames. En
particulier sur un problème particulier que voici. Si on sait injecter
une trame modifiée sur le réseau, on doit avoir une certaine
connaissance du keystream qui a servi à la chiffrer pour pouvoir
récupérer quelquechose d'exploitable après déchiffrement de manière
efficace. Donc déjà avoir une sérieuse idée soit de la trame qu'on a
sous les yeux, soit de la partie du keystream relative à cette partie de
la trame chiffrée.

--
Dis donc, elle est maquee à un jaloux ta nièce ? Je faisais un brin de
causette, le genre reserve, tu me connais : mousse et pampre, v'là tout a coup
qu'un p'tit cave est venu me chercher ! Les gros mots et tout !
Bernard Blier, les Tontons Flingueurs

Avatar
T0t0
"Cedric Blancher" wrote in message
news:
Euh, franchement, je ne suis pas sûr de la réversibilité du keystream
RC4, i.e. retrouver la clé à partir du keystream. Un cryptologue dans
l'assemblée ?


Exact, ca ne semble pas si évident que ca.

Ca semble trop simple, y a un truc que j'ai du louper
La réversibilité de RC4...



Oui, tout à fait, ca devient tout de suite plus compliqué :-/

Sinon, j'ai bien réfléchi à la question et j'ai quelques pistes, que je
viens de soumettre à relecture par quelqu'un de plus compétent que moi
dans le domaine, pour optimiser la récupération des trames. En
particulier sur un problème particulier que voici. Si on sait injecter
une trame modifiée sur le réseau, on doit avoir une certaine
connaissance du keystream qui a servi à la chiffrer pour pouvoir
récupérer quelquechose d'exploitable après déchiffrement de manière
efficace. Donc déjà avoir une sérieuse idée soit de la trame qu'on a
sous les yeux, soit de la partie du keystream relative à cette partie de
la trame chiffrée.


Oui, il faut connaître certains paramètres, notamment des en-têtes.
Mais pour pouvoir chiffrer cette partie, il faut effectivement avoir
déjà une idée du keystream, ce qui ne me semble pas évident...

Merci de tes recherches, ca devient beaucoup plus clair pour moi, ou
du moins, plus difficile à envisager...




--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG


1 2