Segredos do OAuth em aplicativos para dispositivos móveis

Ao usar o protocolo OAuth, você precisa de uma string secreta obtida do serviço para o qual deseja delegar. Se você estiver fazendo isso em um aplicativo da Web, poderá simplesmente armazenar o segredo em sua base de dados ou no sistema de arquivos, mas qual é a melhor maneira de lidar com isso em um aplicativo móvel (ou em um aplicativo de desktop)?

Armazenar a string no aplicativo obviamente não é bom, pois alguém poderia facilmente encontrá-la e abusar dela.

Outra abordagem seria armazená-lo em seu servidor e fazer com que o aplicativo o obtenha em todas as execuções, nunca armazenando-o no telefone. Isso é quase tão ruim, porque você precisa incluir o URL no aplicativo.

A única solução viável que posso obter é primeiro obter o token de acesso como normal (de preferência usando uma visualização da Web dentro do aplicativo) e rotear toda a comunicação posterior por meio de nosso servidor, que anexaria o segredo aos dados da solicitação e comunicaria com o provedor. Então, novamente, eu sou um segurança noob, então eu realmente gostaria de ouvir algumas opiniões dos povos conhecedores sobre isso. Não me parece que a maioria dos aplicativos está indo até esses limites para garantir a segurança (por exemplo, o Facebook Connect parece assumir que você coloca o segredo em uma string diretamente no seu aplicativo).

Outra coisa: não acredito que o segredo esteja envolvido em solicitar inicialmente o token de acesso, para que isso possa ser feito sem envolver nosso próprio servidor. Estou correcto?

questionAnswers(13)

yourAnswerToTheQuestion