2008-10-09 8 views
2

Mon contenu est composé de plusieurs composants dont certains sont écrits en C. Comme je voudrais ajouter quelques fonctionnalités de sécurité, je pense à communiquer via une couche SSL/TLS.Ajout d'une couche TLS/SSL aux communications ..?

Pourriez-vous me conseiller un peu de lib pour faire ceci (si possible)?

Répondre

2

Nous utilisons axTLS qui fonctionne à la fois sur notre serveur (.NET) et sur nos systèmes embarqués (Linux et uClinux). Nous avons eu du mal à faire fonctionner OpenSSL sur uClinux.
axTLS n'est pas aussi complet que OpenSSL, alors assurez-vous qu'il répond à vos besoins avant de l'utiliser.

2

Que diriez-vous de OpenSSL?

+0

Attention, la licence, bien que gratuite, est compatible avec la GPL, ce qui peut poser problème pour certaines applications. – bortzmeyer

+0

Pour être clair, cependant, ce n'est pas GPL. Il utilise la licence Apache, qui est significativement différente et ne nécessite pas la publication de modifications. – ctacke

+2

@bortzmeyer: Vous voulez dire incompatible. Oui - je sais que c'était une faute d'orthographe mais juste pour clarifier cela. –

4

GnuTLS (S'il vous plaît noter que c'est principalement LGPL pas GPL donc vous peut lier à elle). Au moins je prefere que c'est API sur OpenSSL. Il existe également NSS de Mozilla.

+0

Oui, GnuTLS est, à mon humble avis, plus simple pour le programmeur. – bortzmeyer

0

Je suggère de ne pas passer votre temps à essayer d'implémenter une fonction SSL dans votre application. Au lieu de cela, vous pouvez simplement utiliser un logiciel de tunnel SSL existant, qui crée un tunnel SSL en face de votre application de socket existante.

Internet --- [SSLTunnel] --- Your App 

Par exemple, vous pouvez dire le tunnel SSL pour écouter le port 443 (https) et transmettre tous les paquets décryptés au port 80 (http). Pour votre application personnalisée, elle ne verra que les paquets décryptés.

Il y a beaucoup d'applications gratuites qui le font. Juste google pour un. CyaSSL serait un excellent choix à considérer.

+0

Si par application dans l'application vous voulez dire utiliser la bibliothèque quel est l'avantage d'utiliser le logiciel SSL-tunnel? Il me semble que vous ajoutez la complexité et les frais généraux comme vous devez faire IPC etc. Vous ne pouvez pas forcer le SSL (par exemple vous ne pouvez pas forcer le SSL sur la page de connexion) ou implémenter STARTTLS. –

+0

C'est philosophique. Cela dépend de ce à quoi vous vous abonnez. J'essaie de réduire la quantité de code qui doit être écrit/maintenu. Si ce n'est pas nécessaire, alors pourquoi s'embêter. Je ferais même disparaître avec écrire des applications simples de douille et utiliser juste quelque chose comme inetd à la place. – sybreon

+0

Je dirais que la quantité de code a une différence négligeable (quelques lignes en général, encore moins si vous utilisez une bibliothèque de niveau supérieur). –

0

C'est une bibliothèque SSL intégrée en C qui a été optimisée pour la vitesse et la taille. Il peut être jusqu'à 20 fois plus petit que OpenSSL, et peut être un peu plus rapide.

Parmi la liste des fonctionnalités, une taille minimale de 30-100kb et une couche de compatibilité OpenSSL. La liste complète des caractéristiques peut être consultée sur le site web de yaSSL ici:

http://www.yassl.com/yaSSL/Products_cyassl.html.

Il est double licence sous licence open source GPLv2 ainsi qu'une licence commerciale (pour le support). Il est mis à jour très fréquemment avec de nouvelles fonctionnalités. Je pense que l'une des fonctionnalités intéressantes est la prise en charge des chiffrements de flux RABBIT et HC-128 du projet eStream.

Questions connexes