В Канаде я с таким ни разу не сталкивался, хотя сам собачник и хожу там, где потенциально бывают собаки. Но в России - постоянно. Принципы защиты как и с человеком, пардон, бить по морде кулаками. Выставляем вперед левое предплечье, собака норовит за него схватить, затем правой бьем в нос, или сверху в переносицу. Это если прямо совсем нападают. Если просто лают и бросаются, можно резко повернуться к собаке, замахнуться, сделать гнусную физиономию, кинуть что-нибудь. Если это одна собака, то она скорее всего отступит. Нужно просто всегда помнить, что собака это зверь, который добычу гонит (в отличие от кошки, которая ее выслеживает из засады). Если вы повернетесь и отбежите, или отскочите, велика вероятность, что собака инстинктивно вас атакует. А если "принять бой", то далеко не всякая собака будет к этому готова, если это не стая. Со стаей сложнее. Один раз я брел по ночной Самаре (в командировке) и на меня напала стая бродячих собак. Я отбивался, а они все нападали и нападали, пока в конце-концов проезжающий мимо водитель не направил машину прямиком в стаю. Только после этого они отступили.
Насчет канадских правовых аспектов не в курсе, но уж лучше пусть трое судят, чем четверо несут.
Для девушек, да, скорей всего лучше что-нибудь другое, более технологичное. Мне психологически проще напасть в ответ, потому что я, как уже выше говорил, сам собачник.
И, да, все это работает только против "бобиков". Если собака (любая) натренирована на человека (что в России не такая уж и редкость), то это очень и очень плохо. На меня, к счастью, такие не нападали.