Defaults.Exposed

Defaults.ExposedΔιορθώσεις › HSTS (Strict-Transport-Security)

Πώς να διορθώσετε HSTS (Strict-Transport-Security)

Το HSTS είναι μια οδηγία μιας γραμμής που ο ιστότοπός σας δίνει σε κάθε πρόγραμμα περιήγησης: 'επίστρεψε πάντα σε εμένα μέσω της ασφαλούς, κρυπτογραφημένης σύνδεσης — ποτέ μέσω της ανασφαλούς.' Χωρίς αυτό, το λουκέτο σας μπορεί να αφαιρεθεί αθόρυβα σε κοινόχρηστο WiFi, και η πρώτη επίσκεψη στον ιστότοπό σας μένει εκτεθειμένη.

Ουσία για την επιχείρησή σας: Το να έχετε HTTPS (το λουκέτο) δεν είναι το ίδιο με το να το επιβάλλετε. Χωρίς HSTS, ένας εισβολέας στο ίδιο WiFi με τον πελάτη σας μπορεί να υποβαθμίσει αθόρυβα τη σύνδεση σε απλό, μη κρυπτογραφημένο HTTP — καταγράφοντας συνδέσεις, στοιχεία κάρτας και δεδομένα φόρμας ενώ ο πελάτης δεν βλέπει τίποτα λάθος. Το πιστοποιητικό SSL σας, που μπορεί να πληρώνετε, παρακάμπτεται. Η διόρθωση είναι δωρεάν και χρειάζεται περίπου 15 λεπτά.

Τι μπορεί να σας κοστίσει αυτό

Γιατί έχει σημασία. Το HTTPS προστατεύει μια σύνδεση μόλις κρυπτογραφηθεί — αλλά δεν αναγκάζει τα προγράμματα περιήγησης να το χρησιμοποιούν. Οι εισβολείς εκμεταλλεύονται αυτό το κενό με 'SSL stripping': σε οποιοδήποτε κοινόχρηστο δίκτυο κρατούν αθόρυβα τον επισκέπτη σε ανασφαλές HTTP, διαβάζοντας τα πάντα. Το HSTS λέει στο πρόγραμμα περιήγησης να αρνηθεί εντελώς απλό HTTP για το domain σας, για μεγάλο χρονικό διάστημα, ώστε το κενό να κλείσει μετά την πρώτη επίσκεψη. Είναι μια απλή header απόκρισης, δωρεάν να προστεθεί, και στη βαθμολογία μας αξίζει πραγματικούς βαθμούς επειδή μια ελλείπουσα ή πολύ σύντομη τιμή αφήνει κάθε επισκέπτη σε δημόσιο WiFi εκτεθειμένο.

Με απλά λόγια

Σχεδόν σίγουρα έχετε HTTPS — το μικρό λουκέτο στη γραμμή του προγράμματος περιήγησης. Καλά. Αλλά εδώ είναι το μέρος που σχεδόν κανείς δεν αναφέρει: το να έχετε HTTPS δεν είναι το ίδιο με το να το αναγκάζετε.

Το HTTPS κάνει μια σύνδεση κρυπτογραφημένη μόλις το πρόγραμμα περιήγησης αποφασίσει να το χρησιμοποιήσει. Το HSTS — συντομογραφία για HTTP Strict Transport Security — είναι η οδηγία που κάνει το πρόγραμμα περιήγησης πάντα να το χρησιμοποιεί. Είναι μια μόνο, αόρατη γραμμή που ο ιστότοπός σας στέλνει σε κάθε επισκέπτη που λέει, ουσιαστικά:

«Από τώρα και στο εξής, για το domain μου, μίλα μαζί μου μόνο μέσω ασφαλούς σύνδεσης. Ποτέ ανασφαλή. Μην το καν δοκιμάσεις.»

Το πρόγραμμα περιήγησης το θυμάται και το υπακούει για όσο χρόνο του πείτε — συνήθως ένα χρόνο. Μετά την πρώτη ασφαλή επίσκεψη του επισκέπτη, το πρόγραμμα περιήγησής του απλώς θα αρνείται να φορτώσει τον ιστότοπό σας μέσω απλού, μη κρυπτογραφημένου HTTP, ακόμα και αν κάτι προσπαθεί να το αναγκάσει.

Χωρίς HSTS, αυτός ο κανόνας «χρησιμοποιείτε πάντα την ασφαλή έκδοση» δεν υπάρχει — και οι εισβολείς γνωρίζουν ακριβώς πώς να εκμεταλλευτούν το κενό.

