Towards Secure Fog Computing: A Survey on Trust Management, Privacy, Authentication, Threats and Access Control

: Fog computing is an emerging computing paradigm that has come into consideration for the deployment of Internet of Things (IoT) applications amongst researchers and technology industries over the last few years. Fog is highly distributed and consists of a wide number of autonomous end devices, which contribute to the processing. However, the variety of devices offered across different users are not audited. Hence, the security of Fog devices is a major concern that should come into consideration. Therefore, to provide the necessary security for Fog devices, there is a need to understand what the security concerns are with regards to Fog. All aspects of Fog security, which have not been covered by other literature works, need to be identiﬁed and aggregated. On the other hand, privacy preservation for user’s data in Fog devices and application data processed in Fog devices is another concern. To provide the appropriate level of trust and privacy, there is a need to focus on authentication, threats and access control mechanisms as well as privacy protection techniques in Fog computing. In this paper, a survey along with a taxonomy is proposed, which presents an overview of existing security concerns in the context of the Fog computing paradigm. Moreover, the Blockchain-based solutions towards a secure Fog computing environment is presented and various research challenges and directions for future research are discussed.


Introduction
The computational world has become very broad and complicated as the expectations are going beyond connecting people. We are about to approach a new era, where everything will be connected. With the swift development of technology, many individuals and organizations are starting to provide services to users with the help of their smart devices such as cell phones, home appliances, vehicles, wearable embedded devices, sensors, and actuators. The underlying work is performed by massive-scaled wireless sensor networks and realms of connected devices, which is aptly termed as the Internet of Things (IoT) [1]. IoT has achieved much attention over the last couple of years and has been enumerated as the predestination of the Internet. Gartner highlighted that the total number of connected devices by the end of 2020 [2] would be more than 20 billion devices that exist across various consumers and business organizations. Moreover, Norton security organization predicted that by 2025 there will be more than 21 billion devices [3]. As IoT continues to flourish, a huge number of sensors have been devoted to diversified devices, which are swiftly leading to an increased amount of generated data and storage requirements on a regular basis [4].
IoT application processing is dependent on the cloud. As the exponential growth of IoT devices continues to generate huge amounts of data, these IoT devices cannot be dependent on any central entity such as the cloud computing paradigm to process these huge amounts of data. The Fog computing paradigm is evolving to serve various services while simultaneously managing numerous sensors, actuators, users, processes, and connectivity by placing processing facilities closer to users. In addition, the edge devices generate data from their designated areas and link with each other or transmit to the neighboring Fog nodes for supplementary analytic and decisions. The Fog computing paradigm can solve the time-sensitive application processing limitations of the cloud as well as supporting IoT applications. Fog devices reside at the network edge to facilitate computing services close to the users and deliver services as well as applications for billions of connected devices. This helps to support real-time processing, storage and networking facilities at the edge level [5].
Naha et al. [6] defined Fog as "Fog computing is a distributed computing platform where most of the processing will be done by virtualised and non-virtualised end or edge devices. It is also associated with the cloud for non-latency-aware processing and longterm storage of useful data by residing in between users and the cloud." Bonomi et al. [5] defined Fog as "Fog computing is a highly virtualized platform that provides compute, storage, and networking services between IoT devices and traditional cloud computing data centers, typically, but not exclusively located at the edge of network." Due to the nature of edge processing, Fog computing is useful for various smart applications such as (i) Smart Transportation System, (ii) Smart Vehicle, (iii) Augmented and Virtual Reality, (iv) Smart Healthcare, (v) Smart City, and other interactive smart and time-sensitive applications [6].
Since smart devices or Fog devices are categorized as resource constraints, the Fog computing paradigm will face many challenges such as the limitations of storage, bandwidth, battery, and computation power, which leads to obstruction in the rise of IoT. To overcome the encumbrance of these limitations, the cloud computing paradigm is perceived as a talented computing archetype, which can distribute services to the edge via the cloud in terms of Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) solutions which offer applications and services with resilient resources at low costs [7]. Over the last few decades, cloud computing has obtained an immense reputation among researchers. Real-time IoT application services and information access become available anytime and anywhere via this paradigm. Cloud computing also offers diverse features to users such as ease of access to information, cost efficiency, quick deployment, backup and recovery. Although cloud computing has fulfilled most of the demands of modern technology, it may not be a suitable solution as there are still unresolved problems, whereas IoT devices and applications need to be processed swiftly. This is beyond the existing capabilities of cloud computing. Hence, security and privacy, data segregation, mobility support, low latency, location-awareness, geo-distribution and real-time applications are required for IoT applications. Privacy needs to be considered from both the user and provider perspectives. Since Fog application processing is done in the users' devices, preserving the privacy of user data is important. On the other hand, the Fog provider is the processing application in the user devices, hence, preserving the privacy of application data is equally important. While Fog computing offers a much more advantageous system as opposed to cloud-based systems, there are several security issues at hand which can cause interruptions to the way deployment is carried out using Fog computing.
Millions of users are affected because of data breaches in the past decade [8]. Since Fog computation is done in the untrusted devices, security is an important concern. In reality, due to the associated privacy and security risks for cloud-based systems, nearly 74% of Information and communications technology (ICT) executive officers have rejected adopting cloud computing [9]. In this work, the boundary of privacy is mostly authentication while the boundary of confidentiality is access control and trust management. Fog computing is not at a mature stage and continues to face new challenges due to its exclusive features. In the Fog computing environment, most devices are managed and maintained across different users. The Fog computing paradigm uses idle resources generated from user devices. These devices are not audited by any standard body, which raises security concerns in the Fog environment. On the other hand, secure and fast authentication mechanisms are required for Fog since many devices are involved in the Fog application processing. Furthermore, there is a need to be very concerned about access control since most of the application processing is carried out in the user devices. The security issues across various layers of the Fog computing environment are presented in Figure 1.

Research Motivation
Cloud computing is already recognized by its widespread deployment amongst its targeted environment. However, it faces numerous obstacles such as latency, bandwidth, Quality of Service (QoS), trust, security, privacy, trust, threats and attacks during the early stages of its deployment. Therefore, privacy and security are the key challenges for the cloud computing paradigm. In the case of Fog computing, it was inaugurated as a new computing paradigm, which has emerged over the last few years as a bridge between cloud data centers and edge devices or IoT devices. User devices and end devices are the main components for computation in the Fog environment, which is not usually audited by any security standard. Therefore, the key aim of this work is to come up with a methodical review on state-of-the-art approaches and techniques in addressing Fog computing security and privacy issues from the auditing perspective and pinpoint challenges as well as the possible direction for researchers and application developers. One of the main aims of this paper is to verify whether the centralised solutions and distributed solutions are valid in this environment or not. Hence, this study also look into the potential Blockchain technologies and how to utilize them in Fog computing.

Existing Related Surveys on Fog Computing Security
There has been a variety of techniques proposed in the literature to address the security issues of the emerging Fog computing. Most of these research papers either presented Fog security concerns or merely focused on one aspect of Fog security. Here, we have summarized and given a concise overview with regards to Fog security by combining the opinions across several of these research works.
In the context of Fog security, Yi et al. [10] briefly examined various security issues and tried to identify various challenge domains corresponding to the solutions of the Fog computing environment. Zhang et al. [11] discussed and analyzed the adhering potential security and trust issues, and explored solutions which are currently available for those issues. Khan et al. [12] explored common security gaps in Fog computing from the existing surveys. Alrawais et al. [13] investigated and discussed various privacy and security issues in Fog computing environments. Rauf et al. [14] discussed IoT, Fog and their security issues. Stojmenovic et al. [15] investigated intrusion detection and authentication techniques in Fog computing. Wang et al. [16] presented and discussed the concerns and challenges in Fog forensics and security. Recently, Roman et al. [17] explored potential threats associated with the mobile edge, mobile cloud and Fog computing. Din et al. [18] discussed the importance of trust in the future internet and presented a comprehensive overview of many suitable trust management strategies to verify the techniques are suitable for future IoT. In Hassija et al. [19], a comprehensive analysis of the IoT application threats and securityrelated issues are presented, and the ways to achieve the trust using different emerging technologies are also discussed. Tariq et al. [20] reviewed and presented the Fog-enabled IoT system applications security requirements and also presented the taxonomy of security threats in IoT-Fog applications. Several authors discussed the trust and privacy issues in Bigdata Fog enabled IoT systems. Bigdata are usually transferred over data transfer protocol and data transfer can be more efficient if we consider security since sensitive data are transferring over these protocols [21][22][23][24]. Tange et al. [25] identified the industrial IoT (IIoT) security requirements for efficient Fog computing-based security solutions.
In the current literature, there is a gap in the aggregation of all Fog security-related issues. None of the literary works presented a critical evaluation of all aspects of Fog security, as it has been done in this paper. Neither did they discuss Fog security issues from the auditing perspective. Different studies regarding Fog computing security and privacy did not cover the various security issues related to the Fog computing architecture and its environment. In this paper, authors will explore and explain various security concerns related to the Fog computing environment. Since Fog computing extends to the cloud system, most of the cloud computing security concerns [26] are being inherited and impact Fog computing as well. The authors have focused their attention on significant security, threats and attack issues such as trust management, privacy, authentication and access control. These security concerns are linked with Fog and have explained how these concerns could affect Fog security. In addition, it has discussed how Blockchain could mitigate some Fog related security issues. The authors have systematically focused the attention on significant security and threat-attack issues from several selected sets of papers to provide a detailed landscape in this field.

Key Contributions
This survey is intended to provide an exhaustive review across current studies by covering all related Fog security issues and challenges. This work also concentrates on constructing a review of Fog computing with a focus on the related challenges and security issues from the auditing perspective. The principal contributions of this study can be recapped as follows: • Propose a taxonomy based on various security issues such as authentication, access control, privacy preservation, trust management, threats, attacks and security auditing, which are challenging for the Fog environment.
• Highlights and discusses various threats and attacks which might be severe in the Fog environment. • Discuss probable challenges and future research directions in Fog computing with respect to security. • Explains how Blockchain and auditing could help to mitigate Fog security challenges.
The rest of the paper is organized in the following manner: research methodology and evaluation are presented in Section 2. Section 3 provides an overview of Fog computing. Section 4 discusses the Fog network and data security issues. Section 5 demonstrates the proposed taxonomy on security issues in Fog computing. Section 6 discussed Blockchain technologies in Fog and presented how Blockchain technology can be utilized to improve Fog security. Sections 7 and 8 present the research challenges, future research directions, and conclusions. All abbreviations used in this paper presented in Table 1.

Paper Selection Approaches
To exploit the coverage of the searched literature in this work, we began by identifying the most used alternative words and synonyms in the research questionnaire. Therefore, we conducted our selection strategy based on our proposed taxonomy and Table 2 searching criteria. We first categorized the current research security issues and challenges for Fog computing into six categories: 1. Trust, 2. Privacy, 3. Authentication, 4. Access-Control, 5. Threats and Attacks, 6. Security Audit. We also looked into the security issues and solutions of other areas such as cloud computing, edge computing, and Blockchain which could suit the Fog computing environment. In order to focus on the most relevant articles based on the aims of our research, we also constructed different search strings using Boolean AND and OR operators. Then, we conducted a manual search (Fog computing security issue or privacy and security issue in Fog computing), using different search engines such as Google, Bing, and Baidu in the area of cloud computing, Fog computing security based on the search criteria in Table 2. The same approach was applied in renowned scientific research databases such as Google Scholar, ACM Digital Library, IEEE Xplore, Springer, Science Direct, and ResearchGate. Figure 2 presents our paper selection approach. We applied the Mendeley tool as well as the Google Scholar to manage citations from all extracted articles. We conducted our papers selection and evaluation based on the various criteria as shown in Table 2.

Evaluation of Results
After the initial exploration using several search strings from the sources above, we found 220 relevant papers and articles. After searching, filtering, inclusion and exclusion reviews, 127 articles were matched from the first filtration. With respect to our taxonomy, we have separated all these papers into various partitions.
Sections 3-5 are answering our first two research questions. The third research question is answered by Sections 5-7.

