SSH3: Raskere, rikere sikkert skall ved hjelp av HTTP/3
Nylig ble kjent den offisielle lanseringen av den første eksperimentelle versjonen av serveren og klienten for SSH3-protokollen designet som et komplement til HTTP3-protokollen og som bruker QUIC (basert på UDP), TLS 1.3 som utnytter HTTP-mekanismer for brukerautentisering, samt for å etablere en sikker kommunikasjonskanal
SSH3 bruker autorisasjonsmekanismer basert på HTTP-protokollen, som tillater nye autentiseringsmetoder, i tillegg til klassisk autentisering ved hjelp av et passord og et nøkkelpar, pluss i SSH3 kan du konfigurere tilgang til en ekstern server gjennom identitetsleverandøren til en organisasjon eller med en Google-konto eller GitHub. SSH3 er basert på HTTP/3 og QUIC og tilbyr i tillegg til vanlig TCP-videresending også UDP-portvideresending og raskere og sikrere øktetablering.
Om SSH3
Prosjektutviklerne nevner at etableringen av SSH3 oppsto som et resultat av en fullstendig gjennomgang av SSH-protokollen, utført av en uavhengig gruppe forskere atskilt fra teamene som jobber med prosjekter som OpenSSH og andre implementeringer av den klassiske SSH-protokollen. I SSH3, semantikken til den klassiske SSH-protokollen er implementert gjennom HTTP-mekanismer, som ikke bare gir mulighet for ekstra muligheter, men også sørger for at SSH-relaterte aktiviteter skjules blant annet trafikk, bl.a. SSH3 tillater følgende forbedringer i forhold til SSH2-protokollen kunne ikke tilby, så vel som mange av de populære OpenSSH-funksjonene:
- Betydelig raskere øktetablering
- Nye HTTP-autentiseringsmetoder, som OAuth 2.0 og OpenID Connect, i tillegg til klassisk SSH-autentisering.
- Parser ~/.ssh/authorized_keys på serveren.
Parser ~/.ssh/config på klienten og håndterer alternativene Hostname, User og Portconfig IdentityFile (de andre alternativene ignoreres for øyeblikket)
Sertifikatbasert serverautentisering - Robusthet mot angrep fra portskanning: SSH3-serveren din kan bli usynlig for andre Internett-brukere
- UDP-portvideresending – Du kan nå få tilgang til QUIC, DNS, RTP eller en hvilken som helst UDP-basert server som kun kan nås fra SSH3-verten din.
- X.509-sertifikater: Du kan nå bruke de klassiske HTTPS-sertifikatene dine til å autentisere SSH3-serveren. Denne mekanismen er sikrere enn den klassiske SSHv2-vertsnøkkelmekanismen.
- Evne til å skjule serveren bak en hemmelig lenke.
- Alle funksjoner aktivert av den moderne QUIC-protokollen: inkludert tilkoblingsmigrering og flerveistilkoblinger
- Bruk automatisk ssh-agent offentlig nøkkelautentisering
- Videresending av SSH-agent for å bruke dine lokale nøkler på den eksterne serveren
- Sikker nøkkelfri brukerautentisering ved hjelp av OpenID Connect.
For å kryptere kommunikasjonskanalen bruker SSH3 TLS 1.3-protokollen og tradisjonelle metoder basert på passord og offentlige nøkler (RSA og EdDSA/ed25519) kan brukes. I tillegg tilbyr SSH3 muligheten til å bruke metoder basert på OAuth 2.0-protokollen, slik at autentisering kan overføres til eksterne leverandører.
En annen av SSH3s styrker er at den tilbyr betydelig raskere øktetablering enn SSH2, For eksempel kan det å etablere en ny økt med SSH2 ta 5 til 7 nettverksiterasjoner (tur-retur), noe brukeren lett kan legge merke til siden SSH3 kun trenger 3 iterasjoner.
Hvis du er interessert i å lære mer om det, bør du vite at klienten og serveren er skrevet i Go og distribuert under Apache 2.0-lisensen, du kan se detaljene I den følgende lenken.
I tillegg er det verdt å nevne at SSH3 fortsatt er eksperimentell og bruken anbefales ikke for produksjon eller kritiske miljøer, og som sådan anbefales installasjonen kun for å lære om funksjonene eller for å kunne teste.
Last ned og installer SSH3
For interessert i å kunne implementere en SSH3-server for testing, Du kan gjøre dette ved å kompilere kildekoden med Go ved å følge instruksjonene vi deler nedenfor.
git clone https://github.com/francoismichel/ssh3 cd ssh3 go build -o ssh3 cmd/ssh3/main.go CGO_ENABLED=1 go build -o ssh3-server cmd/ssh3-server/main.go
Når dette er gjort, fortsetter vi nå med å legge til miljøvariabelen vår i .bashrc med:
export PATH=$PATH:/path/to/the/ssh3/directory
Når det gjelder implementeringen av serveren, siden SSH3 kjører over HTTP3, er et sertifikat nødvendig og et kan genereres med skriptet:
sh ./generate_openssl_selfsigned_certificate.sh
Til slutt inviterer jeg deg til å konsultere dokumentasjonen om bruk og implementering av tilleggsfunksjoner i følgende lenke.