Porovnanie rýchlosti načítania webu s použitím RSA/ECC certifikátu a rôznych verzií HTTP protokolu

21.6.2024 | Jindřich Zechmeister

ECC certifikáty sú alternatívou k RSA certifikátom. Poskytujú rovnakú bezpečnosť pri kratšej dĺžke kľúča, čo urýchľuje prácu a znižuje zaťaženie servera. Na rýchlosť načítania webu má vplyv aj prenosový protokol; HTTP/2 a najnovšie HTTP/3 výrazne zlepšujú prácu s otvoreným spojením a zrýchľujú načítanie stránok. V tomto článku overíme, či má na rýchlosť načítania webu väčší vplyv certifikát alebo verzia HTTP protokolu.

ECC certifikáty používajú kratší kľúč pri rovnakej miere zabezpečenia

ECC certifikáty sú už mnoho rokov dostupné ako alternatíva certifikátov s RSA algoritmom. ECC kľúč (kryptografia eliptických kriviek) dosahuje rovnakú bezpečnosť ako RSA kľúč s niekoľkonásobnou bitovou dĺžkou (256b ECC kľúč = 3072b RSA); vďaka kratšej dĺžke je práca s ním rýchlejšia a berie serveru menej procesorového výkonu. Keď meriame, akou veľkou rýchlosťou sa načíta web, musíme vziať do úvahy aj protokol prenosu dát. Už niekoľko rokov môžeme využiť rýchly protokol HTTP/2 av posledných rokoch dokonca jeho tretiu verziu. Modernejšia verzia už prekonaného HTTP/1.1 ponúka výrazne lepšiu prácu s otvoreným spojením (každý súbor sa nemusí prenášať zvlášť) a veľmi zrýchľuje načítanie stránok. Poďme sa pozrieť, či má na rýchlosť načítania webu väčší vplyv certifikát s menším verejným kľúčom, alebo modernejší protokol prenosu dát.

Metodika merania

Pre testovanie bol použitý redakčný systém Wordpress bez ďalších úprav, bez obsahu as predvolenou šablónou.

Pre meranie výsledkov boli zvolené dve služby - PageSpeed ​​Insights, čo je nástroj od Google, a nástroj GTmetrix.com. Pre meranie GTmetrix bol vybraný server v Nemecku a pri každom meraní je uvedený simulovaný prehliadač (a zariadenia) + simulovaná rýchlosť pripojenia.

Voľba padla na výkonný ZonerCloud server VPS s Apache/2.4.59 (Debian); pre test HTTP/3 poslúžil namiesto Apache webový server OpenLiteSpeed ​​verzie 1.7.19.

Vysvetlenie použitých pojmov

Google svojím nástrojom Lighthouse stanovil najpoužívanejší referenčný benchmark benchmark rýchlosti, s akou sa weby načítajú. Lighthouse môžete použiť v každom prehliadači Chrome, ale hlavne pomocou služby PageSpeed ​​Insights. Tá slúži vývojárom webov a odborníkom na SEO na ladenie rýchlosti webu a jeho odozvy.

Google Lighthouse používa niekoľko termínov, ktoré treba vysvetliť.

  • FCP (First Contentful Paint) je metrika, ktorá meria čas od začiatku načítania stránky do doby, kedy sa na obrazovke užívateľa zobrazí prvý kus obsahu (napr. text, obrázok, canvas render). Hodnota by mala byť do 1,8 sekundy.
  • LCP (Largest Contentful Paint) je metrika, ktorá meria čas od začiatku načítania stránky do doby, kedy je na obrazovke používateľa vykreslený najväčší viditeľný obsahový prvok. Dobrý výsledok je do 2,5 sekundy.
  • Speed ​​Index - meria ako rýchlo sa obsah vašej stránky viditeľne zaplní. Dobrý výsledok je 1,3s alebo menej.

Vo výsledkoch testu GTmetrix.com uvádzam hodnotu SSL (waterfall), ktorá udáva, ako dlho pri načítaní stránky trval TLS handshake, teda zriadenie komunikácie pomocou HTTPS.

Protokol HTTP/1.1

Táto verzia HTTP protokolu je prastará - pochádza už z roku 1997. Každému je určite jasné, že vtedajšie weby vyzerali obsahovo aj technicky inak. Tento protokol sa nehodí na použitie v dnešnej dobe, keď sú webové stránky obsiahle, komplexné a plné obrázkov s javascriptom. Stále však slúži ako "záložný" (fallback) protokol pre starších klientov a stále teda prežíva.

PageSpeed ​​Insights

Certifikát Výkon FCP LCP Speed ​​Index
ECC 94 (desktop) 0.5s 0.9s 0.9s
ECC 94 (mobil) 1.7s 2.7s 3s
RSA 92 (desktop) 0.5s 0.8s 1.8s
RSA 94 (mobil) 1.6s 3.0s 1.8s

GTM – server Frankfurt Germany

