/dev/null - Overig

Hash combineren?

09-01-2023, 00:18 door Anoniem, 21 reacties
Hoi,

stel je hebt een password dat je samenstelt uit de delen ‘qwerty’ en ‘QWERTY’, dus je password is ‘qwertyQWERTY’.

Van zowel ‘querty’ als van ‘QWERTY’ is de hash bekend bij password-krakers.

Is de hash van ‘qwertyQWERTY’ ook bekend al je weet wat de hash van elk van de ‘samenstellende delen’ is?

Bedankt
Trizanche
Reacties (21)
09-01-2023, 10:25 door Anoniem
Door Anoniem:Is de hash van ‘qwertyQWERTY’ ook bekend al je weet wat de hash van elk van de ‘samenstellende delen’ is?
Nee
SHA256 (qwerty) = 65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5
SHA256 (QWERTY) = 435c554a2e9cd54d2d3431b8af2b5d7ba740c64f1dca92b7af8a76b05d484ef3
SHA256 (qwertyQWERTY) = 564d15ad8daff4b3b9b3768285e88aa2eec2ef11e6e80a01a8018cd58e953d65
09-01-2023, 10:46 door Anoniem
Nope :)

De hash is gebaseerd op het totale wachtwoord. Indien jij qwerty hashed dan krijg je een specifieke hash waarde. Indien jij qwerty1 hashed is de hash totaal anders. Dit is ook waarom en hoe het salten van wachtwoorden werkt.

Gebruiker voert in als wachtwoord: Welkom20202

Applicatie voegt salt toe en maakt hier van: Welkom2020!@# en dit wachtwoord wordt vervolgens gehashed.

Indien de gebruiker de volgende keer inlogt met Welkom2020 moet de server uiteraard eerst dezelfde salt toe voegen omdat de hash van Welkom2020 totaal anders is dan die van Welkom2020!@#
09-01-2023, 11:04 door Anoniem
Door Anoniem: Hoi,

stel je hebt een password dat je samenstelt uit de delen ‘qwerty’ en ‘QWERTY’, dus je password is ‘qwertyQWERTY’.

Van zowel ‘querty’ als van ‘QWERTY’ is de hash bekend bij password-krakers.

Is de hash van ‘qwertyQWERTY’ ook bekend al je weet wat de hash van elk van de ‘samenstellende delen’ is?

Bedankt
Trizanche

Je moet een hash zien als een functie die maar een kant op kan. Van 'qwerty' naar een hash. Maar niet terug van de hash naar 'qwerty'.

Maar door qwerty te proberen, kan je controleren of dat je wachtwoord was. En dat doen password krakers als L0pthCrack. Heel snel hashes berekenen voor verschillende mogelijke passwords.

L0pthCrack zou alle samenstellingen van twee woorden uit hun woordenlijst kunnen proberen plus alle mogelijke hoofdlettervariaties daarop. 12 tekens is dan al niet zo erg lang. Bovendien kan je aanvaller in de cloud een stel snelle grafische kaarten huren zodat hij zelf geen GPU cluster hoeft aan te schaffen en te bouwen. Dat doet de cloudprovider voor je.
09-01-2023, 11:09 door Anoniem
Zo werken hashes niet dat je twee hashes aan elkaar plakt en op die manier de hash krijgt van de twee woorden.
Al kan je er wel vanuit gaan dat de hash van qwertyQWERTY al wel bekend is in de wachtwoordlijsten zoals rockyou.txt of andere wachtwoord databases
09-01-2023, 11:10 door Anoniem
Nee dat is niet mogelijk, dat is precies het idee van een hash.
De md5 hashes van die 3 passwords zijn resp:
d8578edf8458ce06fbc5bb76a58c5ca4
c3981fa8d26e95d911fe8eaeb6570f2f
e9d85490c449c3a3f35098b43a19b2f7
09-01-2023, 11:25 door Anoniem
Nee (dat is niet hoe hash mechanismes werken).
Misschien een leuke read: https://infosecwriteups.com/breaking-down-sha-256-algorithm-2ce61d86f7a3
En een stapje daarbovenop: auth0.com/blog/adding-salt-to-hashing-a-better-way-to-store-passwords/

