\begin{tikzpicture}[ -latex, entity/.style = { draw = gray!30, thick, rounded rectangle, fill = white, minimum width = 2cm, font = \fontsize{8}{8}\selectfont, text = white, }, relation/.style = { draw = none, font = \fontsize{6}{6}\selectfont, }, path/.style = { draw, thick, -latex, }, ] \node[entity, fill=darkBlue] (Website) at (0,0) { Website }; \node[entity, fill=darkGreen, below=1.5cm of Website] (Browser) {Browser}; \node[entity, fill=darkOrange, left=1.5cm of Website] (Log) {Log}; \node[entity, fill=darkRed, below=1.5cm of Log] (Monitor) {Monitor}; % Get certificate and proofs of logging \path[path] (Website) -- node[relation, right] { \begin{tabular}{c} Certificate\\ Proofs of logging\\ \end{tabular} } (Browser); % Verification \path[path, rounded corners] (Browser.180) -| ($ (Browser) + (-1.25,-.75) $) node[relation, below]{ Verify } -| (Browser.210); % Monitoring \path[path] (Monitor) edge[bend right] node[relation,right]{} (Log); \path[path] (Log) edge[bend right] node[relation,left]{} (Monitor); \path[path, rounded corners] (Monitor.180) -| ($ (Monitor) + (-1.25,-.75) $) node[relation, below]{ Mis-issuance? } -| (Monitor.210); % Get proofs \path[path, dashed] (Log) -- node[relation,above]{Proofs of logging} (Website); % Add certificates to log \path[path, dashed] ($ (Log) + (-2,0) $) -- node[relation, above] { Certificates } (Log); \end{tikzpicture}