SSH3, en sikker versjon av SSH som bruker HTTP3

SSH3

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.