2010-05-17 18 views
3

Je développe un client Twitter open source. Je voudrais profiter de la nouvelle méthode d'authentification xAuth, mais mon application est open source ce qui signifie que si je mets les clés directement dans le fichier source, il peut s'agir d'une vulnérabilité (est-ce exact? . D'autre part, mettre la clé directement dans un binaire n'a pas non plus de sens. J'écris mon application en python, donc si je fournis juste les fichiers pyc, c'est une seconde de plus pour obtenir les clés, grâce aux excellentes capacités de réflexion de Python. Si je crée un petit fichier .so avec les clés, il est également trivial d'obtenir la clé en regardant le binaire brut (les clés ont une longueur fixe et un jeu de caractères).Twitter xAuth vs open source

Quelle est votre opinion? Est-ce vraiment un trou de sécurité pour exposer les clés de l'API?

Répondre

4

Trou de sécurité? En termes généraux, oui. D'un point de vue réaliste, ce ne sont pas des codes de lancement nucléaire dont nous parlons. A propos de la pire chose qui pourrait arriver est que quelqu'un pourrait prendre et utiliser les touches de votre application pour faire quelque chose contre Twitter TOS qui finira par interdire les clés. Aucune donnée utilisateur ne serait vulnérable puisque vous ne distribuez pas les jetons utilisateur (ce qui serait bien pire du point de vue de la sécurité). Puisque n'importe qui peut enregistrer une application en 2 secondes sans frais, la seule raison de faire ce genre d'usurpation d'identité serait précisément de ternir la réputation de vous ou de votre application. Une chose que vous pouvez faire est de les laisser hors du code source, mais de préciser que la compilation de l'utilisateur à partir de la source doit obtenir ses propres clés et les mettre à l'endroit approprié, mais les laisser dans la version binaire que vous distribuez . Pas 100% sécurisé, mais cela rend un peu plus difficile qui va dissuader un certain nombre de n'er-do-wells.

+0

Je suis arrivé à une conclusion similaire. Mon application est open source, mais les clés sont propiertary. Si les clés ne sont pas présentes, l'application revient à l'ancienne méthode d'authentification (ceci est assez simple, grâce à python et tweepy). – tamasd