-W
09-01-2023, 11:58 door Erik van Straten - Bijgewerkt: 09-01-2023, 12:01
Door Anoniem: Is de hash van ‘qwertyQWERTY’ ook bekend al je weet wat de hash van elk van de ‘samenstellende delen’ is?
Rekenkundig niet, maar mogelijk de eerstvolgende stap na het "reversen" van karakterreerksen als "qwerty" en "QWERTY" is het reversen van combinaties daarvan.

Bijv. in deze pagina https://hashcat.net/forum/thread-9124.html zie ik "qwertyQWERTY" staan.

Vergelijkbare risico's (bij het in verkeerde handen vallen van één of meer gehashte of op andere wijze afgeleide wachtwoorden) loop je met "qQwWeErRtTyY" en vergelijkbare constructies: de kans is groot dat iemand anders dat al bedacht heeft en dat ooit (niet of zwak gehasht) gelekt is, of ooit door iemand of ChatGPT als kansrijk is ingeschat en aan een woordenlijst is toegevoegd (of binnenkort toegevoegd zal worden).

In https://tweakers.net/plan/3806/met-project-no-more-leaks-voorkomt-de-politie-veel-schade-bij-bedrijven.html?showReaction=18289856#r_18289856 beschrijf ik wat zwakke wachtwoorden zijn.
09-01-2023, 12:56 door Anoniem
Bedankt voor alle reacties en links!
09-01-2023, 13:35 door Anoniem
Door Anoniem: Hoi,

stel je hebt een password dat je samenstelt uit de delen ‘qwerty’ en ‘QWERTY’, dus je password is ‘qwertyQWERTY’.

Van zowel ‘querty’ als van ‘QWERTY’ is de hash bekend bij password-krakers.

Is de hash van ‘qwertyQWERTY’ ook bekend al je weet wat de hash van elk van de ‘samenstellende delen’ is?

Bedankt
Trizanche

Nee dus . Dat is het hele idee van (crypto) hashes , iedere bit die veranderd aan de input kant moet leiden tot een verandering van *alle* bits aan de output kant.
(de term is 'avalanche' )
Je kunt dus niet een hash van "a" en van "b" gebruiken voor een simpele voorspelling hoe de hash van "ab" of "ba" eruit ziet .
Of, gegeven een hash uitkomst van "ab" , en wetende wat de hashes van "a" en "b" zijn, afleiden dat de uitkomst van "ab" de string "ab" als input had.

Overigens worden in password hashes niet 'puur' een hash gebruikt, maar een key derivation function . Die heeft wel gewoonlijk een hash als onderliggende functie, maar met wat extra eisen :

Er wordt gewoonlijk een salt gebruikt, zodat de "hash" van "qwerty" niet iedere keer hetzelfde is, maar ook afhangt van het salt . En de functie wordt bewust traag gemaakt, zodat het massaal testen van woordenboeken en combinaties van woorden langer duurt .

Zoek op "Handbook of Applied Cryptography" (online te lezen) voor een echte uitleg over hashes en andere crypto algorithmen.
09-01-2023, 15:43 door Anoniem
Door Anoniem: Hoi,

stel je hebt een password dat je samenstelt uit de delen ‘qwerty’ en ‘QWERTY’, dus je password is ‘qwertyQWERTY’.

Van zowel ‘querty’ als van ‘QWERTY’ is de hash bekend bij password-krakers.

Is de hash van ‘qwertyQWERTY’ ook bekend al je weet wat de hash van elk van de ‘samenstellende delen’ is?

Bedankt
Trizanche

Dus u stelt voor een nieuw type veilige wachtwoorden? :

passwordPASSWORD

welkomWELKOM


Wat u ontdekt heeft is misschien groundbreaking. Niet velen in de IT security hebben dit door. Ik zie een TedTalk aankomen
09-01-2023, 16:45 door Anoniem
Het was zo leuk (...) geweest als je van ieder karakter de hash kon nemen om zo een wachtwoord te reverse-engieren....
09-01-2023, 17:06 door Erik van Straten
Door Anoniem: Het was zo leuk (...) geweest als je van ieder karakter de hash kon nemen om zo een wachtwoord te reverse-engieren....
Beter nog, van elke mogelijke bitwaarde.

Zie ook https://tweakers.net/nieuws/205354/onderzoekers-vinden-kwetsbaarheden-in-zelfgemaakt-encryptieprotocol-van-threema.html?showReaction=18331224#r_18331224

