Passa al contenuto principale

RFC 8628 - Riepilogo Sezioni 5-8

Dichiarazione di stato del documento

Poiché le sezioni rimanenti di RFC 8628 (Sezione 5.1-8 e appendici) sono lunghe e dettagliate, per evitare la ripetizione di grandi volumi di contenuto originale protetto da copyright, questo documento fornisce riepiloghi di sezioni e punti chiave.

Il testo originale completo in inglese è disponibile su: https://www.rfc-editor.org/rfc/rfc8628.txt


Sezione 5: Considerazioni di sicurezza

5.1 User Code Brute Forcing

Punti chiave:

  • I codici utente sono brevi per migliorare l'usabilità, quindi bassa entropia
  • Raccomandazione: i server dovrebbero implementare limitazione di velocità
  • Raccomandato: utilizzare codici con entropia sufficiente (es: 8 caratteri base-20 ≈ 34.5 bit di entropia)
  • Combinazione di limitazione di velocità e durata limitata previene attacchi brute force

5.2 Device Code Brute Forcing

Punti chiave:

  • I codici dispositivo non vengono visualizzati all'utente, devono utilizzare alta entropia
  • Gli attaccanti che indovinano il codice dispositivo potrebbero ottenere l'autorizzazione

5.3 Device Trustworthiness

Punti chiave:

  • Il dispositivo che richiede l'autorizzazione differisce dal dispositivo dove l'utente autorizza
  • Possibilità di attacchi man-in-the-middle deve essere considerata
  • Dipende dall'affidabilità del produttore del dispositivo e del server di autorizzazione

5.4 Remote Phishing

Punti chiave:

  • Gli attaccanti potrebbero indurre gli utenti a inserire codici tramite e-mail, ecc.
  • Raccomandazione: confermare la proprietà del dispositivo durante il processo di autorizzazione
  • Per l'ottimizzazione verification_uri_complete, particolare attenzione richiesta per conferma dispositivo
  • La durata del codice utente dovrebbe essere sufficientemente breve per limitare gli attacchi di phishing

5.5 Session Spying

Punti chiave:

  • Utenti malintenzionati potrebbero spiare fisicamente l'interfaccia del dispositivo
  • I dispositivi dovrebbero considerare l'ambiente operativo per ridurre le possibilità che i codici vengano osservati

5.6 Non-Confidential Clients

Punti chiave:

  • I client dispositivo generalmente non possono mantenere la riservatezza delle credenziali
  • Dovrebbero essere considerati client pubblici, vulnerabili ad attacchi di impersonificazione
  • Vedi RFC6819 Sezione 5.3.1 e RFC8252 Sezioni 8.5, 8.6

5.7 Non-Visual Code Transmission

Punti chiave:

  • I codici utente possono essere trasmessi con mezzi non visivi (es: voce, Bluetooth)
  • Raccomandazione: il canale di comunicazione dovrebbe essere limitato all'accesso di prossimità

Sezione 6: Considerazioni di usabilità

6.1 User Code Recommendations

Formato raccomandato:

  • Set di caratteri Base-20: "BCDFGHJKLMNPQRSTVWXZ" (vocali rimosse, evita generazione casuale di parole)
  • Esempio: "WDJB-MJHT" (8 caratteri effettivi, 20^8 entropia)
  • Numeri puri: "019-450-730" (9 cifre, 10^9 entropia)
  • Raccomandazione di elaborazione: Insensibile maiuscole/minuscole, rimozione automatica trattini e punteggiatura

Migliori pratiche:

  • Evitare caratteri facilmente confondibili (0/O, 1/l/I)
  • Considerare la comodità di input su dispositivi mobili
  • Per aree tastiera non A-Z, considerare codici puramente numerici

6.2 Non-Browser User Interaction

Punti chiave:

  • Metodi alternativi di trasmissione codice possono essere negoziati
  • Es: trasmissione via Bluetooth ad app compagna
  • Oltre lo scopo di questa specifica, ma il protocollo supporta tali estensioni

Sezione 7: Considerazioni IANA

7.1 Registrazione parametri OAuth

Parametri registrati includono:

  • device_code
  • user_code
  • verification_uri
  • verification_uri_complete

7.2 Registrazione URI OAuth

URI registrato:

  • urn:ietf:params:oauth:grant-type:device_code

7.3 Registrazione errori estensione OAuth

Codici errore registrati:

  • authorization_pending
  • slow_down
  • expired_token

7.4 Metadati server di autorizzazione OAuth

Nuovo campo metadati:

  • device_authorization_endpoint

Sezione 8: Riferimenti

8.1 Riferimenti normativi

  • RFC2119 - Definizioni parole chiave
  • RFC6749 - The OAuth 2.0 Authorization Framework
  • RFC6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage
  • RFC8174 - Ambiguity of Uppercase vs Lowercase
  • RFC8259 - The JavaScript Object Notation (JSON) Data Interchange Format
  • RFC8414 - OAuth 2.0 Authorization Server Metadata
  • RFC8446 - The Transport Layer Security (TLS) Protocol Version 1.3

8.2 Riferimenti informativi

  • RFC6819 - OAuth 2.0 Threat Model and Security Considerations
  • RFC7525 - Recommendations for Secure Use of TLS and DTLS
  • RFC8252 - OAuth 2.0 for Native Apps

Documento RFC completo: https://www.rfc-editor.org/rfc/rfc8628 Data di pubblicazione: Agosto 2019 Standard Track: Standards Track