An Overview of Fog Computing
Fog computing ideally demonstrates the concept of a distributed network environment that connects two different environments and is closely linked with cloud computing and IoT. This new computing paradigm was initially and formally introduced by Cisco to extend the cloud network to the edge of the enterprise network [5]. The architecture of a Fog environment has three layers-the IoT layer, the Fog layer and the Cloud layer, as shown in Figure 3. The IoT layer consists of a massive amount of sensors and end devices. These devices include any mobile devices such as tablets or smart phones, single-board computers and micro controller units. This layer is liable for collecting and sending the data generated from devices to the Fog devices in the Fog layer. The Fog layer is the intermediary level which provides a link between the cloud and the IoT layer. The Fog devices in this layer process the received data and send the results to the cloud to store for future use. Individuals or organizations are providing Fog devices to process the applications in a Fog environment by contributing their idle resources. The providers should compensate for their offered resources based on the usage in a way that both providers and users will benefit [27]. The Cloud layer provides more available storage with no extra servers allowing the access of data anywhere, anytime.
In  [6,12]. Ai et al. [28] provided a detail tutorial on three traditional edge related computing technologies, such as Fog, MEC and cloudlets. They also summarised standardisation, architectures, applications and principles of these technologies. However, the key difference is that it creates an enormously virtualized platform that offers diversified computation, storage and network services to its clients via unused end-device resources. With the features and characteristics of the Fog computing continuing to improve, the performances of a wide range of domains across different real-time IoT specific applications such as City: smart office, smart home, smart waste management; Electricity: smart grid; smart metering, Health: smart health care system, Transportation: smart vehicle accident prevention; traffic flow maintenance; Smart Traffic Light System (STLS); Traffic control system, Entertainment: real-time video streaming and gaming systems are shown in Table 3.  However, Fog computing has provided numerous other issues and challenges such as security and privacy. The technical distinctions between Fog and cloud computing from a security aspect are exhibited in Table 4. The OpenFog Consortium, technology giants, researchers and developers are strongly trying to mitigate these issues. Therefore, if they were able to attenuate all these issues, then it would be deemed capable to deal with the constantly increasing number of networked computational devices. This would then make the Fog platform the future of computing.
In accordance with the study of Fog computing characteristics, we have illustrated a differential table based on cloud and Fog features- Table 4. Finally, we have pointed out a few challenges that exist for the current cloud technology. Therefore, we have also illustrated a table and highlighted how Fog eliminates these challenges- Table 5.  Table 5. Security challenges at Fog.

Security of computing and access control
With Fog, the computation, process, storage and control of sensitive tasks are done as near as possible to the end user's device. In this distributed environment, all threats and attacks first need to be faced as Fog nodes, where Fog nodes are able to identify all illegitimate activity and can prevent any incidents before they are passed through to the system.

Security of data storage and users privacy
In Fog environments, data are originated from, or to sent to the end-user devices which are managed and preserved via secure Fog nodes. Hence, the data would be better preserved than stored in the user's device and more available than if it was maintained in remote data centers.

Security of communication and networking system
A Fog network is connected by an immense collection of Fog nodes, and it can provide uninterrupted secure communication and networking services by residing near the end user's device. Fog reduces the chances of various network and communication attacks.
Security of the resource-constrained IoT devices A lot of IoT devices or end devices has limited resources. Hence, due to these limited resources, the IoT devices have little or no capability to defend themselves from sophisticated cyber-attacks. Fog nodes and cloud servers together can provide multi-level protection, i.e., "defense-in-depth".

Real-time incident response services
In Fog networks, the Fog nodes are able to provide real-time incident response services that notify the IoT system without disruption of any services.
Security challenges in the edge network Because of the lack of available resources to end devices, Fog can manage and update security mechanisms such as authentication, access control, and trust management. Therefore, it can also protect devices that cannot protect themselves adequately.
Security credentials and software up to date It is impractical to require that all the devices are connected several times a day to cloud for the security credentials and software to be updated. However, Fog nodes are able to manage security credentials and software updates on a large number of devices simultaneously, based on their criteria without downtime.

Monitor the security status
In the IoT environment, it is crucial to be able to notice trustworthy processes, whether the devices and systems are operating safely and securely. Many of today's hackers send false status messages that make operations appear normal. Fog provides a scheme to monitor security status in a trustworthy manner and can detect these types of attacks.
As Fog devices are much more distributed and belong to different users, security auditing is very important. In order to audit the security of Fog devices, there is a need to explore the network and data security issues related to Fog.

Fog Network and Data Security
Ensuring security for both network and data in Fog is a challenging task due to the vastly distributed nature of Fog computing. Most of the Fog devices are wireless, and data are processing in the user's devices. This section discussed the network and data security of Fog in detail.

Network Security
Due to the massive deployment of wireless networks in the Fog environment, ensuring security in these networks is a mandatory concern. Wireless networks are prone to attacks such as jamming, sniffers, spoofing and Man-in-the-middle (MITM). These attacks can affect the wireless network security of Fog computing, which can take place between the cloud to things continuum. In general, the users trust the network configurations and data generated by the network traffic, which is usually managed manually by a network administrator [37][38][39]. As Fog nodes placed at the edge of the network, therefore, would be an unmanageable task for the network administrator. In such a scenario, the Software Defined Network (SDN) will increase the scalability of the network and decrease the cost. Hence, SDN would be a preferable solution in Fog computing [10]. In Fog computing, SDN can provide features for network security, such as monitoring networks and Intrusion Detection System (IDS), as well as watching the traffic routes, which is referred to as CloudWatcher [40] and OpenFlow [41]. It also helps to isolate the traffic and manage prioritization to prevent attacks from network resource access controls and congested networks. However, CloudWatcher is unable to generate routing path and, if there many new flows in the network path, it is less efficient and performance degrades [42]. Klaedtke et al. [43] proposed a method for access control that was based on OpenFlow and for a network resource sharing system. The limitation of the proposed method is that it does not support multiple different abstractions. The authors [44], proposed an OpenWifi, which gave authentication to the guest users by letting them have access to the Fog node router in context with the security issues.

Data Security
In Fog computing, data generated by IoT or edge devices are gradually increasing with the number of IoT devices. Due to the lack of adequate resources for IoT devices, it is hard to process all the data on IoT devices [13]. IoT devices send the generated data to the nearby Fog node. After that, this node divides the generated data into several segments and forwards them to multiple Fog nodes for further processing. During this division and distribution time, the data could be altered or manipulated by attackers. Therefore, the integrity of the data must be ensured. Hence, the encryption and decryption process is not easy to implement due to associated resource constraints. In this case, light-weight encryption and decryption techniques would be a compatible solution [45]. However, user data are being outsourced as well as the user's data control, which is handed over to the Fog node. This still brings about the same security threats associated with cloud computing. In this circumstance, there might be a chance to lose or modify the outsourced data. In addition, illegitimate third parties with malicious interests might misuse the stored data. To mitigate these threats, a proposed solution is to present auditable data storage services, which are applicable for cloud computing data protection. In the context of a cloud storage system, a well-known technique is a homomorphic encryption and searchable encryption, which could be used to accumulate and ensure integrity, confidentiality, and verifiable to permit a client to investigate the data which are stored on untrusted servers [46]. Yang et al. [47] surveyed the existing research work related to auditing data storage services in the context of cloud computing. Eventually, from the circumstances above, there is still no proposed method that can meet the criteria based on a three-tier architecture for Fog computing [48]. Nonetheless, it is a challenging task to design a secure storage system, which will satisfy all requirements (dynamic processing, low-latency and high-scalability) and support smooth communication between the Fog and cloud environments. To detect network and data attacks in Fog, it is required to employ an Intrusion Detection System (IDS) across various layers.
Intrusion Detection System (IDS) is extensively used in cloud systems to identify and help protect from attacks, such as Denial of Service (DoS) attacks, insider attacks, port scanning attacks, flooding attacks on the VM (Virtual Machine), man-in-the-middle (MITM) attacks, hypervisors, as well as numerous systems [49]. It can be deployed under supervisory control and data acquisition (SCADA) [50], cloud [49] and the smart grid system [51,52]. It can also monitor and detect intrusive behavior of possible attackers, as well as analyze log files, access control (AC) policies and user access credentials. However, the above proposed methods are efficient in reducing false alarm rates, and it has less accuracy. In three-tier architecture of Fog computing, IDS must be deployed in the area of cloud, Fog, edge for monitoring, analysis of traffic, and intrusive activities of cloud servers, Fog nodes and edge devices. However, establishing security alone is not enough to provide the necessary protection against the propagation of viruses or malware from vulnerable nodes to other parts of the system. With regard to this situation, there may arise challenges such as corrective responses, alarm parallelization, false alarm controls and real-time notification [53]. A probable solution could be to deploy a perimeter IDS that coordinates different IDS in the Fog system [54]. On the contrary, while ensuring security in the Fog computing environment through IDS, several challenges may arise in terms of providing low-latency requirements [10].

Security Standards in Fog
Security standards form a vital part in maintaining protection for information systems. These standards are responsible to define the scope and security functions and features needed, as well as policies, in order to manage the information and human assets. Standards also help to evaluate the effectiveness of security measures and maintain the criteria for ongoing assessments of security. It is a necessity to consider proper security standards and commonly used security practices in the Fog computing environment in order to develop a feasible choice for the enterprise community.
IEEE 1934 [55] is a standard reference architecture for Fog to satisfy data-intensive application requirements. This architecture was proposed based on eight key attributes of the system, for example, RAS (reliability, availability, and serviceability), scalability, autonomy, openness, security, agility, hierarchy and programmability. For auditing purposes, we need to figure out the taxonomy of Fog security issues-by which, we can then identify what to audit and how to perform auditing in Fog by following recommended standards.

Taxonomy of Security Issues in Fog Computing
Fog is an augmentation of cloud computing that has many security issues. Naha et al. [6,56] comprehensively studied Fog computing architecture without paying much attention to Fog security. In this study, we have proposed a taxonomy, which is based on various security issues such as trust management, privacy assurance, authentication, access control, threats, attacks and vulnerabilities adhering to the Fog computing environment for auditing purposes. In the trust management section, we have discussed trust, the scope of trust, trust model and the potential attack on the trust computation area. In the privacy assurance section, we have discussed different privacy issues and privacy preservation techniques. In authentication, our observation relates to authentication domains, methods and potential attacks on the authentication processes. In the access control section, we identified the controlling area, requirements and access control methods. Finally, we summarized several threats, attacks and vulnerabilities. This taxonomy offers a better understanding of Fog security issues to the research community and enterprises. Figure 4, represents the proposed taxonomy and concise derivation of each section in the taxonomy, which will be described in the following subsections.

