# Külső aláíró és kulcsforgatás, érthető magyarázat a Keycast-ról

> **Miről szól ez a dokumentum?** Ha valaha is használtál Nostr-t (vagy más, kulcsokkal működő online rendszert, ahol te vagy a "pénztárca" tulajdonosa), és zavart, hogy a privát kulcsod egy böngésző-kiterjesztésben vagy egy alkalmazásban lakik, ez a leírás segít megérteni, miért találták ki a Keycast nevű eszközt, és mit jelent az, hogy "kulcsot forgatni". A dokumentum a 2026 szeptemberi állapotot tükrözi (Keycast 2.0.0-rc.1, 2026-09-10).

## Bevezetés és a kulcsforgatás kontextusa

Képzeld el a következőt: van egy digitális "személyi igazolványod" a Nostron (vagy bármely hasonló rendszerben). Ez az igazolvány nem egy darab papír, hanem egy **számsor**, amit csak te ismersz, és amivel bizonyítod, hogy "te vagy te". Ezt hívják **privát kulcsnak**. Aki hozzáfér ehhez a számsorhoz, az a te nevedben ír alá dolgokat, üzeneteket, hozzászólásokat, fizetési kérelmeket. Ha ez a számsor kikerül a kezedből, a másik személy **teljes mértékben te lesz** a hálózat szemében.

A legtöbb ember úgy oldja ezt meg, hogy a kulcsát egy böngésző-kiterjesztésben (Alby, nos2x) vagy egy alkalmazásban (Amber, Primal) tárolja. Ez kényelmes, de van egy komoly hátránya: **a kulcsod az eszközödön van, és az eszközöd sebezhető**, ellophatják a laptopodat, feltörhetik a böngésződet, vagy egy rosszindulatú alkalmazás kiszivárogtathatja. Ezek a kulcsok az elmúlt években **ténylegesen ellopásra kerültek** többször is.

A Keycast egy **más megközelítést** kínál: a kulcsod **a te szervereden** lakik (egy olyan gépen, amit te üzemeltetsz, általában otthon vagy egy biztonságos felhőben), és az alkalmazások **megkérik a szerveredet, hogy írjon alá** a nevedben, de a kulcsot soha nem látják. Ez olyan, mintha a bankod őrizné a kártyádat, és te csak annyit mondanál: "fizess 5000 forintot ebből a boltból". A bank jóváhagyja vagy elutasítja, és a kártya sosem hagyja el a trezort.

## Mi az a Keycast egészen pontosan?

A Keycast egy **ön üzemeltetésű aláíró szerver**. Három szóból áll a neve: "key" (kulcs) + "cast" (terjeszt, küld). A "key cast" arra utal, hogy a kulcsod **nem mozdul**, csak az aláírás "utazik", a kérések mennek hozzá, az aláírt válaszok jönnek vissza, de a kulcs soha.

A Keycast-et a Marmot Protocol csapat fejleszti (egy nagyobb, Nostr-alapú üzenetküldő rendszer része), és 2026 szeptemberében adták ki a 2.0-ás, teljesen újraírt verzióját. Korábban kisebb, kísérleti projekt volt, mostanra érte el azt a szintet, ahol családok, kis csapatok, vagy akár egyéni felhasználók is megbízhatóan használhatják.

### A három kulcs, amit meg kell értened

Mielőtt belemerülnénk a kulcsforgatásba, érdemes tisztázni, hogy a rendszer **három teljesen különböző kulcsot** használ. Ez a leggyakoribb félreértés:

| Kulcs neve | Analógia | Ki ismeri? |
|-----------|---------|------------|
| **A te személyes kulcsod** (user-key) | A te személyi igazolványod a hálózaton | Csak a Keycast szervered tárolja (titkosítva) |
| **A Keycast szerver kommunikációs kulcsa** | A postás, aki hozza-viszi a leveleket | Csak a Keycast szervered |
| **Az alkalmazás (kliens) saját kulcsa** | Az alkalmazás "munkahelyi belépőkártyája" | Minden egyes alkalmazásnak saját van |

**A lényeg:** amikor te beírod az alkalmazásba a Keycast adatait, az alkalmazás **saját kulcsot generál** magának (minden egyes alkalommal újat, ha újracsatlakozol). Ez a kulcs csak arra szolgál, hogy a Keycast szervereddel kommunikáljon. A **te személyes kulcsodat soha nem látja**, az alkalmazás csak annyit tud, hogy "valaki a Keycast szerveren keresztül aláírt egy üzenetet a user-pubkey-vel".

