# H2O: Secure Interactions in IoT via Behavioral Fingerprinting
## 2 Related Works
### Object-to-Object Approaches  
Typically, we refer to remote attestation as the security service through which an object can ascertain the current state of a potentially compromised remote device before interacting with it. The aim of remote attestation is to allow a remote system (i.e., challenger) to check the level of trust of another system (i.e., attestator). In [30], the authors present a Multiple-Tier Remote Attestation protocol, called MTRA, verifying program integrity in IoT devices. In particular, more powerful devices are monitored by means of trusted hardware through a Trusted Platform Module (TPM), while less capable ones are verified leveraging a software-based attestation. Still in this context, the paper presented in [31] describes a many-to-one attestation scheme for device swarms, which reduces the possibility of single point of failure verifier typical of architectures in which a single node (i.e., the verifier) has to attest the reliability of multiple IoT devices. Other works focusing on object-to-object interaction study a way to address the challenge of IoT device identification [8; 21; 22; 23; 32; 33]. These works leverage the concept of device fingerprinting, that is a way to identify an object not relying on its classical network identities, such as IP or MAC address, but exploiting the information from the packets which the device exchanges over the network. In particular, the work presented in [21] tackles this issue by analyzing a sequence of packets from high-level network traffic and extracting from it a set of unique flow-based features to create a fingerprint for each device through machine learning techniques. The authors of [23] have the same goals, but they base their proposal on deep learning techniques. Whereas, the authors of [22] present an approach called IoT Sentinel able to automatically identifying vulnerable devices being connected to an IoT network and enforcing mitigation measures for them, so as to minimize damage resulting from their compromise. Also the proposal presented in [32] provides an IoT device identification method that models the behavior of the network packets communicated by the devices. In the context of object-to-object interaction, a related concept is the definition of reliability and trust among things. However, due to the highly dynamic nature of the network and the large number of entities with heterogeneous computation abilities involved, it is difficult to directly apply to IoT classical approaches thought for sensor or P2P networks [16; 34; 35; 36]. In particular, works leveraging cryptographic primitives [16; 17; 36] are computational demanding and they are not secure against internal malicious nodes having the valid cryptographic keys. On the other hand, nodes can be hacked or compromised, but they can also have hardware faults, and relying only on cryptographic mechanisms does not lead to the exclusion of these nodes from the network. In [35], the authors describe an approach based on cryptographic primitives in which each entity has a unique and trustworthy identity. In addition, a trusted device evaluates the behavior and the performance of the nodes comparing a saved trust metric and the indirect information from a third node. In [37], the authors present IoTrust a trust architecture with a middleware layer performing authorization. The main drawback of these two schemes is that they are based on an external and reliable level that computes node reputation score. Furthermore, they defend only against some kind of attacks, such as: modification, replay, and message dropping attacks. The proposals of [38; 39; 40] are based on Blockchain technology to provide forms of trust or authentication in a IoT network. In particular, in [38] the authors describe an Obligation Chain containing obligations generated by a number of nodes, called Service Consumers, which are first locally accepted by Service Providers and, then, shared to the rest of the network.