Defaults.Exposed

Defaults.ExposedKorjaukset › HSTS (Strict-Transport-Security)

Kuinka korjata HSTS (Strict-Transport-Security)

HSTS on yksirivi ohje, jonka verkkosivustosi antaa jokaiselle selaimelle: 'tule aina takaisin luokseni turvallisen, salatun yhteyden kautta – älä koskaan turvattoman.' Ilman sitä lukkosi voidaan hiljaa poistaa jaetussa WiFissä, ja aivan ensimmäinen sivustovierailusi on alttiina.

Lyhyesti liiketoiminnallesi: HTTPS:n (lukon) olemassaolo ei ole sama asia kuin sen pakottaminen. Ilman HSTS:ää hyökkääjä samassa WiFissä kuin asiakkaasi voi hiljaa alentaa yhteyden tavalliseen, salaamattomaan HTTP:hen – kaapaten kirjautumiset, korttitiedot ja lomaketiedot samalla kun asiakas ei näe mitään vikaa. SSL-sertifikaattisi, josta saatat maksaa, ohitetaan. Korjaus on ilmainen ja vie noin 15 minuuttia verkkosivustoasi hallinnoivalle.

Mitä tämä voi maksaa sinulle

Miksi tällä on merkitystä. HTTPS suojaa yhteyden kun se on salattu – mutta se ei pakota selaimia käyttämään sitä. Hyökkääjät hyödyntävät tätä aukkoa 'SSL-strippingillä': missä tahansa jaetussa verkossa he hiljaa pitävät kävijän turvattomassa HTTP:ssä, lukien kaiken. HSTS kertoo selaimelle kieltäytymään pelkästä HTTP:stä kokonaan verkkotunnuksellesi pitkäksi aikaa, joten aukko sulkeutuu ensimmäisen vierailun jälkeen. Se on yksittäinen vastausotsikko, ilmainen lisätä, ja pisteytyksessämme se on todellisten pisteiden arvoinen, koska puuttuva tai liian lyhyt arvo altistaa jokaisen kävijän julkisessa WiFissä.

Mitä tämä on selkokielellä

Sinulla on lähes varmasti HTTPS – pieni lukko selaimen osoitepalkissa. Hyvä. Mutta tässä on osa, josta lähes kukaan ei kerro: HTTPS:n olemassaolo ei ole sama asia kuin sen pakottaminen.

HTTPS tekee yhteyden salatuksi kun selain päättää käyttää sitä. HSTS – lyhenne sanoista HTTP Strict Transport Security – on ohje, joka pakottaa selaimen aina käyttämään sitä. Se on yksittäinen, näkymätön rivi, jonka verkkosivustosi lähettää jokaiselle kävijälle, joka sanoo käytännössä:

“Tästä eteenpäin, verkkotunnukselleni, yhdistä aina minuun vain turvallisen yhteyden kautta. Ei koskaan turvattoman. Älä edes yritä.”

Selain muistaa sen ja tottelee niin kauan kuin kerrot sille – tyypillisesti vuoden. Ensimmäisen turvallisen vierailun jälkeen heidän selaimensa yksinkertaisesti kieltäytyy lataamasta sivustoasi tavallisen, salaamattoman HTTP:n kautta, vaikka jokin yrittäisi pakottaa siihen.

Ilman HSTS:ää tuo “käytä aina turvallista versiota” -sääntö ei ole olemassa – ja hyökkääjät tietävät tarkalleen, miten hyödyntää aukkoa.

Mitä tämä voi maksaa yrityksellesi