Trust and Trust Management in Fog Computing
The definition of trust does vary across different fields. Trust is the level of undertaking that an entity will treat in an appeasing way [57]. Although this definition does not represent the proper trust definition according to the field of computing, it can be characterized as an "expectation that a device or system will faithfully behave in a particular manner to fulfill its intended purpose" [58]. Therefore, trust can support the devices that failed to communicate with each other and desire to establish a new connection. A Fog node might be considered safe or unsafe by relying on their trust level.
Trust management is considered in order to establish trust between entities. It is a system or mechanism that takes place between two nodes in a network to establish trust. It was first introduced by Blaze et al. [59]. They defined the problem of trust management as "the problem of figuring based on formulated security policies and security credentials if a set of security credentials of an entity satisfies the security policies". Trust management examines the way of collecting and storing information to ensure the trustworthiness of an entity. It can be measured with creation, updating or revoking the trust [60].
In Fog computing, the devices are responsible for providing reliable and secured services for end-users. In this case, there must be a definite level of trust between all the devices in the Fog network. Authentication plays an important part in forming a primary set of relations between the end user's device and Fog devices in the system. As devices can always breakdown or become vulnerable to malicious attacks, authentication alone is not adequate to fix these problems. Fog computing has an aim to elevate the trustworthiness of the overall network. In the cloud computing platform, the data centers are typically owned and maintained by cloud service providers. However, in the Fog computing platform, dissimilar parties may act as service providers as diverse deployment options exist in such systems [10] such as Internet service providers, Cloud services providers and End-users. This flexibility makes obscure the required trust for Fog computing. Therefore, based on these circumstances, numerous problems arise in the Fog computing environment as follows: • In the Fog environment, client is a node that can apply the required services as presented by the Fog device. Hence, Fog devices are retained and upheld autonomously and operated by various organizations or parties. In such a case, Fog clients are required to be more vigilant in the time of communication with Fog nodes. Generally, different possessors preserve security in different ways, and the security amongst Fog devices positioned in the same organization may also be dissimilar in context. Therefore, from a Fog client's observation, Fog nodes indicate a potentially great threat. • From a Fog node's perspective, the client is also considered as a potential threat. These services can be comprised of various scripts or harmful ciphers with destructive consequences to the Fog node's software or hardware. • Data are collected from the Fog clients through the Fog network, and it can be used for further work. However, after the data are collected from Fog clients, it might be corrupted or lost during the propagation process. • Fog nodes can be deployed by anyone or any organization. Therefore, setting up a Fog node that may become a threat to the whole network may be complicated [15]. A rouge Fog device also known as a malicious Fog device can send illegal data and run over the entire network, which can have undesirable influences on the entire network performance and amplify the packet loss. This compromises Fog nodes or rouge nodes which can hamper the legitimate nodes in the Fog network. • Usually, Fog nodes can be installed or deployed near the end-users, so that Fog nodes are easily accessible and can be tampered with spontaneously. If node hardware or software is tampered with, it will become a potential threat for the entire network. Therefore, data that are shared with the tampered Fog device can be exposed or revealed to unauthorized entities. • Any Fog device which is compromised can be a source from which malicious objects originate that can impact the reliability of the whole Fog network.
In such scenarios, trust helps to maintain the relations built upon preceding interactions of devices or entities. Trust must play a two-way responsibility in the Fog environment [61]. First, the nodes that provide services to edge devices must be competent to authenticate the service requests to comprehend if the request is fake or genuine. Second, the edge devices that send or request data must be competent to authenticate the intentions of the node to guarantee its security. Therefore, applying the trust mechanism in the Fog environment permits Fog nodes, resource-limited IoT devices, and other Fog clients to identify the future behavior of one another. When identification of future behavior becomes probable, then Fog clients can easily choose a trusted Fog node that will provide the best services. As a sign of the problems presented in the solution of trust management, for a Fog system, there is a need to identify and detect all accidental or intentional behavior which can enable authorities to take the necessary action and rebuild the trust formation instantaneously [10]. The key factors that influence Fog computing are trust scope, trust characteristics and trust evaluation models.
Trust Scope: Guo et al. [62] demonstrated current methods of trust computation in the IoT system. They categorized the trust computing scheme into five scopes: aggregating, formation, update, propagation and trust composition. We can consider this scope of trust for the Fog computing environment as well. This segment will demonstrate each of these scopes in detail as below: • Trust Aggregation: collect all the recommendations from others and combine them with one's own experiences in the trust computation which might be essential. Trust Aggregation elects how this is accomplished. • Trust Formation: this defines the way to enable a combination of trust properties by trust composition. Some methods just study one property, and others reflect a mixture of some properties. Characteristics of Trust in Fog Computing: This section describes the characteristics of trust in Fog computing in addition to various characteristics of trust that help to develop trust relationships related to the understanding of Fog computing much further. The authors [63] defined a few characteristics, which can be retained for the Fog environment.
• Is trust dynamic? Trust is required to be dynamic due to two reasons. First, the Fog system network topology is changing continuously as new devices join or leave concurrently on the Fog network. Then, devices in the network may deflect their behavior successively. Therefore, trust should be monitored uninterruptedly. For example, for the past year, entity A had a high trust towards entity B. However, recently, entity A found that entity B lied to entity A. Consequently, there is no trust between these two entities anymore. • Is trust subjective? Although Fog networks are formed with a wide range of objects or devices, its security requirements vary from object to object or device to device. Thus, their trust properties are different, which is carried out more importantly over other properties. Having different types of trust policies for different objects, the trust will be subjective. • Is trust transitive within a context? Following subjective issues, each device has a distinct security policy of its own. That is, if device A trusts device C, then device A may trust any device that device C trusts in the same context. However, this concludes that the trust might be explicit and difficult to be measured. • Is trust asymmetric? Trust is an asymmetric relationship in nature. Being asymmetric in nature, trust is contrary to non-mutual relationships. It means that if device A trusts device B, we must not suggest that device B trusts device A. • Is trust context-dependent? Context is significant in terms of Fog computing [64] and, at the same time, it is significant in terms of trust computing as well. Suppose, we might trust a friend to keep a secret, but not to keep our money with him. The same scenario can be applied in the Fog environment. One Fog device can be trusted to accomplish a particular task for a client in the Fog environment, but for another task, it may not trust the same Fog device. Therefore, in this situation, trust needs to be context-dependent.

Trust Evaluation Models
Although Fog computing is vulnerable to any sort of illegitimate entity, it is important to ensure an effective and secure trust model that is compatible with trust computation in Fog computing.
While trust is classified amongst the imperative security requirements in Fog, there is quite a limited range of studies in the field. Most of the studies have just concentrated on the field of cloud computing.
Until now, there has been no strongly recommended trust model for Fog computing, but we can enumerate already existing trust models from IoT and cloud computing. In this section, we are going to discuss a few renowned trust models that are competent for Fog computing. • Reputation-based: The reputation-based trust model [65] is broadly applied in peerto-peer (P2P), e-commerce services, social media and user reviews. Occasionally, the fame of a service provider is beneficial to select amongst diverse service providers. Damiani et al. [66] demonstrated a reputation system model for P2P networks by applying a distributed polling algorithm to evaluate the consistency of the model. As this model sturdily relies on a general view, it is not appropriate in Fog computing as the nature of the end devices is dynamic. Moreover, Abhijit et al. [67] introduced a trust-based model to provide application layer security that can deal with the issues of user privacy, integrity and authentication. Hence, it will function as a trust-related safeguard in the Fog ecosystem for IoT related applications. • Plausibility-based: Soleymani et al. [68] proposed an experienced and plausibilitybased fuzzy trust model to secure a vehicular network. In a vehicular network application, it is significant to establish a trust to keep integrity and reliability. Hence, in vehicular environments, a secure trust model can handle the uncertainty and risks originating from defective information. Eventually, there are also several trusted models [10] regarding special hardware. • Trusted execution environment (TEE): TEE is an isolated environment, which guarantees the confidentiality and integrity of code and data by executing in the secure area inside a processor. • Secure element (SE): SE stores sensitive information securely and run the apps in a microprocessor chip to protect the data and application from malware attacks. • Trusted platform module (TPM): TPM stores the host identification key pairs, which are used for hardware authentication inside a specialized chip. The data inside this chip cannot be accessed by software.

Attacks on Trust Computation Environment
In Fog computing, while Fog nodes and clients are communicating with each other, they must establish a connection with greater trust value in the Fog network. For Fog nodes and clients, the highly trusted nodes and clients will be selected and accepted frequently rather than Fog nodes and clients with lower trust. It helps to speed up the overall performance of the Fog network [62]. Malicious intruders will impersonate their nodes as highly trusted nodes, so that they can gain the possibility of compromising a network. In this segment, we are going to define several types of attacks that might occur in the Fog network: • Self-promotion attack (SPA): in the SPA attack, the malicious Fog nodes increase their trust values to impersonate themselves as the highest trusted nodes. • Bad-mouthing attack (BMA): this attack works by spreading fictitious information. Several malicious Fog nodes work together to provide depraved suggestions about a decent Fog node, which will damage the fame of those nodes. This is a form of a collision attack, and it happens when numerous malicious nodes come together to spread false information. • Ballot-stuffing attack (BSA): this attack is similar to the collusion attack, where a malicious node transfers decent suggestions regarding another wicked node to raise the fame of the malicious nodes. • Opportunistic service attacks (OSA): after assuming that the fame has been lowered down by the Fog node, it can achieve a great service to retrieve its reputation. • On-off attack (OOA): A malicious Fog node can provide bad and good services simultaneously to avoid being rated as a low trusted node. The OOA attacker can also behave differently with different neighbors to achieve an inconsistent trust opinion of the same node.
In accordance with the study above and based on different issues, we have illustrated a summary table on the existing related research works related to trust issues, which are shown in Table 6. Table 6. The summary of Trust Issues in Fog environments from major survey papers.

Reference Paper Highlights/Objectives Achievements and Limitations
Rauf et al. [14] • Propose a risk-based trust model for the IoT environment. • Dynamic domain adaptive security solution. • Parameters such as availability, reliability, response time, etc. used. • Direct and indirect observation also used for trust computation.

•
The system can compute trust as well as compute risk levels of the system. • Layer-wise various attacks discussed.

•
The system will provide trustworthy information forwarding decision on the basis of trust and risk values.

Privacy in Fog Computing
Privacy is a key issue in any distributed environment. Across available literature, there are many mechanisms, which have been proposed to ensure the privacy of the data, such as encryption and hashing. However, these techniques are not suitable in the Fog because it affects the latency and time to process the application. The remaining part of the section discusses in detail the privacy assurance issues.
Privacy Assurance: Privacy assurance helps to preserve any private information, such as data, user, usage, locations, devices and network from unauthorized access [72][73][74]. In Fog Computing, all of the data used come from various sources like IoT devices, wireless networks as well as cloud networks. These data might be meaningful or meaningless, but we need to preserve it. Thus, appropriate privacy assurance can be treated as a substantial security issue in the Fog environment. There are also a few encounters ascends for privacy preservation, as the nodes are located adjacent to the end-users, and they can gather sensitive information [10].

Privacy Dimensions
Fog computing is used to work with sensitive information which is generated from several sources. For securing these types of sensitive information, privacy is one of the most significant concerns in Fog computing. There are lots of privacy issues that arise in the Fog environment. In the following section, we are going to describe Fog computing privacy issues from a different perspective: • Users Privacy: usually, Fog computing consists of a large collection of IoT enabled devices which are connected through sensors or wireless networks. Therefore, IoT devices are used to generate sensitive data at the user level and upload it to Fog nodes for further processing. For sensitive data such as personal data, home-automated data, business data and health data, by analyzing all this sensitive information, an intruder can reveal a lot about a user's personal data and gain adequate knowledge. • Data Privacy: as we already know, a Fog node works at the edge plane of the network, and it generally collects sensitive data that are generated by various sensing and end-user devices. Hence, Fog nodes are managed by third parties. Thus, when all the unprocessed data are being aggregated in the Fog layer, there might be a chance to compromise, alter, and miss-match the data. Under such circumstances, we need to indemnify the privacy of these data. Usually, Fog nodes send requests to the end-users to send their private data to them, in order to further process it, store it temporarily, and, finally, send data to the cloud for permanent storage [75]. Therefore, users will not have control over the data where all the access and control will be transferred to the Fog or cloud service providers. Under such circumstances, service providers or malicious insiders can manipulate the stored data. This signifies a privacy issue to the user's data. • Usage Privacy: this privacy issue arises when a Fog client can avail of the required Fog services. For example, in a smart grid system, the reading of the smart meter reveals masses of information of a smart-house such as at the TV on and off time or when the home is vacant, which certainly brings privacy breaches for users [76]. • Network Privacy: wireless connectivity is comprehensive under the control of IoT as well as other edge devices in a Fog computing environment. It is a big matter of concern, as wireless connectivity is prone to network privacy attacks. The maintenance cost is correlated with the Fog nodes as it is positioned at the edge of the Internet, where network configurations are established manually [10]. The breach of private data is an important issue while using Fog networks. The end-users share resources which contribute to Fog processing. Due to this, information that is more sensitive is collected by the Fog network as compared to a remote cloud. To overcome these issues, an encryption scheme like HAN (Home-Area Network) might be useful. • Location Privacy: in the Fog environment, the location privacy denotes to the protective techniques for breaches related to the client's location. While the client uploads its responsibilities to the closest node, the uploaded node can assume that the client is contiguous and far away from other Fog processing devices. Therefore, if a client in the Fog environment uses multiple Fog application services from multiple locations, it may reveal its track directly to the Fog nodes, in order to avoid collision amongst the Fog nodes. As Fog nodes are vulnerable to potential attacks, It is easy to compromise the privacy by having the location credentials of the Fog clients. If the Fog clients are attached to an object or a person, then the location privacy is at risk. Whenever a Fog client frequently selects its closest Fog node, the node can certainly identify if the client is using the resources residing nearby.

Privacy Preservation
In Fog computing, it is used to collect and process user personal data, which is desirable. Thus, it is evident that a proper privacy-preserving and security mechanism is required to cope with the Fog computing environment. As we know, Fog computing consists of various devices that are connected to IoT as well as Cloud. Thus, we should apply privacy-preserving techniques between cloud and Fog to maintain data privacy because both Fog and cloud devices are resourceful and have adequate storage and power. On the contrary, IoT devices have limited resources. Thus, it's a difficult task to implement privacy-preserving techniques between the Fog and IoT devices. However, it is significant because the users of IoT devices may be concerned about their data which is sensitive [77]. Different privacy preservation techniques, methods, and schemes are proposed across many scenarios, including cloud [78], wireless network [79], smart grid [80], health-care systems [81], and online social networks [82].

