Deze website is automatisch in meerdere talen vertaald met software ontwikkeld door Kohei Koyanagi. Raadpleeg het originele artikel in Engels voor de meest nauwkeurige informatie.

Waarom Splync SSH gebruikt — De onzichtbare sleutel achter veilige servers

Wat SSH echt doet

Hoewel Splync HTTPS gebruikt om de route tussen je smartphone en onze server te beschermen, moeten we de server zelf ook beveiligen om de veiligheid van gebruikersdata te garanderen. App-ontwikkelaars en systeembeheerders hebben een veilige manier nodig om die server binnen te komen voor onderhoud en updates. Hier komt SSH (Secure Shell) om de hoek kijken. Het is een protocol waarmee geautoriseerde gebruikers veilig op afstand op computers kunnen inloggen, zelfs via onbetrouwbare netwerken. SSH vervangt oude, onveilige methoden zoals Telnet, dat gebruikersnamen en wachtwoorden in platte tekst verzond.

Het idee achter 'Sleutels'

SSH vertrouwt niet op een typisch wachtwoord. In plaats daarvan gebruikt het cryptografische sleutels — een bijpassend paar van een openbare sleutel en een privésleutel. Zie ze als een slot en een sleutel die alleen bij elkaar passen. De openbare sleutel staat op de server, en de privésleutel blijft bij de gebruiker. Wanneer je verbinding maakt, daagt de server je uit om te bewijzen dat je de privésleutel hebt, zonder die ooit te onthullen. Dit maakt het bijna onmogelijk voor iemand die meeluistert om zich voor te doen als jij. Terwijl conventionele wachtwoorden geraden, gelekt of hergebruikt kunnen worden, zijn SSH-sleutels lange, willekeurige cryptografische reeksen — praktisch onraadbaar. Zelfs als iemand erin slaagt de verbinding af te luisteren, zien ze alleen versleutelde ruis. En omdat SSH-sleutels nooit over het netwerk worden verzonden, is er niets om in transit te stelen.

Hoe een SSH-sleutel eruitziet

Als je nog nooit een SSH-sleutel hebt gezien, klinkt het misschien abstract — maar het is eigenlijk gewoon een lange blok van gecodeerde tekst. Een openbare sleutel is meestal een paar honderd tekens lang, terwijl een privésleutel meer dan duizend kan zijn. Beide worden opgeslagen als tekstbestanden, maar hun inhoud lijkt op willekeurige ruis — een mix van letters, cijfers en symbolen. De openbare sleutel is veilig om te delen; het is als het plaatsen van je slot op de server. De privésleutel daarentegen is je unieke digitale identiteit en mag nooit worden gedeeld. Het wordt lokaal op je computer opgeslagen en alleen gebruikt om te bewijzen dat jij bent wie je zegt te zijn — zonder de sleutel zelf ooit te onthullen.

Openbare sleutel en privésleutel

Een openbare sleutel is als een slot dat je aan je huis bevestigt. Iedereen kan het vanaf de straat zien, net als het slot op je voordeur. Maar naar het slot kijken vertelt niemand hoe het te openen. Met andere woorden, iedereen kan het zien, maar alleen de juiste sleutel kan het ontgrendelen. De privésleutel daarentegen is de sleutel die het slot opent — en die blijft veilig bij jou. Als iemand anders je privésleutel in handen krijgt, kunnen ze je huis binnenkomen alsof ze jou zijn. Daarom moet het altijd geheim worden gehouden.

SSH-mechanisme

Elke openbare sleutel en privésleutel vormen een unieke één-op-één-paar. Ze worden samen gegenereerd door een wiskundig proces, zodat alleen die specifieke privésleutel bij de bijbehorende openbare sleutel past. Je kunt ze zien als een op maat gemaakt slot en sleutel — samen gesmeed, en geen enkele andere sleutel in de wereld past op dat slot. Zelfs als je een ander paar genereert met hetzelfde algoritme (zoals RSA of Ed25519), zullen de nummers erin compleet verschillend zijn. De wiskunde die de twee verbindt is eenrichtingsverkeer: je kunt eenvoudig de openbare sleutel afleiden van de privésleutel, maar het is praktisch onmogelijk om het proces om te keren en de privésleutel van de openbare te vinden. Daarom is elk SSH-sleutelpaar uniek en veilig.

Hoe SSH bewijst wie je bent

Wanneer je met SSH op een server inlogt, verlaat je privésleutel nooit je computer. In plaats daarvan stuurt de server een willekeurige uitdaging — als een eenmalige puzzel — die alleen je privésleutel kan oplossen. Je computer ondertekent die uitdaging wiskundig, waardoor een kort antwoord ontstaat dat de server kan controleren met je openbare sleutel. Als het antwoord klopt, weet de server dat je de juiste privésleutel hebt — zonder die ooit gezien te hebben. Dit is de magie van moderne cryptografie: je kunt je identiteit bewijzen zonder je geheim te onthullen. SSH-authenticatie werkt omdat je privésleutel alle informatie bevat om de openbare sleutel af te leiden, maar het omgekeerde is praktisch onmogelijk.

Hoe ontwikkelaars SSH in de praktijk gebruiken

Elke keer dat ontwikkelaars code implementeren, een database bijwerken of een service herstarten, verbinden ze vaak via SSH met hun externe servers. Na authenticatie krijgen ze een veilige commandoregelverbinding met de server. Vanaf daar kunnen ze bestanden beheren, services herstarten of logs inspecteren — allemaal end-to-end versleuteld. In het geval van Splync is SSH hoe we veilig ons cloudserver beheren. Elke administratieve actie — updates implementeren, logs controleren, gegevens back-uppen — wordt uitgevoerd via SSH-verbindingen die beschermd zijn door cryptografische sleutels. Niemand kan toegang krijgen tot de server zonder de juiste privésleutel. Zelfs als iemand ons IP-adres zou kennen, zonder die sleutel gaat de deur gewoon niet open.

Volgende stap: Versleuteling binnen de server

SSH beschermt de toegang tot de server en HTTPS beschermt gegevens tijdens transport. Maar zodra gegevens in de database terechtkomen, hoe houden we ze dan veilig? Daar komen hashing en encryptie om de hoek kijken — de laatste verdedigingslaag.