diff --git a/5.0 Draft/SysD/Authentication/ah_authentication.pdf b/5.0 Draft/SysD/Authentication/ah_authentication.pdf new file mode 100644 index 0000000..1093646 Binary files /dev/null and b/5.0 Draft/SysD/Authentication/ah_authentication.pdf differ diff --git a/5.0 Draft/SysD/Authentication/arrowhead.cls b/5.0 Draft/SysD/Authentication/arrowhead.cls new file mode 100644 index 0000000..107e691 --- /dev/null +++ b/5.0 Draft/SysD/Authentication/arrowhead.cls @@ -0,0 +1,225 @@ +% Copyright (c) 2021-08-19 Eclipse Arrowhead Project +% +% This program and the accompanying materials are made available under the +% terms of the Eclipse Public License 2.0 which is available at +% http://www.eclipse.org/legal/epl-2.0. +% +% SPDX-License-Identifier: EPL-2.0 + +% Arrowhead LaTeX Template (arrowhead.cls) +% +% A LaTeX document class for Arrowhead documentation. +% +% See example.tex for an example of how to use this class. + +\def\fileversion{1.2.1} +\def\filedate{2021/08/19} +\NeedsTeXFormat{LaTeX2e} + +\ProvidesClass{arrowhead}[\filedate\space Version \fileversion\space] +\LoadClass{article} + +\RequirePackage{xparse} +\RequirePackage{couriers} +\RequirePackage{ifthen} +\RequirePackage[hmargin=2cm,top=4cm,headheight=4cm,bottom=2.4cm,footskip=0.4cm]{geometry} +\RequirePackage{fancyhdr} +\RequirePackage{helvet} +\RequirePackage{lastpage} +\RequirePackage{listings} +\RequirePackage{microtype} +\RequirePackage[pdftex]{graphicx} +\RequirePackage{tabularx} +\RequirePackage[font={small}]{caption} +\RequirePackage[hidelinks]{hyperref} +\RequirePackage[nottoc,numbib]{tocbibind} +\RequirePackage[table]{xcolor} + +\definecolor{ArrowheadBlue}{HTML}{006F99} +\definecolor{ArrowheadGrey}{HTML}{333333} +\definecolor{ArrowheadOrange}{HTML}{D77734} +\definecolor{ArrowheadPurple}{HTML}{8F3165} +\definecolor{ArrowheadTeal}{HTML}{21A28F} +\definecolor{ArrowheadYellow}{HTML}{F6E14E} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} + +\captionsetup{width=0.94\textwidth} + +\ProcessOptions\relax + +\NewDocumentCommand{\ArrowheadTitle}{m}{\newcommand{\arrowtitle}{#1}} +\NewDocumentCommand{\ArrowheadServiceID}{m}{\newcommand{\arrowid}{#1}} +\NewDocumentCommand{\ArrowheadType}{m}{\newcommand{\arrowtype}{#1}} +\NewDocumentCommand{\ArrowheadTypeShort}{m}{\newcommand{\arrowtypeshort}{#1}} +\NewDocumentCommand{\ArrowheadVersion}{m}{\newcommand{\arrowversion}{#1}} +\NewDocumentCommand{\ArrowheadDate}{m}{\newcommand{\arrowdate}{#1}} +\NewDocumentCommand{\ArrowheadAuthor}{m}{\newcommand{\arrowauthor}{#1}} +\NewDocumentCommand{\ArrowheadStatus}{m}{\newcommand{\arrowstatus}{#1}} +\NewDocumentCommand{\ArrowheadContact}{m}{\newcommand{\arrowcontact}{#1}} +\NewDocumentCommand{\ArrowheadFooter}{m}{\newcommand{\arrowfooter}{#1}} +\NewDocumentCommand{\ArrowheadSetup}{}{ + \hypersetup{ + pdftitle={\arrowtitle\ -- \ \arrowtypeshort}, + pdfauthor={\arrowauthor\ <\arrowcontact>} + } +} +\NewDocumentCommand{\ArrowheadBox}{mm}{ + { + \vspace*{1.5\baselineskip} + \setlength{\tabcolsep}{0pt} + \renewcommand*{\arraystretch}{0} + \noindent + \begin{tabularx}{\dimexpr\textwidth-1pt-2.75ex\relax}{ + @{\textcolor[RGB]{0,72,117}{\vrule width 1pt}} + @{\hspace{2.75ex}} + X + } + \small{\textcolor[RGB]{0,72,117}{\textbf{#1}} #2} + \end{tabularx} + } +} + +\makeatletter + +\let\origsubsubsection\subsubsection +\renewcommand\subsubsection{\@ifstar{\starsubsubsection}{\nostarsubsubsection}} +\newcommand\starsubsubsection[1]{\vspace*{-0.5ex}\origsubsubsection*{#1}\vspace*{-0.75ex}} +\newcommand\nostarsubsubsection[1]{\vspace*{-0.5ex}\origsubsubsection{#1}\vspace*{-0.75ex}} + +\renewcommand\tiny{\@setfontsize\tiny{6}{7}} +\renewenvironment{abstract}{% + \begin{flushleft} + {\large \textbf{\abstractname}}\\ + \normalsize +}{% + \end{flushleft} +} + +\makeatother + +\addtocontents{toc}{\protect\setcounter{tocdepth}{2}} + +\setlength\tabcolsep{1mm} +\renewcommand\arraystretch{1.3} +\renewcommand{\familydefault}{\sfdefault} + +\renewcommand*{\headrulewidth}{0pt} +\pagestyle{fancy} + +\newcounter{Table} +\renewcommand\theTable{\arabic{Table}} + +\fancyhf{} +%% Page Header +\lhead{ + \raisebox{-0.5\height}{\includegraphics[height=2.33cm]{figures/arrowhead_logo}} +} +\rhead{% + \renewcommand{\arraystretch}{0.75}% + \begin{tabular}{p{8.67cm} p{3.33cm}} + \ifthenelse{\value{page}=1}{% + % First Page Header + \tiny{Document title} & \tiny{Document type} \\ + \footnotesize{\textbf{\arrowtitle}} & \footnotesize{\textbf{\arrowtypeshort}} \\ + \tiny{Date} & \tiny{Version} \\ + \footnotesize{\textbf{\arrowdate}} & \footnotesize{\textbf{\arrowversion}} \\ + \tiny{Author} & \tiny{Status} \\ + \footnotesize{\textbf{\arrowauthor}} & \footnotesize{\textbf{\arrowstatus}} \\ + \tiny{Contact} & \tiny{Page} \\ + \footnotesize{\textbf{\arrowcontact}} & \footnotesize{\textbf{\thepage \ (\pageref{LastPage})}} + }{% + % Standard Page Header + \tiny{Document title} & \tiny{Version} \\ + \footnotesize{\textbf{\arrowtitle}} & \footnotesize{\textbf{\arrowversion}} \\ + \tiny{Date} & \tiny{Status} \\ + \footnotesize{\textbf{\arrowdate}} & \footnotesize{\textbf{\arrowstatus}} \\ + & \tiny{Page} \\ + & \footnotesize{\textbf{\thepage \ (\pageref{LastPage})}} + } + \end{tabular}% +} +%% + +%% Page Footer +\lfoot{ + \rule[1pt]{\textwidth}{0.5pt} + \scriptsize + \arrowfooter +} +%% + +%% Syntax Highlighting + +% If you need more syntaxes than these, please add them to this document and +% contribute your additions to the Eclipse Arrowhead project. + +%%% HTTP + +\lstdefinelanguage{HTTP}{ + morekeywords={CONNECT,DELETE,GET,HEAD,OPTIONS,PUT,POST,PATCH,HTTP,HTTPS}, + sensitive=false, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, % s is for start and end delimiter + morestring=[b]" +} + +\lstset{% + language=HTTP, + backgroundcolor=\color{white}, + basicstyle=\ttfamily\bfseries\footnotesize\color{ArrowheadGrey}, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + commentstyle=\mdseries, + extendedchars=true, + frame=single, + keepspaces=true, + keywordstyle=\color{ArrowheadBlue}, + numbers=left, + numbersep=1em, + numberstyle=\tiny\color{ArrowheadGrey}, + rulecolor=\color{gray!33}, + showspaces=false, + showstringspaces=false, + showtabs=false, + stringstyle=\color{ArrowheadPurple}, + tabsize=4, + aboveskip=3ex, + belowskip=2ex, +} + +%%% ABNF + +\lstdefinelanguage{ABNF}{ + otherkeywords={=,/}, + morekeywords={alpha,digit}, + sensitive=false, + morecomment=[l]{;}, + morestring=[b]" +} + +\lstset{% + language=ABNF, + backgroundcolor=\color{white}, + basicstyle=\ttfamily\bfseries\footnotesize\color{ArrowheadGrey}, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + commentstyle=\mdseries, + extendedchars=true, + frame=single, + keepspaces=true, + keywordstyle=\color{ArrowheadBlue}, + numbers=left, + numbersep=1em, + numberstyle=\tiny\color{ArrowheadGrey}, + rulecolor=\color{gray!33}, + showspaces=false, + showstringspaces=false, + showtabs=false, + stringstyle=\color{ArrowheadPurple}, + tabsize=4, + aboveskip=3ex, + belowskip=2ex, +} \ No newline at end of file diff --git a/5.0 Draft/SysD/Authentication/authentication_sysd.tex b/5.0 Draft/SysD/Authentication/authentication_sysd.tex new file mode 100644 index 0000000..807a48b --- /dev/null +++ b/5.0 Draft/SysD/Authentication/authentication_sysd.tex @@ -0,0 +1,220 @@ +\documentclass[a4paper]{arrowhead} + +\usepackage[yyyymmdd]{datetime} +\usepackage{etoolbox} +\usepackage[utf8]{inputenc} +\usepackage{multirow} +\usepackage{hyperref} + +\renewcommand{\dateseparator}{-} + +\setlength{\parskip}{1em} + +%% Special references +\newcommand{\fref}[1]{{\textcolor{ArrowheadBlue}{\hyperref[sec:functions:#1]{#1}}}} +\newcommand{\mref}[1]{{\textcolor{ArrowheadPurple}{\hyperref[sec:model:#1]{#1}}}} +\newcommand{\pdef}[1]{{\textcolor{ArrowheadGrey}{#1\label{sec:model:primitives:#1}\label{sec:model:primitives:#1s}\label{sec:model:primitives:#1es}}}} +\newcommand{\pref}[1]{{\textcolor{ArrowheadGrey}{\hyperref[sec:model:primitives:#1]{#1}}}} + +\newrobustcmd\fsubsection[3]{ + \addtocounter{subsection}{1} + \addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}function \textcolor{ArrowheadBlue}{#1}} + \renewcommand*{\do}[1]{\rref{##1},\ } + \subsection*{ + \thesubsection\quad + operation + \textcolor{ArrowheadBlue}{#1} + (\notblank{#2}{\mref{#2}}{}) + \notblank{#3}{: \mref{#3}}{} + } + \label{sec:functions:#1} +} +\newrobustcmd\msubsection[2]{ + \addtocounter{subsection}{1} + \addcontentsline{toc}{subsection}{\protect\numberline{\thesubsection}#1 \textcolor{ArrowheadPurple}{#2}} + \subsection*{\thesubsection\quad#1 \textcolor{ArrowheadPurple}{#2}} + \label{sec:model:#2} \label{sec:model:#2s} \label{sec:model:#2es} +} + +\begin{document} + +%% Arrowhead Document Properties +\ArrowheadTitle{Authentication Core System} +\ArrowheadType{System Description} +\ArrowheadTypeShort{SysD} +\ArrowheadVersion{5.0.0} +\ArrowheadDate{\today} +\ArrowheadAuthor{Tamás Bordi} +\ArrowheadStatus{DRAFT} +\ArrowheadContact{tbordi@aitia.ai} +\ArrowheadFooter{\href{www.arrowhead.eu}{www.arrowhead.eu}} +\ArrowheadSetup +%% + +%% Front Page +\begin{center} + \vspace*{1cm} + \huge{\arrowtitle} + + \vspace*{0.2cm} + \LARGE{\arrowtype} + \vspace*{1cm} + + %\Large{Service ID: \textit{"\arrowid"}} + \vspace*{\fill} + + % Front Page Image + %\includegraphics{figures/TODO} + + \vspace*{1cm} + \vspace*{\fill} + + % Front Page Abstract + \begin{abstract} + This document provides system description for the \textbf{Authentication Core System}. + \end{abstract} + + \vspace*{1cm} + + \end{center} + +\newpage +%% + +%% Table of Contents +\tableofcontents +\newpage +%% + +\section{Overview} +\label{sec:overview} +\color{black} +This document describes the Authentication core system, which exists to provide, manage and validate system identities within an Eclipse Arrowhead Local Cloud (LC). + +The rest of this document is organized as follows. +In Section \ref{sec:prior_art}, we reference major prior art capabilities +of the system. +In Section \ref{sec:use}, we describe the intended usage of the system. +In Section \ref{sec:properties}, we describe fundamental properties +provided by the system. +In Section \ref{sec:delimitations}, we describe delimitations of capabilities +of the system. +In Section \ref{sec:services}, we describe the abstract services produced by the system. +In Section \ref{sec:security}, we describe the security capabilities +of the system. + +\subsection{Significant Prior Art} +\label{sec:prior_art} + +The strong development on cloud technology and various requirements for digitisation and automation has led to the concept of Local Clouds (LC). + +\textit{"The concept takes the view that specific geographically local automation tasks should be encapsulated and protected."} \cite{jerker2017localclouds} + +One of the main building blocks when realizing such Local Cloud is the capability of authenticating all the systems when wanted to join to a given LC and verifying the system identities before enabling service sessions between them. + +The previous versions of Arrowhead had no separated or outsourced authentication mechanisms, this task relied entirely on X.509 certificates. While it is working well and reliably, it might be too resource intensive for edge devices or it could be exaggerated for certain use cases. In order to fulfill the needs for various authentication mechanisms, Arrowhead 5.0 is introducing the Authentication Core System which enables to implement and deploy the preferred methods and utilize them in a standard manner. + +\subsection{How This System Is Meant to Be Used} +\label{sec:use} + +The Authentication is a recommended core system of Eclipse Arrowhead LC and is responsible for the fundamental system identity control functionality by storing system related data in order to being able to verify the provided credentials and assign identity tokens to the systems. Also, this core system has the responsibility to verify the identity tokens upon requests. + +IMPORTANT! Application systems should not share their identity tokens with other systems than the arrowhead core or support systems. For authenticated communication between application systems the authorization token should be used. A typical way of working from a consumer system perspective is described n Figure \ref{fig:auth_interactions} + +\begin{itemize} + \item The Figure describes a use case with a dynamic orchestration from the view of the consumer. + \item Besides the consumer, every interaction with the core systems from the provider side and even the internal communication between the core systems requires identity tokens, but these are omitted here for the sake of easier understanding. + \item Interactions between the consumer and provider does not contain identity token in order to prevent any kind of identity theft. Identities should be only shared with the trusted core and support systems. + \item The difference between the identity and authorization tokens is that while identity tokens identify a system only, the authentication tokens are representing a consumer-provider service (optionally operation) exchange session. + \item Having an identity token is a must for all the systems, but requiring an authorization token is a matter of choice of the provider systems. +\end{itemize} + +\begin{figure}[ht!] + \centering + \includegraphics[width=\textwidth]{figures/auth_interactions} + \caption{Interaction diagram of a typical use case. } + \label{fig:auth_interactions} +\end{figure} + +\newpage + +\subsection{System functionalities and properties} +\label{sec:properties} + +\subsubsection {Functional properties of the system} + +Authentication solves the following needs to fulfill the requirements of authentication and system identity management. + +\begin{itemize} + \item Enables the core, support and application systems to login/logout into/from the LC. + \item Enables the core/support systems to validate that an other system is authenticated and already part of the LC. + \item Enables the core/support systems to gather identity related data about a requesting system. + \item Enabled the core/support systems with management rights to add, query and revoke system credentials. + \item Enabled the core/support systems with management rights to query and close active login sessions. + \item Enables the cloud operators to implement different kind of authentication methods. +\end{itemize} + +\subsubsection {Non functional properties of the system} +- + +\subsubsection {Data stored by the system} +In order to achieve the mentioned functionalities, Authentication is capable to store the following information set: + +\begin{itemize} + \item \textbf{System authentication method}: What type of authentication method is assigned to a system by system name. + \item \textbf{System authentication info}: What is required to verify upon a login request by system name and whether the system has access rights to the management services by default or not. + \item \textbf{Identity tokens}: the assigned identity tokens by system-name and with the token properties like start date, expiration date, etc... . +\end{itemize} + +\subsection{Important Delimitations} +\label{sec:delimitations} + +- + +\newpage + +\section{Services produced} +\label{sec:services} + +\msubsection{service}{identity} +The purpose of this service is to enable the core/support and application systems to login/logout into/out from the Local Cloud and also to enable core/support systems to verify a requester application system's identity. + +\msubsection{service}{identity-management} +Its main purpose is to manage the system credentials and the active sessions in bulk. It also provides querying functionalities. The service is offered for core and administrative support systems. + +\msubsection{service}{monitor} +Recommended service. Its purpose is to give information about the Authentication system itself. The service is offered for both application and core/support systems. + +\newpage + +\section{Security} +\label{sec:security} + +The actual implementation of the Authentication Core System can decide about the encryption of the connection between itself and other systems. + +\newpage + +\bibliographystyle{IEEEtran} +\bibliography{bibliography} + +\newpage + +\section{Revision History} +\subsection{Amendments} + +\noindent\begin{tabularx}{\textwidth}{| p{1cm} | p{3cm} | p{2cm} | X | p{4cm} |} \hline +\rowcolor{gray!33} No. & Date & Version & Subject of Amendments & Author \\ \hline + +1 & YYYY-MM-DD & \arrowversion & & Xxx Yyy \\ \hline +\end{tabularx} + +\subsection{Quality Assurance} + +\noindent\begin{tabularx}{\textwidth}{| p{1cm} | p{3cm} | p{2cm} | X |} \hline +\rowcolor{gray!33} No. & Date & Version & Approved by \\ \hline + +1 & YYYY-MM-DD & \arrowversion & \\ \hline + +\end{tabularx} + +\end{document} \ No newline at end of file diff --git a/5.0 Draft/SysD/Authentication/bibliography.bib b/5.0 Draft/SysD/Authentication/bibliography.bib new file mode 100644 index 0000000..afc6807 --- /dev/null +++ b/5.0 Draft/SysD/Authentication/bibliography.bib @@ -0,0 +1,236 @@ +@misc{klyne2002date, + series={Request for Comments}, + number={3339}, + howpublished={RFC 3339}, + note={{RFC Editor}}, + url={https://doi.org/10.17487/RFC3339}, + aurhor={Klyne, G. and C. Newman}, + title={{Date and Time on the Internet: Timestamps}}, + year={2002} +} + +@inproceedings{grigg2004ricardian, + title={The ricardian contract}, + author={Grigg, Ian}, + booktitle={Proceedings of the First IEEE International Workshop on Electronic Contracting}, + pages={25--31}, + year={2004}, + organization={IEEE}, + url={https://doi.org/10.1109/WEC.2004.1319505} +} + +@misc{josefsson2006base64, + series={Request for Comments}, + number={4648}, + howpublished={RFC 4648}, + note={{RFC Editor}}, + url={https://doi.org/10.17487/RFC4648}, + aurhor={S. Josefsson}, + title={{The Base16, Base32, and Base64 Data Encodings}}, + year={2006} +} + +@misc{crocker2008abnf, + series={Request for Comments}, + howpublished={RFC 5234}, + publisher={{RFC Editor}}, + url={https://doi.org/10.17487/RFC5234}, + author={D. Crocker and P. Overell}, + title={{Augmented BNF for Syntax Specifications: ABNF}}, + year={2008} +} + +@misc{cooper2008internet, + series={Request for Comments}, + howpublished={RFC 5280}, + publisher={{RFC Editor}}, + url={https://doi.org/10.17487/RFC5280}, + author={D. Cooper and others}, + title={{Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List ({CRL}) Profile}}, + year={2008} +} + +@misc{bray2014json, + series={Request for Comments}, + number={7159}, + howpublished={RFC 7159}, + note={{RFC Editor}}, + url={https://doi.org/10.17487/RFC7159}, + author={Tim Bray}, + title={{The JavaScript Object Notation (JSON) Data Interchange Format}}, + year={2014} +} + +@misc{eu2014identification, + author={{Council of the European Union}}, + title={Regulation ({EU}) No 910/2014 of the {European} {Parliament} and of the {Council} of 23 July 2014 on electronic identification and trust services for electronic transactions in the internal market and repealing Directive 1999/93/{EC}}, + year={2014}, + url={https://eur-lex.europa.eu/eli/reg/2014/910/oj} +} + +@misc{fielding2014hypertext, + series={Request for Comments}, + number={7230}, + howpublished={RFC 7230}, + note={{RFC Editor}}, + url={https://doi.org/10.17487/RFC7230}, + author={R. Fielding and J. Reschke}, + title={{Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing}}, + year={2018} +} + +@inbook{jerker2017localclouds, + author={Jerker Delsing and Pal Varga}, + editor={Jerker Delsing}, + title={{Local automation clouds}}, + bookTitle={IOT Automation: Arrowhead Framework}, + year={2017}, + publisher={Taylor \& Francis Group}, + address={Boca Raton}, + pages={28}, + isbn={978-1-4987-5675-4}, + doi={10.1201/978-1-315-36789-7}, + url={https://doi.org/10.1201/9781315367897} +} + +@inbook{athan2015legalruleml, + author={Athan, Tara and Governatori, Guido and Palmirani, Monica and Paschke, Adrian and Wyner, Adam}, + editor={Faber, Wolfgang and Paschke, Adrian}, + title={{LegalRuleML: Design Principles and Foundations}}, + bookTitle={Reasoning Web. Web Logic Rules: 11th International Summer School 2015, Berlin, Germany, July 31- August 4, 2015, Tutorial Lectures.}, + year={2015}, + publisher={Springer International Publishing}, + address={Cham}, + pages={151--188}, + isbn={978-3-319-21768-0}, + doi={10.1007/978-3-319-21768-0\_6}, + url={https://doi.org/10.1007/978-3-319-21768-0\_6} +} + +@article{clack2016foundations, + author={Christopher D. Clack and Vikram A. Bakshi and Lee Braine}, + title={Smart Contract Templates: foundations, design landscape and research directions}, + journal={arXiv preprint arXiv:1608.00771}, + volume={abs/1608.00771}, + year= {2016}, + url= {http://arxiv.org/abs/1608.00771}, +} + +@article{clack2016requirements, + title={Smart Contract Templates: essential requirements and design options}, + author={Clack, Christopher D and Bakshi, Vikram A and Braine, Lee}, + journal={arXiv preprint arXiv:1612.04496}, + volume={abs/1612.04496}, + year={2016}, + url= {http://arxiv.org/abs/1612.04496}, +} + +@article{giancaspro2017smart, + title={Is a ‘smart contract’ really a smart idea? Insights from a legal perspective}, + author={Mark Giancaspro}, + journal={Computer Law \& Security Review}, + volume={33}, + number={6}, + year={2017}, + issn={0267-3649}, + url={https://doi.org/10.1016/j.clsr.2017.05.007} +} + +@misc{rescorla2018transport, + series={Request for Comments}, + number={8446}, + howpublished={RFC 8446}, + note={{RFC Editor}}, + url={https://doi.org/10.17487/RFC8446}, + author={E. Rescorla}, + title={{The Transport Layer Security (TLS) Protocol Version 1.3}}, + year={2018} +} + +@inproceedings{palm2019exchange, + author={Emanuel Palm and Olov Schelén and Ulf Bodin and Richard Hedman}, + booktitle={2019 IEEE 17th International Conference on Industrial Informatics (INDIN)}, + title={{The Exchange Network: An Architecture for the Negotiation of Non-Repudiable Token Exchanges}}, + ISSN={2378-363X}, + year={2019}, + url={http://urn.kb.se/resolve?urn=urn:nbn:se:ltu:diva-74043}, + note={\textit{accepted for publication}} +} + +@inbook{palm2019approaching, + author={Emanuel Palm and Ulf Bodin and Olov Schelén}, + title={{The Performance, Interoperability and Integration of Distributed Ledger Technologies}}, + chapter={Paper D}, + pages={111--141}, + publisher={Luleå University of Technology}, + year={2019}, + url={http://urn.kb.se/resolve?urn=urn:nbn:se:ltu:diva-74046}, + isbn={978-91-7790-403-8} +} + +@article{cowlishaw2019floating, + author={Mike Cowlishaw}, + journal={IEEE Std 754-2019 (Revision of IEEE 754-2008)}, + title={{IEEE Standard for Floating-Point Arithmetic}}, + year={2019}, + url={https://doi.org/10.1109/IEEESTD.2019.8766229}, + month={July} +} + +@online{iana2019hash, + author={IANA}, + title={{Hash Function Textual Names}}, + url={https://www.iana.org/assignments/hash-function-text-names/hash-function-text-names.xhtml}, + year={2019} +} + +@online{iana2019signature, + author={IANA}, + title={{Transport Security Layer (TLS) Parameters -- TLS SignatureScheme}}, + url={https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-signaturescheme}, + year={2019}, + note={Note the table \textit{Description} column} +} + +@misc{carion2019json, + series={Request for Comments}, + number={draft-json-schema-language-02}, + howpublished={RFC Draft}, + note={{RFC Editor}}, + url={https://tools.ietf.org/html/draft-json-schema-language-02}, + author={U. Carion}, + title={{JSON Schema Language}}, + year={2019}, + note={accessed 2019-09-27} +} + +@misc{rfc8259, + series = {Request for Comments}, + number = 8259, + howpublished = {RFC 8259}, + publisher = {RFC Editor}, + doi = {10.17487/RFC8259}, + url = {https://rfc-editor.org/rfc/rfc8259.txt}, + author = {Tim Bray}, + title = {{The JavaScript Object Notation (JSON) Data Interchange Format}}, + pagetotal = 16, + year = 2017, + month = dec, + abstract = {JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data. This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.}, +} + + +@misc{rfc9100, + series = {Request for Comments}, + number = 9100, + howpublished = {RFC 9100}, + publisher = {RFC Editor}, + doi = {10.17487/RFC9100}, + url = {https://rfc-editor.org/rfc/rfc9100.txt}, + author = {Carsten Bormann}, + title = {{Sensor Measurement Lists (SenML) Features and Versions}}, + pagetotal = 7, + year = 2021, + month = aug, + abstract = {This short document updates RFC 8428, "Sensor Measurement Lists (SenML)", by specifying the use of independently selectable "SenML Features" and mapping them to SenML version numbers.}, +} \ No newline at end of file diff --git a/5.0 Draft/SysD/Authentication/figures/arrowhead_logo.pdf b/5.0 Draft/SysD/Authentication/figures/arrowhead_logo.pdf new file mode 100644 index 0000000..792e60c Binary files /dev/null and b/5.0 Draft/SysD/Authentication/figures/arrowhead_logo.pdf differ diff --git a/5.0 Draft/SysD/Authentication/figures/auth_interactions.png b/5.0 Draft/SysD/Authentication/figures/auth_interactions.png new file mode 100644 index 0000000..822203b Binary files /dev/null and b/5.0 Draft/SysD/Authentication/figures/auth_interactions.png differ