#LyX 2.2 created this file. For more info see http://www.lyx.org/
\lyxformat 508
\begin_document
\begin_header
\save_transient_properties true
\origin unavailable
\textclass beamer
\begin_preamble
%\usetheme{lankton-keynote}
\usetheme{Singapore}

\setbeamercovered{transparent}
% or whatever (possibly just delete it)
\usepackage{fontspec}
%\newfontface\cjk{ShanHeiSun-Uni}
%\newfontface\cjk{BousungEG-Light-GB}
\newfontface\cjk{GBZenKai-Medium}
%\newfontface\cjk{ZenKai-Medium}
%\newfontface\cjk{ShanHeiSun-Light}
%\newfontface\cjk{ZenKai-Uni}
\end_preamble
\options aspectratio=43
\use_default_options false
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding utf8x
\fontencoding global
\font_roman "default" "default"
\font_sans "default" "default"
\font_typewriter "default" "default"
\font_math "auto" "auto"
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100 100
\font_tt_scale 100 100
\graphics default
\default_output_format pdf5
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize default
\use_geometry true
\use_package amsmath 2
\use_package amssymb 2
\use_package cancel 1
\use_package esint 0
\use_package mathdots 1
\use_package mathtools 1
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 0
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 2
\tocdepth 2
\paragraph_separation indent
\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Title
net
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
kern-1ex
\backslash
lower3ex
\backslash
hbox{
\end_layout

\end_inset


\begin_inset Graphics
	filename net2o-logo.pdf
	lyxscale 10
	scale 10

\end_inset


\begin_inset ERT
status open

\begin_layout Plain Layout

}
\backslash
kern-.5ex
\end_layout

\end_inset

: Using net2o 
\begin_inset Argument 1
status open

\begin_layout Plain Layout
net2o
\end_layout

\end_inset


\end_layout

\begin_layout Subtitle
reinventing the internet
\end_layout

\begin_layout Author
Bernd Paysan
\end_layout

\begin_layout Date
EuroForth 2016, Konstanz/Reichenau
\end_layout

\begin_layout Standard
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
addtobeamertemplate{headline}{}{
\backslash
vbox{
\backslash
vspace{3ex}
\backslash
hbox to
\backslash
paperwidth{
\backslash
hfill
\end_layout

\end_inset


\begin_inset Graphics
	filename net2o-logo.pdf
	lyxscale 5
	scale 5

\end_inset


\begin_inset ERT
status open

\begin_layout Plain Layout

~~~}}}
\end_layout

\end_inset


\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
Outline
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Standard
\begin_inset CommandInset toc
LatexCommand tableofcontents

\end_inset


\end_layout

\end_deeper
\begin_layout Section
Motivation
\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
3 years after Snowden
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Standard
What happend to change the world:
\end_layout

\begin_layout Pause

\end_layout

\begin_layout Description
Politics Manhatten project to find 
\begin_inset Quotes eld
\end_inset

the golden key
\begin_inset Quotes erd
\end_inset

?
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Users don't want their dick picks be watched and use DuckDuckGo and encrypted
 chat
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Software NSA backdoors have been refitted by attackers (Juniper)
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Solutions net2o starts to be increasingly usable
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\begin_layout Frame

\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
net2o in a nutshell
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Standard
net2o consists of the following 6 layers (implemented bottom up):
\end_layout

\begin_layout Pause

\end_layout

\begin_layout Enumerate
\begin_inset ERT
status open

\begin_layout Plain Layout

[
\backslash
setcounter{enumi}{2}
\backslash
usebeamertemplate{enumerate item}]
\end_layout

\end_inset

Path switched packets with 
\begin_inset Formula $2^{n}$
\end_inset

 size writing into shared memory buffers
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Enumerate
Ephemeral key exchange and signatures with Ed25519, 
\begin_inset Newline newline
\end_inset

symmetric authenticated encryption+hash+prng with Keccak,
\begin_inset Newline newline
\end_inset

symmetric block encryption with Threefish
\begin_inset Newline newline
\end_inset

onion routing camouflage probably with AES
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Enumerate
Timing driven delay minimizing flow control
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Enumerate
Stack–oriented tokenized command language
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Enumerate
Distributed data (files) and distributed metadata (prefix hash trie)
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Enumerate
Apps in a sandboxed environment for displaying content
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
Objectives
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Standard
net2o's design objectives are
\end_layout

\begin_layout Pause

\end_layout

\begin_layout Itemize
lightweight, fast, scalable
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
easy to implement
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
secure
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
media capable
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
works as overlay on current networks (UDP/IP), but can replace the entire
 stack
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\begin_layout Section
Layer 7: Applications
\end_layout

\begin_layout Subsection
Basic Frameworks
\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
Basic Frameworks
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Description
PKI Create, import, and exchange keys
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Named
\begin_inset space ~
\end_inset

file
\begin_inset space ~
\end_inset

copy For testing only
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Vault A container for encrypted data without metadata exposure
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
DHT Query key/value pairs (keys are pubkeys or hash keys)
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Chat Instant messaging 1:1 or in chat groups
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Version
\begin_inset space ~
\end_inset

control
\begin_inset space ~
\end_inset

system For larger/structured content
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Sync to synchronize your computers (RSN)
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Audio/Video
\begin_inset space ~
\end_inset

Chat Real time data streaming (RSN)
\end_layout

\end_deeper
\begin_layout Section
Get it
\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
Get it: Debian and Android
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Description
Debian Use the Debian package, and enter as root:
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
\size small
cat >/etc/apt/sources.list.d/net2o.list <<EOF
\begin_inset Newline newline
\end_inset

