STCP
| 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