Nastavenia: Apple iPhone 6/6S/7/8/SE (2nd/3rd Gen) LTE (15/10 Mbps. 100ms)

Certifikát Výkon FCP LCP Speed ​​Index SSL (waterfall)
ECC A – 95 % 888ms 1.3s 1.2s 123ms
RSA A – 95 % 896ms 1.3s 1.2s 128ms

Nastavenia: Apple iPhone 6/6S/7/8/SE (2nd/3rd Gen) 3G (1.6 Mbps/768 Kbps 200ms)

Certifikát Výkon FCP LCP Speed ​​Index SSL (waterfall)
ECC C – 62 % 1.4s 6.7s 4.1s 241ms
RSA C – 62 % 1.4s 6.8s 4.3s 245ms

Nastavenia: Desktop Chrome Unthrottled Connection

Certifikát Výkon FCP LCP Speed ​​Index SSL (waterfall)
ECC A – 99 % 314ms 395ms 395ms 23ms
RSA A – 99 % 335ms 417ms 410ms 22ms

Výsledky merania protokolu HTTP 1.1 ukazujú, že algoritmus verejného kľúča v certifikáte (a jeho dĺžka) prakticky nemajú na načítanie webu vplyv a jeho rýchlosť je v oboch prípadoch rovnaká. Dôležitá je rýchlosť siete - pokiaľ simulujeme neobmedzenú rýchlosť pripojenia, tak handshake trvá desatinu času ako na pomalšom 4G/LTE s menej rýchlou odozvou.

Protokol HTTP/2

Modernejšia verzia HTTP protokolu prináša niekoľko zásadných vylepšení, ktoré prispievajú k rýchlejším načítaniu stránky. Najviac je rozdiel medzi HTTP 1.1 a HTTP/2 zrejmý pri stránkach s viacerými obrázkami, kde modernejší protokol nesťahuje každý z nich samostatne naviazaným spojením, ale načíta ich spoločne. HTTP/2 znamená malú revolúciu v používaní webov.

PageSpeed ​​Insights

Certifikát Výkon FCP LCP Speed ​​Index
ECC 94 (desktop) 0.7s 1.1s 0.7s
ECC 94 (mobil) 1.1s 6s 1.1s
RSA 93 (desktop) 0.4s 1.1s 0.4s
RSA 94 (mobil) 1.0s 5.4s 1.0s

GTM – server Frankfurt Germany

Nastavenia: Apple iPhone 6/6S/7/8/SE (2nd/3rd Gen) LTE (15/10 Mbps. 100ms)

Certifikát Výkon FCP LCP Speed ​​Index SSL (waterfall)
ECC A – 96 % 860ms 1.2s 1.1s 123ms
RSA A – 96 % 997ms 1.2s 1.1s 126ms

Nastavenia: Apple iPhone 6/6S/7/8/SE (2nd/3rd Gen) 3G (1.6 Mbps/768 Kbps 200ms)

Certifikát Výkon FCP LCP Speed ​​Index SSL (waterfall)
ECC B – 76 % 1.5s 2.7s 2.3s 241ms
RSA B – 76 % 1.5s 2.7s 2.3s 245ms

Nastavenia: Desktop Chrome Unthrottled Connection

Certifikát Výkon FCP LCP Speed ​​Index SSL (waterfall)
ECC A – 99 % perf 376ms 471ms 452ms 24ms
RSA A – 97 % 674ms 985ms 756ms 22ms

Výsledky protokolu HTTP/2 opäť svedčia o rýchlosti, ale tu sa už začína prejavovať prínos ECC certifikátu na svižnosti načítania. V poslednom prípade neobmedzenej rýchlosti siete bol čas načítania webov polovičný, čo možno prisudzovať kombinácii HTTP/2 protokolu a ECC certifikátu.

Protokol HTTP/3

Tretia generácia HTTP protokolu je stále veľmi mladá a presadzuje sa pomaly. Implementácie na hlavné webové servery prebiehajú zhruba tri roky: Apache túto verziu podporuje od verzie 2.4.51 a Microsoft vo Windows Server 2022 a IIS 10.0. HTTP/3 neprináša oproti predchodcovi takú revolúciu, ako HTTP/2 vo svojej dobe, ale je ešte rýchlejší a bezpečnejší ako HTTP/2.

Oba protokoly sú veľmi podobné, ale medzi hlavné rozdiely patrí fakt, že HTTP/3 nepoužíva TCP protokol. Využíva nový QUIC (Quick UDP Internet Connections), ktorý je založený na UDP. Z pohľadu šifrovania HTTP/3 integruje TLS 1.3 priamo do protokolu a vie šifrované spojenie so serverom nadviazať ešte rýchlejšie. Pri HTTP/2 nebolo šifrovanie spojenia striktne povinné, ale všetky implementácie protokolu v prehliadačoch šifrovanie striktne používali.

PageSpeed ​​Insights

