The 2006 World Cup winner and Ballon d'Or recipient returns to management after a brief stint with Udinese earlier in the year, where he led the side for only six matches.
He was previously caretaker manager for China's national team and Al Nassr in Saudi Arabia.
"His charisma, championship pedigree, and hunger for success make him the ideal candidate. He knows the team, the league, and the challenges ahead," a statement from Dinamo said.
He replaces Nenad Bjelica, who was dismissed following lacklustre results in the top-tier Croatian Football League where the side is third, seven points behind Rijeka at top.
Cannavaro will take over the team after the New Year, with his first match at Arsenal on January 22nd, in the Champions League group stage, where Dinamo are 24th, the last spot in the playoff section.