summaryrefslogtreecommitdiff
path: root/secushare-old-orgmode/slides.org
diff options
context:
space:
mode:
Diffstat (limited to 'secushare-old-orgmode/slides.org')
-rw-r--r--secushare-old-orgmode/slides.org318
1 files changed, 318 insertions, 0 deletions
diff --git a/secushare-old-orgmode/slides.org b/secushare-old-orgmode/slides.org
new file mode 100644
index 0000000..e81bf2e
--- /dev/null
+++ b/secushare-old-orgmode/slides.org
@@ -0,0 +1,318 @@
1#+TITLE: Secure Share
2#+AUTHOR: Daniel Reusche and Gabor Toth
3#+LANGUAGE: en
4#+OPTIONS: H:3 num:t toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
5#+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
6#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
7
8#+startup: oddeven
9
10#+startup: beamer
11#+LaTeX_CLASS: beamer
12#+LaTeX_CLASS_OPTIONS: [bigger]
13##+LaTeX_HEADER: \usetheme{Darmstadt}
14#+LaTeX_HEADER: \usetheme{Frankfurt}
15##+LaTeX_HEADER: \usetheme{Boadilla}
16##+LaTeX_HEADER: \usetheme{Pittsburgh}
17##+LaTeX_HEADER: \setbeamertemplate{navigation symbols}{}
18#+BEAMER_FRAME_LEVEL: 3
19
20* Introduction
21
22** Secure Share
23
24*** Secure Share
25A framework for secure and privacy-protecting social interaction based on
26peer-to-peer technology
27
28#** Federation - Unicast :noexport:
29##+ATTR_LaTeX: width=8cm
30#[[./img/unicast.png]]
31
32*** Goals
33**** arbitrary messanging
34***** from one-to-one to many-to-many
35***** status updates and messages
36**** file transfer
37***** sharing of pictures, music etc.
38***** collaborative document editing
39** Privacy
40
41*** Privacy
42#+BEGIN_CENTER
43#+LaTeX: \textbf{\Huge{Privacy}}
44#+END_CENTER
45
46*** Ideal Case
47[[../img/unicast.png]]
48*** Centralized services
49#+BEGIN_CENTER
50#+ATTR_LaTeX: width=8cm
51[[../img/cloud.png]]
52#+END_CENTER
53
54*** Privacy requirements
55**** end-to-end encryption
56**** forward secrecy
57**** padding of packets
58**** delayed forwarding
59**** private contact list
60**** free and open source software
61*** Approach: federated systems
62
63\textbf{\Large{And why not to use them}}
64**** personal data on servers
65**** personal data shared with even more server operators
66**** only link-level encryption
67**** PGP, OTR not enough
68
69** Scalability
70
71*** Scalability
72#+BEGIN_CENTER
73#+LaTeX: \textbf{\Huge{Scalability}}
74#+END_CENTER
75
76*** Social interaction
77**** one-to-many status updates
78**** many-to-many group communication
79
80*** Multicast
81
82#+BEGIN_CENTER
83#+ATTR_LaTeX: width=7cm
84[[../img/multicast.png]]
85#+END_CENTER
86
87* Architecture
88
89** Architecture
90
91*** Architecture
92
93#+BEGIN_CENTER
94#+LaTeX: \textbf{\Huge{Architecture}}
95#+END_CENTER
96
97** Peer-to-Peer
98
99*** Friend-to-friend architecture
100**** connect to trusted nodes
101**** prevents active attacks
102
103*** Personal devices
104**** Software runs on personal devices
105**** Data is stored on personal devices
106
107*** Personal devices
108**** laptop, PC
109**** plug computers, home routers, servers
110**** smartphones
111
112*** Peer-to-peer framework requirements
113**** free/libre/open-source software
114**** multi-platform, lightweight, written in a compiled language
115**** provides API for essential P2P features
116***** bootstrapping, addressing, routing, encryption, NAT traversal
117
118*** GNUnet
119**** written in C
120**** multi-platform
121**** modular framework
122**** advanced NAT traversal
123
124*** GNUnet
125**** multiple transport methods
126***** TCP, UDP
127***** HTTP, HTTPS
128***** SMTP
129***** ad-hoc WiFi
130
131*** GNUnet
132**** distributed hash table (DHT)
133**** file sharing
134***** based on DHT and GAP
135**** various routing schemes
136***** fish-eye bounded distance vector protocol
137****** gossiping in a limited neighborhood
138****** improves connectivity
139****** onion routing
140***** mesh service
141****** supports multicast
142****** uses DHT for routing
143
144*** psycd
145
146**** messaging protocol
147**** manages connections, friendship between users
148**** client interface
149
150*** GNUnet - components and message flow
151
152#+BEGIN_CENTER
153#+ATTR_LaTeX: width=9.5cm
154[[./gnunet-h.png]]
155#+END_CENTER
156
157** Implementation
158
159*** Implementation
160
161#+BEGIN_CENTER
162#+LaTeX: \textbf{\Huge{Implementation}}
163#+END_CENTER
164
165*** Components
166
167**** libpsyc
168
169**** psycd
170
171**** GNUnet libraries
172
173*** Identifiers
174
175**** Federated PSYC
176
177***** based on DNS
178
179: psyc://example.net/~alice#friends
180
181**** P2P PSYC
182
183***** based on public key
184
185: psyc://I0GC...L29G:g/#friends
186
187*** Contacting peers
188
189**** initial contact: hello message
190
191***** public key
192
193***** current addresses
194
195**** next time contact to same address
196
197**** or find new address through other peers
198
199*** Circuits
200
201**** GNUnet
202
203**** TCP
204
205**** UNIX domain sockets
206
207**** TLS
208
209*** Entities
210
211**** person
212***** clients link to person entity
213***** can subscribe other entities
214
215**** place
216***** group communication
217***** news feeds
218
219*** Multicast contexts
220
221[[./context.png]]
222
223*** Distributed state
224
225**** profile data, context membership
226
227**** push changes once
228
229**** synchronize after subscription
230
231**** recover lost packets
232
233**** syntax changes to support more complex data structures
234
235*** Storage
236
237**** incoming and outgoing packets
238
239**** state variables
240
241**** SQLite database
242
243***** multiplatform
244
245***** lightweight
246
247***** small memory footprint
248
249* Clients
250
251** Clients
252
253*** Clients
254
255#+BEGIN_CENTER
256#+LaTeX: \textbf{\Huge{Clients}}
257#+END_CENTER
258
259*** Desktop clients
260
261**** secushare
262***** based on Qt/QML
263***** multiplatform
264***** touch UI
265
266**** irssyc
267***** based on irssi
268***** intended for debugging and for advanced users
269
270*** Web interface
271
272**** JavaScript
273
274**** WebSocket
275
276*** Mobile clients
277
278**** port GNUnet to mobile devices
279
280**** or client only approach
281
282*** Extensibility
283
284**** channel API
285***** using a sandboxed QML or HTML view
286***** JavaScript API
287***** enables easy app development
288***** access only channel data
289
290**** client API
291***** using libpsycclient
292***** allows for developing full-fledged clients
293
294* Future work
295
296** Future work
297
298*** Future work
299
300#+BEGIN_CENTER
301#+LaTeX: \textbf{\Huge{Future work}}
302#+END_CENTER
303
304*** Future work
305
306**** routing layer - multicast
307
308**** separate user and node identities
309
310**** user interface
311
312***** improvements on desktop
313
314***** implement web UI
315
316***** implement mobile UI
317
318**** file transfers