Mikä on HPKP?

HPKP on vanhentunut verkkosuojausvastausotsikko, lyhenne sanoista HTTP Public Key Pins. Sen tarkoituksena oli estää vaarantunutta tai petollista varmentajaa myöntämästä julkisesti luotettua, mutta hakkereiden hallitsemaa HTTPS-varmennetta verkkosivustolle. Tässä skenaariossa hakkerit pystyisivät purkamaan kaapatun HTTPS-liikenteen salauksen kyseiselle verkkosivustolle.

Vihje: Web-vastausten otsikot ovat metatietoja, jotka palvelin sisällyttää vastaaessaan pyyntöihin. Pientä osajoukkoa näistä kutsutaan suojausotsikoiksi, koska ne mahdollistavat ja konfiguroivat erilaisia ​​suojausominaisuuksia.

HTTPS-sertifikaattiinfrastruktuuri

Varmenneinfrastruktuuri, jolle HTTPS on rakennettu, perustuu luottamusverkkoon. Useat yritykset toimivat sertifikaatin myöntäjinä (CA), jotka julkaisevat yhden tai useamman juurivarmenteen. Joukko juurivarmenteita sisältyy kaikkiin luotettavuussäilön laitteisiin. Kun verkkosivusto pyytää CA: lta omaa HTTPS-varmennetta, varmenne allekirjoitetaan juurivarmenteella. Kun tietokoneesi näkee HTTPS-varmenteen, se tarkistaa allekirjoituksen. Jos varmenteen on allekirjoittanut juurisertifikaatti, johon se luottaa, tietokoneesi luottaa myös HTTPS-varmenteeseen.

Vihje: Varmentajalla voi olla myös juurivarmenteen allekirjoittamia välivarmenteita. Näitä välivarmenteita voidaan käyttää myös verkkosivustojen HTTPS-sertifikaattien allekirjoittamiseen.

Varmenneviranomaisen tehtävänä on myöntää varmenne vasta, kun he ovat varmistaneet, että sitä pyytävä henkilö on verkkosivuston todellinen omistaja. Tämän rakenteen ideana on, että jos hakkeri luo oman varmenteensa verkkosivustolle, sitä ei allekirjoita varmentaja, johon tietokoneesi luottaa, joten näet varoituksen.

Mitä HPKP teki?

Koko varmennejärjestelmä luottaa varmenneviranomaisten luotettavuuteen. Alun perin ei kuitenkaan ollut suojaa varmentajan joutumiselta hakkereilta tai huijaamiselta ja virheellisten sertifikaattien myöntämiseen.

HPKP on suunniteltu suojaamaan tätä mahdollisuutta vastaan. Sen avulla verkkosivustot voivat määrittää ainutlaatuisen luettelon varmenteista, jotka voidaan luottaa verkkosivustolle kiinnitysprosessissa. Pää- tai välivarmenteen kiinnittäminen oli mahdollista, jolloin yksi CA pystyi myöntämään varmenteita verkkosivustolle. Oli myös mahdollista kiinnittää itse sivuston varmenne, mikä esti edes oikeaa CA: ta myöntämästä toista voimassa olevaa varmennetta.

Teknisesti varmennetta ei kiinnitetä, vaan varmenteen avaimen tiiviste. Hash on yksisuuntainen salaustoiminto. Tämä tarkoittaa, että on mahdollista varmistaa, että verkkosivuston selaimelle esittämä varmenne vastaa kiinnitettyä varmennetta, mutta tiivistettä ei voida käyttää kelvollisen varmenteen tekemiseen.

HPKP vaati vähintään kahden avaimen kiinnittämistä, joista vähintään yhden on oltava varmuuskopio eikä nykyisessä varmenneketjussa. Tämän varmuuskopion avulla voit määrittää sujuvan vaihdon uudelle varmenteelle, joka ei estä käyttäjiä muodostamasta yhteyttä.

Jos verkkosivuston selaimelle esittämä HTTPS-varmenne ei vastaa jotakin kiinnitetyistä varmenteita, selaimen on hylättävä se ja estettävä käyttäjää ohittamasta varmennetta virheviesti.

HPKP: n rakenne

HPKP-otsikossa on kolme pakollista osaa ja kaksi valinnaista osaa. Otsikon otsikon on oltava "Public-Key-Pins", kahdessa tai useammassa seuraavassa varmenteessa on oltava base64-koodattu SHA256-tiiviste, joka on kiinnitetty muotoon pin-sha256=.”’. Viimeinen pakollinen osa on "enimmäisikä", joka ilmaisee sekunteina, kuinka kauan selaimen tulee soveltaa rajoituksia.

