Τι είναι το SHA-1;
SHA-1 (Secure Hash Algorithm 1) παράγει ένα 160-bit digest (40-hex χαρακτήρες). Σχεδιάστηκε από τον NSA και δημοσιεύτηκε από NIST το 1995 (FIPS 180-1), έγινε δημοφιλές για ψηφιακές υπογραφές, ελέγχους αρχείων και συστήματα ελέγχου εκδόσεων.
Σημείωση ασφαλείας: Το SHA-1 έχει σπάσει — χρησιμοποιήστε SHA-256, SHA-3 ή BLAKE3 για νέα συστήματα.
Πώς λειτουργεί το SHA-1
- Προσθήκη padding στο μήνυμα → μήκος ≡ 448 (mod 512) bits
- Προσθήκη 64-bit μήκους του αρχικού μηνύματος
- Αρχικοποίηση πέντε 32-bit λέξεων (A–E)
- Επεξεργασία 512-bit μπλοκ μέσω 80 λειτουργιών (τέσσερις γύροι)
- Εξαγωγή του τελικού 160-bit digest
Κατάσταση ασφαλείας
- 2005 — πρώτες θεωρητικές επιθέσεις σύγκρουσης
- 2017 — Google & CWI Amsterdam απέδειξαν πραγματική σύγκρουση (“SHAttered” PDFs)
- Οι browsers πλέον δεν εμπιστεύονται πιστοποιητικά SHA-1 TLS
- Η NIST απέσυρε το SHA-1 για ψηφιακές υπογραφές το 2011
Παραδείγματα κατακερματισμών
Input | SHA-1 Hash |
---|---|
Hello World | 0a4d55a8d778e5022fab701977c5d840bbc486d0 |
password | 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 |
test123 | 7288edd0fc3ffcbe93a0cf06e3568e28521687bc |
(κενό) | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
SHA-1 έναντι άλλων συναρτήσεων κατακερματισμού
Algorithm | Output | Security | Speed |
---|---|---|---|
MD5 | 128 bits | ❌ Σπασμένο | ⚡ Πολύ γρήγορο |
SHA-1 | 160 bits | ❌ Συμβιβασμένο | ⚡ Γρήγορο |
SHA-256 | 256 bits | ✅ Ασφαλές | 🚀 Μέτρια |
SHA-3 | Variable | ✅ Πολύ ασφαλές | 🚀 Μέτρια |
BLAKE3 | 256 bits | ✅ Ασφαλές | ⚡ Πολύ γρήγορο |
Συχνές Ερωτήσεις
Είναι το SHA-1 ασφαλές για κωδικούς πρόσβασης;
Όχι. Χρησιμοποιήστε bcrypt, Argon2 ή PBKDF2 αντ’ αυτού.
Τι είναι μια σύγκρουση SHA-1;
Μια σύγκρουση συμβαίνει όταν δύο διαφορετικές εισόδους παράγουν τον ίδιο κατακερματισμό. Η επίθεση “SHAttered” του 2017 απέδειξε πραγματικές συγκρούσεις.
Γιατί το Git εξακολουθεί να χρησιμοποιεί SHA-1;
Ο σχεδιασμός του Git περιορίζει την εκμεταλλευσιμότητα, αλλά το έργο μεταβαίνει σε SHA-256.