STCP

Linux.fista
Siirry navigaatioon Siirry hakuun
STCP (Secure Transport Channel Protocol)
Tekijä(t) Paxsudos IT
Kehittäjä(t) Paxsudos IT
Moottori Linux-ydin (Rust-infra)
Ensijulkaisu 2024
Kehitysversio 0.1.0-alpha  / 2024
Ohjelmoitu Rust
Käyttöliittymä Kernel-rajapinta (Socket API)
Tyyppi Verkkoprotokolla, kuljetuskerros
Lisenssi GPLv3 / Kaupallinen
Kotisivu https://paxsudos.fi
Lähdekoodi https://github.com/MiesSuomesta/STCP

STCP (Secure Transport Channel Protocol) on suomalaisen Paxsudos IT:n kehittämä, Linux-ytimeen (kernel) integroitu suojattu kuljetuskerroksen protokolla. Sen tavoitteena on tarjota automaattinen salaus ja autentikointi stream-muotoiselle tietoliikenteelle ilman sovellustason monimutkaista konfigurointia, kuten sertifikaattien hallintaa.

STCP on toteutettu hyödyntämällä Linux-ytimen modernia Rust-infrastruktuuria.

Keskeiset ominaisuudet

[muokkaa]
  • Zero-config: Sovellus voi siirtyä käyttämään salattua yhteyttä vaihtamalla standardin IPPROTO_TCP-lipun IPPROTO_STCP-lippuun (protokollanumero 144) socket-kutsun yhteydessä.
  • Kernel-natiivi: Salaus ja kättely tapahtuvat suoraan kernel-tilassa, mikä vähentää kontekstin vaihtoja sovelluksen ja ytimen välillä.
  • Moderni kryptografia:
    • X25519: Efemeraalinen avaimenvaihto, joka tarjoaa Perfect Forward Secrecy (PFS) -suojan.
    • AES-256-GCM: Autentikoitu salaus (AEAD).
    • HKDF-SHA256: Avainten johtaminen.
  • Muistiturvallisuus: Toteutus perustuu Rust-kieleen, mikä minimoi perinteiset C-kielelle tyypilliset muistinhallintavirheet kernel-tasolla.

Toimintaperiaate

[muokkaa]

STCP kapseloi sovellusdatan tietueisiin (records), jotka sisältävät pituuskentän, noncen, salatun tiedon ja autentikointitägin. Toisin kuin TLS, se ei oletusarvoisesti vaadi monimutkaista X.509-sertifikaatti-infrastruktuuria, vaan se on suunniteltu erityisesti hallittuihin ympäristöihin, kuten konesalien sisäiseen liikenteeseen tai IoT-verkkoihin.

Lisensointi

[muokkaa]

STCP käyttää kaksoislisenssimallia:

  • GPLv3: Vapaa käyttö harrastajille ja avoimen lähdekoodin projekteille.
  • Kaupallinen lisenssi: Suljettuihin ja kaupallisiin tuotteisiin, joissa GPL-ehdot eivät ole mahdollisia.

Asennus ja käyttö

[muokkaa]

Projekti vaatii toimiakseen Linux-ytimen, jossa on Rust-tuki (v6.1+). Kernel-moduuli voidaan kääntää ja ladata seuraavasti:

git clone https://github.com/MiesSuomesta/STCP.git
cd STCP/kernel
make
sudo insmod stcp.ko

Sovellustasolla socketin avaaminen (esimerkki C-kielellä):

 int fd = socket(AF_INET, SOCK_STREAM, 144); // 144 = IPPROTO_STCP