Nämä ovat realistisia, arkipäiväisiä skenaarioita. Emme nimeä oikeita yrityksiä; nämä ovat havainnollistuksia siitä, miten aukkoa käytetään.

  1. Kahvilan kassaprosessi. Asiakas avaa kauppasi kahvilan WiFissä ja lähtee kassalle. Hyökkääjä samassa verkossa ajaa ilmaista, tunnettua työkalua, joka pitää asiakkaan tavallisessa HTTP:ssä HTTPS:n sijaan. Asiakas näkee tavallisen näköisen sivustosi – ei varoitusta, ei rikkinäistä lukkoa kohdassa, johon he katsoisivat – ja kirjoittaa korttitietonsa. Hyökkääjä lukee jokaisen näppäinpainalluksen. SSL-sertifikaattisi ei tehnyt mitään, koska yhteyttä ei koskaan annettu tulla turvalliseksi.

  2. Matkustava työntekijä. Henkilöstön jäsen kirjautuu hallintapaneeliisi tai verkkosähköpostiisi hotellista tai lentokentältä. Sama alennus kaappaa heidän käyttäjätunnuksensa ja salasanansa. Nyt hyökkääjällä on pääsy yritykseesi – ei siksi, että salasanakäytäntösi oli heikko, vaan koska kirjautumissivu oli saavutettavissa turvattomassa HTTP:ssä.

  3. Pysähtyneeseen sopimus. Suurempi asiakas lähettää sinulle vakiotietoturvakyselylomakkeen ennen allekirjoittamista. Yksi rivi kysyy: “Pakottaako verkkosivustosi HTTPS:n HSTS:n kautta?” IT-yhteyshenkilösi joutuu vastaamaan “ei”, ja hankintaprosessi pysähtyy, kun sinä kiirehdät korjaamaan ilmaista, 15 minuutin asetusta, joka nyt näyttää punaiselta lipulta ostajan edessä.

  4. Kyberturvallisuusvakuutus tai vaatimustenmukaisuustarkistus. Vakuuttajan skannaus tai tietosuojatarkastus merkitsee puuttuvan otsikon. Henkilötietojen salaus on nimenomainen odotus tietosuojasääntöjen mukaan (GDPR artikla 32), ja “meillä on sertifikaatti mutta emme pakota sitä” on heikko asema.

  5. Väärä turvallisuuden tunne. Maksat SSL:stä, lukko näkyy, ja kaikki olettavat sivuston olevan turvallinen. Se pääosin on – kunnes asiakas on jaetussa verkossa, mikä on täsmälleen silloin, kun he ovat haavoittuvaisimpia eivätkä todennäköisimmin huomaa mitään vikaa.

Punainen lanka: kustannus ei ole abstrakti. Se on todellisen asiakkaan kortti tai kirjautuminen, kaapattu pahimpaan mahdolliseen hetkeen, ilman minkäänlaista hälytystä.

Mitä se oikeasti on

Kun selain pyytää verkkosivustoltasi sivua, palvelimesi lähettää takaisin sivun sekä joitakin näkymättömiä “otsikoita” – ylimääräisiä ohjeita, jotka selain lukee, mutta kävijä ei koskaan näe. HSTS on yksi näistä otsikoista:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Kolme osaa on tärkeää:

Miksi “ensimmäinen vierailu” merkitsee

HSTS:ssä on yksi luontainen rajoitus: selain tottelee sääntöä vasta sen jälkeen kun se on nähnyt otsikon vähintään kerran. Joten täysin uuden kävijän ensimmäinen yhteys on silti pieni altistumisen ikkuna. Kaksi asiaa kaventaa sitä: HTTP-to-HTTPS-uudelleenohjaus (joka saa heidät nopeasti turvalliseen versioon) ja preload (joka poistaa ikkunan kokonaan). Siksi täydellinen asetus yhdistää HSTS:n ja asianmukaisen uudelleenohjauksen.

Miltä “hyvä” näyttää – ja kuinka se pisteytyy

Tarkistuksemme lukee live-otsikkosi ja arvioi max-agen:

max-age-arvoMitä se tarkoittaaTulos
1 vuosi tai enemmän (≥ 31536000)Erinomainen – suositeltu asetusTäydet pisteet
6 kuukautta tai enemmän (≥ 15768000)Hyvä, mutta ei täysi vuosiOsittainen
1 päivä tai enemmän (≥ 86400)Heikko – liian lyhyt ollakseen luotettavaAlhainen / osittainen
Alle 1 päivä tai ei otsikkoa lainkaanKäytännössä ei suojaaEpäonnistuminen (korkea vakavuus)

