  In this paper, we present a comprehensive survey of authentication protocols
for Internet of Things (IoT). Specifically, we select and in-detail examine
more than forty authentication protocols developed for or applied in the
context of the IoT under four environments, including: (1) Machine to machine
communications (M2M), (2) Internet of Vehicles (IoV), (3) Internet of Energy
(IoE), and (4) Internet of Sensors (IoS). We start by reviewing all survey
articles published in the recent years that focusing on different aspects of
the IoT idea. Then, we review threat models, countermeasures, and formal
security verification techniques used in authentication protocols for the IoT.
In addition, we provide a taxonomy and comparison of authentication protocols
for the IoT in form of tables in five terms, namely, network model, goals, main
processes, computation complexity, and communication overhead. Based on the
current survey, we identify open issues and suggest hints for future research.
