È sicuro trasferire il token di accesso di Facebook tramite TCP? Qual è la cosa peggiore che può accadere se qualcuno ottiene il token?
Dipende da cosa stai cercando di fare e che tipo di connessione TCP stai usando.
Per farla breve, ti darò alcune cose da considerare:
Come detto: TCP è proprio come FTP, HTTP e tutti gli altri protocolli. Se non è crittografato, le persone possono recuperare e utilizzare le informazioni intercettate più rapidamente. Come risposta rapida alla tua domanda generalizzata, questo dovrebbe soddisfare.
Se ti aspetti un'analisi dei rischi approfondita, noi (le persone che cercano di aiutare rispondendo) dovremmo sapere qualcosa in più sul "Perché TCP e che cosa". Ma alla fine, ti ritroverai con una connessione criptata (TCP o altro) se vuoi essere sicuro al 100% che stai trasmettendo in modo SICURO token di accesso a Facebook da qualche altra parte tranne Facebook. Pensa ad esso come il tuo database MySQL ... non stai memorizzando le password in modo non criptato o sei? Lo stesso vale per la trasmissione di dati sensibili: tienilo al sicuro e crittografare quello che puoi perché non sai mai dove il prossimo script-kid potrebbe essere in agguato per rovinarti la giornata.
Hmmm ...
Perché ho la sensazione che la risposta più breve sarebbe stata un semplice "no" a due lettere?
-
Aggiorna
Come alcuni commenti mostrano che c'è una grande mancanza nella comprensione della sicurezza dei dati, aggiungerò alcune righe.
Alcuni hanno sostenuto che HTTPS esegue la crittografia in-stream. Non è così. HTTPS combina Hypertext Transfer Protocol (HTTP) con protocollo SSL / TLS.
Le trasmissioni HTTPS potrebbero essere crittografate, ma dal punto di vista SICUREZZA, tutto può essere intercettato, crittografato o meno.
Successivamente, alcuni sembrano mischiare HTTPS con il meno usato S-HTTP (Secure HTTP). C'è una grande differenza!
guarda la domanda
La domanda era:
"Is it safe to transfer Facebook access token via TCP? What is the worst that can happen if someone gets the token?"
La risposta è NO , devi usare protocolli sicuri per evitare attacchi di tipo eavesdropping / man-in-the-middle.
Ma supponiamo che l'OP sia intelligente e utilizzi HTTPS come un wrapper crittografico. Con HTTPS potresti evitare di attaccare o attaccare man-in-the-middle, ma non puoi ignorare che un attacco con testo cifrato avrà ancora successo! Per una prima lettura di questo, controlla "LIMITAZIONI di HTTPS" agli attacchi link e "CSS" a link .
Come l'OP ha chiesto del "caso peggiore", la risposta è: "intercettazione della chiave, decrittazione opzionale dei dati intercettati quando viene utilizzato un livello di sicurezza come HTTPS e alla fine potrebbe portare all'abuso del token ".
Ora, se la domanda fosse stata "quanto è probabile che ciò accada", avrei risposto: "praticamente improbabile, ma questo non significa che non possa accadere".
Ma se controlli di nuovo la domanda, scoprirai che non era parte della domanda. Quindi non entrerò in statistiche e calcoli di probabilità qui. Inoltre, ci mancano parti importanti del "come e perché" della trasmissione, quindi nessuno può dare una risposta definitiva in merito alla probabilità. Sarebbe poco professionale, per non dire altro.
altre forme di attacco
Non importa come lo fai - alla fine, tutto ciò che è crittografico non protetto e inviolabile deve ancora essere inventato.
A seconda del paese, possono esserci e ci saranno tutta una serie di ulteriori problemi di sicurezza ... e non sto parlando della Cina! Guarda come Tunesia ha dato un calcio alla sicurezza di FaceBook con qualcosa di così semplice, che dovrebbe farti venire i brividi lungo la schiena: link
guarda di nuovo la domanda
Non prendere le domande sulla sicurezza con leggerezza. Puoi commentare la mia risposta e votarla, ma ciò non renderà più sicura la trasmissione di un token di Facebook via TCP!
Specialmente, poiché l'OP non indica che sta usando alcun tipo di livello di sicurezza, dobbiamo interpretarlo come se il token di FaceBook fosse trasmesso da IP "a" a IP "b" in modo non sicuro!
Una normale trasmissione di dati tramite TCP non è sicura per definizione per diversi motivi, dei quali ho semplicemente graffiato la superficie di alcuni.
Posso solo ripetere: non prendere le domande di sicurezza con leggerezza.
No, non è sicuro.
I token di accesso sono piuttosto sensibili . Chiunque conosca il token di accesso per un utente può accedere ai dati dell'utente ed eseguire alcune azioni come utente , fino a quando il token è valido. Ad esempio, chiunque conosca il token di accesso T
può accedere ai dati dell'utente accedendo a https://graph.facebook.com/me?access_token=T
.
I dettagli di esattamente ciò che il token di accesso può essere usato variano. Un token di accesso viene concesso a un'applicazione quando l'utente autorizza l'applicazione (ad esempio, approva l'installazione dell'applicazione). Quando l'utente autorizza l'applicazione, all'utente viene chiesto di approvare le autorizzazioni richieste dall'app. Il token di accesso da solo concede quindi l'accesso a tali autorizzazioni. Pertanto, un token di accesso è sufficiente per consentire a un cattivo ragazzo di fare tutto ciò che l'app a cui inizialmente è stato concesso il token di accesso era autorizzato a fare. A seconda di quali permessi sono stati concessi all'app, questo potrebbe includere cose come leggere il muro dell'utente, ottenere informazioni sull'utente, trovare informazioni sugli amici dell'utente, postare sul muro dell'utente o cose del genere.
Se si invia il token di accesso tramite una connessione TCP non crittografata, un intercettatore che può catturare il traffico inviato può recuperare il token di accesso e quindi utilizzarlo per accedere ai dati dell'utente o intraprendere azioni per conto dell'utente. Non va bene.
Per questi motivi, dovresti trattare i token di accesso come riservati e non devi mai inviare token di accesso su un canale non crittografato.
Facebook usa sempre HTTPS ogni volta che trasmette un token di accesso. Dovresti fare lo stesso: invia il token di accesso solo su canali criptati, come HTTPS; non inviare mai un token di accesso su canali non criptati.
Leggi altre domande sui tag authentication web-application