Wat is SFTP?
SFTP (SSH File Transfer Protocol) is een protocol voor het versleuteld overdragen, ophalen en beheren van bestanden, dat als subsysteem binnen een beveiligde SSH-verbinding draait. Commando’s, bestandsnamen, inhoud en inloggegevens gaan allemaal door dezelfde met encryptie beschermde tunnel, meestal over één TCP-poort (22). In OT-omgevingen is SFTP de gangbare manier om configuraties, logbestanden, firmware, back-ups en recepten tussen systemen uit te wisselen zonder dat ze onderweg kunnen worden afgeluisterd of gemanipuleerd.
🧠 Hoe werkt SFTP?
SFTP is geen FTP over een SSH-tunnel, maar een eigen binair protocol. Een sessie verloopt in vier stappen:
- SSH-verbinding opbouwen - de client maakt verbinding met de server, controleert de hostsleutel en onderhandelt over versleuteling en sleuteluitwisseling.
- Authenticatie - de gebruiker meldt zich aan met een SSH-sleutel, wachtwoord, certificaat of een combinatie daarvan.
-
Subsysteem starten - de client vraagt het subsysteem
sftpaan. Client en server wisselen eenSSH_FXP_INIT- enSSH_FXP_VERSION-bericht uit en spreken de protocolversie af. -
Bestandsbewerkingen - de client opent bestanden (
SSH_FXP_OPEN), krijgt een handle terug en leest of schrijft blokken metSSH_FXP_READenSSH_FXP_WRITE. Elk verzoek heeft een eigen ID, zodat meerdere verzoeken tegelijk onderweg kunnen zijn.
Omdat SFTP met handles en offsets werkt, kan het meer dan kopiëren: mappen tonen, hernoemen, verwijderen,
rechten wijzigen en onderbroken overdrachten hervatten. Daarin verschilt het van het oudere SCP, dat alleen kopieert. Sinds OpenSSH 9.0 (april 2022) gebruikt ook het scp-commando
standaard het SFTP-protocol; de oude scp/rcp-modus is alleen nog bereikbaar met de optie -O.
📜 Is SFTP een officiële standaard?
Formeel niet. De IETF-werkgroep secsh heeft SFTP tussen 2001 en 2006 in een reeks Internet-Drafts beschreven, maar het werk stopte bij draft 13 (juli 2006) zonder dat er een RFC uit voortkwam. Het onderliggende SSH-2 werd wél gestandaardiseerd, in RFC 4250 tot en met 4254 (2006).
| Versie | Vastgelegd in | Status in de praktijk |
|---|---|---|
| Versie 3 | draft-ietf-secsh-filexfer-02 (oktober 2001) | De facto standaard; OpenSSH implementeert alleen deze versie, aangevuld met eigen extensies |
| Versie 4 tot en met 6 | Latere drafts, tot en met draft-ietf-secsh-filexfer-13 (juli 2006) | Verlopen; alleen door een deel van de commerciële servers en clients ondersteund |
OpenSSH vult de ontbrekende functies aan met extensies zoals posix-rename@openssh.com. Voor
interoperabiliteit tussen leveranciers is versie 3 dus de veilige basis.
🔍 Wat is het verschil tussen SFTP, FTP en FTPS?
| Kenmerk | FTP | FTPS | SFTP |
|---|---|---|---|
| Basis | RFC 959 (1985) | FTP met TLS (RFC 4217, 2005) | SSH-subsysteem |
| Versleuteling | Geen, ook wachtwoorden leesbaar | TLS voor besturing en (optioneel) data | Alles via SSH |
| Poorten | 21 plus wisselende datapoorten | 21 (expliciet, AUTH TLS) of 990 (impliciet), plus datapoorten |
Eén poort, standaard 22 |
| Identiteit server | Geen controle | X.509-certificaat | SSH-hostsleutel of SSH-certificaat |
| Firewall-vriendelijk | Slecht (actieve/passieve modus) | Slecht, firewall kan versleutelde besturing niet volgen | Goed, één vaste verbinding |
| Gebruik in OT | Uitfaseren | Bij bestaande FTP-toepassingen die TLS ondersteunen | Voorkeur voor nieuwe koppelingen |
Het praktische voordeel van één poort is groot in OT: een firewallregel tussen zones kan precies één verbinding van een vaste bron naar een vaste bestemming toestaan, zonder een reeks dynamische datapoorten open te zetten.
🏭 Waarvoor wordt SFTP in industriële omgevingen gebruikt?
- Logs en procesdata naar boven - exportbestanden van SCADA of een historian gaan naar een server in de DMZ, waar MES of kwaliteitssystemen ze ophalen
- Recepten en orders naar beneden - receptbestanden of productieorders worden op een vaste locatie klaargezet en door de productielijn opgehaald
- Firmware en projectbestanden klaarzetten - leveranciers uploaden updates naar een tussenserver; de beheerder controleert ze en zet ze via een engineering station door. De download naar een PLC gaat meestal via de engineeringsoftware van de fabrikant, niet via SFTP
- Back-ups - configuraties van switches, firewalls en servers worden periodiek en gescript weggeschreven
- Beheer op afstand - leveranciers wisselen bestanden uit via een bastion host of jump server in plaats van met een directe verbinding naar het procesnetwerk
Volgens het Purdue-model loopt dit verkeer niet rechtstreeks tussen kantoor- en procesnetwerk. Beide kanten maken verbinding met een SFTP-server in de tussenzone, zodat geen enkele verbinding de zonegrens in één keer overbrugt.
🔧 Hoe richt u een SFTP-server veilig in?
Een standaard OpenSSH-server geeft gebruikers met een SFTP-account vaak ook een volledige shell. Voor OT wilt u dat beperken. Een beproefde aanpak:
-
Aparte groep - maak een groep, bijvoorbeeld
sftponly, voor koppelingen en leveranciers. -
Alleen SFTP toestaan - gebruik in
sshd_configeenMatch Group sftponly-blok metForceCommand internal-sftp, en zetAllowTcpForwarding noenX11Forwarding no. -
Opsluiten in een map - met
ChrootDirectoryziet de gebruiker alleen zijn eigen map. Alle mappen in dat pad moeten eigendom van root zijn en mogen niet schrijfbaar zijn voor groep of anderen. -
Rechten beperken -
internal-sftp -Rmaakt een account alleen-lezen; met-pof-Pstaat u alleen bepaalde verzoeken toe of verbiedt u ze. Zo maakt u een upload-only map voor recepten of een download-only map voor logs. -
Sleutels in plaats van wachtwoorden - gebruik Ed25519-sleutels met passphrase voor
mensen en aparte sleutels zonder interactie voor scripts, beperkt tot één bron-IP. Schakel
PasswordAuthenticationuit. Volg het principe van least privilege: één sleutel per koppeling. -
Overdrachten loggen - standaard logt
sftp-serveralleen fouten. Met-l INFOworden geopende, gelezen en geschreven bestanden vastgelegd; stuur dat via syslog naar uw SIEM. Bij een chroot heeft de syslog-daemon een extra/dev/log-socket binnen de chroot-map nodig, anders gaan die regels verloren. -
Hostsleutels controleren - leg de vingerafdruk van de server vast in
known_hostsvan de client, of gebruik SSH-certificaten. Zonder deze controle is een man-in-the-middle-aanval mogelijk.
Voor gescripte overdrachten is sftp -b handig: in batchmodus stopt de sessie zodra een
commando faalt, zodat een half verstuurd bestand niet ongemerkt blijft liggen. Laat de ontvanger een
bestand pas verwerken nadat het onder een tijdelijke naam is geüpload en daarna hernoemd, en vergelijk een
SHA-256-hash om de data-integriteit te controleren.
🔐 Welke beveiligingsrisico’s blijven bestaan?
SFTP beschermt het transport, niet de inhoud. Een besmet bestand komt net zo versleuteld aan als een schoon bestand. Let daarom op:
- Inhoudscontrole - scan geüploade bestanden op malware voordat ze het procesnetwerk ingaan
- Kwetsbaarheden in SSH - Terrapin (CVE-2023-48795) en regreSSHion (CVE-2024-6387) troffen ook SFTP-servers; houd OpenSSH en apparaatfirmware bij via patchmanagement
- Toekomstbestendige versleuteling - OpenSSH gebruikt sinds versie 9.0 standaard een hybride post-quantum sleuteluitwisseling (sntrup761x25519) en sinds 10.0 (april 2025) mlkem768x25519-sha256, als bescherming tegen nu opslaan, later ontcijferen (post-quantumcryptografie)
- Eenrichtingsverkeer - moet data strikt alleen naar buiten, dan biedt een datadiode sterkere garanties dan SFTP, omdat SFTP altijd tweerichtingsverkeer is
- Gedeelde accounts - één account voor alle leveranciers maakt een audit onmogelijk; geef elke partij een eigen account, combineer dat met toegangsbeheer, RBAC en MFA voor interactieve toegang
SFTP draagt bij aan eisen uit IEC 62443-3-3, zoals communicatie-integriteit (SR 3.1), vertrouwelijkheid (SR 4.1) en het gebruik van cryptografie (SR 4.3), en aan beheersmaatregelen voor informatieoverdracht in ISO 27001. Ook organisaties die onder NIS2 en de Nederlandse Cyberbeveiligingswet (van kracht sinds 15 augustus 2026) vallen, moeten passende maatregelen nemen voor veilige communicatie. SFTP is daarbij een bouwsteen, geen vinkje: compliance volgt pas uit de combinatie met netwerksegmentatie, sleutelbeheer, logging en toegangsbeleid.
❓ Veelgestelde vragen
Welke poort gebruikt SFTP?
SFTP gebruikt standaard TCP-poort 22, dezelfde poort als SSH zelf. Veel organisaties draaien SFTP op een aparte server of poort, zodat bestandsoverdracht en beheer met een shell gescheiden blijven. Anders dan FTP en FTPS heeft SFTP geen aparte datapoorten nodig.
Is SFTP hetzelfde als FTPS?
Nee, SFTP en FTPS zijn verschillende protocollen. FTPS is het klassieke FTP met TLS-versleuteling en X.509-certificaten, terwijl SFTP een subsysteem van SSH is met SSH-sleutels. Clients en servers voor het ene protocol werken niet met het andere, al ondersteunen veel programma’s beide.
Kan een PLC rechtstreeks via SFTP bestanden ontvangen?
Een paar moderne besturingen, HMI-panels en industriële routers hebben een ingebouwde SFTP-client of -server, maar de meeste PLC’s niet. Gebruikelijk is dat SFTP bestanden naar een engineering station of tussenserver brengt, waarna de engineeringsoftware van de fabrikant ze naar de PLC laadt. Controleer altijd in de documentatie van de leverancier welke protocollen een apparaat ondersteunt.
Is SFTP veilig genoeg voor bestandsoverdracht naar het OT-netwerk?
SFTP beveiligt het transport goed, maar controleert niet wat er in een bestand zit. Voor bestanden die het procesnetwerk binnenkomen, combineert u SFTP met een tussenzone, malwarescans, hashcontrole en goedkeuring door een beheerder. Voor uitsluitend uitgaande data is een datadiode een sterker alternatief.
Wat is het verschil tussen SFTP en SCP?
SCP kopieert alleen bestanden, terwijl SFTP ook mappen kan tonen, bestanden kan hernoemen en verwijderen
en onderbroken overdrachten kan hervatten. Sinds OpenSSH 9.0 gebruikt het scp-commando onder
de motorkap standaard het SFTP-protocol. Beide delen dezelfde SSH-authenticatie en -versleuteling.
Hoe automatiseert u SFTP-overdrachten veilig?
Automatiseer SFTP met een eigen sleutel per koppeling, beperkt tot één bron-IP en één map, en zonder
shell-toegang. Gebruik batchmodus (sftp -b) zodat een fout de sessie stopt, upload onder een
tijdelijke naam en hernoem pas daarna. Log elke overdracht centraal, zodat afwijkingen opvallen.
📌 Samengevat
SFTP brengt bestanden versleuteld over binnen een SSH-verbinding, over één poort en met sterke sleutelauthenticatie. Het is nooit een RFC geworden, maar versie 3 is in de praktijk de standaard. In OT werkt SFTP het best via een server in de tussenzone, met per koppeling een eigen account, opsluiting in een eigen map en centrale logging.
SFTP is het voorkeursprotocol voor veilige bestandsoverdracht in OT-omgevingen, mits u het combineert met segmentatie, sleutelbeheer, logging en inhoudscontrole van wat er wordt overgedragen.
