Voor een API gebruiken wij momenteel Basic authentication over HTTPS. Deze API is puur voor Server -> API communicatie, niet voor losse gebruikers/resources (dus een service account). In principe is het gewoon een API key (32 tekens) die als username wordt meegestuurd, dus vergelijkbaar met een API token in de header.
Nu kregen we een opmerking dat Basic Auth niet zo veilig zou zijn, vanwege volgende zaken:
- Entropy van alleen apiKey (32 tekens) is minder dan entropy van username + password (2x 16)
- Statische key is niet veilig, beter per sessie een nieuwe key (access token), ivm meer risico MITM attacks
Als alternatief wordt aangeraden OAuth2 met short-lived access tokens, wat dan dus client_credentials scope zou zijn; https://tools.ietf.org/html/rfc6749#section-4.4
Nu is mijn vraag, is Basic Auth per definitie onveilig? Of onveiliger als OAuth2?
Is een MITM attack plausibel? Want dan heb je een groter probleem toch? En daarnaast heb je met short-lived access tokens een regelmatige request voor een access token, die ook op te vangen is dus.
Een grotere levensduur van access token -> minder kans op MITM onderschepping, maar langer misbruik mogelijk natuurlijk.
(Overigens is het geen probleem om OAuth2 te implementeren, maar er is natuurlijk een bestaande groep gebruikers die momenteel Basic Auth gebruikt en wil goede reden hebben om dat om te zetten)
Nu kregen we een opmerking dat Basic Auth niet zo veilig zou zijn, vanwege volgende zaken:
- Entropy van alleen apiKey (32 tekens) is minder dan entropy van username + password (2x 16)
- Statische key is niet veilig, beter per sessie een nieuwe key (access token), ivm meer risico MITM attacks
Als alternatief wordt aangeraden OAuth2 met short-lived access tokens, wat dan dus client_credentials scope zou zijn; https://tools.ietf.org/html/rfc6749#section-4.4
Nu is mijn vraag, is Basic Auth per definitie onveilig? Of onveiliger als OAuth2?
Is een MITM attack plausibel? Want dan heb je een groter probleem toch? En daarnaast heb je met short-lived access tokens een regelmatige request voor een access token, die ook op te vangen is dus.
Een grotere levensduur van access token -> minder kans op MITM onderschepping, maar langer misbruik mogelijk natuurlijk.
(Overigens is het geen probleem om OAuth2 te implementeren, maar er is natuurlijk een bestaande groep gebruikers die momenteel Basic Auth gebruikt en wil goede reden hebben om dat om te zetten)
[ Voor 4% gewijzigd door Barryvdh op 07-06-2018 10:54 ]