| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| mac [2023/11/21 15:40] – zrinka | mac [2025/12/01 11:40] (current) – external edit 127.0.0.1 |
|---|
| ====MAC==== | ====MAC==== |
| **MAC (Message Authentication Code)** je kratak dodatak poruci koji služi za provjeru autentičnosti i integriteta poruke, odnosno za potvrdu identiteta pošiljatelja i da zaprimljena poruka nije izmijenjena. Slično funkciji sažetka, MAC uzima poruku proizvoljne duljine i vraća rezultat fiksne duljine. Razlika je u tome što algoritam kojim se generira MAC može biti poznat jer se pri generiranju koristi tajni ključ. | **MAC (Message Authentication Code)** je kratak dodatak poruci koji služi za potvrdu identiteta pošiljatelja i da zaprimljena poruka nije izmijenjena. Pošiljatelj i primatelj unaprijed dogovore algoritam kojim će generirati MAC za svoje poruke i tajni ključ koji će samo njih dvoje koristiti. Slično funkciji sažetka, MAC vraća rezultat fiksne duljine neovisno s o duljini poruke. |
| MAC ne kriptira poruku, već samo daje informaciju o pošiljatelju. Pošiljatelj pri slanju svoje poruke generira MAC i pošalje ga uz poruku. Primatelj izračuna MAC koristeći tajni ključ i usporedi ga s dobivenim. Ako su isti, znači da je pošiljatelj legitiman. Ako nisu, primatelj ne može znati je li sama poruka promijenjena tijekom slanja ili je pošiljatelj netko druig. U svakom slučaju, zna da poruka nije ispravna. Proces se može prikazati ovako: | |
| | Pošiljatelj pri slanju poruke generira MAC i šalje ga uz poruku. Primatelj izračuna MAC koji očekuje koristeći tajni ključ i usporedi ga s dobivenim. Ako su isti, znači da je poruka legitimna. Ako nisu, primatelj ne može znati je li sama poruka promijenjena tijekom slanja ili je pošiljatelj netko drugi. U svakom slučaju, zna da poruka nije ispravna. Proces se može prikazati ovako: |
| |
| {{ ::mac.png?nolink&600 | Primjer korištenja MAC-a [3]}} | {{ ::mac.png?nolink&600 | Primjer korištenja MAC-a [3]}} |
| | |
| |
| |
| - **Algoritam verifikacije V** - vraća „prihvaćeno“ ili „odbačeno“ za danu oznaku t, ključ K i poruku M | - **Algoritam verifikacije V** - vraća „prihvaćeno“ ili „odbačeno“ za danu oznaku t, ključ K i poruku M |
| |
| Iako MAC sam po sebi ne osigurava svojstvo tajnosti, možemo ga koristiti u kombinaciji sa simetričnim kriptografskim algoritmima kako bismo to svojstvo osigurali. To možemo postići trima načinima primjene kriptiranja: **Encrypt-then-MAC (EtM)**, **Encrypt-and-MAC (E&M)** i **MAC-then-Encrypt (MtE)**. | MAC sam po sebi ne kriptira poruku, već samo daje informaciju o legitimitetu poruke. Ako šaljemo neku osjetljivu informaciju, treba ju zasebno kriptirati. Primatelj tad treba prvo izračunati očekivani MAC, dekriptirati poruku i usporediti dobiveni MAC sa svojim. Nekad se prije dekriptiranja poruke dekriptira samo MAC i ta se vrijednost uspoređuje s očekivanom. Taj je način vremenski efikasniji ako poruka nije autentična jer se ne troši vrijeme za dekripciju cijele poruke koja se na kraju ne koristi. Tri su metode kriptiranja: **Encrypt-then-MAC (EtM)**, **Encrypt-and-MAC (E&M)** i **MAC-then-Encrypt (MtE)**, a |
| Generalno, **Encrypt-then-MAC (EtM)** se smatra najsigurnijom od tri metode, s obzirom na to da druga dva načina ne pružaju integritet jasnog teksta te otvaraju vrata napadima izmjene teksta (//malleability//) ili napadima pogađanja (//oracle attack//). | najsigurnijom se smatra **EtM**. Druge dvije ne pružaju integritet jasnog teksta te otvaraju vrata napadima izmjene teksta (//malleability//) ili napadima pogađanja (//oracle attack//). |
| |
| {{ ::mac_modes.png?nolink&600 | Načini korištenja kriptiranja uz MAC [3]}} | {{ ::mac_modes.png?nolink&600 | Načini korištenja kriptiranja uz MAC [3]}} |
| |
| Budući da MAC ne koristi simetričnu kriptografiju, ne može osigurati svojstvo neporecivosti, odnosno nema pošiljatelj nakon slanja poruke može poreći da ju je poslao jer nema nikakvog dokaza da je poruka poslana. Drugo ograničenje je što se ključ mora unaprijed definirati, odnosno moramo unaprijed znati kome sve poruka terba stići i s tim osobama definirati svoj tajni ključ. | Budući da MAC ne koristi asimetričnu kriptografiju, ne može osigurati svojstvo neporecivosti, odnosno pošiljatelj nakon slanja poruke može poreći da ju je poslao jer ne postoji dokaz o slanju poruke. Drugo ograničenje je što se ključ mora unaprijed definirati, odnosno moramo unaprijed znati kome sve poruka treba stići i sa svakom osobom zasebno definirati tajni ključ. |
| | |
| Da bismo MAC smatrali sigurnim, mora biti otporan na egzistencijalne krivotvorine kod napada odabranim tekstom. Odnosno, ne smije se dogoditi da netko može uspješno dohvatiti MAC za odabrani jasni tekst bez posjedovanja odgovarajućeg ključa. | Da bismo MAC smatrali sigurnim, mora biti otporan na egzistencijalne krivotvorine kod napada odabranim tekstom. Odnosno, ne smije se dogoditi da netko može uspješno dohvatiti MAC za odabrani jasni tekst bez posjedovanja odgovarajućeg ključa. |
| [2] Henk C. A. Tilborg, Encyclopedia of Cryptography and Security, Springer-Verlag US, 2005.\\ | [2] Henk C. A. Tilborg, Encyclopedia of Cryptography and Security, Springer-Verlag US, 2005.\\ |
| [3] Kriptografija i kriptoanaliza, predavanja, FER\\ | [3] Kriptografija i kriptoanaliza, predavanja, FER\\ |
| [4] https://www.tutorialspoint.com/cryptography/message_authentication.htm | [4] https://www.tutorialspoint.com/cryptography/message_authentication.htm\\ |
| | [5] https://www.geeksforgeeks.org/how-message-authentication-code-works/\\ |
| |