Security.txt
Internet.nl heeft voor haar testen een verdere proeve van bekwaamheid toegevoegd: de aanwezigheid van een tekstbestand met de naam security.txt. “Dit is een gestandaardiseerd tekstbestand met contactinformatie dat je op je webserver plaatst. Beveiligingsonderzoekers kunnen deze informatie gebruiken om direct contact met de juiste afdeling of persoon binnen je organisatie op te nemen over kwetsbaarheden die zij in je website of IT-systemen hebben gevonden. Dit kan het verhelpen van de gevonden kwetsbaarheden versnellen, waardoor kwaadwillenden minder kans krijgen om er misbruik van te maken. Kortom: test je eigen domein en voeg een security.txt-bestand toe!” aldus internet.nl.
Aanmaken van een sleutel
Het bestand dient versleuteld te zijn opdat de lezer zo nodig zelf kan verifiëren dat met het bestand niet gerommeld is en dat de (contact)gegevens correct zijn. Het bestand heeft een standaard formaat dat zowel voor een computer als voor een mens leesbaar is. Digital Trust Center (DTC) heeft een gids gepubliceerd die in vier stappen uitlegt hoe je een security.txt bestand aanmaakt. Ik heb daar twee stappen aan toegevoegd, met uitleg hoe je het bestand versleutelt en ondertekent.
Stap 1
Kies het contactadres. Bij wie wil je dat de melding binnenkomt? Bij je bedrijf of bij je IT-dienstverlener? Maak hiervoor de inschatting wie iets met de meldingen kan of gaat doen.
Stap 2
Gebruik de tool op securitytxt.org en vul daar in ieder geval het contactadres en vervaldatum in. Maak vervolgens met één klik je eigen security.txt-bestand.
Stap 3
Versleutel en onderteken het bestand met een publieke sleutel van opensource programma PGP. Met de opdracht gpg –clearsign maakt de PGP software een versleuteld tekstbestand. Alvorens deze opdracht uit te voeren, moeten eerst de sleutels worden gegenereerd. Open een terminal in linux en bepaal de sleutels met de volgende opdracht:
gpg --full-generate-key
- Specificeer het type versleuteling of druk op enter om de standaardversleutelingsmethode toe te passen (RSA en RSA)
- Specificeer de omvang van de sleutel of druk op enter om de standaardwaarde toe te passen (3072 bits)
- Specificeer de geldigheidsduur van de sleutel waarbij de standaardwaarde is dat de sleutel geen expiratietermijn heeft
- Voer je naam in en vervolgens het email adres
- Bevestig de opgegeven instellingen door de hoofdletter O in te tikken
- Voer een wachtwoordzin in om de nieuwe sleutel te beschermen
Het resultaat wordt in de terminal weergegeven. Bewaar deze sleutelgegevens op een veilige plek, inclusief de wachtwoordzin.
De opdracht gpg --clearsign
is alleen van toepassing op tekstbestanden. De optie ‘–clearsign’ zorgt ervoor dat het document van een ASCI-beschermde digitale handtekening wordt voorzien die het document zelf echter niet aantast. Met de opdracht gpg --clearsign security.txt
wordt een “security.txt.asc” bestand gegenereerd dat met elke teksteditor te openen is.
De sleutels zijn opvraagbaar met de opdracht gpg --list-keys
.
Stap 4
- Met de sleutels kan nu het security.txt bestand worden versleuteld.
- Gebruik het security.txt bestand uit stap 2.
- Onderstaande opdracht versleutelt het bestand en voegt de sha512 hash toe aan het tekstbestand.
- Je krijgt vervolgens een melding om een bepaalde sleutel te gebruiken met benaming en comment (zie stap 1).
gpg --clear-sign security.txt
Verifieer of het bestand goed versleuteld is:
gpg --verify security.txt
Dit geeft onderstaande output in de terminal:
root@ubuntu:/web/wordpress/.well-known# gpg --verify security.txt gpg: Signature made Tue Dec 5 22:25:16 2023 CET gpg: using RSA key [vingerafdruk van de sleutel] gpg: Good signature from "Bart Vrancken (admin) <info@adagia.eu>" [ultimate]
Stap 5
Maak op je webserver een map aan met de naam “.well-known”. Deze map staat dus een niveau onder de hoofdmap waarop je website beschikbaar is (zie voorbeeld hierboven). Plaats in deze map het met de sleutel beveiligde security.txt-bestand.
Security.txt voor adagia.eu ziet er zo uit:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Contact: mailto:info@adagia.eu Expires: 2024-12-03T00:00:00z Encryption: https://adagia.eu/disclosure Canonical: https://adagia.eu/.well-known/security.txt Preferred-Languages: nl,en,de -----BEGIN PGP SIGNATURE----- iQGzBAEBCgAdFiEE2Gjx8OmOgvA8LJrTnOfKGavfIuQFAmVvlTwACgkQnOfKGavf IuSh8Qv/WkkbRBCflbQNjZmC24oIGpTetlmS0hirqBG3JM/ji+olRKDwDTj1AYl9 B95stxx1YcuS2ZG/HsDfsAIFXjbJd6lxnVCTIB8Bwh4+27CDduRZBzSu0/zk/WdL lRLROvngAERr4fXRRdPR/nge8j7IMZqDTOvopv1VRXCZanQkanwigYwga85vloHQ OKEMgMGqYR9pYE9UoxbeZ3RNe1hCo2RQD/ZY5kjR74aU7V1sfS88RwXfku4RlmVu lXfggQFCnVNzT7dVAa2b41uTERLrXtVkIWJk6zDjPWGxjeA8aD7VHMLr2zO41Q6C U+nwAT6PpzlzNNzSlzU/vggpqym7AypE0UjzDNuDOo3BxK3v6HmyrR77IJbj32/X XErPHUERmtezsz9WeWCl3I5cuMsaMW8+RZxI4ZWRxsherWAIzHjLqZSpMI4AZBqR DfOs0oDXcfrPcwG3wKCxPD1H4rKgfI+tUnp0ImeD6mTGy4W3+eTEpARbaGb0nNdn qQ4xYn2N =cqn+ -----END PGP SIGNATURE-----
Stap 6
Gebruik de tool op internet.nl om te controleren of je security.txt goed geïmplementeerd hebt. Als de test niet voldoende is, geeft internet.nl aan wat nog moet worden verbeterd.