Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

rsa pour appli client-serveur tcp/ip perso : ssh ?

5 réponses
Avatar
Thomas
j'ai une appli (enfin 2 ou plus) qui communiquent par tcp/ip

j'aimerais utiliser rsa pour crypter les comms
mais vous vous doutez que j'aimerais me passer de coder moi meme le
cryptage ;-)


alors comme ssh permet plein de choses, je me disais qu'on pouvait peut
etre lui demander ca .... --> ???

ca ne me derange pas du tout, si les logiciels font d'abord une
connection non cryptée pour négocier, qu'ils la ferment, et la rouvrent
avec ssh avec des parametres sur lesquels ils se sont mis d'accord


en fait la solution que je vois, c'est que
le client fabrique ses clés, il contacte le serveur en non crypté, il
lui donne la clée publique, le serveur met cette clée dans le fichier
des clées autorisées, le client recontacte le serveur en faisant un
tunnel ssh

pb mineur : ca utilise le port 22 (ca oblige à ouvrir ce port sur le
routeur, du coup n'importe qui peut essayer d'ouvrir une connexion ssh)

pb majeur vraiment tres ennuyeux : l'utilisateur du logiciel client peut
ouvrir un shell ssh quand il veut
alors qu'il faudrait que ces 2 applis puissent refaire une connexion
quand elles veulent, mais pas d'autres appli
(ou au minimum en utilisant les memes ports, ce qui implique que sur
l'ordi serveur il y a une appli complice qui ecoute sur le meme port, ce
qui devrait suffire au niveau séurité)


voilà, j'espere que je suis pas trop confus,
est ce que qqn a une soluce ? :-)

