presentations

Presentations
Log | Files | Refs

reclaim.tex (16244B)


      1 \documentclass[aspectratio=169]{beamer}
      2 \usepackage{appendixnumberbeamer}
      3 \usetheme{metropolis}           % Use metropolis theme
      4 \definecolor{fhggreen}{RGB}{23,156,125}
      5 \let\oldemph\textbf
      6 \renewcommand{\textbf}[1]{{\color{mLightBrown}\oldemph{#1}}}
      7 
      8 \usepackage{blkarray}
      9 \usepackage{amsmath}
     10 \usepackage{multirow}
     11 \title{\includegraphics[trim={6cm 7cm 6cm 7cm},clip,width=0.5\textwidth]{reclaim_small}\\\small{Datenspuren 2019}}
     12 \date{21.9.2019}
     13 \author{Martin Schanzenbach}
     14 \institute{\includegraphics[width=.25\textwidth]{aisec_logo.pdf} \hfill \large{GNUnet} \includegraphics[trim={0cm 1.5cm 0cm 0cm},clip,width=5em]{gnunet}}
     15 \begin{document}
     16   \metroset{block=fill,sectionpage=progressbar,numbering=counter}
     17   \maketitle
     18  \section{Motivation}
     19 
     20 \begin{frame}{Motivation}
     21   Identity Provider Market:
     22     \begin{center}
     23       \includegraphics[width=0.9\textwidth]{idp_info}
     24     \end{center}
     25     \begin{tiny}
     26       Source: \url{http://www.gigya.com/blog/the-landscape-of-customer-identity-q2-2015/}
     27     \end{tiny}
     28 \end{frame}
     29  \begin{frame}{Motivation}
     30    Issues:
     31    \begin{enumerate}
     32      \item \textbf{Privacy} concerns:
     33        \begin{itemize}
     34          \item Targeted advertisement, opinion shaping.
     35          \item ``Public safety'': Mass surveillance and data collection.
     36        \end{itemize}
     37        \pause
     38      \item \textbf{Liability} risks:
     39        \begin{itemize}
     40          \item Data loss through leaks or hacks may result in existential legal implications (GDPR).
     41        \end{itemize}
     42        \pause
     43      \item \textbf{Oligopoly}:
     44        \begin{itemize}
     45          \item ``There can be only one (two)''.
     46          \item IdP market tends to degenerate.
     47          \item Federation not widely used.
     48        \end{itemize}
     49    \end{enumerate}
     50  \end{frame}
     51 
     52 \begin{frame}{Approach}
     53   \textbf{Primary objective}: We must enable users to exercise their right to digital self-determination:
     54     \begin{enumerate}
     55         \pause
     56       \item Avoid third party services for identity management and data sharing.
     57         \pause
     58       \item Open, free and decentralized service which is not under the control of a single organization, consortium or business.
     59         \pause
     60       \item Free software.
     61     \end{enumerate}
     62     \pause
     63     $\Rightarrow$ Empower users to \textbf{reclaim} control over their digital identities.
     64  \end{frame}
     65 
     66 
     67  \begin{frame}{What does an IdP do?}
     68    \begin{enumerate}
     69      \item Identity provisioning and access control
     70        \begin{itemize}
     71          \item Allow management of identities and personal data.
     72          \item Facilitate sharing of identity data with third parties.
     73          \item Provide up-to-date information accessible even if user is offline.
     74          \item Enforce authorization decisions of user.
     75          \uncover<3->{\item[$\Rightarrow$] \textbf {re:claimID}}
     76        \end{itemize}
     77        \pause
     78        {\color<3->{gray}
     79      \item Identity information verification and attestation:
     80        \begin{itemize}
     81            {\color<3->{gray}
     82          \item ``this is Alice's email address'': Email provider.
     83          \item ``this person is living in Germany'': Sovereign state.
     84          \uncover<3->{\item[$\Rightarrow$] \textbf {Not our department!*}}
     85            }
     86        \end{itemize}
     87        \uncover<3->{\tiny{*We will revisit this further on.}}
     88        }
     89    \end{enumerate}
     90    %\begin{enumerate}
     91    %  \item Identities and attributes must be shared over a secure, decentralized storage to allow access even of user is offline
     92    %  \item Access control on data without trusted entity that enforces authorization decisions by user of he is offline
     93    %\end{enumerate}
     94  \end{frame}
     95 
     96 
     97 
     98 \section{Introducing \includegraphics[trim={6cm 8.2cm 6cm 7cm},clip,width=.4\textwidth]{reclaim_small}}
     99 
    100 \begin{frame}
    101   \begin{itemize}
    102     \item re:claimID is a \textbf{self-sovereign} personal data sharing system.
    103     \item Other self-sovereign identity systems you may have head about:
    104       \begin{itemize}
    105         \item Sovrin (Hyperledger)\uncover<2->{$\Leftarrow$ \textbf{Permissioned blockchain}}
    106         \item uPort (Ethereum)\uncover<3->{$\Leftarrow$ \textbf{Data shared off-chain: If user is offline data not accessible}}.
    107         \item NameID (Namecoin) \uncover<4->{$\Leftarrow$ \textbf{Access control through central server (wat?)}}
    108 
    109       \end{itemize}
    110     \uncover<5->{\item[!] re:claimID does \textbf{not} require a blockchain, is fully decentralized and allows asynchronuous data access.}
    111   \end{itemize}
    112 \end{frame}
    113 
    114 
    115 
    116 \begin{frame}{In a nutshell}
    117   \begin{minipage}[m]{0.40\textwidth}
    118     \centering
    119     \centering
    120     \includegraphics[trim={6cm 7cm 6cm 7cm},clip,width=1\textwidth]{reclaim_small}
    121   \end{minipage}
    122   \begin{minipage}[m]{0.2\textwidth}
    123     \centering
    124     \Huge {\color{black} =}
    125   \end{minipage}
    126   \begin{minipage}[m]{0.25\textwidth}
    127     \centering
    128     {\large \textbf{Decentralized directory service}}\\
    129     \vspace{1em}
    130     {\Huge \color{black} +}\\
    131     \vspace{1em}
    132     {\large \textbf{Cryptographic access control}}
    133   \end{minipage}
    134 \end{frame}
    135 
    136 \begin{frame}{Directory services?}
    137   \begin{center}
    138     \includegraphics[width=1\textwidth]{directories}
    139   \end{center}
    140 \end{frame}
    141 
    142 
    143 \begin{frame}{In a nutshell}
    144   \begin{itemize}
    145     \item Decentralized directory service
    146       \begin{itemize}
    147         \item Secure \textbf{name system} with open name registration.
    148         \item Idea ``borrowed'' from NameID.
    149         \item Example: nslookup email.bob.org $\Rightarrow$ ``bob@example.com''
    150         \item Our implementation uses the \textbf{GNU Name System (GNS)}
    151       \end{itemize}
    152       \pause
    153     \item Cryptographic access control layer
    154       \begin{itemize}
    155         \item Provided by GNS through encrypted and signed resource records.
    156         \item Protects identity data from unwanted disclosure and allows users to enforce access control.
    157       \end{itemize}
    158   \end{itemize}
    159   %\begin{enumerate}
    160   %  \item Identities and attributes must be shared over a secure, decentralized storage to allow access even of user is offline
    161   %  \item Access control on data without trusted entity that enforces authorization decisions by user of he is offline
    162   %\end{enumerate}
    163 \end{frame}
    164 
    165 %\begin{frame}{Centralized Storage, centralized IdP}
    166 %  \includegraphics[width=1\textwidth]{idp_traditional}
    167 %\end{frame}
    168 %\begin{frame}{Decentralized Storage, centralized IdP}
    169 %  \includegraphics[width=1\textwidth]{idp_nameid}
    170 %\end{frame}
    171 %\begin{frame}{reclaimID}
    172 %  \includegraphics[width=1\textwidth]{idp_gnuid}
    173 %\end{frame}
    174 %
    175 
    176 
    177 \section{How does it work}
    178 
    179 \begin{frame}{Managing and publishing identity information}
    180   \centering
    181   \includegraphics[width=1\textwidth]{Reclaim-2}
    182 \end{frame}
    183 
    184 \begin{frame}{The GNU Name System}
    185   \begin{itemize}
    186     \item In GNS, a namespace is defined by a public/private EC key pair:
    187       \begin{itemize}
    188         \item $x$: Private key
    189         \item $P$: Public key
    190         \item $G$: Generator of the curve
    191         \item $n$: Group order
    192       \end{itemize}
    193       \pause
    194     \item Records are encrypted and signed using keys derived from $(x,P)$.
    195       \pause
    196     \item Encrypted records are published in a distributed hash table (under key $q$).
    197       \pause
    198     \item Any peer is able to verify the signature as the corresponding derived public key is also published.
    199     \pause
    200     \item Records can only be resolved and decrypted if the true identity and the label is known.
    201     \pause
    202     \item[$\Rightarrow$] Namespaces \textbf{cannot} be enumerated and queries/responses \textbf{cannot}* be observed.
    203   \end{itemize}
    204   \tiny{*Unless label and identity are known.}
    205 \end{frame}
    206 
    207 \begin{frame}{Identity attributes in GNS}
    208   Users may create a namespace  $(x,P)$ and use it as a digital identity containing personal information:
    209   \begin{table}[h]
    210     \begin{tabular}{|c|c|c|}
    211       \hline
    212       Label & Record Type & Value \\\hline\hline
    213       $l_{email}$    & \texttt{ATTR} & ``email=alice@example.com''\\\hline
    214       $l_{name}$    & \texttt{ATTR} & ``name=Alice Doe''\\\hline
    215       $l_{dob}$  & \texttt{ATTR}    & ``dob=1.3.1987'' \\\hline
    216     \end{tabular}
    217   \end{table}
    218   where the labels are \textbf{random secret values} with high entropy.
    219 \end{frame}
    220 
    221 
    222 \begin{frame}{Publishing information}
    223   Given a namespace $(x,P)$, we can treat labels as shared secrets in order to selectively disclose information.
    224 
    225   %\setlength{\jot}{4.5pt}
    226   \[
    227     \def\arraystretch{1.1}
    228     \begin{blockarray}{r@{\;}l}
    229       \begin{block}{r@{\;}l}
    230         h &:= Hash(l_{attr},P) \\[\jot]
    231       \end{block}
    232       \pause
    233       \\
    234       \begin{block}{\Left{\textbf{DHT key }}{\{}r@{\;}l}
    235         q &:= H(hP) \\
    236       \end{block}
    237       \pause
    238       \\
    239       \begin{block}{\Left{\textbf{Encryption }}{\{}r@{\;}l}
    240         k &:= HKDF(l_{attr},P) \\[\jot]
    241         Record &:= Enc_k(Data) \\[\jot]
    242       \end{block}
    243       \pause
    244       \\
    245       \begin{block}{\Left{\textbf{Signature }}{\{}r@{\;}l}
    246         d &:= h\cdot x~mod~n \\[\jot]
    247         Signature &= Sig_d(Record) \\[\jot]
    248       \end{block}
    249     \end{blockarray}
    250   \]
    251 \end{frame}
    252 
    253 \begin{frame}{Authorizing access}
    254   \centering
    255   \includegraphics[width=1\textwidth]{Reclaim-3}
    256 \end{frame}
    257 
    258 
    259 \begin{frame}{Authorizing access}
    260   \begin{table}[h]
    261     \begin{tabular}{|c|c|c|}
    262       \hline
    263       Label & Record Type & Value \\\hline\hline
    264       $l_{email}$    & \texttt{ATTR} & ``email=alice@doe.com''\\\hline
    265       $l_{name}$    & \texttt{ATTR} & ``name=Alice Doe''\\\hline
    266       $l_{dob}$  & \texttt{ATTR}    & ``dob=1.3.1987'' \\\hline\pause
    267       \multirow{2}{*}{\textbf{$l_{ticket}$}}    & \texttt{ATTR\_REF} & $l_{email}$\\\cline{2-3}
    268       & \texttt{ATTR\_REF} & $l_{dob}$\\\hline
    269     \end{tabular}
    270   \end{table}
    271   \begin{itemize}
    272     \item For each authorized party, the user publishes reference records under the secret label \textbf{$l_{ticket}$}
    273     \item \textbf{$l_{ticket}$} can be shared with a third party in order to authorize access to email and dob.
    274     \item Indirection enables us to revoke tickets.
    275   \end{itemize}
    276 \end{frame}
    277 
    278 
    279 %\begin{frame}{Transfer keys}
    280 %  \centering
    281 %  \includegraphics[width=1\textwidth]{Reclaim-3}
    282 %\end{frame}
    283 
    284 
    285 \begin{frame}{Retrieve and decrypt attributes}
    286   \centering
    287   \includegraphics[width=1\textwidth]{Reclaim-4}
    288 \end{frame}
    289 
    290 \begin{frame}{Retrieving information}
    291   Given an identity with public key $P$, we can retrieve references using \textbf{$l_{ticket}$} and subsequently identity info from GNS.
    292 
    293   %\setlength{\jot}{4.5pt}
    294   \[
    295     \def\arraystretch{1.1}
    296     \begin{blockarray}{r@{\;}l}
    297       \begin{block}{r@{\;}l}
    298         h &:= Hash(l_{ticket},P) \\[\jot]
    299       \end{block}
    300       \pause
    301       \\
    302       \begin{block}{\Left{\textbf{DHT key }}{\{}r@{\;}l}
    303         q &:= H(hP) \\[\jot]
    304       \end{block}
    305       \pause
    306       \\
    307       \begin{block}{\Left{\textbf{Record decryption }}{\{}r@{\;}l}
    308         k &:= HKDF(l_{ticket},P) \\[\jot]
    309         Data &:= Dec_k(Record) \\[\jot]
    310       \end{block}
    311     \end{blockarray}
    312   \]
    313 \end{frame}
    314 
    315 \begin{frame}{Integration}
    316   \begin{itemize}
    317     \item re:claimID implements the OpenID Connect protocol.
    318     \item For websites, it is just like integrating any other IdP (e.g. Google)
    319     \item For users, the authorization flow looks just like with anny other OpenID Connect IdP.
    320   \end{itemize}
    321 \end{frame}
    322 
    323 \begin{frame}{}
    324   \centering
    325   Demo
    326 \end{frame}
    327 
    328 
    329 \section{Who sais that, anyway?}
    330 
    331 \begin{frame}{Attestations}
    332   \centering
    333   \begin{itemize}
    334     \item Sometimes we need third party assurances to establish trust in identities.
    335       \pause
    336     \item Currently, IdPs such as Facebook/Google implicitly provide this assurance (i.e. vouch for the truthfulness and correctness).
    337       \pause
    338     \item Claim: Those parties are not actually the authorities over (most of) your personal data! Examples:
    339       \begin{itemize}
    340         \item Real name (State/Self-asserted/Other organization)
    341         \item Phone number (Provider)
    342         \item Address (State/Self-asserted)
    343         \item Citizenship (State)
    344         \item Age (State)
    345         \item Email address (Mail provider)
    346       \end{itemize}
    347   \end{itemize}
    348 \end{frame}
    349 
    350 \begin{frame}{Attestations}
    351   \centering
    352   \begin{itemize}
    353     \item What users actually need is a \textbf{collection of credentials}.
    354       \pause
    355     \item Those credentials are issued by a \textbf{variety of different entities}, including the user.
    356       \pause
    357     \item Credentials are ideally \textbf{preserving the privacy} of the individual, e.g. using zero-knowledge proofs.
    358       \pause
    359     \item Those ideas are already finding their way into standards:
    360       \begin{itemize}
    361         \item W3C: ``Verifiable Credentials''
    362         \item OpenID Connect: ``Aggregated Claims'' \uncover<5->{$\Leftarrow$ \textbf{working on it}.}
    363       \end{itemize}
    364   \end{itemize}
    365 \end{frame}
    366 
    367 
    368 %\begin{frame}{Authorization protocol and key transfer}
    369 %  \centering
    370 %  \begin{center}
    371 %    \begin{minipage}[m]{0.8\textwidth}
    372 %      \centering
    373 %      \includegraphics[trim={6cm 6.5cm 6cm 7cm},clip,width=0.5\textwidth]{reclaim_small}
    374 %      \vspace{0.5cm}
    375 %    \end{minipage}
    376 %
    377 %    \begin{minipage}[m]{0.8\textwidth}
    378 %      \centering
    379 %      %{\Huge \color{fhggreen} $\heartsuit$}
    380 %      \includegraphics[clip,width=1.5cm]{handshake}
    381 %    \end{minipage}
    382 %
    383 %    \begin{minipage}[m]{0.7\textwidth}
    384 %      \centering
    385 %      \vspace{0.5cm}
    386 %      %\includegraphics[width=0.2\textwidth]{openid_logo}
    387 %      \huge{OpenID Connect}
    388 %    \end{minipage}
    389 %  \end{center}
    390 %\end{frame}
    391 
    392 \section{Using re:claimID}
    393 \begin{frame}{Installing re:claimID}
    394   \begin{enumerate}
    395     \item Install the webextension: \url{https://addons.mozilla.org/firefox/addon/reclaimid/}
    396     \item \uncover<2->{Install \textbf{GNUnet} $>=0.11.6$}
    397   \end{enumerate}
    398   \pause
    399   \uncover<1-2>{
    400     \begin{center}
    401       \includegraphics[height=0.4\textwidth]{iu.jpg}
    402     \end{center}
    403   }
    404 \end{frame}
    405 
    406 \begin{frame}{Installing re:claimID}
    407   Get help installing GNUnet and/or re:claimID at our workshop today!
    408   \begin{itemize}
    409     \item Right after this.
    410     \item Time: 12:15 PM -- 15:00 PM
    411     \item Location: Seminarraum
    412   \end{itemize}
    413 \end{frame}
    414 
    415 
    416 \section{Summary}
    417 
    418 \begin{frame}{Status}
    419   \begin{itemize}
    420     \item Get it at \url{https://reclaim-identity.io}.
    421     \item Demo websites exist:
    422       \begin{itemize}
    423         \item \url{https://demo.reclaim-identity.io}
    424         \item \url{https://eusec.clouditor.io}
    425       \end{itemize}
    426     \item Roadmap:
    427       \begin{itemize}
    428         \item User-friendly packaging (of GNUnet)
    429         \item Ship GNUnet inside browser plugin (yes, that might even work).
    430         \item ``1.0'' by end of 2019
    431       \end{itemize}
    432   \end{itemize}
    433   \begin{center}
    434       \end{center}
    435 \end{frame}
    436 
    437 
    438 \begin{frame}
    439   \begin{center}
    440     Questions?\\
    441     \vspace{2cm}
    442     \url{https://reclaim-identity.io}\\
    443     \url{https://gnunet.org}\\
    444     \vspace{1em}
    445     {\tiny
    446     \texttt{schanzen@aisec.fraunhofer.de}\\
    447     \texttt{6665~201E~A925~7CC6~8FDE~77E8~8433~5131~EA3D~ABF0}\\
    448     -- or --\\
    449     \texttt{schanzen@gnunet.org}\\
    450     \texttt{3D11~063C~10F9~8D14~BD24~D147~0B09~98EF~86F5~9B6A}\\
    451     }
    452   \end{center}
    453 \end{frame}
    454 
    455 \appendix
    456 
    457 \begin{frame}{References}
    458   \centering
    459   {\small
    460   \begin{enumerate}
    461     \item {Matthias Wachs, Martin Schanzenbach and Christian Grothoff. {\em A Censorship-Resistant, Privacy-Enhancing and Fully Decentralized Name System}. {\bf 13th Intern
    462       ational Conference on Cryptology and Network Security}, 2014.}
    463     \item {Martin Schanzenbach, Georg Bramm, Julian Schütte. {\em reclaimID: Secure, Self-Sovereign Identities Using Name Systems and Attribute-Based Encryption}. {\bf 17th
    464       IEEE International Conference On Trust, Security And Privacy In Computing And Communications (TrustCom)}, 2018}
    465   \end{enumerate}
    466   }
    467 \end{frame}
    468 
    469 
    470 
    471 %\begin{frame}{NameID}
    472 %  NameID:
    473 %  \begin{center}
    474 %    \includegraphics[width=1\textwidth]{nameid}
    475 %  \end{center}
    476 %\end{frame}
    477 %
    478 %\begin{frame}{Performance}
    479 %  Impact of name system caches on successive attribute resolution.
    480 %  \begin{center}
    481 %    \includegraphics[width=0.7\textwidth]{attr_perf_plot_100}
    482 %  \end{center}
    483 %
    484 %\end{frame}
    485 %
    486 %\begin{frame}{Performance}
    487 %  Attribute resolution performance depending on network size.
    488 %  \begin{center}
    489 %    \includegraphics[width=0.8\textwidth]{perf_attrs.png}
    490 %  \end{center}
    491 %
    492 %\end{frame}
    493 %
    494 
    495 \end{document}