•
Homomorphic encryption: There is a method for privacy-preservation, which is homomorphic encryption (it is a method for operating encrypted data without decrypting it) that can be implemented to retain the privacy of transmitted data without decryption across local gateways [46]. • Differential privacy [83]: is to assure the privacy of random individual entries in the statistical data set. Although its computational overhead for such function is a big issue in Fog computing, it needs to be assiduous about the efficiency of the method. • Identity obfuscation: There is a renowned technique called identity obfuscation technique [84], where the Fog node is able to recognize the Fog client is close by, but it cannot recognize the Fog client. As such, identity obfuscation is a technique for preserving location privacy, as it has many methods inwardly. There is an elementary method to preserve the location privacy of the Fog client, whereby this client is allowed to upload the data between diversified Fog nodes. This method is not efficient because it would waste Fog resources and enhance the latency. As we already know, the Fog client can choose its nearby Fog node to upload its data, so the Fog node is able to identify that the Fog client is residing nearby, which helps to get the Fog client's location credentials. • Trusted third party: Wei et al. [84] demonstrated a method, where a trusted third party (TTP) generated a fraudulent ID for each Fog client. As a matter of fact, it is not necessary that the Fog client has to choose a node which is nearby, in spite of the fact that it can choose any nodes on the basis of a stipulated set of criteria such that the reputation, latency, or load balancing is not affected [85]. In this scenario, the Fog node can recognize the Fog client's rough location but cannot detect it exactly. In addition, there could be a scenario whereby a Fog client uses resources from multiple Fog nodes or the location of the client can be squeezed into a small region. As such, the location of the client must be within the coverage of several Fog nodes. According to the described scenario, the authors [86] used a method to preserve location privacy. • Data partitioning: Another probable method could be effective for preserving user privacy by partitioning the data into multiple Fog nodes. The usage pattern is another privacy concern when clients are using Fog services. In this scenario, privacypreservation techniques have been suggested in smart metering [80,87], but we cannot apply these mechanisms in Fog computing directly because there is no TTP (i.e., smart meters in the smart grid) or no backup device. The Fogging device can accumulate the list of tasks for user usage. The creation of bogus tasks by the clients and uploading them to multiple nodes is one possible solution while hiding actual tasks from the bogus ones. However, this solution may not be operational as it raises the client's expense and wastes resources.
According to the discussion above and based on different criteria for privacy-preservation, it has summarized into Table 7. The misconceptions about the rights of users were discussed. • The concept of a decoy method with some incorporation for data and location privacy.
• The concept of decoy method for data and location privacy has been discussed. • Different attackers and their interest in a user's private data were also discussed. Techniques used include commitment schemes along with zero-knowledge proof and random-checking monitoring to preserve the privacy of the end user and to protect the data flow over the radio network.
• Provides user's privacy, data security, and network privacy in the Fog computing environment • Efficiency and accuracy is unpredictable in the Fog computing environment.

Authentication in Fog Computing
Authentication helps to verify a user's identity by verifying if a user's credentials match with the information in a database via the authentication server. In the context of Fog computing, authentication ensures and confirms an end user's identity. This helps ensure that only legitimate end users can have access to the Fog nodes who have met all the requirements to be authenticated as an end-user. Authentication is one of the five pillars of Information Assurance (IA) [93]. In Fog computing, authentication of the end user's devices permitted to Fog services is a significant requirement in the Fog network. In order to obtain the Fog services from the Fog infrastructure, an end user's device must be authenticated to be a part of the Fog processing infrastructure by authenticating itself. Authentication is also essential to defend against the access of unauthorized entities. Figure 5 shows the authentication issues in Fog computing. As can be seen, six major issues exist for authentication in Fog computing. If a user faces any of the issues depicted in the figure, his/her privacy could be endangered.
With the higher number of internet-enabled devices, authentication is getting more and more vital to permit secure communication for IoT applications and home automation [94,95]. Almost any object (entity) may be addressable and be capable of exchanging information over the network. Thus, it is significant to comprehend that each device or application can be potentially an intrusion point in the environment. Thus, it is mandatory to ensure a strong authentication mechanism for each device or application in the Fog network system.
Although Fog computing eliminates many difficulties compared to primitive cloud computing, it also provides excellent services such as mobility, geo-distribution, heterogeneity, real-time processing, etc. Similar to Cloud computing, Fog computing also faces new security challenges. Due to heterogeneity and interaction of third party authorities in the Fog computing system, it leads to an increase in the scope of security breaches. In such a case, there might occur various renowned attacks (e.g., data loss, account traffic hijacking, man-in-the-middle attack, denial of service attack, malicious insider attack, etc). Therefore, it is a significant issue to think about secure Fog networks by ensuring the security mechanism in every stage. In that case, authentication plays a key role in protecting the Fog network. Therefore, ensuring proper authentication mechanisms would be a suitable solution to prevent such attacks. As Fog computing is used to provide various services with low latency and cooperate with the edge devices as well as cloud systems, by providing any authentication mechanism, there might be a chance to raise critical issues such as latency, scalability, and efficiency, which needs to be handled according to the demands of the Fog computing environment.

Authentication Factors in Fog Computing
The authentication factor refers to attributes or data that can be considered to authenticate user access to a system. A legacy security system has a few authentication factors such as the knowledge factor, which is something users know, the possession factor which is something a user has and the inherent factor which is something the user is. In recent years, other authentication factors have been added-location factor and time factor, along with the old authentication factor, which is as follows: • Knowledge Factor: is any credentials that consist of information that the user holds, such as Username, Password, Personal Identification Number (PIN) and answers to the secret questions [96]. • Authority Factor: would be any credentials that the user can own and carry with them, such as hardware devices like a mobile phone or a security token. • Inherent Factor: is generally based on biometric identification (fingerprints, facial, retina). • Location Factor: itself cannot usually refer to authentication, but it can be used with other factors. For example, a legitimate user normally can access a system from the home or office in any organization's home country. An attacker will try to access that system from a remote geographical location. With the help of a location factor, the system can prevent illegitimate user authentication into a system or network. • Time factor: similar to the location factor, the time factor can be used as a supplement with other factors. It can be used together with the location factor. For example, an authorized user can have access to a system in a specific time period in an organization's home country. On the other hand, an illegitimate user tries to access that system from a remote geographical location of another country. Therefore, the authentication would be rejected based on the time and location factor.

Authentication Measures in Fog Computing
• Lack of Transparency: The existence of SLA between a Fog or cloud service and end-users is a vital issue in order to establish trust. Although many SLAs have clearly defined the privacy over the user's sensitive data, users are unable to trust them in how the data are being governed. Hence, the SLA verification gets limited when the service is being directly used in the Fog layer by the end users and a small organization, which should be monitored by a licensed third-party through SLA verification. There might be a lack of transparency that permits the users to monitor their own data in the Fog or cloud system. • Real-time Interaction: Fog nodes and end-users interact with a huge number of devices simultaneously. Different services need different authentication mechanisms where, if the process takes a huge amount of time to authenticate, it would be a challenging task with respect to real-time interaction. • Latency and Scalability: In accordance with the rapid growth of user devices and services, it is an ambitious task to guarantee the efficiency of the authentication mechanism. Whenever the latency of the authentication process is high and incompatible with the service, scalability is a big concern. • The scope of Exploitation: In the context of Fog or cloud system, there is a diversified authentication mechanism for various services. These authentication methods can be compromised or exploited by the attacker and the attacker can appear to have gained administrative level access due to the deficiency in the authentication mechanism. There might be a chance to breach the security of data, devices as well as the Fog network system.

Authentication Techniques in the Fog Environment
Generally, users need to use various services simultaneously. Therefore, they need to use different authentication methods for different services where the performance of the authentication methods is different in the context of latency, efficiency and scalability. On the other hand, the user faces lots of difficulties to maintain access credentials for multiple services. Authentication is the most significant issue for the security and privacy of Fog computing. An authentication mechanism that is not secure might cause harm for the cloud, Fog and end user's devices, which is one of the main security concerns for Fog computing [97] as well. Therefore, different authentication techniques have been proposed for elevating security mechanisms in the Fog or cloud computing, but each authentication method has come up with its own dominance and limitations. In this subsection, a few traditional authentication techniques and their limitations as well as drawbacks according to the Fog environment have been described. We also described a few proposed solutions which meet with the Fog computing criteria.
• Password Based Authentication: In password authentication, the user must first give a password for every service, and the system administrator must keep track of all usernames and passwords on the server. Password Authentication is performed by accepting a key and password for allowing a user into local and remote systems. Password authentication can be categorized depending on its strength as weak authentication, stronger authentication and inconvenient authentication [98]. Therefore, password-based authentication has several applications, and it is deployed in cloud computing [99][100][101], but it will face numerous drawbacks and limitations when it is considered for Fog computing: -It takes an extensive computation to process. It is challenging due to the limited end device resources.

-
In the Fog network, end-users frequently communicate with various Fog nodes from different Fog environments. Therefore, it is inappropriate to keep a password for each Fog node. In addition, it is not a good concept to set the most used password for each Fog node.

-
Usually, a password does not provide high security because of numerous attacks [102], for example, vulnerability to offline dictionary attacks.
• PKI Based Authentication: public key infrastructure (PKI) based authentication creates and upholds a reliable networking environment by offering certificate and key management services that permit encryption and digital signature abilities between applications all in a way that is transparent and easy to use. PKI offers confidentiality, integrity, authenticity (CIA) and non-repudiation of the exchanged messages. In [15], the authors described security issues and focused on authentication issues at various levels of the Fog computing environment. Therefore, the traditional PKI-based authentication scheme is not effective in the context of Fog computing due to the poor scalability because, in a large environment like the Fog environment, the PKI-based technique can be troublesome, and it will work very slowly in terms of the distributed computing environment. The user of Fog (IoT device) is mostly resource-constrained, where they do not have much memory and computing power to accomplish the cryptographic operation [10]. In addition, the allocation of public keys can be weighty due to the enormous scale of Fog nodes and end-users. Another drawback is that, if the private keys cannot be well preserved, the security will be ruined.
On the other hand, the Diffie-Hellman [103] key exchange based authentication scheme is not compatible with the Fog environment due to its slow and extensive computations.
Balfanz et al. [104] demonstrated a user-friendly, cheap and secure method to resolve the authentication issue for wireless networks based on pre-authentication of the location-limited channel. Likewise, Nearfield communication (NFC) is used in Cloudlet to simplify the authentication process [105]. Ibrahim et el. [106] proposed a secure mutual authentication method for the Fog environment that allows authenticating any Fog user with the Fog nodes mutually in the Fog network. The authors [107] proposed a method based on the multi-Tier authentication scheme to Secure Login in Fog Computing. The authors [108] mentioned that the Advance Encryption Standard (AES) is a compatible encryption algorithm for the Fog computing environment as it needs low hardware resources and fewer computations. The authors [97] demonstrated that the end-user devices can initiate spoofing attacks and are prone to data tampering which can be preserved with the aid of PKI, Diffie-Hellman key exchange, monitoring by Intrusion detection techniques, and, finally, the authors' advice that the chances of such attacks can be prevented by deploying a secure authentication mechanism between the Fog platform and the end-users.

•
Biometric Authentication: is a technique of user identity verification based on various biological inputs through scanning or analysis of some parts of the body. Biometric scanners scanning a user's physical biometric characteristics such as fingerprint, voice recognition, iris scan, face recognition, etc. Generally, biometric authentication takes place to manage access to digital or physical resources. Biometric authentication is an upcoming technology and is already rapidly deployed in mobile computing as well as cloud computing using fingerprint authentication, face authentication, keystrokebased authentication or touch-based authentication [10]. However, in the context of distributed Fog computing environments, biometric-based authentication techniques have a lot of limitations and drawbacks. Comparatively, it takes a huge amount of execution time, and its security level remains constrained when high-level security is very much required [106]. Therefore, considering biometric-based authentication for Fog computing is still a research issue [10].
In accordance with the study above, and based on different issues of authentication, this has been summarized in Table 8. Table 8. The summary of Authentication issues in Fog environments from major survey papers.

Reference Paper Highlights/Objectives Performances and Achievements
Ibrahim et al. [106] • An efficient and secure mutual authentication method for the cloud-Fog-edge system architecture. • Required to store one master secret key. • Does not need extra overheads such as reinitialization or the re-registration process. Dsouza et al. [110] • Introduce a policy-based resources management in the Fog network. • Support interoperability and secure collaboration among various resources in the Fog system.
• Server authentication, device authentication, data migration authentication and instance authentication have been observed for the secured Fog computing environment.
• Performed effectively and efficiently. • It can achieve very low response latency. • Protects the IoT system from DDoS attacks.
Amor et al. [112] • Introduces anonymous mutual-authentication amongst the Fog users and Fog servers. • Cryptographic and mathematical have been performed to establish the session key.
• Can accomplish effectively and efficiently and improve the security and privacy in the Fog network. • Can defend against various attacks such as man-inthe-middle attack, eavesdropping and reply attacks.
Hu et al. [113] • Highlighted privacy-preservation and security methods for Fog based image processing applications. • Data encryption, the authentication and session key agreement, and data integrity checking such methods have been proposed.
• Can perform effectively and solve the issues of integrity, availability and confidentiality. • Increases little computation and communication overhead.
Ha et al. [114] • An efficient and elliptic cryptographic based mutual-authentication technique for IoT based resource constrained devices. • Uses implicit certificate and key management for secure communication and mutual authentication.
• Achieved less execution time. • Suitable for resource constrained devices.
Gope et al. [115] • Deliberated two-factor lightweight and privacypreserving authentication method for resource constrained IoT devices. • Provide a resilient way of authentication.
• Very efficient computational capacity. • Can perform robustly against malicious attacks.