--
si je dors : wakeonlan -i tDeContes.hd.free.fr 00:03:93:AF:45:AE
(seulement dans le 1/4 h où mon ordi est mis en veille,
donc je vous invite à réclamer à free : l'acces à arp -s,
ou la possibilité de rediriger le NAT sur l'adresse de broadcast :-) )

"don't put your PC out of the window, put windows out of your PC"
"petit Free qui devient grand, gêne les requins blancs"

5 réponses

Avatar
Thomas
In article (Dans l'article) <ck5urn$1crt$,
Nicolas George <nicolas$ wrote (écrivait) :

Stephane Chazelas wrote in message
:
Utilise SSL


J'appuie ce conseil. Enfin, plutôt TLS, qui est la version standardisée et
moderne du protocole.


ca a l'inconvenient qu'il semble que j'ai ssl installé mais pas tls
(d'apres man rsa, man ssl et man tls)

c'est tellement mieux ?


(qu'utilise ssh).


Non, ssh a son propre protocole et ses propres mécanismes
d'authentification, différents de ceux de SSL/TLS. Je suppose que l'erreur
vient du fait qu'OpenSSH utilise les bibliothèques de cryptographie
d'OpenSSL, mais justement, il utilise la libcrypto (algorithmes de crypto),
mais pas la libssl (protocole).


ok :-)


apparement c'est du c

comment ca se passe ?
on envoie un stream dans une fonction, et elle nous le renvoie crypté ou
décripté, charge à nous d'assurer ensuite le transport à notre
convenance ?

--
si je dors : wakeonlan -i tDeContes.hd.free.fr 00:03:93:AF:45:AE
(seulement dans le 1/4 h où mon ordi est mis en veille,
donc je vous invite à réclamer à free : l'acces à arp -s,
ou la possibilité de rediriger le NAT sur l'adresse de broadcast :-) )

"don't put your PC out of the window, put windows out of your PC"
"petit Free qui devient grand, gêne les requins blancs"


Avatar
Erwann ABALEA
Bonsoir,

On Fri, 8 Oct 2004, Thomas wrote:

In article (Dans l'article) <ck5urn$1crt$,
Nicolas George <nicolas$ wrote (écrivait) :

Stephane Chazelas wrote in message
:
Utilise SSL


J'appuie ce conseil. Enfin, plutôt TLS, qui est la version standardisée et
moderne du protocole.


ca a l'inconvenient qu'il semble que j'ai ssl installé mais pas tls
(d'apres man rsa, man ssl et man tls)


Je ne pense pas que tu ne puisses pas faire de TLS si tu as OpenSSL
d'installé, sauf si tu as une *très* vieille version. Donc considère que
tu peux faire du TLS.

c'est tellement mieux ?


TLS v1 est identique à SSL v3.

apparement c'est du c


Ah ben oui, OpenSSL est une API qu'on programme en C. Mais si tu préfères
un autre langage, il y a sûrement un binding déjà réalisé. Ca existe pour
Perl, Python, ...

comment ca se passe ?
on envoie un stream dans une fonction, et elle nous le renvoie crypté ou
décripté, charge à nous d'assurer ensuite le transport à notre
convenance ?


Presque. Pour faire simple et court, tu manipules des objets de type BIO
(Basic Input Output) que tu peux chaîner. Tu as un BIO qui permet de
recevoir une connexion TCP, un autre pour en établir une, un BIO buffer,
et un BIO pour chiffrer (et déchiffrer). Tu crées ces objets, tu les
assembles, et tu lances une connexion, et ça marche automagiquement, tu
peux ensuite lire et écrire dans le premier BIO de chaque chaîne pour
transmettre tes informations.
Après, pour compliquer, tu peux ajouter tes fonctions callback pour
vérifier le certificat de l'autre, et tu peux donc restreindre les clients
potentiels.

Pour une description plus détaillée de comment utiliser l'API d'OpenSSL,
je te conseille d'aller sur leur site (www.openssl.org), de lire des
exemples de code source, de lire les tutoriaux, enfin bref de faire comme
on doit faire d'habitude.

Bon courage.

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
je pense pas que ce soit toi....tu es bien trop vicieux pour agir de
cette façon. Toi ton genre, c'est plus de contacter banque direct en
esperant que je n'auras pas mes cadeaux de parrainages!!!!!
-+- JD in <http://neuneu.mine.nu> : Petit neuneu Noël -+-



Avatar
Thomas
In article (Dans l'article)
,
Erwann ABALEA wrote (écrivait) :

Bonsoir,

On Fri, 8 Oct 2004, Thomas wrote:

In article (Dans l'article) <ck5urn$1crt$,
Nicolas George <nicolas$ wrote (écrivait) :

Stephane Chazelas wrote in message
:
Utilise SSL


J'appuie ce conseil. Enfin, plutôt TLS, qui est la version standardisée et
moderne du protocole.


ca a l'inconvenient qu'il semble que j'ai ssl installé mais pas tls
(d'apres man rsa, man ssl et man tls)


Je ne pense pas que tu ne puisses pas faire de TLS si tu as OpenSSL
d'installé, sauf si tu as une *très* vieille version. Donc considère que
tu peux faire du TLS.

c'est tellement mieux ?


TLS v1 est identique à SSL v3.


ok :-)



apparement c'est du c


Ah ben oui, OpenSSL est une API qu'on programme en C. Mais si tu préfères
un autre langage, il y a sûrement un binding déjà réalisé. Ca existe pour
Perl, Python, ...

comment ca se passe ?
on envoie un stream dans une fonction, et elle nous le renvoie crypté ou
décripté, charge à nous d'assurer ensuite le transport à notre
convenance ?


Presque. Pour faire simple et court, tu manipules des objets de type BIO
(Basic Input Output) que tu peux chaîner. Tu as un BIO qui permet de
recevoir une connexion TCP, un autre pour en établir une, un BIO buffer,
et un BIO pour chiffrer (et déchiffrer). Tu crées ces objets, tu les
assembles, et tu lances une connexion, et ça marche automagiquement, tu
peux ensuite lire et écrire dans le premier BIO de chaque chaîne pour
transmettre tes informations.
Après, pour compliquer, tu peux ajouter tes fonctions callback pour
vérifier le certificat de l'autre, et tu peux donc restreindre les clients
potentiels.


ouh là là, ca a l'air compliqué,
d'autant plus, pour etre tres franc, que quand j'ai demandé si il
existait un binding ada, on m'a pas repondu :-/
(et je sais presque pas programmer en c)


c'est vraiment pas possible en utilisant ssh ?

tant pis pour les ports ouverts en plus, puisqu'on peut n'accepter que
les connexions en local,
tout ce qu'il faudrait, pour la sécurité, c'est pouvoir dire au serveur
ssh
- d'ecouter sur le port n tant en plus du port n 22,
- et d'accepter seulement telle commande (je preciserai une demande de
tunnel) avec telle clé publique (au lieu de tous les services sur le
port 22) sur le nouveau port

et coté client je n'ai rien besoin de plus, il me semble


Bon courage.


merci :-)

--
si je dors : wakeonlan -i tDeContes.hd.free.fr 00:03:93:AF:45:AE
(seulement dans le 1/4 h où mon ordi est mis en veille,
donc je vous invite à réclamer à free : l'acces à arp -s,
ou la possibilité de rediriger le NAT sur l'adresse de broadcast :-) )

"don't put your PC out of the window, put windows out of your PC"
"petit Free qui devient grand, gêne les requins blancs"




Avatar
Nicolas George
Thomas wrote in message
:
c'est vraiment pas possible en utilisant ssh ?


Ce n'est vraiment pas fait pour. En revanche, regarder du côté de stunnel
peut être une bonne idée.

Avatar
Thomas
In article (Dans l'article) <ckusgu$22cf$,
Nicolas George <nicolas$ wrote (écrivait) :

regarder du côté de stunnel


ouais, faut que je regarde plus precisément mais ca a l'air pas mal :-))

--
si je dors : wakeonlan -i tDeContes.hd.free.fr 00:03:93:AF:45:AE
(seulement dans le 1/4 h où mon ordi est mis en veille,
donc je vous invite à réclamer à free : l'acces à arp -s,
ou la possibilité de rediriger le NAT sur l'adresse de broadcast :-) )

"don't put your PC out of the window, put windows out of your PC"
"petit Free qui devient grand, gêne les requins blancs"