Joten otsikko, joka on olemassa mutta on asetettu muutamiin minuutteihin, käsitellään epäonnistumisena – se näyttää konfiguroidulta, mutta ei tee työtänsä. Tähtää vuoteen. Tarkistus myös huomioi, onko includeSubDomains ja preload läsnä.

Korjausohje (ilmainen, n. 15 minuuttia)

Anna tämä osio verkkosivustoasi hallinnoivalle – IT-henkilöllesi, webkehittäjällesi tai hosting-tuelle. Korjaus on ilmainen. Se on yksittäinen otsikko tai vaihtoehto hosting-alustassasi. Ei mitään ostettavaa.

Yksi tärkeä järjestysohjaus ensin: HSTS on tahmea – kun se on käytössä, selaimet kieltäytyvät tavallisesta HTTP:stä verkkotunnuksellesi koko max-age-ajan. Joten vahvista HTTPS:n toimivan oikein pääsivustollasi ja jokaisessa aliverkkotunnuksessa ennen kuin otat sen laajasti käyttöön. Turvallinen polku on: testaa lyhyellä arvolla → vahvista, ettei mikään rikkoudu → nosta vuoteen.

Vaihe 1 – Varmista, että HTTPS jo toimii kaikkialla

Vieraile sivustollasi ja avainaliverkkotunnuksissasi https://:n kautta ja vahvista niiden latautuvan siististi kelvollisella sertifikaatilla. Vahvista myös, että pelkkä http://-pyyntö ohjaa https://:ään. (Jos se ei ohjaa, korjaa HTTP-to-HTTPS-uudelleenohjaus ensin – HSTS olettaa sen olevan paikallaan.)

Vaihe 2 – Lisää otsikko (valitse alustasi)

Cloudflare (tai vastaava CDN): Tämä on helpoin. Siirry kohtaan SSL/TLS → Reunasertifikaatit → HTTP Strict Transport Security (HSTS) ja ota se käyttöön. Aseta Max-Age 6 tai 12 kuukauteen, ja ota käyttöön “Apply HSTS policy to subdomains”, kun olet varma, että kaikki aliverkkotunnukset ovat HTTPS:ssä.

Nginx: lisää HTTPS server-lohkosi sisälle:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Apache: varmista, että mod_headers on käytössä, sitten lisää HTTPS-virtuaali-isäntäsi:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Microsoft IIS: lisää web.config:iin <customHeaders>:n sisälle:

<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />

Google Workspace / Microsoft 365 -huomio: nämä tehostavat sähköpostiasi, ei verkkosivustohostingiasi – HSTS asetetaan missä tahansa julkinen verkkosivustosi todella sijaitsee (CDN:ssäsi, verkkopalvelimessasi tai sivustonrakentajassasi), ei Workspacen/365:n hallinnassa. Jos sivustosi on rakentajalla kuten Squarespace, Wix tai Shopify, HSTS hoidetaan yleensä puolestasi; tarkista heidän SSL/tietoturva-asetuksistaan, jos tarkistuksemme merkitsee ongelman.

Vaihe 3 – Testaa pienesti, sitten sitoudu

Aloita max-age=300 (5 minuuttia). Vahvista, että sivusto latautuu edelleen täydellisesti kaikkialla. Sitten nosta se max-age=31536000:een (yksi vuosi). Se on täysien pisteiden asetus.

Vaihe 4 (valinnainen, kultainen standardi) – preload

Kun olet varma ja olet ajanut vuoden otsikkoa includeSubDomainsin kanssa jonkin aikaa, voit lähettää verkkotunnuksesi osoitteessa hstspreload.org sisällytettäväksi selaimiin. Tämä sulkee ensimmäisen vierailun ikkunan kokonaan. Käsittele sitä tietoisena sitoutumisena – verkkotunnuksen poistaminen listalta on hidasta.

Yleisimmät virheet

UKK

Meillä on jo HTTPS ja lukko näkyy. Eikö se riitä?

