#+TITLE: Vergangenheit, Gegenwart und Zukunft von GnuPG #+Author: Werner Koch #+EMAIL: wk@gnupg.org #+DATE: 39. DAFTA --- Köln\newline\newline\small{19. November 2015} #+LANGUAGE: en #+OPTIONS: H:2 num:t toc:nil \n:nil @:t ::t |:t ^:{} -:t f:t *:t <:t #+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:t pri:nil tags:not-in-toc #+STARTUP: beamer #+LATEX_CLASS: beamer #+LATEX_CLASS_OPTIONS: [presentation] #+BEAMER_THEME: Singapore #+BEAMER_HEADER: \usepackage{pgfplots} #+BEAMER_HEADER: \pgfplotsset{compat=1.11} #+BEAMER_HEADER: \usepackage{tikz} #+BEAMER_HEADER: \usetikzlibrary{shapes} #+BEAMER_HEADER: \usetikzlibrary{positioning} #+BEAMER_HEADER: \logo{\includegraphics[height=5mm]{gnupg-logo-tr.png}} #+COLUMNS: %45ITEM %10BEAMER_ENV(Env) %2BEAMER_ACT(Act) %4BEAMER_COL(Col) %8BEAMER_OPT(Opt) #+begin_beamer \setbeamercovered{transparent} \setbeamertemplate{itemize item}[triangle] \setbeamertemplate{itemize subitem}[ball] % Support newlines (via \\) in a tabular cell. The first parameter is % how to horizontally align the text (e.g., l, r, or c). The next % parameter is the text to typeset. The optional parameter specifies % how to vertically align the cell *within* the box (either t, b, or % c). Note this vertical alignment does not set the baseline. % [[http://tex.stackexchange.com/questions/2441/how-to-add-a-forced-line-break-inside-a-table-cell]] % http://tex.stackexchange.com/questions/23521/tabular-vertical-alignment-to-top \newcommand{\breakablecell}[3][c]{% \begin{tabular}[#1]{@{}#2@{}}% \def\valignment{#1}% \def\defaultalignment{}% Equivalent to c. \def\topalignment{t}% \def\bottomalignment{b}% \def\centeralignment{c}% \ifx\valignment\defaultalignment% \else% \ifx\valignment\centeralignment% \else% \ifx\valignment\bottomalignment% \vtop\bgroup\null\hbox\bgroup% \else% \ifx\valignment\topalignment% \errmessage{Error: t is unimplemented.}% \else% \errmessage{Error: Invalid vertical alignment #1}% \fi% \fi% \fi% \fi% #3% \ifx\valignment\defaultalignment% \else% \ifx\valignment\centeralignment% \else% \egroup\egroup% \fi% \fi% \end{tabular}% } \tikzset{a/.style={thin,circle,draw=black,minimum size=1.5cm,font={\scriptsize}}} \tikzset{b/.style={a,fill=blue!40}} \tikzset{c/.style={a,fill=green!40}} \tikzset{bc/.style={a,circle split, shade, shading=axis, shading angle=0, left color=green!40, right color=blue!40}} \def\alerton[#1]#2{\alt<#1>{\alert{#2}}{#2}} \AtBeginSection[] { \begin{frame} \frametitle{Übersicht} \tableofcontents[currentsection,hideothersubsections] \end{frame} } #+end_beamer #+MACRO: alerton @@beamer:\begin{alertenv}<$1>@@ #+MACRO: alertend @@beamer:\end{alertenv}@@ * Vergangenheit ** Wir schreiben das Jahr 1991 PGP-2 - Phil Zimmermann schreibt erste öffentliche Verschlüsselungssoftware. - @@beamer:<2->@@ Wesentlich verbessert von Branko Lankester, Colin Plumb, Derek Atkins, Hal Finney, Peter Gutmann, et al. - @@beamer:<3->@@ Problem 1: RSA Patent - @@beamer:<4->@@ Problem 2: IDEA Patent - @@beamer:<5->@@ Problem 3: Exportkontrolle ** 5 Jahre später # Only a quick run through. - 1996 :: PGP Inc. gegründet - 1997 :: DH Patent abgelaufen, PGP-5 veröffentlicht. - 1997 :: IETF Arbeitsgruppe für OpenPGP gegründet. - 1998 :: PGP Inc. von NAI gekauft. - 1998 :: RFC-2440 veröffentlicht. - 2002 :: NAI stellt Support für PGP ein. - 2007 :: RFC-4880 veröffentlicht. - 2012 :: RFC-6637 veröffentlicht (ECC Erweiterung) ** IN Kongreß 1997 #+begin_center #+BEAMER:\vspace{-5mm} #+BEAMER:\includegraphics[width=0.7\textwidth]{in-kongress-97.pdf} #+end_center ** g10 / GnuPG *** :B_quote: :PROPERTIES: :BEAMER_env: quote :BEAMER_ACT: <2-> :END: „Das Briefgeheimnis sowie das Post- und Fernmeldegeheimnis sind unverletzlich. Beschränkungen dürfen nur auf Grund eines Gesetzes angeordnet werden.” *** :B_block: :PROPERTIES: :BEAMER_env: block :END: - @@beamer:<1->@@ PGP-5 keine Freie Software. - @@beamer:<2->@@ Dezember 1997: @@beamer:\alerton[2]{g10}@@ als PGP-2 Ersatz: - Keine patentierten Verfahren - Als Unix Werkzeug entworfen - @@beamer:<3->@@ Frühjahr 1998: Name auf GnuPG geändert; nun OpenPGP. ** Auswahl der Algorithmen - Ursprungsversion (g10) - Elgamal ersetzt RSA (signieren und verschlüsseln). - Blowfish für symmetrische Verschlüsselung. - IDEA+RSA als Plugin zu PGP-2 Kompatibilität in einigen Ländern. #+beamer:\pause - OpenPGP hat Unterschlüssel - DSA für Signaturen, Elgamal zur Verschlüsselung. - 3DES oder CAST5 zur symmetrische Verschlüsselung. - RSA im September 2000 hinzugefügt #+beamer:\pause - GnuPG und PGP-{5,6,7} - Zusammenarbeit mit Hal Finney und Jon Callas. - Informale Interoperabilitättests. - Testen von neuen Features. ** GnuPG-2 - @@beamer:<1->@@ g10^{code} gegründet in 2001. - @@beamer:<2->@@ Ausschreibung zur Implementierung von S/MIME gewonnen. - zusammen mit Intevation (Osnabrück) - und KDAB (Berlin). - @@beamer:<3->@@ \ldots Start von GnuPG-2 (2003) - Modularisiert - Separate Krypto-Bibliothek - Bibliothek mit GnuPG API (gpgme) ** Portierung nach Windows - @@beamer:<1->@@Experimenteller Port in 1998. - @@beamer:<2->@@Vollständiger Port in 2000. - Aufgrund eines Projekts des BMWi - @@beamer:<3->@@Gpg4win wurde 2006 veröffentlicht - @@beamer:<4->@@GnuPG-2 war nicht für eine Windows Portierung vorgesehen - \ldots wir haben es dann aber doch geschafft. - @@beamer:<5->@@ Zirka 4000 Gpg4win 2.x Downloads am Tag * Gegenwart ** Branches - @@beamer:<1->@@ Version 2.1 (“@@beamer:\alerton[1]{modern}@@”) - Veröffentlicht im November 2014. - Neue Features (z.B. TOFU). - @@beamer:<2->@@ Version 2.0 (“@@beamer:\alerton[2]{stable}@@”) - Befindet sich im Maintenance-Modus - Kleinere Änderungen als Hilfe zur Migration nach 2.1. - @@beamer:<3->@@ Version 1.4 (“@@beamer:\alerton[3]{classic}@@”) - Für alte Daten und Schlüssel sowie Plattformen wie VMS etc. - Hat weiterhin PGP-2 Support. - Kleinere Änderungen als Hilfe zur Migration nach 2.1. ** OpenPGP IETF Working Group #+begin_beamer \begin{description} \item<1->[Mär 2008] Abgeschlossen nach RFC-4880 \item<2->[Jun 2015] Re-chartered \item<3->[Sep 2015] (rough) Consensus über Updates von RFC-4880. \item<4->[Feb 2016] Erster WG I-D for RFC-4880bis. \item<5->[Jul 2016] RFC-4880bis WG I-D Final Call. \end{description} #+end_beamer ** RFC-4880bis Ziele - Zusammenfassung der relvanten 3 OpenPGP RFCs. - Neue Kurven wie von der Crypto Forum Research Group (CFRG) empfohlen. - Symmetrische Verschlüsselung mit modernem Integritätsschutz (AEAD). - Revision der MUST Algorithmen and Verbannung von schwachen Algorithmen (MD5, SHA-1). - Neues Fingerprint Verfahren. ** Elliptic curve cryptography #+begin_beamer \begin{center} \begin{tikzpicture} \begin{axis}[% height=35mm, axis lines=center, xticklabels={}, yticklabels={}, samples=150, domain=-2.8:5] \addplot[blue]{sqrt(x^3+17)}; \addplot[blue]{-sqrt(x^3+17)}; \end{axis} \end{tikzpicture} \end{center} #+end_beamer - @@beamer:<2->@@ RFC-6637 beschreibt ECC für OpenPGP. - @@beamer:\alerton[3]{NIST Kurven}@@, - andere Kurven auch möglich (z.B. Brainpool). - @@beamer:<2->@@ GnuPG 2.1 implementiert dies seit 2011. - @@beamer:<3->@@ NIST Kurven sind etwas suspekt. - @@beamer:<4->@@ Wir wollen Kurven mit besserer Repudation: - ECDH mit Curve25519, - EdDSA mit Ed25519, - die vom CFRG vorgeschlagenen Kurven. ** Exkurs: Remote Use #+begin_beamer \begin{center} \begin{tikzpicture} \draw (0, 0) node[b, minimum width=2cm]{\breakablecell{c}{Exposed\\box}} -- (3, 0) node[b, minimum width=2cm]{\breakablecell{c}{Safe\\box}}; \end{tikzpicture} \end{center} #+end_beamer - @@beamer:<2->@@ Mittels ssh’s Socket Forwarding: - gpg-agent läuft auf dem "sicheren" Rechner, - gpg läuft auf dem "exponierten" Server. - @@beamer:<3->@@ Siehe auch =--extra-socket=, =--browser-socket=. ** Spenden - @@beamer:<1->@@ 5000 USD/Monat von der Linux Foundation für 2015. - @@beamer:<2->@@ ProPublica Artikel im Februar ... - @@beamer:<3->@@ wir erhielten \tilde{}300 KEUR an Spenden - Individuell - Unternehmen (Stripe, FB) - @@beamer:<4->@@ Wir hatten Glück --- andere Projekte sind immer noch unterfinanziert. ** Was wir mit unseren Spendne machen - @@beamer:<1->@@ Neal Walfield als zweiter Vollzeitentwickler - @@beamer:<2->@@ Yutaka Niibe arbeitet als Freelancer (e.g. Smartcards, ECC) - @@beamer:<3->@@ Kai Michaelis hilft Teilzeit bei Enigmail. - @@beamer:<4->@@ Justus Winter als dritter Vollzeitentwickler seit diesem Monat. - @@beamer:<5->@@ Ich arbeite auch noch mit. ** Besonderen Dank - David Shaw - Marcus Brinkmann - Jussi Kivilinna - Andre Heinecke - Andreas Metzler - Daniel Kahn Gilmor - Daniel Leidert - Eric Dorland - Bug-Berichter, Reviewer, Tester, Spender, \ldots * Zukunft ** Vision - Dank Edward Snowden besteht ein neues Interesse an Verschlüsselung #+beamer:\pause - Gpg und das Web-of-Trust sind schwierig zu benutzen - Keysigning Parties sind für Geeks #+beamer:\pause - Neuer Standardfocus: - Massenüberwachung - Einfache Benutzung #+beamer:\pause - Hochsensible Einsatzbereiche werden weiterhin unterstützt: - Per Option. ** Support für Tor und GNUnet - @@beamer:<1->@@ Netzzugriff geschieht über ein dediziertes Modul. - @@beamer:<2->@@ Die Option =--enable-tor= sendet alles über Tor. - @@beamer:<3->@@ GNU Naming System (GNS). ** Tofu *** :B_definition: :PROPERTIES: :BEAMER_env: definition :BEAMER_ACT: <1-> :END: Trust On First Use: Das Vertrauensmodell der Secure Shell (ssh) *** :B_block: :PROPERTIES: :BEAMER_env: block :END: - @@beamer:<2->@@ Erste Implementierung existiert. - @@beamer:<3->@@ Wird generell in 2.2 vorhanden sein. - @@beamer:<4->@@ Wird zukünftig das voreingestellte Vertrauensmodell. ** GPGME GPGME ist eine Bibliothek um auf gpg, gpgsm und gpg-agent zuzugreifen. \bigskip #+beamer:\pause Features in Planung: - Verbesserte "Language Bindings" - Unterstützung neuer gpg Features. - Gpg wird als Co-Process laufen: - Signaturprüfung - Entschlüsselung. ** Zeitrahmen für neue GnuPG Versionen - @@beamer:<1>@@ 1.4 Veröffentlichungen bei Bedarf - Jedoch ohne ECC Support. - @@beamer:<2>@@ 2.0 wird im Januar 2018 End-Of-Life erreichen - Kein ECC oder RFC-4880bis Erweiterungen. - @@beamer:<3>@@ 2.1 wird durch *2.2* ersetzt und als *stable* deklariert: - Anfang nächsten Jahres - Support für Curve25519. - ECC Schlüsselerzeugung wird noch =--expert= erfordern. - @@beamer:<4>@@ 2.3 für RFC-4880bis Entwicklungen - Einige Features werden nach 2.2 zurück portiert. * :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: ** Zusammenfassung *** :B_block: :PROPERTIES: :BEAMER_env: block :END: - @@beamer:<1,4->@@ 2.1/2.2 wird bald der Standard sein. - @@beamer:<2,4->@@ Solides Entwicklerteam. - @@beamer:<3,4->@@ Wir machen Massenüberwachung teuer. *** :B_block: :PROPERTIES: :BEAMER_env: block :BEAMER_ACT: <4-> :END: #+begin_center Vielen Dank für Ihre Aufmerksamkeit. #+end_center #+BEAMER: {\vfill} #+BEAMER: {\vspace{10mm}} #+BEAMER: {\tiny{Slides are \copyright{} 2015 The GnuPG Project, CC BY-SA 4.0. #+BEAMER: \url{https://gnupg.org/ftp/blurbs/dafta15_gnupg-vergangenheit-gegenwart-zukunft.org}}}