Domanda

Ho avuto modo di sperimentare con OpenID, e hanno creato una pagina web di esempio per l'accesso utilizzando il mio account OpenID. Sto utilizzando il Php OpenID Library di Janrain e non funzionava con il mio Google Account. Una piccola ricerca mi ha portato a questa domanda , che suggerisce il problema è che Google utilizza https e ...

  

... è probabile che la messa a punto per fare richieste HTTPS è borked sul server PHP. Controllare per assicurarsi di aver il pacchetto ca-certificates installato.

Nello stesso filo, collegamenti qualcuno al loro versione modificata del biblioteca che ho schierato e ho usato con il mio account Google con successo. Altre domande hanno altre personalizzazioni per aggirare problemi simili ( di Janrain PHP-OpenID e Google / Yahoo , php-OpenID non funziona con Yahoo! , < a href = "https://stackoverflow.com/questions/1183788/example-usage-of-ax-in-php-openid/2612816"> Esempio di utilizzo di AX in PHP OpenID ...)

Io non sono troppo caldo per la sicurezza, quindi mi chiedo; Qualcuno sa di un motivo per non usare queste versioni violato?

La libreria originale hanno qualunque difetto questi hack fissare in base alla progettazione, e quindi l'hack è una potenziale vulnerabilità di protezione?

C'è un qualificato cripto-ifier là fuori che ha guardato in qualsiasi di queste soluzioni e andato "Per la barba di David Chaum! NO !! "

Se è così - e pertanto non dovrei utilizzare uno qualsiasi di questi hack -? Come faccio a controllare che io "ho il pacchetto ca-certificates installato"

È stato utile?

Soluzione

Ecco ciò che l'autore di una di quelle versioni "hacked" ha scritto:

  

In particolare CURLOPT_SSL_VERIFYPEER   e CURLOPT_SSL_VERIFYHOST sono vere da   DEFAULT: li ho impostato su false e   lavorato per la pagina di prova!

L'effetto che ha è quello di negare praticamente alcun vantaggio sicurezza offerta utilizzando HTTPS. Il motivo principale HTTPS è utile in OpenID è che si protegge contro un attacco man-in-the-middle, vale a dire alcuni veleni guy male la cache DNS per inviare tutte le richieste google.com a bad-guys.example. Con correttamente configurato HTTPS, si sarebbe verificare il certificato sulla connessione, scoprire che non era da parte di Google, e dire "Io non ho intenzione di credere a qualsiasi cosa che dici, bad-guys!"

A meno che, naturalmente, non si verifica alcun certificato (di impostare tutte le opzioni SSL_VERIFY a false), nel qual caso il vostro server credere a tutto quello bad-guys dice come se fosse il vero fornitore di Google. Si può immaginare come questo possa essere un male.

Ora, francamente, questo non è il peggiore scelta si potrebbe fare, perché non è peggio di un semplice utilizzando il protocollo HTTP, che un sacco di gente in ogni caso. Sei solo mentire agli utenti se implica che si sta fornendo la sicurezza HTTPS a livello quando non sei.

E c'è un sacco di informazioni là fuori su come sia facile o non è quello di fare un attacco basato su DNS, o quanto facile è di certificati SSL fucina . In entrambi i casi, richiede qualcuno per attaccare la connessione tra il server e Google, che è in generale più difficile che attaccare la connessione tra il computer portatile dell'utente nella caffetteria e il server.

Ma ancora, molto meglio per risolvere realmente la configurazione di PHP o CURL SSL. Oppure, se non, avvertono gli utenti di quel momento di firmare con HTTPS identificativi, in modo che possano scegliere se vogliono veramente da usare che OpenID con il tuo sito.

Il che porta alla tua seconda domanda. Credo che, non sapendo nulla su quale piattaforma server che si sta utilizzando, la cosa migliore che posso fare è quello di collegare a Documenti Curl sui certificati SSL ; vedere la sezione che dice "Prendi una migliore / diverso / più nuovo pacco CA cert!"

Altri suggerimenti

Dalla alle voci di Wikipedia Certificate Authority :

  

A CA emette certificati digitali che contengono una chiave pubblica e l'identità del proprietario. Quando un utente finale tenta di accedere un URL sconosciuta, il browser Web (ad esempio Mozilla Firefox e Microsoft Internet Explorer) contatterà il CA per confermare la chiave pubblica del URL.

... in modo che il certificato CA è un href="http://en.wikipedia.org/wiki/Public_key_certificate" rel="nofollow noreferrer"> chiave pubblica Certificato utilizzato per comunicare su https:// . Il server dovrebbe avere certificati CA sul file system da qualche parte. In caso contrario, dovrete scaricare il certificato CA se stessi e impostare la costante CURLOPT_CAINFO a punto per la sua posizione. See questo articolo .

http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

  

[...] Qualcuno sa di un motivo per non   usare queste versioni violato?

Oltre al fatto che si sta hacked versioni, che sono molto probabilmente senza documenti e non hanno alcuna garanzia in merito alla loro comportamento?

Non posso rispondere specificamente, ma ci dovrebbe essere qualche spie lampeggianti quando si lavora con i moduli che hanno avuto soluzioni rapide e soluzioni applicate, soprattutto quando hai a che fare con l'autorizzazione e la sicurezza .. Credo che il miglior consiglio sarebbe "Utilizzare a proprio rischio e pericolo!"

Sono sicuro che qualcuno con più conoscenza sul tema arriverà abbastanza presto con una risposta più informato.

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