Archivi tag: Sicurezza

Il Protocollo OAuth

Logo OAuth
Logo OAuth

Ultimamente mi sono imbattuto in un piccolo progetto con Java. Per il momento non vi anticipo lo scopo del progetto, che spero di pubblicare il prima possibile su questo blog,  ma grazie a questo sto studiando parecchi aspetti della programmazione web oriented, dell’integrazione con i social network e delle metodologie del futuro.

Tutti questi studi e tutte le mie scoperte le condividerò ovviamente con tutti voi in un insieme di articoli che pubblicherò su questo blog. In questo primo articolo della serie vi parlerò di come funziona l’autenticazione tra una Applicazione ed un Sistema Esterno utilizzando OAuth!

OAuth è un protocollo open che permette ad Applicazioni Web o Desktop di chiamare in modo sicuro ed autorizzato API messe a disposizione da un Sistema Esterno in modo semplice e standard. Questo protocollo risulta essere molto efficace in chiamate conformi alla metodologia RESTful, quindi facilmente applicabile a tutte quelle applicazioni scritte in linguaggi capaci di aprire una Socket.

Il protocollo OAuth ha essenzialmente due principi. Li riporto dal sito ufficiale:

OAuth is a simple way to publish and interact with protected data. It’s also a safer and more secure way for people to give you access. We’ve kept it simple to save you time.

If you’re storing protected data on your users’ behalf, they shouldn’t be spreading their passwords around the web to get access to it. Use OAuth to give your users access to their data while protecting their account credentials.

In poche parole, quello che OAuth vuole dirci è che quando una Applicazione vuole utilizzare i dati di un Utente salvati in un Sistema Esterno, questa non deve venire in possesso dei dati di accesso dell’Utente verso il Sistema Esterno, ma l’Utente deve autorizzare in modo esplicito il Sistema Esterno a fornire i dati all’Applicazione.

Il ragionamento sembra essere molto contorto, ma basta guardarsi in giro su Internet per vedere come questo concetto sia all’ordine del giorno:

  • Dobbiamo esplicitamente dire al Facebook che autorizziamo una data Applicazione prima di vederla sul nostro profilo;
  • Dobbiamo esplicitamente dire a Twitter che autorizziamo una data Applicazione ad aggiornare il nostro stato;
  • Dobbiamo esplicitamente dire a Yahoo o Google che autorizziamo una data Applicazione a recuperare i nostri dati;
  • ecc…

Come potete rendervi subito conto, tutte le Applicazioni che ho menzionato riescono ad avere un accesso ai dati dell’Utente di un determinato Sistema Esterno (Facebook, Twitter, Yahoo, Google, ecc…) senza che queste conoscano in modo diretto la login e la password dell’Utente stesso e garantendo a questo un livello di privacy molto elevato!

Sorpresi?

Questa autorizzazione avviene ovviamente in piena conformità con la filosofia RESTful, ovvero utilizzando l’header HTTP, in particolare il campo Authorization.

I passi che vengono effettuati nel processo di autorizzazione sono i seguenti:

  1. In modo preliminare, lo sviluppatore dell’Applicazione deve registrare quest’ultima sul Servizio Esterno, indicando quali dati potranno essere recuperati;
  2. L’Utente accede all’Applicazione che contatta il Servizio Esterno per ricevere un “Unauthorized Request Token”;
  3. L’Applicazione ridirige l’Utente verso il Sistema Esterno, passando il token non autorizzato;
  4. L’Utente decide di autorizzare l’Applicazione direttamente sul Sistema Esterno;
  5. Il Sistema Esterno ridirige l’Utente verso l’Applicazione passando un “Access Token”;
  6. L’Applicazione accede ai dati dell’Utente presenti sul Sistema Esterno grazie al token autorizzato.

Se volete approfondire il protocollo vi consiglio essenzialmente due link: le specifiche ufficiali del protocollo ed una spiegazione come Google usa OAuth.

The 10 Cyber Security Commandments

National Cyber Security Alliance
National Cyber Security Alliance

La NCSA in collaborazione con Facebook ha stilato i dieci comportamenti da seguire nei social network, ed in generale nel cyberspazio, per essere sicuri che la nostra Privacy stia al sicuro da malintenzionati.

Prima di visualizzare questo elenco, scopriamo chi è NCSA.

La sigla NCSA è l’acronimo di National Cyber Security Alliance. La sua mission è quella di potenziare e sostenere i cyber cittadini digitali per un uso sicuro di Internet, proteggendo se stessi e l’infrastruttura informatica. Il sito staysafeonline.org è un ottimo raccoglitore di informazioni sulla sicurezza informatica per privati, piccole e grandi aziende. Sul sito, infatti, è possibile recuperare informazioni su come e da cosa proteggersi per evitare spiacevoli violazioni della nostra privacy. Il target del sito sono tutti gli utenti di internet e la sua interfaccia è stata costruita in modo da renderlo accessibile anche a utenti di profilo medio-basso, ovvero quella tipologia di utenti che non ha molta dimestichezza con il mondo di Internet e dei computer in generale (che ovviamente sono i più colpiti da attacchi cracker).

Ma andiamo alla lista dei dieci comandamenti sulla sicurezza:

  1. Proteggi i tuoi dati personali. Prima di condividerli pensa bene chi potrà consultarli, quale è l’effettivo valore dei dati personali condivisi e per quale motivo terze persone devono avere accesso a quei dati;
  2. Creare password complesse e lunghe che contengono contemporaneamente lettere, numeri e simboli. Cambiare la password in modo frequente;
  3. Non utilizzare reti pubbliche per svolgere lavori privati;
  4. Tieni sempre aggiornato il tuo software, il tuo sistema operativo ed il tuo browser;
  5. Fai transazioni solo in siti sicuri. Controlla che il protocollo utilizzato sia un “shttp” o “https”;
  6. Utilizza le impostazioni di Privacy e sicurezza nei social network;
  7. Comprendi le tipologie di minacce possibili consultando il sito dell’NCSA;
  8. Fai regolarmente dei backup dei tuoi documenti importanti e proteggi musica, foto e lavoro;
  9. Proteggi fisicamente il tuo computer. Non lasciare il tuo numero di carta di credito in un computer pubblico;
  10. Denuncia i crimini informatici.

Grazie a questi semplici dieci consigli, possiamo essere sicuramente più sicuri sulla nostra sicurezza!