Quero criar um cliente de Twitter de cliente espesso, desktop e de código aberto. Por acaso, estou usando o .NET como idioma e o Twitterizer como meu invólucro OAuth / Twitter, e meu aplicativo provavelmente será lançado como código aberto.
Para obter um token OAuth, são necessárias quatro informações:
- Token de acesso (nome de usuário do twitter)
- Segredo de acesso (senha do twitter)
- Chave do consumidor
- consumidor secreto
As duas últimas informações não devem ser compartilhadas, como uma chave privada PGP. No entanto, devido à maneira como o fluxo de autorização do OAuth é projetado, eles precisam estar no aplicativo nativo. Mesmo que o aplicativo não fosse de código aberto e a chave / segredo do consumidor fosse criptografada, um usuário razoavelmente qualificado poderia obter acesso ao par de chave / segredo do consumidor.
Então, minha pergunta é: como contornar esse problema? Qual é a estratégia adequada para um cliente de desktop do Twitter proteger sua chave e segredo do consumidor?