When talking about IoTs we should think on that everyday object surrounding us could be a proactive actor. Nodes such as fridges, mobile telephones, cars, etc., need an identification that identifies it on their interactive communication and also when they connect to Internet. Moreover, when the devices join a network, they must have to be aware of all the different tasks needed to communicate with each other and the configuration of both logical and physical parameters (all of them should be automatic) [14], establishing the first value of trust. Users bring their resources to the system.
If we want to work with the community, at least one of the users of the spontaneous network needs to have Internet connection. The connection will be shared and that device will be the one that provides the access to the WWW (it could be applied to other services such as email, file sharing, etc.). There could be more than one Internet access in the spontaneous network and each one could share different services.
If none of network devices have Internet connection it will not be possible to collaborate on the community in a synchronous way. The work carries out by this team will be sent to Internet when the device, in charge of sending the data, can access to a connection. As a recommendation, at least one user having an Internet connection will be necessary on each team. It will guarantee an effective and right community work.
In this model, a user contributes capabilities, technical resources to access external services, and other applications (reports, exercises, games and other data which they may wish to share). The intranet and its view to the outside world permit the community both internal and external cooperations.
Resources of devices can also be used according to their available capacities. One user may be responsible for processing a specific task if another one needs to carry out this but does not find it possible owing to the fact that the device does not have enough resources. The following tasks should be performed when a user joins the spontaneous network:
-
1.
Node identification.
-
2.
Identification between nodes.
-
3.
Trust establishment.
-
4.
Address assignment.
-
5.
Union to services.
These tasks should be carried out with a security mechanism. Consequently, when configuring an ad-hoc network, one of the main problems arising deals with the generation of a unique IP address. Most of the routing protocols assume that the mobile nodes are configured a priori with a unique IP address before becoming part of the network, which is not the case here. The problem comes from not knowing the topology of the network, neither when being set up, nor later on modification. A node may enter or leave the network at will at any time, so a protocol must be capable of managing the generation of these IP addresses in order to run the network properly [15]. Also, the protocol must be able to detect the existence of duplicated IP addresses, which may occur, for example, when two subnetworks join together, or when a node which leaves one subnetwork with an IP (until then unique) joins another, or even when there is a substitution attack on the nodes. Some authors have solved this problem using DHT-based algorithms [14] as self-organizing systems and others use hyper cubes to implement indirect routing [16].
Faced with this challenge and after analyzing the working of ad-hoc networks, within the established framework, we propose a distributed and de-centralized solution (Figure 1).
Our proposal begins with the awareness that ad-hoc spontaneous networks need a flexible protocol which adapts itself to any number of different nodes and to their different characteristics. We could think on education collaborative environments in non-developing countries. People living there usually do not have devices with high resources and technology, connections have usually low bandwidth and not all people can access to it. In these places, the collaboration with developing countries could be really important to increase the development and educational level. Cultural aspects such a “language” could generate in this case the community.
In the formation of these networks a range of different devices (cell phones, PDAs, laptops, etc.) may take part. These nodes have to be configured in order to be part of the network. In spite of the fact that our networks do not include central servers, the operating of the wireless network must be similar to one with IP configuration infrastructure: translation of DNSs, service identification, etc. On the other hand, a minimum intervention of the user is required because it will be used by non-expert users, so the configuration must take place independently. The configuration of all the parameters necessary to form such networks implies an exchange of information among nodes.
In our proposal, we have designed a model where the nodes’ IP addresses configuration has two main phases: first, a local connection address is generated by the node that wants to take part of the network. In order to generate the address we fixed the network identifier to a class B network that starts with 169.254 in IPv4 case. The same process is done with IPv6 (a link-local address is formed by using the well-known link-local prefix FE80::0). The rest of the IP address is formed by the chain of a random number of 4 bits in IPv4 case, that lets regenerate the IP if it has been duplicated, and 12 bits obtained from the 12 last bits of the obtained hash when we pass a hash function to the user’s data. In IPv6 case, the number of bits is changed to generate same data. Second, we must check the IP duplication by one of the nodes that is already in the network. In order to perform this check, the node uses a broadcast technique that sends a packet with the proposed IP. If a node is using this IP, it answers to the new node. As the IP cannot be used by the new node, it has to propose a new IP. More details about the automatic configuration procedure can be read in [17].
Our approach is based on human relations. The set-up configuration is based on presentation or greeting. In a group of friends, a new individual is introduced to the other members by one of the participants. This member already knows the other’s presentation data or may obtain it at the moment of presentation. He or she is then responsible for facilitating the new member’s integration easily and simply into the group. On educational environments, teachers usually establish trust among themselves. New teachers will be introduced by those teachers that personally know these new people. If nobody knows a person, trust will not be established. Consequently, the network management is built and run by cooperation among nodes, behaving similarly to human relations in our society. Thus, the formation of these networks is carried out in two principal phases: the first one is the presentation, greeting, or pre-identification and the second phase deals with the creation of the network and communication. As we can see in [18], the social relationship could be modeled as a spontaneous network. This has been the main reason to make a communication network based on this type of communications.
The presentation phase follows the human rituals enacted when different individuals come together to form a work group. This is carried out by one of the nodes already belonging to the network. In this phase, devices exchange the necessary information in order to be recognized; by presenting this information they gain access to the network. In this way, any user may come to be part of the network without having high level of computing knowledge. A user connected to the device has to insert his or her personal information when accessing the network for the first time. Automatically, a data configuration proposal is generated and available devices within range are identified. The intervention of the user is limited to select the user among those detected by the device and with which he or she wished to pre-authenticate. In the pre-authentication phase, the user also decides the trust level they have on the other user. A new teacher must carry out the authentication process selecting a device of one teacher he or she knows. If he or she does the process selecting other device, he or she does not obtain trust on the network. Trust could be obtained later, if the new device has a suitable behavior. We will see how trust changes in next section.
Once the device has been selected, the interexchange of presentation information takes place automatically between the two nodes; this information after being exchanged and authenticated, allows participants to gain access to the generated network and to establish the first value of trust existing among these users. In this network, each node acts both as a client and as a server, sending and receiving information and providing services to the other nodes in the network on request (e.g., PDAs, laptops, cell phones, among others). A device will receive the services offered by other devices, accessing to those it needs.
Trust must be established on an automatic way or previously by a user, company, or manufacturer if devices do not have a user that controls it. In the case of an automation system, the installer could establish trust among devices. In other cases, such a sensor that meets others a default value could be established. It could be changed by the performance processes of this node along the time. We work in this example with users with devices that meet each other.
In this scenario, the first node that creates the network is in charge of generating the “network data”, which we could also call “community data”. These “community data” will be sent to each node that be authenticated by one node that already belongs to the network. All nodes will work as everyday objects that surround us, they will become proactive actors, generating, and consuming information. However, when transferring data or services to other communities, we will not work with them as individuals, we will treat them as groups or communities (cars, electrical appliances…). All of them will have embedded computational capabilities and will work together to provide service on different sectors such as healthcare, logistics, automation systems, entertainment, and so on.
We can find some examples working now on IoTs in the CeNSE project by HP Labs, focused on the deployment of a worldwide sensor network in order to create a “central nervous system for the Earth”, or the project “A Smarter Planet”, a strategy developed by IBM which considers sensors as fundamental pillars in intelligent water management systems and intelligent cities [19]. At the same time, the technologies that will enable the integration are being developed and tested. The IPv6 over Low power Wireless Personal Area Networks (6LowPAN) standard, defined by Internet Engineering Task Force (IETF) [20], allows the transmission of IPv6 packets through computationally restricted networks. However, having IP connectivity does not mean that every sensor node should be directly connected to the Internet so security is becoming one the most challenges in this matter. In [21], the authors focused on one specific challenge: the actual connectivity model between the WSN and the Internet, trying to answer if sensor nodes should delegate all Internet communications to a set of central management systems, or should they become first-class citizens of the Internet by implementing the entire TCP/IP stack plus other standards like web services.