Protegendo os segredos do OAuth nos envios do App Showdown

4

Estou participando do Ubuntu App Showdown e meu envio vai fazer uso de serviços da web de terceiros que usam o OAuth para liberar seus dados protegidos para os clientes. Dado que as regras afirmam que o aplicativo deve ser de código aberto, fiquei me perguntando se uma isenção poderia ser feita para um único arquivo contendo os segredos do OAuth, para que eles não sejam distribuídos livremente.

O risco com um segredo OAuth distribuído é que eles estão vinculados a aplicativos específicos para que o serviço possa identificar qual aplicativo está solicitando quais dados de qual usuário. Se esses segredos forem divulgados, ele permitirá que as partes com intenção maliciosa imitem uma solicitação proveniente de um aplicativo legítimo, fazendo com que esse aplicativo seja culpado por qualquer tentativa incorreta cometida usando as credenciais comprometidas.

Eu estaria disposto a fornecer o arquivo de credenciais para os juízes em particular, se assim o desejarem.

Dado o requisito geral de que os envios para o centro de software sejam de código aberto, talvez essa isenção também possa ser feita na política de envio.

    
por Chris Wilson 16.06.2012 / 13:33

1 resposta

4

Dependendo do serviço da web que você deseja usar, a resposta é uma delas:

1) Você não pode, período

Se o serviço exigir que você proteja completamente o segredo do token, os aplicativos da área de trabalho estarão sem sorte. Mesmo aplicativos de código fechado podem ter seus binários examinados ou serem descartados durante solicitações HTTP. Se o serviço da Web impõe uma regra tão rígida, eles estão fora de contato com a realidade ou esperam que apenas os aplicativos da Web usem sua API.

2) Apenas ofusque

Alguns serviços da Web são tolerantes se você simplesmente não tornar o segredo imediatamente disponível. Basta usar um esquema de ofuscação reversível simples que não requer o fechamento da fonte.

3) Não proteja de todo

Você pode ver aqui que o Google é um exemplo de serviço que reconhece que a proteção completa e secreta é uma batalha perdida por aplicativos de desktop. Para aqueles, você pode colocar a chave no código aberto e ser feliz.

Por isso, recomendo que você entre em contato com o suporte técnico e pergunte em quais desses casos você está.

    
por Marcelo Hashimoto 16.06.2012 / 15:24