Cipher Block Chaining CBC-MAC
Last updated
Last updated
рд╕реАрдЦреЗрдВ рдФрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рдХрд░реЗрдВ AWS рд╣реИрдХрд┐рдВрдЧ:HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг AWS рд░реЗрдб рдЯреАрдо рдПрдХреНрд╕рдкрд░реНрдЯ (ARTE) рд╕реАрдЦреЗрдВ рдФрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рдХрд░реЗрдВ GCP рд╣реИрдХрд┐рдВрдЧ: HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг GCP рд░реЗрдб рдЯреАрдо рдПрдХреНрд╕рдкрд░реНрдЯ (GRTE)
рдЕрдЧрд░ рдХреБрдХреА рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╣реИ (рдпрд╛ рдХреБрдХреА рдХрд╛ рдкрд╣рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╣реИ) рдФрд░ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдПрдбрдорд┐рди" рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рддреЛ, рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо "рдмреАрдбрдорд┐рди" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдХреА рдХреЗ рдкрд╣рд▓реЗ рдмрд╛рдЗрдЯ рдХреЛ рдмреНрд░реВрдЯрдлреЛрд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд╛рдЗрдлрд░ рдмреНрд▓реЙрдХ рдЪреЗрдирд┐рдВрдЧ рдореИрд╕реЗрдЬ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдХреЛрдб (CBC-MAC) рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдЧреБрдкреНрддрд╢рд╛рд╕реНрддреНрд░ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдПрдХ рд╕рдВрджреЗрд╢ рд▓реЗрдХрд░ рдЙрд╕реЗ рдмреНрд▓реЙрдХ рджреНрд╡рд╛рд░рд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреА рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкрд┐рдЫрд▓реЗ рдмреНрд▓реЙрдХ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдмреНрд▓реЙрдХреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ рд╕рдВрджреЗрд╢ рдХреЗ рдПрдХ рднреА рдмрд┐рдЯ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдЕрдВрддрд┐рдо рдмреНрд▓реЙрдХ рдореЗрдВ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдЧрд╛ред рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдмрдирд╛рдиреЗ рдпрд╛ рдЙрд▓рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕рдВрджреЗрд╢ m рдХрд╛ CBC-MAC рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рд╢реВрдиреНрдп рдкреНрд░рд╛рд░рдВрднреАрдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде m рдХреЛ CBC рдореЛрдб рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рдмреНрд▓реЙрдХ рдХреЛ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдореНрди рдЪрд┐рддреНрд░ рдореЗрдВ рдПрдХ рдЧреБрдкреНрдд рдХреБрдВрдЬреА k рдФрд░ рдПрдХ рдмреНрд▓реЙрдХ рд╕рд╛рдЗрдлрд░ E рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрджреЗрд╢ рдХрд╛ CBC-MAC рдХреА рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╣реИ:
CBC-MAC рдХреЗ рд╕рд╛рде рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ IV 0 рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 2 рдЬреНрдЮрд╛рдд рд╕рдВрджреЗрд╢ (m1
рдФрд░ m2
) рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ 2 рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (s1
рдФрд░ s2
) рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП:
E(m1 XOR 0) = s1
E(m2 XOR 0) = s2
рдлрд┐рд░ m1 рдФрд░ m2 рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╕рдВрджреЗрд╢ (m3) 2 рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (s31 рдФрд░ s32) рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:
E(m1 XOR 0) = s31 = s1
E(m2 XOR s1) = s32
рдЬрд┐рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреА рдХреБрдВрдЬреА рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реБрдП рднреА рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рд╕реЛрдЪрд┐рдП рдЖрдк 8 рдмрд╛рдЗрдЯ рдмреНрд▓реЙрдХ рдореЗрдВ рдирд╛рдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
рдПрдбрдорд┐рдирд┐рд╕реНрдЯ
рд░реЗрдЯрд░\00\00\00
рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯ (m1) рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (s1) рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдлрд┐рд░, рдЖрдк рд░реЗрдЯрд░\00\00\00 XOR s1
рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ E(m2 XOR s1 XOR 0)
рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдЬреЛ s32 рд╣реИред
рдЕрдм, рдЖрдк s32 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реЗ рдирд╛рдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯ (m1) рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ s1 рд╣реИ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд░реЗрдЯрд░\x00\x00\x00 XOR s1 XOR 0 рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ s32 рд╣реИ**ред**
рдХреБрдХреА рдХреЛ s32 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдиреНрдп рдХреБрдХреА рд╣реЛрдЧреАред
рдпрджрд┐ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП IV рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рд╣рдорд▓рд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдХреБрдХреА рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░" рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЗрд╕рдХреА рдХреБрдХреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдЕрдм, рдпрджрд┐ рдЖрдк IV рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк IV рдХрд╛ рдкрд╣рд▓рд╛ рдмрд╛рдЗрдЯ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ IV[0] XOR "A" == IV'[0] XOR "a" рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреБрдХреА рдкреБрдирдГ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХреЗрдВред рдпрд╣ рдХреБрдХреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реЛрдЧреАред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА https://en.wikipedia.org/wiki/CBC-MAC
рд╕реАрдЦреЗрдВ рдФрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рдХрд░реЗрдВ AWS рд╣реИрдХрд┐рдВрдЧ:HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг AWS рд░реЗрдб рдЯреАрдо рдПрдХреНрд╕рдкрд░реНрдЯ (ARTE) рд╕реАрдЦреЗрдВ рдФрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рдХрд░реЗрдВ GCP рд╣реИрдХрд┐рдВрдЧ: HackTricks рдкреНрд░рд╢рд┐рдХреНрд╖рдг GCP рд░реЗрдб рдЯреАрдо рдПрдХреНрд╕рдкрд░реНрдЯ (GRTE)