# Magánkulcsok titkosítása (OpenSSL-kulcsok az 5.3-as frissítés után)

> A vezérlőpult adatbázisában tárolt aláíró magánkulcsok titkosítása: a lépések, a védelem célja és a titkosítás működése.

Az 5.3-as vezérlőpult-verziótól a MainWP titkosítja az adatbázisban tárolt magánkulcsokat. A vezérlőpult ezekkel a kulcsokkal írja alá a csatlakoztatott Child-webhelyeknek küldött kéréseket. A titkosítás azt védi, ha valaki az adatbázis másolatához hozzáfér, de a különálló kulcsfájlokhoz nem.

## Előfeltételek

- MainWP vezérlőpult 5.3 vagy újabb.
- Rendszergazdai hozzáférés a vezérlőpulthoz.

## Kulcsok titkosítása a frissítés után

Az 5.3-ra frissítés után egyszeri értesítés kéri a meglévő kapcsolatok magánkulcsainak titkosítását.

1. Keresd meg a titkosításra figyelmeztető értesítést a vezérlőpulton.
2. Kattints a **Kulcsok titkosítása most** (**Encrypt Keys Now**) gombra, hogy a meglévő magánkulcsok mind titkosítva legyenek.
3. Várd meg, amíg a folyamat lefut. Az új Child-webhelyek magánkulcsa a továbbiakban automatikusan titkosítva készül.

## Az értesítés visszaállítása

Ha elnémítottad az értesítést:

1. Nyisd meg a **MainWP → Beállítások → Eszközök** oldalt (a jobb felső felhasználói menüből is eléred).
2. Kattints az **Információs üzenetek visszaállítása** gombra.
3. Amikor az értesítés újra megjelenik, kattints a **Kulcsok titkosítása most** gombra.

![Az Eszközök oldal, rajta az Információs üzenetek visszaállítása gombbal](./kepek/halado-eszkozok-oldal.webp)

*Az Eszközök oldal, rajta az Információs üzenetek visszaállítása gombbal* (https://minta-bolt.hu/wp-admin/admin.php?page=MainWPTools)

Az **Információs üzenetek visszaállítása** gomb az oldal alján, a kiegészítők adatait törlő gombok alatt van, ezért a képen már nem látszik; görgess lejjebb.

## Mit véd a magánkulcs-titkosítás?

A magánkulcsokkal írja alá a vezérlőpult a kéréseit, a Child-webhelyeken lévő nyilvános kulcsok pedig ellenőrzik az aláírás hitelességét. A titkosítás azt a helyzetet védi, amikor valaki megszerzi az adatbázis másolatát a hozzá tartozó kulcsfájlok nélkül. A webhelyek magánkulcsait AES-256-CBC titkosítja. A külső szolgáltatások API-kulcsai külön, AES-GCM-alapú eljárást használnak ([lásd itt](https://hub.hellowp.io/hu/plugins/mainwp/halado-api-kulcsok-tarolasa/)).

## Hogyan működik a titkosítás?

A magánkulcs-titkosítás a PHPSecLib könyvtárat használja, a visszafejtéshez szükséges anyagot pedig külön kulcsfájlban tartja.

| Lépés | Folyamat | Leírás |
|---|---|---|
| 1 | Kulcsgenerálás | A PHPSecLib `Random` osztálya véletlenszerű 32 bájtos AES-kulcsot állít elő |
| 2 | IV létrehozása | Véletlenszerű 16 bájtos inicializálási vektor (IV) készül |
| 3 | Titkosítás | Az AES-256-CBC titkosítja a webhely aláíró magánkulcsát |
| 4 | Kulcsburkolás | Egy új RSA-2048 nyilvános kulcs titkosítja az AES-kulcsot és az IV-t |
| 5 | Adatbázisba mentés | A titkosított szöveg base64-kódolva kerül az adatbázisba |
| 6 | Kulcsfájl | Az RSA magánkulcs és az RSA-val titkosított AES-kulcs és IV base64-kódolva külön kulcsfájlba kerül |

A titkosított aláíró kulcs visszafejtéséhez az adatbázisban lévő érték és a hozzá tartozó kulcsfájl is kell.

## Technikai részletek

### AES-256-CBC titkosítás

Az AES-256-CBC a webhely aláíró magánkulcsát egy véletlenszerű 32 bájtos AES-kulccsal titkosítja. Ez a tárolási eljárás nem készít GCM hitelesítési címkét.

### Inicializálási vektor (IV)

Minden titkosításhoz új 16 bájtos IV és új AES-kulcs készül.

### RSA-kulcsburkolás

Egy új RSA-2048 kulcspár védi az AES-kulcsot és az IV-t. A nyilvános RSA-kulcs titkosítja mindkettőt, a visszafejtésükhöz a hozzá tartozó RSA magánkulcs kell.

### Kulcskezelés

A kulcsfájl az RSA magánkulcsot és a becsomagolt AES-kulcsot és IV-t tartalmazza, az adatbázisban lévő titkosított aláíró kulcstól külön tárolva. Védd és mentsd az adatbázist és a kulcsfájlokat is, hogy a vezérlőpult továbbra is vissza tudja fejteni az aláíró kulcsokat.

## Miért fontos?

Az aláírás a vezérlőpulttól érkező kérések hitelességét igazolja, a HTTPS pedig az útközbeni forgalmat titkosítja. A magánkulcs-titkosítás az aláíró kulcsokat tárolás közben védi azzal, hogy a visszafejtő anyagot elválasztja az adatbázistól.

## Ellenőrzőlista

- A vezérlőpult 5.3 vagy újabb.
- Az értesítést észrevetted.
- A magánkulcsok titkosítása sikeresen lefutott.
- A Child-webhelyek kapcsolata a titkosítás után is működik.

Lásd még: [Aláírási algoritmus, PHPSecLib és az openssl.cnf megkeresése](https://hub.hellowp.io/hu/plugins/mainwp/halado-alairas-es-phpseclib/), [A kapcsolat biztonsága](https://hub.hellowp.io/hu/plugins/mainwp/halado-kapcsolat-biztonsaga/).
