Internet of Things (IoT) is a network of devices that communicate with each other through the internet and provide intelligence to industry and people. These devices are running in potentially hostile environments, so the need for security is critical. Trust management aims to ensure the reliability of the network by assigning a trust value to every node, indicating its trust level. In this paper, we systematically review and analyze the current state of the art in trust management appraoches for IoT. We provide a classification into nine categories based on the tools, methods, and technologies used to form trust management techniques (collect information for trust formation, compute, and store the trust values). We also discuss the limitations and strengths of each category, as well as the open challenges and future research directions. We aim to help the reader understand the current challenges of the field, design a solid trust management system, and navigate through the literature.