Liever iemand spreken? Bel ons op (+31)(0)85-487 4090 of mail naar support@neoforce.eu

Informatie over de URL's van bestanden

Toegevoegd op donderdag 28 augustus 2025 22:49 | Laatst gewijzigd op dinsdag 2 september 2025 23:02
9

Neoforce maakt gebruik van unieke URL’s om bestanden toegankelijk te maken. Deze URL’s bestaan uit twee delen:

  1. ID – het interne database-ID van het bestand.
  2. Nonce – een willekeurig gegenereerde tekenreeks die dient als beveiligingssleutel.

Voorbeeld:

https://[domein]/files/322-dTg92jKsk83nsAqW3QZl9rYpX6WfBtVu

In dit voorbeeld is 322 het database-ID en dTg92jKsk83nsAqW3QZl9rYpX6WfBtVu de nonce.

Wat is een nonce?

Een nonce (number used once) is een willekeurige waarde die slechts één keer wordt uitgegeven en fungeert als geheim toegangsteken. Binnen Neoforce voorkomt de nonce dat onbevoegden toegang krijgen tot bestanden door enkel op ID’s te raden of door te proberen opeenvolgende ID’s te benaderen.

Generatie en entropie

Zoals je wellicht weet is het back-end van Neoforce geschreven in PHP. De nonces worden gegenereerd met de PHP-functie random_int(), een cryptografisch veilige willekeurige generator (CSPRNG).

  • Lengte: 32 tekens
  • Karakterset: 62 mogelijke tekens (a–z, A–Z, 0–9)
  • Totale entropie: ongeveer 190 bits

Wat betekent dit in de praktijk?

  • 128 bits entropie wordt internationaal al gezien als veilig voor de komende decennia.
  • Onze huidige 190 bits ligt daar ver boven.

Om dit tastbaar te maken:

  • Stel dat een aanvaller 1 miljard pogingen per seconde zou kunnen doen.
  • Dan duurt het gemiddeld 10.000.000.000.000.000.000.000.000.000.000 jaar (10^31 jaar) om één nonce correct te raden.
  • Ter vergelijking: het universum is ongeveer 14 miljard jaar oud (14.000.000.000 jaar).

Daarbij komt dat het niet voldoende is om alleen de nonce te raden: ook het juiste database-ID moet bekend zijn. Dit maakt de kans op succes nog kleiner.

Raadbaarheid van de URL’s

De aanwezigheid van een nonce zorgt ervoor dat:

  • Het database-ID weliswaar voorspelbaar kan zijn, maar zonder de juiste nonce niet bruikbaar is.
  • De nonce zelf praktisch onraadbaar is vanwege de extreem hoge entropie.
  • Het mechanisme vergelijkbaar is met “unlisted” links bij clouddiensten, maar met veel sterkere beveiliging door het gebruik van cryptografisch veilige random waarden.

Aanvullende maatregelen

  • Logging: mislukte toegangsverzoeken worden vastgelegd.
  • Rate limiting: herhaalde of geautomatiseerde pogingen worden door de server beperkt.
  • Ontwerpkeuze: bestanden zijn alleen toegankelijk voor personen die de exacte URL bezitten. Dit is een bewuste functionele keuze.

Conclusie

Het gebruik van nonces in bestands-URL’s is een robuuste beveiligingsmaatregel.

  • Met 190 bits entropie is brute force praktisch onmogelijk.
  • Dit ligt ruim boven de internationaal geaccepteerde standaard van 128 bits.
  • Indien gewenst kan de lengte van de nonce worden verhoogd naar 44 tekens, waarmee een entropie van 256 bits wordt bereikt (vergelijkbaar met AES-256).

Samengevat: de huidige implementatie biedt een zeer hoog beveiligingsniveau. Het raden van een nonce-URL zou miljarden-miljarden-miljarden keren langer duren dan de huidige leeftijd van het universum, zelfs als een aanvaller miljarden pogingen per seconde zou kunnen doen.


Alternatief: toegang alleen na inloggen

Het gebruik van nonces in bestands-URL’s kan worden uitgeschakeld. In dat geval zijn bestanden uitsluitend toegankelijk voor ingelogde gebruikers met de juiste rechten. Dit biedt een nog strikter beveiligingsniveau, omdat toegang tot bestanden altijd gekoppeld is aan authenticatie en autorisatie binnen Neoforce.

Nadelen

Het afdwingen van inloggen heeft functionele consequenties:

  • Afbeeldingen in e-mails werken niet meer, omdat e-mailclients doorgaans geen inlogmogelijkheden ondersteunen.
  • Voorbeeldweergaven van Office-documenten (zoals Word, Excel en PowerPoint) kunnen niet worden getoond, omdat externe systemen geen toegang krijgen tot de bestanden.
  • Gebruikers zullen vaker foutmeldingen ervaren, bijvoorbeeld bij het openen van links of gedeelde bestanden buiten een actieve sessie.

Deze aanpak verhoogt de beveiliging, maar gaat ten koste van gebruiksgemak en functionaliteit.

Instellen via beheer

Wil je afdwingen dat gebruikers altijd ingelogd moeten zijn? Hieronder lees je hoe je dit instelt:

  1. Klik rechtsboven op je naam en kies voor 'Beheer'
  2. Ga nu naar de pagina 'Beveiliging'
  3. Vink de volgende optie aan en klik vervolgens op [Opslaan]; Forceer het controleren van autorisaties bij het openen van bestanden.

image.png

Inhoudsopgave