Access Control in Fog
Access control is a method of restrictive access to a system or to a physical or virtual resource. In computing, it is defined as a process by which users are granted privileges for retrieving information from the system, information or resources. In access control systems, individuals must have legitimate credentials before access can be granted to them. The process of access control is shown in Figure 6. As can be seen from the figure, if a user fails to comply with the enforced access control policy, his/her request accessing the resource database would be denied. Otherwise, the user would be granted access to use the resources in the environment.
By deploying Access Control in the Fog network system, it would be possible to conserve a user's privacy and assure that both the user and system security maintain trust between the Fog, cloud service providers and users. The authors in [116] highlighted a few Access Control (AC) problems in the area of Fog computing and classified these problems into the following types: • The users should be authenticated by the Fog or cloud system if they wanted to use the services such as storage or computation, where several strategies must be used to control access for both services and data as well. • Security management is difficult to control, given the number of requirements. • The cloud and Fog system needs mutual access control. • Access control mechanism helps to prevent attacks such as side-channel in Virtual machines (VMs). • Resources are very limited to both the user and Fog devices, respectively.

Access Control Models
Access control is the best method to achieve preservation within the networks, devices, and systems. While it helps user's admittance into the system, access control also supports efficient data protection from various kinds of adversaries. Conventionally, access control models (ACM) are categorized [117] into the following forms: Here, the administrator of the system decides who has access to the system. In a multi-level MAC model, both objects and subjects are recognized with a security level classification (i.e., top secret, secret, classified and unclassified). The nature of Fog/cloud computing is outsourced, hence there is a need to focus on access control models which can be effectively applied in this computing environment. • Role Based Model (RBAC): Designing a model for access control is a rudimentary challenge on a large scale to secure mobile distributed applications and database systems as there is a need to provide dynamic privileges for checking systems in the environment. RBAC is a fined grain model that offers more benefits compared to previous models [118], such as regulating the user's access to applications and resources by identifying the activities and the roles of users in the system [119]. RBAC authorizes the subject based on their responsibilities and roles of individual users within the Fog-cloud computing environment [116,117,120,121]. Roles may vary from the subject (user) to subject (user). That means, in this model, the responsibility of a subject is more vital than the subject itself [120,122]. Limitations and Drawbacks of the RBAC Model: -The RBAC model had been developed for allocating user permissions statically.

-
It does not consider contextual information (e.g., location, time, device constraints) and dynamic/random behavior of users.

-
It cannot cope with dynamic segregation of duties.

-
It is coarse-grained. If you have a role called administrator, then you would assign the administrator role permission to "View employee record" (i.e., it has permissions to see all the records of employed) which denotes as an expansion of the role.

-
It ignores meta-data of resources e.g., employee owners' records.

-
It is hard to manage and maintain within a large administrative domain. -Access reviews are painful, error-prone and lengthy.

-
Permissions accompanying each role change or deletion is based on the change of the role.
Therefore, RBAC in Fog should ensure quicker granting access permissions and minimize the above-mentioned limitations and drawbacks. • Attribute-based Access Control (ABAC): This model is one of the latest methods of managing authorization. It is a talented alternative to conventional access control techniques and has attracted consideration from both academia and the industry. Comparatively, recent developments of ABAC still leave several unknown difficulties such as delegation, administration, auditability and scalability. • Attribute Based Encryption (ABE): This model is an encryption-based Access Control model and best suits access control problems in the Fog-cloud environment. The Attribute-Based Encryption (ABE) [123] method categorized into two types. Firstly, the encryption is based on the key policy, which is known as key policy attribute-based encryption (KP-ABE) [124] and, secondly, the encryption is based on Cipher-text policy, which is known as Cipher-text policy Attribute-based Encryption (CP-ABE) [125]. This model can preserve data privacy and enable data owners to define a desirable set of policies directly [116]. Users can access data only if their attributes match the access policies associated with the data. CP-ABE works in a reverse compared to KP-ABE. In this, the key generated is attribute user set, where the ciphertext is fixed by access policy [118]. However, CP-ABE has two main drawbacks [126]: policies are not explained using standard languages, and it cannot support non-monotonic policies.
Architecture of ABE: The architecture of the ABE method is categorized as centralized and decentralized as well as hierarchical [121].
-Centralized: In a centralized architecture, the keys will be served by a central authority centre for the users. -Decentralized: In a decentralized architecture, the information will be shared by multi-authorized authorities based on the policies of various organizations.

-
Hierarchical: In hierarchical architecture, the scalability and flexibility are enhanced and assist the features of one-to-many encryption for the users.
Revocation Types of ABE: The revocation types are categorized into two types: attribute revocation and user revocation.
-Attribute Revocation (AR): by using the AR mechanism, the attribute from the user's attributes list will be removed by the revocation controller unit.

-
User Revocation (UR): by using the UR mechanism, a user restricts data access via the revocation controller unit.
Revocation Method: There are various revocation methods to revoke a user and attributes using the ABE method. Proxy re-encryption, time re-keying, an update key, lazy revocation and Linear Secret Sharing Schemes (LSSS) matrix are the primary revocation methods. Revocation Issue: Deploying the ABE method in cloud storage systems to control data access brings about forward and backward revocation issues. Revocation Controller: The revocation controller is someone who is designated to execute the user or the attribute revocation method. In general, the owner of data revokes the attributes or the user, but the data owner can confer the revocation duties to the server or the authorized entity. Limitations and Drawbacks of the ABE Based Model: As we mentioned before, Fog computing extends cloud and the functionalities as well as the requirements of Fog computing, which are unique. Thus, the access control structure of cloud computing is not able to directly meet the requirements of Fog computing. However, researchers [97,127] recommended that ABE techniques suit Fog computing, but still needs to improve and meet some criteria such as fine-grained, cryptographically enforces, latency and policy management problems, which need to be re-thought and considered for further research. Although the end device or user device in Fog computing are constrained resources, there is no need for deploying data encryptiondecryption and access control mechanisms at the user level because the Fog devices are resourceful and used close to the end-user devices. Based on these circumstances, outsourcing access control methods would be the more appropriate solution for Fog computing. On the other hand, as we know already, Fog computing consists of a dynamic environment. Therefore, the ABE-based access control should support creating, updating and revoking the user attributes and access structures with the management of the access policies according to the dynamic behavior of Fog computing [116].

Issues and Requirements for Access Control in Fog Computing
To establish and ensure secure and efficient access control, policies must ensure confidentiality, accountability and integrity. However, due to the nature of the Fog computing environment, one should consider a few things to build a secure and strong Access Control (AC) [116,128], which are as follows: • Computation and Communication Latency: it indicates how long it takes for a single packet to travel from one designated node to another node. The sender considers sometimes latency as the time for sending a packet and getting an acknowledgement from the sender, where the round-trip time is taken as latency. As Fog computing is renowned for its faster accessibility, we need to ensure low-latency for providing smooth services to the end users. We can indemnify the low-latency during processing time so that the access decision can transpire within a reasonable time.
• Efficiency: efficiency is also correlated to latency. In Fog computing, there are two types of devices e.g., resource rich (Smart Power Grid, Smart City, Smart Transportation System, E-Health, etc.) and resource constrained (mobile phone, smart-watch, smart-glass, etc.). The proper implementation of Access Control System in Fog computing is still a challenging issue because of its low efficiency. If the low efficiency occurs in a continuous manner, it can result in undesirable latency, which can affect the other parts of the network. • Generality: with the distinction of hardware and software, we need to generalize all the systems and services of Fog computing. • Data Aggregation: in Fog computing, users are geo-spatially distributed where Fog devices are used to collect data from user devices. Therefore, it is necessary to accumulate all Fog devices closer to the end users for reducing latency. The data generated from user devices will be meaningful or meaningless, but it should be handled intelligently and evenly [129]. During the whole aggregation process, authority changes are a critical issue for data access control.

Access Control Domains
In the Fog computing arena, for defining the access control system, the contextual domains are 1. Fog to Edge, 2. Fog to Fog, and 3. Fog to Cloud. Edge devices are communicating and sending data to Fog devices during the time that the Fog device uses to process all the data in such a way, so that, if the necessity arises, it can send all the processed data to the nearest Fog devices. When the issues for storing data arise permanently, Fog devices are able to send all the data to a data warehouse or cloud storage. Therefore, process/store identity and access data in the Fog/cloud computing by first ensuring secure Fog/cloud access control. Ensuring access control in the cloud/Fog environment is a crucial technique to enhance the user security-in this scenario, end-user/data privacy, faster communication and computation, network and communication security, etc. Such requirements shall be applied for the above-mentioned domains to enable the proper access control system. For this, all the primordial access control models are being advanced accordingly.
In accordance with the above study, and based on a different access control method, it has been summarized into Table 9.

Malicious Attacks and Threats in Fog Computing
Due to the isolated deployment of Fog nodes in some places, it fails to protect countermeasures and surveillances. As a result, it is very easy for intruders or malicious attackers to compromise the Fog networks through several malicious attacks [136]. For example, a malicious user can compromise a Fog node with its own generated trust values, smart meter, smart grid, traffic system or spoof IP addresses [15] to ruin sensitive information. In this segment, we will give an overview of these potential threats and attack issues.

Potential Threats
• Rogue Fog Node: Rouge Fog node is a one type of Fog device in the Fog computing environment that presents itself as a legitimate node and persuades end users to connect with it [137]. It may happen in such a scenario, when a Fog administrator instantiates an insider attack, to identify the rogue Fog node or a legitimate Fog node. Stojmenovic et al. [15] have proven that the data can be tampered by a manin-the-middle attack, with updated or collected the data either in the Fog layer or cloud layer. There is also the possibility to launch additional attacks. Thus, in the context of privacy and security, the presence of a rogue Fog node will be a potential threat in the Fog environment. It is not easy to detect a rogue Fog node in Fog computing for various reasons. One of the main reasons is the diversified trust computing mechanism that brings about perplexed trust situations. On the other hand, we know that Fog computing is dynamic in nature and consists of numerous devices which leads to creating, deleting and revoking simultaneously. Therefore, for these various instances, it is difficult to manage the blacklisted nodes. The authors Han et al. [138,139] have demonstrated measurement-based models which permit a client to escape connecting to rouge access points (AP). Ma et al. [140] introduced a framework to identify the existence of rogue APs in wireless networks. Detecting a rogue Fog node in an IoT network is cumbersome because of the network complexity across different scenarios [13]. Nevertheless, by using trust measurement-based models in the IoT network, it helps to detect rogue nodes. Although this method is not adequate, it can be considered for limited security protection. • Fault Tolerance: Fog computing is an emerging distributed computing platform that consists of a huge collection of numerous devices that is widely geo-distributed and heterogeneous. Therefore, there might be a high chance of failure of devices, as compared to cloud computing. Fog computing is dynamic in nature, whereby the Fog nodes or IoT devices connect or disconnect to a Fog layer over and over. Because of this behavior, there might be a chance to bring about unexpected faults and failures in the Fog environment. Therefore, in these circumstances, the Fog computing platform should provide all the necessary services without interruption if there is a failure occurring in individual Fog devices, networks, applications and services platforms [141]. Because Fog applications should be capable of instantly turning to other available nodes via some inbuilt mechanism if the services in an area become unusual. To mitigate these issues, standards should be applied. Stream Control Transmission Protocol (SCTP) is such example that can deal with such events and packet reliability in wireless sensor networks [142]. In general, fault tolerance ensures the availability of devices or applications in the event of a failure to provide uninterrupted services. Nevertheless, on the basis of what service is being used, fault tolerance will change according to one's role and management privileges. In the cloud computing environment, fault tolerance is handled by applying three techniques-proactive, reactive and adaptive [143]. Proactive fault tolerance policies refer to an escape rescue from faulty components by anticipating and replacing the failed components before it takes place. Reactive fault tolerance policies refer to the decrease in the influence of faulty components when the failure occurs in adaptive fault tolerance, where the procedure is carried out according to the situation automatically. There are numerous fault tolerance techniques which are often used in computing [144][145][146] such as Replication, Job Migration, checkpoint, self-healing, Rescue workflow, Safetybag checks, Task Resubmission, Software Rejuvenation, Masking, Preemptive Migration and Resource Co-allocation. Nevertheless, in this paper, fault tolerance is mostly discussed based on the cloud computing environment as Fog computing is a new computing paradigm. In recent research works [147][148][149][150][151], the context of cloud computing in such a scenario was discussed. Therefore, fault tolerance in Fog computing is still a research task. In order to provide a reliable and robust Fog computing environment, failure handling of services should be effectively considered.

