Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaΦιλομήνα Ελευθερόπουλος Megváltozta több, mint 5 éve
1
Dr. Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2012
Kriptográfia Kilencedik előadás A hitelesítésről általában Lecture slides by Lawrie Brown for “Cryptography and Network Security”, 4/e, by William Stallings, Chapter 1 “Introduction”. Dr. Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2012
2
Üzenet hitelesítés (Message Authentication)
az üzenet hitesítésének összetevői: az üzenet sértetlenségének biztosítása az üzenet eredetének = feladójának ellenőrzése letagadhatatlanság (viták eldöntése) három alternatív módszer használatos: az üzenet titkosítása üzenethitelesítő kód (message authentication code MAC) hash-függvény (tördelő függvény, lenyomatképző függvény, hash function) Up untill now, have been concerned with protecting message content (ie secrecy) by encrypting the message. Will now consider how to protect message integrity (ie protection from modification), as well as confirming the identity of the sender. Generically this is the problem of message authentication, and in eCommerce applications is arguably more important than secrecy. Message Authentication is concerned with: protecting the integrity of a message, validating identity of originator, & non-repudiation of origin (dispute resolution). There are three types of functions that may be used to produce an authenticator: message encryption, message authentication code (MAC), or a hash function.
3
Biztonságot kell nyújtani az alábbiakkal szemben
tartalom felfedése (disclosure) forgalomelemzés (traffic analysis) megszemélyesítés (masquerade) tartalom módosítás (content modification) sorrend módosítás (sequence modification) üzenet idejének módosítása (timing modification) küldés letagadása (source repudiation) megkapás letagadása (destination repudiation) In the context of communications across a network, the attacks listed above can be identified. The first two requirements belong in the realm of message confidentiality, and are handled using the encryption techniques already discussed. The remaining requirements belong in the realm of message authentication. At its core this addresses the issue of ensuring that a message comes from the alleged source and has not been altered. It may also address sequencing and timeliness. The use of a digital signature can also address issues of repudiation by the source.
4
A hitelesítés alapszközei (primitívei)
Hitelesítés titkosítással szimmetrikus kulcsú algoritmussal nyílt kulcsú algoritmussal MAC (üzenethitelesítő kód) algoritmusok Hash (tördelő) függvények
5
1. Üzenet titkosítása I. maga az üzenet titkosítása is szolgálhat hitelesítésként ha szimmetrikus titkosítást használunk: mivel a kulcsot csak a feladó és a címzett ismeri a címzett biztos lehet a feladó személyében és az üzenet sértetlenségében is (nem változtathatta senki se meg) feltéve, hogy az üzenet elégséges struktúrával, vagy redundanciával rendelkezik, ahhoz hogy felismerjük ha megváltoztatták, pl. nem egyetlen véletlen kulcs önmagában Message encryption by itself can provide a measure of authentication. Here, the ciphertext of the entire message serves as its authenticator, on the basis that only those who know the appropriate keys could have validly encrypted the message. This is provided you can recognize a valid message (ie if the message has suitable structure such as redundancy or a checksum to detect any changes).
6
1. Üzenet titkosítása II. ha azonban nyilvános kulcsú titkosítás történt: maga a titkosítás, nem igazolja a feladó személyét hiszen a nyilvános kulcshoz bárki hozzáférhet ha azonban a feladó aláírja az üzenetet a magánkulcsával majd a címzett nyilvános kulcsával titkosítja azt, akkor mind a bizalmasság, mind a hitelesség fennáll szintén meg kell tudni különböztetni az értelmes üzenetet a véletlen jelsorozattól a költsége a teljes üzenet kétszeri aszimmetrikus titkosítása a feleknek persze biztosnak kell lenni, hogy valóban egymás nyilvános kulcsát birtokolják (kulcselosztás ! ) With public-key techniques, can get a digital signature which can only have been created by key owner. But at cost of two public-key operations at each end on message.
7
2. Üzenethitelesítő kód Message Authentication Code (MAC)
egy MAC algoritmussal (C) egy rövid, rögzített hosszú blokkot generálunk, mely függ az üzenettől: M és egy közös titkos kulcstól: K hasonló a titkosításhoz, de nem kell visszaállíthatónak lennie egyfajta kriptográfiai ellenőrző összeg az üzenet végére illesztjük és MAC kódnak (aláírásnak) hívjuk: MAC = C(K,M) a címzett a titkos kulcs és az üzenet birtokában újra kiszámítva a MAC kód értékét ellenőrizheti a feladó hitelességet és az üzenet sértetlenségét, beleértve az üzenet sorszámát (sequence number), stb. An alternative authentication technique involves the use of a secret key to generate a small fixed-size block of data, known as a cryptographic checksum or MAC that is appended to the message. This technique assumes that two communicating parties, say A and B, share a common secret key K. A MAC function is similar to encryption, except that the MAC algorithm need not be reversible, as it must for decryption.
8
2. MAC alkalmazása titkosítás nélkül
Stallings Figure 11.4a “Message Authentication” shows the use of a MAC just for authentication. Itt II az egymás után illesztés jele.
9
A MAC tulajdonságai a MAC kriptográfiai ellenőrző összeg
(cryptographic checksum) MAC = CK(M) összesűríti a tetszőleges hosszú M üzenetet egy K titkos kulcs használatával egy rögzített hosszú hitelesítő „pecsétre” nem lehet egyértelmű függvény potenciálisan végtelen sok üzenet fog tartozni ugyanahhoz a MAC értékhez de azt szeretnénk, hogy két ilyet nagyon nehéz legyen találni A MAC, also known as a cryptographic checksum,is generated by a function C. The MAC is appended to the message at the source at a time when the message is assumed or known to be correct. The receiver authenticates that message by re-computing the MAC. The MAC function is a many-to-one function, since potentially many arbitrarily long messages can be condensed to the same summary value, but don’t want finding them to be easy!
10
Követelmények figyelembe véve a támadási típusokat
a MAC-nek telejítenie kell: az üzenet és a MAC ismeretében keresztülvihetetlen egy másik azonos MAC-kel rendelkező üzenetet találni a MAC-ek egyenletes eloszlásúak a MAC egyenlő mértékben függ az üzenet minden bitjétől In assessing the security of a MAC function, we need to consider the types of attacks that may be mounted against it. Hence it needs to satisfy the listed requirements. The first requirement deals with message replacement attacks, in which an opponent is able to construct a new message to match a given MAC, even though the opponent does not know and does not learn the key. The second requirement deals with the need to thwart a brute-force attack based on chosen plaintext. The final requirement dictates that the authentication algorithm should not be weaker with respect to certain parts or bits of the message than others.
11
A MAC alkalmazása mint láttuk a MAC-kód csak hitelesítést biztosít
de titkosítás mellett is használhatjuk általában külön kulcsokat használva a MAC kód a titkosítás előtt és után is számítható de jobb a titkosítás előtt alkalmazni A MAC nem digitális aláírás (nem letagadhatatlan, mindkét fél elkészítheti) Mikor érdemes használni? (a titkosítással történő hitelesítéssel szemben) érdemes szétválasztani a bizalmasságot és a hitelesítést néha csak hitelesítés szükséges, titkosítás nem pl. alkalomszerű ellenőrzés (gyorsításért), programkód hitelesítés, hálózat menedzselés (SNMPv3) a MAC hitelességet hosszabb időre tudja biztosítani, mint a titkosítást, a megfejtés után a nyílt szöveg tárolható a MAC kóddal együtt Can combine use of MAC with encryption in various ways to provide both authentication & secrecy. Use MAC in circumstances where just authentication is needed (or needs to be kept), see text for examples. A MAC is NOT a digital signature since both sender & receiver share key and could create it.
12
Szimmetrikus titkosítók használata MAC készítésére
bármely szimmetrikus titkosítóval készíthetünk MAC-et, ha a CBC (cipher block chaining) módban az utolsó blokkot használjuk MAC-ként a Data Authentication Algorithm (DAA) széles körben volt használatban, ez egy MAC algoritmus, mely a DES-t használja CBC módban a kezdővektor: IV=00….0 ha szükséges az üzenetet 0-kal kell kiegészíteni, hogy egész számú 64 bites blokkból álljon titkosítsuk az üzenetet DES-sel CBC módban az utolsó 64 bites eredmény a MAC érték vagy csak annak a legelső M bites blokkját (16≤M≤64) de a végső MAC mérete túl rövid a biztonsághoz Majd látjuk: a brute force ellen hosszabb MAC kell mint szimmetrikus titkos kulcs! Can also use block cipher chaining modes to create a separate authenticator, by just sending the last block. This was done with the Data Authentication Algorithm (DAA), a widely used MAC based on DES-CBC (next slide). However this suffers from being too small for acceptable use today.
13
Az adat hitelesítő algoritmus (Data Authentication Algorithm DAA)
Stallings Figure 11.6 “Data Authentication Algorithm”, illustrates the FIPS PUB 113 / ANSI X9.17 MAC based on DES-CBC with IV 0 and 0-pad of the final block if needed. Resulting MAC can be bits of the final block. But this is now too small for security. Nem más mint a DES CBC módban.
14
3. Hash-függvények tetszőleges üzenetet rögzített hosszra sűrítenek
h = H(M) nincs szükség kulcsra szemben a MAC-kel ,,egyirányúak’’ = a jó hash függvényt reménytelenül nehéz invertálni nyilvános algoritmusok jelzik az üzenet megváltozását többféleképpen használhatóak leggyakrabban elektronikus aláírás (digital signature) készítéséhez A variation on the message authentication code is the one-way hash function. As with the message authentication code, a hash function accepts a variable-size message M as input and produces a fixed-size output, referred to as a hash code H(M). Unlike a MAC, a hash code does not use a key but is a function only of the input message. The hash code is also referred to as a message digest or hash value.
15
Hash függvény egy használata csak hitelesítésre
Stallings Figure 11.5c “Basic Uses of Hash Functions” shows the hash being “signed” with the senders private key, thus forming a digital signature. Az üzenet nincs titkosítva csak aláírva.
16
Hash függvények alkalmazásai I
17
Hash függvények alkalmazásai II
18
Követelmények hash függvényekkel szemben
tetszőleg méretű M üzenetre alkalmazhatóság rögzített méretű h kimenetet adjon h=H(M)-et könnyű legyen kiszámítani h ismeretében kivitelezhetetlen olyan x-et találni, melyre H(x)=h egyirányú tulajdonság (one-way property) ismert x-re kivitelezhetetlen olyan y-t találni, melyre H(y)=H(x) gyenge ütközésmentesség (weak collision resistance) kivitelezhetetlen két olyan x,y-t találni melyre H(y)=H(x) erős ütközésmentesség (strong collision resistance) The purpose of a hash function is to produce a “fingerprint”of a file, message, or other block of data. These are the specifications for good hash functions. Essentially it must be extremely difficult to find 2 messages with the same hash, and the hash should not be related to the message in any obvious way (ie it should be a complex non-linear function of the message). There are quite a few similarities in the evolution of hash functions & block ciphers, and in the evolution of the design requirements on both.
19
Egyszerű hash függvények
több javaslat született egyszerű függvényekre az üzenet blokkjainak XOR-olásával nem biztonságosak, mert könnyű bármely üzenetet úgy módosítani, hogy a hash érték változatlan maradjon, vagy kívánt érték legyen erősebb kriptográfiai függvényekre van szükség All hash functions operate using the following general principles. The input (message, file,etc.) is viewed as a sequence of n-bit blocks, processed one block at a time in an iterative fashion to produce an n-bit hash function. Can construct a range of possible simple hash functions by just XOR’ing blocks with rotates etc. None of these are secure, since can predict how changes to message affect the resulting hash.
20
Születésnap elvű támadások (Birthday Attacks)
azt gondolnánk, hogy egy 64-bites hash biztonságos de a Születésnap paradoxon (Birthday Paradox) miatt ez nincs így ahhoz hogy találjunk két azonos napon született embert legalább 50%-os valséggel csak 23 ember kell! ez általánosítható úgy is, ha két csoportból (mondjuk fiúk-lányok) akarunk egy olyan párt találni, akik véges sok érték közül közös tulajdonsággal rendelkeznek így pl. 64 bites hash esetén 264 hash érték van, de csak két 232 nagyságú csoportot kell képeznünk, ahhoz, hogy legalább 50%-os valséggel egyezést találjunk. Műveletgény: 233 hash érték számítás The Birthday Attack exploits the birthday paradox – the chance that in a group of people two will share the same birthday – only 23 people are needed for a Pr>0.5 of this. Can generalize the problem to one wanting a matching pair from any two sets, and show need 2m/2 in each to get a matching m-bit hash. Note that creating many message variants is relatively easy, either by rewording or just varying the amount of white-space in the message. All of which indicates that larger MACs/Hashes are needed.
21
Születésnap elvű támadások (Birthday Attacks)
A születésnap elvű támadás: az ellenfél generál 232 db variációját egy valós üzenetnek lényegében ugyanazzal a jelentéssel (pl. szinonimákkal vagy szóközökkel) az ellenfél szintén generálja 232 variációját a hamis üzenetnek, amire ki akarja cserélni a születésnap paradoxon miatt legalább 50% annak a valószínűsége, hogy a két üzenetcsoportban talál két azonos hash értékkel rendelkezőt ezután aláírathatja a valós üzenetet a küldővel, amit aztán kicserélhet az azonos hash értékű hamis párjával Nagyobb MAC/Hash értékek szükségesek !!! The Birthday Attack exploits the birthday paradox – the chance that in a group of people two will share the same birthday – only 23 people are needed for a Pr>0.5 of this. Can generalize the problem to one wanting a matching pair from any two sets, and show need 2m/2 in each to get a matching m-bit hash. Note that creating many message variants is relatively easy, either by rewording or just varying the amount of white-space in the message. All of which indicates that larger MACs/Hashes are needed.
22
Egy levél 237 változatban
23
Blokktitkosítók, mint hash függvények
a blokktitkosítók hash függvényként is használhatók: IV=H0:=00…0 az üzenet végének föltöltésse 0-kal (padding) számítás: Hi = EMi [Hi-1] , ahol Mi az i-dik blokk az utolsó blokk értéke használható hashként hasonlít a CBC módra, de kulcs nélküli az eredményként adott hash túl rövid (64, 128-bit) mind a születésnap elvű támadás mind a középen találkozó “meet-in-the-middle” támadás veszélyezteti Más variáció is sérülékenyek Jó hash függvényekhez más megközelítés kell. A number of proposals have been made for hash functions based on using a cipher block chaining technique, but without the secret key (instead using the message blocks as keys). Unfortunately these are subject to both the birthday attack, and to a “meet-in-the-middle” attack. Thus, attention has been directed at finding other approaches to hashing.
24
Hash függvények és MAC algoritmusok biztonsága
támadástípusok mint a blokktitkosítóknál teljes kipróbálás (brute-force) hash: erős ütközésmentesség ellen csak: 2m/2 javasoltak hardvert MD5 törésére 128-bit sérülékeny, 160-bit már jobb MAC: nehezebb támadni, mert ismert üzenet - MAC érték párok kellenek támadható a kulcstér vagy direkt a MAC érték legalább 128-bites MAC kell a biztonsághoz Just as with symmetric and public-key encryption, we can group attacks on hash functions and MACs into two categories: brute-force attacks and cryptanalysis. The strength of a hash function against brute-force attacks depends solely on the length of the hash code produced by the algorithm, with cost O(2^m/2). See proposal in text for a h/w MD5 cracker. A brute-force attack on a MAC is a more difficult undertaking because it requires known message-MAC pairs. However analysis shows cost is related to min(2^k, 2^n), similar to symmetric encryption algorithms.
25
Hash függvények és MAC algoritmusok biztonsága
kriptográfiai támadások a függvény egyirányúságát támadják cél, hogy ne lehessen a brute force-nál jobbat adni pl. 2004: MD5 nem erősen ütközésmentes!!! 2006: MD5-höz egy percen belül egy laptopon két azonos hash értékű üzenet található számos analitikus támadás ismert iterált hash függvényekre is (a körfüggvényt kell visszafejteni elég sok körön keresztül). As with encryption algorithms, cryptanalytic attacks on hash functions and MAC algorithms seek to exploit some property of the algorithm to perform some attack other than an exhaustive search. The way to measure the resistance of a hash or MAC algorithm to cryptanalysis is to compare its strength to the effort required for a brute-force attack. That is, an ideal hash or MAC algorithm will require a cryptanalytic effort greater than or equal to the brute-force effort. Cryptanalysis of hash functions focuses on the internal structure of the compression function f and is based on attempts to find efficient techniques for producing collisions for a single execution of f. Keep in mind that for any hash function there must exist collisions, but want it to be computationally infeasible to find these collisions.
26
Felhasznált irodalom Virrasztó Tamás: Titkosítás és adatrejtés: Biztonságos kommunikáció és algoritmikus adatvédelem, NetAcademia Kft., Budapest, Online elérhető: William Stallings: Cryptography and Network Security, 4th Edition, Prentice Hall, (Chapter 11) Lawrie Brown előadás fóliái (Chapter 11)
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.