Internet of Things (IoT) paradigm makes billions of our everyday life objects part of the Internet. This interconnection generates a huge amount of private data, which needs to be processed, transferred, and stored. Using classical security solutions to ensure data confidentiality in this context is challenging. In fact, these solutions have to deal with high scalability requirements, heterogeneity of the involved building blocks, in addition to resources scarcity of the embedded devices such as energy and computational limitations. In this presentation, i will investigate the issue of designing safe security protocols while taking into consideration IoT specificities. I will proceed by briefly introducing the IoT concept, its applications, along with its different architectures and communication protocols. Then, i will focus my attention on two key exchange protocols. The first protocol aims to establish a shared secret between constrained entities and remote entities in an end to end way, while the second protocol aims to manage key distribution for group communications. In the final part of the presentation, i will highlight some research directions to close the gap between the security concerns of both IoT and collaborative applications.