Malicious Attacks
Fog computing comprises various IoT or edge devices and collects the data from these devices by accomplishing latency conscious processes. Identifying malicious nodes is a complex task in the Fog environment [152]. As we know, Fog computing is a miniature of cloud computing, as such, almost all types of malicious attacks, which affected a cloud environment can also affect Fog computing. For example, DDoS (Distributed Denial of Service), MITM, sniffing, side channel attacks, DoS (Denial of Service), malware injection and authentication attacks are a few of them. Therefore, in these circumstances, without an appropriate prevention mechanism, it can severely damage the competency of the Fog system or network. In this portion, we are going to expose a few malicious attacks which might occur frequently and affect the Fog environment.

•
Attacks from malicious Fog nodes and edge devices: As Fog nodes are compromised easily by any malicious attacker, it is a very serious and potential threat for the Fog network environment. The authors [45] mention various unique security threats in their research, which might occur in the IoT and Fog environments. For delivering services to the users, the received data from the IoT devices will be processed by Fog nodes. If some Fog nodes are compromised by any intruders, it is a problematic task to ensure the security of the data. One possible solution would be by establishing trust between Fog nodes themselves. In this case, an authentication mechanism is mandatory for ensuring secure, trusted communication. Therefore, Fog nodes cannot manage each other, so they need to trust only the cloud for authenticity. Sequentially, after being authenticated by the cloud, it should be placed in a Fog environment to process heavy data. However, they are not able to give a suitable solution for this attack. Li et al. [153] carried out research and presented a solution.
It is vital to identify malicious Fog devices in Fog computing. Due to the lack of resource and edge devices, it is difficult to deploy proper authorization mechanisms between Fog nodes and edge devices. Thus, it is hard to prevent all attacks completely because of granting a few privileges and processing of the data. Sohal et al. [154] tried to solve the problem by using intrusion detection and virtual honeypot devices by introducing a Markov chain based framework. • Man-in-the-Middle (MITM) Attack: All data traffic passing through is protected through secure transmission channels between Fog nodes and edge devices in Fog computing. During this communication process, a user's data will be snooped or impersonated by an external malicious attacker prior to performing a global concealing process in the Fog node. Such a scenario correlates with the MITM attack. In an MITM attack, a perpetrator secretly relays and manipulates the data during communication between two parties. Hence, MITM is a potential attack method which can be used as a typical attack in Fog computing. In Fog computing, an attacker can carry out sniffing or disrupt the packets between Fog devices. As mentioned earlier, in Fog computing, all devices are resource-constrained. By having this problem, it becomes a challenging task to deploy secure communication protocols and encryption-decryption methods amongst Fog nodes and IoT devices [97]. Stojmenovic et al. [97] proposed an authentication method that can possibly avoid MITM attack. To mitigate MITM attacks, the anomaly detection is hardly applicable in Fog computing because these methods were being used in traditional cloud computing. Therefore, to mitigate MITM attacks in Fog computing, a compatible solution still offers a challenge, which can be considered for further research. • Reply Attack: Fog computing makes use of a distributed network of embedded sensors and actuators that communicate with the physical world. The replay attack technique is very straightforward. To inject an exogenous control input without being detected, the attacker takes over the sensors, observes and records their readings for a period of time, and then repeats the process when carrying out his attack. This is a very normal and natural assault for an attacker who is unaware of the system's complexities but is aware that the system will be in a steady state for the duration of the attack [155]. • False Data Injection: False data injection attacks are distinct from normal cyber attacks that attempt to compromise data availability because they concentrate on data integrity/manipulation. While the idea of a false data injection attack originated in smart grid applications [156], it can be applied to any other Internet-connected environment, such as Fog computing. If the intruder can figure out what the current configuration is, he or she can insert malicious measurements that will deceive the state calculation process without being detected by any of the existing techniques for detecting bad measurements. False data injection attacks impose a great amount of challenges on the attackers. First, the attackers must understand the target's current configuration, especially the system's topology. Due to scheduled regular equipment maintenance and unplanned incidents such as unforeseen equipment outages, this system configuration changes frequently. Normally, only control centers have access to such knowledge. Given the sensitivity of control centers, physical access to them is strictly regulated and secured. As a result, obtaining such configuration information to perform these attacks is not trivial for attackers [157]. • Denial of Service Attack (DoS): In a Denial of Service (DoS) attack, the attacker prevents secondary networks from efficiently or accessing the spectrum band at all. DoS attacks can start with a single malicious node or multiple malicious nodes acting independently. DoS attack can effectively disrupt the usual operation of the Fog computing environment. The malicious nodes are dispersed around the available spectrum bands at random. Until acting, each malicious node observes its current spectrum band and sends a beacon to the malicious central entity. The malicious central agency returns to the malicious nodes a consolidated image of the secondary networks' spectrum occupancy. If the malicious nodes want to turn, they can explore other unknown spectrum bands in order to maximize the attack gain [158]. Further investigation is required to secure Fog computing environments from DoS attacks. it is troublesome to manage a huge amount of requests simultaneously. When a malicious attacker or intruder initiates a bunch of inappropriate service requests towards the targeted device, or tries to spoof multiple devices concurrently using the IP addresses, the Fog node will be occupied for a longer span of time. Therefore, all the legitimate services of Fog devices will be inaccessible for legitimate users-as opposed to Fog nodes, which go on to compromise themselves and get used for generating DDoS attacks. A different plane of the Fog environment can be affected by this kind of attack. Recently, malicious attackers have been able to compromise online home-automated smart devices to execute a DDoS attack against popular online websites such as Twitter, Paypal and Reddit. After these attacks, all of these websites were severely affected. Hackers have been trying to use internet-connected home automated equipment, such as Closed Circuit Television (CCTV) cameras, printers, refrigerator, etc. to perform DDoS attacks on popular websites, such as Twitter, Spotify, PayPal, SoundCloud and Reddit [159,160]. In accordance with the Fog network system, all smart objects that are connected consist of more computational power, and they have the ability to perform various tasks concurrently. As compared to traditional DDoS attacks, in Fog computing, various Fog devices apply DDoS attacks which will become much more severe. Therefore, it is not possible to mitigate a DDoS attack completely in the Fog computing environment. At the present moment, we can only monitor them. Under these circumstances, current DDoS issues may need new thinking and further research which will classify DDoS issues much more precisely in the context of the Fog computing environment. • Malicious Insider Data Theft Attack: According to the three-plane architecture of Fog computing, cloud computing is correlated to Fog computing. Hence, we should be conscious of all the malicious attacks which occur in cloud computing frequently. One severe attack in cloud computing could be a malicious insider attack for data theft purposes. On common terms, the end users will have to trust the cloud service provider despite being aware of this threat. It happens due to the deficiency of cloud service provider's authentication, authorization, and audit controls, which allows attacks to spread out across the cloud system. In this regard, a few incidents have occurred which compromised corporate data, for example, Twitter's personal hacking [161,162] as well as the account hacking incident of U.S. President Barack Obama [163], which was exposed as a malicious intent to steal a user's credentials. The authors Rocha et al. [164] revealed that a malicious insider can gain access to the user's data easily in a cloud computing system. The attackers carry out their attacks which are generated from within cloud service providers. Therefore, the end user is not able to detect unauthorized access. There are diversified approaches which would be useful in order to secure data from faulty implementation, misconfigured service bugs in code by using encryption and access control to restrict them as well as to give protection from sophisticated attacks [165]. Another solution could be user behavior profiling, where the system keeps track of the amount of user data access and the duration of data use. Hence, the system can identify anomalous activities of end users, which can be used to detect malicious attacks. In this case, the authors Stolfo et al. [166] have proposed a new approach to assure the security of cloud computing by using user behavior profiling and decoy technology. There might still be a few issues [61] which arise on how to deploy the decoy in Fog networks and how to develop an on-demand decoy information to reduce the portion of stolen data from being lost. • Physical Attacks: In traditional data centers, physical security is being provided by on site security staff. On the other hand, by applying complex measures e.g., card punch, thumb impression, and retina scanning, physical access control can be deployed much more convincingly. Thus, these issues are related to certification and audits to derive the necessary physical security measures which are required to meet the set standards. Basically, Fog nodes are widely distributed across various environments. Due to this point, it is impossible to implement traditional physical security measures in the Fog computing environment. For example, physical security measures can be applicable to place the edge box at the top of the streetlight's pole, which should be hidden from eye level as well as being surrounded with a fire-resistant coating to keep it safe from vandalism. There is a lower probability of physical attacks at the software level which enables the scope of theoretical attacks.
In accordance with the study above, and based on different issues regarding threats and attacks related to the Fog, it can be summarized in Table 10. The focus of this study is to address auditing issues to secure the Fog computing environment. The following section discusses security auditing issues in Fog. Wang et al. [167] • Fog based storage technology to mitigate the cyber threat in the cloud. • Data stored separately in the Fog server as well as in the cloud storage.
• Ensure the integrity, confidentiality, and availability of data. • Attackers unable to get any information about data by using data fragments. • Can protect the confidentiality of the user's data better than traditional ways. • This approach is safe and feasible for cloud storage.
Homayoun et al. [168] • Fully automated and Fog node ransomware detection techniques for the Fog layer. • Deep learning techniques can be applied.
• Detect and identify the ransomware within a very short time of execution of an application.

Reference Paper Highlights/Objectives Achievements and Limitations
Han et al. [138,139] • The presence of fake Fog nodes or rogue Fog nodes is a serious threat to the Fog network.
• A practical, timing based method for the end users to avoid connecting to rogue Access Points.
Stolfo et al. [166] • Decoy technology and user behavior profiling have been used for disguised detection.
• Mitigating insider data theft attacks. • Securing personal and business data.
Sandhu et al. [152] • A framework which uses three technologies such as an IDS, a Markov model, and a virtual honeypot device (VHD). • Edge device classification depends on level of damage and frequency of attacks.
• Proposed system is able to identify malicious Fog nodes in Fog. • Successfully identify the malicious devices and also decreases IDS false alarm rates.
Hosseinpour et al. [169] • Lightweight and distributed IDS system based on an Artificial Immune System (AIS). • Three-layered structure that includes the Fog, cloud and edge layers.
• Smart data approach has been used to build a lightweight and efficient IDS for the Fog platform. • Can detect silent attacks such as botnet attacks in IoT-based systems.
Alharbi et al. [170] • Security system based on Fog that defends the IoT system from malware attacks. • Proposed challenge-response authentication to protect IoT systems further from DDoS attacks.
• Able to filter malicious attacks effectively while response latency is very low and network bandwidth consumption is low.

Security Auditing in Fog
In the traditional computing environment, it is often essential for technology experts to perform various security tasks such as examining security configurations, regulating potential vulnerabilities and constructing new security configurations with respect to every organization's own security policies [171]. On the other hand, it is getting much harder when new computing paradigms like Fog computing are considered. Traditionally, organizations can enforce their access control policies according to its employee's roles and responsibilities, which is actually a challenging task for most administrators. Therefore, this challenge will be much more difficult in a Fog computing environment where security policies can be deployed across a huge number of devices residing at the edges of the Fog network. Security administrators need adequate knowledge to accomplish multifarious administrative tasks. Therefore, in this section, we discuss the various issues of Fog computing security auditing.
Importance of auditing in Fog security Fog computing is the latest computing paradigm in the modern computing world. The life cycle of security is shown in Figure 7. The very first step of the life-cycle is to identify. In this phase, it can be understood what needs to be protected. Next is the assessment phase. In the third stage, risk analysis indicates the existence of possible risks related to the potential issue. The audit determines the correctness of the analysed risks. At the last two stages, the protective actions and the resolution are placed in the cycle to remediate any possible security incident for the Fog user or the end device. The risk level from user to system is shown in Figure 8. As shown, the risk level can be considered from two sides, user-side and system side, respectively. Based on these two sides, Fog users may be exposed to different level of risks in an environment in which they can participate. In spite of its substantial growth of Fog, there still remains lots of barriers for much more widespread adopting of Fog computing services due to security issues. Lack of auditability is a primary security concern in the Fog computing environment.
In the following section, we discuss several key aspects of Fog security auditing. Traditional auditing methods in Fog security Fog computing has come up with numerous features and it is strongly dynamic in nature. All communication processes, data transmission, data analysis, user authentication and resource management can be automated and dynamic with real-time operation. According to the nature of Fog computing, its security auditing process would be dynamic and within a real-time process. However, the existing traditional security auditing standards and the manner of auditing are very manual, where a technology specialist team or group of individuals perform their auditing processes using their traditional auditing standards. The traditional approach is only applicable within a small environment or with limited resource. However, it is a problematic approach because this approach provides only limited support to make an evaluation and the quality of the audit heavily depends on auditor's knowledge and experience. In such cases, several difficulties can be anticipated.