Ha ezt a hármas felosztást megérted, a kulcsforgatás is érthetővé válik.

## Mit jelent a "kulcsforgatás"?

### A lakáskulcs-példa

Képzeld el, hogy van három kulcsod:
1. A lakásod ajtajának kulcsa
2. A postaláda kulcsa
3. A garázs ajtajának kulcsa

Ha bármelyiket elveszted vagy ellopták, akkor **cseréltetned kell a zárat és a kulcsot** is. Az új kulcs már nem nyitja a régi zárat, és a régi kulcs nem nyitja az új zárata. Aki esetleg hozzáfért a régi kulcshoz, **már nem tud bejönni**.

**A kulcsforgatás pontosan ugyanígy működik a Keycast-nél**, csak digitálisan. A "fő kulcs" itt az úgynevezett **root credential**, ez egy nagyon hosszú, véletlenszerű számsor, amivel a Keycast **az összes tárolt személyes kulcsodat titkosítva tartja** a szerveren. Ha ezt a root credential-t "elforgatod" (lecseréled egy újra), akkor:

1. Minden tárolt kulcsod **újracsomagolásra kerül** az új root credential-lel
2. A régi root credential-lel titkosított összes adat **értelmezhetetlenné válik**, még ha valaki hozzáfért is a régi root credential-hez, az új adatokhoz már nem tud hozzáférni
3. A te személyes kulcsod (a Nostrodon használt identity-d) **változatlan marad**, a többi felhasználó, alkalmazás, relay semmit nem vesz észre, mert a te "személyi igazolványod száma" (a public key) nem változik

Ez a trükk: a kulcsodat **ugyanaz marad**, de a **védelme** (a titkosító réteg) megújul.

### Miért kell ez egyáltalán?

Három fő ok van:

1. **Ha valaki hozzáfért a szerveredhez és megszerezte a root credential-t**, akkor a kulcsforgatás "semlegesíti" a régi credential-t, az új adatokhoz már nem fér hozzá. (Ez olyan, mint a fenti lakáskulcs-példa.)
2. **Ha egy csapattag (adminisztrátor) távozott** a csapatodból, és nem akarod, hogy a jövőben hozzáférjen a tárolt kulcsokhoz, a forgatás ezt is megoldja.
3. **Rendszeres "jó higiénia"**, sok biztonsági szakértő évente vagy félévente javasol kulcsforgatást, még akkor is, ha semmi gyanús nem történt. Ez olyan, mint az influenza-oltás: nem azért kapod, mert beteg vagy, hanem hogy **előre csökkentsd a kockázatot**.

## Mit csinál a Keycast a kulcsaid mögött?

### A tárolás módja

A Keycast **AES-256-GCM** nevű titkosítást használ a kulcsok tárolására. Ez ugyanaz a módszer, amit a bankok, a kormányzati rendszerek és a legtöbb biztonságos felhőszolgáltatás is használ. Ha valaki ellopja a szerver merevlemezét, a kulcsok **teljesen olvashatatlanok** maradnak a root credential nélkül.

A root credential-t külön is védheted:
- **Helyi fájl** a szerveren (alapértelmezett)
- **Google Cloud KMS** (felhőalapú kulcstároló, a Google kezeli)
- **AWS KMS** (Amazon hasonló szolgáltatása)

A KMS-változatoknál a root credential **soha nem hagyja el a felhő hardverét**, a Keycast szervered csak "feloldást kér", magát a kulcsot soha nem látja. Ez olyan, mint amikor egy trezorba zárt kulcsot használsz: a trezor kinyílik, kiveszed a kulcsot, elvégzed a műveletet, visszateszed, a trezor tartalma sosem hagyja el a trezort.

### A mentés és visszaállítás

A Keycast **automatikus mentést** is tud készíteni. A mentés:
- **Külön titkosító kulcsot** használ (ami nem lehet ugyanaz, mint a root credential, a rendszer ezt külön szabályként kikényszeríti)
- A mentési fájl **kis darabokban** (1 MB-os részekben) hitelesített formátumban tárolódik, ha valaki megváltoztatja akár egy byte-ot, a visszaállítás **azonnal elbukik**
- A mentést **off-site** (a szerveren kívül, például felhőben vagy külső merevlemezen) kell tárolni, különben nem ér semmit

