Introduktion till SHA
SHA står för säker hashalgoritm. SHA är en modifierad version av MD5 och används för att hasha data och certifikatEn hashalgoritm förkortar indata till en mindre form som inte kan förstås med hjälp av bitvisa operationer, modulära additioner och komprimeringsfunktioner. Du kanske undrar, kan hash knäckas eller dekrypteras?
Hashning liknar kryptering, det enda skillnaden mellan hashing och kryptering är att hashing är enkelriktad, vilket innebär att när data har haschats kan den resulterande hash-digesteringen inte knäckas, såvida inte en brute-force-attack används. Se bilden nedan för hur SHA-algoritmen fungerar. SHA fungerar på ett sådant sätt att även om ett enda tecken i meddelandet ändras, genererar det en annan hash. Till exempel är hashing av två liknande men olika meddelanden som Heaven och heaven olika, men det finns bara en skillnad på en stor och en liten bokstav.

Det initiala meddelandet hashas med SHA-2, vilket resulterar i hash-digesteringen "06b73bd57b3b938786daed820cb9fa4561bf0e8e". Om det andra, liknande, meddelandet hashas med SHA-2 kommer hash-digesteringen att se ut som "66da9f3b8d9d83f34770a14c38276a69433a535b". Detta kallas lavineffekten. Denna effekt är viktig inom kryptografi, eftersom det innebär att även den minsta förändringen i inmatningsmeddelandet fullständigt förändrar utdata. Detta hindrar angripare från att förstå vad hash-digesteringen ursprungligen sa och berätta för mottagaren av meddelandet om meddelandet har ändrats under överföringen.
SHA:er hjälper också till att avslöja om ett ursprungligt meddelande har ändrats på något sätt. Genom att referera till den ursprungliga hash-sammanfattningen kan en användare se om ens en enda bokstav har ändrats, eftersom hash-sammanfattningarna kommer att vara helt olika. En av de viktigaste delarna av SHA:er är att de är deterministiska. Det betyder att så länge hashfunktionen som används är känd kan vilken dator eller användare som helst återskapa hash-sammanfattningen. Determinismen hos SHA:er är en av anledningarna till att varje SSL-certifikat på internet krävs att den har hashats med en SHA-2-funktion.
Olika SHA-formulär
När man lär sig om SHA-former refereras flera olika typer av SHA. Exempel på SHA-namn som används är SHA-1, SHA-2, SHA-256, SHA-512, SHA-224 och SHA-384, men i själva verket finns det bara två typer: SHA-1 och SHA-2. De andra större siffrorna, som SHA-256, är bara versioner av SHA-2 som anger bitlängderna för SHA-2. SHA-1, introducerad 1993, var den ursprungliga säkra hashalgoritmen, som returnerade en 160-bitars hash-digest efter hashing.
På grund av dess korta bitlängd har dock sårbarheter som kollisionsattacker uppstått. Inom kryptografi inträffar en kollision när två olika indata producerar samma hash. Med tiden blev det lättare att hitta dessa kollisioner, vilket avsevärt undergrävde SHA-1:s säkerhet. En milstolpe var 2017 års "SHAttered"-attack som utfördes av Google- och CWI-forskare, vilken framgångsrikt demonstrerade en kollision i SHA-1, vilket markerade dess föråldring i säkra applikationer. SHA-1 är nu en föråldrad algoritm som inte längre används för hashing online.
Någon kanske undrar, kan SHA-2 knäckas som SHA-1? Svaret är ja. På grund av hash-digestens korta längd är SHA-1 lättare brute-forcerad än SHA-2, men SHA-2 kan fortfarande brute-forceras. SHA-1 kan ge samma hash-digest till två olika värden, eftersom antalet kombinationer som kan skapas med 160 bitar är så litet. SHA-2 å andra sidan ger varje digest ett unikt värde, vilket är anledningen till att alla certifikat måste använda SHA-2. SHA-2 kan producera en mängd olika bitlängder, från 256 till 512 bitar, vilket gör att den kan tilldela helt unika värden till varje skapad hash-digest.
Branschen började övergå till SHA-2 i början av 2000-talet, även om den fullständiga migreringen tog tid. SHA-2, med sina större bitlängder (t.ex. 256-bitars och 512-bitars), erbjöd starkare säkerhet mot kollisioner och brute force-attacker. År 2016 hade de flesta större system fasat ut SHA-1 till förmån för SHA-2, men motstånd och utmaningar kvarstod under övergången.
Många organisationer var långsamma med att anta SHA-2 på grund av behovet av betydande infrastrukturuppdateringar, inklusive uppgradering av äldre system, kompatibilitet med äldre hårdvara och mjukvara, ersättning av föråldrade certifikat och omkonfigurering av säkerhetsprotokoll för att stödja den starkare krypteringsstandarden. Trots förseningen blev SHA-256 den nya standarden, särskilt för SSL/TLS-certifikat och digitala signaturer, vilket gav bättre motståndskraft mot kryptografiska attacker.
Jämfört med SHA-1 är SHA-2 mycket säkrare och har krävts i alla digitala signaturer och certifikat sedan 2016. Vanliga attacker som brute force-attacker kan ta år eller till och med årtionden att knäcka hash-digest, så SHA-2 anses vara den säkraste hash-algoritmen.
Vad används SHA till?
Som tidigare nämnts krävs säkra hashalgoritmer i alla digitala signaturer och certifikat som rör SSL/TLS-anslutningar, men det finns även fler användningsområden för SHA:er. Applikationer som SSH, S-MIME (Secure / Multipurpose Internet Mail Extensions) och IPSec använder också SHA:er. SHA:er används också för att hasha lösenord så att servern bara behöver komma ihåg hashkoder snarare än lösenord.
På så sätt, om en angripare stjäl databasen som innehåller alla hashkoder, skulle de inte ha direkt tillgång till alla klartextlösenord, de skulle också behöva hitta ett sätt att knäcka hashkoderna för att kunna använda lösenorden. SHA:er kan också fungera som indikatorer på en fils integritet. Om en fil har ändrats under överföring kommer den resulterande hashdigesten som skapas från hashfunktionen inte att matcha den hashdigest som ursprungligen skapades och skickades av filens ägare.
Inom blockkedjeteknik, särskilt i kryptovalutor som Bitcoin, spelar SHA-256 en avgörande roll. Den är integrerad i miningprocessen, där den hjälper till att lösa komplexa matematiska pussel för att validera och lägga till nya transaktioner i blockkedjan.
Viktiga skäl att använda SHA
Vi har nu lärt oss vad SHA:er används till, men varför ska man använda en säker hashalgoritm från första början? En vanlig anledning är deras förmåga att stoppa angripare. Även om vissa metoder, som brute force-attacker, kan avslöja klartexten i hash-digerterna, försvåras dessa taktiker av SHA:er. Ett lösenord som hashats av en SHA-2 kan ta år, till och med årtionden, att knäcka, vilket slösar resurser och tid på ett enkelt lösenord, vilket kan avskräcka många angripare.
En annan anledning att använda SHA:er är att alla hash-digester är unika. Om SHA-2 används kommer det sannolikt att bli få eller inga kollisioner, vilket innebär att en enkel ändring av ett ord i ett meddelande skulle förändra hash-digesteringen helt. Eftersom det finns få eller inga kollisioner kan ett mönster inte hittas som gör det lättare för angriparen att bryta den säkra hashalgoritmen. Det här är bara några anledningar till varför SHA används så ofta.
SHA 2-begränsningar
- browser Support
| webbläsare | Minsta webbläsarversion |
|---|---|
| krom | 26+ |
| firefox | 1.5+ |
| Internet Explorer | 6+ (Med XP SP3+) |
| Netscape | 7.1+ |
| Safari | 3+ (Levereras med OS X 10.5) |
| Mozilla | 1.4+ |
| Opera | 9.0+ |
- Serversupport
| server | Minsta serverversion |
|---|---|
| AWS (Amazon Web Services) | JA |
| Apache | 2.0.63+ med OpenSSL 0.9.8+ |
| Cisco ASA 5500 | 8.2.3.9+ för AnyConnect VPN-sessioner; 8.4(2)+ för andra funktioner |
| Java-baserade produkter | Java 1.4.2+ |
| IBM Domino-server | 9.0+ (Ingår i HTTP 8.5+) |
| IBM HTTP-server | 8.5+ (Ingår i Domino 9+) |
| IBM z/OS | v1r10+ |
| OpenSSL-baserade produkter | OpenSSL 0.9.8o+ |
| Oracle Wallet Manager | 11.2.0.1+ |
| Oracle Weblogic | 10.3.1+ |
| Web Sphere MQ | 7.0.1.4+ |
- Operativsystem som stöds
| Operativ system | SSL-certifikat Minsta operativsystemversion | Klientcertifikatets lägsta operativsystemversion |
|---|---|---|
| Android | 2.3+ | 2.3+ |
| iOS | 3.0+ | 3.0+ |
| ChromeOS | JA | JA |
| Mac OS X | 10.5+ | 10.5+ |
| Windows XP | SP3+ XP | SP3+ (delvis) |
| Windows Server | 2003 SP2 + snabbkorrigeringar (delvis) | 2003 SP2 + snabbkorrigeringar (delvis) |
| Windows Phone | 7+ | 7+ |
| björnbär | 5.0+ | 5.0+ |
Hashingens framtid
För närvarande är SHA-2 branschstandarden för hashalgoritmer, även om SHA-3 kan komma att överträffa detta i framtiden. SHA-3 släpptes av NIST., vilket också skapade SHA-1 och SHA-2, år 2015 men som inte blev branschstandard av flera anledningar. Under lanseringen av SHA-3 var de flesta företag mitt uppe i en övergång från SHA-1 till SHA-2, så det var inte meningsfullt att byta direkt till SHA-3 medan SHA-2 fortfarande var väldigt säkert.
Tillsammans med detta ansågs SHA-3 vara långsammare än SHA-2, även om det inte är helt fallet. SHA-3 är långsammare på programvarusidan, men det är mycket snabbare än SHA-1 och SHA-2 på hårdvarusidan, och blir snabbare för varje år. Av dessa skäl kommer vi sannolikt att se övergången till SHA-3 längre fram, när SHA-2 blir osäkert eller föråldrat.
Slutsats
Säker hashalgoritm är ett centralt verktyg inom modern kryptografi som omvandlar indata till unika och irreversibla hash-digereringar. Till skillnad från kryptering är hashning enkelriktad, vilket gör den motståndskraftig mot dekryptering förutom genom brute force-metoder. SHA-varianter, särskilt SHA-1 och SHA-2, spelar avgörande roller inom digital säkerhet, där SHA-2 är det föredragna valet på grund av dess förbättrade motståndskraft mot brute force-attacker och kollisionssårbarheter.
Hur kan krypteringskonsulting hjälpa till?
Med stort fokus på Krypteringsrådgivningstjänster och årtionden av konsultexpertis erbjuder Encryption Consulting en rad kryptografiska lösningar. Bland dessa, PKI som en tjänst (PKIaaS) sticker ut genom att erbjuda support dygnet runt till kunder för alla problem relaterade till deras PKI-miljö. Denna omfattande strategi förbättrar säkerheten och säkerställer att organisationer förblir motståndskraftiga mot potentiella felkonfigurationer i sina krypteringsinställningar.