1.
Security auditing expert's knowledge can be inadequate or inappropriate.

2.
To correctly configure out the Fog system's security, many organizations or users find it cumbersome because of the extensive expenditure to hire security professionals.  Therefore, a software-based automated auditing system, which can perform on a real-time basis, would be the best suited solution for the Fog computing environment.
Mitigating security breaches and privacy with auditing in Fog security Fog computing provides several security and privacy concerns for the cloud and traditional computing as well as its own security flaws. In the Fog environment, there are extensive amounts of devices, applications and resources which exist simultaneously and communicate with each other within a geographically distributed environment. Therefore, there exists a big opportunity for rapid security and privacy vulnerabilities. There are many security demonstrations that exist for traditional or cloud computing, but these demonstrations are not predominantly well-suited with respect to Fog computing. With the help of Fog security configurations auditing, we can mitigate these security issues as well as privacy-related issues for Fog nodes or Fog computing devices. Auditing security measures are a way of examining for infringement which potentially exposes the vulnerability of a system.
Thus, when one focuses on Fog based auditing, there is a need to see these concerns as the core to the overall approach: • To minimize or mitigate risks introduced by Fog; • To identify new threats and defend them; • To evaluate the efficiency of security controls related to Fog; • To continuously improve policies, processes, procedures and tools; • To perform knowledge based dynamic periodic auditing processes.

Criteria and Current Solutions
This section discusses current literature that presents various criteria and solutions for security auditing. Parkinson et al. [172] proposed a novel Graph-based Security Anomaly Detection (Graph-BAD) approach that translates the object-based security configurations into a graph model. They proposed a technique which was developed to identify vulnerabilities autonomously and perform security auditing of large systems without the need for expert knowledge. Similar work has been done by Kumar et al. [173] focusing on network risk evaluation. Bleikertz et al. [174] proposed an algorithm to audit the configuration network's security and the policies of the multi-tier cloud architecture using Amazon's EC2 public cloud.
Wang et al. [175] proposed an auditing system for data storage security by implementing a privacy-preserving auditing protocol using homomorphic authentication and random mask techniques for the preservation of privacy against Third Party Auditor (TPA). It can audit without requiring to have the knowledge of the user's data contents. A batch auditing protocol was also introduced in this study, which can be used to complete multiple auditing tasks across different users at the same time via TPA. A public auditing system contains four algorithms such as KeyGen, SigGen, GenProof, and VerifyProof. KeyGen is run by the user to set up the scheme, and to generate the required verification metadata, of which Siggen is used. GenProof is executed by the Cloud Server to provide proof of the data storage's correctness. VerifyProof is run by TPA to audit the proof from Cloud Server.
Wang et al. [176] recommended a set of characteristics for public auditing systems with the aim to focus on data storage security in the public cloud. Shah et al. [177] proposed several public auditing protocols which helped not only to check data integrity from the service provider, but also fraudulent customers. Privacy preservation is achieved through zero-knowledge, and by concealing data contents from the auditor. Yang et al. [47] reviewed several current works on data storage security auditing service in cloud computing. Mohammed et al. [178] proposed a secure protocol by a TPA that ensures the data integrity in Fog computing. The main drawback of this method is that the user has to depend on a third party. There should be trust between the TPA and user.

Existing Security Auditing Standards and Frameworks
Implementing security governance and auditing frameworks may support organizations to conduct and manage their own security risk levels. Various organizations or technology groups have created renowned frameworks and recommendations based on the traditional computing or cloud computing standards [179,180] which are globally used.
The most popular and renowned security audit standards and frameworks are presented in the following: To be effective, the above-mentioned security audit standards must confirm to a vast number of security concerns in the traditional computing or cloud computing paradigm. However, using these traditional auditing standards and frameworks in the Fog computing environment will not be well suited because all of these auditing standards and frameworks which are manual approaches. They can only provide limited support to make an evaluation and the audit's quality heavily depends on an auditor's experiences and knowledge which could be problematic, whereas the Fog environment is mostly dynamic and distributed across a large scale geographically. Therefore, software based automated auditing standards and frameworks which can perform real-time approaches would be best suited for the Fog computing environment.
The principal necessity to introduce cooperative context aware tools is extensively approved, and actions are being taken at the state level. Several studies have suggested how software tools can be used to extract meaningful knowledge to aid security configurations, auditing, and digital investigations [181]. Therefore, such tools are context-dependent, in that their functionality is conducted to identify threats that are expected. The only limitation of these tools is that each one requires different knowledge and skills to translate their output to obtain an understanding of why this extracted knowledge is significant [182]. Security auditing can be performed in an automated fashion by using Blockchain technology. The next section discusses Blockchain technology and what has been done so far in Fog using Blockchain technology.

Lightweight Cryptography Methods
Although the current cryptography methods like SHA-256 for hashing or advanced encryption standard (AES) for encryption on systems have a high processing power, they cannot be a suitable pick for IoT devices. To tackle this, the lightweight cryptography techniques proposed to diminish this gap where the above-mentioned methods cannot [183]. Several standard hashing methods such as SPONGENT [184], Lesamanta-LW [185] and PHOTON [186] were proposed while CLEFIA and PRESENT were proposed for block methods. Trivium and ENOCORO were also proposed as stream methods for lightweight cryptography. These functions and standards lead to overcoming the resource-limited devices. The flexibility around the key size, block size and rounds supports a range of design choices that enable the lightweight cryptography methods to tackle the gap that conventional cryptography algorithms such as AES struggles with. Hence, applying this method could be one of the best options to achieve encryption for resource limited devices.
As discussed, providing trust between Fog nodes is one of the important factors that should be taken into consideration as these end points may be vulnerable to several breaches and security attacks. To achieve a secure Fog environment, authentication plays a vital role in creating trust in a Fog environment while it cannot be a stand-alone solution. Apart from authentication, the behaviour of the nodes should be well understood. Behavioural analysis could help to provide a more trustable environment for the devices which interact with one another. There are various models to evaluate trust in Fog environments. Although these models can provide a level of trust in such environments, they have their own drawbacks that emerge from the need to have a comprehensive need for trust model in the Fog environment. Another measure to control the security of Fog devices is placing access control mechanisms. Providing appropriate access control to the users would prevent any privilege escalation for resource usage, which helps users increase their secrecy. Privacy is another factor that should come into consideration in a Fog environment. As there are various attacks on trusted computation environments, dimensions that affect the Fog privacy should be well analysed and appropriate privacy preservation techniques should be applied to remediate possible privacy breaches in such environments. Delivering these security mechanisms leads to a better protection and response in front of any potential threats that may threaten the Fog user.
As the traditional security techniques do not always fit into measuring security issue, a new distributed Blockchain technology is useful to handle security issues in Fog computing. In the next section, we discuss Blockchain and its utilization in Fog computing environments.

Blockchain Technology in Fog
The Blockchain is more than a database technology. Theoretically, a Blockchain is a ledger of the distributed database that can be programmed continuously to record a list of data. Blockchain is probably Bitcoin's major innovation foundation for a new decentralized and distributed system. Recently, Blockchain technology has been implemented across many real-time systems [187]. Blockchain is an evolving technology to build a secure, scalable and openly coordinated platform globally, which is not limited to currency or financial systems. Fog with Blockchain is shown in Figure 9.

Security Features of Blockchain Technology
Blockchain technology has its own strong security because there is no possibility of shutting down the system. A well-known cryptocurrency-Bitcoin [188]-was implemented using Blockchain technology. However, the financial system was still hacked, which it had never experienced before. The main strength of Bitcoin is its use of the Blockchain network as protection against attacks and threats by using multiple nodes which are committed to a single transaction by a consensus algorithm on this network. The transaction within Blockchain includes digital signatures. Currently, Blockchain uses the ECDSA public key algorithm to generate a digital signature. Blockchain prevents a single point of failure because it is a distributed system. It uses a hash function for block generation, of which currently it uses the SHA-256 hash function.
Some of the main features of Blockchain are as follows:

Role of Blockchain to Improve Security in Fog
The Blockchain technology was introduced for the secured cryptocurrency application such as Bitcoin. A realization soon dawned amongst many researchers that it possesses great security features that can be utilized in many real-world distributed applications (e.g., Cloud, and Fog computing). Security has become a key stumbling block toward the widespread adoption or implementation of Fog. Therefore, security concerns in Fog computing can be improved using Blockchain technology [189,190] Blockchain can mitigate various threats and attacks in Fog such as the man-in-themiddle attack, DDoS attack and data tampering [191][192][193][194].

Blockchain between Fog and Edge Environments
Fog computing is a decentralized distribution system which aims to make cloud computing faster by creating data hubs or mini data processing centers which are hosted in smart devices. Basically, they accomplish a less demanding task and reduce the communication between the cloud and the end user. Fog allows for performing resource-constraints and short-term analytics close to the edge of the network, whereas the cloud accomplishes resource-intensive and longer-term analytics [195].
Fog computing faces enormous challenges, and there are constantly various issues that arise during its primary stages of its development. For example, in a distributed computing environment, it is a fact that how to protect its transactions and network resources with an evenly distributed security architecture is a challenge. It builds a kind of mesh network where every Fog node takes part based on their resource availability. Due to the distributed architecture of Fog computing, it is highly required when trust and security must be distributed. This is particularly significant where the Fog infrastructure, layers and Fog nodes are managed and owned by diversified entities.
However, a significant question arises in managing trust in a distributed and decentralized manner amongst participants that do not need mutual trust. Blockchain technology in reality is built for these kinds of challenges. Blockchain consensus algorithms have a suitability issue with regards to Fog applications. For instance, "Proof-of-Work" (PoW) consensus needs a huge computing capacity in order to solve a complex mathematical puzzle, so Fog devices are unable to host this mechanism. However, there are plenty of other protocols such as "Proof of Stake" (PoS) which is susceptible to running on Fog nodes with a similar capacity.
Blockchain uses a digital fingerprint for data, and the digital fingerprint is retained as long as the data remain. It thus provides an excellent way to securing data transferred from a distributing network between entities. When Blockchain is increasingly recognised when distinguishable from Bitcoin and any other cryptocurrencies, legal authorities and regulators will be required to develop a structure for recognising the protection it offers, and thereby theoretically extend the circumstances that can be used.

Recent Works that Used Blockchain for Fog
Several recent works used Blockchain for Fog computing environment. Tuli et al. [196] developed a framework that was based on Blockchain for the edge-Fog computing environment. This framework applied Blockchain, encryption techniques and authentication which can perform secure operations across sensitive data. Although this framework is a lightweight and based on a cross-platform, it has a few limitations and drawbacks because it takes comparatively higher computational overhead to carry out large scale deployments.
Sharma et al. [197] introduced a new and efficient distributed Blockchain cloud model based on three emerging technologies: Blockchain, Fog Computing and Software Defined Network (SDN). This model was presented to support high scalability, security, high availability, resiliency, real-time data delivery and low latency. Jeong et al. [198] proposed a Blockchain based secure Fog computing system. Their system can defend against various attacks such as IP spoofing, Sybil attacks and single points of failure. This system used the Blockchain method to guarantee secure authentication and non-repudiation. It can also perform operation when a Fog node is down.
Samaniego et al. [199] investigated the idea of virtual software-defined IoT components known as virtual resources in combination with the use of Blockchain technology. Dorri et al. [200] introduced a secure, private and lightweight Blockchain-based technology for the resource constraints related to IoT devices which can handle most security and privacy threats. It uses different kinds of Blockchains based on the network hierarchy and uses distributed trust methods to assure a decentralized topology.

Blockchain Oriented Startups in Fog and IoT Environments
OpenFog Consortium is one of the most well-known Blockchain oriented startups in the Fog environment. The OpenFog Consortium is in the process of building a composable and interoperable framework for Blockchain in the Fog distributed system. This implies that the various entities in the system that do not trust or are even known to each other still provide a meaningful consensus algorithm that is able to make decisions in a Fog oriented distributed system. The "autonomy," which is one of the eight pillars of OpenFog, is supported by the Consortium's work.
Recently, there have been multiple Blockchain oriented startups that have joined the OpenFog Consortium [190], and they are as follows: The foremost Blockchain-protected security tool for the industrial IoT. Traditionally, more points of security vulnerability arise when there are more nodes and more connections. Moreover, the centralization technology prevents industrial systems working independently and in real time. Xage ensures that, with the combinations of Blockchain and encryption, more nodes mean more security, not less.
As described, Blockchain can significantly improve the security in a Fog environment. As creating the trust is one of the most important factors in Fog security, a consensus decision in a distributed system by Blockchain can ease this mechanism for Fog. Moreover, Blockchain can help to check the authentication and the integrity of data which transfer in a Fog environment.

