update ceofhack to ceof
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
This commit is contained in:
parent
b2c34a2210
commit
f41d6fa0ac
12 changed files with 12 additions and 1084 deletions
|
@ -1,10 +1,19 @@
|
|||
## Introduction
|
||||
|
||||
ceofhack is the first implementation of ***EOF*** (Eris Onion Forwarding),
|
||||
ceof is the implementation and documentation
|
||||
of ***EOF*** (Eris Onion Forwarding),
|
||||
the secure, peer-to-peer (p2p), decentralised anonymous chat network.
|
||||
|
||||
* [[user documentationy|user]]
|
||||
* [[developer documentationy|developer]]
|
||||
You can read the
|
||||
[bachelor thesis](http://git.schottelius.org/?p=ceof;a=blob;f=doc/thesis.pdf),
|
||||
which describes the motivation and goals or you
|
||||
can view [the poster that was used on the presentation](http://git.schottelius.org/?p=ceof;a=blob;f=doc/appendix/poster.pdf).
|
||||
|
||||
## Get ceof
|
||||
|
||||
You can get ceof via git:
|
||||
|
||||
git clone git://git.schottelius.org/ceof
|
||||
|
||||
## Support
|
||||
|
Binary file not shown.
|
@ -1,20 +0,0 @@
|
|||
## Requirements
|
||||
|
||||
ceofhack depends on a small number of other packages:
|
||||
|
||||
* [gpgme](http://www.gnupg.org/gpgme.html)
|
||||
* make
|
||||
* [latex](http://www.latex-project.org/) and [dia](http://live.gnome.org/Dia)
|
||||
(for documentation)
|
||||
|
||||
## Building ceofhack
|
||||
|
||||
Simply run the following line:
|
||||
|
||||
cd ceofhack && make
|
||||
|
||||
Parallel building is also supported, like this:
|
||||
|
||||
cd ceofhack && make -j8
|
||||
|
||||
[[!tag unix]]
|
Binary file not shown.
Binary file not shown.
|
@ -1,24 +0,0 @@
|
|||
## Introduction
|
||||
|
||||
ceofhack and all other EOF subsystems need a common place to find themselves
|
||||
and to function properly.
|
||||
|
||||
## Initial configuration: the easy way
|
||||
|
||||
Simply run the following line:
|
||||
|
||||
cd ceofhack && ./scripts/init_home.sh
|
||||
|
||||
This will
|
||||
|
||||
* create a the configuration directory **$HOME/.ceof**,
|
||||
* create a new pgp key pair,
|
||||
* add the tcp transport protool
|
||||
* and enable the tcp transport protocol to listen to **0.0.0.0:4242**.
|
||||
|
||||
## Initial configuration: the expert way
|
||||
|
||||
Read and understand **./scripts/init_home.sh** and consult
|
||||
the current EOF standard document.
|
||||
|
||||
[[!tag unix]]
|
|
@ -1,66 +0,0 @@
|
|||
[[!toc levels=2]]
|
||||
|
||||
To get into EOF through ceofhack, you should make sure you understand
|
||||
[[how to use|user]] ceofhack in general. Depeding on your skills and
|
||||
interests, you may either be interested in
|
||||
|
||||
* hacking the core (aka ceofhack, rare developers probably)
|
||||
* creating user interfaces (ui)
|
||||
* creating transport protocols (tp)
|
||||
|
||||
## API documentation
|
||||
|
||||
In general, everything you need should be documented in the
|
||||
EOF standard document. If it's not, it's probably a bug
|
||||
(in that case, send a patch).
|
||||
|
||||
## UI developers
|
||||
|
||||
UIs can either live in their own projects or be a part of
|
||||
ceofhack. The **first** way is recommended, so your development
|
||||
does not depend on ceofhack.
|
||||
|
||||
## Transport protocol developers
|
||||
|
||||
TPs can either live in their own projects or be a part of
|
||||
ceofhack. The **second** way is recommended, so all available
|
||||
transport protocols are shared with the ceofhack installation.
|
||||
|
||||
### Creating a new transport protocol
|
||||
|
||||
You can use the following code as a start:
|
||||
|
||||
scheme=phpbb
|
||||
implementation=shell
|
||||
cd ceofhack/tp
|
||||
mkdir -p ${scheme}/${implementation}
|
||||
echo "echo listening implementation" > ${scheme}/${implementation}/listen
|
||||
echo "echo send implementation" > ${scheme}/${implementation}/send
|
||||
chmod 0755 ${scheme}/${implementation}/*
|
||||
|
||||
Now you've a dummy "working" transport protocol.
|
||||
|
||||
### Enabling a new transport protocol
|
||||
|
||||
You can use the following code as a start:
|
||||
|
||||
scheme=phpbb
|
||||
implementation=shell
|
||||
cd ceofhack/tp
|
||||
|
||||
# Enable protocol in general
|
||||
mkdir -p "$HOME/.ceof/tp/available/${scheme}"
|
||||
cp "${scheme}/${implementation}/listen" "$HOME/.ceof/tp/available/${scheme}"
|
||||
cp "${scheme}/${implementation}/send" "$HOME/.ceof/tp/available/${scheme}"
|
||||
|
||||
# Enable listener for protocol
|
||||
address="describe-particular-address"
|
||||
mkdir -p "$HOME/.ceof/tp/listen/${scheme}-${address}"
|
||||
echo "${scheme}${address}" > "$HOME/.ceof/tp/listen/${scheme}-${address}/url"
|
||||
|
||||
### Submitting a transport protocol for inclusion into the mainline
|
||||
|
||||
* Create a branch ${scheme}-${implementation} on your side
|
||||
* Submit a pull request (via ML, IRC, github, whatever)
|
||||
|
||||
[[!tag unix]]
|
|
@ -1,11 +0,0 @@
|
|||
[[!meta title="EOF - die erste Vorstellung"]]
|
||||
[[!meta date="2007-09-05"]]
|
||||
|
||||
This speech was made in the Chaos Computer Club Zuerich (CCCZH)
|
||||
in the rooms of the Dock18 at the 5th of September 2009.
|
||||
It is the first public presentation about EOF (in German).
|
||||
|
||||
* [[View as PDF|eof-die-erste-vorstellung.pdf]]
|
||||
* [[View LaTeX source|eof-die-erste-vorstellung.tex]]
|
||||
|
||||
[[!tag publication]]
|
Binary file not shown.
|
@ -1,844 +0,0 @@
|
|||
% first presentation about cmtp
|
||||
\documentclass{beamer}
|
||||
\usepackage{german}
|
||||
\usepackage{beamerthemesplit}
|
||||
\setbeamercovered{dynamic}
|
||||
\usetheme{Malmoe}
|
||||
|
||||
\title{EOF}
|
||||
\subtitle{Die erste Vorstellung}
|
||||
\author{Nico -telmich- Schottelius}
|
||||
%\date{\today}
|
||||
\date{5. September 2007}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\frame{\titlepage}
|
||||
|
||||
%\section[Outline]{}
|
||||
\frame{\tableofcontents}
|
||||
|
||||
% Inhalt:
|
||||
% - Vorstellung
|
||||
% telmich
|
||||
% !eof
|
||||
% - Motivation
|
||||
% * !eof befindet ist zur Zeit im IRCNet
|
||||
% * Etwas unangenehnem
|
||||
% * abhoerbar an vielen Stellen
|
||||
% - Alternativen
|
||||
% irc+ssl:
|
||||
% alle links?
|
||||
% - ssl-only kanaele
|
||||
% - auf den servern abhoerbar
|
||||
% silc
|
||||
% jabber
|
||||
% sympathische software
|
||||
% tor
|
||||
%
|
||||
% EOF
|
||||
% in mehreren projektphasen
|
||||
% PGP
|
||||
% momentaner stand
|
||||
% Webseite: EOF-1, www.eof.name/projects/eof-1/
|
||||
% Libraries, client, client zum client
|
||||
%
|
||||
%
|
||||
|
||||
\section{Einleitung}
|
||||
\subsection{Vorstellung}
|
||||
\frame
|
||||
{
|
||||
\frametitle{Erste Vorstellung}
|
||||
|
||||
\begin{itemize}
|
||||
\item Erste Pr\"asentation
|
||||
\pause
|
||||
\item Hier im CCCZH
|
||||
\pause
|
||||
\item Kreative K\"opfe
|
||||
\pause
|
||||
\item Kritik bekommen
|
||||
\pause
|
||||
\item Anregen zum Mitdenken und -machen
|
||||
\end{itemize}
|
||||
}
|
||||
\frame
|
||||
{
|
||||
\frametitle{!eof}
|
||||
|
||||
\begin{itemize}
|
||||
\item Junge Hackergruppe
|
||||
\pause
|
||||
\item 2001 gegr\"undet
|
||||
\pause
|
||||
\item Fokus auf Freundlichkeit
|
||||
\pause
|
||||
\item Deutschland, Niederlande, Schweiz
|
||||
\pause
|
||||
\item IRCNet: !eof
|
||||
\pause
|
||||
\item https://www.eof.name/
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Nico Schottelius}
|
||||
|
||||
\begin{itemize}
|
||||
\item Entwickelt freie, quelloffene Software (FOSS)
|
||||
\pause
|
||||
\item Philosophie: Machen statt meckern
|
||||
\pause
|
||||
\item aka telmich
|
||||
\pause
|
||||
\item https://nico.schottelius.org/
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{EOF}
|
||||
|
||||
\begin{itemize}
|
||||
\item Alternatives Chatsystem
|
||||
\pause
|
||||
\item Projekt von !eof
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\subsection{Motivation}
|
||||
\frame
|
||||
{
|
||||
\frametitle{Warum dieser Vortrag?}
|
||||
|
||||
\begin{itemize}
|
||||
\item Idee vorstellen
|
||||
\pause
|
||||
\item Kritik bekommen
|
||||
\pause
|
||||
\item Werben von
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Entwicklern
|
||||
\pause
|
||||
\item Testern
|
||||
\pause
|
||||
\item (noch) nicht Benutzern
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
\frame
|
||||
{
|
||||
\frametitle{Warum das Rad neu erfinden?}
|
||||
|
||||
\begin{itemize}
|
||||
\item IRC ist grunds\"atzlich unverschl\"usselt
|
||||
\pause
|
||||
\item Suchen eine generell nicht abh\"orbare Alternative
|
||||
\pause
|
||||
\item Existierende Alternativen erf\"ullen nicht alle Anforderungen
|
||||
\end{itemize}
|
||||
}
|
||||
\frame
|
||||
{
|
||||
\frametitle{Anforderungen}
|
||||
|
||||
\begin{itemize}
|
||||
\item Dezentralit\"at
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Ohne zentralen Server
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Nicht abh\"orbar
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item \textbf{Wer} mit \textbf{wem} \textbf{wann} \textbf{was} redet
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Verschl\"usselung und Signatur
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\subsection{\"Uber diesen Vortrag}
|
||||
\frame
|
||||
{
|
||||
\frametitle{Versionen dieses Vortrages}
|
||||
|
||||
\begin{itemize}
|
||||
\item Nur Text (\LaTeX{} oder PDF)
|
||||
\pause
|
||||
\item Nur Ton (Aufnahme in Ogg)
|
||||
\pause
|
||||
\item Text und Ton (Theora-Video)
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Kopieren dieses Vortrages}
|
||||
|
||||
\begin{itemize}
|
||||
\item Ist (hiermit) explizit gestattet
|
||||
\pause
|
||||
\item Creative Commons Attribution-Share Alike 2.0 Germany License
|
||||
\pause
|
||||
\item http://creativecommons.org/licenses/by-sa/2.0/de/
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Quellen dieses Vortrages}
|
||||
|
||||
\begin{itemize}
|
||||
\item Unter folgenden Adressen zu finden:
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item https://nico.schottelius.org/projects/eof-1/
|
||||
\pause
|
||||
\item https://www.eof.name/projects/eof-1/
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\section{Alternativen}
|
||||
\subsection{IRC+SSL}
|
||||
\frame
|
||||
{
|
||||
\frametitle{\"Ubersicht IRC+SSL}
|
||||
|
||||
\begin{itemize}
|
||||
\item Standard IRC mit SSL
|
||||
\pause
|
||||
\item Verschl\"usselung
|
||||
\begin{itemize}
|
||||
\item Client zum Server
|
||||
\pause
|
||||
\item Server zum Server
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item "`Nur SSL"'-R\"aume
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Vorteile}
|
||||
|
||||
\begin{itemize}
|
||||
\item Erprobtes Protokoll
|
||||
\pause
|
||||
\item Stabile Software vorhanden
|
||||
\pause
|
||||
\item Verschl\"usselung ist einfach hinzuf\"ugbar
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Nachteile}
|
||||
|
||||
\begin{itemize}
|
||||
\item Innerhalb der Server ungesichert
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Kompromitierung durch \"Ubernahme eines Servers m\"oglich
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Keine Ende-zu-Ende-Verschl\"usselung
|
||||
\pause
|
||||
\item Teile der Verbindung k\"onnen unverschl\"usselt sein
|
||||
\pause
|
||||
\item Statistische Analyse m\"oglich
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Wer sendet wann, wer empf\"angt wann?
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\subsection{SILC}
|
||||
\frame
|
||||
{
|
||||
\frametitle{\"Ubersicht SILC}
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{S}ecure \textbf{I}nternet \textbf{L}ive \textbf{C}hat
|
||||
\pause
|
||||
\item Geplanter Ersatz f\"ur IRC
|
||||
\pause
|
||||
\item Verschl\"usselung
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Server zum Server
|
||||
\pause
|
||||
\item Client zum Server
|
||||
\pause
|
||||
\item Client zum Client
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item http://www.silcnet.org/
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Vorteile}
|
||||
|
||||
\begin{itemize}
|
||||
\item Verschl\"usselung von Anfang eingeplant
|
||||
\pause
|
||||
\item Integration in einen bekannten Chat-Client (irssi)
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Nachteile}
|
||||
|
||||
\begin{itemize}
|
||||
\item Instabile Software
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Client st\"urzt ab
|
||||
\pause
|
||||
\item Server verliert Kanal-Parameter (z.B. +r)
|
||||
\pause
|
||||
\item Server verliert Kan\"ale
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Eigenes (unerforschtes) Protokoll
|
||||
\pause
|
||||
\item Statistische Analyse m\"oglich
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\subsection{Jabber}
|
||||
\frame
|
||||
{
|
||||
\frametitle{\"Ubersicht Jabber}
|
||||
|
||||
\begin{itemize}
|
||||
\item Instant messaging (IM) Protokoll
|
||||
\pause
|
||||
\item Transport via XML
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Vorteile}
|
||||
|
||||
\begin{itemize}
|
||||
\item Viele Clients verf\"ugbar
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Nachteile}
|
||||
|
||||
\begin{itemize}
|
||||
\item Kan\"ale sind eine Erweiterung
|
||||
\pause
|
||||
\item Verschl\"usselung optional
|
||||
\pause
|
||||
\item Statistische Analyse m\"oglich
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\subsection{Tor}
|
||||
\frame
|
||||
{
|
||||
\frametitle{\"Ubersicht Tor}
|
||||
|
||||
\begin{itemize}
|
||||
\item Anonymisierungsdienst
|
||||
\pause
|
||||
\item Kein Chatprotokoll
|
||||
\pause
|
||||
\item Zwiebelprinzip
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Vorteile}
|
||||
|
||||
\begin{itemize}
|
||||
\item Stabile Software vorhanden
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Nachteile}
|
||||
|
||||
\begin{itemize}
|
||||
\item Client sendet nur wenn er wirklich sendet
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Statistische Analyse m\"oglich
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Empf\"anger sendet Paket nicht weiter
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Endpunkte sind erkennbar
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
|
||||
\section{EOF}
|
||||
\frame
|
||||
{
|
||||
\frametitle{EOF}
|
||||
|
||||
\begin{itemize}
|
||||
\item Projektaufbau
|
||||
\pause
|
||||
\item Grundideen
|
||||
\pause
|
||||
\item Beispiele
|
||||
\pause
|
||||
\item Stand
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\subsection{Projektaufbau}
|
||||
\frame
|
||||
{
|
||||
\frametitle{Evolution}
|
||||
|
||||
\begin{itemize}
|
||||
\item Kleine Teile programmieren
|
||||
\pause
|
||||
\item Vorschl\"age f\"ur Protokolle entwerfen
|
||||
\pause
|
||||
\item Ausprobieren und aus Fehlern lernen
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{EOF-1}
|
||||
|
||||
\begin{itemize}
|
||||
\item Erste Phase
|
||||
\pause
|
||||
\item Ideen dokumentieren
|
||||
\pause
|
||||
\item Ideen diskutieren
|
||||
\pause
|
||||
\item Viele Fehler machen
|
||||
\pause
|
||||
\item Juli 2007 bis Dezember 2007
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{EOF-1 Vorgehen}
|
||||
|
||||
\begin{itemize}
|
||||
\item Spezifikationsentw\"urfe schreiben f\"ur
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Protokolle
|
||||
\pause
|
||||
\item Software
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Freie Wahl der Programmiersprache
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Kommunikation \"uber klar definierte Schnittstellen
|
||||
\end{itemize}
|
||||
\pause
|
||||
\item Modularer Aufbau
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{EOF-2}
|
||||
|
||||
\begin{itemize}
|
||||
\item Fehler aus EOF-1 korrigieren
|
||||
\pause
|
||||
\item Dokumentation erstellen
|
||||
\pause
|
||||
\item Plan f\"ur finale Version erstellen
|
||||
\pause
|
||||
\item Januar 2008 bis Juni 2008
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{EOF-3}
|
||||
|
||||
\begin{itemize}
|
||||
\item Spezifikation von EOF-2 implementieren
|
||||
\pause
|
||||
\item Unterst\"utzung mehrerer Betriebsysteme
|
||||
\pause
|
||||
\item Produktiv nutzbar
|
||||
\pause
|
||||
\item Juli 2008 bis Dezember 2008
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\subsection{Grundideen}
|
||||
\frame
|
||||
{
|
||||
\frametitle{Modularit\"at}
|
||||
|
||||
\begin{itemize}
|
||||
\item Viele kleine Teile
|
||||
\pause
|
||||
\item Alles ist austauschbar
|
||||
\pause
|
||||
\item Klar definierte Schnittstellen
|
||||
\pause
|
||||
\item F\"ur anderes wiederverwendbar
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Das Zwiebelprinzip}
|
||||
|
||||
\begin{itemize}
|
||||
\item Mehrfach verschl\"usselt
|
||||
\pause
|
||||
\item Nie direkt an den Empf\"anger senden
|
||||
\pause
|
||||
\item Auch der Empf\"anger sendet es weiter!
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Indirekte Kommunikation}
|
||||
|
||||
\begin{itemize}
|
||||
\item \"Uber mehrere Stationen
|
||||
\pause
|
||||
\item Jede Station ent- und verschl\"usselt
|
||||
\pause
|
||||
\item Keine Station sendet direkt an den End-Empf\"anger
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Alles verschl\"usselt}
|
||||
|
||||
\begin{itemize}
|
||||
\item Kein unverschl\"usseltes Paket
|
||||
\pause
|
||||
\item Initialer Schl\"usseltausch \"uber sichere Kan\"ale
|
||||
\pause
|
||||
\item Schl\"usseltausch sp\"ater \"uber etablierten Kanal
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Nachrichten signiert}
|
||||
|
||||
\begin{itemize}
|
||||
\item Sicherstellen, dass ich mit dem richtigen kommuniziere
|
||||
\pause
|
||||
\item Signatur ist nur sichbar f\"ur den Empf\"anger
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Abstraktion vom Transportprotokoll}
|
||||
|
||||
\begin{itemize}
|
||||
\item \"Ubertragung ist \textbf{nicht} Bestandteil von EOF
|
||||
\pause
|
||||
\item Das Paketformat wird unabh\"angig vom Transportprotkoll definiert
|
||||
\pause
|
||||
\item Beliebige Protokolle m\"oglich
|
||||
\pause
|
||||
\item Einfaches Tunneln von Firewalls
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item z.B. direkte "`HTTP-Verbindung"' oder via Webforen
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Rauschen}
|
||||
|
||||
\begin{itemize}
|
||||
\item Jeder Teilnehmer sendet "`immer"' (fixer Intervall)
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Fest definierter Sendeintervall
|
||||
\pause
|
||||
\item Wenn nichts zu senden ist werden Zufallsdaten gesendet
|
||||
\pause
|
||||
\item Zufallsdaten werden genauso wie richtige Pakete behandelt
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Von ausen nicht zu erkennen, wann er wirklich sendet
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
|
||||
% beispiele
|
||||
% - chatten mit wem direkt
|
||||
% - key exchange: nur ueber bekannte peers
|
||||
% - transport protokolle
|
||||
% - Vollstaendige Verschluesselung
|
||||
\subsection{Beispiele}
|
||||
\frame
|
||||
{
|
||||
\frametitle{Beispiele}
|
||||
|
||||
\begin{itemize}
|
||||
\item F\"ur
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Ausgew\"ahlte Teile von EOF
|
||||
\pause
|
||||
\item \"Ubliche Handlungen beim Chatten
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Um abstrakte Informationen konkretisieren
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Wie man sich findet}
|
||||
|
||||
\begin{itemize}
|
||||
\item \"Uber Marktschreier
|
||||
\pause
|
||||
\item Marktschreier verwalten Metaninformationen
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Liste von bekannten Kan\"alen
|
||||
\pause
|
||||
\item Liste von bekannten Partner
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Jeder Client kann Marktschreier sein
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{\"Uber die Marktschreier}
|
||||
|
||||
\begin{itemize}
|
||||
\item Besitzen und Verteilen \textbf{nur} \"offentliche Informationen
|
||||
\pause
|
||||
\item Verwalten Liste von \"offentlichen Kan\"alen
|
||||
\pause
|
||||
\item Vermitteln Partner zum Indirekten Senden
|
||||
\pause
|
||||
\item Sind ganz normale EOF-Clients
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Erlauben zus\"atzlich Abfragen und Speichern von Metainformationen
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Vollstaendige Verschl\"usselung}
|
||||
|
||||
\begin{itemize}
|
||||
\item \"Offentlicher Schl\"ussel wird vorher per
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item PGP verschl\"usselter E-Mail
|
||||
\pause
|
||||
\item Versiegelten Brief
|
||||
\pause
|
||||
\item Telefon
|
||||
\end{itemize}
|
||||
\item ausgetauscht
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Beitreten eines Kanals}
|
||||
|
||||
\begin{itemize}
|
||||
\item Verbinden zum Marktschreier
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item "`Was f\"ur Kan\"ale kennst Du?"'
|
||||
\pause
|
||||
\item Liste: "`blackhats"' ... "`antim\$"' ... "`EOF-1"' ...
|
||||
\pause
|
||||
\item "`Teile bitte den Leuten von Kanal EOF-1 mit, dass ich beitreten m\"ochte."'
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Marktschreier verbindet sich zu einem Partner, der die anderen kennt
|
||||
\pause
|
||||
\item Der wiederrum schickt Pakete an alle anderen (indirekt) weiter
|
||||
\pause
|
||||
\item Die Kanalinsassen melden sich dann bei mir
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Woher wissen die, wie sie mich erreichen?}
|
||||
|
||||
\begin{itemize}
|
||||
\item Zum Anfang \"ubermittelt man dem Marktschreier, wo man erreichbar ist
|
||||
\pause
|
||||
\item Diese Information leitet er weiter
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Transport-Protokolle}
|
||||
|
||||
\begin{itemize}
|
||||
\item Etwas, mit dem man senden und/oder empfangen kann
|
||||
\pause
|
||||
\item Beliebige Protokolle
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Empfangen via SMTP HELO
|
||||
\pause
|
||||
\item Senden via Webdav
|
||||
\pause
|
||||
\item Empfangen via ICQ/Jabber/Skype/...
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Indirekte Kommunikation}
|
||||
|
||||
\begin{itemize}
|
||||
\item Wenn ich mit Andre reden will, verschl\"ussele ich die Nachricht f\"ur ihn
|
||||
\pause
|
||||
\item Und f\"uge eine Liste von Empf\"angern zur Nachricht hinzu
|
||||
\pause
|
||||
\item Jeder der Empf\"anger kann (nur) die n\"achste Empfangsadresse sehen
|
||||
\pause
|
||||
\item Andre
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item entschl\"usselt die Nachricht,
|
||||
\pause
|
||||
\item schickt sie weiter, damit niemand weiss, das sie f\"ur ihn war
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\subsection{Stand}
|
||||
\frame
|
||||
{
|
||||
\frametitle{Stand}
|
||||
|
||||
\begin{itemize}
|
||||
\item Was wurde bereits erledigt
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Spezifikationen
|
||||
\pause
|
||||
\item Programme
|
||||
\pause
|
||||
\item Dokumentation
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Was ist zu tun?
|
||||
\begin{itemize}
|
||||
\pause
|
||||
\item Meilensteine
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Spezifikationen}
|
||||
|
||||
\begin{itemize}
|
||||
\item Einige Entw\"urfe auf https://www.eof.name/projects/eof-1/eof-1/ zu finden
|
||||
\pause
|
||||
\item W\"ochentlich neue
|
||||
\pause
|
||||
\item Teilweise schon \"uberarbeitet
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Implementation von EOF-1}
|
||||
|
||||
\begin{itemize}
|
||||
\item Hauptprogramm ceof zu 20\% fertig
|
||||
\pause
|
||||
\item Erste Erfahrungen mit GPGME
|
||||
\pause
|
||||
\item Bibliotheken zu 80\% fertig
|
||||
\pause
|
||||
\begin{itemize}
|
||||
\item Quelltexts\"auberung steht noch an
|
||||
\pause
|
||||
\end{itemize}
|
||||
\item Erste GUI fertiggestellt
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Von Dir}
|
||||
|
||||
\begin{itemize}
|
||||
\item Verwirrt?
|
||||
\pause
|
||||
\item Ist etwas unklar?
|
||||
\pause
|
||||
\item Interessiert?
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\frame
|
||||
{
|
||||
\frametitle{Diese Vorstellung}
|
||||
|
||||
\begin{itemize}
|
||||
\item ...endet hier
|
||||
\pause
|
||||
\item Vielen Dank f\"ur die Aufmerksamkeit
|
||||
\pause
|
||||
\item Projektseite: https://www.eof.name/eof-1/
|
||||
\pause
|
||||
\item Kontakt via "`telmich (bei) u.eof.name"'
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
|
||||
\end{document}
|
|
@ -1,35 +0,0 @@
|
|||
The current release is [[ceofhack-0.6.tar.xz]],
|
||||
the current documentation [[EOF-0.6.pdf]].
|
||||
|
||||
## Development / unreleased code
|
||||
|
||||
The latest development code can be found in git.
|
||||
You can view latest changes in
|
||||
[gitweb](http://git.schottelius.org/?p=EOF/ceofhack;a=summary)
|
||||
or clone the latest sources using
|
||||
|
||||
git clone git://git.schottelius.org/EOF/ceofhack
|
||||
|
||||
Git mirrors can be found at
|
||||
|
||||
* [github](http://github.com/telmich/ceofhack/tree/master)
|
||||
* [gitorious](http://gitorious.org/ceofhack)
|
||||
|
||||
The ***master*** branch should always contain latest "stable" code,
|
||||
which means it should at least compile.
|
||||
|
||||
Other branches may be available to focus on specific features, which
|
||||
will be merged into the master branch after completion.
|
||||
|
||||
To submit changes, simply follow the instructions
|
||||
on [how to setup a public git repo](http://book.git-scm.com/4_setting_up_a_public_repository.html).
|
||||
|
||||
There are also some
|
||||
[CIA bot statistics](http://cia.vc/stats/project/EOF/ceofhack) available.
|
||||
|
||||
## All releases
|
||||
|
||||
* [[ceofhack-0.6.tar.xz]] - [[EOF-0.6.pdf]] - Usable UI interface
|
||||
* [[ceofhack-0.5.tar.lzma]] - the first usable version
|
||||
|
||||
[[!tag unix]]
|
|
@ -1,81 +0,0 @@
|
|||
[[!toc levels=2]]
|
||||
|
||||
## How to get ceofhack running?
|
||||
|
||||
There are three simple steps to get ceofhack running:
|
||||
|
||||
* [[Get ceofhack|get]]
|
||||
* [[Build ceofhack|build]]
|
||||
* [[Configure ceofhack|configure]]
|
||||
|
||||
## How to use ceofhack?
|
||||
|
||||
ceofhack is only the main part of an EOF implementation.
|
||||
ceofhack itself is **not** a user interface (**ui**).
|
||||
There is, however, a sample command line user interface
|
||||
included, called **ui_cmd**. Thus, to make real use of
|
||||
ceofhack, you need to
|
||||
|
||||
* start ceofhack
|
||||
* and start a user interface
|
||||
|
||||
The following sections explain the ui_cmd user interface,
|
||||
but the principles are the same for other user interfaces.
|
||||
All the following examples assume that ceofhack is already
|
||||
running.
|
||||
|
||||
## How to chat with ceofhack?
|
||||
|
||||
As EOF is a p2p chat network, there's no central server. Thus, you need
|
||||
to specify where your chat partner ("peer" in EOF speak) can be found.
|
||||
In ui_cmd you do that with **ui_cmd_peer_add**:
|
||||
|
||||
./ui_cmd_peer_add telmich tcp:127.0.0.1:4242 A310FB220BA776083559C8276A8817C51B70A5DF
|
||||
|
||||
Where
|
||||
|
||||
* **telmich** is the nickname I gave that peer
|
||||
* **tcp:127.0.0.1:4242** is the initial address of that peer
|
||||
* **A310FB220BA776083559C8276A8817C51B70A5DF** is the pgp fingerprint
|
||||
|
||||
### Getting the fingerprints
|
||||
|
||||
You can retrieve all fingerprints known to EOF in a copy & past compatible
|
||||
format, if you run this command:
|
||||
|
||||
gpg --homedir $HOME/.ceof/gpg --fingerprint | sed 's/ //g'
|
||||
|
||||
### Getting keys
|
||||
|
||||
As the current protocol does not define a key exchange, you need
|
||||
to manually import pgp keys of other peers. You can do that by dowloading
|
||||
the public key of the peer to **peer.key** and then running
|
||||
|
||||
gpg --homedir $HOME/.ceof/gpg --import peer.key
|
||||
|
||||
### Exporting your key
|
||||
|
||||
To allow others to chat with you, you need to publish your public
|
||||
key somewhere. You can retrieve it the following way:
|
||||
|
||||
gpg --homedir $HOME/.ceof/gpg --export -a <yourkeyid> > mykey.key
|
||||
|
||||
### Sending a message
|
||||
|
||||
After you successfully added the new peer, you can drop her a message
|
||||
by issuing
|
||||
|
||||
./ui_cmd_peer_send telmich "What's up?"
|
||||
|
||||
### Displaying messages
|
||||
|
||||
ceofhack will always receive messages, independently of whether
|
||||
a user interface is connected or not. The user interface must
|
||||
take care of displaying them. The included ui support a generic
|
||||
listen command, which will display all incoming ui commands:
|
||||
|
||||
./ui_cmd_listen
|
||||
|
||||
And in addition, it will also show the messages received.
|
||||
|
||||
[[!tag unix]]
|
Loading…
Reference in a new issue