asp.net + token al portatore: manomissione delle richieste di risarcimento?

1

Sto sperimentando un'autenticazione OAuth2 in un servizio web asp.net.

Quando si genera accidentalmente una quantità enorme di attestazioni, ho scoperto che il token al portatore aumenta drasticamente in termini di dimensioni. Ciò mi porta a presupporre che le attestazioni e le eventuali altre informazioni relative all'autorizzazione vengano memorizzate nel token al portatore.

(In precedenza avevo l'impressione che il token al portatore fosse solo un altro tipo di ID di sessione e attestazioni / ruoli in cui è memorizzato il lato server)

Le mie ipotesi:

  • Le attestazioni di identità sono memorizzate nel token al portatore e quindi accessibili dal cliente.
  • Mi sento incoraggiato dalle linee guida per sviluppatori (MSDN, StackOverFlow) per archiviare informazioni relative alle identità nelle rivendicazioni (ad esempio "ClientID" = xxxx, "CanViewSensitiveData" = true, ecc.). L'ho considerato "stato dell'arte".

La combinazione dei due punti sembra non essere corretta. L'invio / ricezione di dati sensibili all'autenticazione / autorizzazione al / dal client offrirebbe la possibilità a un cliente canaglia di manomettere il token al portatore e di modificare i reclami / ruoli contenuti. Precedentemente, con l'utilizzo dell'ID di sessione, questo è stato attenuato da una generazione casuale del sessionID e dell'enorme entropia.

Sono certo che gli inventori di questa tecnologia / protocollo hanno già impedito la manomissione dei dati contenuti, ma non sono sicuro di come. Qualcuno potrebbe far luce su questo argomento? I miei presupposti sono errati o c'è una specie di firma di token coinvolta?

    
posta Dr. Grauert 20.02.2017 - 21:14
fonte

1 risposta

2

A meno che non si utilizzi una configurazione homebrew non sicura di OAuth2 o si disabilitino esplicitamente le convalide dei token; i token sono firmati crittograficamente dall'emittente. Come scritto nella RFC :

The JWT MUST be digitally signed or have a Message Authentication Code (MAC) applied by the issuer. The authorization server MUST reject JWTs with an invalid signature or MAC.

Lo svantaggio di inserire molte rivendicazioni nel token JWT è che potrebbe essere "tagliato" se supera la lunghezza massima dell'intestazione HTTP. Apache è 8kB, IIS è 16kB.

In generale, attenersi all'utilizzo di (nuove) librerie testate e non disabilitare alcuna chiamata di convalida di token e non dovresti avere molto di cui preoccuparti. Se un avversario può "impersonare" un emittente di token, allora questa è una storia diversa.

    
risposta data 20.02.2017 - 22:37
fonte

Leggi altre domande sui tag