Τι μπορεί να σας κοστίσει

  1. Το checkout στο καφενείο. Ένας πελάτης ανοίγει το κατάστημά σας σε WiFi καφέ και πηγαίνει να κάνει checkout. Ένας εισβολέας στο ίδιο δίκτυο εκτελεί ένα δωρεάν, γνωστό εργαλείο που κρατά τον πελάτη σε απλό HTTP αντί HTTPS. Ο πελάτης βλέπει αυτό που μοιάζει με κανονικό ιστότοπό σας — καμία προειδοποίηση, κανένα σπασμένο λουκέτο — και πληκτρολογεί τα στοιχεία κάρτας. Ο εισβολέας διαβάζει κάθε πλήκτρο. Το πιστοποιητικό SSL δεν έκανε τίποτα, επειδή η σύνδεση δεν επιτράπηκε ποτέ να γίνει ασφαλής.

  2. Ο υπάλληλος σε ταξίδι. Μέλος προσωπικού συνδέεται στον πίνακα διαχείρισης ή webmail σας από ξενοδοχείο ή αεροδρόμιο. Το ίδιο κόλπο υποβάθμισης καταγράφει το όνομα χρήστη και τον κωδικό. Τώρα ο εισβολέας έχει πρόσβαση στην επιχείρησή σας — όχι επειδή η πολιτική κωδικών σας ήταν αδύναμη, αλλά επειδή η σελίδα σύνδεσης ήταν προσβάσιμη μέσω ανασφαλούς HTTP.

  3. Η συμφωνία που σταματά. Ένας μεγαλύτερος πελάτης σάς στέλνει το τυπικό ερωτηματολόγιο ασφαλείας πριν υπογράψει. Μια γραμμή ρωτά: «Επιβάλλει ο ιστότοπός σας HTTPS μέσω HSTS;» Η επαφή σας στο ΙΤ πρέπει να απαντήσει «όχι», και η διαδικασία προμηθειών σταματά ενώ βιάζεστε να διορθώσετε μια δωρεάν, 15λεπτη ρύθμιση που τώρα φαίνεται σαν κόκκινη σημαία μπροστά σε αγοραστή.

  4. Η ψεύτικη αίσθηση ασφάλειας. Πληρώνετε για SSL, το λουκέτο φαίνεται, και όλοι υποθέτουν ότι ο ιστότοπος είναι ασφαλής. Κυρίως είναι — μέχρι ένας πελάτης να βρίσκεται σε κοινόχρηστο δίκτυο, που είναι ακριβώς όταν είναι πιο ευάλωτος.

Τι είναι στην πραγματικότητα

Το HSTS είναι μια αόρατη header απόκρισης που ο διακομιστής σας στέλνει:

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

Τρία μέρη έχουν σημασία:

Πώς βαθμολογείται

Τιμή max-ageΤι σημαίνειΑποτέλεσμα
1 χρόνος ή περισσότερο (≥ 31536000)Εξαιρετικό — η συνιστώμενη ρύθμισηΠλήρεις βαθμοί
6 μήνες ή περισσότερο (≥ 15768000)Καλό, αλλά όχι ο πλήρης χρόνοςΜερικοί
1 ημέρα ή περισσότερο (≥ 86400)Αδύνατο — πολύ σύντομο για αξιοπιστίαΧαμηλό / μερικό
Κάτω από 1 ημέρα, ή καθόλου headerΟυσιαστικά καμία προστασίαΑποτυχία (υψηλής σοβαρότητας)

Πώς να το διορθώσετε (δωρεάν, ~15 λεπτά)

Δώστε αυτή την ενότητα σε όποιον εκτελεί τον ιστότοπό σας. Η διόρθωση είναι δωρεάν. Δεν υπάρχει τίποτα να αγοράσετε.

Μια σημαντική κανόνας σειράς πρώτα: Το HSTS είναι κολλητικό. Επιβεβαιώστε ότι το HTTPS λειτουργεί σωστά στον κύριο ιστότοπό σας και σε κάθε subdomain πριν το ενεργοποιήσετε ευρέως. Ξεκινήστε με σύντομη τιμή δοκιμής → επιβεβαιώστε → αυξήστε σε ένα χρόνο.

Cloudflare: SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS) → Ενεργοποίηση. Ορίστε Max-Age σε 6 ή 12 μήνες.

Nginx: προσθέστε στο HTTPS server block:

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

Apache: βεβαιωθείτε ότι το mod_headers είναι ενεργό, μετά:

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

Microsoft IIS: προσθέστε σε web.config:

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

Ξεκινήστε με max-age=300 (5 λεπτά), επιβεβαιώστε ότι όλα φορτώνουν, μετά αυξήστε σε max-age=31536000.

Συνηθισμένα λάθη

Συχνές Ερωτήσεις

Έχουμε ήδη HTTPS και το λουκέτο φαίνεται. Δεν αρκεί αυτό;

Όχι — και αυτή είναι η πιο κοινή παρανόηση. Το λουκέτο σημαίνει ότι μια σύνδεση ΜΠΟΡΕΙ να κρυπτογραφηθεί· δεν αναγκάζει τα προγράμματα περιήγησης να χρησιμοποιούν την κρυπτογραφημένη έκδοση. Χωρίς HSTS, ένας εισβολέας στο ίδιο δίκτυο μπορεί να κρατήσει έναν επισκέπτη σε απλό HTTP (SSL stripping) και να διαβάσει ό,τι πληκτρολογεί, ενώ ο πελάτης βλέπει ένα κανονικό ιστότοπο. Το HSTS είναι η οδηγία που κάνει το 'μόνο κρυπτογραφημένο' υποχρεωτικό. HTTPS χωρίς HSTS είναι κλειδωμένη πόρτα που δεν είναι στ' αλήθεια ασφαλισμένη.

