Drone technology is developing very rapidly. Flying devices accomplishing various applications are becoming an integral part of our daily life undoubtedly. Drones are characterized by extreme mobility, decent computing power, scalability, and a very short lifetime due to energy constraints. The rise of drones inevitably enabled swarms and drone networking applications. Drone networks is a path-breaking subclass of flying ad-hoc networks with unique capabilities and specific requirements. One very important challenge with swarms is the device authentication problem, in other words, proving the identity of a single or a group of drones that request to join the swarm. In this paper, we tackle this emerging problem and propose a novel context-aware mutual authentication protocol. The proposed protocol provides authentication for groups of drones and supports recovering a swarm in case of network separation. Likewise, the protocol can handle drone joins and leaves. Moreover, the protocol is not dependent on network infrastructure, secure storage, and secure channels. We tested the protocol using an automated formal security protocol verification tool, called Scyther. The tests resulted in the complete verification of the authentication and secrecy claims for arbitrary network instances and all defined use-cases. The protocol is also shown to have proven performance advantages over the existing schemes.