Door Anoniem: Dat is het hele idee van (crypto) hashes , iedere bit die veranderd aan de input kant moet leiden tot een verandering van *alle* bits aan de output kant.
Gelukkig (voor de betrouwbaarheid van cryptografische hashes) is dat onjuist.
09-01-2023, 17:16 door Anoniem
Door Anoniem: Het was zo leuk (...) geweest als je van ieder karakter de hash kon nemen om zo een wachtwoord te reverse-engieren....

Dat soort hashes bestaan ook - niet iedere hash is een hash die voldoet aan een cryptografisch eisenpakket .

Er zijn allerlei lineaire functies die best geschikt zijn als "hash" in de rol van het detecteren van gewijzigde inputs , en vaste outputlengte , maar - vanwege hun lineaire karakter - simpel te reverse engineeren zijn .

Een CRC bijvoorbeeld wordt veel gebruikt als fout detectie (omgevallen bits) - maar is ongeschikt als cryptografische hash, omdat je makkelijk een input kunt construeren met een gegeven CRC als output .

De hashes gebruikt in programmeertalen (bij het maken van een associative array ) zijn gewoonlijk niet cryptografisch sterk.
https://en.wikipedia.org/wiki/Hash_table
https://en.wikipedia.org/wiki/Hash_function
09-01-2023, 17:46 door Anoniem
Ja gaat prima. ;)
Maar dat is het soort hash dat je rookt, een cryptografische hashes zijn niet te combineren.
09-01-2023, 20:40 door Anoniem
Door Erik van Straten:

Door Anoniem: Dat is het hele idee van (crypto) hashes , iedere bit die veranderd aan de input kant moet leiden tot een verandering van *alle* bits aan de output kant.
Gelukkig (voor de betrouwbaarheid van cryptografische hashes) is dat onjuist.

Mijn statement was ietwat uit de losse pols - maar ook weer niet zo verkeerd .
Ik merk op dat je het niet verbeterd hebt met een exacte formulering ...

De feitelijke eis is dat iedere bit van de output afhankelijk is van iedere bit van de input , wanneer het algorithme volledig doorlopen is.

En de formulering van het strikte avalanche ('lawine') effect is dat *iedere* bit van de output met 50% kans omklapt wanneer één bit van de input omklapt .

Of , anders gezegd, dat een 1-bit wijziging van de input gemiddeld leidt tot een wijziging van de helft van de output bits.
09-01-2023, 23:15 door Anoniem
Door Anoniem: Ja gaat prima. ;)
Maar dat is het soort hash dat je rookt, een cryptografische hashes zijn niet te combineren.


Hahaha, dank je :-))


En aan alle anderen voor hun reacties, instructief. Groeten Trizanche
10-01-2023, 00:03 door Anoniem
Door Anoniem:
Door Anoniem: Hoi,

stel je hebt een password dat je samenstelt uit de delen ‘qwerty’ en ‘QWERTY’, dus je password is ‘qwertyQWERTY’.

Van zowel ‘querty’ als van ‘QWERTY’ is de hash bekend bij password-krakers.

Is de hash van ‘qwertyQWERTY’ ook bekend al je weet wat de hash van elk van de ‘samenstellende delen’ is?

Bedankt
Trizanche

Nee dus . Dat is het hele idee van (crypto) hashes , iedere bit die veranderd aan de input kant moet leiden tot een verandering van *alle* bits aan de output kant.
(de term is 'avalanche' )
Je kunt dus niet een hash van "a" en van "b" gebruiken voor een simpele voorspelling hoe de hash van "ab" of "ba" eruit ziet .
Of, gegeven een hash uitkomst van "ab" , en wetende wat de hashes van "a" en "b" zijn, afleiden dat de uitkomst van "ab" de string "ab" als input had.

Overigens worden in password hashes niet 'puur' een hash gebruikt, maar een key derivation function . Die heeft wel gewoonlijk een hash als onderliggende functie, maar met wat extra eisen :

Er wordt gewoonlijk een salt gebruikt, zodat de "hash" van "qwerty" niet iedere keer hetzelfde is, maar ook afhangt van het salt . En de functie wordt bewust traag gemaakt, zodat het massaal testen van woordenboeken en combinaties van woorden langer duurt .

