Domanda

Va bene così sostanzialmente Ecco lo scenario di attacco Provider Bodysnatcher OpenID.

  1. Bob Google sostenuto identificativo è il seguente, TTP:? //www.google.com/accounts/o8/id id = AAtawkQvytyBNNuHpRhn36f8MLvFiJvZg8teNE

  2. Jane ha in qualche modo trovato "corrente" identificatore dichiarato di Bob.

  3. Si va fuori e crea qui proprio provider OpenID, www.jane.com/accounts/o8/id, in modo tale che quando gli viene chiesto tornerà identificatore dichiarato di Bob.

  4. Si va a qualche sito male codificato, www.bcs.com, che usi aperte ID e Bob ha un account su.

  5. Si dice www.bcs.com di utilizzare la www.jane.com/accounts/o8/id OpenID Provider.

  6. Ora questa è la parte che io non so e vorrei sapere se è possibile / realistico ... www.jane.com/id in qualche modo viene www.bcs.com a credere che il sostenuto identificatore "stringa" (cioè il valore che il sito sarà in ultima analisi, vedi) è ttps:? //www.google.com/accounts/o8/id id = AAtawkQvytyBNNuHpRhn36f8MLvFiJvZg8teNE

  7. .

E 'possibile, in qualche modo, anche se l'host è www.jane.com?

Stiamo lavorando per implementare OpenID e non vogliamo essere quel "luogo male codificato". Stiamo usando qualche libreria .NET di terze parti che ci dà l'Identifier Ha affermato quindi non siamo sicuri dove o come si costruisce. Se è possibile che possa essere falso, allora stiamo pensando di fare alcuni controlli che le partite URL del provider di OpenID Cos'è nella dichiarata Identifier.

Questo porta anche la preoccupazione sul fatto che si debba fare il passo ulteriore di hashing / scomposizione nostri identificatori rivendicati. Noi pensiamo di sì, perché Google cambia il suo identificativo in base al sito che richiede l'OpenID. Voglio dire, perché altrimenti sarebbe prendersi la briga di fare questo, se non per cercare di proteggere i suoi membri?

È stato utile?

Soluzione

Stai chiede in sostanza se è possibile scrivere un'implementazione di OpenID consumatori che viola l'abbastanza specifica per introdurre vulnerabilità di sicurezza. Sì. Si potrebbe omettere l'intero processo di validazione e di credere a tutto quello che ti dicono dal vostro utente.

Ma con un consumatore che segue da vicino la specifica OpenID, un tale attacco non è possibile.

Dato che lei ha detto che si utilizza una libreria .NET, probabilmente utilizzate DotNetOpenAuth. E 'la stessa libreria che usi StackOverflow, e probabilmente non c'è bisogno di preoccuparsi di eventuali vulnerabilità quando lo si utilizza. Se stai usando un'altra libreria, è probabilmente la scelta migliore per passare a DotNetOpenAuth.

Per quanto riguarda il motivo di Google per restituire identificatori regno-based: è fatto per proteggere la privacy dei suoi utenti, non per aumentare la sicurezza. In sostanza, questo assicura che non è possibile collegare l'account di tuo utente al suo account Google.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top