Hi Taylor, Thanks for your reply.
What I am currently considering is a connection to my server to exchange keys - which you mentioned. The xAuth part would be done from my server, the oAuth on the client. I wrote it like this from the start - exchanging keys with my server - because I didn't read the documentation entirely. I was under the impression that only a normal secret key was needed to sign client-requests, while the consumer secret was only used for logging in people. When I wanted to send my first tweet from my app, I noticed that it didn't work and after a few hours of debugging it seemed that I needed both secret keys. Implemented that, and it worked. Yet still it makes no sense. If a consumer key is needed for allowing an user to use your application and get a client key, why would you still need the consumer key? For all other requests those 2 keys simply go together, so why not make a normal client twice as long? Sure - I can implement it the way the oAuth is used, but it seems wrong. Tom On Jun 23, 5:18 pm, Taylor Singletary <taylorsinglet...@twitter.com> wrote: > Hi Tom, > > I'm happy you're fully considering the implications here. With desktop > applications, it's a matter of "best effort" security with your consumer > secret and access token secrets. We recommend making it difficult to obtain > the keys from a packaged application, while acknowledging that a determined > hacker would be able to obtain them. That's where monitoring and damage > control comes in -- we give all app developers the ability to > reset/regenerate their consumer key and secret at any time, which is an > effective "kill switch" for the former secrets. As time goes on, we hope to > provide more tools that will help application developers detect application > abuse. > > xAuth adds further complication if the keys are compromised, but should any > rogue exchange logins for access tokens, regenerating your consumer key and > secret will again cut them off from using those access tokens without the > most recent key combination. > > We do our best to monitor for abuse and proactively stub out issues when > they arise. There are some alternatives you can explore that would still > protect your Twitter credentials, such as using the API through a homebrew > proxy that actually holds the keys, or using a home-brew OAuth scheme > between your application and a server to retrieve the keys securely. I'm not > actually recommending these avenues, but they are options. > > The potential damage should your key get hijacked won't really effect your > user account (unless you provide your access tokens in the application -- > not a good idea), and the most damage likely to your application would be a > temporary suspension and potential fallout from any actions taken by the > hacker on behalf of your application (issuing Tweets/Spam/etc.) > > Taylor > > On Wed, Jun 23, 2010 at 2:12 AM, Tom van der Woerdt <allerleiga...@gmail.com > > > > > > > > > wrote: > > Hi all, > > > I'm wondering why there's a "secret" key if you need to include it with > > desktop applications... Of course, there's the client secret key which > > needs to remain secret, but why is there a secret key for applications > > if it doesn't remain secret? > > > Is it the combination of the 4 keys that always needs to remain private? > > The consumer key, consumer secret, and client token are, of course, safe > > to present to people (but still unwise, so I won't). > > > It simply doesn't feel right to be including "secret" keys in an > > application - everyone could see them and they wouldn't be secret, would > > they? > > > As far as I have seen so far, the only thing you can do with a consumer > > secret key, is signing the requests and requesting tokens (or, in my > > case, use xAuth). Is there any reason why I shouldn't include the secret > > key in my application? Anything that can damage my twitter account > > and/or the application? > > > Tom