Met ingang van versie 0.6 bevat APT code die voor alle pakketbronnen de ondertekening controleert van het bestand Release. Dit geeft de garantie dat gegevens uit het archief, zoals pakketten, niet gewijzigd kunnen worden door mensen die geen toegang hebben tot de sleutel waarmee het bestand Release ondertekend wordt. Met ingang van versie 1.1 vereist APT dat pakketbronnen recente authenticatie-informatie verstrekken om die pakketbron ongehinderd te kunnen gebruiken. Met ingang van versie 1.5 moet gewijzigde informatie over de pakketbron in het bestand Release bevestigd worden, vooraleer APT voortgaat met het toepassen van updates die uit die pakketbron afkomstig zijn.
Opmerking: Alle op APT gebaseerde front-ends voor pakketbeheer, zoals apt-get(8), aptitude(8) en synaptic(8), ondersteunen deze authenticatiefunctionaliteit. Het is enkel om het eenvoudig te houden dat deze man-pagina van APT gebruikt wordt om die functionaliteit aan ze allemaal toe te schrijven.
Indien een archief een niet-ondertekend Release-bestand of helemaal geen Release-bestand heeft, zullen alle hedendaagse versies van APT bij update-operaties standaard weigeren om er gegevens van op te halen. En zelfs als ze tot ophalen verplicht worden, zullen frontends, zoals apt-get(8), om een expliciete bevestiging vragen als bij een installatieverzoek een pakket uit een dergelijk niet-geauthenticeerd archief betrokken is.
U kunt alle APT-clients verplichten om enkel waarschuwingen te geven door de configuratie-optie Acquire::AllowInsecureRepositories op true in te stellen. U kunt ook individuele pakketbronnen toelaten om onveilig te zijn via de optie allow-insecure=yes in sources.list(5). Merk op dat onveilige pakketbronnen ten stelligste afgeraden worden en dat alle opties die apt verplichten om deze te blijven ondersteunen, uiteindelijk verwijderd zullen worden. Gebruikers beschikken ook over de optie Trusted, waardoor zelfs de waarschuwingen onderdrukt worden, maar u moet zeker zijn dat u de implicaties ervan begrijpt die uitgelegd worden in sources.list(5).
Een pakketbron die zijn eerdere authenticatie-status zou kwijt spelen zal in geval van een update-operatie bij alle APT-clients een foutmelding opleveren, ongeacht het feit of een optie het gebruik van onveilige pakketbronnen toestaat of verbiedt. Een dergelijke fout kan voorkomen worden door bijkomend de optie Acquire::AllowDowngradeToInsecureRepositories op true in te stellen of voor individuele pakketbronnen door de optie allow-downgrade-to-insecure=yes te gebruiken in sources.list(5).
De vertrouwensketen vanaf een APT-archief tot de eindgebruiker, bestaat uit verschillende schakels. apt-secure is de laatste schakel in die keten. Een archief vertrouwen betekent niet dat u er op vertrouwt dat zijn pakketten geen kwaadwillige code bevatten, maar betekent wel dat u de beheerder van het archief vertrouwt. Het behoort tot de verantwoordelijkheid van de archiefbeheerder om er voor te zorgen dat de integriteit van het archief gevrijwaard blijft.
apt-secure controleert geen handtekeningen op pakketniveau. Indien u gereedschap nodig heeft om dit te doen, moet u uitkijken naar debsig-verify en debsign (die respectievelijk in de pakketten debsig-verify en devscripts te vinden zijn).
De vertrouwensketen in Debian begint (bijvoorbeeld) wanneer een pakketonderhouder een nieuw pakket of een nieuwe versie ervan naar het Debian archief uploadt. Om effectief te worden moet deze upload ondertekend worden met een sleutel uit de sleutelbos van de pakketonderhouders van Debian (te vinden in het pakket debian-keyring). De sleutels van onderhouders worden door andere onderhouders ondertekend. Daarbij worden vaststaande procedures gevolgd om de identiteit van de sleuteleigenaar te kunnen garanderen. Vergelijkbare procedures worden in alle op Debian gebaseerde distributies gehanteerd.
Nadat het geüpload pakket geverifieerd werd en toegevoegd aan het archief, wordt de handtekening van de onderhouder verwijderd en wordt de controlesom voor dat pakket berekend en in het bestand Packages opgeslagen. Daarna wordt voor alle Packages-bestanden de controlesom berekend en opgeslagen in het bestand Release. Daarna wordt het bestand Release ondertekend door de archiefsleutel voor deze Debian release en verdeeld met de pakketten en de Packages-bestanden naar de Debian-spiegelservers. De sleutels bevinden zich in de sleutelbos van het Debian-archief die te vinden is in het pakket debian-archive-keyring.
Eindgebruikers kunnen de ondertekening van het bestand Release controleren, er de controlesom voor een pakket uithalen en die vergelijken met de controlesom van het pakket dat ze handmatig gedownload hebben - of vertrouwen op APT die dit automatisch doet.
Merk op dat dit niet hetzelfde is als een controle van handtekeningen op het niveau van individuele pakketten. Deze werkwijze is ontworpen om twee mogelijke aanvallen te voorkomen:
Ze biedt evenwel geen bescherming tegen een aanval gericht tegen de hoofdserver van Debian (die de pakketten ondertekent) of tegen een aanval gericht tegen de sleutel die gebruikt wordt om de Release-bestanden te ondertekenen. In elk geval biedt dit mechanisme wel een aanvulling op een ondertekening op pakketniveau.
Het bestand Release bevat behalve de checksums voor de bestanden uit de pakketbron, ook algemene informatie over de pakketbron, zoals origine, codenaam en versienummer van de release.
Deze informatie wordt op verschillende plaatsen weergegeven en dus zou de eigenaar van een pakketbron altijd de juistheid ervan moeten garanderen. Daarenboven kan gebruikersconfiguratie, zoals apt_preferences(5), van deze informatie gebruik maken en er afhankelijk van zijn. Daarom moet de gebruiker met ingang van versie 1.5 wijzigingen expliciet bevestigen, om te signaleren dat deze voldoende voorbereid is op bijvoorbeeld de nieuwe hoofdrelease van de distributie (bijvoorbeeld aangeduid met de codenaam) die door de pakketbron verdeeld wordt.
apt-key is het programma dat de sleutelcatalogus beheert die door APT gebruikt wordt om pakketbronnen te vertrouwen. Het kan gebruikt worden om sleutels toe te voegen en te verwijderen en de lijst met vertrouwde sleutels weer te geven. Het is mogelijk om te begrenzen welke sleutel(s) welk archief kunnen ondertekenen via de optie Signed-By in sources.list(5).
Merk op dat een standaardinstallatie reeds alle nodige sleutels bevat om op een veilige manier pakketten op te halen uit de standaard pakketbronnen. Met apt-key knoeien is dus enkel nodig als pakketbronnen van derden toegevoegd worden.
Om een nieuwe sleutel toe te voegen, moet u hem eerst downloaden (u moet zich ervan vergewissen dat u bij het ophalen ervan gebruik maakt van een betrouwbaar communicatiekanaal). Daarna voegt u hem toe met apt-key en vervolgens voert u de opdracht apt-get update uit, zodat apt het bestand InRelease of Release.gpg uit de door u geconfigureerde archieven kan ophalen en verifiëren.
Indien u voor een door u onderhouden archief in een ondertekening van het archief wilt voorzien, moet u het volgende doen:
Telkens de inhoud van het archief wijzigt (als nieuwe pakketten toegevoegd of verwijderd worden) moet de archiefverantwoordelijke de hierboven beschreven eerste twee stappen hernemen.
apt.conf(5), apt-get(8), sources.list(5), apt-key(8), apt-ftparchive(1), debsign(1), debsig-verify(1), gpg(1)
Voor bijkomende achtergrondinformatie kunt u het hoofdstuk raadplegen over de beveiligingsinfrastructuur van Debian, m[blue]Debian Security Infrastructurem[][1], uit de Securing Debian Manual (ook te vinden in het pakket harden-doc), alsook de m[blue]Strong Distribution HOWTOm[][2] door V. Alex Brennen.
m[blue]APT bugpaginam[][3]. Indien u een bug in APT wilt rapporteren, raadpleeg dan /usr/share/doc/debian/bug-reporting.txt of het reportbug(1) commando.
APT werd geschreven door het APT-team <apt@packages.debian.org>.
Deze man-pagina is gebaseerd op het werk van Javier Fernández-Sanguino Peña, Isaac Jones, Colin Walters, Florian Weimer en Michael Vogt.
De Nederlandse vertaling werd in 2015 gemaakt door Frans Spiesschaert <Frans.Spiesschaert@yucom.be>, in samenwerking met het Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>.
Merk op dat de vertaling van dit document nog onvertaalde delen kan bevatten. Dit is intentioneel om te vermijden dat inhoud verloren zou gaan door een vertaling die achterop loopt op het origineel.
Jason Gunthorpe
APT-team