**Fontos különbség a mentés és a kulcsforgatás között:**
- A **mentés visszaállítása** ("restore") törli az összes jelenlegi hozzáférést (minden alkalmazás-engedélyt, meghívót, munkamenetet), és manuális felülvizsgálatra vár. Olyan, mint amikor egy házat teljesen új bérlőnek adsz: az új bérlő a nulláról kezd.
- A **kulcsforgatás** megtartja az összes hozzáférést, csak a "zárat cseréli". Olyan, mint amikor a bérlők bent maradnak, de új kulcsot kapsz a kezedbe.

Soha ne használd a mentés visszaállítását csak azért, mert egy frissítés nem működik, ez utolsó lehetőség, nem első.

## Kiknek ajánlott a Keycast?

### Jó választás, ha:

- **Egy kis csapat vagy család üzemeltet közös Nostr-identity-ket** (például egy podcast stúdió, ahol a műsorvezetők közösen írnak alá eseményeket, vagy egy családi blog, ahol több generáció osztozik egy identity-n). A Keycast-et kifejezetten ilyen használatra tervezték.
- **Fontos neked, hogy a kulcsaid fizikailag a te szervereden legyenek**, és nem bízol meg harmadik félben (pl. nem akarod a nsec-edet egy felhőszolgáltatásnak odaadni). Ez a privacy-maximalisták és a self-hosting-rajongók terepe.
- **Több Nostr-alkalmazást is használsz egyszerre** (Primal, Amethyst, Damus, stb.), és szeretnéd, ha mind **ugyanazzal a kulccsal** írnának alá, de anélkül, hogy bármelyik alkalmazás hozzáférne a nyers kulcshoz.
- **Van tapasztalatod szerver-üzemeltetésben** (Docker, Linux, fordított proxy, HTTPS tanúsítvány). A Keycast **nem** felhő-szolgáltatás, neked kell telepítened és karbantartanod.

### Nem neked való, ha:

- **Csak alkalmanként használod a Nostr-t**, és nem akarsz szervert üzemeltetni. Számodra az Amber, Primal vagy hasonló kliens egyszerűbb.
- **Nem vagy otthon a parancssorban**. A Keycast-nek vannak webes felületei, de a telepítéshez és a kulcsforgatáshoz **mindenképp parancssori ismeret** kell.
- **Nem akarsz biztonsági felelősséget vállalni**. Ha a szerveredet feltörik, és nem forgattad a kulcsot, a kulcsaid veszélyben vannak. A Keycast megadja az eszközöket, de a felelősség a tiéd.

## Hogyan használd a kulcsforgatást a gyakorlatban?

### Lépésről lépésre (magas szinten)

1. **Telepítsd a Keycast-et** a saját szerveredre (Docker Compose ajánlott). A telepítéskor a rendszer automatikusan generál egy root credential-t, ez egy véletlenszerű, nagyon hosszú számsor.
2. **Importáld a meglévő Nostr-kulcsodat** (vagy generáltass újat) a Keycast webes felületén. Ekkor a kulcsod **titkosítva** kerül a szerverre.
3. **Csatlakoztasd az alkalmazásaidat** a Keycast-hez. Minden alkalmazás kap egy **saját kommunikációs kulcsot** és egy **szabálygyűjteményt** (ún. policy), ami megmondja, hogy mit szabad aláírnia (pl. csak rövid üzenetek, de nem fizetési kérelmek).
4. **Időnként forgasd a root credential-t**. A forgatás parancsa három lépésből áll (és mindegyikhez parancssori hozzáférés kell):

   ```
   # 1. Új root kulcs generálása (másik fájlba)
   keycast_signer generate-key /biztonságos/helyre/uj-root.key

   # 2. A Keycast szolgáltatás leállítása (rövid időre)

   # 3. A forgatás parancs futtatása
   keycast_signer rotate-root /biztonságos/helyre/uj-root.key
   ```

   A forgatás **egyetlen adatbázis-műveletben** újracsomagolja az összes tárolt kulcsot és engedélyt. Ha bármi félresikerül, a régi kulcs megmarad, nem veszted el az adataidat.

5. **Indítsd újra a szolgáltatást** az új root kulccsal, és **minden böngészőben újra hitelesítsd** a Keycast kezelőfelületét (mert a kezelőfelület "aláírási identitása" is megváltozik a forgatás során).

### Mikor forgass?

- **Azonnal**, ha gyanítod, hogy a szerveredhez vagy a root credential-hez illetéktelen hozzáférés történt.
- **Évente vagy félévente**, ha rendszeres biztonsági rutin részeként tekintesz rá.
- **Mielőtt bármilyen bizalmas személy vagy csapattag elhagyja** a csapatodat, akinek volt hozzáférése.

## Mire figyelj, ha használod?

### Amit a Keycast **tud**:

