Üzenet titkosítás¶
- Az üzenetek titkosítását Nano -ban három tényező határozta meg:
A szervernek képesnek kell lennie a válasz tárolására a megfelelő gyorsítótár-tárolóban
A gyorsítótárból érkező kérésekre való válaszadásnak ugyanolyan biztonságosnak kell lennie, mint a cél Nano -példánytól
A szerver nem válaszolhat a gyorsítótárból anélkül, hogy megkérdezte volna a cél Nano példányt
End to End protokoll¶
A Nano csak hitelesített titkosítással fogadja el a kéréseket, és hasonló módon válaszol.
A Nano end-to-end protokollja úgy van kialakítva, hogy segítse a szervert a titkosított adatdarabok gyorsítótárazásában. A gyorsítótárazási funkció ellenére továbbra is garantált, hogy a kiszolgáló nem tud kiszolgálni egy kérést anélkül, hogy konzultálna a válaszoló Nano-val.
Ennek oka az, hogy egy kérés mindig úgy van titkosítva, hogy csak a Nano tulajdonosának fiókja tudja visszafejteni. Mivel titkosítva van, a szerver nem tudja felismerni, hogy mi a kérés. A titkosítás azt jelenti, hogy a szerver nem tud közvetlenül válaszolni a gyorsítótárból kérésére.
Válasz fajták¶
A Nano titkosított darabokra oszthatja a választ, attól függően, hogy a szerver képes -e gyorsítótárazni a választ.
Az első rész felelős a következő üzenetrészek biztonságának és hitelességének beállításáért. Az üzenet többi része is titkosított, és csak az eredeti válaszban található kulccsal lehet visszafejteni.
A válasz darabokra bontása után a Nano küld egy kezdeti választ, amely kérés-hitelesség-hash-t tartalmaz. Ez a kérés-hitelesség-kivonat a kérelem metaadataiból épül fel. A hitelességkivonat hamisíthatatlan bizonyítékot szolgáltat arra, hogy a válasz erre a konkrét kérésre vonatkozik, és a szerver nem próbálja félrevezetni az ügyfelet.
A kezdeti válasz tartalmazza a darabok számát is, amelyekre a tartalom szét lesz választva. A kezdeti válaszban kapott adatokkal az ügyfél biztonságosan kérheti a kívánt üzenetet. Ezt a kérést a kiszolgáló gyorsítótárából vagy a Nano kliensből kell kiszolgálni.
E kétlépcsős válaszkezelés miatt, még akkor is, ha a szerver el tudja küldeni a választ a gyorsítótárból, az első kérés mindig a Nano klienshez kerül. A kérés hitelesítése után a Nano kliens válaszol egy gyorsítótárral vagy átviteli kulccsal, amelyet a szerver használhat. Ezek a kulcsok is titkosítottak, a szerver nem tudja, mit képviselnek.
Gyorsítótárazott válasz¶
A gyorsítótárban tárolt válaszok mindig több részre vannak osztva. A válasz első része tárolja a gyorsítótár-kulcsot, és egy részkulcsot, amely a teljes válasz-adathalmaz egyedi titkosítási kulcsa.
A gyorsítótár kulcs az adatforrás legoptimálisabb ábrázolása az állapot-előállítás erőforrásigény skáláján. Egy fájl esetén több információt is tartalmaz, amelyekből levonható a fájl frissessége (például az inode, méret, mtime és elérési út). Bármelyik változás azt jelzi, hogy a gyorsítótár-kulcs elavult, és az ügyfélnek újra ki kell adnia a kérést. Ez automatikusan érvényteleníti a korábbi gyorsítótár-bejegyzéseket. A gyorsítótár kulcsok biztonságosan vannak titkosítva.
Nem gyórsítótárazható válasz¶
Azok a válaszok, amelyeket a szerver nem képes gyorsítótárba tenni, gyorsítótár kulcs helyett átviteli kulccsal vannak ellátva.
Gyorsítótár, átviteli és részkulcsok¶
A gyorsítótár/átviteli kulcsok és a részkulcsok mindig a Nano példány számára vannak létrehozva. Ezek egyedi, kriptográfiailag erős titkosított értékekből származnak.
Visszajátszási támadások¶
Olyan kérések esetében, amelyek nem idempotensek (amelyek mutációt/állapotváltozást eredményeznének) a Nano kliensben, azokhoz a rendszer megköveteli az igénylőtől, hogy állítson be egy úgynevezett munkamenet-azonosítót. Ezt a munkamenet-azonosítót egy rosszindulatú szerver ismételt támadásainak megakadályozására használják. Ez a munkamenet-azonosító (vagy mutációs azonosító) egy munkamenet-tokenből áll, amely azonosítja az aktuális parancskérést és az aktuális kliens-Nano kapcsolat adatpárost. A munkamenet-azonosítónak van egy sorszáma is, amelyet a Nano elment, hogy ezzel ellenőrizhesse a következő parancsot ugyanazzal a munkamenet-azonosítóval.