Certifikát Výkon FCP LCP Speed ​​Index
ECC 93 (desktop) 0.6s 1.1s 0.6s
ECC 89 (mobil) 1.5s 3.6s 1.6s
RSA 98 (desktop) 0.7s 1s 0.7s
RSA 77 (mobil) 1.1s 5.9s 1.1s

GTM – server Frankfurt Germany

Nastavenia: Apple iPhone 6/6S/7/8/SE (2nd/3rd Gen) LTE (15/10 Mbps. 100ms)

Certifikát Výkon FCP LCP Speed ​​Index SSL (waterfall)
ECC A – 92 % 818ms 1.7s 1.3s 122ms
RSA A – 94 % 1s 1.3s 1.3s 134ms

Nastavenia: Apple iPhone 6/6S/7/8/SE (2nd/3rd Gen) 3G (1.6 Mbps/768 Kbps 200ms)

Certifikát Výkon FCP LCP Speed ​​Index SSL (waterfall)
ECC C – 66 % 1.4s 5.4s 2.9s 239ms
RSA C – 65 % 1.4s 5.7s 3.2s 246ms

Nastavenia: Desktop Chrome Unthrottled Connection

Certifikát Výkon FCP LCP Speed ​​Index SSL (waterfall)
ECC A – 99 % 339ms 532ms 431ms 21ms
RSA A – 99 % 394ms 551ms 487ms 22ms

Pri prvom meraní cez PageSpeed ​​Insights sú výsledky nejasné, avšak užívateľ by videl celý web vykreslený skôr (menšia hodnota LCP). Rozdielnosť výsledkov môže byť daná aj metodikou merania, pretože Google neumožňuje zvoliť napevno parametre testu a tie občas kolíšu. Ďalšie výsledky sú prakticky rovnaké.

Závery testu

Čo z celého testu vyplýva? Stále platí, že najdôležitejšia je rýchlosť siete - to nie je nič prekvapujúce. Platí to pre server aj návštevníka. Pri bežnej práci doma či v kancelárii nemáme obvykle s rýchlosťou internetu problém a stránky sa načítajú bleskovo. Treba však myslieť aj na situácie, v ktorých je rýchlosť webu obmedzená, čo sa stáva typicky pri surfovaní na smartfóne s využitím mobilnej siete. Pamätajte teda na optimalizáciu webových stránok pre mobilné zariadenia a podporte ich použitím protokolu HTTP/2. Pokiaľ chcete mať rýchly web, umiestnite ho na dobrý hosting s podporou moderného HTTP/2, akým je Slovakia.com, alebo využite vlastný server od ZonerCloud.

Výsledky testu ukazujú, že z pohľadu rýchlosti webu na algoritme kľúča certifikátu nezáleží, ale ECC kľúče sú kratšie a ušetria serveru námahu pri šifrovaní. RSA je dnes už na konci života, pretože sa rýchlo blížia kvantovo-odolné algoritmy (PQC). Som presvedčený o tom, že v nasledujúcich niekoľkých rokoch začne RSA na serveroch ustupovať ustupovať moderným algoritmom. Všeobecne neexistuje dôvod, prečo nepoužívať ECC certifikáty namiesto starého RSA. Ak chcete mať paranoidnú úroveň kompatibility, môžete použiť duálnu konfiguráciu webového servera. Ten použije preferovaný certifikát ako hlavný. Ak by si s ním prehliadač návštevníka nerozumel, má k dispozícii certifikát s kompatibilným algoritmom.

Rýchlosť webu s RSA alebo ECC certifikátom sa prakticky nelíši. Web s ECC certifikátom sa načítal väčšinou rýchlejšie ako web s RSA certifikátom. To však nie je nutné preceňovať - ​​rozdiel v rýchlosti načítania webu s použitím RSA alebo ECC certifikátu je minimálny (jednotky percent), často menej ako chyba merania. Prínos ECC certifikátu je poznať najmä v prípade, že máte pomalšie dátové pripojenie a využívate protokol HTTP/2.

Protokol HTTP/2 a novší sú dôležité pre užívateľov s pomalšou odozvou a sieťou, teda typicky pre smartfóny využívajúce 3G/4G/LTE sieť. Je to vďaka spomínanému agregovaniu načítanie viacerých prvkov do jedného; pri HTTP/1.1 sa načítajú všetky prvky zvlášť a vďaka pomalšej sieti to o to viac trvá. Ak stránku načítate na počítači s dnes bežným internetovým pripojením, pravdepodobne rozdiel medzi protokolmi nespoznáte (ak stránka nemá napríklad veľké množstvo obrázkov).

Z pohľadu bezpečnosti jednoznačne odporúčam novšie HTTP protokoly, pretože šifrovanie je priamo integrované do HTTP/2 a HTTP/3 protokolu, čo je skvelá správa. Bez HTTPS protokoly fungovať nebudú, spojenie musí byť vždy šifrované.