- ✅ AES-256-GCM titkosítással tárolja a kulcsokat
- ✅ Részletes szabályrendszert (policy) állíthatsz be minden alkalmazáshoz
- ✅ Mentést készíthetsz, és visszaállíthatod vészhelyzet esetén
- ✅ Forgathatod a root credential-t megszakítás nélkül (az alkalmazások nem szakadnak le)
- ✅ A böngésző-szintű visszaélhetőséget csökkenti (mert a kulcs sosem kerül a böngészőbe)
- ✅ Docker Compose-zal egyszerűen telepíthető Linux szerverekre

### Amit a Keycast **nem tud** (2026 szeptemberében):

- ❌ **Nincs független külső biztonsági audit**, a fejlesztők belső auditja volt, de egyetlen független biztonsági cég sem erősítette meg, hogy tényleg biztonságos
- ❌ **Single-host**, nem skálázódik automatikusan több szerverre (ellentétben néhány felhő-verzióval, de azok más projektek)
- ❌ **Az 1.0-s verzióról nincs migráció** a 2.0-ra, ha az 1.0-s verziót használtad, friss telepítés kell, és a kulcsokat újra kell importálnod
- ❌ **Ha a szervered root szinten kompromittálódik** (valaki root jogosultságot szerez a gépen), akkor a kulcsok **kikerülhetnek** a memóriából, a Keycast nem próbálkozik a `mlock`-kal vagy hasonló hardcore védelmekkel
- ❌ **Böngészőből importált kulcs** átmegy a webes felületen a böngésző → szerver útvonalon. Ha a böngésződ kompromittálódik, az importálás pillanatában a kulcsod veszélyben van. A "megbízható parancssoros" (CLI) importálás erősebb határ.

## Összefoglaló, a lényeg négy mondatban

1. **A Keycast egy ön üzemeltetésű aláíró szerver**, ami a privát kulcsaidat a saját gépeden tartja, és az alkalmazásoknak csak aláírt válaszokat küld vissza, így az alkalmazások soha nem férnek hozzá a nyers kulcshoz.
2. **A kulcsforgatás** a "fő védelmi kulcs" lecserélése: a tárolt kulcsaid újra lesznek titkosítva, de a te Nostr-identitásod (a publikus kulcsod) változatlan marad, az alkalmazások és ismerősök semmit nem vesznek észre.
3. **Akinek fontos a self-hosted biztonság**, és van tapasztalata szerver-üzemeltetésben, annak a Keycast erős eszköz. Akinek csak egy egyszerű Nostr-kliens kell, és nem akar szervert üzemeltetni, annak az Amber vagy Primal egyszerűbb.
4. **A kulcsforgatás nem mindennapos teendő**, de ha gyanú merül fel vagy rendszeres biztonsági rutint akarsz, a Keycast parancssori eszközei (`generate-key` + `rotate-root`) ezt néhány perc alatt, biztonságosan elvégzik, feltéve, hogy van mentésed visszaállításhoz, ha valami félremegy.

## Hivatkozások és további olvasnivaló

- **Keycast projekt** (GitHub): https://github.com/marmot-protocol/keycast — a teljes forráskód, a telepítési útmutató és a biztonsági modell leírása
- **NIP-46 specifikáció** (Nostr Remote Signing): a protokoll, amin a Keycast kommunikál az alkalmazásokkal — szintén a GitHub `nostr-protocol/nips` repóban található a `46.md` fájlban
- **Nostr Compass #40 hírlevél** (2026-09-16): a Keycast 2.0.0-rc.1 első szám megjelenését bemutató hír — a fájlban olvasható magyarul

## Forrás

- **Forrásdokumentum:** Nostr Compass #40 heti hírlevél (2026-09-16), Keycast szekció a Vezértörténetek között
- **Eredeti URL:** https://nostrcompass.org/en/newsletters/2026-09-16-newsletter/
- **Kutatási anyag:** Keycast GitHub repository (marmot-protocol/keycast, master branch, CHANGELOG.md v2.0.0-rc.1, README.md, docs/architecture.md, docs/policies-and-access.md, docs/backup-and-recovery.md) + NIP-46 specifikáció (nostr-protocol/nips/46.md)
- **Összefoglaló dátuma:** 2026-09-18
- **Szerző:** Hermes (Henky kérésére, hétköznapi nyelvre fordítva)
- **Licenc:** A forrásanyagok MIT és CC licenc alatt állnak; ez a magyar nyelvű összefoglaló a CC BY-SA 4.0 licenc alatt terjeszthető a hivatkozások feltüntetésével.