Zoek op "Handbook of Applied Cryptography" (online te lezen) voor een echte uitleg over hashes en andere crypto algorithmen.

Dit ken ik wel van Veracrypt (key derivation function). Is bekend welke key derivation function door lastpass gebruikt werd eigenlijk?
10-01-2023, 00:20 door Anoniem
Door Anoniem:
Door Anoniem: Hoi,

stel je hebt een password dat je samenstelt uit de delen ‘qwerty’ en ‘QWERTY’, dus je password is ‘qwertyQWERTY’.

Van zowel ‘querty’ als van ‘QWERTY’ is de hash bekend bij password-krakers.

Is de hash van ‘qwertyQWERTY’ ook bekend al je weet wat de hash van elk van de ‘samenstellende delen’ is?

Bedankt
Trizanche

Dus u stelt voor een nieuw type veilige wachtwoorden? :

passwordPASSWORD

welkomWELKOM


Wat u ontdekt heeft is misschien groundbreaking. Niet velen in de IT security hebben dit door. Ik zie een TedTalk aankomen

lezen sha-256:
ba5076a3ff372112de58f2d151e229b59f654b706f1772e2c64ba4a7ab590a5d
begrijpen sha-256:
439e6f43fdd7308fc50797083d4eaf19abbbaa7b4f03bcc95a9425eb5ba990e6
10-01-2023, 11:52 door Anoniem
Door Anoniem:
Door Anoniem:

[..]

Overigens worden in password hashes niet 'puur' een hash gebruikt, maar een key derivation function . Die heeft wel gewoonlijk een hash als onderliggende functie, maar met wat extra eisen :

Er wordt gewoonlijk een salt gebruikt, zodat de "hash" van "qwerty" niet iedere keer hetzelfde is, maar ook afhangt van het salt . En de functie wordt bewust traag gemaakt, zodat het massaal testen van woordenboeken en combinaties van woorden langer duurt .

Zoek op "Handbook of Applied Cryptography" (online te lezen) voor een echte uitleg over hashes en andere crypto algorithmen.

Dit ken ik wel van Veracrypt (key derivation function). Is bekend welke key derivation function door lastpass gebruikt werd eigenlijk?

google :

https://support.lastpass.com/nl/help/about-password-iterations-lp030027

LastPass gebruikt de PBKDF2-functie geïmplementeerd met SHA-256 om uw hoofdwachtwoord om te zetten in uw coderingssleutel. LastPass voert een instelbaar aantal iteraties van deze functie uit om de encryptiesleutel aan te maken, voordat met een enkele extra PBKDF2-bewerking de aanmeldingshash wordt gemaakt.

https://en.wikipedia.org/wiki/PBKDF2

En dan blijkbaar HMAC-SHA256 als de PRF in PBKDF2 .
10-01-2023, 12:01 door Erik van Straten
Door Anoniem:
Door Anoniem: Overigens worden in password hashes niet 'puur' een hash gebruikt, maar een key derivation function.
Dit ken ik wel van Veracrypt (key derivation function). Is bekend welke key derivation function door lastpass gebruikt werd eigenlijk?
Tip: als je reageert op een onderdeel van een andere reactie, haal dan niet een enorme lap tekst aan. Help mee de leesbaarheid van pagina's te vergroten, en zo bespaart security.nl ook nog eens op (opslag-) kosten en energie.

Antwoord: Wladimir Palant vertelt in https://palant.info/2022/12/28/lastpass-breach-the-significance-of-these-password-iterations/ beter dan ik kan welke bekende KDF gebruikt werd en waarom dit toch fout ging.

Overigens waren KDF's oorspronkelijk bedoeld om een wachtwoord in een encryptie/decryptiesleutel om te zetten - wat je niet nodig hebt bij een wachtwoord om ergens in te kunnen loggen. KDF's worden daar nu echter ook voor gebruikt, zie bijv. https://en.wikipedia.org/wiki/Key_derivation_function#Password_hashing.
10-01-2023, 14:21 door Anoniem
Dank Erik en will do!
Ik zit tijdelijk op een iPad en dat maakt de quote/unquote onoverzichtelijk(er) tov mijn laptop.
Ga die links nalopen, groeten
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.