Hi,
I'm interested in creating a sort of hand-off authentication method, where there's a client and two servers (let's call them Alice, Bob and Carmen Sandiego, respectively). Alice is a client (in a browser) somewhere on the 'net, possibly behind a NAT that gives a different IP for outgoing requests to different addresses (I know there are some corporate NATs that do this, so just in case).
Alice logs onto Bob using standard challenge-response authentication. The goal is that Alice can now make a request to Carmen and be recognized as an authenticated user. I assume the best method would be to have Bob create some temporary passkey which is sent to both Alice and Carmen and Alice will send that passkey to Carmen. However, I'm no crypto expert and so I'm unsure exactly how to make this communication safe. That is, if there's an eavesdropper on the Alice-Bob line that accesses the passkey, it could just send this straight to Carmen and get unauthorized access.
So does anyone have any ideas about how to do this? I'm assuming it involves a lot of shared secrets, random numbers, and hashing, but I'm not sure exactly what's cryptographically sound.
Thanks, Robert