TLS-titkosított szervert valósít meg opcionális ügyféltanúsítvány-ellenőrzéssel. Az általános információkért lásd: Szerver osztály, az alapvető kiszolgáló- és BearSSL-koncepciókért pedig a BearSSL biztonságos kliens osztály.
A BearSSL::WiFiClientSecure metódushoz hasonlóan beállítja a vételi és átviteli puffer méretét. Ne feledje, hogy a kiszolgálók nem kérhetnek pufferméretet az ügyféltől, ezért ha ezeket összezsugorítják, és a kliens a fogadási puffernél nagyobb darabot próbál küldeni, az mindig meghiúsul. Meg kell hívni a begin() előtt.
A TLS-kiszolgálóknak szükségük van egy tanúsítványra, amely azonosítja magát, és tartalmazza a nyilvános kulcsát, valamint egy privát kulcsot, amellyel az információkat titkosítani fogják. Az alkalmazás szerzője felelős ennek a tanúsítványnak és kulcsnak a létrehozásáért, akár egy önaláírt generátor, akár egy kereskedelmi hitelesítés-szolgáltató segítségével. Ne használja újra a példákban szereplő tanúsítványokat.
Ez a példaparancs létrehoz egy 2048 bites RSA kulcsot és tanúsítványt:
openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -days 4096
Ismét az alkalmazás szerzőjén múlik, hogy létrehozza ezt a tanúsítványt és kulcsot, és megőrizze a titkos kulcsot.
Beállít egy RSA-tanúsítványt és kulcsot, amelyet a kiszolgáló használ a kapcsolatok fogadásakor. Meg kell hívni a begin() előtt
Elliptikus görbe tanúsítványt és kulcsot állít be a szerver számára. Meg kell hívni a begin() előtt.
A TLS kézfogási folyamata hosszú időt vesz igénybe az ügyfél és a szerver közötti oda-vissza járás miatt. Lerövidítheti az ügyfelek munkameneteinek gyorsítótárazásával, amely néhány lépést kihagy a TLS-kézfogásban. Ahhoz, hogy ez működjön, az ügyfélnek gyorsítótárba kell helyeznie a munkamenetet. A BearSSL::WiFiClientSecure éppúgy képes erre, mint a modern webböngészők.
Íme, milyen teljesítményjavításokat láthat az ESP8266 TLS-kézfogásainál, amelynek órajele 160 MHz-re van beállítva egy viszonylag alacsony késleltetésű hálózaton:
A 256 bites EC-kulcsnál a kérések ~360 ms-ig gyorsítótárazás nélkül ~60 ms-ig tartanak gyorsítótárazással.
2048 bites RSA-kulccsal a kérések ~1850 ms-ig gyorsítótárazás nélkül ~70 ms-ig tartanak gyorsítótárazással.
Beállítja a gyorsítótárat a szerver munkameneteihez. A gyorsítótár méretének kiválasztásakor ne feledje, hogy minden ügyfélmunkamenet 100 bájtot vesz igénybe. Ha 10 munkamenetre állít be egy gyorsítótárat, az 1000 bájtot vesz igénybe. Meg kell hívni a begin() előtt.
A gyorsítótár létrehozásakor a 2 elérhető konstruktor bármelyikét használhatja:
BearSSL::ServerSessions(ServerSession *sessions, uint32_t méret): Gyorsítótárat hoz létre a megadott pufferrel és munkamenetek számával.
BearSSL::ServerSessions(uint32_t size): Dinamikusan lefoglal egy gyorsítótárat a megadott számú munkamenethez.
A TLS-kiszolgálók megkérhetik a klienst, hogy azonosítsa magát egy tanúsítvány továbbításával a kézfogás során. Ha az ügyfél nem tudja továbbítani a tanúsítványt, a szerver megszakítja a kapcsolatot.
Beállítja azt a megbízhatósági horgonyt (általában egy önaláíró CA), amely ellen minden kapott tanúsítványt ellenőrizni kell. Meg kell hívni a begin() előtt.
© Copyright 2017, Ivan Grokhotkov Revision b080c507. Fordította: Maczák András