Vinkki: SHA256 on HPKP: n käyttämä hajautusalgoritmi. Base64 on merkistö, jossa on 64 merkkiä: 0-9, a-z, A-Z ja erikoismerkit “+” ja “/”. “=”-merkkiä käytetään tarvittaessa täyttämään kaksi viimeistä merkkiä.

Valinnaiset asetukset ovat "includeSubDomains" ja "report-uri". "includeSubDomains ohjeistaa selainta käyttämään HPKP-suojauksia mihin tahansa nykyisen verkkosivuston aliverkkotunnukseen "max-age" -ajastimen ajan. "report-uri" on ominaisuus, jonka avulla voidaan määrittää verkkosivusto, jolle voidaan lähettää virheraportteja, ja se on suunniteltu auttamaan ongelmien tunnistamisessa ja ratkaisemisessa.

On olemassa toinen versio otsikosta nimeltä "Public-Key-Pins-Report-Only". Kaikki on ennallaan, mutta jos virhe löytyy, ei ryhdytä mihinkään muuhun kuin virheilmoituksen palauttamiseen selaimeen ja "raportti-uriin", jos sellainen on määritetty. Vain raportti -versio on suunniteltu mahdollistamaan otsikon täysimittainen testaus ennen käyttöönottoa, jolloin virheet eivät aiheuta ongelmia käyttäjille.

HPKP: n ongelmat

HPKP poistettiin käytöstä kahdesta syystä. Oli kaksi tapaa, joilla otsikko saattoi aiheuttaa vakavia ongelmia sitä käyttävälle verkkosivustolle, nämä nimettiin HPKP Suicide ja Ransom PKP.

HPKP Suicide on ongelma, jossa verkkosivuston lailliset omistajat menettävät pääsyn kaikkiin kiinnitettyihin avaimiin. Tämä voi tapahtua vahingossa tapahtuvan poistamisen, hakkeroinnin, virusten, tietojen vioittumisen tai monista muista syistä. Koska HPKP: n toteuttaminen oikein ja varsinkin varmenteiden kiertojen aikana ajan tasalla pitäminen on monimutkainen, konfigurointivirheen tekeminen on suhteellisen helppoa. HPKP: n kanssa kuitenkin, jos teet asiat väärin, kaikkia verkkosivustosi viimeaikaisia ​​vierailijoita estetään pääsemästä verkkosivustollesi "enimmäisikä"-ajastimen ajan. Sivusto smashingmagazine.com julkaisi artikla yksityiskohtaisesti kokemuksensa juuri tästä ongelmasta, joka pohjimmiltaan vei sivuston offline-tilaan useimmilta vierailijoilta neljäksi päiväksi ennen kuin korjaus otettiin käyttöön.

Ransom PKP on teoreettinen hyökkäys, jossa hakkeri pääsee verkkopalvelimelle, varastaa sitten kaikki luotettavat sertifikaatit ja avaimet ja vaatii sitten lunnaita niiden palauttamisesta. Normaalissa asennuksessa voit luoda uusia avaimia ja varmenteita ja saada verkkosivuston takaisin toimimaan alle tunnissa. Kun HPKP on käytössä, nämä avaimet kuitenkin kiinnitetään. Jos et voi toimittaa kiinnitettyä varmennetta käyttäjille, he eivät voi käyttää verkkosivustoa "max-age" -ajastimen aikana. Tämän ongelman ratkaiseminen saattaa olla mahdotonta määrityksistä ja varmuuskopioiden olemassaolosta riippuen.

Molemmilla ongelmilla uudet käyttäjät pääsisivät verkkosivustolle normaalisti eivät ole koskaan nähneet vanhaa HPKP-otsikkoa käskevän selainta luottamaan vain kadonneeseen todistukset. Kaikki viimeaikaiset vierailijat, kuten kanta-asiakkaat ja lukijat, joutuisivat kuitenkin odottamaan koko "max-age" -ajastimen keston.

Kun otetaan huomioon näiden ongelmien vakavuus ja konfiguroinnin ja ylläpidon monimutkaisuus, HPKP-otsikon käyttö oli erittäin vähäistä. Lopulta suuret selaimet suostuivat lopettamaan tuen sille kokonaan, ja muutaman vuoden sisällä HPKP-otsikko poistettiin yleisesti.