Είναι ακριβό ή επικίνδυνο να ενεργοποιηθεί αυτό;

Η ίδια η διόρθωση είναι δωρεάν — είναι μια γραμμή στον web server ή εναλλαγή στο CDN σας — και χρειάζεται περίπου 15 λεπτά. Μια πραγματική προειδοποίηση: το HSTS είναι κολλητικό. Μόλις το δει ένα πρόγραμμα περιήγησης, θα αρνείται απλό HTTP για το domain σας για όσο χρόνο καθορίσατε. Οπότε πρέπει να είστε βέβαιοι ότι το HTTPS λειτουργεί στον κύριο ιστότοπό σας ΚΑΙ σε κάθε subdomain πριν το ενεργοποιήσετε ευρέως. Ξεκινήστε με σύντομη τιμή δοκιμής, επιβεβαιώστε ότι τίποτα δεν σπάει, μετά αυξήστε σε ένα χρόνο. Γίνεται με αυτή τη σειρά, ο κίνδυνος είναι αμελητέος.

Πώς μοιάζει το 'καλό' στην πράξη;

Μέγιστη ηλικία τουλάχιστον ένα χρόνο (31536000 δευτερόλεπτα). Ο έλεγχός μας απονέμει πλήρεις βαθμούς σε ένα χρόνο ή περισσότερο, μερικούς βαθμούς στους έξι μήνες, ασθενές/μερικό σε μια μέρα, και αντιμετωπίζει οτιδήποτε κάτω από μια μέρα ως ουσιαστικά απόν. Η ισχυρότερη ρύθμιση προσθέτει επίσης includeSubDomains (καλύπτει shop.yoursite.com, app.yoursite.com κ.λπ.) και preload (ψήνει την προστασία σε προγράμματα περιήγησης ώστε ακόμα και η πρώτη επίσκεψη να είναι ασφαλής).

Τι είναι το 'preload' και το χρειαζόμαστε;

Το HSTS προστατεύει έναν επισκέπτη ΑΦΟΥ το πρόγραμμα περιήγησής του έχει δει τη header τουλάχιστον μια φορά — οπότε το πολύ πρώτο αίτημα ενός νέου επισκέπτη εξακολουθεί να είναι ένα μικρό παράθυρο έκθεσης. Η λίστα HSTS preload, ενσωματωμένη σε Chrome, Firefox, Safari και Edge, κλείνει αυτό το παράθυρο αποστέλλοντας το domain σας εκ των προτέρων στα προγράμματα περιήγησης. Είναι προαιρετικό και μια ελαφρώς μεγαλύτερη δέσμευση (η αφαίρεση είναι αργή), αλλά είναι το χρυσό πρότυπο. Για τις περισσότερες μικρές επιχειρήσεις, μια max-age ένα χρόνο με includeSubDomains είναι ήδη ισχυρό, ασφαλές αποτέλεσμα· το preload είναι το επιπλέον βήμα μόλις σταθεροποιηθείτε.

Είμαστε σε Squarespace / Wix / Shopify — χρειαζόμαστε να κάνουμε κάτι;

Οι περισσότεροι πλήρως φιλοξενούμενοι builders ιστότοπων (Squarespace, Wix, Shopify και παρόμοιοι) επιβάλλουν HTTPS και συχνά ορίζουν HSTS για εσάς αυτόματα — οπότε μπορεί ήδη να περνάτε χωρίς να κάνετε τίποτα. Η εξαίρεση είναι όταν χρησιμοποιείτε custom domain ή CDN μπροστά από τον ιστότοπο· τότε η ρύθμιση μπορεί να πέσει μέσα από τα κενά. Εκτελέστε τον έλεγχο: αν περνά, τελειώσατε. Αν επισημαίνει, η διόρθωση είναι η εναλλαγή στις ρυθμίσεις SSL/ασφαλείας της πλατφόρμας σας, ή μία γραμμή στο CDN σας.

Αν δεν το διορθώσουμε, χαμηλώνει τη βαθμολογία μας;

Ναι. Το HSTS είναι βαθμολογούμενος έλεγχος web-ασφαλείας, όχι πληροφοριακός — μια ελλείπουσα ή πολύ σύντομη header κοστίζει βαθμούς και βαθμολογείται υψηλής σοβαρότητας, επειδή εκθέτει άμεσα τα δεδομένα των επισκεπτών σας σε κοινά δίκτυα. Είναι επίσης ένα από τα φτηνότερα σημεία για ανάκτηση: μια μόνο δωρεάν header, περίπου 15 λεπτά εργασίας.