# Cross-Domain Access Control Model in Industrial IoT Environment
## 3 Distributed Access Control Model Based on a Master-Slave Chain
### Design of Access Control Processes
#### 3.4.3 Intra-Domain Access Control  
Intra-domain access refers to access control among different devices under the same domain where the access behavior occurs. Let domain A be located to send access requests from \(D_{1}^{A}\) to \(D_{4}^{A}\) in chain \(SCA\). Step 1: \(D_{1}^{A}\) sends an \(Ar\) request to edge node \(En_{A2}\). The \(Ar\) request represents \(D_{1}^{A}\) sending a resource access request to \(D_{4}^{A}\). The request contains all the access information to make it complete the access request process. \[D_{1}^{A}\to En_{A2}: \tag{9}\] \[\left\{PK_{A,1},time_{1},sig_{A,1}\left(Ar\left( \begin{array}{ c}DC_{A,1}\\ Ac(type,Re_{A,A})\end{array} \right)\right)\right\}\]  
where \(time_{1}\) denotes sending an access request timestamp, \(Ar\) denotes the access request content, \(DC_{A,1}\) denotes the access certificate of \(D_{1}^{A}\), \(Ac\) denotes the access content, \(type\)determines whether the access is intra-domain or cross-domain, and \(Re_{A,A}\) denotes the resource of \(D_{1}^{A}\). Step 2: \(En_{A3}\) receives the \(Ar\) request for parsing, confirms that it is currently intra-domain access control, and then authenticates it through \(IMS\). (a) If the \(DC_{A,1}\) is valid and legitimate, the authentication result is recorded, and the status information of \(D_{1}^{A}\) is modified. It also indicates the legitimacy of the \(D_{1}^{A}\) status. \[\left\{time_{2},sig_{IMS}\bigg{(}Ar^{\prime}\bigg{(} \begin{array}{c}{\color[rgb]{ 0,0,0}DC_{A,1}}\\ {\color[rgb]{0,0,0}Ac(type,Re_{A,A})}\end{array} \bigg{)},Legal\bigg{)}\right\} \tag{10}\]  
(b) If the \(DC_{A,1}\) is invalid, then \(En_{A3}\) returns a deny message to \(D_{1}^{A}\), indicating that \(D_{1}^{A}\) is an illegitimate device, and access is terminated. \[\left\{time_{2},sig_{IMS}\bigg{(}Ar^{\prime}\bigg{(} \begin{array}{c}{\color[rgb]{ 0,0,0}DC_{A,1}}\\ {\color[rgb]{0,0,0}Ac(type,Re_{A,A})}\end{array} \bigg{)},Illegal\bigg{)}\right\} \tag{11}\]  
Step 3: After passing the authentication, \(En_{A3}\) calls the strategy tree of the data strategy database through through the IDSC for matching with the strategy using Algorithm 1. (a) If the attribute matches the resource strategy, the access token _Token_ is generated and then sent to the \(D_{1}^{A}\) through \(En_{A2}\). This also means that \(D_{1}^{A}\) will have access to the resources. Then \(D_{1}^{A}\) can perform access control, as follows:  
\[\left.\begin{array}{c}{\color[rgb]{0,0,0}D_{1}^{A}\gets En_{A3}:}\\ {\color[rgb]{0,0,0}\mathit{Token}=\left\{\begin{array}[  
Figure 4: Intra-domain access control.  
Figure 5: Cross-domain access control process.  
Step 1: \(D_{5}^{A}\) in \(SCA\) sends a cross-domain access request to \(En_{A2}\).  
\[D_{5}^{A}\to En_{A2}:\] \[\left\{PK_{A5},time_{4},sig_{A5}\bigg{(}Ar\bigg{(} \begin{array}{c} DC_{A,5}\\ Ac(type,Re_{B,1})\end{array} \bigg{)}\bigg{)}\right\} \tag{14}\]  
Step 2: After receiving the request, \(En_{A2}\) first authenticates the identity of \(D_{5}^{A}\) through \(IMS\) and confirms that the access control type is cross-domain access control. a. If the authentication passes, the request is identified as a cross-domain access request and sent to \(McN_{A}\) of \(SCA\). \[\{time_{5},sig_{A2}\left( \begin{array}{c}En_{A2}\to McN_{A}:\\ Ar^{\prime}\left(\begin{array}{c}DC_{A,5}\\ Ac\left(\begin{array}{c}from,SCB\\ type,Re_{B,1}\end{array}\right)\\ Legal\end{array}\right)\end{array} \right)\} \tag{15}\]  
where \(from\) indicates the domain from which the request comes, and \(SCB\) indicates the domain where the resource is located. b. If the verification does not pass, it means that the \(D_{5}^{A}\) is not entitled to access, a deny message is returned, and the cross-domain access ends. \[En_{A2}\to D_{5}^{A}:\] \[\{time_{6},sig_{A2}\left( \begin{array}{c}Ar^{\prime}\left( \begin{array}{c}DC_{A,5}\\ Ac(type,Re_{B,1})\\ Illegal\end{array}\right)\end{array}