Research Challenges and Future Research Directions
In this section, we are going to present and highlight a few significant and considerable issues which are challenging tasks for Fog computing to cope within cloud and edge environments. Finally, we provide a synopsis of probable research directions based on the existing research challenges.

Trust Management
Identification of trusted Fog nodes is a challenging task in the Fog platform. Usually, a Fog node that is trusted or untrusted can be identified by its malicious behavior. However, in this case, the malicious nature is not defined earlier on for a Fog node. Therefore, it is significant to define and categorize all malicious characteristics in the Fog system. The Fog system can be susceptible to regulate if a Fog node is trusted or untrusted. Hence, it is mandatory to enhance trust and, after all, an exalted trust management model is highly required.
Another challenging research issue is combining both distributed and centralised environments, which is important in the context of cloud-Fog-IoT environments. Therefore, a centralized trust management is required for the IoT environment, and it would be possible by using a Fog platform. Hence, it is still a challenging research issue.
Moreover, trust management in the Fog platform is entirely different compared to the cloud computing platform due to the distinctions of the cloud and Fog platform architecture and service offering mechanisms. As mentioned earlier, Fog is widely distributed; on the other hand, the cloud is centralized. In that case, it is easier to deploy trust management in the cloud environment because the cloud platform has its own in-place security infrastructure, whereas the Fog platform is more open, and the in-place security mechanism is absent. As a result, the Fog is vulnerable to malicious attacks. In addition, trust in the cloud environment is unidirectional, whereas trust in the Fog environment would be bidirectional in nature. The Fog node and the IoT devices must maintain a trusted relationship between one another before their interaction, as it is highly required in the Fog platform. Hence, designing a bidirectional trust model in the context of Fog and the IoT platform is a challenging task as well.

Privacy Assurance
The Fog nodes hold sensitive or private information of users, as the Fog nodes are placed in the proximity of the end users. Therefore, it is a challenging issue to assure trusted communication and make a secure computing environment between the Fog and IoT devices. In such a case, we can consider encrypting the user sensitive data before sending it to the Fog nodes. It is not viewed as a proper technique in the context of IoT devices, since conventional encryption and decryption mechanisms need a lot of computational power, whereas the IoT devices face challenges to encrypt and decrypt the user's sensitive data due to the resource constraints of IoT devices.
In another context, a single Fog node can manage sensitive data which come from different Fog users or across different applications. Therefore, there might be a chance to mix up different sources of data after the data aggregation step. In such a case, enforcing proper data encapsulation techniques at the Fog API or middleware level would be the solution. Hence, more research is needed.
Another challenging issue is to provide context-aware services in the Fog environment to the end user devices which are often involved in sharing sensitive resources such as location, as well as others' personal information amongst other geographically connected devices. Therefore, in such a scenario, it is highly required to ensure that data protection is present. Hence, providing the identity and location privacy in the Fog environment is a challenging task.

Authentication
It is an obvious fact that strong authentication and secure communication protocols in the Fog platform are missing. It is a rather alarming message for the research community. There has not been much research about the authentication mechanism in the area of Fog computing. However, several researchers have already proposed several solutions that we described earlier in the taxonomy section. However, these solutions are still not able to cope with the Fog platform. Therefore, to design and develop a new authentication method for Fog computing, one must consider the following criteria and how it can cope with the Fog platform smoothly.

•
Authentication mechanisms must be compatible with the Fog user, end devices (IoT devices), application services and Fog Service providers on the cloud-Fog-IoT platform. • Conventional authentication mechanisms are inefficient, and there is a necessity for a secure, environment-friendly, efficient, and scalable solution to cope up with an extensive amount of IoT devices that have limited resources to facilitate scalability and efficiency. • Security and performance are both highly required in terms of different contextual devices and applications. • Must meet with the dynamic behavior of the Fog environment, where Fog nodes dynamically leave and join frequently in the Fog network. • Must ensure low complexity-based authentication in terms of scalability of the Fog network. • Ensure smooth authentication and re-authentication methods in a dynamic manner. • Design an efficient authentication method, where a cryptographic lightweight encryption algorithm should be considered between the Fog system and the IoT devices that can easily cope with the low processing power of IoT devices. • Authentication should be less costly, as well as provide high usability and, in return, it should be user-friendly.

Access Control
In terms of the authentication mechanisms, there has not been much research work about access control methods in the Fog computing environment. However, plenty of work has been done in this field. Therefore, we still need to be able to accomplish an efficient design to draw the right kind of potential access and control model, with the intention to facilitate a secure platform within the heterogeneous devices in the Fog environment.
In the description section of access control, we mentioned a few access control models, describing their various features, characteristics, and, in the context of the Fog environment, we also highlighted numerous drawbacks and limitations. Many researchers have mentioned that Attribute Based Encryption (ABE) would be suitable as a method of owning access to control in the cloud, Fog and IoT environments. Because of the heterogeneous characteristics of the Fog system, the ABE method should be reconstructed in order to mitigate the major challenges (Latency, policy-management, fine-grained and enforced by the cryptographic method) amongst the cloud-Fog-IoT computing environment users.
On the other hand, in the Fog system, data originate and are encrypted and decrypted by miniaturized devices with low computational powers. In such a case, deploying access control mechanisms in those devices would be a burden and would need heavy computational power to process the access control mechanism. Meanwhile, Fog devices are being placed near end devices. In addition, Fog devices are much more computationally powerful than end user IoT devices. Therefore, to overcome the limitations of IoT devices, an outsource capability lightweight ABE based access control would be compatible with the Fog environment. As opposed to Fog computing, which is dynamic in nature, there are numerous devices which join and leave simultaneously in the Fog network. Thus, the access control policy and attributes of the users would be changed according to this dynamic characteristic. Therefore, it is highly required that ABE-based access control mechanisms must have the capability to assist in creating, updating, as well as revoking the attributes of the users. With ABE based access control, designing the revocation process would face new challenges, and how Fog collaborates with the cloud environment during the revocation process would need to be part of further research. Therefore, to design a new access control method for the Fog platform, one must consider a few characteristics which are as follows: • As we have mentioned earlier, Fog is a fully virtualized platform by nature, and it provides diversified environments for the Fog network. In this case, there might be a chance in which a side-channeled-attack occurs due to the nature of sharing resources amongst untrusted tenants. Therefore, it is a significant concern in terms of designing an access control method which must be capable of synthesizing within the virtualized platform and multitenant environment efficiently and securely. • Access control should be secure and efficient for the Fog environment computing on the basis of multi-authority, as well as be attribute-based, considering low computation with outsourcing capabilities as well as attributes that have the means to control user revocation capability. • An access control method should be lightweight and fine-grained due to the resource constraints suffered amongst IoT devices. • An access control method must be capable of performing in both centralized and distributed architectural environment accordingly.

Threats and Attacks
As we mentioned earlier, Fog computing faces various security and privacy issues. Due to the distributed nature and extensive amount of devices connected with it, often, there might be a chance for a threat or an attack to occur. In the description section, we have already highlighted several threats and attacks and their impact in the Fog environment. Detection, identification and mitigation of these threats and attacks would be a challenging task in terms of the dynamic Fog computing environment. However, in order to build a reliable and trustworthy Fog platform, there is a research gap and the lack of security solutions available to detect and identify these threats and attacks needs to be addressed. Based on our review across various threats and attacks, we have suggested the following issues which need to be addressed in the future to overcome these challenges: • Complex trust situations and insecure authentication and authorization systems.
• Dynamic behavior such as creating, deleting, joining and leaving of Fog nodes, or servers in the Fog layer. • Detection of malicious nodes or rogue nodes is a challenging task because of the dynamic nature of leaving and joining by the Fog nodes. • Implementing IDS in large-scale, geo-distributed with low-latency requirement with highly mobile Fog computing systems is a complex task. • Due to the distributed environment, hybrid detection techniques are required to identify malicious activities. • Due to the resource constraints of the Fog devices, designing a high security and low cost threat and attack detection is the key problem in the Fog. • Identifying and mitigating threats and attacks from both the Fog node and Fog user at the same time is challenging.

Security Auditing
Audit rights provide a crucial risk mitigation tool regarding security issues related to the Fog. Auditing security configurations in the Fog platform is a complex task, as it is a gateway to the cloud platform and heavily relies on expert knowledge, which is required for understanding the different security configurations. However, these systems can be imperfect, and not user friendly for the home users and small companies.
In this section, we explore various unique challenges that isolate Fog security auditing from the traditional security auditing or cloud security auditing protocols. These challenges represent the significance of special provisions for Fog security auditing in current or evolving security auditing standards. Challenges: • The Fog computing landscape is dynamic and consists of huge resources, where traditional data encryption or decryption need a heavy computational overhead. • Without proper technological support, it is challenging to manage extensive amounts of different contextual data. • To identify new security threats and defend against those threats is also a challenging task • Fog computing brings easy accessibility to our work and personal lives, but with that accessibility comes new security risks and challenges • Understanding the different contexts of the Fog computing environment is important. Different contexts with regards to the environment's security issues would bring different research challenges.

Questions:
• How to encrypt or decrypt data and how to access that data simultaneously? • How to perform auditing processes across different environment data contexts? • Do we need to use the same matrix for the edge environment or cloud environment? • Can our current risk assessment capture the risks correctly? • How to perform and manage real-time processing and auditing at the same time?
In order to overcome the above-mentioned challenges and questions, it is highly required to develop an automatic method, which can be capable to recognize and identify security infringements as well as mitigate those security risks in Fog computing. Further research needs to be carried out by utilizing Blockchain technology to mitigate security issues in Fog.

Secure 5G Enable Fog Network
In the near future, Fog devices will be connected through the 5G network. Connecting Fog devices with the 5G network, new security challenges emerge mainly in the authentication. The traditional one-way or mutual authentication process is not useful due to the authentication process between the user and services [201]. In this case, a new hybrid authentication model is required. Using 5G, Fog will be useful to talk with things and devices. For example, in a smart home and smart city environment, one citizen needs an ambulance which will direct him to a specialized hospital close to the location of the user where a remote surgery can perform. Here, a hybrid security mechanism is required to secure the whole application environment since many parties are involved in this processing. Any emergency environment similar to this requires a strong and reliable authentication process. User privacy is also important in such a 5G enabled Fog computing environment because user data may pass through the various untrusted, third-party devices, network equipment, and access networks. Hence, we need to explore more about hybrid authentication methods and privacy protection in a 5G enabled Fog network.

Conclusions
The main objective of this study is to review, investigate and analyze the issues of the Fog computing platform to recognize their probable security flaws. The obvious fact is that there are numerous security issues that do not exist in the traditional cloud computing environment, which need to be considered. In addition, significant developments in the Fog environment are required. We fill the gap of the current literature by aggregating all security aspects of Fog computing paradigm such as authentication, access control, privacy preservation, trust management, threats, attacks and security auditing. We have also investigated the main challenges, and tried to exhibit the motives as to why the security methods in the cloud platform cannot be employed directly in Fog computing when it comes to auditing. In this study, we have also introduced a taxonomy, by considering numerous security issues and protection according to the Fog environment, as well as briefly introduced and discussed these issues retrospectively. In addition, we also discussed how Blockchain could help to provide solutions to some of the data security concerns in the Fog environment. However, further research is required to see how much protection can be ensured against threats and attacks using Blockchain in Fog. At the end, we highlighted several threats and attacks which might occur frequently under the circumstances of the Fog computing network.
Interestingly, the Fog is a new paradigm, which therefore requires mitigation of the associated security issues that are still challenging tasks. With regards to the system architecture of Fog computing, researchers need to do further future work and figure out the challenges with respect to security within the three-tiered architecture of the cloud-Fog-IoT computing system. As Fog computing is an extension of cloud computing, in this paper, we only covered the security issues concepts related to Fog. We did not consider the security-related issues in the cloud.
In the future, we will be investigating secure SLA management in Fog through the Blockchain and integration of SDN and Blockchain in Fog to improve the efficiency of the system, compare security and privacy solutions of other similarly distributed environments such as Mobile computing and Edge computing with the Fog and present these security issues and suitable solutions for the Fog. Furthermore, we will investigate and classify the threat models and Blockchain technologies in Fog computing.

Conflicts of Interest:
The authors declare no conflict of interest.