Ei – ja tämä on yksittäisesti yleisin väärinkäsitys. Lukko tarkoittaa, että yhteys VOI olla salattu; se ei pakota selaimia käyttämään salattua versiota. Ilman HSTS:ää hyökkääjä samassa verkossa voi pitää kävijän tavallisessa HTTP:ssä (kutsutaan SSL-strippingiksi) ja lukea kaiken, mitä he kirjoittavat, samalla kun asiakas näkee normaalin näköisen sivuston. HSTS on ohje, joka tekee 'vain salattu' pakolliseksi. HTTPS ilman HSTS:ää on lukittu ovi, jota ei ole oikeasti salvattuna.

Onko tämä kallis tai riskialtis ottaa käyttöön?

Korjaus itsessään on ilmainen – se on yksi rivi verkkopalvelimessasi tai vaihtoehto CDN:ssäsi – ja vie noin 15 minuuttia. Yksi todellinen varotoimenpide: HSTS on tahmeaa. Kun selain näkee sen, se kieltäytyy tavallisesta HTTP:stä verkkotunnuksellesi niin kauan kuin määritit. Joten sinun on varmistettava, että HTTPS toimii pääsivustollasi JA jokaisessa aliverkkotunnuksessa ennen kuin otat sen laajasti käyttöön. Aloita lyhyellä testiarvo, vahvista, ettei mikään rikkoudu, sitten nosta se vuoteen. Tässä järjestyksessä tehtynä riski on merkityksetön.

Miltä 'hyvä' näyttää?

max-age vähintään yksi vuosi (31536000 sekuntia). Tarkistuksemme antaa täydet pisteet vuodessa tai enemmän, osittaiset pisteet kuudessa kuukaudessa, heikot/osittaiset yhdessä päivässä, ja pitää alle päivän käytännössä poissaolevana. Vahvin asetus lisää myös includeSubDomains-parametrin (kattaa kauppa.sivustosi.fi, sovellus.sivustosi.fi jne.) ja preload-parametrin (sisällyttää suojan selaimiin niin, että jopa ensimmäinen vierailu on turvallinen).

Mitä 'preload' on ja tarvitsemmeko sen?

HSTS suojaa kävijää vasta SEN JÄLKEEN, kun heidän selaimensa on nähnyt otsikon vähintään kerran – joten täysin uuden kävijän ensimmäinen pyyntö on silti pieni ikkunallinen altistumista. Chrome-, Firefox-, Safari- ja Edge-selaimiin sisäänrakennettu HSTS preload -lista sulkee ikkunan toimittamalla verkkotunnuksesi selaimille etukäteen. Se on valinnainen ja hieman suurempi sitoumus (poistaminen on hidasta), mutta se on kultainen standardi. Useimmille pienille yrityksille vuoden max-age includeSubDomainsin kanssa on jo vahva, turvallinen tulos; preload on lisäaskel kun olet vakiintunut.

Olemme Squarespacessa / Wixissä / Shopifyssa – tarvitsemmeko edes tehdä mitään?

Useimmat täysin isännöidyt sivustonrakentajat (Squarespace, Wix, Shopify ja vastaavat) pakottavat HTTPS:n ja asettavat usein HSTS:n automaattisesti puolestasi – joten saatat jo läpäistä ilman mitään tekemistä. Poikkeus on kun käytät mukautettua verkkotunnusta tai CDN:ää sivustosi edessä; sitten asetus voi lipsua. Suorita tarkistus: jos se läpäisee, olet valmis. Jos se merkitsee ongelman, korjaus on vaihtoehto alustasi SSL/tietoturva-asetuksissa tai yksi rivi CDN:ssäsi.

Jos emme korjaa tätä, laskeeko se arviotamme?

Kyllä. HSTS on pisteytetty verkkotietoturvan tarkistus, ei tiedoksi annettava – puuttuva tai liian lyhyt otsikko maksaa pisteitä ja luokitellaan korkean vakavuuden puutteena, koska se altistaa suoraan kävijäsi datan jaetuissa verkoissa. Se on myös yksi halvimmista pisteistä palauttaa: yksittäinen ilmainen otsikko, noin 15 minuuttia työtä.