The past few years have seen the topic of Internet of Things (IoT) rush into the forefront of various industries, which is changing people’s conventional production methods and lifestyles. Connected to the Internet, the physical devices could be as fluffy as kids’ teddy bears or as balky as driverless cars. However, the security related to the IoT is faced with some serious challenges simultaneously. Confronted with these issues, we propose a mutual authentication protocol for devices in the IoT system. It is lightweight that just hash functions, XORs as well as PUFs are utilized and there is no need to store plenty of pseudo-identities. Furthermore, not only does it use the reverse fuzzy extractor to acclimatize to the noisy environment, but it also introduces the supplementary sub-protocol to enhance the resistance to the desynchronization attack. Besides, the security analysis based on the improved BAN logic by Mao and Boyd presents the higher security and reliability of the proposed protocol, and the performance analysis shows its more comprehensive functions as well as lower computation and communication overhead.