deb [arch=amd64,all] http://net2o.de/debian testing main
\begin_inset Newline newline
\end_inset

EOF
\begin_inset Newline newline
\end_inset

wget -O - https://net2o.de/bernd@net2o.de.gpg.asc | 
\backslash

\begin_inset Newline newline
\end_inset

apt-key add -
\begin_inset Newline newline
\end_inset

aptitude update; aptitude install net2o
\family default
\series default
\size default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Android Get Gforth from play store or 
\family typewriter
\series bold
https://net2o.de/Gforth.apk
\begin_inset Newline newline
\end_inset


\family default
\series default
Open/close (back button) Gforth if you like; then open net2o.
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
Get it: Windows and macOS
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Description
Windows Get the two current setup.exes for Gforth and net2o, and install
 them:
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
\size small

\begin_inset Flex URL
status open

\begin_layout Plain Layout

http://www.complang.tuwien.ac.at/forth/gforth/Snapshots/current/gforth64.exe
\end_layout

\end_inset


\begin_inset Newline newline
\end_inset


\begin_inset Flex URL
status open

\begin_layout Plain Layout

https://net2o.de/windows/net2o64.exe
\end_layout

\end_inset


\family default
\series default
\size default

\begin_inset Newline newline
\end_inset

You will be asked for accepting the unsigned exes, as neither Gforth nor
 net2o are signed now
\begin_inset Newline newline
\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
macOS Once I got around creating a brew tap, it will be easy to install
 under Mac OS X (or whatever it is called now), too.
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
Get it from Source
\end_layout

\end_inset


\end_layout

\begin_deeper
\begin_layout Description
From
\begin_inset space ~
\end_inset

Source for Linux, Mac OS X, Windows (cygwin) you need:
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
\size small
git automake autoconf make gcc libtool libltdl7 fossil
\begin_inset Newline newline
\end_inset


\series default
you run:
\series bold
 mkdir net2o; cd net2o
\begin_inset Newline newline
\end_inset

wget https://fossil.net2o.de/net2o/doc/trunk/do
\begin_inset Newline newline
\end_inset

chmod +x do; ./do
\size default

\begin_inset Newline newline
\end_inset


\family default
\series default
This will install some stuff and take some time (I will try to improve that).
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\begin_layout Section
Try it
\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
Try it — Generate a Key
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Description
Linux you run:
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
n2o cmd
\begin_inset Newline newline
\end_inset

keygen
\family default
\series default
 
\emph on
<nick>
\family typewriter
\series bold
\emph default

\begin_inset Newline newline
\end_inset


\family default
\series default
Enter your passphrase twice.
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Android Tap on the little nettie to start the app, it will autodetect that
 you don't have a key generated.
 Enter nick and passphrase twice.
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
Try it — get a key and chat
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Itemize
To get my key, search for it (32 bit is sufficient now, but easy to attack)
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
keysearch
\family default
\series default
 
\family typewriter
\series bold
kQusJ
\family default
\series default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Send me an invitation
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
invite @bernd
\family default
\series default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Try to chat with me
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
chat euroforth@bernd
\family default
\series default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Aquire more keys by observing a group chat.
 List your keys with
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
n2o keylist
\begin_inset Newline newline
\end_inset


\family default
\series default
from within the chat.
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Change networks with your Android and watch that the chat still works.
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Leave the chat with 
\family typewriter
\series bold
/bye
\family default
\series default
 or Ctrl+D (back on Android)
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
Try it — Vault en/decryption
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Itemize
Take a file and encrypt it
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
enc test.txt
\family default
\series default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Show it's content
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
cat test.txt.v2o
\family default
\series default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Sign a file with a detached signature
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
sign test.txt
\family default
\series default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Verify the signature
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
verify test.txt
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\begin_layout Frame
\begin_inset Argument 4
status open

\begin_layout Plain Layout
Try it — Use the DVCS
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Itemize
Create a directory and add a few files into it, keep a net2o instance running
 inside that directory with
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
n2o cmd
\family default
\series default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Initialize the directory
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
init
\family default
\series default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Add the files in the directory
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
add *
\begin_inset Newline newline
\end_inset

ci -m "My checkin message"
\begin_inset Newline newline
\end_inset


\family default
\series default
and check them in
\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Change a file and see what has changed
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
diff
\family default
\series default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Check in the changed file
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
ci -m "Second checkin"
\family default
\series default

\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Show the commit messages
\begin_inset Newline newline
\end_inset


\family typewriter
\series bold
log
\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\begin_layout Section*
\start_of_appendix
Appendix
\end_layout

\begin_layout Subsection*
For Further Reading
\end_layout

\begin_layout Frame
\begin_inset Argument 3
status open

\begin_layout Plain Layout
allowframebreaks
\end_layout

\end_inset


\begin_inset Argument 4
status open

\begin_layout Plain Layout
For Further Reading
\end_layout

\end_inset


\begin_inset Separator latexpar
\end_inset


\end_layout

\begin_deeper
\begin_layout Bibliography
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "In20"

\end_inset


\noun on
Bernd Paysan 
\noun default

\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
newblock
\end_layout

\end_inset


\emph on
net2o source repository and wiki 
\emph default

\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
newblock
\end_layout

\end_inset

 
\begin_inset Flex URL
status open

\begin_layout Plain Layout

http://fossil.net2o.de/net2o
\end_layout

\end_inset


\end_layout

\end_deeper
\begin_layout Standard
\begin_inset Separator parbreak
\end_inset


\end_layout

\end_body
\end_document
