Ü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.