summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpsyc://loupsycedyglgamf.onion/~lynX <ircs://psyced.org/youbroketheinternet>2017-11-15 18:27:21 +0000
committerpsyc://loupsycedyglgamf.onion/~lynX <ircs://psyced.org/youbroketheinternet>2017-11-15 18:27:21 +0000
commit586cee5b5159a4e640eaf8632c9b1217e5fedb77 (patch)
tree230c46fd2ba4dd8ad5b94fd0265c375b27915f29
parent16a776b6a91f0d8565031643c0bb22a4a0cd45d7 (diff)
downloadpresentations-586cee5b5159a4e640eaf8632c9b1217e5fedb77.tar.gz
presentations-586cee5b5159a4e640eaf8632c9b1217e5fedb77.zip
some old secushare slides
-rw-r--r--2013-youbroketheinternet-event/lynx_slides_secushare.pdf (renamed from 2013-youbroketheinternet-event/lynx_slides_youbroketheinternet.pdf)bin262135 -> 262135 bytes
-rw-r--r--grothoff/dc10-grothoff-gnunet.pdf (renamed from dc10-grothoff-gnunet.pdf)bin153007 -> 153007 bytes
-rw-r--r--grothoff/grothoff_30c3gns.pdf (renamed from grothoff_30c3gns.pdf)bin2013211 -> 2013211 bytes
-rw-r--r--grothoff/grothoff_30c3panel.pdf (renamed from grothoff_30c3panel.pdf)bin655317 -> 655317 bytes
-rw-r--r--grothoff/grothoff_architecture-of-gnunet_psc2015.pdf (renamed from grothoff_architecture-of-gnunet_psc2015.pdf)bin733448 -> 733448 bytes
-rw-r--r--grothoff/grothoff_armstattinit.pdf (renamed from grothoff_armstattinit.pdf)bin360277 -> 360277 bytes
-rw-r--r--grothoff/grothoff_bigdata-littledata-nomoredata_tum2017.pdf (renamed from grothoff_bigdata-littledata-nomoredata_tum2017.pdf)bin3055015 -> 3055015 bytes
-rw-r--r--grothoff/grothoff_cryptography-in-gnunet_ecc2015.pdf (renamed from grothoff_cryptography-in-gnunet_ecc2015.pdf)bin4085326 -> 4085326 bytes
-rw-r--r--grothoff/grothoff_daad2014.pdf (renamed from grothoff_daad2014.pdf)bin1701433 -> 1701433 bytes
-rw-r--r--grothoff/grothoff_daghstuhl2014.pdf (renamed from grothoff_daghstuhl2014.pdf)bin4809960 -> 4809960 bytes
-rw-r--r--grothoff/grothoff_decentralizing-privacy-reserving-network-applications_snt2017.pdf (renamed from grothoff_decentralizing-privacy-reserving-network-applications_snt2017.pdf)bin2517676 -> 2517676 bytes
-rw-r--r--grothoff/grothoff_entropique2015.pdf (renamed from grothoff_entropique2015.pdf)bin5041397 -> 5041397 bytes
-rw-r--r--grothoff/grothoff_ghm2013.pdf (renamed from grothoff_ghm2013.pdf)bin451643 -> 451643 bytes
-rw-r--r--grothoff/grothoff_ghm2014.pdf (renamed from grothoff_ghm2014.pdf)bin986601 -> 986601 bytes
-rw-r--r--grothoff/grothoff_gibu2010.pdf (renamed from grothoff_gibu2010.pdf)bin609244 -> 609244 bytes
-rw-r--r--grothoff/grothoff_gns_jcsa2016.pdf (renamed from grothoff_gns_jcsa2016.pdf)bin691526 -> 691526 bytes
-rw-r--r--grothoff/grothoff_gns_jhu2016.pdf (renamed from grothoff_gns_jhu2016.pdf)bin1790844 -> 1790844 bytes
-rw-r--r--grothoff/grothoff_gns_loria2015.pdf (renamed from grothoff_gns_loria2015.pdf)bin5416540 -> 5416540 bytes
-rw-r--r--grothoff/grothoff_gnunet2015.pdf (renamed from grothoff_gnunet2015.pdf)bin8380152 -> 8380152 bytes
-rw-r--r--grothoff/grothoff_gnunet2017.pdf (renamed from grothoff_gnunet2017.pdf)bin7991367 -> 7991367 bytes
-rw-r--r--grothoff/grothoff_innovation-comlexity-risk-and-trust_mapping2016.pdf (renamed from grothoff_innovation-comlexity-risk-and-trust_mapping2016.pdf)bin3253632 -> 3253632 bytes
-rw-r--r--grothoff/grothoff_inria2013.pdf (renamed from grothoff_inria2013.pdf)bin1231955 -> 1231955 bytes
-rw-r--r--grothoff/grothoff_inria2013rennes.pdf (renamed from grothoff_inria2013rennes.pdf)bin2093042 -> 2093042 bytes
-rw-r--r--grothoff/grothoff_lugcamp2013mhd.pdf (renamed from grothoff_lugcamp2013mhd.pdf)bin111574 -> 111574 bytes
-rw-r--r--grothoff/grothoff_lugcamp2015.pdf (renamed from grothoff_lugcamp2015.pdf)bin8437851 -> 8437851 bytes
-rw-r--r--grothoff/grothoff_mapping2014.pdf (renamed from grothoff_mapping2014.pdf)bin7165459 -> 7165459 bytes
-rw-r--r--grothoff/grothoff_mhd2013gpn.pdf (renamed from grothoff_mhd2013gpn.pdf)bin96085 -> 96085 bytes
-rw-r--r--grothoff/grothoff_netwerksicherheit-probleme-und-lösungsansätze_npo2016.pdf (renamed from grothoff_netwerksicherheit-probleme-und-lösungsansätze_npo2016.pdf)bin6325982 -> 6325982 bytes
-rw-r--r--grothoff/grothoff_oii2014.pdf (renamed from grothoff_oii2014.pdf)bin1849114 -> 1849114 bytes
-rw-r--r--grothoff/grothoff_prism-gnunet-berlin.pdf (renamed from grothoff_prism-gnunet-berlin.pdf)bin1175513 -> 1175513 bytes
-rw-r--r--grothoff/grothoff_privacy2009.pdf (renamed from grothoff_privacy2009.pdf)bin772609 -> 772609 bytes
-rw-r--r--grothoff/grothoff_rmv608.pdf (renamed from grothoff_rmv608.pdf)bin216596 -> 216596 bytes
-rw-r--r--grothoff/grothoff_slides-87-httpbis.pdf (renamed from grothoff_slides-87-httpbis.pdf)bin656775 -> 656775 bytes
-rw-r--r--grothoff/grothoff_social-networks-vs-security-and-privacy_bfh2017.pdf (renamed from grothoff_social-networks-vs-security-and-privacy_bfh2017.pdf)bin1363667 -> 1363667 bytes
-rw-r--r--grothoff/grothoff_the-gnu-name-system-a-pki-for-social-movements-in-the-age-of-universal-surveillance_-ccc2017ch.pdf (renamed from grothoff_the-gnu-name-system-a-pki-for-social-movements-in-the-age-of-universal-surveillance_-ccc2017ch.pdf)bin1343312 -> 1343312 bytes
-rw-r--r--grothoff/grothoff_towards-secure-name-resolution-on-the-internet_ndss2017slides.pdf (renamed from grothoff_towards-secure-name-resolution-on-the-internet_ndss2017slides.pdf)bin495677 -> 495677 bytes
-rw-r--r--grothoff/grothoff_tsvwg2015.pdf (renamed from grothoff_tsvwg2015.pdf)bin3331452 -> 3331452 bytes
-rw-r--r--grothoff/grothoff_tue2015.pdf (renamed from grothoff_tue2015.pdf)bin5551019 -> 5551019 bytes
-rw-r--r--grothoff/grothoff_uva2013.pdf (renamed from grothoff_uva2013.pdf)bin1200167 -> 1200167 bytes
-rw-r--r--secushare-old-html/2011-CBase.slides.html297
-rw-r--r--secushare-old-html/2011-CCCamp.slides.html262
-rw-r--r--secushare-old-html/2011-FSW.slides.html152
-rw-r--r--secushare-old-html/2012-02-Cbase.slides.html369
-rw-r--r--secushare-old-html/2012-08-MOCA.slides.html375
-rw-r--r--secushare-old-html/2012-11-digiyards.slides.pht450
-rw-r--r--secushare-old-html/2012-Easterhegg.slides.html169
-rw-r--r--secushare-old-html/2012-UnlikeUs.slides.html147
-rw-r--r--secushare-old-html/UI/.thumbnails/greensquares.jpg.pngbin0 -> 15538 bytes
-rw-r--r--secushare-old-html/UI/.thumbnails/squares.jpg.pngbin0 -> 20809 bytes
-rw-r--r--secushare-old-html/UI/blank.gifbin0 -> 49 bytes
-rw-r--r--secushare-old-html/UI/dark/pretty.css117
-rw-r--r--secushare-old-html/UI/darken.pngbin0 -> 124 bytes
-rw-r--r--secushare-old-html/UI/framing.css23
-rw-r--r--secushare-old-html/UI/greensquares.jpgbin0 -> 248804 bytes
-rw-r--r--secushare-old-html/UI/iepngfix.htc42
-rw-r--r--secushare-old-html/UI/lite/pretty.css114
-rw-r--r--secushare-old-html/UI/opera.css7
-rw-r--r--secushare-old-html/UI/outline.css15
-rw-r--r--secushare-old-html/UI/pretty.css117
-rw-r--r--secushare-old-html/UI/print.css1
-rw-r--r--secushare-old-html/UI/s5-core.css9
-rw-r--r--secushare-old-html/UI/slides.css3
-rw-r--r--secushare-old-html/UI/slides.js552
-rw-r--r--secushare-old-html/UI/squares.jpgbin0 -> 299681 bytes
-rw-r--r--secushare-old-html/UI/stars_bg.jpgbin0 -> 24180 bytes
-rw-r--r--secushare-old-html/img/cloud.pngbin0 -> 34743 bytes
-rw-r--r--secushare-old-html/img/gfx-cloud.pngbin0 -> 42480 bytes
-rw-r--r--secushare-old-html/img/gfx-multicast.pngbin0 -> 44836 bytes
-rw-r--r--secushare-old-html/img/gfx-unicast.pngbin0 -> 37027 bytes
-rw-r--r--secushare-old-html/img/gfx.odgbin0 -> 15871 bytes
-rw-r--r--secushare-old-html/img/gfx.pngbin0 -> 210165 bytes
-rw-r--r--secushare-old-html/img/gfx.svg910
-rw-r--r--secushare-old-html/img/multicast.pngbin0 -> 89121 bytes
-rwxr-xr-xsecushare-old-html/img/phase0.jpegbin0 -> 58638 bytes
-rwxr-xr-xsecushare-old-html/img/phase1.jpegbin0 -> 60026 bytes
-rwxr-xr-xsecushare-old-html/img/phase2.jpegbin0 -> 67018 bytes
-rwxr-xr-xsecushare-old-html/img/phase3.jpegbin0 -> 89626 bytes
-rw-r--r--secushare-old-html/img/secushare-0444.pngbin0 -> 26484 bytes
-rw-r--r--secushare-old-html/img/unicast.pngbin0 -> 61442 bytes
-rw-r--r--secushare-old-latex/.init.el61
-rw-r--r--secushare-old-latex/.setup73
-rw-r--r--secushare-old-latex/.setup-back9
-rw-r--r--secushare-old-latex/30c3-slides.README7
-rw-r--r--secushare-old-latex/Makefile27
-rw-r--r--secushare-old-latex/abbrevs23
-rw-r--r--secushare-old-latex/abstract20
-rw-r--r--secushare-old-latex/arch203
-rw-r--r--secushare-old-latex/arch.diabin0 -> 2194 bytes
-rw-r--r--secushare-old-latex/arch.pngbin0 -> 13291 bytes
-rw-r--r--secushare-old-latex/clients116
-rw-r--r--secushare-old-latex/conclusion37
-rw-r--r--secushare-old-latex/context.diabin0 -> 1882 bytes
-rw-r--r--secushare-old-latex/context.pngbin0 -> 9812 bytes
-rw-r--r--secushare-old-latex/gnunet-h.pngbin0 -> 40591 bytes
-rw-r--r--secushare-old-latex/gnunet.diabin0 -> 4404 bytes
-rw-r--r--secushare-old-latex/gnunet.pngbin0 -> 38946 bytes
-rw-r--r--secushare-old-latex/impl392
-rw-r--r--secushare-old-latex/intro25
-rw-r--r--secushare-old-latex/ref.bib116
-rw-r--r--secushare-old-latex/req129
-rw-r--r--secushare-old-latex/secushare56
-rw-r--r--secushare-old-latex/secushare.pdfbin0 -> 377023 bytes
-rw-r--r--secushare-old-latex/shot-irssyc.pngbin0 -> 3796 bytes
-rw-r--r--secushare-old-latex/shot-secushare.pngbin0 -> 34831 bytes
-rw-r--r--secushare-old-latex/slides.pdfbin0 -> 424193 bytes
-rw-r--r--secushare-old-latex/syntax46
-rw-r--r--secushare-old-orgmode/2012-29C3.slides.org168
-rw-r--r--secushare-old-orgmode/2012-SIGINT.slides.org168
-rw-r--r--secushare-old-orgmode/2012-SIGINT.slides.pdfbin0 -> 209268 bytes
-rw-r--r--secushare-old-orgmode/2012-eth0.slides.org168
-rw-r--r--secushare-old-orgmode/slides.org318
111 files changed, 6293 insertions, 0 deletions
diff --git a/2013-youbroketheinternet-event/lynx_slides_youbroketheinternet.pdf b/2013-youbroketheinternet-event/lynx_slides_secushare.pdf
index 53777e7..53777e7 100644
--- a/2013-youbroketheinternet-event/lynx_slides_youbroketheinternet.pdf
+++ b/2013-youbroketheinternet-event/lynx_slides_secushare.pdf
Binary files differ
diff --git a/dc10-grothoff-gnunet.pdf b/grothoff/dc10-grothoff-gnunet.pdf
index 465540f..465540f 100644
--- a/dc10-grothoff-gnunet.pdf
+++ b/grothoff/dc10-grothoff-gnunet.pdf
Binary files differ
diff --git a/grothoff_30c3gns.pdf b/grothoff/grothoff_30c3gns.pdf
index a6b6002..a6b6002 100644
--- a/grothoff_30c3gns.pdf
+++ b/grothoff/grothoff_30c3gns.pdf
Binary files differ
diff --git a/grothoff_30c3panel.pdf b/grothoff/grothoff_30c3panel.pdf
index 97c2c3e..97c2c3e 100644
--- a/grothoff_30c3panel.pdf
+++ b/grothoff/grothoff_30c3panel.pdf
Binary files differ
diff --git a/grothoff_architecture-of-gnunet_psc2015.pdf b/grothoff/grothoff_architecture-of-gnunet_psc2015.pdf
index 3188a61..3188a61 100644
--- a/grothoff_architecture-of-gnunet_psc2015.pdf
+++ b/grothoff/grothoff_architecture-of-gnunet_psc2015.pdf
Binary files differ
diff --git a/grothoff_armstattinit.pdf b/grothoff/grothoff_armstattinit.pdf
index 142e189..142e189 100644
--- a/grothoff_armstattinit.pdf
+++ b/grothoff/grothoff_armstattinit.pdf
Binary files differ
diff --git a/grothoff_bigdata-littledata-nomoredata_tum2017.pdf b/grothoff/grothoff_bigdata-littledata-nomoredata_tum2017.pdf
index 44d280b..44d280b 100644
--- a/grothoff_bigdata-littledata-nomoredata_tum2017.pdf
+++ b/grothoff/grothoff_bigdata-littledata-nomoredata_tum2017.pdf
Binary files differ
diff --git a/grothoff_cryptography-in-gnunet_ecc2015.pdf b/grothoff/grothoff_cryptography-in-gnunet_ecc2015.pdf
index fc83d25..fc83d25 100644
--- a/grothoff_cryptography-in-gnunet_ecc2015.pdf
+++ b/grothoff/grothoff_cryptography-in-gnunet_ecc2015.pdf
Binary files differ
diff --git a/grothoff_daad2014.pdf b/grothoff/grothoff_daad2014.pdf
index cdd2093..cdd2093 100644
--- a/grothoff_daad2014.pdf
+++ b/grothoff/grothoff_daad2014.pdf
Binary files differ
diff --git a/grothoff_daghstuhl2014.pdf b/grothoff/grothoff_daghstuhl2014.pdf
index 2ee5b66..2ee5b66 100644
--- a/grothoff_daghstuhl2014.pdf
+++ b/grothoff/grothoff_daghstuhl2014.pdf
Binary files differ
diff --git a/grothoff_decentralizing-privacy-reserving-network-applications_snt2017.pdf b/grothoff/grothoff_decentralizing-privacy-reserving-network-applications_snt2017.pdf
index 5442fc8..5442fc8 100644
--- a/grothoff_decentralizing-privacy-reserving-network-applications_snt2017.pdf
+++ b/grothoff/grothoff_decentralizing-privacy-reserving-network-applications_snt2017.pdf
Binary files differ
diff --git a/grothoff_entropique2015.pdf b/grothoff/grothoff_entropique2015.pdf
index e54a7b4..e54a7b4 100644
--- a/grothoff_entropique2015.pdf
+++ b/grothoff/grothoff_entropique2015.pdf
Binary files differ
diff --git a/grothoff_ghm2013.pdf b/grothoff/grothoff_ghm2013.pdf
index dc03a25..dc03a25 100644
--- a/grothoff_ghm2013.pdf
+++ b/grothoff/grothoff_ghm2013.pdf
Binary files differ
diff --git a/grothoff_ghm2014.pdf b/grothoff/grothoff_ghm2014.pdf
index fb38ace..fb38ace 100644
--- a/grothoff_ghm2014.pdf
+++ b/grothoff/grothoff_ghm2014.pdf
Binary files differ
diff --git a/grothoff_gibu2010.pdf b/grothoff/grothoff_gibu2010.pdf
index 54f2ad2..54f2ad2 100644
--- a/grothoff_gibu2010.pdf
+++ b/grothoff/grothoff_gibu2010.pdf
Binary files differ
diff --git a/grothoff_gns_jcsa2016.pdf b/grothoff/grothoff_gns_jcsa2016.pdf
index 2b6d335..2b6d335 100644
--- a/grothoff_gns_jcsa2016.pdf
+++ b/grothoff/grothoff_gns_jcsa2016.pdf
Binary files differ
diff --git a/grothoff_gns_jhu2016.pdf b/grothoff/grothoff_gns_jhu2016.pdf
index 492827e..492827e 100644
--- a/grothoff_gns_jhu2016.pdf
+++ b/grothoff/grothoff_gns_jhu2016.pdf
Binary files differ
diff --git a/grothoff_gns_loria2015.pdf b/grothoff/grothoff_gns_loria2015.pdf
index 2549386..2549386 100644
--- a/grothoff_gns_loria2015.pdf
+++ b/grothoff/grothoff_gns_loria2015.pdf
Binary files differ
diff --git a/grothoff_gnunet2015.pdf b/grothoff/grothoff_gnunet2015.pdf
index 259a5be..259a5be 100644
--- a/grothoff_gnunet2015.pdf
+++ b/grothoff/grothoff_gnunet2015.pdf
Binary files differ
diff --git a/grothoff_gnunet2017.pdf b/grothoff/grothoff_gnunet2017.pdf
index 3ebe570..3ebe570 100644
--- a/grothoff_gnunet2017.pdf
+++ b/grothoff/grothoff_gnunet2017.pdf
Binary files differ
diff --git a/grothoff_innovation-comlexity-risk-and-trust_mapping2016.pdf b/grothoff/grothoff_innovation-comlexity-risk-and-trust_mapping2016.pdf
index c1e2ecd..c1e2ecd 100644
--- a/grothoff_innovation-comlexity-risk-and-trust_mapping2016.pdf
+++ b/grothoff/grothoff_innovation-comlexity-risk-and-trust_mapping2016.pdf
Binary files differ
diff --git a/grothoff_inria2013.pdf b/grothoff/grothoff_inria2013.pdf
index 09c9791..09c9791 100644
--- a/grothoff_inria2013.pdf
+++ b/grothoff/grothoff_inria2013.pdf
Binary files differ
diff --git a/grothoff_inria2013rennes.pdf b/grothoff/grothoff_inria2013rennes.pdf
index fdbb213..fdbb213 100644
--- a/grothoff_inria2013rennes.pdf
+++ b/grothoff/grothoff_inria2013rennes.pdf
Binary files differ
diff --git a/grothoff_lugcamp2013mhd.pdf b/grothoff/grothoff_lugcamp2013mhd.pdf
index 9555eb3..9555eb3 100644
--- a/grothoff_lugcamp2013mhd.pdf
+++ b/grothoff/grothoff_lugcamp2013mhd.pdf
Binary files differ
diff --git a/grothoff_lugcamp2015.pdf b/grothoff/grothoff_lugcamp2015.pdf
index d214f3f..d214f3f 100644
--- a/grothoff_lugcamp2015.pdf
+++ b/grothoff/grothoff_lugcamp2015.pdf
Binary files differ
diff --git a/grothoff_mapping2014.pdf b/grothoff/grothoff_mapping2014.pdf
index 4c96561..4c96561 100644
--- a/grothoff_mapping2014.pdf
+++ b/grothoff/grothoff_mapping2014.pdf
Binary files differ
diff --git a/grothoff_mhd2013gpn.pdf b/grothoff/grothoff_mhd2013gpn.pdf
index bfc8aea..bfc8aea 100644
--- a/grothoff_mhd2013gpn.pdf
+++ b/grothoff/grothoff_mhd2013gpn.pdf
Binary files differ
diff --git a/grothoff_netwerksicherheit-probleme-und-lösungsansätze_npo2016.pdf b/grothoff/grothoff_netwerksicherheit-probleme-und-lösungsansätze_npo2016.pdf
index c0621d6..c0621d6 100644
--- a/grothoff_netwerksicherheit-probleme-und-lösungsansätze_npo2016.pdf
+++ b/grothoff/grothoff_netwerksicherheit-probleme-und-lösungsansätze_npo2016.pdf
Binary files differ
diff --git a/grothoff_oii2014.pdf b/grothoff/grothoff_oii2014.pdf
index 9d1e4f8..9d1e4f8 100644
--- a/grothoff_oii2014.pdf
+++ b/grothoff/grothoff_oii2014.pdf
Binary files differ
diff --git a/grothoff_prism-gnunet-berlin.pdf b/grothoff/grothoff_prism-gnunet-berlin.pdf
index 2b9da26..2b9da26 100644
--- a/grothoff_prism-gnunet-berlin.pdf
+++ b/grothoff/grothoff_prism-gnunet-berlin.pdf
Binary files differ
diff --git a/grothoff_privacy2009.pdf b/grothoff/grothoff_privacy2009.pdf
index 1f24389..1f24389 100644
--- a/grothoff_privacy2009.pdf
+++ b/grothoff/grothoff_privacy2009.pdf
Binary files differ
diff --git a/grothoff_rmv608.pdf b/grothoff/grothoff_rmv608.pdf
index b51b8c4..b51b8c4 100644
--- a/grothoff_rmv608.pdf
+++ b/grothoff/grothoff_rmv608.pdf
Binary files differ
diff --git a/grothoff_slides-87-httpbis.pdf b/grothoff/grothoff_slides-87-httpbis.pdf
index f5f31e4..f5f31e4 100644
--- a/grothoff_slides-87-httpbis.pdf
+++ b/grothoff/grothoff_slides-87-httpbis.pdf
Binary files differ
diff --git a/grothoff_social-networks-vs-security-and-privacy_bfh2017.pdf b/grothoff/grothoff_social-networks-vs-security-and-privacy_bfh2017.pdf
index cdca61c..cdca61c 100644
--- a/grothoff_social-networks-vs-security-and-privacy_bfh2017.pdf
+++ b/grothoff/grothoff_social-networks-vs-security-and-privacy_bfh2017.pdf
Binary files differ
diff --git a/grothoff_the-gnu-name-system-a-pki-for-social-movements-in-the-age-of-universal-surveillance_-ccc2017ch.pdf b/grothoff/grothoff_the-gnu-name-system-a-pki-for-social-movements-in-the-age-of-universal-surveillance_-ccc2017ch.pdf
index 861d717..861d717 100644
--- a/grothoff_the-gnu-name-system-a-pki-for-social-movements-in-the-age-of-universal-surveillance_-ccc2017ch.pdf
+++ b/grothoff/grothoff_the-gnu-name-system-a-pki-for-social-movements-in-the-age-of-universal-surveillance_-ccc2017ch.pdf
Binary files differ
diff --git a/grothoff_towards-secure-name-resolution-on-the-internet_ndss2017slides.pdf b/grothoff/grothoff_towards-secure-name-resolution-on-the-internet_ndss2017slides.pdf
index 3bee5b4..3bee5b4 100644
--- a/grothoff_towards-secure-name-resolution-on-the-internet_ndss2017slides.pdf
+++ b/grothoff/grothoff_towards-secure-name-resolution-on-the-internet_ndss2017slides.pdf
Binary files differ
diff --git a/grothoff_tsvwg2015.pdf b/grothoff/grothoff_tsvwg2015.pdf
index d9cd213..d9cd213 100644
--- a/grothoff_tsvwg2015.pdf
+++ b/grothoff/grothoff_tsvwg2015.pdf
Binary files differ
diff --git a/grothoff_tue2015.pdf b/grothoff/grothoff_tue2015.pdf
index f2c0caf..f2c0caf 100644
--- a/grothoff_tue2015.pdf
+++ b/grothoff/grothoff_tue2015.pdf
Binary files differ
diff --git a/grothoff_uva2013.pdf b/grothoff/grothoff_uva2013.pdf
index f3258a2..f3258a2 100644
--- a/grothoff_uva2013.pdf
+++ b/grothoff/grothoff_uva2013.pdf
Binary files differ
diff --git a/secushare-old-html/2011-CBase.slides.html b/secushare-old-html/2011-CBase.slides.html
new file mode 100644
index 0000000..2e169ff
--- /dev/null
+++ b/secushare-old-html/2011-CBase.slides.html
@@ -0,0 +1,297 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4<html xmlns="http://www.w3.org/1999/xhtml">
5<head>
6<meta name="presdate" content="20111228" />
7<title>Scalable &amp; Paranoid: Secure Share</title>
8<!-- metadata -->
9<meta name="generator" content="S5" />
10<meta name="version" content="S5 1.1" />
11<meta name="author" content="Carlo v. Loesch" />
12<meta name="company" content="symlynX.com" />
13<!-- configuration parameters -->
14<meta name="defaultView" content="slideshow" />
15<meta name="controlVis" content="hidden" />
16<!-- style sheet links -->
17<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/slides.css" type="text/css" media="projection" id="slideProj" />
18<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/outline.css" type="text/css" media="screen" id="outlineStyle" />
19<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/print.css" type="text/css" media="print" id="slidePrint" />
20<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/opera.css" type="text/css" media="projection" id="operaFix" />
21<!-- S5 JS -->
22<script src="http://www.psyc.eu/papers/ui/psyced/slides.js" type="text/javascript"></script>
23</head>
24<body>
25
26<div class="layout">
27<div id="controls"><!-- DO NOT EDIT --></div>
28<div id="currentSlide"><!-- DO NOT EDIT --></div>
29<div id="header"></div>
30<div id="footer">
31&nbsp; Scalable &amp; Paranoid: Secure Share
32</div>
33
34</div>
35
36
37<div class="presentation">
38
39<div class="slide">
40<h2>Scalable &amp; Paranoid: Secure Share</h2>
41<ul>
42<li>Carlo v. Loesch (symlynX)</li>
43<li>Gabor Toth (PSYC)</li>
44<li>Mathias Baumann (PSYC)</li>
45</ul>
46</div>
47
48<div class="slide">
49<h1>A Perfectionist's Social Network</h1>
50<h2>Overview of the Talk</h2>
51<ul>
52<li>Attack Vectors against Servers &amp; VMs</li>
53<li>How Much Privacy Is Enough?</li>
54<li>Social Onion Routing</li>
55<li>More Desired Features</li>
56<li>Architecture, Protocols</li>
57<li>How to Beat Faceboogle</li>
58<li>The 'Secure Share' App</li>
59</ul>
60</div>
61
62<div class="slide">
63<h2>Why am I talking here?</h2>
64<ul class="incremental">
65<li>20 years of messaging &amp; chat protocol design</li>
66<li>/me etc.</li>
67<li>PSYC: federated &amp; multicasting</li>
68<li>then Jabber came</li>
69<li>PSYC good for business, open source delayed</li>
70<li>back then servers were reliable</li>
71</ul>
72</div>
73
74<div class="slide">
75<h1>Don't Trust Servers</h1>
76<h2>Hardware Servers are vulnerable</h2>
77<ul class="incremental">
78<li>client/server architecture: data resides on servers</li>
79<li>federation: data visible on even more servers</li>
80<li>memory access via bus sniffing</li>
81<li>no shutdown necessary</li>
82<li>automated memory image analysis proven</li>
83<li>eat-inside or take-away</li>
84</ul>
85</div>
86
87<div class="slide">
88<h1>Don't Trust Virtual Machines</h1>
89<h2>Commodity Servers are VMs</h2>
90<ul class="incremental">
91<li>vulnerable cryptography</li>
92<li>memory can be monitored</li>
93<li>controlling system accessible by observers</li>
94<li>automated monitoring of federated social networks</li>
95<li>anti-terror legislation possible</li>
96<li>even if <em>your</em> server is at home</li>
97</ul>
98</div>
99
100<div class="slide">
101<h1>Privacy vs. Paranoia</h1>
102<h2>How Much Privacy Is Enough? 1/2</h2>
103<ul class="incremental">
104<li>just to the intended recipients (e2e encryption)</li>
105<li>packet size padding (unobservability)</li>
106<li>flexible number of anonymization hops</li>
107<li>optional intentional delay</li>
108</ul>
109</div>
110
111<div class="slide">
112<h1>Privacy vs. Paranoia</h1>
113<h2>How Much Privacy Is Enough? 2/2</h2>
114<ul class="incremental">
115<li>forward secrecy</li>
116<li>deniability (a log is no proof of nothing)</li>
117<li>private subscription lists (not on a server)</li>
118<li>robust and resilient against attacks</li>
119</ul>
120</div>
121
122<div class="slide">
123<h1>It's A Question Of Trust</h1>
124<h2>Social Onion Routing</h2>
125<ul class="incremental">
126<li>trust relationship between nodes</li>
127<li>multihop provides anonymization</li>
128<li>motivation to provide "servers" as fast routers</li>
129<li>"P2P" a lot faster over servers</li>
130<li>servers agnostically maintain messages (and data)</li>
131<!-- li>irony: role switch between servers and routers</li -->
132</ul>
133</div>
134
135<div class="slide">
136<h1>Portability &amp; Acceptance</h1>
137<h2>Lightweight Daemon</h2>
138<ul class="incremental">
139<li>personal devices and home routers</li>
140<li>lightweight for embedded and mobile</li>
141<li>lightweight for background daemon use</li>
142<li>compiled language</li>
143<li>more likely to get included in OS distros</li>
144</ul>
145</div>
146
147<div class="slide">
148<h1>Architecture</h1>
149<h2>Technology</h2>
150<ul class="incremental">
151<li>"Enhanced" P2P with servers as agnostic routers</li>
152<li>GNUnet as a framework, lots of privacy</li>
153<li>TUM, learned from I2P, Freenet...</li>
154<li>social graph discovery instead of DHT</li>
155<li>no file sharing, no big traffic</li>
156<li>PSYC on top</li>
157<!-- <li>Multicast distribution for scalability (later)</li> -->
158</ul>
159</div>
160
161<div class="slide">
162<h1>PSYC vs XML and JSON</h1>
163
164<ul class="incremental">
165<li>extensible: semantically rich</li>
166<li>binary/encrypted data capable</li>
167<li>efficient as a binary format</li>
168</ul>
169<p/>
170
171<table class="smaller" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
172<caption></caption>
173<colgroup><col class="left" /></colgroup>
174<colgroup><col class="right" /><col class="right" /><col class="center" /></colgroup><colgroup><col class="right" /><col class="right" /></colgroup><colgroup><col class="right" /><col class="right" /><col class="right" /></colgroup>
175<thead>
176<tr><th scope="col" class="left"></th><th scope="col" class="right">libpsyc<br/>regular</th><th scope="col" class="center">libpsyc<br/>compact</th><th scope="col" class="right">json-c</th><th scope="col" class="right">json-glib</th><th scope="col" class="right">libxml sax</th><th scope="col" class="right">libxml</th><th scope="col" class="right">rapidxml</th></tr>
177
178</thead>
179<tbody>
180<tr><td class="left">presence</td><td class="right">236</td><td class="center">122</td><td class="right">2463</td><td class="right">10016</td><td class="right">4997</td><td class="right">7557</td><td class="right">1719</td></tr>
181<tr><td class="left">chat msg</td><td class="right">295</td><td class="center">258</td><td class="right">2147</td><td class="right">9526</td><td class="right">5911</td><td class="right">8999</td><td class="right">1850</td></tr>
182
183<tr><td class="left">activity</td><td class="right">353</td><td class="center">279</td><td class="right">4666</td><td class="right">16327</td><td class="right">13357</td><td class="right">28858</td><td class="right">4356</td></tr>
184</tbody>
185</table>
186
187</div>
188
189<div class="slide">
190<h1>One Too Many</h1>
191<h2>Multicasting for Scalability</h2>
192<ul class="incremental">
193<li>social interactions are one-to-many or many-to-many</li>
194<li>round robin distribution is slow (SMTP)</li>
195<li>IP Multicast doesn't do the job (router table overflow)</li>
196<li>HTTP is one-to-one, query/response</li>
197<li>XMPP has a trust issue (says the XSF)</li>
198<li>IRC and NNTP do/did multicast, but had other problems</li>
199</ul>
200</div>
201
202<div class="slide">
203<h1>Flexibility</h1>
204<h2>Framework Architecture</h2>
205<ul class="incremental">
206<li>a truly private communications backend</li>
207<li>social applications to be built on top</li>
208<li>emulations of the 'open standards' possible</li>
209<li>OStatus, WebID, RDF, even the Twitter API</li>
210<li>optional modules for XMPP, IRC available</li>
211<li>Activity Streams</li>
212</ul>
213</div>
214
215<div class="slide">
216<h1>Dissemination</h1>
217<h2>Hard to beat Faceboogle</h2>
218<ul class="incremental">
219<li>since we need to go onto every computer anyway..</li>
220<li>offer something Faceboogle can't provide?</li>
221<li>exchanging files between friends sucks</li>
222<li>USB sticks, e-mail, file hosters, skype, MSN, DropBox (brrr!)</li>
223<li>WTF is 'Secure Share' ?</li>
224</ul>
225</div>
226
227<div class="slide">
228<h1>Desktop Integration</h1>
229<h2>'Secure Share' Function</h2>
230<ul class="incremental">
231<li>right mouse button click (context menu)</li>
232<li>share a file to a channel of subscribers</li>
233<li>appears in their file system soon</li>
234<li>realtime or delayed notification</li>
235<li>no permission dialogs</li>
236<li>shipped by default in your free OS?</li>
237</ul>
238</div>
239
240<!--
241
242-->
243
244<div class="slide">
245<h1>If you like what we do</h1>
246<h2>We need support</h2>
247<ul>
248<li>Manpower</li>
249<li>Alliances</li>
250<li>Finances</li>
251<li>Publicity</li>
252</ul>
253<br/>
254Check by: secushare.org<br/>
255Thank you.<br/>
256</div>
257
258<div class="slide">
259<h1>Cross That Bridge As We Get There?</h1>
260<h2>Let's just get started with something!</h2>
261<ul class="incremental">
262<li>The Mediocre is the Enemy of the Good</li>
263<li>Historic Examples:</li>
264<li>HTTP.. HTTP/NG?, SPDY!?</li>
265<li>SMTP.. What? Faceboogle!?</li>
266<li>XML.. What? JSON!?</li>
267<!-- li>SQL..</li -->
268</ul>
269</div>
270
271<div class="slide">
272<h1>End-to-end Encryption in the Browser?</h1>
273<h2>isn't possible by design of the web.</h2>
274See the 'end2end' page on the website for details.
275</div>
276
277<div class="slide">
278<h1>One Too Many (XMPP)</h1>
279<h2>Multicasting with XMPP?</h2>
280<ul class="incremental">
281<li>70% of S2S XMPP messages is presence updates (5 years ago)</li>
282<li>XMPP has limited support for one-to-many communications</li>
283<li>XMPP can be improved, but: trust problem with multicast</li>
284</ul>
285</div>
286
287<div class="slide">
288<h1>One Too Many (HTTP)</h1>
289<h2>Multicasting with HTTP?</h2>
290<ul class="incremental">
291<li>fundamentally feasible</li>
292<li>unnatural: HTTP is not bidirectional</li>
293<li>requires trust in a federated architecture</li>
294</ul>
295</div>
296
297</html>
diff --git a/secushare-old-html/2011-CCCamp.slides.html b/secushare-old-html/2011-CCCamp.slides.html
new file mode 100644
index 0000000..ce6fbfc
--- /dev/null
+++ b/secushare-old-html/2011-CCCamp.slides.html
@@ -0,0 +1,262 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4<html xmlns="http://www.w3.org/1999/xhtml">
5<head>
6<title>Scalable &amp; Paranoid: Secure Share</title>
7<!-- metadata -->
8<meta name="generator" content="S5" />
9<meta name="version" content="S5 1.1" />
10<meta name="presdate" content="20110814" />
11<meta name="author" content="Carlo v. Loesch" />
12<meta name="company" content="symlynX.com" />
13<!-- configuration parameters -->
14<meta name="defaultView" content="slideshow" />
15<meta name="controlVis" content="hidden" />
16<!-- style sheet links -->
17<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/slides.css" type="text/css" media="projection" id="slideProj" />
18<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/outline.css" type="text/css" media="screen" id="outlineStyle" />
19<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/print.css" type="text/css" media="print" id="slidePrint" />
20<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/opera.css" type="text/css" media="projection" id="operaFix" />
21<!-- S5 JS -->
22<script src="http://www.psyc.eu/papers/ui/psyced/slides.js" type="text/javascript"></script>
23</head>
24<body>
25
26<div class="layout">
27<div id="controls"><!-- DO NOT EDIT --></div>
28<div id="currentSlide"><!-- DO NOT EDIT --></div>
29<div id="header"></div>
30<div id="footer">
31&nbsp; Scalable &amp; Paranoid: Secure Share
32</div>
33
34</div>
35
36
37<div class="presentation">
38
39<div class="slide">
40<h2>Scalable &amp; Paranoid: Secure Share</h2>
41<ul>
42<li>Carlo v. Loesch (symlynX)</li>
43<li>Gabor Toth (PSYC)</li>
44<li>Mathias Baumann (PSYC)</li>
45</ul>
46</div>
47
48<div class="slide">
49<h1>A Perfectionist's Social Network</h1>
50<h2>Overview of the Talk</h2>
51<ul>
52<li>Safety of Virtual Machines</li>
53<li>How Much Privacy Is Enough?</li>
54<li>Social Onion Routing</li>
55<li>More Desired Features</li>
56<li>Architecture, Protocols</li>
57<li>How to Beat Faceboogle</li>
58<li>The 'Secure Share' App</li>
59</ul>
60</div>
61
62<div class="slide">
63<h1>Don't Trust Virtual Machines</h1>
64<h2>Commodity Servers are VMs</h2>
65<ul class="incremental">
66<li>vulnerable cryptography</li>
67<li>memory can be monitored</li>
68<li>controlling system accessible by observers</li>
69<li>automated monitoring of federated social networks</li>
70<li>anti-terror legislation possible</li>
71<li>even if <em>your</em> server is at home</li>
72</ul>
73</div>
74
75<div class="slide">
76<h1>Privacy vs. Paranoia</h1>
77<h2>How Much Privacy Is Enough? 1/2</h2>
78<ul class="incremental">
79<li>just to the intended recipients (e2e encryption)</li>
80<li>packet size padding (unobservability)</li>
81<li>flexible number of anonymization hops</li>
82<li>optional intentional delay</li>
83</ul>
84</div>
85
86<div class="slide">
87<h1>Privacy vs. Paranoia</h1>
88<h2>How Much Privacy Is Enough? 2/2</h2>
89<ul class="incremental">
90<li>forward secrecy</li>
91<li>deniability (a log is no proof of nothing)</li>
92<li>private subscription lists (not on a server)</li>
93<li>robust and resilient against attacks</li>
94</ul>
95</div>
96
97<div class="slide">
98<h1>It's A Question Of Trust</h1>
99<h2>Social Onion Routing</h2>
100<ul class="incremental">
101<li>trust relationship between nodes</li>
102<li>multihop provides anonymization</li>
103<li>motivation to provide "servers" as fast routers</li>
104<li>"P2P" a lot faster over servers</li>
105<li>irony: role switch between servers and routers</li>
106</ul>
107</div>
108
109<div class="slide">
110<h1>Portability &amp; Acceptance</h1>
111<h2>Lightweight Daemon</h2>
112<ul class="incremental">
113<li>personal devices and home routers</li>
114<li>lightweight for embedded and mobile</li>
115<li>lightweight for background daemon use</li>
116<li>compiled language</li>
117<li>more likely to get included in OS distros</li>
118</ul>
119</div>
120
121<div class="slide">
122<h1>Architecture</h1>
123<h2>Technology</h2>
124<ul class="incremental">
125<li>looking for the best framework...</li>
126<li>GnuNet, Maidsafe, A3 or Tonika?</li>
127<li>socially enhanced DHT?</li>
128<li>payload syntax: efficient, binary capable, extensible</li>
129<li>Multicast distribution for scalability (later)</li>
130</ul>
131</div>
132
133<div class="slide">
134<h1>Flexibility</h1>
135<h2>Framework Architecture</h2>
136<ul class="incremental">
137<li>a truly private messaging backend</li>
138<li>social applications to be built on top</li>
139<li>emulations of the 'open standards' possible</li>
140<li>OStatus, WebID, RDF, even the Twitter API</li>
141<li>optional modules for XMPP, IRC?</li>
142<li>Activity Streams</li>
143</ul>
144</div>
145
146<div class="slide">
147<h1>Dissemination</h1>
148<h2>Hard to beat Faceboogle</h2>
149<ul class="incremental">
150<li>since we need to go onto every computer anyway..</li>
151<li>offer something Faceboogle can't provide?</li>
152<li>exchanging files between friends sucks</li>
153<li>USB sticks, e-mail, file hosters, skype, MSN</li>
154<li>WTF is 'Secure Share' ?</li>
155</ul>
156</div>
157
158<div class="slide">
159<h1>Desktop Integration</h1>
160<h2>'Secure Share' Function</h2>
161<ul class="incremental">
162<li>right mouse button click (context menu)</li>
163<li>share a file to a channel of subscribers</li>
164<li>appears in their file system soon</li>
165<li>realtime or delayed notification</li>
166<li>no permission dialogs</li>
167<li>shipped by default in your free OS?</li>
168</ul>
169</div>
170
171<!--
172
173<div class="slide">
174<h1>One Too Many</h1>
175<h2>Multicasting for Scalability</h2>
176<ul class="incremental">
177<li>social interactions are one-to-many or many-to-many</li>
178<li>HTTP is one-to-one</li>
179<li>round robin distribution is slow (SMTP)</li>
180<li>IP Multicast doesn't do the job (router table overflow)</li>
181<li>IRC and NNTP do/did multicast, but had other problems</li>
182</ul>
183</div>
184
185<div class="slide">
186<h1>One Too Many</h1>
187<h2>Multicasting with XMPP?</h2>
188<ul class="incremental">
189<li>70% of S2S XMPP messages is presence updates (5 years ago)</li>
190<li>XMPP has limited support for one-to-many communications</li>
191<li>XMPP can be improved, but: trust problem with multicast</li>
192</ul>
193</div>
194
195<div class="slide">
196<h1>One Too Many</h1>
197<h2>Multicasting with HTTP?</h2>
198<ul class="incremental">
199<li>fundamentally feasible</li>
200<li>unnatural: HTTP is not bidirectional</li>
201<li>requires trust in a federated architecture</li>
202</ul>
203</div>
204
205<div class="slide">
206<h1>Possible Solution Part 1</h1>
207<h2>New Architecture?</h2>
208<ul class="incremental">
209<li>"Enhanced" P2P with servers as agnostic routers</li>
210<li>Options: GNUnet, Maidsafe, A3, Tonika</li>
211<li>Less possibly: I2P, Diaspora</li>
212<li>Features: Unobservability, End-To-End ...</li>
213<li>What's missing?</li>
214</ul>
215</div>
216
217<div class="slide">
218<h1>Possible Solution Part 2</h1>
219<h2>Things to add on top</h2>
220<ul class="incremental">
221<li>multicast routing option</li>
222<li>social trust metrics</li>
223<li>... applied for routing</li>
224<li>flexible payload syntax</li>
225<li>standard formats may be portable</li>
226<li>web interface still likely</li>
227</ul>
228</div>
229
230-->
231
232<!-- div class="slide">
233</div -->
234
235<div class="slide">
236<h1>If you like what we do</h1>
237<h2>We need support</h2>
238<ul>
239<li>Manpower</li>
240<li>Alliances</li>
241<li>Finances</li>
242<li>Publicity</li>
243</ul>
244<br/>
245<br/>
246Thank you.<br/>
247</div>
248
249<div class="slide">
250<h1>Cross That Bridge As We Get There?</h1>
251<h2>Let's just get started with something!</h2>
252<ul class="incremental">
253<li>The Mediocre is the Enemy of the Good</li>
254<li>Historic Examples:</li>
255<li>HTTP.. HTTP/NG?, SPDY!?</li>
256<li>SMTP.. What? Faceboogle!?</li>
257<li>XML.. What? JSON!?</li>
258<!-- li>SQL..</li -->
259</ul>
260</div>
261
262</html>
diff --git a/secushare-old-html/2011-FSW.slides.html b/secushare-old-html/2011-FSW.slides.html
new file mode 100644
index 0000000..72a39a7
--- /dev/null
+++ b/secushare-old-html/2011-FSW.slides.html
@@ -0,0 +1,152 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4<html xmlns="http://www.w3.org/1999/xhtml">
5<head>
6<title>Scalability &amp; Paranoia in a Decentralized Social Network</title>
7<!-- metadata -->
8<meta name="generator" content="S5" />
9<meta name="version" content="S5 1.1" />
10<meta name="presdate" content="20110600" />
11<meta name="author" content="Carlo v. Loesch" />
12<meta name="company" content="symlynX.com" />
13<!-- configuration parameters -->
14<meta name="defaultView" content="slideshow" />
15<meta name="controlVis" content="hidden" />
16<!-- style sheet links -->
17<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/slides.css" type="text/css" media="projection" id="slideProj" />
18<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/outline.css" type="text/css" media="screen" id="outlineStyle" />
19<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/print.css" type="text/css" media="print" id="slidePrint" />
20<link rel="stylesheet" href="http://www.psyc.eu/papers/ui/psyced/opera.css" type="text/css" media="projection" id="operaFix" />
21<!-- S5 JS -->
22<script src="http://www.psyc.eu/papers/ui/psyced/slides.js" type="text/javascript"></script>
23</head>
24<body>
25
26<div class="layout">
27<div id="controls"><!-- DO NOT EDIT --></div>
28<div id="currentSlide"><!-- DO NOT EDIT --></div>
29<div id="header"></div>
30<div id="footer">
31&nbsp; Scalability &amp; Paranoia in a Decentralized Social Network
32</div>
33
34</div>
35
36
37<div class="presentation">
38
39<div class="slide">
40<h2>Scalability &amp; Paranoia in a Decentralized Social Network</h2>
41<ul>
42<li>Carlo v. Loesch (symlynX)<br/>
43<li>Gabor Toth (PSYC)<br/>
44<li>Mathias Baumann (PSYC)<br/>
45</ul>
46</div>
47
48
49<div class="slide">
50<h1>Pitfall: Start With Something</h1>
51<h2>Cross That Bridge As We Get There?</h2>
52<ul class="incremental">
53<li>Let's just get started with something!</li>
54<li>Pitfall! Historic Examples:</li>
55<li>HTTP! HTTP/NG?, SPDY!?</li>
56<li>IRC! ...? XMPP!?</li>
57<li>XMPP! ...? JSON!?</li>
58</ul>
59</div>
60
61<div class="slide">
62<h1>One Too Many</h1>
63<h2>Multicasting for Scalability</h2>
64<ul class="incremental">
65<li>social interactions are one-to-many or many-to-many</li>
66<li>HTTP is one-to-one</li>
67<li>round robin distribution is slow (SMTP)</li>
68<li>IP Multicast doesn't do the job (router table overflow)</li>
69<li>IRC and NNTP do/did multicast, but had other problems</li>
70</ul>
71</div>
72
73<div class="slide">
74<h1>One Too Many</h1>
75<h2>Multicasting with XMPP?</h2>
76<ul class="incremental">
77<li>70% of S2S XMPP messages is presence updates (5 years ago)</li>
78<li>XMPP has limited support for one-to-many communications</li>
79<li>XMPP can be improved, but: trust problem with multicast</li>
80</ul>
81</div>
82
83<div class="slide">
84<h1>One Too Many</h1>
85<h2>Multicasting with HTTP?</h2>
86<ul class="incremental">
87<li>fundamentally feasible</li>
88<li>unnatural: HTTP is not bidirectional</li>
89<li>requires trust in a federated architecture</li>
90</ul>
91</div>
92
93<div class="slide">
94<h1>Don't Trust Virtual Machines</h1>
95<h2>Commodity Servers are VMs</h2>
96<ul class="incremental">
97<li>vulnerable cryptography</li>
98<li>controlling system accessible by observers</li>
99<li>memory can be monitored</li>
100<li>automated monitoring of the FSW</li>
101<li>anti-terror legislation possible</li>
102</ul>
103</div>
104
105<div class="slide">
106<h1>Privacy vs. Paranoia</h1>
107<h2>How Much Privacy Is Enough?</h2>
108<ul class="incremental">
109<li>just to the intended recipients (e2e encryption)</li>
110<li>packet size padding (unobservability)</li>
111<li>forward secrecy</li>
112<li>private subscription lists (not on a server)</li>
113<li>robust and resilient against attacks</li>
114</ul>
115</div>
116
117<div class="slide">
118<h1>Our Conclusion</h1>
119<h2>For the web to become seriously social, it needs a native, open and free
120backbone technology that enables communication beyond the one-to-one scenario.</h2>
121</div>
122
123<div class="slide">
124<h1>Possible Solution Part 1</h1>
125<h2>New Architecture?</h2>
126<ul class="incremental">
127<li>"Enhanced" P2P with servers as agnostic routers</li>
128<li>Options: GNUnet, Maidsafe, A3, Tonika</li>
129<li>Less possibly: I2P, Diaspora</li>
130<li>Features: Unobservability, End-To-End ...</li>
131<li>What's missing?</li>
132</ul>
133</div>
134
135<div class="slide">
136<h1>Possible Solution Part 2</h1>
137<h2>Things to add on top</h2>
138<ul class="incremental">
139<li>multicast routing option</li>
140<li>social trust metrics</li>
141<li>... applied for routing</li>
142<li>flexible payload syntax</li>
143<li>standard formats may be portable</li>
144<li>web interface still likely</li>
145</ul>
146</div>
147
148<!-- div class="slide">
149<h3>Thank you.<br/>Questions? Other points of view?</h3>
150</div -->
151
152</html>
diff --git a/secushare-old-html/2012-02-Cbase.slides.html b/secushare-old-html/2012-02-Cbase.slides.html
new file mode 100644
index 0000000..063ea81
--- /dev/null
+++ b/secushare-old-html/2012-02-Cbase.slides.html
@@ -0,0 +1,369 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4<!--
5
6TODO: political slide about Facebook owning and selling your
7 pictures and stuffs you upload!!?
8
9TODO: add a slide about private usefulness as noted by codethief
10 (syncing, managing your stuff)
11
12-->
13
14<html xmlns="http://www.w3.org/1999/xhtml">
15<head>
16<title>Re-Invent the Internet with Secure Share</title>
17<meta name="presdate" content="20120201" />
18<!-- metadata -->
19<meta name="generator" content="S5" />
20<meta name="version" content="S5 1.1" />
21<meta name="author" content="Carlo v. Loesch" />
22<meta name="company" content="symlynX.com" />
23<!-- configuration parameters -->
24<meta name="defaultView" content="slideshow" />
25<meta name="controlVis" content="hidden" />
26<!-- style sheet links -->
27<link rel="stylesheet" href="UI/slides.css" type="text/css" media="projection" id="slideProj" />
28<link rel="stylesheet" href="UI/outline.css" type="text/css" media="screen" id="outlineStyle" />
29<link rel="stylesheet" href="UI/print.css" type="text/css" media="print" id="slidePrint" />
30<link rel="stylesheet" href="UI/opera.css" type="text/css" media="projection" id="operaFix" />
31<!-- S5 JS -->
32<script src="UI/slides.js" type="text/javascript"></script>
33</head>
34<body>
35
36<div class="layout">
37<div id="controls"><!-- DO NOT EDIT --></div>
38<div id="currentSlide"><!-- DO NOT EDIT --></div>
39<div id="header"></div>
40<div id="footer">
41&nbsp; secushare: A Framework for ReInventing the Internet
42</div>
43</div>
44
45<div id="between">&nbsp;</div>
46
47<!-- div id="logo">
48<img src="img/oXoXo-077.png" />
49</div -->
50
51<div class="presentation">
52
53<div class="slide">
54<img style="padding: 80px" src="img/secushare-0444.png" />
55</div>
56
57<div class="slide">
58<img class="framed" src="img/phase0.jpeg" />
59</div>
60<div class="slide">
61<img class="framed" src="img/phase1.jpeg" />
62</div>
63<div class="slide">
64<img class="framed" src="img/phase2.jpeg" />
65</div>
66<div class="slide">
67<img class="framed" src="img/phase3.jpeg" />
68</div>
69
70<div class="slide">
71<h1>ReInventing the Internet?</h1>
72<h2>Overview of the Talk</h2>
73<ul>
74<li>Attack Vectors against Servers &amp; VMs</li>
75<li>How Much Privacy Is Enough?</li>
76<li>Social Onion Routing</li>
77<li>More Desired Features</li>
78<li>Architecture, Protocols</li>
79<li>How to Beat Faceboogle</li>
80<li>The 'Secure Share' App</li>
81</ul>
82</div>
83
84<div class="slide">
85<h1>About carlo von lynX</h1>
86<h2>Why am I talking here?</h2>
87<ul class="incremental">
88<li>20 years of messaging &amp; chat protocol design</li>
89<li>/me etc.</li>
90<li>PSYC: federated &amp; multicasting</li>
91<li>then Jabber came</li>
92<li>PSYC good for business, open source delayed</li>
93<li>back then, servers were reliable</li>
94</ul>
95</div>
96
97<div class="slide">
98<h1>Don't Trust Servers</h1>
99<h2>Hardware Servers are vulnerable</h2>
100<ul class="incremental">
101<li>client/server architecture: data resides on servers</li>
102<li>federation: data visible on even more servers</li>
103<li>memory access via bus sniffing</li>
104<li>no shutdown necessary</li>
105<li>automated memory image analysis proven</li>
106<li>eat-inside or take-away</li>
107</ul>
108</div>
109
110<div class="slide">
111<h1>Don't Trust Virtual Machines</h1>
112<h2>Commodity Servers are VMs</h2>
113<ul class="incremental">
114<li>vulnerable cryptography</li>
115<li>memory can be monitored</li>
116<li>controlling system accessible by observers</li>
117<li>automated monitoring of federated social networks</li>
118<li>anti-terror legislation possible</li>
119<li>even if <em>your</em> server is at home</li>
120</ul>
121</div>
122
123<div class="slide">
124<h1>Privacy vs. Paranoia</h1>
125<h2>How Much Privacy Is Enough? 1/2</h2>
126<ul class="incremental">
127<li>just to the intended recipients (e2e encryption)</li>
128<li>packet size padding (unobservability)</li>
129<li>flexible number of anonymization hops</li>
130<li>optional intentional delay</li>
131</ul>
132</div>
133
134<div class="slide">
135<h1>Privacy vs. Paranoia</h1>
136<h2>How Much Privacy Is Enough? 2/2</h2>
137<ul class="incremental">
138<li>forward secrecy</li>
139<li>deniability (a log is no proof of nothing)</li>
140<li>private subscription lists (not on a server)</li>
141<li>robust and resilient against attacks</li>
142</ul>
143</div>
144
145<div class="slide">
146<h1>It's A Question Of Trust</h1>
147<h2>Social Onion Routing</h2>
148<ul class="incremental">
149<li>trust relationship between nodes</li>
150<li>multihop provides anonymization</li>
151<li>motivation to provide "servers" as fast routers</li>
152<li>my server is me, so you can trust my server</li>
153<li>"P2P" a lot faster over servers</li>
154<li>servers agnostically maintain messages (and data)</li>
155<!-- li>irony: role switch between servers and routers</li -->
156</ul>
157</div>
158
159<div class="slide">
160<h1>Portability &amp; Acceptance</h1>
161<h2>Lightweight Daemon</h2>
162<ul class="incremental">
163<li>personal devices and home routers</li>
164<li>lightweight for embedded and mobile</li>
165<li>lightweight for background daemon use</li>
166<li>compiled language</li>
167<li>more likely to get included in OS distros</li>
168</ul>
169</div>
170
171<div class="slide">
172<h1>Architecture</h1>
173<h2>Technology</h2>
174<ul class="incremental">
175<li>"Enhanced" P2P with servers as agnostic routers</li>
176<li>GNUnet as a framework: privacy, VPN, meshnet</li>
177<li>TUM, learned from I2P, Freenet...</li>
178<li>social graph discovery instead of DHT</li>
179<li>no file sharing, no big traffic</li>
180<li>PSYC on top</li>
181<!-- <li>Multicast distribution for scalability (later)</li> -->
182</ul>
183</div>
184
185<div class="slide">
186<h1>PSYC vs XML and JSON</h1>
187
188<ul class="incremental">
189<li>extensible: semantically rich</li>
190<li>binary/encrypted data capable</li>
191<li>efficient as a binary format</li>
192<li>table shows parsing speed in milliseconds:</li>
193</ul>
194<p/>
195
196<table class="smaller" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
197<caption></caption>
198<colgroup><col class="left" /></colgroup>
199<colgroup><col class="right" /><col class="right" /></colgroup><colgroup><col class="right" /><col class="right" /></colgroup><colgroup><col class="right" /><col class="right" /><col class="right" /><col class="right" /></colgroup>
200<thead>
201<tr><th scope="col" class="left"></th><th scope="col" class="right">libpsyc<br/>regular</th><th scope="col" class="center">libpsyc<br/>compact</th><th scope="col" class="right">json-c</th><th scope="col" class="right">json-glib</th><th scope="col" class="right">libxml sax</th><th scope="col" class="right">libxml</th><th scope="col" class="right">rapidxml</th></tr>
202</thead>
203<tbody>
204<tr><td class="left">presence</td><td class="right">236</td><td class="right">122</td><td class="right">2463</td><td class="right">10016</td><td class="right">4997</td><td class="right">7557</td><td class="right">1719</td></tr>
205<tr><td class="left">chat msg</td><td class="right">295</td><td class="right">258</td><td class="right">2147</td><td class="right">9526</td><td class="right">5911</td><td class="right">8999</td><td class="right">1850</td></tr>
206<tr><td class="left">activity</td><td class="right">353</td><td class="right">279</td><td class="right">4666</td><td class="right">16327</td><td class="right">13357</td><td class="right">28858</td><td class="right">4356</td></tr>
207</tbody>
208</table>
209
210</div>
211
212<div class="slide">
213<h1>One Too Many</h1>
214<h2>Multicasting for Scalability</h2>
215<ul class="incremental">
216<li>social = one-to-many | many-to-many</li>
217<li>round robin distribution = slow (SMTP)</li>
218<li>HTTP is one-to-one, query/response</li>
219<li>IP Multicast fails (router table overflow)</li>
220<li>IRC and NNTP do/did multicast, but have other problems</li>
221<li>XMPP has a trust issue (says the XSF)</li>
222</ul>
223</div>
224
225<div class="slide">
226<h1>Flexibility</h1>
227<h2>Framework Architecture</h2>
228<ul class="incremental">
229<li>a truly private communications backend</li>
230<li>social applications to be built on top</li>
231<li>emulations of the 'open standards' possible</li>
232<li>OStatus, WebID, RDF, even the Twitter API</li>
233<li>optional modules for XMPP, IRC available</li>
234<li>Activity Streams</li>
235</ul>
236</div>
237
238<div class="slide">
239<h1>Dissemination</h1>
240<h2>Hard to beat Faceboogle</h2>
241<ul class="incremental">
242<li>since we need to go onto every computer anyway..</li>
243<li>offer something Faceboogle can't provide?</li>
244<li>exchanging files between friends sucks</li>
245<li>USB sticks, e-mail, file hosters, skype, MSN, DropBox (brrr!)</li>
246<li>WTF is 'Secure Share' ?</li>
247</ul>
248</div>
249
250<div class="slide">
251<h1>Desktop Integration</h1>
252<h2>'Secure Share' Function</h2>
253<ul class="incremental">
254<li>right mouse button click (context menu)</li>
255<li>share a file to a channel of subscribers</li>
256<li>appears in their file system soon</li>
257<li>realtime or delayed notification</li>
258<li>no permission dialogs</li>
259<li>shipped by default in your free OS?</li>
260</ul>
261</div>
262
263<div class="slide">
264<h1>Secure Share Feature Set</h1>
265<h2>Features of Prototype Edition</h2>
266<ul>
267<li>Messaging, Subscriptions, Status Update</li>
268<li>File Exchange, VPN, Software Distribution</li>
269</ul>
270<h2>Later Features</h2>
271<ul>
272<li>Group Communications, Social Network Features</li>
273<li>Media Support: Photo Albums, Videos, Music</li>
274<li>Extension API for Custom Social Apps</li>
275<li>Realtime Streaming</li>
276</ul>
277</div>
278
279<div class="slide">
280<img class="framed" src="img/phase0.jpeg" />
281</div>
282<div class="slide">
283<img class="framed" src="img/phase1.jpeg" />
284</div>
285<div class="slide">
286<img class="framed" src="img/phase2.jpeg" />
287</div>
288<div class="slide">
289<img class="framed" src="img/phase3.jpeg" />
290</div>
291
292<!--
293
294-->
295
296<div class="slide">
297<h1>Secure Share</h1>
298<h2>Who's involved?</h2>
299<ul>
300<li>Carlo v. Loesch (secushare.org)</li>
301<li>Gabor Toth (secushare.org)</li>
302<li>Mathias Baumann (PSYC)</li>
303<li>Daniel Reusche (Social Swarm)</li>
304</ul>
305</div>
306
307<div class="slide">
308<h1>If you like what we do</h1>
309<h2>We need support</h2>
310<img align="right" src="img/oXoXo-380.png" />
311<ul>
312<li>Manpower</li>
313<li>Alliances</li>
314<li>Finances</li>
315<li>Publicity</li>
316</ul>
317<br/>
318Check by: secushare.org<br/>
319Thank you.<br/>
320</div>
321
322<div class="slide">
323<h1>A bad idea whose time has come?</h1>
324<h2>End-to-end Encryption in the Browser!!1!11</h2>
325<br/>
326<ul class="incremental">
327<li>User interface comes from the server.
328<li>Web browser does what the server says.
329<li>Server corrupted? It can steal your data.
330<li>Only static install helps. Still:
331<li>Bad cryptography, bad script signing.
332<li>So you might aswell go for the real thing...
333</ul>
334</div>
335
336<div class="slide">
337<h1>One Too Many (XMPP)</h1>
338<h2>Multicasting with XMPP?</h2>
339<ul class="incremental">
340<li>70% of S2S XMPP messages is presence updates (5 years ago)</li>
341<li>XMPP has limited support for one-to-many communications</li>
342<li>XMPP can be improved, but: trust problem with multicast</li>
343</ul>
344</div>
345
346<div class="slide">
347<h1>One Too Many (HTTP)</h1>
348<h2>Multicasting with HTTP?</h2>
349<ul class="incremental">
350<li>fundamentally feasible</li>
351<li>unnatural: HTTP is not bidirectional</li>
352<li>requires trust in a federated architecture</li>
353</ul>
354</div>
355
356<div class="slide">
357<h1>Cross That Bridge As We Get There?</h1>
358<h2>Let's just get started with something!</h2>
359<ul class="incremental">
360<li>The Mediocre is the Enemy of the Good</li>
361<li>Historic Examples:</li>
362<li>HTTP.. HTTP/NG?, SPDY!?</li>
363<li>SMTP.. What? Faceboogle!?</li>
364<li>XML.. What? JSON!?</li>
365<!-- li>SQL..</li -->
366</ul>
367</div>
368
369</html>
diff --git a/secushare-old-html/2012-08-MOCA.slides.html b/secushare-old-html/2012-08-MOCA.slides.html
new file mode 100644
index 0000000..14b6813
--- /dev/null
+++ b/secushare-old-html/2012-08-MOCA.slides.html
@@ -0,0 +1,375 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4<!--
5
6TODO: political slide about Facebook owning and selling your
7 pictures and stuffs you upload!!?
8
9TODO: add a slide about private usefulness as noted by codethief
10 (syncing, managing your stuff)
11
12-->
13
14<html xmlns="http://www.w3.org/1999/xhtml">
15<head>
16<title>Re-Invent the Internet with Secure Share</title>
17<meta name="presdate" content="20120201" />
18<!-- metadata -->
19<meta name="generator" content="S5" />
20<meta name="version" content="S5 1.1" />
21<meta name="author" content="Carlo v. Loesch" />
22<meta name="company" content="symlynX.com" />
23<!-- configuration parameters -->
24<meta name="defaultView" content="slideshow" />
25<meta name="controlVis" content="hidden" />
26<!-- style sheet links -->
27<link rel="stylesheet" href="UI/slides.css" type="text/css" media="projection" id="slideProj" />
28<link rel="stylesheet" href="UI/outline.css" type="text/css" media="screen" id="outlineStyle" />
29<link rel="stylesheet" href="UI/print.css" type="text/css" media="print" id="slidePrint" />
30<link rel="stylesheet" href="UI/opera.css" type="text/css" media="projection" id="operaFix" />
31<!-- S5 JS -->
32<script src="UI/slides.js" type="text/javascript"></script>
33</head>
34<body>
35
36<div class="layout">
37<div id="controls"><!-- DO NOT EDIT --></div>
38<div id="currentSlide"><!-- DO NOT EDIT --></div>
39<div id="header"></div>
40<div id="footer">
41&nbsp; secushare: A Framework for ReInventing the Internet
42</div>
43</div>
44
45<div id="between">&nbsp;</div>
46
47<!-- div id="logo">
48<img src="img/oXoXo-077.png" />
49</div -->
50
51<div class="presentation">
52
53<div class="slide">
54<img style="padding: 80px" src="img/secushare-0444.png" />
55</div>
56
57<div class="slide">
58<img class="framed" src="img/phase0.jpeg" />
59</div>
60<div class="slide">
61<img class="framed" src="img/phase1.jpeg" />
62</div>
63<div class="slide">
64<img class="framed" src="img/phase2.jpeg" />
65</div>
66<div class="slide">
67<img class="framed" src="img/phase3.jpeg" />
68</div>
69
70<div class="slide">
71<h1>ReInventing the Internet?</h1>
72<h2>Overview of the Talk</h2>
73<ul>
74<li>Attack Vectors against Servers &amp; VMs</li>
75<li>How Much Privacy Is Enough?</li>
76<li>Social Onion Routing</li>
77<li>More Desired Features</li>
78<li>Architecture, Protocols</li>
79<li>How to Beat Faceboogle</li>
80<li>The 'Secure Share' App</li>
81</ul>
82</div>
83
84<div class="slide">
85<h1>About carlo von lynX</h1>
86<h2>Why am I talking here?</h2>
87<ul class="incremental">
88<li>20 years of messaging &amp; chat protocol design</li>
89<li>/me etc.</li>
90<li>PSYC: federated &amp; multicasting</li>
91<li>then Jabber came</li>
92<li>PSYC good for business, open source delayed</li>
93<li>back then, servers were reliable</li>
94</ul>
95</div>
96
97<div class="slide">
98<h1>Don't Trust Servers</h1>
99<h2>Hardware Servers are vulnerable</h2>
100<ul class="incremental">
101<li>client/server architecture: data resides on servers</li>
102<li>federation: data visible on even more servers</li>
103<li>memory access via bus sniffing</li>
104<li>no shutdown necessary</li>
105<li>automated memory image analysis proven</li>
106<li>eat-inside or take-away</li>
107</ul>
108</div>
109
110<div class="slide">
111<h1>Don't Trust Virtual Machines</h1>
112<h2>Commodity Servers are VMs</h2>
113<ul class="incremental">
114<li>vulnerable cryptography</li>
115<li>memory can be monitored</li>
116<li>controlling system accessible by observers</li>
117<li>automated monitoring of federated social networks</li>
118<li>anti-terror legislation possible</li>
119<li>even if <em>your</em> server is at home</li>
120</ul>
121</div>
122
123<div class="slide">
124<h1>Privacy vs. Paranoia</h1>
125<h2>How Much Privacy Is Enough? 1/2</h2>
126<ul class="incremental">
127<li>just to the intended recipients (e2e encryption)</li>
128<li>packet size padding (unobservability)</li>
129<li>flexible number of anonymization hops</li>
130<li>optional intentional delay</li>
131</ul>
132</div>
133
134<div class="slide">
135<h1>Privacy vs. Paranoia</h1>
136<h2>How Much Privacy Is Enough? 2/2</h2>
137<ul class="incremental">
138<li>forward secrecy</li>
139<li>deniability (a log is no proof of nothing)</li>
140<li>private subscription lists (not on a server)</li>
141<li>robust and resilient against attacks</li>
142</ul>
143</div>
144
145<div class="slide">
146<h1>It's A Question Of Trust</h1>
147<h2>Social Onion Routing</h2>
148<ul class="incremental">
149<li>trust relationship between nodes</li>
150<li>multihop provides anonymization</li>
151<li>motivation to provide "servers" as fast routers</li>
152<li>my server is me, so you can trust my server</li>
153<li>"P2P" a lot faster over servers</li>
154<li>servers agnostically maintain messages (and data)</li>
155<!-- li>irony: role switch between servers and routers</li -->
156</ul>
157</div>
158
159<div class="slide">
160<h1>Portability &amp; Acceptance</h1>
161<h2>Lightweight Daemon</h2>
162<ul class="incremental">
163<li>personal devices and home routers</li>
164<li>lightweight for embedded and mobile</li>
165<li>lightweight for background daemon use</li>
166<li>compiled language</li>
167<li>more likely to get included in OS distros</li>
168</ul>
169</div>
170
171<div class="slide">
172<h1>Architecture</h1>
173<h2>Technology</h2>
174<ul class="incremental">
175<li>"Enhanced" P2P with servers as agnostic routers</li>
176<li>GNUnet as a framework: privacy, VPN, meshnet</li>
177<li>TUM, learned from I2P, Freenet...</li>
178<li>social graph discovery instead of DHT</li>
179<li>no file sharing, no big traffic</li>
180<li>PSYC on top</li>
181<!-- <li>Multicast distribution for scalability (later)</li> -->
182</ul>
183</div>
184
185<div class="slide">
186<h1>PSYC vs XML and JSON</h1>
187
188<ul class="incremental">
189<li>extensible: semantically rich</li>
190<li>binary/encrypted data capable</li>
191<li>efficient as a binary format</li>
192<li>table shows parsing speed in milliseconds:</li>
193</ul>
194<p/>
195
196<table class="smaller" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
197<caption></caption>
198<colgroup><col class="left" /></colgroup>
199<colgroup><col class="right" /><col class="right" /></colgroup><colgroup><col class="right" /><col class="right" /></colgroup><colgroup><col class="right" /><col class="right" /><col class="right" /><col class="right" /></colgroup>
200<thead>
201<tr><th scope="col" class="left"></th><th scope="col" class="right">libpsyc<br/>regular</th><th scope="col" class="center">libpsyc<br/>compact</th><th scope="col" class="right">json-c</th><th scope="col" class="right">json-glib</th><th scope="col" class="right">libxml sax</th><th scope="col" class="right">libxml</th><th scope="col" class="right">rapidxml</th></tr>
202</thead>
203<tbody>
204<tr><td class="left">presence</td><td class="right">236</td><td class="right">122</td><td class="right">2463</td><td class="right">10016</td><td class="right">4997</td><td class="right">7557</td><td class="right">1719</td></tr>
205<tr><td class="left">chat msg</td><td class="right">295</td><td class="right">258</td><td class="right">2147</td><td class="right">9526</td><td class="right">5911</td><td class="right">8999</td><td class="right">1850</td></tr>
206<tr><td class="left">activity</td><td class="right">353</td><td class="right">279</td><td class="right">4666</td><td class="right">16327</td><td class="right">13357</td><td class="right">28858</td><td class="right">4356</td></tr>
207</tbody>
208</table>
209
210</div>
211
212<div class="slide">
213<h1>One Too Many</h1>
214<h2>Multicasting for Scalability</h2>
215<ul class="incremental">
216<li>social = one-to-many | many-to-many</li>
217<li>round robin distribution = slow (SMTP)</li>
218<li>HTTP is one-to-one, query/response</li>
219<li>IP Multicast fails (router table overflow)</li>
220<li>IRC and NNTP do/did multicast, but have other problems</li>
221<li>XMPP has a trust issue (says the XSF)</li>
222</ul>
223</div>
224
225<div class="slide">
226<h1>Flexibility</h1>
227<h2>Framework Architecture</h2>
228<ul class="incremental">
229<li>a truly private communications backend</li>
230<li>social applications to be built on top</li>
231<li>emulations of the 'open standards' possible</li>
232<li>OStatus, WebID, RDF, even the Twitter API</li>
233<li>optional modules for XMPP, IRC available</li>
234<li>Activity Streams</li>
235</ul>
236</div>
237
238<div class="slide">
239<h1>Dissemination</h1>
240<h2>Hard to beat Faceboogle</h2>
241<ul class="incremental">
242<li>since we need to go onto every computer anyway..</li>
243<li>offer something Faceboogle can't provide?</li>
244<li>exchanging files between friends sucks</li>
245<li>USB sticks, e-mail, file hosters, skype, MSN, DropBox (brrr!)</li>
246<li>WTF is 'Secure Share' ?</li>
247</ul>
248</div>
249
250<div class="slide">
251<h1>Desktop Integration</h1>
252<h2>'Secure Share' Function</h2>
253<ul class="incremental">
254<li>right mouse button click (context menu)</li>
255<li>share a file to a channel of subscribers</li>
256<li>appears in their file system soon</li>
257<li>realtime or delayed notification</li>
258<li>no permission dialogs</li>
259<li>shipped by default in your free OS?</li>
260</ul>
261</div>
262
263<div class="slide">
264<h1>Secure Share Feature Set</h1>
265<h2>Features of Prototype Edition</h2>
266<ul>
267<li>Messaging, Subscriptions, Status Update</li>
268<li>File Exchange, VPN, Software Distribution</li>
269</ul>
270<h2>Later Features</h2>
271<ul>
272<li>Group Communications, Social Network Features</li>
273<li>Media Support: Photo Albums, Videos, Music</li>
274<li>Extension API for Custom Social Apps</li>
275<li>Realtime Streaming</li>
276</ul>
277</div>
278
279<div class="slide">
280<img class="framed" src="img/phase0.jpeg" />
281</div>
282<div class="slide">
283<img class="framed" src="img/phase1.jpeg" />
284</div>
285<div class="slide">
286<img class="framed" src="img/phase2.jpeg" />
287</div>
288<div class="slide">
289<img class="framed" src="img/phase3.jpeg" />
290</div>
291
292<!--
293
294-->
295
296<div class="slide">
297<h1>Secure Share - the Team</h1>
298<h2>Who's involved?</h2>
299<ul>
300<li>Gabor Toth (secushare.org)</li>
301<li>Carlo von lynX (PSYC, secushare)</li>
302<!-- li>Mathias Baumann (PSYC)</li -->
303<li>Daniel Reusche (secushare, Unlike Us)</li>
304<li>duy (secushare)</li>
305<li>hellekin (lorea, FSF, GNU social)</li>
306</ul>
307<br/>
308with support from Wau Holland Foundation (CCC),
309TU M&uuml;nchen (GNUnet), Institute of Network Cultures
310(Unlike Us) and Mr Stallman (FSF*)
311</div>
312
313<div class="slide">
314<h1>If you like what we do</h1>
315<h2>We need support</h2>
316<img align="right" src="img/oXoXo-380.png" />
317<ul>
318<li>Manpower</li>
319<li>Alliances</li>
320<li>Finances</li>
321<li>Publicity</li>
322</ul>
323<br/>
324Check by: secushare.org<br/>
325Thank you.<br/>
326</div>
327
328<div class="slide">
329<h1>A bad idea whose time has come?</h1>
330<h2>End-to-end Encryption in the Browser!!1!11</h2>
331<br/>
332<ul class="incremental">
333<li>User interface comes from the server.
334<li>Web browser does what the server says.
335<li>Server corrupted? It can steal your data.
336<li>Only static install helps. Still:
337<li>Bad cryptography, bad script signing.
338<li>So you might aswell go for the real thing...
339</ul>
340</div>
341
342<div class="slide">
343<h1>One Too Many (XMPP)</h1>
344<h2>Multicasting with XMPP?</h2>
345<ul class="incremental">
346<li>70% of S2S XMPP messages is presence updates (5 years ago)</li>
347<li>XMPP has limited support for one-to-many communications</li>
348<li>XMPP can be improved, but: trust problem with multicast</li>
349</ul>
350</div>
351
352<div class="slide">
353<h1>One Too Many (HTTP)</h1>
354<h2>Multicasting with HTTP?</h2>
355<ul class="incremental">
356<li>fundamentally feasible</li>
357<li>unnatural: HTTP is not bidirectional</li>
358<li>requires trust in a federated architecture</li>
359</ul>
360</div>
361
362<div class="slide">
363<h1>Cross That Bridge As We Get There?</h1>
364<h2>Let's just get started with something!</h2>
365<ul class="incremental">
366<li>The Mediocre is the Enemy of the Good</li>
367<li>Historic Examples:</li>
368<li>HTTP.. HTTP/NG?, SPDY!?</li>
369<li>SMTP.. What? Faceboogle!?</li>
370<li>XML.. What? JSON!?</li>
371<!-- li>SQL..</li -->
372</ul>
373</div>
374
375</html>
diff --git a/secushare-old-html/2012-11-digiyards.slides.pht b/secushare-old-html/2012-11-digiyards.slides.pht
new file mode 100644
index 0000000..97fd221
--- /dev/null
+++ b/secushare-old-html/2012-11-digiyards.slides.pht
@@ -0,0 +1,450 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4#if 0
5
6TODO: don't show broken fonts
7
8TODO: political slide about Facebook owning and selling your
9 pictures and stuffs you upload!!?
10
11private usefulness added to 'later features'
12
13#endif
14
15<html xmlns="http://www.w3.org/1999/xhtml">
16<head>
17<title>Re-Invent the Internet with Secure Share</title>
18<meta name="presdate" content="20120201" />
19<!-- metadata -->
20<meta name="generator" content="S5" />
21<meta name="version" content="S5 1.1" />
22<meta name="author" content="Carlo v. Loesch" />
23<meta name="company" content="symlynX.com" />
24<!-- configuration parameters -->
25<meta name="defaultView" content="slideshow" />
26<meta name="controlVis" content="hidden" />
27<!-- style sheet links -->
28<link rel="stylesheet" href="UI/slides.css" type="text/css" media="projection" id="slideProj" />
29<link rel="stylesheet" href="UI/outline.css" type="text/css" media="screen" id="outlineStyle" />
30<link rel="stylesheet" href="UI/print.css" type="text/css" media="print" id="slidePrint" />
31<link rel="stylesheet" href="UI/opera.css" type="text/css" media="projection" id="operaFix" />
32<!-- S5 JS -->
33<script src="UI/slides.js" type="text/javascript"></script>
34</head>
35<body>
36
37<div class="layout">
38<div id="controls"><!-- DO NOT EDIT --></div>
39<div id="currentSlide"><!-- DO NOT EDIT --></div>
40<div id="header"></div>
41<div id="footer">
42&nbsp; secushare: A Framework for ReInventing the Internet
43</div>
44</div>
45
46<div id="between">&nbsp;</div>
47
48<!-- div id="logo"><img src="img/oXoXo-077.png" /></div -->
49
50<div class="presentation">
51
52<div class="slide">
53<img style="padding: 80px" src="img/secushare-0444.png" />
54</div>
55
56<div class="slide">
57<h1>ReInventing the Internet?</h1>
58<h2>Overview of the Talk</h2>
59<ul>
60# <li>Attack Vectors against Servers &amp; VMs</li>
61<li>Internet, you #fail!</li>
62<li>How Much Privacy Is Enough?</li>
63<li>Social Onion Routing</li>
64# <li>More Desired Features</li>
65<li>Architecture, Protocols</li>
66<li>How to Beat Faceboogle</li>
67<li>The 'Secure Share' App</li>
68</ul>
69</div>
70
71<div class="slide">
72<img class="framed" src="img/phase0.jpeg" />
73</div>
74
75<div class="slide">
76<h1>A New Net</h1>
77<h2>Hello Internet, You Fail!</h2>
78<ul class="incremental">
79<li>messaging? exchanging files?</li>
80<li>secrecy of correspondence (Briefgeheimnis)</li>
81<li>copyright &gt; basic civil rights?</li>
82<li>priorities?</li>
83<li>technologies?</li>
84<li>just let computers talk to each other??!?</li>
85</ul>
86</div>
87
88<div class="slide">
89<h1>A New Net</h1>
90<h2>NAT my ass!</h2>
91<ul class="incremental">
92<li>internet protocol address scarcity</li>
93<li>dynamic IP address = anonymity?</li>
94<li>service provider = position of power?</li>
95<li>upgrade to IPv6</li>
96<li>a way to find out the current address</li>
97</ul>
98</div>
99
100<div class="slide">
101<h1>A New Net</h1>
102<h2>ADSL my ass!</h2>
103<ul class="incremental">
104<li>Asymmetric Digital Subscriber Line</li>
105<li>1:3 (lite), 1:24</li>
106<li>technical reason: "crosstalk"</li>
107<li>marketing reason: consumer vs business</li>
108<li>no home servers.. ToS</li>
109<li>regulatory intervention?</li>
110</ul>
111</div>
112
113<div class="slide">
114<h1>A New Net</h1>
115<h2>peer-to-peer (P2P)</h2>
116<ul class="incremental">
117<li>P2P deals with it</li>
118<li>but without help from servers!</li>
119<li>censorship resistant!</li>
120<li>protect privacy</li>
121<li>end-to-end encryption</li>
122<li>free software</li>
123</ul>
124</div>
125
126#if 0
127<div class="slide">
128<img class="framed" src="img/phase1.jpeg" />
129</div>
130<div class="slide">
131<img class="framed" src="img/phase2.jpeg" />
132</div>
133<div class="slide">
134<img class="framed" src="img/phase3.jpeg" />
135</div>
136#endif
137
138<div class="slide">
139<h1>Privacy vs. Paranoia</h1>
140<h2>How Much Privacy Is Enough? 1/2</h2>
141<ul class="uncremental">
142<li>just to the intended recipients (e2e encryption)</li>
143<li>packet size padding (unobservability)</li>
144<li>flexible number of anonymization hops</li>
145<li>optional intentional delay</li>
146</ul>
147</div>
148
149<div class="slide">
150<h1>Privacy vs. Paranoia</h1>
151<h2>How Much Privacy Is Enough? 2/2</h2>
152<ul class="uncremental">
153<li>forward secrecy</li>
154<li>deniability (a log is no proof of nothing)</li>
155<li>private subscription lists (not on a server)</li>
156<li>robust and resilient against attacks</li>
157</ul>
158</div>
159
160<div class="slide">
161<h1>One Too Many</h1>
162<h2>Multicasting for Scalability</h2>
163<ul class="uncremental">
164<li>social = one-to-many | many-to-many</li>
165<li>70% of S2S XMPP messages is presence updates (5 years ago)</li>
166<li>round robin distribution = slow (SMTP, XMPP, OStatus)</li>
167<li>multicast = distribution trees</li>
168<!-- li>HTTP is one-to-one, query/response, not bidirectional</li>
169<li>IP Multicast fails (router table overflow)</li>
170<li>IRC and NNTP do/did multicast, but have other problems</li>
171<li>XMPP has a trust issue (says the XSF)</li -->
172<li>Bittorrent: from files to life streams?</li>
173</ul>
174</div>
175
176<div class="slide">
177<h1>It's A Question Of Trust</h1>
178<h2>Social Onion Routing</h2>
179<ul class="uncremental">
180<li>trust relationship between nodes</li>
181<li>multihop provides anonymization</li>
182<li>motivation to provide "servers" as fast routers</li>
183<li>my server is me, so you can trust my server</li>
184<li>"P2P" a lot faster over servers</li>
185<li>servers agnostically maintain messages (and data)</li>
186<!-- li>irony: role switch between servers and routers</li -->
187<li>embed multicast trees into the onion routing</li>
188</ul>
189</div>
190
191<div class="slide">
192<h1>Portability &amp; Acceptance</h1>
193<h2>Lightweight Daemon</h2>
194<ul class="uncremental">
195<li>personal devices and home routers</li>
196<li>lightweight for embedded and mobile</li>
197<li>lightweight for background daemon use</li>
198<li>compiled language</li>
199<li>more likely to get included in OS distros</li>
200</ul>
201</div>
202
203<div class="slide">
204<h1>Architecture</h1>
205<h2>Technology</h2>
206<ul class="uncremental">
207<li>"Enhanced" P2P with servers as agnostic routers</li>
208<li>GNUnet as a framework: privacy, VPN, meshnet</li>
209<li>TUM, learned from I2P, Freenet...</li>
210# <li>social graph discovery instead of DHT</li>
211<li>no file sharing, no big traffic</li>
212<li>PSYC on top</li>
213<!-- <li>Multicast distribution for scalability (later)</li> -->
214</ul>
215</div>
216
217<div class="slide">
218<h1>PSYC vs XML and JSON</h1>
219
220<ul class="uncremental">
221<li>extensible: semantically rich</li>
222<li>binary/encrypted data capable</li>
223<li>efficient as a binary format</li>
224<li>table shows parsing speed in milliseconds:</li>
225</ul>
226<p/>
227
228<table class="smaller" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
229<caption></caption>
230<colgroup><col class="left" /></colgroup>
231<colgroup><col class="right" /><col class="right" /></colgroup><colgroup><col class="right" /><col class="right" /></colgroup><colgroup><col class="right" /><col class="right" /><col class="right" /><col class="right" /></colgroup>
232<thead>
233<tr><th scope="col" class="left"></th><th scope="col" class="right">libpsyc<br/>regular</th><th scope="col" class="center">libpsyc<br/>compact</th><th scope="col" class="right">json-c</th><th scope="col" class="right">json-glib</th><th scope="col" class="right">libxml sax</th><th scope="col" class="right">libxml</th><th scope="col" class="right">rapidxml</th></tr>
234</thead>
235<tbody>
236<tr><td class="left">presence</td><td class="right">236</td><td class="right">122</td><td class="right">2463</td><td class="right">10016</td><td class="right">4997</td><td class="right">7557</td><td class="right">1719</td></tr>
237<tr><td class="left">chat msg</td><td class="right">295</td><td class="right">258</td><td class="right">2147</td><td class="right">9526</td><td class="right">5911</td><td class="right">8999</td><td class="right">1850</td></tr>
238<tr><td class="left">activity</td><td class="right">353</td><td class="right">279</td><td class="right">4666</td><td class="right">16327</td><td class="right">13357</td><td class="right">28858</td><td class="right">4356</td></tr>
239</tbody>
240</table>
241
242</div>
243
244## skipped: a truly private communications backend
245
246<div class="slide">
247<h1>Dissemination</h1>
248<h2>Hard to beat Faceboogle</h2>
249<ul class="incremental">
250<li>since we need to go onto every computer anyway..</li>
251<li>offer something Faceboogle can't provide?</li>
252<li>exchanging files between friends sucks</li>
253<li>USB sticks, e-mail, file hosters, skype, MSN, Dropbox (brrr!)</li>
254<li>So why is it called 'Secure Share' ?</li>
255</ul>
256</div>
257
258<div class="slide">
259<h1>Desktop Integration</h1>
260<h2>'Secure Share' Function</h2>
261<ul class="incremental">
262<li>right mouse button click (context menu)</li>
263<li>share a file to a channel of subscribers</li>
264<li>appears in their file system soon</li>
265<li>realtime or delayed notification</li>
266<li>no permission dialogs</li>
267<li>shipped with your free operating system?</li>
268</ul>
269</div>
270
271<div class="slide">
272<h1>Secure Share Feature Set</h1>
273<h2>1.0 Features</h2>
274<ul class="incremental">
275<li>messaging</li>
276<li>subscription channels</li>
277<li>status updates</li>
278<li>file exchange</li>
279<li>VPN (virtual private networking)</li>
280<li>software distribution</li>
281</ul>
282</div>
283
284<div class="slide">
285<h1>Secure Share Feature Set</h1>
286<h2>Later Features</h2>
287<ul>
288<li>Personal Use: Syncing Private Stuff</li>
289<li>Group Communications, Social Network Features</li>
290<li>Media Support: Photo Albums, Videos, Music</li>
291<li>Extension API for Custom Social Apps</li>
292<li>Realtime Streaming</li>
293</ul>
294</div>
295
296<div class="slide">
297<img class="framed" src="img/phase0.jpeg" />
298</div>
299<div class="slide">
300<img class="framed" src="img/phase1.jpeg" />
301</div>
302<div class="slide">
303<img class="framed" src="img/phase2.jpeg" />
304</div>
305<div class="slide">
306<img class="framed" src="img/phase3.jpeg" />
307</div>
308
309<div class="slide">
310<h1>Secure Share - the Team</h1>
311<h2>Who's involved?</h2>
312<ul>
313<li>Gabor Toth (secushare.org)</li>
314<li>Carlo von lynX (PSYC, secushare)</li>
315# <!-- li>Mathias Baumann (PSYC)</li -->
316<li>Daniel Reusche (secushare, Unlike Us)</li>
317<li>hellekin (lorea, FSF, GNU social)</li>
318</ul>
319<br/>
320with support from Wau Holland Foundation (CCC),
321TU M&uuml;nchen (GNUnet), Institute of Network Cultures
322(Unlike Us) and Mr Stallman (Free Software Foundations)
323</div>
324
325<div class="slide">
326<h1>If you like what we do</h1>
327<h2>We need support</h2>
328<img align="right" src="img/oXoXo-380.png" />
329<ul>
330<li>Manpower</li>
331<li>Alliances</li>
332<li>Finances</li>
333<li>Publicity</li>
334</ul>
335<br/>
336Check by: secushare.org<br/>
337Thank you.<br/>
338</div>
339
340<div class="slide">
341<img class="gfx" src="img/gfx-unicast.png" width="600" height="500"/>
342</div>
343<div class="slide">
344<img class="gfx" src="img/gfx-cloud.png" width="600" height="500"/>
345</div>
346<div class="slide">
347<img class="gfx" src="img/gfx-multicast.png" width="600" height="500"/>
348</div>
349
350<div class="slide">
351<h1>Don't Trust Servers</h1>
352<h2>Hardware Servers are vulnerable</h2>
353<ul class="uncremental">
354<li>client/server architecture: data resides on servers</li>
355<li>federation: data visible on even more servers</li>
356<li>memory access via bus sniffing</li>
357<li>no shutdown necessary</li>
358<li>automated memory image analysis proven</li>
359<li>eat-inside or take-away</li>
360</ul>
361</div>
362
363<div class="slide">
364<h1>Don't Trust Virtual Machines</h1>
365<!--h2>Commodity Servers are VMs</h2-->
366<ul class="uncremental">
367<li>my own server for 8 euros a month</li>
368<li>vulnerable cryptography</li>
369<li>memory can be monitored</li>
370<li>controlling system accessible by observers</li>
371<li>automated monitoring of federated social networks</li>
372<li>anti-terror legislation possible</li>
373<li>even if <em>your</em> box is at home</li>
374</ul>
375</div>
376
377<div class="slide">
378<h1>A bad idea whose time has come?</h1>
379<h2>End-to-end Encryption in the Browser!!1!11</h2>
380<br/>
381<ul class="uncremental">
382<li>User interface comes from the server.
383<li>Web browser does what the server says.
384<li>Server corrupted? It can steal your data.
385<li>Only static install helps. Still:
386<li>Bad cryptography, bad script signing.
387<li>So you might aswell go for the real thing...
388</ul>
389</div>
390
391<div class="slide">
392<h1>One Too Many (XMPP)</h1>
393<h2>Multicasting with XMPP?</h2>
394<ul class="uncremental">
395<li>70% of S2S XMPP messages is presence updates (5 years ago)</li>
396<li>XMPP has limited support for one-to-many communications</li>
397<li>XMPP can be improved, but: trust problem with multicast</li>
398</ul>
399</div>
400
401<div class="slide">
402<h1>One Too Many (HTTP)</h1>
403<h2>Multicasting with HTTP?</h2>
404<ul class="uncremental">
405<li>fundamentally feasible</li>
406<li>unnatural: HTTP is not bidirectional</li>
407<li>requires trust in a federated architecture</li>
408</ul>
409</div>
410
411<div class="slide">
412<h1>Cross That Bridge As We Get There?</h1>
413<h2>Let's just get started with something!</h2>
414<ul class="uncremental">
415<li>The Mediocre is the Enemy of the Good</li>
416<li>Historic Examples:</li>
417<li>HTTP.. HTTP/NG?, SPDY!?</li>
418<li>SMTP.. What? Faceboogle!?</li>
419<li>XML.. What? JSON!?</li>
420<!-- li>SQL..</li -->
421</ul>
422</div>
423
424<div class="slide">
425<h1>Flexibility</h1>
426<h2>Framework Architecture</h2>
427<ul class="uncremental">
428<li>a truly private communications backend</li>
429<li>social applications to be built on top</li>
430<li>emulations of the 'open standards' possible</li>
431<li>OStatus, WebID, RDF, even the Twitter API</li>
432<li>optional modules for XMPP, IRC available</li>
433<li>Activity Streams</li>
434</ul>
435</div>
436
437<div class="slide">
438<h1>About carlo von lynX</h1>
439<h2>Why am I talking here?</h2>
440<ul class="uncremental">
441<li>20 years of messaging &amp; chat protocol design</li>
442<li>/me etc.</li>
443<li>PSYC: federated &amp; multicasting</li>
444<li>then Jabber came</li>
445<li>PSYC good for business, open source delayed</li>
446<li>back then, servers were reliable</li>
447</ul>
448</div>
449
450</html>
diff --git a/secushare-old-html/2012-Easterhegg.slides.html b/secushare-old-html/2012-Easterhegg.slides.html
new file mode 100644
index 0000000..b901e29
--- /dev/null
+++ b/secushare-old-html/2012-Easterhegg.slides.html
@@ -0,0 +1,169 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4<html xmlns="http://www.w3.org/1999/xhtml">
5<head>
6<title>Re-Invent the Internet with Secure Share</title>
7<meta name="presdate" content="20120201" />
8<!-- metadata -->
9<meta name="generator" content="S5" />
10<meta name="version" content="S5 1.1" />
11<meta name="author" content="Carlo v. Loesch" />
12<meta name="company" content="symlynX.com" />
13<!-- configuration parameters -->
14<meta name="defaultView" content="slideshow" />
15<meta name="controlVis" content="hidden" />
16<!-- style sheet links -->
17<link rel="stylesheet" href="UI/slides.css" type="text/css" media="projection" id="slideProj" />
18<link rel="stylesheet" href="UI/outline.css" type="text/css" media="screen" id="outlineStyle" />
19<link rel="stylesheet" href="UI/print.css" type="text/css" media="print" id="slidePrint" />
20<link rel="stylesheet" href="UI/opera.css" type="text/css" media="projection" id="operaFix" />
21<!-- S5 JS -->
22<script src="UI/slides.js" type="text/javascript"></script>
23</head>
24<body>
25
26<div class="layout">
27<div id="controls"><!-- DO NOT EDIT --></div>
28<div id="currentSlide"><!-- DO NOT EDIT --></div>
29<div id="header"></div>
30<div id="footer">
31&nbsp; secushare: A Framework for ReInventing the Internet
32</div>
33</div>
34
35<div id="between">&nbsp;</div>
36
37<div class="presentation">
38
39<div class="slide">
40<img style="padding: 80px" src="img/secushare-0444.png" />
41</div>
42
43<div class="slide">
44<img class="gfx" src="img/gfx-unicast.png" width="600" height="500"/>
45</div>
46<div class="slide">
47<img class="gfx" src="img/gfx-cloud.png" width="600" height="500"/>
48</div>
49<div class="slide">
50<img class="gfx" src="img/gfx-multicast.png" width="600" height="500"/>
51</div>
52
53<div class="slide">
54<h1>One Too Many</h1>
55<h2>Multicasting for Scalability</h2>
56<ul class="uncremental">
57<li>social = one-to-many | many-to-many</li>
58<li>70% of S2S XMPP messages is presence updates (5 years ago)</li>
59<li>round robin distribution = slow (SMTP, XMPP, OStatus)</li>
60<li>multicast = distribution trees</li>
61<!-- li>HTTP is one-to-one, query/response, not bidirectional</li>
62<li>XMPP has a trust issue (says the XSF)</li -->
63<li>Bittorrent: from files to life streams?</li>
64</ul>
65</div>
66
67<div class="slide">
68<h1>Don't Trust Servers</h1>
69<h2>Servers are vulnerable</h2>
70<ul class="uncremental">
71<li>client/server architecture: data resides on servers</li>
72<li>federation: data visible on even more servers</li>
73<li>memory access via bus sniffing</li>
74<li>no shutdown necessary</li>
75<li>automated memory image analysis proven</li>
76</ul>
77</div>
78
79<div class="slide">
80<h1>Don't Trust Virtual Machines</h1>
81<!--h2>Commodity Servers are VMs</h2-->
82<ul class="uncremental">
83<li>my own server for 8 euros a month</li>
84<li>vulnerable cryptography</li>
85<li>memory can be monitored</li>
86<li>controlling system accessible by observers</li>
87<li>automated monitoring of federated social networks</li>
88<li>anti-terror legislation possible</li>
89<li>even if <em>your</em> box is at home</li>
90</ul>
91</div>
92
93<div class="slide">
94<h1>Technologies</h1>
95<ul class="uncremental">
96<li>GNUnet as a framework: routing and crypto</li>
97<li>TUM, learned from I2P, Freenet...</li>
98<li>"Enhanced" P2P with servers as agnostic routers</li>
99<li>PSYC on top for trust relations and</li>
100<li>friend discovery over social graph instead of DHT</li>
101<li>no file sharing, no big traffic</li>
102</ul>
103
104<div class="slide">
105<h1>Privacy vs. Paranoia</h1>
106<ul class="uncremental">
107<li>just to the intended recipients (e2e encryption)</li>
108<li>packet size padding (unobservability)</li>
109<li>flexible number of anonymization hops</li>
110<li>optional intentional delay</li>
111<li>forward secrecy</li>
112<li>deniability (a log is no proof of nothing)</li>
113<li>private subscription lists (not on a server)</li>
114</ul>
115</div>
116
117<div class="slide">
118<h1>It's A Question Of Trust</h1>
119<h2>Social Onion Routing</h2>
120<ul class="uncremental">
121<li>trust relationship between nodes</li>
122<li>multihop provides anonymization</li>
123<li>motivation to provide "servers" as fast routers</li>
124<li>my server is me, so you can trust my server</li>
125<li>"P2P" a lot faster over servers</li>
126<li>servers agnostically maintain messages (and data)</li>
127<li>embed multicast trees into the onion routing</li>
128</ul>
129</div>
130
131<div class="slide">
132<h1>Dissemination</h1>
133<h2>Hard to beat Faceboogle</h2>
134<ul class="uncremental">
135<li>since we need to go onto every computer anyway..</li>
136<li>offer something Faceboogle can't provide?</li>
137<li>exchanging files between friends sucks</li>
138<li>USB sticks, e-mail, file hosters, skype, MSN, DropBox (brrr!)</li>
139<li>WTF is 'Secure Share' ?</li>
140</ul>
141</div>
142
143<div class="slide">
144<h1>A bad idea whose time has come?</h1>
145<h2>End-to-end Encryption in the Browser!!1!11</h2>
146<ul class="uncremental">
147<li>User interface comes from the server.
148<li>Web browser does what the server says.
149<li>Server corrupted? It can steal your data.
150<li>Only static install helps. Still:
151<li>Bad cryptography, bad script signing.
152<li>So you might aswell go for the real thing...
153</ul>
154</div>
155
156<div class="slide">
157<h1>Secure Share</h1>
158<h2>Who's involved?</h2>
159<ul>
160<li>Carlo v. Lynx</li>
161<li>Gabor Toth</li>
162<li>Mathias Baumann</li>
163<li>Daniel Reusche</li>
164<li>secushare.org</li>
165</ul>
166</div>
167
168
169</html>
diff --git a/secushare-old-html/2012-UnlikeUs.slides.html b/secushare-old-html/2012-UnlikeUs.slides.html
new file mode 100644
index 0000000..de7b6d5
--- /dev/null
+++ b/secushare-old-html/2012-UnlikeUs.slides.html
@@ -0,0 +1,147 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4<!-- don't delete this file.. it is not generated by anything else! -->
5
6<html xmlns="http://www.w3.org/1999/xhtml">
7<head>
8<title>Re-Invent the Internet with Secure Share</title>
9<meta name="presdate" content="20120201" />
10<!-- metadata -->
11<meta name="generator" content="S5" />
12<meta name="version" content="S5 1.1" />
13<meta name="author" content="Carlo v. Loesch" />
14<meta name="company" content="symlynX.com" />
15<!-- configuration parameters -->
16<meta name="defaultView" content="slideshow" />
17<meta name="controlVis" content="hidden" />
18<!-- style sheet links -->
19<link rel="stylesheet" href="UI/slides.css" type="text/css" media="projection" id="slideProj" />
20<link rel="stylesheet" href="UI/outline.css" type="text/css" media="screen" id="outlineStyle" />
21<link rel="stylesheet" href="UI/print.css" type="text/css" media="print" id="slidePrint" />
22<link rel="stylesheet" href="UI/opera.css" type="text/css" media="projection" id="operaFix" />
23<!-- S5 JS -->
24<script src="UI/slides.js" type="text/javascript"></script>
25</head>
26<body>
27
28<div class="layout">
29<div id="controls"><!-- DO NOT EDIT --></div>
30<div id="currentSlide"><!-- DO NOT EDIT --></div>
31<div id="header"></div>
32<div id="footer">
33&nbsp; secushare: A Framework for ReInventing the Internet
34</div>
35</div>
36
37<div id="between">&nbsp;</div>
38
39<div class="presentation">
40
41<div class="slide">
42<img style="padding: 80px" src="img/secushare-0444.png" />
43</div>
44
45<div class="slide">
46<img class="gfx" src="img/gfx-unicast.png" width="600" height="500"/>
47</div>
48<div class="slide">
49<img class="gfx" src="img/gfx-cloud.png" width="600" height="500"/>
50</div>
51<div class="slide">
52<img class="gfx" src="img/gfx-multicast.png" width="600" height="500"/>
53</div>
54
55<div class="slide">
56<h1>One Too Many</h1>
57<h2>Multicasting for Scalability</h2>
58<ul class="uncremental">
59<li>social = one-to-many | many-to-many</li>
60<li>70% of S2S XMPP messages is presence updates (5 years ago)</li>
61<li>round robin distribution = slow (SMTP, XMPP, OStatus)</li>
62<li>multicast = distribution trees</li>
63<!-- li>HTTP is one-to-one, query/response, not bidirectional</li>
64<li>XMPP has a trust issue (says the XSF)</li -->
65<li>Bittorrent: from files to life streams?</li>
66</ul>
67</div>
68
69<div class="slide">
70<h1>Don't Trust Servers</h1>
71<h2>Servers are vulnerable</h2>
72<ul class="uncremental">
73<li>client/server architecture: data resides on servers</li>
74<li>federation: data visible on even more servers</li>
75<li>memory access via bus sniffing</li>
76<li>no shutdown necessary</li>
77<li>automated memory image analysis proven</li>
78</ul>
79</div>
80
81<div class="slide">
82<h1>Don't Trust Virtual Machines</h1>
83<!--h2>Commodity Servers are VMs</h2-->
84<ul class="uncremental">
85<li>my own server for 8 euros a month</li>
86<li>vulnerable cryptography</li>
87<li>memory can be monitored</li>
88<li>controlling system accessible by observers</li>
89<li>automated monitoring of federated social networks</li>
90<li>anti-terror legislation possible</li>
91<li>even if <em>your</em> box is at home</li>
92</ul>
93</div>
94
95<div class="slide">
96<h1>Privacy vs. Paranoia</h1>
97<ul class="uncremental">
98<li>just to the intended recipients (e2e encryption)</li>
99<li>packet size padding (unobservability)</li>
100<li>flexible number of anonymization hops</li>
101<li>optional intentional delay</li>
102<li>forward secrecy</li>
103<li>deniability (a log is no proof of nothing)</li>
104<li>private subscription lists (not on a server)</li>
105</ul>
106</div>
107
108<div class="slide">
109<h1>It's A Question Of Trust</h1>
110<h2>Social Onion Routing</h2>
111<ul class="uncremental">
112<li>trust relationship between nodes</li>
113<li>multihop provides anonymization</li>
114<li>motivation to provide "servers" as fast routers</li>
115<li>my server is me, so you can trust my server</li>
116<li>"P2P" a lot faster over servers</li>
117<li>servers agnostically maintain messages (and data)</li>
118<li>embed multicast trees into the onion routing</li>
119</ul>
120</div>
121
122<div class="slide">
123<h1>A bad idea whose time has come?</h1>
124<h2>End-to-end Encryption in the Browser!!1!11</h2>
125<ul class="uncremental">
126<li>User interface comes from the server.
127<li>Web browser does what the server says.
128<li>Server corrupted? It can steal your data.
129<li>Only static install helps. Still:
130<li>Bad cryptography, bad script signing.
131<li>So you might aswell go for the real thing...
132</ul>
133</div>
134
135<div class="slide">
136<h1>Cross That Bridge As We Get There?</h1>
137<h2>Let's just get started with the low hanging fruit!</h2>
138<ul class="uncremental">
139<li>The Mediocre is the Enemy of the Good</li>
140<li>Historic Examples:</li>
141<li>HTTP.. AJAX, XMLSocket, HTTP/NG?, SPDY!?</li>
142<li>SMTP.. What? Faceboogle!?</li>
143<li>XML.. What? JSON!?</li>
144</ul>
145</div>
146
147</html>
diff --git a/secushare-old-html/UI/.thumbnails/greensquares.jpg.png b/secushare-old-html/UI/.thumbnails/greensquares.jpg.png
new file mode 100644
index 0000000..815fc04
--- /dev/null
+++ b/secushare-old-html/UI/.thumbnails/greensquares.jpg.png
Binary files differ
diff --git a/secushare-old-html/UI/.thumbnails/squares.jpg.png b/secushare-old-html/UI/.thumbnails/squares.jpg.png
new file mode 100644
index 0000000..78b4383
--- /dev/null
+++ b/secushare-old-html/UI/.thumbnails/squares.jpg.png
Binary files differ
diff --git a/secushare-old-html/UI/blank.gif b/secushare-old-html/UI/blank.gif
new file mode 100644
index 0000000..75b945d
--- /dev/null
+++ b/secushare-old-html/UI/blank.gif
Binary files differ
diff --git a/secushare-old-html/UI/dark/pretty.css b/secushare-old-html/UI/dark/pretty.css
new file mode 100644
index 0000000..34b4192
--- /dev/null
+++ b/secushare-old-html/UI/dark/pretty.css
@@ -0,0 +1,117 @@
1/* psyced! */
2
3body {
4 background: #000 url(stars_bg.jpg) 0% 0 no-repeat; color: #bbb;
5 font-size: 2em; font-family: Ubuntu, DejaVu Sans, Verdana, Helvetica;
6 /* font-family: Sawasdee; font-weight: bold; */
7}
8:link, :visited {text-decoration: none; color: #f80;}
9#controls :active {color: #88A !important;}
10#controls :focus {outline: 1px dotted #227;}
11h1, h2, h3, h4 { font-size: 100%; margin: 0; padding: 0; font-weight: inherit;}
12ul, pre {margin: 0; line-height: 1em;}
13html, body {margin: 0; padding: 0;}
14
15blockquote, q {font-style: italic;}
16blockquote {padding: 0 2em 0.5em; margin: 0 1.5em 0.5em; text-align: center; font-size: 1em;}
17blockquote p {margin: 0;}
18blockquote i {font-style: normal;}
19blockquote b {display: block; margin-top: 0.5em; font-weight: normal; font-size: smaller; font-style: normal;}
20blockquote b i {font-style: italic;}
21
22kbd {font-weight: bold; font-size: 1em;}
23sup {font-size: smaller; line-height: 1px;}
24
25.slide code {padding: 2px 0.25em; font-weight: bold; color: #533;}
26.slide code.bad, code del {color: red;}
27.slide code.old {color: silver;}
28.slide pre {padding: .5em; margin: 1.3em;
29 color: #3f3; background: #000; font-size: 70%;}
30.slide pre code {display: block;}
31.slide ul {margin-left: 5%; margin-right: 7%; list-style: disc;}
32.slide li {margin-top: 0.75em; margin-right: 0;}
33.slide ul ul {line-height: 1;}
34.slide ul ul li {margin: .2em; font-size: 85%; list-style: square;}
35.slide img.leader {display: block; margin: 0 auto;}
36#micro { font-size: 44%; }
37
38div#header, div#footer {
39 background: #000 /* url(bobot.png) repeat-x */; color: #bbb;
40}
41div#header {
42 background: #000 /* url(botop.png) 100% repeat-x */;
43 line-height: 1px;
44}
45div#footer {font-size: 0.5em; font-weight: bold;
46 padding: 0 10px; text-transform: uppercase}
47#footer h1, #footer h2 {display: block; padding: 0 1em;}
48#footer h2 {font-style: italic;}
49
50div.long {font-size: 0.75em;}
51h1 abbr {font-variant: small-caps;}
52
53.slide h1 {position: absolute; top: 0; left: 0; z-index: 1;
54 margin: 0; padding: 10px 0 0 10px; white-space: nowrap;
55 font-family: Impact, Ubuntu, DejaVu Sans, Verdana, Helvetica, sans-serif;
56 font-weight: normal; text-transform: uppercase; color: #eee; }
57.slide h2 { color: #3f3; }
58.slide h3 { color: #fff; font-size: 130%;}
59.slide h4 { color: #3f3; font-size: 80%; }
60small { color: #f34; }
61
62#slide0 {padding-top: 3.5em; font-size: 90%;}
63#slide0 h1 {position: static; margin: 1em 0 0; padding: 0;
64 font: bold 1.5em serif; white-space: normal;
65 text-transform: none; color: #999; background: transparent;}
66#slide0 h2 {font: bold italic 1em; margin: 0.25em;}
67#slide0 h3 {margin-top: 1.5em; font-size: 1.2em;}
68#slide0 h4 {margin-top: 0; font-size: 1em;}
69
70div#controls {position: absolute; left: 50%; bottom: 0;
71 width: 50%;
72 text-align: right; font: bold 0.9em;}
73html>body div#controls {position: fixed; padding: 0 0 1em 0;
74 top: auto;}
75div#controls form {position: absolute; bottom: 0; right: 0; width: 100%;
76 margin: 0; padding: 0;}
77#controls #navLinks a {padding: 0; margin: 0 0.5em;
78 border: none; color: #3f3; cursor: pointer;}
79#controls #navList {height: 1em;}
80#controls #navList #jumplist {position: absolute; bottom: 0; right: 0; background: #000; color: #3f3;}
81
82#currentSlide { text-align: center; font-size: 0.5em;
83 background: #333; color: #fff;}
84
85ul.urls {list-style: none; display: inline; margin: 0;}
86.urls li {display: inline; margin: 0;}
87.note {display: none;}
88.external {border-bottom: 1px dotted gray;}
89html>body .external {border-bottom: none;}
90.external:after {content: " \274F"; font-size: smaller; color: #77B;}
91
92.incremental, .incremental *, .incremental *:after {color: #222; visibility: visible;}
93img.incremental {visibility: hidden;}
94.slide .current {color: #fff;}
95
96
97/* diagnostics
98li:after {content: " [" attr(class) "]"; color: #F88;}
99
100.slide { opacity: 0.8; }
101 */
102
103.smaller {font-size: 70%; line-height: .9em; color: #f34; }
104
105#logo { position: absolute; right: 10px; bottom: 40px; z-index: 7; }
106
107
108#between { background-color: black; position: absolute; opacity: 0.4;
109 width: 100%; height: 100%; z-index: 2; }
110
111.framed { opacity: 0.6; border: 3px solid black; }
112.indented { margin-left: 100px; border: 3px solid black; }
113.gfx { opacity: 0.8; border: 3px solid black; padding: 20px;
114 background-color: #9cf; margin-left: 40px; }
115
116.left { text-align: left; }
117.right { text-align: right; }
diff --git a/secushare-old-html/UI/darken.png b/secushare-old-html/UI/darken.png
new file mode 100644
index 0000000..7a5fb18
--- /dev/null
+++ b/secushare-old-html/UI/darken.png
Binary files differ
diff --git a/secushare-old-html/UI/framing.css b/secushare-old-html/UI/framing.css
new file mode 100644
index 0000000..917976f
--- /dev/null
+++ b/secushare-old-html/UI/framing.css
@@ -0,0 +1,23 @@
1/* The following styles size, place, and layer the slide components.
2 Edit these if you want to change the overall slide layout.
3 The commented lines can be uncommented (and modified, if necessary)
4 to help you with the rearrangement process. */
5
6/* target = 1024x768 */
7
8div#header, div#footer, .slide {width: 100%; top: 0; left: 0;}
9div#header {top: 0; height: 50px; z-index: 1;}
10div#footer {top: auto; bottom: 0; height: 50; z-index: 5;}
11.slide {top: 0; width: 80%; padding: 3.5em 4% 4%; z-index: 2; list-style: none;}
12div#controls {left: 50%; bottom: 0; width: 50%; z-index: 100;}
13div#controls form {position: absolute; bottom: 0; right: 0; width: 100%;
14 margin: 0;}
15#currentSlide {position: absolute; width: 12%; right: 0; bottom: 0; z-index: 10;}
16html>body #currentSlide {position: fixed;}
17
18/*
19div#header {background: #FCC;}
20div#footer {background: #CCF;}
21div#controls {background: #BBD;}
22div#currentSlide {background: #FFC;}
23*/
diff --git a/secushare-old-html/UI/greensquares.jpg b/secushare-old-html/UI/greensquares.jpg
new file mode 100644
index 0000000..b6ef139
--- /dev/null
+++ b/secushare-old-html/UI/greensquares.jpg
Binary files differ
diff --git a/secushare-old-html/UI/iepngfix.htc b/secushare-old-html/UI/iepngfix.htc
new file mode 100644
index 0000000..0d17262
--- /dev/null
+++ b/secushare-old-html/UI/iepngfix.htc
@@ -0,0 +1,42 @@
1<public:component>
2<public:attach event="onpropertychange" onevent="doFix()" />
3
4<script>
5
6// IE5.5+ PNG Alpha Fix v1.0 by Angus Turnbull http://www.twinhelix.com
7// Free usage permitted as long as this notice remains intact.
8
9// This must be a path to a blank image. That's all the configuration you need here.
10var blankImg = 'blank.gif';
11
12var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
13
14function filt(s, m) {
15 if (filters[f]) {
16 filters[f].enabled = s ? true : false;
17 if (s) with (filters[f]) { src = s; sizingMethod = m }
18 } else if (s) style.filter = 'progid:'+f+'(src="'+s+'",sizingMethod="'+m+'")';
19}
20
21function doFix() {
22 if ((parseFloat(navigator.userAgent.match(/MSIE (\S+)/)[1]) < 5.5) ||
23 (event && !/(background|src)/.test(event.propertyName))) return;
24
25 if (tagName == 'IMG') {
26 if ((/\.png$/i).test(src)) {
27 filt(src, 'image'); // was 'scale'
28 src = blankImg;
29 } else if (src.indexOf(blankImg) < 0) filt();
30 } else if (style.backgroundImage) {
31 if (style.backgroundImage.match(/^url[("']+(.*\.png)[)"']+$/i)) {
32 var s = RegExp.$1;
33 style.backgroundImage = '';
34 filt(s, 'crop');
35 } else filt();
36 }
37}
38
39doFix();
40
41</script>
42</public:component>
diff --git a/secushare-old-html/UI/lite/pretty.css b/secushare-old-html/UI/lite/pretty.css
new file mode 100644
index 0000000..580bdcf
--- /dev/null
+++ b/secushare-old-html/UI/lite/pretty.css
@@ -0,0 +1,114 @@
1/* psyced! */
2
3body { background: #789; /* url(stars_bg.jpg) 0% 0 no-repeat; */ color: #000;
4 font-size: 2em; font-family: Ubuntu, DejaVu Sans, Verdana, Helvetica; font-weight: bold; }
5:link, :visited {text-decoration: none; color: #f80;}
6#controls :active {color: #88A !important;}
7#controls :focus {outline: 1px dotted #227;}
8h1, h2, h3, h4 { font-size: 100%; margin: 0; padding: 0; font-weight: inherit;}
9ul, pre {margin: 0; line-height: 1em;}
10html, body {margin: 0; padding: 0;}
11
12blockquote, q {font-style: italic;}
13blockquote {padding: 0 2em 0.5em; margin: 0 1.5em 0.5em; text-align: center; font-size: 1em;}
14blockquote p {margin: 0;}
15blockquote i {font-style: normal;}
16blockquote b {display: block; margin-top: 0.5em; font-weight: normal; font-size: smaller; font-style: normal;}
17blockquote b i {font-style: italic;}
18
19kbd {font-weight: bold; font-size: 1em;}
20sup {font-size: smaller; line-height: 1px;}
21
22.slide code {padding: 2px 0.25em; font-weight: bold; color: #533;}
23.slide code.bad, code del {color: red;}
24.slide code.old {color: silver;}
25.slide pre {padding: .5em; margin: 1.3em;
26 color: #3f3; background: #000; font-size: 70%;}
27.slide pre code {display: block;}
28.slide ul {margin-left: 5%; margin-right: 7%; list-style: disc;}
29.slide li {margin-top: 0.75em; margin-right: 0;}
30.slide ul ul {line-height: 1;}
31.slide ul ul li {margin: .2em; font-size: 85%; list-style: square;}
32.slide img.leader {display: block; margin: 0 auto;}
33#micro { font-size: 44%; }
34
35div#header, div#footer {
36 background: #000 /* url(bobot.png) repeat-x */; color: #bbb;
37}
38div#header {
39 background: #000 /* url(botop.png) 100% repeat-x */;
40 line-height: 1px;
41}
42div#footer {font-size: 0.5em; font-weight: bold;
43 padding: 0 10px; text-transform: uppercase}
44#footer h1, #footer h2 {display: block; padding: 0 1em;}
45#footer h2 {font-style: italic;}
46
47div.long {font-size: 0.75em;}
48h1 abbr {font-variant: small-caps;}
49
50.slide h1 {position: absolute; top: 0; left: 0; z-index: 1;
51 margin: 0; padding: 10px 0 0 10px; white-space: nowrap;
52 font-family: Impact, Ubuntu, DejaVu Sans, Verdana, Helvetica, sans-serif;
53 font-weight: normal; text-transform: uppercase; color: #eee; }
54.slide h2 { color: #3f3; }
55.slide h3 { color: #fff; font-size: 130%;}
56.slide h4 { color: #3f3; font-size: 80%; }
57small { color: #f34; }
58
59#slide0 {padding-top: 3.5em; font-size: 90%;}
60#slide0 h1 {position: static; margin: 1em 0 0; padding: 0;
61 font: bold 1.5em serif; white-space: normal;
62 text-transform: none; color: #999; background: transparent;}
63#slide0 h2 {font: bold italic 1em; margin: 0.25em;}
64#slide0 h3 {margin-top: 1.5em; font-size: 1.2em;}
65#slide0 h4 {margin-top: 0; font-size: 1em;}
66
67div#controls {position: absolute; left: 50%; bottom: 0;
68 width: 50%;
69 text-align: right; font: bold 0.9em;}
70html>body div#controls {position: fixed; padding: 0 0 1em 0;
71 top: auto;}
72div#controls form {position: absolute; bottom: 0; right: 0; width: 100%;
73 margin: 0; padding: 0;}
74#controls #navLinks a {padding: 0; margin: 0 0.5em;
75 border: none; color: #3f3; cursor: pointer;}
76#controls #navList {height: 1em;}
77#controls #navList #jumplist {position: absolute; bottom: 0; right: 0; background: #000; color: #3f3;}
78
79#currentSlide { text-align: center; font-size: 0.5em;
80 background: #333; color: #fff;}
81
82ul.urls {list-style: none; display: inline; margin: 0;}
83.urls li {display: inline; margin: 0;}
84.note {display: none;}
85.external {border-bottom: 1px dotted gray;}
86html>body .external {border-bottom: none;}
87.external:after {content: " \274F"; font-size: smaller; color: #77B;}
88
89.incremental, .incremental *, .incremental *:after {color: #222; visibility: visible;}
90img.incremental {visibility: hidden;}
91.slide .current {color: #fff;}
92
93
94/* diagnostics
95li:after {content: " [" attr(class) "]"; color: #F88;}
96
97.slide { opacity: 0.8; }
98 */
99
100.smaller {font-size: 70%; line-height: .9em; color: #ff0; }
101
102#logo { position: absolute; right: 10px; bottom: 40px; z-index: 7; }
103
104
105#between { background-color: black; position: absolute; opacity: 0.4;
106 width: 100%; height: 100%; z-index: 2; }
107
108.framed { border: 3px solid black; }
109.indented { margin-left: 100px; border: 3px solid black; }
110.gfx { opacity: 0.8; border: 3px solid black; padding: 20px;
111 background-color: #9cf; margin-left: 40px; }
112
113.left { text-align: left; }
114.right { text-align: right; }
diff --git a/secushare-old-html/UI/opera.css b/secushare-old-html/UI/opera.css
new file mode 100644
index 0000000..9e9d2a3
--- /dev/null
+++ b/secushare-old-html/UI/opera.css
@@ -0,0 +1,7 @@
1/* DO NOT CHANGE THESE unless you really want to break Opera Show */
2.slide {
3 visibility: visible !important;
4 position: static !important;
5 page-break-before: always;
6}
7#slide0 {page-break-before: avoid;}
diff --git a/secushare-old-html/UI/outline.css b/secushare-old-html/UI/outline.css
new file mode 100644
index 0000000..62db519
--- /dev/null
+++ b/secushare-old-html/UI/outline.css
@@ -0,0 +1,15 @@
1/* don't change this unless you want the layout stuff to show up in the outline view! */
2
3.layout div, #footer *, #controlForm * {display: none;}
4#footer, #controls, #controlForm, #navLinks, #toggle {
5 display: block; visibility: visible; margin: 0; padding: 0;}
6#toggle {float: right; padding: 0.5em;}
7html>body #toggle {position: fixed; top: 0; right: 0;}
8
9/* making the outline look pretty-ish */
10
11#slide0 h1, #slide0 h2, #slide0 h3, #slide0 h4 {border: none; margin: 0;}
12#slide0 h1 {padding-top: 1.5em;}
13.slide h1 {margin: 1.5em 0 0; padding-top: 0.25em;
14 border-top: 1px solid #888; border-bottom: 1px solid #AAA;}
15#toggle {border: 1px solid; border-width: 0 0 1px 1px; background: #FFF;}
diff --git a/secushare-old-html/UI/pretty.css b/secushare-old-html/UI/pretty.css
new file mode 100644
index 0000000..34b4192
--- /dev/null
+++ b/secushare-old-html/UI/pretty.css
@@ -0,0 +1,117 @@
1/* psyced! */
2
3body {
4 background: #000 url(stars_bg.jpg) 0% 0 no-repeat; color: #bbb;
5 font-size: 2em; font-family: Ubuntu, DejaVu Sans, Verdana, Helvetica;
6 /* font-family: Sawasdee; font-weight: bold; */
7}
8:link, :visited {text-decoration: none; color: #f80;}
9#controls :active {color: #88A !important;}
10#controls :focus {outline: 1px dotted #227;}
11h1, h2, h3, h4 { font-size: 100%; margin: 0; padding: 0; font-weight: inherit;}
12ul, pre {margin: 0; line-height: 1em;}
13html, body {margin: 0; padding: 0;}
14
15blockquote, q {font-style: italic;}
16blockquote {padding: 0 2em 0.5em; margin: 0 1.5em 0.5em; text-align: center; font-size: 1em;}
17blockquote p {margin: 0;}
18blockquote i {font-style: normal;}
19blockquote b {display: block; margin-top: 0.5em; font-weight: normal; font-size: smaller; font-style: normal;}
20blockquote b i {font-style: italic;}
21
22kbd {font-weight: bold; font-size: 1em;}
23sup {font-size: smaller; line-height: 1px;}
24
25.slide code {padding: 2px 0.25em; font-weight: bold; color: #533;}
26.slide code.bad, code del {color: red;}
27.slide code.old {color: silver;}
28.slide pre {padding: .5em; margin: 1.3em;
29 color: #3f3; background: #000; font-size: 70%;}
30.slide pre code {display: block;}
31.slide ul {margin-left: 5%; margin-right: 7%; list-style: disc;}
32.slide li {margin-top: 0.75em; margin-right: 0;}
33.slide ul ul {line-height: 1;}
34.slide ul ul li {margin: .2em; font-size: 85%; list-style: square;}
35.slide img.leader {display: block; margin: 0 auto;}
36#micro { font-size: 44%; }
37
38div#header, div#footer {
39 background: #000 /* url(bobot.png) repeat-x */; color: #bbb;
40}
41div#header {
42 background: #000 /* url(botop.png) 100% repeat-x */;
43 line-height: 1px;
44}
45div#footer {font-size: 0.5em; font-weight: bold;
46 padding: 0 10px; text-transform: uppercase}
47#footer h1, #footer h2 {display: block; padding: 0 1em;}
48#footer h2 {font-style: italic;}
49
50div.long {font-size: 0.75em;}
51h1 abbr {font-variant: small-caps;}
52
53.slide h1 {position: absolute; top: 0; left: 0; z-index: 1;
54 margin: 0; padding: 10px 0 0 10px; white-space: nowrap;
55 font-family: Impact, Ubuntu, DejaVu Sans, Verdana, Helvetica, sans-serif;
56 font-weight: normal; text-transform: uppercase; color: #eee; }
57.slide h2 { color: #3f3; }
58.slide h3 { color: #fff; font-size: 130%;}
59.slide h4 { color: #3f3; font-size: 80%; }
60small { color: #f34; }
61
62#slide0 {padding-top: 3.5em; font-size: 90%;}
63#slide0 h1 {position: static; margin: 1em 0 0; padding: 0;
64 font: bold 1.5em serif; white-space: normal;
65 text-transform: none; color: #999; background: transparent;}
66#slide0 h2 {font: bold italic 1em; margin: 0.25em;}
67#slide0 h3 {margin-top: 1.5em; font-size: 1.2em;}
68#slide0 h4 {margin-top: 0; font-size: 1em;}
69
70div#controls {position: absolute; left: 50%; bottom: 0;
71 width: 50%;
72 text-align: right; font: bold 0.9em;}
73html>body div#controls {position: fixed; padding: 0 0 1em 0;
74 top: auto;}
75div#controls form {position: absolute; bottom: 0; right: 0; width: 100%;
76 margin: 0; padding: 0;}
77#controls #navLinks a {padding: 0; margin: 0 0.5em;
78 border: none; color: #3f3; cursor: pointer;}
79#controls #navList {height: 1em;}
80#controls #navList #jumplist {position: absolute; bottom: 0; right: 0; background: #000; color: #3f3;}
81
82#currentSlide { text-align: center; font-size: 0.5em;
83 background: #333; color: #fff;}
84
85ul.urls {list-style: none; display: inline; margin: 0;}
86.urls li {display: inline; margin: 0;}
87.note {display: none;}
88.external {border-bottom: 1px dotted gray;}
89html>body .external {border-bottom: none;}
90.external:after {content: " \274F"; font-size: smaller; color: #77B;}
91
92.incremental, .incremental *, .incremental *:after {color: #222; visibility: visible;}
93img.incremental {visibility: hidden;}
94.slide .current {color: #fff;}
95
96
97/* diagnostics
98li:after {content: " [" attr(class) "]"; color: #F88;}
99
100.slide { opacity: 0.8; }
101 */
102
103.smaller {font-size: 70%; line-height: .9em; color: #f34; }
104
105#logo { position: absolute; right: 10px; bottom: 40px; z-index: 7; }
106
107
108#between { background-color: black; position: absolute; opacity: 0.4;
109 width: 100%; height: 100%; z-index: 2; }
110
111.framed { opacity: 0.6; border: 3px solid black; }
112.indented { margin-left: 100px; border: 3px solid black; }
113.gfx { opacity: 0.8; border: 3px solid black; padding: 20px;
114 background-color: #9cf; margin-left: 40px; }
115
116.left { text-align: left; }
117.right { text-align: right; }
diff --git a/secushare-old-html/UI/print.css b/secushare-old-html/UI/print.css
new file mode 100644
index 0000000..e7a71d1
--- /dev/null
+++ b/secushare-old-html/UI/print.css
@@ -0,0 +1 @@
/* The following rule is necessary to have all slides appear in print! DO NOT REMOVE IT! */ .slide, ul {page-break-inside: avoid; visibility: visible !important;} h1 {page-break-after: avoid;} body {font-size: 12pt; background: white;} * {color: black;} #slide0 h1 {font-size: 200%; border: none; margin: 0.5em 0 0.25em;} #slide0 h3 {margin: 0; padding: 0;} #slide0 h4 {margin: 0 0 0.5em; padding: 0;} #slide0 {margin-bottom: 3em;} h1 {border-top: 2pt solid gray; border-bottom: 1px dotted silver;} .extra {background: transparent !important;} div.extra, pre.extra, .example {font-size: 10pt; color: #333;} ul.extra a {font-weight: bold;} p.example {display: none;} #header {display: none;} #footer h1 {margin: 0; border-bottom: 1px solid; color: gray; font-style: italic;} #footer h2, #controls {display: none;} /* The following rule keeps the layout stuff out of print. Remove at your own risk! */ .layout, .layout * {display: none !important;} \ No newline at end of file
diff --git a/secushare-old-html/UI/s5-core.css b/secushare-old-html/UI/s5-core.css
new file mode 100644
index 0000000..86444e0
--- /dev/null
+++ b/secushare-old-html/UI/s5-core.css
@@ -0,0 +1,9 @@
1/* Do not edit or override these styles! The system will likely break if you do. */
2
3div#header, div#footer, div#controls, .slide {position: absolute;}
4html>body div#header, html>body div#footer,
5 html>body div#controls, html>body .slide {position: fixed;}
6.handout {display: none;}
7.layout {display: block;}
8.slide, .hideme, .incremental {visibility: hidden;}
9#slide0 {visibility: visible;}
diff --git a/secushare-old-html/UI/slides.css b/secushare-old-html/UI/slides.css
new file mode 100644
index 0000000..1027f03
--- /dev/null
+++ b/secushare-old-html/UI/slides.css
@@ -0,0 +1,3 @@
1@import url(s5-core.css); /* required to make the slide show run at all */
2@import url(framing.css); /* sets basic placement and size of slide components */
3@import url(pretty.css); /* stuff that makes the slides look better than blah */
diff --git a/secushare-old-html/UI/slides.js b/secushare-old-html/UI/slides.js
new file mode 100644
index 0000000..07f40ff
--- /dev/null
+++ b/secushare-old-html/UI/slides.js
@@ -0,0 +1,552 @@
1// S5 v1.1 slides.js -- released into the Public Domain
2//
3// Please see http://www.meyerweb.com/eric/tools/s5/credits.html for information
4// about all the wonderful and talented contributors to this code!
5
6var undef;
7var slideCSS = '';
8var snum = 0;
9var smax = 1;
10var incpos = 0;
11var number = undef;
12var s5mode = true;
13var defaultView = 'slideshow';
14var controlVis = 'visible';
15
16var isIE = navigator.appName == 'Microsoft Internet Explorer' ? 1 : 0;
17var isOp = navigator.userAgent.indexOf('Opera') > -1 ? 1 : 0;
18var isGe = navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('Safari') < 1 ? 1 : 0;
19
20function hasClass(object, className) {
21 if (!object.className) return false;
22 return (object.className.search('(^|\\s)' + className + '(\\s|$)') != -1);
23}
24
25function hasValue(object, value) {
26 if (!object) return false;
27 return (object.search('(^|\\s)' + value + '(\\s|$)') != -1);
28}
29
30function removeClass(object,className) {
31 if (!object) return;
32 object.className = object.className.replace(new RegExp('(^|\\s)'+className+'(\\s|$)'), RegExp.$1+RegExp.$2);
33}
34
35function addClass(object,className) {
36 if (!object || hasClass(object, className)) return;
37 if (object.className) {
38 object.className += ' '+className;
39 } else {
40 object.className = className;
41 }
42}
43
44function GetElementsWithClassName(elementName,className) {
45 var allElements = document.getElementsByTagName(elementName);
46 var elemColl = new Array();
47 for (var i = 0; i< allElements.length; i++) {
48 if (hasClass(allElements[i], className)) {
49 elemColl[elemColl.length] = allElements[i];
50 }
51 }
52 return elemColl;
53}
54
55function isParentOrSelf(element, id) {
56 if (element == null || element.nodeName=='BODY') return false;
57 else if (element.id == id) return true;
58 else return isParentOrSelf(element.parentNode, id);
59}
60
61function nodeValue(node) {
62 var result = "";
63 if (node.nodeType == 1) {
64 var children = node.childNodes;
65 for (var i = 0; i < children.length; ++i) {
66 result += nodeValue(children[i]);
67 }
68 }
69 else if (node.nodeType == 3) {
70 result = node.nodeValue;
71 }
72 return(result);
73}
74
75function slideLabel() {
76 var slideColl = GetElementsWithClassName('*','slide');
77 var list = document.getElementById('jumplist');
78 smax = slideColl.length;
79 for (var n = 0; n < smax; n++) {
80 var obj = slideColl[n];
81
82 var did = 'slide' + n.toString();
83 obj.setAttribute('id',did);
84 if (isOp) continue;
85
86 var otext = '';
87 var menu = obj.firstChild;
88 if (!menu) continue; // to cope with empty slides
89 while (menu && menu.nodeType == 3) {
90 menu = menu.nextSibling;
91 }
92 if (!menu) continue; // to cope with slides with only text nodes
93
94 var menunodes = menu.childNodes;
95 for (var o = 0; o < menunodes.length; o++) {
96 otext += nodeValue(menunodes[o]);
97 }
98 list.options[list.length] = new Option(n + ' : ' + otext, n);
99 }
100}
101
102function currentSlide() {
103 var cs;
104 if (document.getElementById) {
105 cs = document.getElementById('currentSlide');
106 } else {
107 cs = document.currentSlide;
108 }
109 cs.innerHTML = '<span id="csHere">' + snum + '<\/span> ' +
110 '<span id="csSep">\/<\/span> ' +
111 '<span id="csTotal">' + (smax-1) + '<\/span>';
112 if (snum == 0) {
113 cs.style.visibility = 'hidden';
114 } else {
115 cs.style.visibility = 'visible';
116 }
117}
118
119function go(step) {
120 if (document.getElementById('slideProj').disabled || step == 0) return;
121 var jl = document.getElementById('jumplist');
122 var cid = 'slide' + snum;
123 var ce = document.getElementById(cid);
124 if (incrementals[snum].length > 0) {
125 for (var i = 0; i < incrementals[snum].length; i++) {
126 removeClass(incrementals[snum][i], 'current');
127 removeClass(incrementals[snum][i], 'incremental');
128 }
129 }
130 if (step != 'j') {
131 snum += step;
132 lmax = smax - 1;
133 if (snum > lmax) snum = lmax;
134 if (snum < 0) snum = 0;
135 } else
136 snum = parseInt(jl.value);
137 var nid = 'slide' + snum;
138 var ne = document.getElementById(nid);
139 if (!ne) {
140 ne = document.getElementById('slide0');
141 snum = 0;
142 }
143 if (step < 0) {incpos = incrementals[snum].length} else {incpos = 0;}
144 if (incrementals[snum].length > 0 && incpos == 0) {
145 for (var i = 0; i < incrementals[snum].length; i++) {
146 if (hasClass(incrementals[snum][i], 'current'))
147 incpos = i + 1;
148 else
149 addClass(incrementals[snum][i], 'incremental');
150 }
151 }
152 if (incrementals[snum].length > 0 && incpos > 0)
153 addClass(incrementals[snum][incpos - 1], 'current');
154 ce.style.visibility = 'hidden';
155 ne.style.visibility = 'visible';
156 jl.selectedIndex = snum;
157 currentSlide();
158 number = 0;
159}
160
161function goTo(target) {
162 if (target >= smax || target == snum) return;
163 go(target - snum);
164}
165
166function subgo(step) {
167 if (step > 0) {
168 removeClass(incrementals[snum][incpos - 1],'current');
169 removeClass(incrementals[snum][incpos], 'incremental');
170 addClass(incrementals[snum][incpos],'current');
171 incpos++;
172 } else {
173 incpos--;
174 removeClass(incrementals[snum][incpos],'current');
175 addClass(incrementals[snum][incpos], 'incremental');
176 addClass(incrementals[snum][incpos - 1],'current');
177 }
178}
179
180function toggle() {
181 var slideColl = GetElementsWithClassName('*','slide');
182 var slides = document.getElementById('slideProj');
183 var outline = document.getElementById('outlineStyle');
184 if (!slides.disabled) {
185 slides.disabled = true;
186 outline.disabled = false;
187 s5mode = false;
188 fontSize('1em');
189 for (var n = 0; n < smax; n++) {
190 var slide = slideColl[n];
191 slide.style.visibility = 'visible';
192 }
193 } else {
194 slides.disabled = false;
195 outline.disabled = true;
196 s5mode = true;
197 fontScale();
198 for (var n = 0; n < smax; n++) {
199 var slide = slideColl[n];
200 slide.style.visibility = 'hidden';
201 }
202 slideColl[snum].style.visibility = 'visible';
203 }
204}
205
206function showHide(action) {
207 var obj = GetElementsWithClassName('*','hideme')[0];
208 switch (action) {
209 case 's': obj.style.visibility = 'visible'; break;
210 case 'h': obj.style.visibility = 'hidden'; break;
211 case 'k':
212 if (obj.style.visibility != 'visible') {
213 obj.style.visibility = 'visible';
214 } else {
215 obj.style.visibility = 'hidden';
216 }
217 break;
218 }
219}
220
221// 'keys' code adapted from MozPoint (http://mozpoint.mozdev.org/)
222function keys(key) {
223 if (!key) {
224 key = event;
225 key.which = key.keyCode;
226 }
227 if (key.which == 84) {
228 toggle();
229 return;
230 }
231 if (s5mode) {
232 switch (key.which) {
233 case 10: // return
234 case 13: // enter
235 if (window.event && isParentOrSelf(window.event.srcElement, 'controls')) return;
236 if (key.target && isParentOrSelf(key.target, 'controls')) return;
237 if(number != undef) {
238 goTo(number);
239 break;
240 }
241 case 32: // spacebar
242 case 34: // page down
243 case 39: // rightkey
244 case 40: // downkey
245 if(number != undef) {
246 go(number);
247 } else if (!incrementals[snum] || incpos >= incrementals[snum].length) {
248 go(1);
249 } else {
250 subgo(1);
251 }
252 break;
253 case 33: // page up
254 case 37: // leftkey
255 case 38: // upkey
256 if(number != undef) {
257 go(-1 * number);
258 } else if (!incrementals[snum] || incpos <= 0) {
259 go(-1);
260 } else {
261 subgo(-1);
262 }
263 break;
264 case 36: // home
265 goTo(0);
266 break;
267 case 35: // end
268 goTo(smax-1);
269 break;
270 case 67: // c
271 showHide('k');
272 break;
273 }
274 if (key.which < 48 || key.which > 57) {
275 number = undef;
276 } else {
277 if (window.event && isParentOrSelf(window.event.srcElement, 'controls')) return;
278 if (key.target && isParentOrSelf(key.target, 'controls')) return;
279 number = (((number != undef) ? number : 0) * 10) + (key.which - 48);
280 }
281 }
282 return false;
283}
284
285function clicker(e) {
286 number = undef;
287 var target;
288 if (window.event) {
289 target = window.event.srcElement;
290 e = window.event;
291 } else target = e.target;
292 if (target.getAttribute('href') != null || hasValue(target.rel, 'external') || isParentOrSelf(target, 'controls') || isParentOrSelf(target,'embed') || isParentOrSelf(target,'object')) return true;
293 if (!e.which || e.which == 1) {
294 if (!incrementals[snum] || incpos >= incrementals[snum].length) {
295 go(1);
296 } else {
297 subgo(1);
298 }
299 }
300}
301
302function findSlide(hash) {
303 var target = null;
304 var slides = GetElementsWithClassName('*','slide');
305 for (var i = 0; i < slides.length; i++) {
306 var targetSlide = slides[i];
307 if ( (targetSlide.name && targetSlide.name == hash)
308 || (targetSlide.id && targetSlide.id == hash) ) {
309 target = targetSlide;
310 break;
311 }
312 }
313 while(target != null && target.nodeName != 'BODY') {
314 if (hasClass(target, 'slide')) {
315 return parseInt(target.id.slice(5));
316 }
317 target = target.parentNode;
318 }
319 return null;
320}
321
322function slideJump() {
323 if (window.location.hash == null) return;
324 var sregex = /^#slide(\d+)$/;
325 var matches = sregex.exec(window.location.hash);
326 var dest = null;
327 if (matches != null) {
328 dest = parseInt(matches[1]);
329 } else {
330 dest = findSlide(window.location.hash.slice(1));
331 }
332 if (dest != null)
333 go(dest - snum);
334}
335
336function fixLinks() {
337 var thisUri = window.location.href;
338 thisUri = thisUri.slice(0, thisUri.length - window.location.hash.length);
339 var aelements = document.getElementsByTagName('A');
340 for (var i = 0; i < aelements.length; i++) {
341 var a = aelements[i].href;
342 var slideID = a.match('\#slide[0-9]{1,2}');
343 if ((slideID) && (slideID[0].slice(0,1) == '#')) {
344 var dest = findSlide(slideID[0].slice(1));
345 if (dest != null) {
346 if (aelements[i].addEventListener) {
347 aelements[i].addEventListener("click", new Function("e",
348 "if (document.getElementById('slideProj').disabled) return;" +
349 "go("+dest+" - snum); " +
350 "if (e.preventDefault) e.preventDefault();"), true);
351 } else if (aelements[i].attachEvent) {
352 aelements[i].attachEvent("onclick", new Function("",
353 "if (document.getElementById('slideProj').disabled) return;" +
354 "go("+dest+" - snum); " +
355 "event.returnValue = false;"));
356 }
357 }
358 }
359 }
360}
361
362function externalLinks() {
363 if (!document.getElementsByTagName) return;
364 var anchors = document.getElementsByTagName('a');
365 for (var i=0; i<anchors.length; i++) {
366 var anchor = anchors[i];
367 if (anchor.getAttribute('href') && hasValue(anchor.rel, 'external')) {
368 anchor.target = '_blank';
369 addClass(anchor,'external');
370 }
371 }
372}
373
374function createControls() {
375 var controlsDiv = document.getElementById("controls");
376 if (!controlsDiv) return;
377 var hider = ' onmouseover="showHide(\'s\');" onmouseout="showHide(\'h\');"';
378 var hideDiv, hideList = '';
379 if (controlVis == 'hidden') {
380 hideDiv = hider;
381 } else {
382 hideList = hider;
383 }
384 controlsDiv.innerHTML = '<form action="#" id="controlForm"' + hideDiv + '>' +
385 '<div id="navLinks">' +
386 '<a accesskey="t" id="toggle" href="javascript:toggle();">&#216;<\/a>' +
387 '<a accesskey="z" id="prev" href="javascript:go(-1);">&laquo;<\/a>' +
388 '<a accesskey="x" id="next" href="javascript:go(1);">&raquo;<\/a>' +
389 '<div id="navList"' + hideList + '><select id="jumplist" onchange="go(\'j\');"><\/select><\/div>' +
390 '<\/div><\/form>';
391 if (controlVis == 'hidden') {
392 var hidden = document.getElementById('navLinks');
393 } else {
394 var hidden = document.getElementById('jumplist');
395 }
396 addClass(hidden,'hideme');
397}
398
399function fontScale() { // causes layout problems in FireFox that get fixed if browser's Reload is used; same may be true of other Gecko-based browsers
400 if (!s5mode) return false;
401 var vScale = 22; // both yield 32 (after rounding) at 1024x768
402 var hScale = 32; // perhaps should auto-calculate based on theme's declared value?
403 if (window.innerHeight) {
404 var vSize = window.innerHeight;
405 var hSize = window.innerWidth;
406 } else if (document.documentElement.clientHeight) {
407 var vSize = document.documentElement.clientHeight;
408 var hSize = document.documentElement.clientWidth;
409 } else if (document.body.clientHeight) {
410 var vSize = document.body.clientHeight;
411 var hSize = document.body.clientWidth;
412 } else {
413 var vSize = 700; // assuming 1024x768, minus chrome and such
414 var hSize = 1024; // these do not account for kiosk mode or Opera Show
415 }
416 var newSize = Math.min(Math.round(vSize/vScale),Math.round(hSize/hScale));
417 fontSize(newSize + 'px');
418 if (isGe) { // hack to counter incremental reflow bugs
419 var obj = document.getElementsByTagName('body')[0];
420 obj.style.display = 'none';
421 obj.style.display = 'block';
422 }
423}
424
425function fontSize(value) {
426 if (!(s5ss = document.getElementById('s5ss'))) {
427 if (!isIE) {
428 document.getElementsByTagName('head')[0].appendChild(s5ss = document.createElement('style'));
429 s5ss.setAttribute('media','screen, projection');
430 s5ss.setAttribute('id','s5ss');
431 } else {
432 document.createStyleSheet();
433 document.s5ss = document.styleSheets[document.styleSheets.length - 1];
434 }
435 }
436 if (!isIE) {
437 while (s5ss.lastChild) s5ss.removeChild(s5ss.lastChild);
438 s5ss.appendChild(document.createTextNode('body {font-size: ' + value + ' !important;}'));
439 } else {
440 document.s5ss.addRule('body','font-size: ' + value + ' !important;');
441 }
442}
443
444function notOperaFix() {
445 slideCSS = document.getElementById('slideProj').href;
446 var slides = document.getElementById('slideProj');
447 var outline = document.getElementById('outlineStyle');
448 slides.setAttribute('media','screen');
449 outline.disabled = true;
450 if (isGe) {
451 slides.setAttribute('href','null'); // Gecko fix
452 slides.setAttribute('href',slideCSS); // Gecko fix
453 }
454 if (isIE && document.styleSheets && document.styleSheets[0]) {
455 document.styleSheets[0].addRule('img', 'behavior: url(ui/default/iepngfix.htc)');
456 document.styleSheets[0].addRule('div', 'behavior: url(ui/default/iepngfix.htc)');
457 document.styleSheets[0].addRule('.slide', 'behavior: url(ui/default/iepngfix.htc)');
458 }
459}
460
461function getIncrementals(obj) {
462 var incrementals = new Array();
463 if (!obj)
464 return incrementals;
465 var children = obj.childNodes;
466 for (var i = 0; i < children.length; i++) {
467 var child = children[i];
468 if (hasClass(child, 'incremental')) {
469 if (child.nodeName == 'OL' || child.nodeName == 'UL') {
470 removeClass(child, 'incremental');
471 for (var j = 0; j < child.childNodes.length; j++) {
472 if (child.childNodes[j].nodeType == 1) {
473 addClass(child.childNodes[j], 'incremental');
474 }
475 }
476 } else {
477 incrementals[incrementals.length] = child;
478 removeClass(child,'incremental');
479 }
480 }
481 if (hasClass(child, 'show-first')) {
482 if (child.nodeName == 'OL' || child.nodeName == 'UL') {
483 removeClass(child, 'show-first');
484 if (child.childNodes[isGe].nodeType == 1) {
485 removeClass(child.childNodes[isGe], 'incremental');
486 }
487 } else {
488 incrementals[incrementals.length] = child;
489 }
490 }
491 incrementals = incrementals.concat(getIncrementals(child));
492 }
493 return incrementals;
494}
495
496function createIncrementals() {
497 var incrementals = new Array();
498 for (var i = 0; i < smax; i++) {
499 incrementals[i] = getIncrementals(document.getElementById('slide'+i));
500 }
501 return incrementals;
502}
503
504function defaultCheck() {
505 var allMetas = document.getElementsByTagName('meta');
506 for (var i = 0; i< allMetas.length; i++) {
507 if (allMetas[i].name == 'defaultView') {
508 defaultView = allMetas[i].content;
509 }
510 if (allMetas[i].name == 'controlVis') {
511 controlVis = allMetas[i].content;
512 }
513 }
514}
515
516// Key trap fix, new function body for trap()
517function trap(e) {
518 if (!e) {
519 e = event;
520 e.which = e.keyCode;
521 }
522 try {
523 modifierKey = e.ctrlKey || e.altKey || e.metaKey;
524 }
525 catch(e) {
526 modifierKey = false;
527 }
528 return modifierKey || e.which == 0;
529}
530
531function startup() {
532 defaultCheck();
533 if (!isOp) createControls();
534 slideLabel();
535 fixLinks();
536 externalLinks();
537 fontScale();
538 if (!isOp) {
539 notOperaFix();
540 incrementals = createIncrementals();
541 slideJump();
542 if (defaultView == 'outline') {
543 toggle();
544 }
545 document.onkeyup = keys;
546 document.onkeypress = trap;
547 document.onclick = clicker;
548 }
549}
550
551window.onload = startup;
552window.onresize = function(){setTimeout('fontScale()', 50);} \ No newline at end of file
diff --git a/secushare-old-html/UI/squares.jpg b/secushare-old-html/UI/squares.jpg
new file mode 100644
index 0000000..cef1508
--- /dev/null
+++ b/secushare-old-html/UI/squares.jpg
Binary files differ
diff --git a/secushare-old-html/UI/stars_bg.jpg b/secushare-old-html/UI/stars_bg.jpg
new file mode 100644
index 0000000..189c332
--- /dev/null
+++ b/secushare-old-html/UI/stars_bg.jpg
Binary files differ
diff --git a/secushare-old-html/img/cloud.png b/secushare-old-html/img/cloud.png
new file mode 100644
index 0000000..8aa81a6
--- /dev/null
+++ b/secushare-old-html/img/cloud.png
Binary files differ
diff --git a/secushare-old-html/img/gfx-cloud.png b/secushare-old-html/img/gfx-cloud.png
new file mode 100644
index 0000000..914bf8f
--- /dev/null
+++ b/secushare-old-html/img/gfx-cloud.png
Binary files differ
diff --git a/secushare-old-html/img/gfx-multicast.png b/secushare-old-html/img/gfx-multicast.png
new file mode 100644
index 0000000..a63b76d
--- /dev/null
+++ b/secushare-old-html/img/gfx-multicast.png
Binary files differ
diff --git a/secushare-old-html/img/gfx-unicast.png b/secushare-old-html/img/gfx-unicast.png
new file mode 100644
index 0000000..d7c1763
--- /dev/null
+++ b/secushare-old-html/img/gfx-unicast.png
Binary files differ
diff --git a/secushare-old-html/img/gfx.odg b/secushare-old-html/img/gfx.odg
new file mode 100644
index 0000000..bfad080
--- /dev/null
+++ b/secushare-old-html/img/gfx.odg
Binary files differ
diff --git a/secushare-old-html/img/gfx.png b/secushare-old-html/img/gfx.png
new file mode 100644
index 0000000..30cfff4
--- /dev/null
+++ b/secushare-old-html/img/gfx.png
Binary files differ
diff --git a/secushare-old-html/img/gfx.svg b/secushare-old-html/img/gfx.svg
new file mode 100644
index 0000000..f95cc76
--- /dev/null
+++ b/secushare-old-html/img/gfx.svg
@@ -0,0 +1,910 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<svg
3 xmlns:dc="http://purl.org/dc/elements/1.1/"
4 xmlns:cc="http://creativecommons.org/ns#"
5 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6 xmlns:svg="http://www.w3.org/2000/svg"
7 xmlns="http://www.w3.org/2000/svg"
8 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10 version="1.2"
11 viewBox="0 0 21000 29700"
12 preserveAspectRatio="xMidYMid"
13 fill-rule="evenodd"
14 clip-path="url(#presentation_clip_path)"
15 stroke-width="28.222"
16 stroke-linejoin="round"
17 xml:space="preserve"
18 id="svg2"
19 inkscape:version="0.48.3.1 r9886"
20 width="100%"
21 height="100%"
22 sodipodi:docname="gfx.svg"
23 inkscape:export-filename="/home/dan/wiki/Papers/img/gfx.png"
24 inkscape:export-xdpi="15"
25 inkscape:export-ydpi="15"><metadata
26 id="metadata836"><rdf:RDF><cc:Work
27 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
28 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
29 pagecolor="#ffffff"
30 bordercolor="#666666"
31 borderopacity="1"
32 objecttolerance="10"
33 gridtolerance="10"
34 guidetolerance="10"
35 inkscape:pageopacity="0"
36 inkscape:pageshadow="2"
37 inkscape:window-width="1598"
38 inkscape:window-height="879"
39 id="namedview834"
40 showgrid="false"
41 inkscape:zoom="0.16"
42 inkscape:cx="4415.5351"
43 inkscape:cy="6482.1508"
44 inkscape:window-x="0"
45 inkscape:window-y="19"
46 inkscape:window-maximized="0"
47 inkscape:current-layer="id1" />
48 <defs
49 id="defs4">
50 <clipPath
51 id="presentation_clip_path"
52 clipPathUnits="userSpaceOnUse">
53 <rect
54 x="0"
55 y="0"
56 width="21000"
57 height="29700"
58 id="rect7" />
59 </clipPath>
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104 </defs>
105 <defs
106 id="defs9">
107 <font
108 id="EmbeddedFont_1"
109 horiz-adv-x="2048">
110 <font-face
111 font-family="Sawasdee embedded"
112 units-per-em="2048"
113 font-weight="normal"
114 font-style="normal"
115 ascent="2196"
116 descent="847"
117 id="font-face12" />
118 <missing-glyph
119 horiz-adv-x="2048"
120 d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"
121 id="missing-glyph14" />
122 <glyph
123 unicode="y"
124 horiz-adv-x="875"
125 d="M 36,1014 L 128,1014 477,119 818,1014 914,1014 331,-521 235,-521 432,-2 36,1014 Z"
126 id="glyph16" />
127 <glyph
128 unicode="w"
129 horiz-adv-x="1536"
130 d="M 36,1014 L 134,1014 466,221 806,1032 1147,221 1471,1014 1567,1014 1147,-17 803,793 463,-17 36,1014 Z"
131 id="glyph18" />
132 <glyph
133 unicode="v"
134 horiz-adv-x="875"
135 d="M 36,1014 L 132,1014 474,203 814,1014 914,1014 477,-30 36,1014 Z"
136 id="glyph20" />
137 <glyph
138 unicode="t"
139 horiz-adv-x="477"
140 d="M 258,0 L 168,0 168,925 79,925 79,1014 168,1014 168,1254 258,1254 258,1014 538,1014 508,925 258,925 258,0 Z"
141 id="glyph22" />
142 <glyph
143 unicode="s"
144 horiz-adv-x="663"
145 d="M 709,835 L 626,806 C 612,851 588,885 555,909 522,932 486,944 448,944 404,944 367,930 336,902 305,874 289,836 289,788 289,763 296,740 310,719 324,698 342,681 365,668 388,655 414,641 443,627 472,613 501,600 531,588 561,576 591,561 620,543 649,525 674,506 697,485 720,464 738,438 752,405 766,372 773,336 773,295 773,202 740,127 674,70 608,12 531,-17 444,-17 406,-17 370,-11 335,2 300,14 268,32 239,56 210,80 185,112 164,152 143,192 130,238 124,289 L 213,302 C 222,226 249,169 293,130 336,91 387,72 446,72 508,72 563,93 611,135 659,176 683,230 683,295 683,331 674,363 656,391 638,418 615,441 587,458 558,475 527,492 492,507 457,522 423,538 388,554 353,570 322,588 294,607 265,626 242,651 224,682 206,713 197,748 197,788 197,863 222,922 272,966 321,1010 380,1032 448,1032 504,1032 556,1015 605,982 654,948 688,899 709,835 Z"
146 id="glyph24" />
147 <glyph
148 unicode="r"
149 horiz-adv-x="504"
150 d="M 143,1014 L 239,1014 C 252,970 258,925 258,880 L 258,754 C 273,805 309,859 365,914 421,969 477,1008 534,1030 L 634,959 C 575,959 517,938 459,897 400,856 352,801 315,733 277,664 258,594 258,521 L 258,0 168,0 168,880 C 168,937 160,982 143,1014 Z"
151 id="glyph26" />
152 <glyph
153 unicode="p"
154 horiz-adv-x="980"
155 d="M 143,1014 L 239,1014 C 252,970 258,925 258,880 L 258,754 C 283,824 333,888 408,945 483,1002 558,1030 634,1030 719,1030 796,1006 867,959 938,911 993,847 1034,767 1074,687 1094,601 1094,508 1094,415 1074,328 1034,248 993,167 938,103 867,56 796,9 719,-15 634,-15 557,-15 481,13 407,68 332,123 283,187 258,260 L 258,-448 168,-448 168,880 C 168,937 160,982 143,1014 Z M 369,814 C 295,730 258,628 258,508 258,388 295,286 369,201 443,116 531,74 634,74 735,74 823,117 898,202 973,287 1010,389 1010,508 1010,628 973,730 898,814 823,898 735,940 634,940 531,940 443,898 369,814 Z"
156 id="glyph28" />
157 <glyph
158 unicode="o"
159 horiz-adv-x="1033"
160 d="M 643,1030 C 713,1030 780,1016 844,989 908,962 963,925 1010,878 1057,831 1094,776 1121,711 1148,646 1162,579 1162,508 1162,437 1148,369 1121,304 1094,239 1057,184 1010,138 963,91 908,54 844,27 780,-1 713,-15 643,-15 500,-15 377,36 276,138 175,240 124,363 124,508 124,603 147,690 194,771 240,851 303,914 383,961 462,1007 549,1030 643,1030 Z M 213,508 C 213,389 255,287 340,202 424,117 526,74 645,74 764,74 866,117 951,202 1035,287 1077,389 1077,508 1077,627 1035,728 951,813 866,898 764,940 645,940 526,940 424,898 340,813 255,728 213,627 213,508 Z"
161 id="glyph30" />
162 <glyph
163 unicode="n"
164 horiz-adv-x="795"
165 d="M 143,1014 L 239,1014 C 252,970 258,925 258,880 L 258,728 C 295,811 346,883 411,942 476,1001 539,1030 600,1030 668,1030 726,1011 773,973 820,935 854,886 875,827 896,768 906,701 906,626 L 906,0 818,0 818,626 C 818,663 815,698 808,732 801,766 789,799 774,832 759,865 736,891 706,911 675,930 639,940 598,940 559,940 518,925 476,894 433,863 397,826 366,782 335,737 309,690 289,640 268,590 258,546 258,508 L 258,0 168,0 168,880 C 168,937 160,982 143,1014 Z"
166 id="glyph32" />
167 <glyph
168 unicode="m"
169 horiz-adv-x="1298"
170 d="M 143,1014 L 239,1014 C 252,970 258,925 258,880 L 258,734 C 290,813 336,882 396,941 456,1000 513,1030 566,1030 645,1030 709,1003 757,948 805,893 835,821 848,734 881,815 926,885 983,942 1039,999 1094,1027 1149,1027 1212,1027 1265,1008 1309,969 1352,930 1384,881 1403,822 1422,763 1431,697 1431,624 L 1431,0 1341,0 1341,624 C 1341,660 1338,695 1332,729 1326,763 1316,796 1303,829 1289,862 1269,888 1242,908 1215,928 1184,938 1147,938 1102,938 1056,913 1007,863 958,812 919,753 888,685 857,617 842,557 842,504 L 842,0 752,0 752,626 C 752,663 749,698 743,732 737,766 727,799 714,832 701,865 681,891 654,911 627,930 594,940 557,940 516,940 471,916 424,868 376,820 336,762 305,694 274,626 258,564 258,508 L 258,0 168,0 168,880 C 168,937 160,982 143,1014 Z"
171 id="glyph34" />
172 <glyph
173 unicode="h"
174 horiz-adv-x="768"
175 d="M 168,0 L 168,1493 258,1493 258,726 C 293,807 343,878 409,939 475,1000 539,1030 600,1030 668,1030 726,1011 773,973 820,935 854,886 875,827 896,768 906,701 906,626 L 906,0 818,0 818,626 C 818,663 815,698 808,732 801,766 789,799 774,832 759,865 736,891 706,911 675,930 639,940 598,940 559,940 518,925 476,894 433,863 397,826 366,782 335,737 309,690 289,640 268,590 258,546 258,508 L 258,0 168,0 Z"
176 id="glyph36" />
177 <glyph
178 unicode="e"
179 horiz-adv-x="927"
180 d="M 222,593 L 959,593 C 940,694 896,777 827,842 758,907 678,940 589,940 500,940 422,907 353,842 284,777 240,694 222,593 Z M 1057,508 L 208,508 C 208,389 245,287 320,204 395,121 483,79 585,79 652,79 718,97 783,133 848,169 897,217 931,278 L 1010,233 C 969,160 909,101 830,55 751,8 669,-15 585,-15 500,-15 423,9 352,56 281,103 225,167 185,248 144,328 124,415 124,508 124,601 145,687 186,767 227,847 283,911 355,959 426,1006 504,1030 589,1030 669,1030 744,1009 813,966 882,923 937,865 980,792 1023,719 1048,640 1055,553 L 1057,508 Z"
181 id="glyph38" />
182 <glyph
183 unicode="a"
184 horiz-adv-x="821"
185 d="M 920,0 L 824,0 C 812,38 806,83 806,134 L 806,213 C 758,146 701,91 634,48 567,5 496,-17 421,-17 367,-17 319,-8 277,9 234,26 201,48 176,76 151,105 133,135 120,166 107,198 101,231 101,263 101,298 106,329 117,358 127,387 140,411 157,432 173,452 195,471 222,487 249,503 275,517 300,527 325,538 356,547 393,554 430,562 463,568 490,571 517,575 551,577 592,577 633,577 665,577 689,577 712,577 742,577 779,577 L 806,577 C 803,688 770,777 709,843 647,909 576,942 495,942 448,942 402,930 357,905 312,880 272,844 239,797 L 168,844 C 209,907 258,954 315,985 372,1016 432,1032 495,1032 546,1032 595,1022 642,1002 689,981 731,953 768,916 805,879 836,831 859,773 882,715 894,651 895,581 L 895,134 C 895,76 903,31 920,0 Z M 421,72 C 498,72 572,98 644,149 716,200 770,259 806,325 L 806,512 C 775,512 749,512 728,512 707,512 678,512 642,512 605,512 574,510 549,507 524,504 494,500 461,493 427,486 398,478 375,470 352,462 328,451 303,438 278,425 257,410 242,394 227,378 214,359 205,337 195,315 190,290 190,264 190,216 210,171 250,132 290,92 347,72 421,72 Z"
186 id="glyph40" />
187 <glyph
188 unicode="W"
189 horiz-adv-x="1906"
190 d="M 25,1493 L 114,1493 553,258 983,1511 1412,258 1847,1493 1943,1493 1412,-17 985,1229 557,-17 25,1493 Z"
191 id="glyph42" />
192 <glyph
193 unicode="P"
194 horiz-adv-x="927"
195 d="M 168,0 L 168,1495 698,1495 C 805,1495 896,1456 971,1379 1046,1302 1083,1209 1083,1100 1083,990 1046,896 972,818 897,740 807,701 701,701 L 258,701 258,0 168,0 Z M 258,795 L 701,795 C 780,795 849,825 906,884 963,943 991,1015 991,1100 991,1185 962,1257 905,1317 848,1376 779,1406 698,1406 L 258,1406 258,795 Z"
196 id="glyph44" />
197 <glyph
198 unicode="D"
199 horiz-adv-x="1086"
200 d="M 258,90 L 468,90 C 590,90 702,119 805,176 907,233 988,312 1048,413 1107,514 1137,624 1137,745 1137,867 1107,979 1048,1080 988,1181 907,1260 805,1317 702,1374 590,1403 468,1403 L 258,1403 258,90 Z M 168,0 L 168,1493 468,1493 C 571,1493 669,1474 762,1435 855,1396 936,1344 1004,1278 1072,1211 1126,1132 1166,1039 1206,946 1226,848 1226,745 1226,608 1192,482 1124,368 1056,253 964,163 848,98 732,33 605,0 468,0 L 168,0 Z"
201 id="glyph46" />
202 <glyph
203 unicode="C"
204 horiz-adv-x="1377"
205 d="M 1417,346 L 1489,297 C 1420,202 1332,127 1225,72 1118,17 1003,-11 880,-11 777,-11 679,9 586,49 493,89 412,143 345,211 278,279 224,360 184,454 144,548 124,647 124,750 124,853 144,952 184,1046 224,1140 278,1221 345,1289 412,1357 493,1411 586,1451 679,1491 777,1511 880,1511 1003,1511 1117,1483 1224,1428 1331,1372 1419,1296 1489,1200 L 1417,1147 C 1355,1230 1277,1296 1184,1345 1090,1393 989,1417 880,1417 759,1417 647,1387 545,1327 442,1267 361,1186 302,1083 243,980 213,867 213,745 213,654 231,568 266,485 301,402 348,331 407,271 466,211 537,163 620,128 703,92 789,74 880,74 989,74 1090,98 1184,147 1277,196 1355,262 1417,346 Z"
206 id="glyph48" />
207 <glyph
208 unicode=" "
209 horiz-adv-x="714"
210 id="glyph50" />
211 </font>
212 </defs>
213 <g
214 id="id2"
215 class="Master_Slide"
216 clip-path="url(#presentation_clip_path)">
217 <g
218 id="bg-id2"
219 visibility="visible"
220 class="Background">
221 <rect
222 fill="none"
223 stroke="none"
224 x="0"
225 y="0"
226 width="21000"
227 height="29700"
228 id="rect54" />
229 </g>
230 <g
231 id="bo-id2"
232 visibility="visible"
233 class="BackgroundObjects" />
234 </g>
235 <g
236 id="id1"
237 class="Slide"
238 visibility="visible"
239 clip-path="url(#presentation_clip_path)">
240
241
242 <g
243 class="com.sun.star.drawing.LineShape"
244 id="g78"
245 transform="translate(283.47087,-175.88835)">
246 <g
247 id="g80">
248 <path
249 d="m 5006,3149 358,-274"
250 id="path82"
251 inkscape:connector-curvature="0"
252 style="fill:none;stroke:#000000" />
253 <path
254 d="m 4911,3033 -1,-50 -306,475 538,-173 -46,-13 -46,-22 -43,-31 -37,-39 -30,-46 -19,-50 -10,-51 z"
255 id="path84"
256 inkscape:connector-curvature="0"
257 style="fill:#000000;stroke:none" />
258 <path
259 d="m 5459,2991 1,50 306,-475 -538,173 46,13 46,22 43,31 37,39 30,46 19,50 10,51 z"
260 id="path86"
261 inkscape:connector-curvature="0"
262 style="fill:#000000;stroke:none" />
263 </g>
264 </g>
265 <g
266 class="com.sun.star.drawing.LineShape"
267 id="g88"
268 transform="translate(274.00388,79.549513)">
269 <g
270 id="g90">
271 <path
272 d="m 4974,4621 1019,546"
273 id="path92"
274 inkscape:connector-curvature="0"
275 style="fill:none;stroke:#000000" />
276 <path
277 d="m 5041,4486 45,-21 -559,-83 379,419 -7,-47 2,-51 10,-52 20,-50 30,-46 38,-38 42,-31 z"
278 id="path94"
279 inkscape:connector-curvature="0"
280 style="fill:#000000;stroke:none" />
281 <path
282 d="m 5926,5302 -45,21 559,83 -379,-419 7,47 -2,51 -10,52 -20,50 -30,46 -38,38 -42,31 z"
283 id="path96"
284 inkscape:connector-curvature="0"
285 style="fill:#000000;stroke:none" />
286 </g>
287 </g>
288 <g
289 class="com.sun.star.drawing.LineShape"
290 id="g98"
291 transform="translate(-92.67767,-177.40485)">
292 <g
293 id="g100">
294 <path
295 d="m 2137,2846 503,332"
296 id="path102"
297 inkscape:connector-curvature="0"
298 style="fill:none;stroke:#000000" />
299 <path
300 d="m 2216,2717 47,-16 -549,-135 339,452 -3,-47 6,-51 15,-50 25,-49 34,-43 41,-34 45,-27 z"
301 id="path104"
302 inkscape:connector-curvature="0"
303 style="fill:#000000;stroke:none" />
304 <path
305 d="m 2561,3307 -47,16 549,135 -339,-452 3,47 -6,51 -15,50 -25,49 -34,43 -41,34 -45,27 z"
306 id="path106"
307 inkscape:connector-curvature="0"
308 style="fill:#000000;stroke:none" />
309 </g>
310 </g>
311 <g
312 class="com.sun.star.drawing.LineShape"
313 id="g108"
314 transform="translate(141.42134,-4808.3261)">
315 <g
316 id="g110">
317 <path
318 d="m 2977,15801 2376,385"
319 id="path112"
320 inkscape:connector-curvature="0"
321 style="fill:none;stroke:#000000" />
322 <path
323 d="m 2997,15652 36,-35 -556,103 495,273 -22,-42 -15,-49 -8,-52 3,-54 13,-53 24,-49 30,-42 z"
324 id="path114"
325 inkscape:connector-curvature="0"
326 style="fill:#000000;stroke:none" />
327 <path
328 d="m 5333,16335 -36,35 556,-103 -495,-273 22,42 15,49 8,52 -3,54 -13,53 -24,49 -30,42 z"
329 id="path116"
330 inkscape:connector-curvature="0"
331 style="fill:#000000;stroke:none" />
332 </g>
333 </g>
334 <g
335 class="com.sun.star.drawing.LineShape"
336 id="g118"
337 transform="translate(141.42134,-4808.3261)">
338 <g
339 id="g120">
340 <path
341 d="m 1873,16590 -249,2185"
342 id="path122"
343 inkscape:connector-curvature="0"
344 style="fill:none;stroke:#000000" />
345 <path
346 d="m 2024,16602 36,34 -130,-550 -249,507 42,-24 48,-17 51,-10 55,0 53,11 49,21 45,28 z"
347 id="path124"
348 inkscape:connector-curvature="0"
349 style="fill:#000000;stroke:none" />
350 <path
351 d="m 1473,18763 -36,-34 130,550 249,-507 -42,24 -48,17 -51,10 -55,0 -53,-11 -49,-21 -45,-28 z"
352 id="path126"
353 inkscape:connector-curvature="0"
354 style="fill:#000000;stroke:none" />
355 </g>
356 </g>
357 <g
358 class="com.sun.star.drawing.LineShape"
359 id="g128"
360 transform="translate(141.42134,-4808.3261)">
361 <g
362 id="g130">
363 <path
364 d="m 2437,19816 3548,-71"
365 id="path132"
366 inkscape:connector-curvature="0"
367 style="fill:none;stroke:#000000" />
368 <path
369 d="m 2429,19665 29,-40 -528,202 536,179 -29,-38 -24,-45 -17,-50 -7,-54 4,-54 14,-52 22,-48 z"
370 id="path134"
371 inkscape:connector-curvature="0"
372 style="fill:#000000;stroke:none" />
373 <path
374 d="m 5993,19896 -29,40 528,-202 -536,-179 29,38 24,45 17,50 7,54 -4,54 -14,52 -22,48 z"
375 id="path136"
376 inkscape:connector-curvature="0"
377 style="fill:#000000;stroke:none" />
378 </g>
379 </g>
380 <g
381 class="com.sun.star.drawing.LineShape"
382 id="g138"
383 transform="translate(141.42134,-4808.3261)">
384 <g
385 id="g140">
386 <path
387 d="m 6566,17225 217,1462"
388 id="path142"
389 inkscape:connector-curvature="0"
390 style="fill:none;stroke:#000000" />
391 <path
392 d="m 6715,17199 43,24 -266,-499 -110,554 33,-34 42,-29 47,-23 53,-13 54,-4 54,8 50,16 z"
393 id="path144"
394 inkscape:connector-curvature="0"
395 style="fill:#000000;stroke:none" />
396 <path
397 d="m 6634,18713 -43,-24 266,499 110,-554 -33,34 -42,29 -47,23 -53,13 -54,4 -54,-8 -50,-16 z"
398 id="path146"
399 inkscape:connector-curvature="0"
400 style="fill:#000000;stroke:none" />
401 </g>
402 </g>
403 <g
404 class="com.sun.star.drawing.LineShape"
405 id="g148"
406 transform="translate(141.42134,-4808.3261)">
407 <g
408 id="g150">
409 <path
410 d="m 2689,16312 3500,2829"
411 id="path152"
412 inkscape:connector-curvature="0"
413 style="fill:none;stroke:#000000" />
414 <path
415 d="m 2780,16192 49,-12 -534,-187 294,483 2,-48 11,-50 19,-49 30,-45 37,-40 45,-30 47,-22 z"
416 id="path154"
417 inkscape:connector-curvature="0"
418 style="fill:#000000;stroke:none" />
419 <path
420 d="m 6098,19261 -49,12 534,187 -294,-483 -2,48 -11,50 -19,49 -30,45 -37,40 -45,30 -47,22 z"
421 id="path156"
422 inkscape:connector-curvature="0"
423 style="fill:#000000;stroke:none" />
424 </g>
425 </g>
426 <g
427 class="com.sun.star.drawing.LineShape"
428 id="g158"
429 transform="matrix(0.99936666,-0.03558474,0.03558474,0.99936666,-498.25376,-4655.1623)">
430 <g
431 id="g160">
432 <path
433 d="M 2356,19095 5610,16999"
434 id="path162"
435 inkscape:connector-curvature="0"
436 style="fill:none;stroke:#000000" />
437 <path
438 d="m 2271,18971 3,-49 -344,448 551,-128 -45,-17 -44,-26 -40,-34 -35,-42 -25,-48 -15,-52 -6,-52 z"
439 id="path164"
440 inkscape:connector-curvature="0"
441 style="fill:#000000;stroke:none" />
442 <path
443 d="m 5695,17123 -3,49 344,-448 -551,128 45,17 44,26 40,34 35,42 25,48 15,52 6,52 z"
444 id="path166"
445 inkscape:connector-curvature="0"
446 style="fill:#000000;stroke:none" />
447 </g>
448 </g>
449
450
451
452
453 <g
454 class="com.sun.star.drawing.CustomShape"
455 id="g294"
456 transform="matrix(2.2392824,0,0,2.1897111,-4646.4546,-4903.9283)">
457 <g
458 id="g296">
459 <path
460 d="m 3823,3687 c 194,0 343,148 343,342 0,194 -149,343 -343,343 -194,0 -342,-149 -342,-343 0,-194 148,-342 342,-342 z m -342,0 0,0 z m 686,687 0,0 z"
461 id="path298"
462 inkscape:connector-curvature="0"
463 style="fill:#000000;stroke:none" />
464 <path
465 d="m 3823,3687 c 194,0 343,148 343,342 0,194 -149,343 -343,343 -194,0 -342,-149 -342,-343 0,-194 148,-342 342,-342"
466 id="path300"
467 inkscape:connector-curvature="0"
468 style="fill:none;stroke:#000000" />
469 <path
470 style="fill:none;stroke:none"
471 d="m 3482,3687 686,0 0,687 -686,0 z"
472 id="rect302"
473 inkscape:connector-curvature="0" />
474 </g>
475 </g>
476 <g
477 class="com.sun.star.drawing.LineShape"
478 id="g304"
479 transform="translate(-114.90485,88.388348)">
480 <g
481 id="g306">
482 <path
483 d="m 2397,4990 311,-221"
484 id="path308"
485 inkscape:connector-curvature="0"
486 style="fill:none;stroke:#000000" />
487 <path
488 d="m 2306,4870 1,-49 -322,464 544,-154 -46,-15 -45,-24 -42,-32 -36,-40 -28,-47 -17,-51 -9,-52 z"
489 id="path310"
490 inkscape:connector-curvature="0"
491 style="fill:#000000;stroke:none" />
492 <path
493 d="m 2799,4889 -1,49 322,-464 -544,154 46,15 45,24 42,32 36,40 28,47 17,51 9,52 z"
494 id="path312"
495 inkscape:connector-curvature="0"
496 style="fill:#000000;stroke:none" />
497 </g>
498 </g>
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517 <g
518 class="com.sun.star.drawing.LineShape"
519 id="g494"
520 transform="translate(-10634.114,4796.562)">
521 <g
522 id="g496">
523 <path
524 d="m 15589,22270 2376,385"
525 id="path498"
526 inkscape:connector-curvature="0"
527 style="fill:none;stroke:#000000" />
528 <path
529 d="m 15609,22121 36,-35 -556,103 495,273 -22,-42 -15,-49 -8,-52 3,-54 13,-53 24,-49 30,-42 z"
530 id="path500"
531 inkscape:connector-curvature="0"
532 style="fill:#000000;stroke:none" />
533 <path
534 d="m 17945,22804 -36,35 556,-103 -495,-273 22,42 15,49 8,52 -3,54 -13,53 -24,49 -30,42 z"
535 id="path502"
536 inkscape:connector-curvature="0"
537 style="fill:#000000;stroke:none" />
538 </g>
539 </g>
540
541 <g
542 class="com.sun.star.drawing.LineShape"
543 id="g514"
544 transform="translate(-10352.55,4341.6985)">
545 <g
546 id="g516">
547 <path
548 d="m 12174,24362 3548,-71"
549 id="path518"
550 inkscape:connector-curvature="0"
551 style="fill:none;stroke:#000000" />
552 <path
553 d="m 12166,24211 29,-40 -528,202 536,179 -29,-38 -24,-45 -17,-50 -7,-54 4,-54 14,-52 22,-48 z"
554 id="path520"
555 inkscape:connector-curvature="0"
556 style="fill:#000000;stroke:none" />
557 <path
558 d="m 15730,24442 -29,40 528,-202 -536,-179 29,38 24,45 17,50 7,54 -4,54 -14,52 -22,48 z"
559 id="path522"
560 inkscape:connector-curvature="0"
561 style="fill:#000000;stroke:none" />
562 </g>
563 </g>
564
565 <g
566 class="com.sun.star.drawing.LineShape"
567 id="g534"
568 transform="matrix(0.89781219,0.44037856,-0.44037856,0.89781219,494.9455,544.55462)">
569 <g
570 id="g536">
571 <path
572 d="m 15247,21205 482,-701"
573 id="path538"
574 inkscape:connector-curvature="0"
575 style="fill:none;stroke:#000000" />
576 <path
577 d="m 15120,21124 -16,-48 -144,547 458,-331 -47,2 -51,-7 -50,-15 -48,-26 -42,-35 -34,-42 -26,-45 z"
578 id="path540"
579 inkscape:connector-curvature="0"
580 style="fill:#000000;stroke:none" />
581 <path
582 d="m 15856,20585 16,48 144,-547 -458,331 47,-2 51,7 50,15 48,26 42,35 34,42 26,45 z"
583 id="path542"
584 inkscape:connector-curvature="0"
585 style="fill:#000000;stroke:none" />
586 </g>
587 </g>
588
589 <path
590 d="m 2809.8643,25046.642 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
591 id="path560"
592 inkscape:connector-curvature="0"
593 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:28.22200012;stroke-miterlimit:4;stroke-dasharray:none"
594 inkscape:transform-center-x="-127.625"
595 inkscape:transform-center-y="-0.5" />
596 <path
597 d="m 3828.6738,22396.083 c 23.0103,19.249 26.5357,50.88 7.2869,73.891 -19.2489,23.01 -51.6478,25.893 -74.6581,6.645 -23.0104,-19.249 -25.1274,-51.006 -5.8785,-74.017 19.249,-23.01 50.2393,-25.768 73.2497,-6.519"
598 id="path570"
599 inkscape:connector-curvature="0"
600 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:28.22200012" /><path
601 style="fill:none;stroke:none"
602 d="m 4299.5064,22989.725 71.7748,78.002 -78.0026,71.775 -71.7747,-78.003 z"
603 id="rect572"
604 inkscape:connector-curvature="0" />
605 <path
606 d="m 6040.8856,28577.062 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52 z m -52,0 0,0 z m 106,106 0,0 z"
607 id="path578"
608 style="fill:#000000;fill-opacity:0.89800002;stroke:#ffffff;stroke-opacity:0.89800002"
609 inkscape:connector-curvature="0" /><path
610 d="m 6040.8856,28577.062 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
611 id="path580"
612 style="fill:#000000;stroke:#000000"
613 inkscape:connector-curvature="0" />
614
615 <g
616 class="com.sun.star.drawing.CustomShape"
617 id="g594"
618 transform="translate(-10559.114,4684.062)">
619 <g
620 id="g596">
621 <path
622 d="m 14415,21796 c 170,0 301,131 301,301 0,170 -131,301 -301,301 -170,0 -301,-131 -301,-301 0,-170 131,-301 301,-301 z m -301,0 0,0 z m 603,603 0,0 z"
623 id="path598"
624 inkscape:connector-curvature="0"
625 style="fill:#000000;stroke:none" />
626 <path
627 d="m 14415,21796 c 170,0 301,131 301,301 0,170 -131,301 -301,301 -170,0 -301,-131 -301,-301 0,-170 131,-301 301,-301"
628 id="path600"
629 inkscape:connector-curvature="0"
630 style="fill:none;stroke:#000000" />
631 <path
632 style="fill:none;stroke:none"
633 d="m 14114,21796 603,0 0,603 -603,0 z"
634 id="rect602"
635 inkscape:connector-curvature="0" />
636 </g>
637 </g>
638
639
640
641 <g
642 class="com.sun.star.drawing.LineShape"
643 id="g634"
644 transform="matrix(0.91574356,0.40176329,-0.40176329,0.91574356,-640.71883,906.69003)">
645 <g
646 id="g636">
647 <path
648 d="m 14437,20866 78,-1354"
649 id="path638"
650 inkscape:connector-curvature="0"
651 style="fill:none;stroke:#000000" />
652 <path
653 d="m 14286,20862 -38,-32 160,542 220,-520 -40,26 -47,20 -51,13 -54,2 -54,-7 -50,-19 -46,-25 z"
654 id="path640"
655 inkscape:connector-curvature="0"
656 style="fill:#000000;stroke:none" />
657 <path
658 d="m 14666,19516 38,32 -160,-542 -220,520 40,-26 47,-20 51,-13 54,-2 54,7 50,19 46,25 z"
659 id="path642"
660 inkscape:connector-curvature="0"
661 style="fill:#000000;stroke:none" />
662 </g>
663 </g>
664 <path
665 d="m 5147.2606,23860.062 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
666 id="path650"
667 inkscape:connector-curvature="0"
668 style="fill:#000000;fill-opacity:1;stroke:#000000" /><path
669 style="fill:none;stroke:none"
670 d="m 5096.2606,23861.062 106,0 0,106 -106,0 z"
671 id="rect652"
672 inkscape:connector-curvature="0" />
673 <path
674 d="m 8066.8856,27503.062 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
675 id="path660"
676 inkscape:connector-curvature="0"
677 style="fill:#000000;fill-opacity:1;stroke:#000000" /><path
678 style="fill:none;stroke:none"
679 d="m 8190.8856,27504.062 106,0 0,106 -106,0 z"
680 id="rect662"
681 inkscape:connector-curvature="0" />
682
683
684
685 <g
686 id="g3168"
687 transform="matrix(0.82206161,0.56939854,-0.56939854,0.82206161,15254.873,2237.0373)"><g
688 transform="translate(-10359.114,4384.062)"
689 id="g604"
690 class="com.sun.star.drawing.CustomShape">
691 <g
692 id="g606">
693 <path
694 style="fill:#000000;stroke:none"
695 inkscape:connector-curvature="0"
696 id="path608"
697 d="m 16354,19273 c 170,0 301,131 301,301 0,170 -131,301 -301,301 -170,0 -301,-131 -301,-301 0,-170 131,-301 301,-301 z m -301,0 0,0 z m 603,603 0,0 z" />
698 <path
699 style="fill:none;stroke:#000000"
700 inkscape:connector-curvature="0"
701 id="path610"
702 d="m 16354,19273 c 170,0 301,131 301,301 0,170 -131,301 -301,301 -170,0 -301,-131 -301,-301 0,-170 131,-301 301,-301" />
703 <path
704 inkscape:connector-curvature="0"
705 id="rect612"
706 d="m 16053,19273 603,0 0,603 -603,0 z"
707 style="fill:none;stroke:none" />
708 </g>
709 </g><g
710 transform="translate(-10359.114,4384.062)"
711 id="g614"
712 class="com.sun.star.drawing.LineShape">
713 <g
714 id="g616">
715 <path
716 style="fill:none;stroke:#000000"
717 inkscape:connector-curvature="0"
718 id="path618"
719 d="m 16437,18366 78,-1354" />
720 <path
721 style="fill:#000000;stroke:none"
722 inkscape:connector-curvature="0"
723 id="path620"
724 d="m 16286,18362 -38,-32 160,542 220,-520 -40,26 -47,20 -51,13 -54,2 -54,-7 -50,-19 -46,-25 z" />
725 <path
726 style="fill:#000000;stroke:none"
727 inkscape:connector-curvature="0"
728 id="path622"
729 d="m 16666,17016 38,32 -160,-542 -220,520 40,-26 47,-20 51,-13 54,-2 54,7 50,19 46,25 z" />
730 </g>
731 </g><g
732 transform="translate(-10359.114,4384.062)"
733 id="g626">
734
735 <path
736 d="m 16549.125,16118.75 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
737 id="path630"
738 inkscape:connector-curvature="0"
739 style="fill:#000000;fill-opacity:1;stroke:#000000" />
740 <path
741 style="fill:none;stroke:none"
742 d="m 16485.625,16060.375 106,0 0,106 -106,0 z"
743 id="rect632"
744 inkscape:connector-curvature="0" />
745 </g><g
746 transform="translate(-10359.114,4384.062)"
747 id="g664"
748 class="com.sun.star.drawing.LineShape">
749 <g
750 id="g666">
751 <path
752 style="fill:none;stroke:#000000"
753 inkscape:connector-curvature="0"
754 id="path668"
755 d="m 17013,18643 496,-1045" />
756 <path
757 style="fill:#000000;stroke:none"
758 inkscape:connector-curvature="0"
759 id="path670"
760 d="m 16874,18583 -23,-44 -56,562 401,-399 -47,9 -52,1 -51,-7 -52,-18 -47,-27 -40,-36 -33,-41 z" />
761 <path
762 style="fill:#000000;stroke:none"
763 inkscape:connector-curvature="0"
764 id="path672"
765 d="m 17648,17658 23,44 56,-562 -401,399 47,-9 52,-1 51,7 52,18 47,27 40,36 33,41 z" />
766 </g>
767 </g><path
768 style="fill:#000000;fill-opacity:1;stroke:#000000"
769 inkscape:connector-curvature="0"
770 id="path680"
771 d="m 7522.2606,21175.687 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52" /><path
772 inkscape:connector-curvature="0"
773 id="rect682"
774 d="m 7411.8856,21061.062 106,0 0,106 -106,0 z"
775 style="fill:none;stroke:none" /><g
776 transform="translate(-10359.114,4384.062)"
777 id="g684"
778 class="com.sun.star.drawing.LineShape">
779 <g
780 id="g686">
781 <path
782 style="fill:none;stroke:#000000"
783 inkscape:connector-curvature="0"
784 id="path688"
785 d="m 17493,19014 626,-537" />
786 <path
787 style="fill:#000000;stroke:none"
788 inkscape:connector-curvature="0"
789 id="path690"
790 d="m 17391,18903 -3,-50 -279,492 528,-203 -47,-10 -47,-20 -45,-28 -39,-37 -32,-44 -22,-49 -14,-51 z" />
791 <path
792 style="fill:#000000;stroke:none"
793 inkscape:connector-curvature="0"
794 id="path692"
795 d="m 18221,18588 3,50 279,-492 -528,203 47,10 47,20 45,28 39,37 32,44 22,49 14,51 z" />
796 </g>
797 </g><path
798 style="fill:#000000;fill-opacity:1;stroke:#000000"
799 inkscape:connector-curvature="0"
800 id="path700"
801 d="m 8463.8856,22261.062 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52" /><path
802 inkscape:connector-curvature="0"
803 id="rect702"
804 d="m 8412.8856,22262.062 106,0 0,106 -106,0 z"
805 style="fill:none;stroke:none" /></g>
806
807
808
809
810
811
812
813
814
815
816
817
818
819 <path
820 d="m 6544.7753,11486.084 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
821 id="path570-4"
822 inkscape:connector-curvature="0"
823 style="fill:#000000;fill-opacity:1;stroke:#000000" /><path
824 style="fill:none;stroke:none"
825 d="m 6392.8873,11575.381 106,0 0,106 -106,0 z"
826 id="rect572-0"
827 inkscape:connector-curvature="0" /><path
828 d="m 7052.8903,14905.654 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
829 id="path570-49"
830 inkscape:connector-curvature="0"
831 style="fill:#000000;fill-opacity:1;stroke:#000000" /><path
832 d="m 1689.0118,14947.538 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
833 id="path570-49-3"
834 inkscape:connector-curvature="0"
835 style="fill:#000000;fill-opacity:1;stroke:#000000" /><path
836 d="m 2061.1582,10827.411 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
837 id="path570-49-6"
838 inkscape:connector-curvature="0"
839 style="fill:#000000;fill-opacity:1;stroke:#000000" /><path
840 d="m 6270.2107,2191.6942 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
841 id="path570-49-8"
842 inkscape:connector-curvature="0"
843 style="fill:#000000;fill-opacity:1;stroke:#000000" /><path
844 d="m 6915.033,5538.6612 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
845 id="path570-49-33"
846 inkscape:connector-curvature="0"
847 style="fill:#000000;fill-opacity:1;stroke:#000000" /><path
848 d="m 1379.6777,2195.0952 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
849 id="path570-49-9"
850 inkscape:connector-curvature="0"
851 style="fill:#000000;fill-opacity:1;stroke:#000000" /><path
852 d="m 1647.0951,5435.8882 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -30,0 -52,-23 -52,-53 0,-30 22,-52 52,-52"
853 id="path570-49-82"
854 inkscape:connector-curvature="0"
855 style="fill:#000000;fill-opacity:1;stroke:#000000" /><path
856 d="m 1002.7798,28654.636 c 30,0 53,22 53,52 0,30 -23,53 -53,53 -29.99995,0 -51.99995,-23 -51.99995,-53 0,-30 22,-52 51.99995,-52"
857 id="path560-3"
858 inkscape:connector-curvature="0"
859 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:28.22200012;stroke-miterlimit:4;stroke-dasharray:none"
860 inkscape:transform-center-x="-127.625"
861 inkscape:transform-center-y="-0.5" /><g
862 class="com.sun.star.drawing.LineShape"
863 id="g544-4"
864 transform="matrix(0.9999931,0.00371577,-0.00371577,0.9999931,-10281.165,4533.9206)"><g
865 id="g546-3"><path
866 d="m 12092,23639 1347,-877"
867 id="path548-1"
868 inkscape:connector-curvature="0"
869 style="fill:none;stroke:#000000" /><path
870 d="m 12006,23516 3,-50 -342,450 550,-131 -45,-16 -44,-26 -40,-34 -35,-42 -26,-48 -15,-51 -6,-52 z"
871 id="path550-0"
872 inkscape:connector-curvature="0"
873 style="fill:#000000;stroke:none" /><path
874 d="m 13525,22885 -3,50 342,-450 -550,131 45,16 44,26 40,34 35,42 26,48 15,51 6,52 z"
875 id="path552-1"
876 inkscape:connector-curvature="0"
877 style="fill:#000000;stroke:none" /></g></g><g
878 class="com.sun.star.drawing.LineShape"
879 id="g494-5"
880 transform="matrix(0.31545167,-0.94894164,0.94894164,0.31545167,-24709.757,35697.819)"><g
881 id="g496-5"><path
882 d="m 15589,22270 2376,385"
883 id="path498-2"
884 inkscape:connector-curvature="0"
885 style="fill:none;stroke:#000000" /><path
886 d="m 15609,22121 36,-35 -556,103 495,273 -22,-42 -15,-49 -8,-52 3,-54 13,-53 24,-49 30,-42 z"
887 id="path500-8"
888 inkscape:connector-curvature="0"
889 style="fill:#000000;stroke:none" /><path
890 d="m 17945,22804 -36,35 556,-103 -495,-273 22,42 15,49 8,52 -3,54 -13,53 -24,49 -30,42 z"
891 id="path502-1"
892 inkscape:connector-curvature="0"
893 style="fill:#000000;stroke:none" /></g></g><g
894 class="com.sun.star.drawing.LineShape"
895 id="g634-9"
896 transform="matrix(0.95363238,0.30097391,-0.30097391,0.95363238,-4410.732,157.65584)"><g
897 id="g636-8"><path
898 d="m 14437,20866 78,-1354"
899 id="path638-4"
900 inkscape:connector-curvature="0"
901 style="fill:none;stroke:#000000" /><path
902 d="m 14286,20862 -38,-32 160,542 220,-520 -40,26 -47,20 -51,13 -54,2 -54,-7 -50,-19 -46,-25 z"
903 id="path640-3"
904 inkscape:connector-curvature="0"
905 style="fill:#000000;stroke:none" /><path
906 d="m 14666,19516 38,32 -160,-542 -220,520 40,-26 47,-20 51,-13 54,-2 54,7 50,19 46,25 z"
907 id="path642-8"
908 inkscape:connector-curvature="0"
909 style="fill:#000000;stroke:none" /></g></g></g>
910</svg> \ No newline at end of file
diff --git a/secushare-old-html/img/multicast.png b/secushare-old-html/img/multicast.png
new file mode 100644
index 0000000..8dc3982
--- /dev/null
+++ b/secushare-old-html/img/multicast.png
Binary files differ
diff --git a/secushare-old-html/img/phase0.jpeg b/secushare-old-html/img/phase0.jpeg
new file mode 100755
index 0000000..620e1e6
--- /dev/null
+++ b/secushare-old-html/img/phase0.jpeg
Binary files differ
diff --git a/secushare-old-html/img/phase1.jpeg b/secushare-old-html/img/phase1.jpeg
new file mode 100755
index 0000000..044591e
--- /dev/null
+++ b/secushare-old-html/img/phase1.jpeg
Binary files differ
diff --git a/secushare-old-html/img/phase2.jpeg b/secushare-old-html/img/phase2.jpeg
new file mode 100755
index 0000000..e143b2e
--- /dev/null
+++ b/secushare-old-html/img/phase2.jpeg
Binary files differ
diff --git a/secushare-old-html/img/phase3.jpeg b/secushare-old-html/img/phase3.jpeg
new file mode 100755
index 0000000..4240590
--- /dev/null
+++ b/secushare-old-html/img/phase3.jpeg
Binary files differ
diff --git a/secushare-old-html/img/secushare-0444.png b/secushare-old-html/img/secushare-0444.png
new file mode 100644
index 0000000..51f55b3
--- /dev/null
+++ b/secushare-old-html/img/secushare-0444.png
Binary files differ
diff --git a/secushare-old-html/img/unicast.png b/secushare-old-html/img/unicast.png
new file mode 100644
index 0000000..96c6534
--- /dev/null
+++ b/secushare-old-html/img/unicast.png
Binary files differ
diff --git a/secushare-old-latex/.init.el b/secushare-old-latex/.init.el
new file mode 100644
index 0000000..178ed00
--- /dev/null
+++ b/secushare-old-latex/.init.el
@@ -0,0 +1,61 @@
1(setq load-path (cons "~/.emacs.d/lisp" load-path))
2
3(setq org-export-latex-verbatim-wrap (quote (
4 "\\begin{src}
5" . "\\end{src}
6"
7))
8 org-export-allow-BIND t
9 org-export-headline-levels 6
10 org-export-latex-classes (quote (
11 ("book-nopart" "\\documentclass[12pt,a4paper]{book}"
12 ("\\chapter{%s}" . "\\chapter*{%s}")
13 ("\\section{%s}" . "\\section*{%s}")
14 ("\\subsection{%s}" . "\\subsection*{%s}")
15 ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
16 ("\\paragraph{%s}" . "\\paragraph*{%s}")
17 ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
18 ("book-nopart-oneside" "\\documentclass[12pt,a4paper,oneside]{book}"
19 ("\\chapter{%s}" . "\\chapter*{%s}")
20 ("\\section{%s}" . "\\section*{%s}")
21 ("\\subsection{%s}" . "\\subsection*{%s}")
22 ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
23 ("\\paragraph{%s}" . "\\paragraph*{%s}")
24 ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
25 ("report-nopart" "\\documentclass[12pt,a4paper]{report}"
26 ("\\chapter{%s}" . "\\chapter*{%s}")
27 ("\\section{%s}" . "\\section*{%s}")
28 ("\\subsection{%s}" . "\\subsection*{%s}")
29 ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
30 ("\\paragraph{%s}" . "\\paragraph*{%s}")
31 ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
32 ("article" "\\documentclass[12pt]{article}"
33 ("\\section{%s}" . "\\section*{%s}")
34 ("\\subsection{%s}" . "\\subsection*{%s}")
35 ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
36 ("\\paragraph{%s}" . "\\paragraph*{%s}")
37 ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
38 ("report" "\\documentclass[12pt]{report}"
39 ("\\part{%s}" . "\\part*{%s}")
40 ("\\chapter{%s}" . "\\chapter*{%s}")
41 ("\\section{%s}" . "\\section*{%s}")
42 ("\\subsection{%s}" . "\\subsection*{%s}")
43 ("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
44 ("book" "\\documentclass[12pt,a4paper,oneside]{book}"
45 ("\\part{%s}" . "\\part*{%s}")
46 ("\\chapter{%s}" . "\\chapter*{%s}")
47 ("\\section{%s}" . "\\section*{%s}")
48 ("\\subsection{%s}" . "\\subsection*{%s}")
49 ("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
50 ("beamer" "\\documentclass{beamer}" org-beamer-sectioning)
51 ))
52
53 org-latex-to-pdf-process (quote (
54 "pdflatex -interaction nonstopmode -output-directory %o %f"
55 "bibtex `basename %b`"
56 "pdflatex -interaction nonstopmode -output-directory %o %f"
57 "pdflatex -interaction nonstopmode -output-directory %o %f"
58 ))
59)
60
61(require 'psyc nil 'noerror)
diff --git a/secushare-old-latex/.setup b/secushare-old-latex/.setup
new file mode 100644
index 0000000..01e509f
--- /dev/null
+++ b/secushare-old-latex/.setup
@@ -0,0 +1,73 @@
1#+OPTIONS: toc:nil num:t timestamp:nil author:t H:6 ^:{}
2#+BIND: org-export-latex-title-command ""
3
4#+LaTeX_CLASS: book-nopart
5#+LaTeX_HEADER: \usepackage{datetime}
6#+LaTeX_HEADER: \usepackage{titlesec}
7#+LaTeX_HEADER: \usepackage{parskip}
8#+LaTeX_HEADER: \usepackage{fancyvrb}
9#+LaTeX_HEADER: \usepackage[bookmarks]{hyperref}
10
11#+LaTeX_HEADER: \usepackage{fancyhdr}
12#+LaTeX_HEADER: \pagestyle{fancy}
13#+LaTeX_HEADER: \fancyhf{}
14
15#+LaTeX_HEADER: \fancyhead[RO, LE] {\thepage}
16#+LaTeX_HEADER: \fancyhead[RE]{\textit{\nouppercase{\leftmark}}}
17#+LaTeX_HEADER: \fancyhead[LO]{\textit{\nouppercase{\rightmark}}}
18
19#+LaTeX_HEADER: \renewcommand{\chaptermark}[1]{\markboth{\thechapter.\ #1}{}}
20#+LaTeX_HEADER: \renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}{}}
21
22#+LaTeX_HEADER: \fancypagestyle{plain}{%
23#+LaTeX_HEADER: \fancyhf{} % clear all header and footer fields
24#+LaTeX_HEADER: \fancyfoot[C]{\bfseries \thepage} % except the center
25#+LaTeX_HEADER: \renewcommand{\headrulewidth}{0pt}
26#+LaTeX_HEADER: \renewcommand{\footrulewidth}{0pt}}
27
28#+LaTeX_HEADER: \usepackage{color}
29#+LaTeX_HEADER: \definecolor{blue}{rgb}{0,0,0.5}
30#+LaTeX_HEADER: \definecolor{src}{rgb}{0.95,0.95,0.95}
31#+LaTeX_HEADER: \hypersetup{colorlinks,linkcolor=blue,urlcolor=blue,citecolor=blue,filecolor=blue}
32
33##+LaTeX_HEADER: \usepackage{listings}
34##+LaTeX_HEADER: \lstnewenvironment{src}[1][]%
35##+LaTeX_HEADER: {\minipage{\linewidth}
36##+LaTeX_HEADER: \lstset{basicstyle=\ttfamily\footnotesize,
37##+LaTeX_HEADER: backgroundcolor=\color{src}}}
38##+LaTeX_HEADER: {\endminipage}
39
40#+LaTeX_HEADER: \usepackage{listings}
41#+LaTeX_HEADER: \lstnewenvironment{src}[1][]%
42#+LaTeX_HEADER: {\lstset{basicstyle=\ttfamily\footnotesize}}{}
43
44#+LaTeX_HEADER: \usepackage{biblatex}
45#+LaTeX_HEADER: \bibliography{ref}{}
46
47#+LaTeX_HEADER: \makeatletter
48
49#+LaTeX_HEADER: \renewcommand{\@makechapterhead}[1]{%
50#+LaTeX_HEADER: \vspace*{50\p@}%
51#+LaTeX_HEADER: {\parindent \z@ \raggedright \normalfont
52#+LaTeX_HEADER: \interlinepenalty\@M
53#+LaTeX_HEADER: \ifnum \c@secnumdepth >\m@ne
54#+LaTeX_HEADER: \if@mainmatter
55#+LaTeX_HEADER: \Huge\bfseries \thechapter.\
56##+LaTeX_HEADER: \huge\bfseries \@chapapp\space \thechapter
57##+LaTeX_HEADER: \par\nobreak
58##+LaTeX_HEADER: \vskip 20\p@
59#+LaTeX_HEADER: \fi
60#+LaTeX_HEADER: \fi
61#+LaTeX_HEADER: \Huge \bfseries #1\par\nobreak
62#+LaTeX_HEADER: \vskip 40\p@
63#+LaTeX_HEADER: }}
64
65#+LaTeX_HEADER: \renewcommand\section{%
66#+LaTeX_HEADER: \@startsection%
67#+LaTeX_HEADER: {section}{\if@mainmatter 1 \else 10 \fi}{\z@}%
68#+LaTeX_HEADER: {-3.5ex \@plus -1ex \@minus -.2ex}%
69#+LaTeX_HEADER: {2.3ex \@plus.2ex}%
70#+LaTeX_HEADER: {\normalfont\Large\bfseries}
71#+LaTeX_HEADER: }
72
73#+LaTeX_HEADER: \makeatother
diff --git a/secushare-old-latex/.setup-back b/secushare-old-latex/.setup-back
new file mode 100644
index 0000000..0bad779
--- /dev/null
+++ b/secushare-old-latex/.setup-back
@@ -0,0 +1,9 @@
1#+BEGIN_LaTeX
2\makeatletter
3\renewcommand{\@makechapterhead}[1]{%
4\vspace*{50 pt}%
5{\setlength{\parindent}{0pt} \raggedright \normalfont
6\bfseries\Huge#1
7\par\nobreak\vspace{40 pt}}}
8\makeatother
9#+END_LaTeX
diff --git a/secushare-old-latex/30c3-slides.README b/secushare-old-latex/30c3-slides.README
new file mode 100644
index 0000000..9cb6b55
--- /dev/null
+++ b/secushare-old-latex/30c3-slides.README
@@ -0,0 +1,7 @@
1For 30c3 slides see separate tg-rp repository.
2
3Needs: apt-get install graphviz
4
5sdedit is a binary jar blob that creates graphics,
6but it isn't necessary for the slides.
7
diff --git a/secushare-old-latex/Makefile b/secushare-old-latex/Makefile
new file mode 100644
index 0000000..d84236e
--- /dev/null
+++ b/secushare-old-latex/Makefile
@@ -0,0 +1,27 @@
1org = secushare
2
3ORG_PATH = /usr/share/emacs/site-lisp/org-mode
4INIT = (add-to-list 'load-path \"${ORG_PATH}\") (load-file \".init.el\")
5
6all: pdf
7
8pdf: FORCE
9 for f in ${org}; do \
10 e="$$e (find-file \"$$f\") (org-mode) (org-export-as-pdf org-export-headline-levels)"; \
11 done; \
12 emacs -Q --batch --eval "(progn ${INIT} $$e)"
13
14
15html: FORCE
16 for f in ${org}; do \
17 e="$$e (find-file \"$$f\") (org-mode) (org-export-as-html-batch)"; \
18 done; \
19 emacs -Q --batch --eval "(progn ${INIT} $$e)"
20
21latex: FORCE
22 for f in ${org}; do \
23 e="$$e (find-file \"$$f\") (org-mode) (org-export-as-latex-batch)"; \
24 done; \
25 emacs -Q --batch --eval "(progn ${INIT} $$e)"
26
27FORCE:
diff --git a/secushare-old-latex/abbrevs b/secushare-old-latex/abbrevs
new file mode 100644
index 0000000..d74b485
--- /dev/null
+++ b/secushare-old-latex/abbrevs
@@ -0,0 +1,23 @@
1
2* Abbreviations
3
4| ABNF | Augmented Backus-Naur Form |
5| DHT | Distributed Hash Table |
6| DNS | Domain Name System |
7| DV | Distance Vector (routing protocol) |
8| F2F | Friend-to-Friend (network architecture) |
9| GUI | Graphical User Interface |
10| HTTP | Hypertext Transfer Protocol |
11| OTR | Off-the-Record Messaging |
12| P2P | Peer-to-Peer (network architecture) |
13| PGP | Pretty Good Privacy |
14| PSYC | Protocol for SYnchronous Conferencing |
15| QML | Qt Modeling Language |
16| SHA | Secure Hash Algorithm |
17| SMTP | Simple Mail Transfer Protocol |
18| TCP | Transmission Control Protocol |
19| UDP | User Datagram Protocol |
20| UI | User Interface |
21| URI | Uniform Resource Identifier |
22| XML | Extensible Markup Language |
23| XMPP | Extensible Messaging and Presence Protocol |
diff --git a/secushare-old-latex/abstract b/secushare-old-latex/abstract
new file mode 100644
index 0000000..9eef5a9
--- /dev/null
+++ b/secushare-old-latex/abstract
@@ -0,0 +1,20 @@
1* Abstract
2
3The motivation of the work presented here is the need for social interactions
4over the internet in a scalable and privacy protecting manner. We have examined
5existing systems from this aspect and have come to the conclusion that they do
6not provide enough privacy or do not scale well enough for our requirements. We
7suggest a peer-to-peer (P2P) architecture for this use and present a social
8network based on the GNUnet P2P framework -- which provides the lower layers of
9the network -- extended with messaging and social semantics by the PSYC
10protocol.
11
12Components of the system we have implemented are a service for the GNUnet
13framework providing social semantics and messaging functionality, a client API
14enabling application developers to write applications for the network with less
15effort, and client applications providing messaging, contact lists and profiles.
16
17The implementation is in a prototype stage, basic functionality, such as person
18identities, friendship establishment and messaging in channels already work,
19but further work is needed to enhance the functionality of the system and
20improve the usability of the user interface.
diff --git a/secushare-old-latex/arch b/secushare-old-latex/arch
new file mode 100644
index 0000000..2a8fe4b
--- /dev/null
+++ b/secushare-old-latex/arch
@@ -0,0 +1,203 @@
1* Architecture
2
3Secure Share intends to implement a scalable P2P social network enabling
4real-time one-to-one, one-to-many and many-to-many message distribution for
5applications using the network while fulfilling the privacy requirements
6described in the previous chapter.
7
8It provides private and group messaging, status updates and profiles in the
9first prototype version, while keeping the protocol extensible allowing various
10social applications to be built on top later.
11
12By combining PSYC with a P2P network architecture we get an efficient and
13extensible protocol provided by PSYC and security and privacy properties
14provided by the underlying P2P network.
15
16** P2P network architecture
17
18Many P2P networks use an architecture where nodes connect to arbitrary peers, no
19trust relation exists between them. A problem with this approach is that some
20nodes could use more resources of the network than they contribute to it
21(freeloaders), which can be alleviated by applying an economic model in the
22network. For instance GNUnet uses an excess-based economy: a node when idle does
23favors for free, but when busy it only works for nodes it likes and charges them
24for favors they request, which they can pay back by doing a favor in return.
25
26Another problem that could arise in this architecture are malicious nodes who
27can perform various active attacks, including blocking access to parts of the
28network, or returning false information to certain requests. These can be
29avoided to some extent by randomized routing and by making it harder to create
30new identities in the network.
31
32A different approach we use is a friend-to-friend (F2F) architecture where nodes
33only connect to friendly peers whom they trust. This has the advantage that it
34avoids many attacks involving malicious nodes in the network. An attacker has to
35infiltrate a user's social circle to perform a successful attack, which is much
36harder. By adding a trust level metric to social connections we can further
37differentiate between more and less trusted nodes in the network.
38
39Also, a F2F architecture gives better incentives to participants in the network:
40users help their friends by forwarding packets for them instead of random
41strangers. Nodes with high bandwidth and no connection restrictions --
42e.g. server machines in data centers -- can improve throughput and connectivity
43in the network by serving their owner's social circle.
44
45Other systems based on a F2F architecture include Freenet \cite{dark-freenet},
46Drac \cite{drac}, Tonika, and GNUnet has a F2F mode as well.
47
48** Structure of the network
49
50Another aspect of P2P networks is whether they're structured or not. In
51structured networks the structure of the network is predefined, the node ID
52determines the position of the node in the network, this information is enough
53to be able to route packets to their destination. Often a distributed hash table
54(DHT) is used in structured P2P networks which provides hash table functionality
55distributed over many nodes in the network.
56
57A different approach is an unstructured network like the Internet, where
58arbitrary nodes can connect, no structure is imposed upon the nodes. In this
59case a routing table is needed to be able to route a packet to its destination.
60
61A social network could be built purely using a DHT, LifeSocial \cite{lifesocial}
62is an example of such a network. In this case every shared status message, image
63or document would become an entry in the DHT, and a profile consists of a
64collection of links to other DHT entries. To ensure only the intended recipients
65have access to private data, DHT entries are encrypted with a symmetric key,
66which is attached to the entry encrypted with every user's public key who should
67have access to the entry. This means that there's no forward secrecy in this
68network, if a user's private key is compromised all these entries can still be
69decrypted with that key. Even if noticed in time, re-encrypting all entries
70affected by a compromised key is quite a costly operation when the number of
71entries become larger after using the system over the years.
72
73For our case either an unstructured network is suitable, or a structured network
74where the structure is only used for routing, and not for storing user data in a
75DHT. In our architecture data is pushed once to recipients who store it locally
76as long as they need it, which means all profile data, messages and received
77files are all available locally -- even offline -- and can be viewed and
78searched using local tools on the personal device.
79
80** Software components
81
82In a P2P network every user runs the P2P software on their devices, so it's
83important that it is multi-platform, lightweight, and written in a compiled
84language, so we can easily run it on all popular desktop platforms and small
85devices as well, including plug computers, home routers, and even smartphones.
86
87In our case the P2P software runs as a daemon -- a background process -- on the
88local machine or on another device on the network. Client applications connect
89to this daemon and integrate into the desktop or mobile GUI environment running
90on the system.
91
92Server machines, home routers and plug computers act as intermediary nodes in the
93system, helping their owners' social network by forwarding packets for them.
94
95Mobile phones require a different approach. Continuous network usage would drain
96the battery quite fast, so we'll have to minimize it by disabling packet
97forwarding for mobile nodes and connecting only to a trusted node with good
98connectivity -- e.g. a server machine or a plug computer at home -- which would
99forward the necessary packets for the mobile node.
100
101** Peer-to-peer framework
102
103We have examined various P2P systems looking for an implementation that can
104serve as a basis for our social messaging platform. The criteria for a suitable
105P2P framework was:
106
107- Free/libre/open-source software.
108- Multi-platform, lightweight and written in a compiled language.
109- Implements and provides an API for essential P2P features such as
110 bootstrapping, addressing, routing, encryption and NAT traversal.
111
112We have found GNUnet to be the most promising implementation out there
113satisfying these requirements. It is a modular P2P framework written in C,
114providing an API for essential P2P functionalities. It supports advanced NAT
115(Network Address Translation) traversal, which enables contacting nodes without
116a public IP address typically found in home or corporate networks. Furthermore
117it has several transport mechanisms with automatic transport selection,
118including TCP, UDP, HTTP(S), SMTP and ad-hoc WiFi mesh networks. It also
119provides various routing schemes and a distributed hash table.
120
121It has three operation modes: in P2P mode it makes connections with any peer in
122the network, in friend-to-friend (F2F) mode only trusted nodes are connected,
123and in mixed mode a minimum number of trusted nodes are required to be connected
124at all times.
125
126GNUnet currently has two options for routing packets in the network: the
127distance vector and the mesh service.
128
129The distance vector (DV) service uses a fish-eye bounded distance vector
130protocol \cite{gnunet-decrouting}, which builds a routing table by gossiping
131about neighboring peers within a limited number of hops distance. It is a
132link-state routing protocol with improved efficiency: nodes only know about the
133state of a local neighborhood, and link state of nodes close to each other are
134updated more often than of nodes multiple hops away. The DV service also
135provides onion routing of packets through multiple hops, which improves network
136connectivity by connecting two peers behind NAT through an intermediary hop, and
137makes it harder for an observer to determine who is talking to whom.
138
139The mesh service creates tunnels through several hops and supports multicast as
140well. Initial routes to recipients are discovered using the DHT. It is still
141being heavily worked on by the GNUnet team, for instance encryption is missing
142and has to be implemented for the multicast groups in order to make it useful
143for our purpose.
144
145These routing methods only support delivery of packets to connected nodes, in
146order to provide offline messaging, we'll need a store-and-forward mechanism in
147the network. This can be implemented by storing encrypted packets on more stable
148nodes in the network, until the recipient comes back online.
149
150#+BEGIN_COMMENT
151GNUnet's DHT component can be used for facilitating the bootstrapping process by
152storing user public key to current node ID mappings in the DHT. This allows
153peers offline for a longer period to look up the current node of a contact
154in order to re-establish connection to the network, or it can be used to publish
155addresses of nodes hosting public groups or providing a public news feed.
156#+END_COMMENT
157
158GNUnet also has an anonymous file sharing component which uses a DHT together
159with the GNUnet Anonymity Protocol (GAP). For our use case -- transferring files
160between friends -- this is not needed, instead we transfer files just like other
161messages, using PSYC's multicast distribution channels. As the PSYC packet
162syntax supports binary data without any encoding, this causes no additional
163overhead. In order to transfer files, we would have to split them up into
164smaller fragments, as the maximum packet size supported by GNUnet is 64KB.
165
166#+CAPTION: Components and message flow in GNUnet
167#+LABEL: fig:arch
168#+ATTR_LaTeX: width=8.2cm placement=[h!]
169[[./gnunet.png]]
170
171** Messaging daemon
172
173GNUnet's modular architecture allows us to extend it with a service that
174implements a messaging protocol, manages the connections between people, and
175provides a local client interface. This service -- called psycd -- uses the PSYC
176protocol for communication with both other peers and local clients.
177
178Psycd sends messages through GNUnet core, which encrypts the message and passes
179it to the modular transport system, sending packets through one of its transport
180plugins.
181
182In our prototype we use direct connections to peers. Users manually add their
183friends by exchanging hello messages, which contain their public key and current
184addresses. For the prototype version the focus was on the implementation of the
185messaging daemon, and we intend to work on the underlying routing mechanism in
186future versions.
187
188See figure \ref{fig:arch} for an illustration of the components used in the
189system. Dotted parts are not existing yet, only planned. The arrows depict the
190flow of messages between components.
191
192** Functionality
193
194One of the core concepts of PSYC is programmable channels with their own
195subscription lists. Using this combined with custom user interfaces makes it
196possible to implement the usual functionality found in centralized and federated
197social networks, like private and group messages, status updates, photo and link
198sharing, as well as features not found in those networks, like sharing of files
199and custom content, or real-time notifications for custom events.
200
201As Secure Share runs on the users' own device and stores all incoming messages
202and data locally, this enables offline usage and local search in the data
203received from subscribed friends or groups.
diff --git a/secushare-old-latex/arch.dia b/secushare-old-latex/arch.dia
new file mode 100644
index 0000000..a68937b
--- /dev/null
+++ b/secushare-old-latex/arch.dia
Binary files differ
diff --git a/secushare-old-latex/arch.png b/secushare-old-latex/arch.png
new file mode 100644
index 0000000..07afd34
--- /dev/null
+++ b/secushare-old-latex/arch.png
Binary files differ
diff --git a/secushare-old-latex/clients b/secushare-old-latex/clients
new file mode 100644
index 0000000..13da29d
--- /dev/null
+++ b/secushare-old-latex/clients
@@ -0,0 +1,116 @@
1
2* Clients
3
4Clients implement a user interface for interacting with the PSYC network. They
5connect to the PSYC daemon and link with a person entity. After successful
6linking they receive all the packets destined for that person and can send
7packets originating from the person. In the current implementation of psycd no
8authentication is required for linking, so it's only suitable for localhost use,
9later we'll provide password authentication as well.
10
11We have developed a client library -- called libpsycclient -- providing a simple
12API for clients. It implements the core logic used by clients to interact with
13the PSYC network. It allows clients to establish a connection to psycd, so they
14can send and receive packets for their person entity. Clients can define
15callback functions for handling incoming packets and various events,
16e.g. handling linking and unlinking or adding and removing aliases. The library
17also provides various commands used in clients, such as entering and leaving
18contexts, sending messages, setting aliases, or querying and manipulating the
19context state.
20
21By using the client library, implementing new clients is much simpler. With the
22library providing all the underlying logic, client developers can focus on the
23GUI, implementing message display and UI elements performing various commands
24provided by the library.
25
26** Desktop clients
27
28#+CAPTION: irssyc, a text-based client
29#+LABEL: fig:irssyc
30#+ATTR_LaTeX: width=14cm placement=[t!]
31[[./shot-irssyc-gray.png]]
32
33#+CAPTION: secushare, a GUI client
34#+LABEL: fig:secushare
35#+ATTR_LaTeX: width=14cm placement=[ht]
36[[./shot-secushare.png]]
37
38We have implemented two clients so far: a text-based client and one with a
39graphical user interface (GUI).
40
41The text-based client, irssyc (figure \ref{fig:irssyc}), is implemented in C as
42a module for Irssi, a popular chat client. It is more suited for advanced users
43and for development and testing purposes. It shows each subscribed channel in
44one of its windows and provides access to commands implemented by the client
45library.
46
47The GUI client, secushare (figure \ref{fig:secushare}), is implemented using Qt
48in C++. It uses Qt's relatively new declarative user interface (UI) description
49language, QML. The C++ part of the application implements data models used by
50QML components to display data -- such as the contact list or messages in a
51channel -- and provides access to the commands implemented by the client library
52from QML.
53
54The reasons for choosing Qt were its extensive platform support and its
55declarative UI description language, QML, which makes it easier to accomplish a
56complex but still consistent user interface with good usability.
57
58Qt supports most desktop operating systems -- including Windows, Linux and Mac
59OS X -- and a couple of mobile platforms as well: Maemo, MeeGo, Windows Mobile
60and Symbian. Recently it has been ported to Android as well, and there's an iOS
61port being developed, too.
62
63** Web interface
64
65We have plans for developing a web interface as well, which allows remote access
66of a node installed on a plug computer or server machine. This is useful in case
67the user does not have a device available that runs a full node with the whole
68software stack. The web interface will be a PSYC client written in JavaScript,
69communicating with psycd via WebSocket. This way we only need minimal
70enhancements on the server side, as the client is pretty much like a desktop
71client in this case, only the connection to psycd is implemented
72differently. Now that JavaScript typed arrays are available in most modern
73browsers, parsing of binary packets are possible now purely in JavaScript.
74
75** Mobile clients
76
77As all components of GNUnet are written in C, it is possible to port it to
78smartphone platforms. Problem with this approach, however, is that continuous
79network traffic drains the battery really soon, so we'll have to take measures
80to reduce network traffic. If the mobile node connects only to one trusted node
81-- e.g. hosted on a server or plug computer in the user's home -- which forwards
82the necessary packets for the mobile node, this significantly reduces network
83traffic, as the mobile node does not have to take part in any routing scheme,
84which usually means continuous traffic, even if it's low volume.
85
86Another approach is to only implement a client application for mobile devices
87which connects to a remote psycd on a trusted node over a TLS connection. This,
88however, requires users to set up a server or a plug computer at home and
89configure their firewall or NAT box to allow connections to the PSYC
90daemon. Advantage of the full node approach is that GNUnet already takes care of
91NAT traversal, it does not need to deal with (dynamic) DNS and TLS certificates.
92
93** Extensibility
94
95Extensibility via custom applications is an important aspect of the system. We
96have two different approaches to achieve this.
97
98*** Channel API
99
100Channels can have an interface type defined in an =_interface= state
101variable. The default view is a chat interface, and we're planning to provide a
102few other built-in types in the secushare GUI client, e.g. a microblogging
103interface with status updates.
104
105We intend to enable developers to write custom applications on top of channels,
106which will run in a sandboxed QML or HTML view inside the client, using a
107JavaScript API for sending and receiving packets for the channel. This approach
108does not expose any private user data to the applications, as they only have
109access to the channel they're running in, and nothing else.
110
111*** Client API
112
113For more complex tasks custom client applications have to be built using the
114libpsycclient C library. This approach allows full access to user data and
115messages for the application, thus users should be careful what client
116applications they install on their machine.
diff --git a/secushare-old-latex/conclusion b/secushare-old-latex/conclusion
new file mode 100644
index 0000000..f102b32
--- /dev/null
+++ b/secushare-old-latex/conclusion
@@ -0,0 +1,37 @@
1* Conclusion and Future Work
2
3The implementation of Secure Share contributes to the efforts of creating a
4privacy protecting peer-to-peer social network. The client API provided as a
5library allows for creating various client applications right away, while the
6lower layers of the system are worked out.
7
8By implementing psycd as a service for the GNUnet framework, it allows us to
9benefit from GNUnet's modular architecture, which can be extended with new or
10improved routing schemes in future versions. The DV and mesh service are areas
11which need improvement. We need to have proper multicast message distribution in
12the network, and the mesh service is a promising candidate for that. It
13implements multicast groups, but group encryption still has to be implemented
14for this service. Thus improvements on the routing level are necessary to make
15the system really scalable and privacy protecting.
16
17As the implementation is still in a prototype stage, further work is needed to
18enhance the functionality of the system. Areas that need more work are:
19
20- improve the functionality and usability of the user interface, e.g. add
21 dialogs for friendship establishment, and add different interfaces for different
22 types of channels, e.g. status updates.
23- implement dedicated groups independent of person entities
24- user identities should be decoupled from node identities by assigning separate
25 keys to users, so they have a master key and subkeys for their devices
26- file transfer over PSYC, this requires splitting large packets into smaller
27 fragments and reassembling them when receiving
28- add UNIX socket support to psycd, as currently only TCP sockets are supported
29 for clients
30- TLS sockets could be added later as well to enable secure connection to a
31 remote node in case a local installation is not available
32- make the system work on mobile devices -- this could be done either via
33 setting up a GNUnet node on the device or via establishing a TLS connection to
34 a remote node; this also requires developing a user interface specifically
35 designed for mobile devices
36- implement a web interface
37- implement testing using the GNUnet testing library
diff --git a/secushare-old-latex/context.dia b/secushare-old-latex/context.dia
new file mode 100644
index 0000000..f70fa0c
--- /dev/null
+++ b/secushare-old-latex/context.dia
Binary files differ
diff --git a/secushare-old-latex/context.png b/secushare-old-latex/context.png
new file mode 100644
index 0000000..6efd6b8
--- /dev/null
+++ b/secushare-old-latex/context.png
Binary files differ
diff --git a/secushare-old-latex/gnunet-h.png b/secushare-old-latex/gnunet-h.png
new file mode 100644
index 0000000..ac97aaa
--- /dev/null
+++ b/secushare-old-latex/gnunet-h.png
Binary files differ
diff --git a/secushare-old-latex/gnunet.dia b/secushare-old-latex/gnunet.dia
new file mode 100644
index 0000000..e498ff6
--- /dev/null
+++ b/secushare-old-latex/gnunet.dia
Binary files differ
diff --git a/secushare-old-latex/gnunet.png b/secushare-old-latex/gnunet.png
new file mode 100644
index 0000000..57fce5e
--- /dev/null
+++ b/secushare-old-latex/gnunet.png
Binary files differ
diff --git a/secushare-old-latex/impl b/secushare-old-latex/impl
new file mode 100644
index 0000000..3dbb2b9
--- /dev/null
+++ b/secushare-old-latex/impl
@@ -0,0 +1,392 @@
1* Implementation
2
3This chapter describes core concepts in PSYC, how they are applied in a
4peer-to-peer context and what changes we had to make to the federated PSYC
5\cite{psyc-paper} protocol to make it work in a peer-to-peer network.
6
7Federated PSYC is the existing implementation of the PSYC protocol designed for
8a federated architecture. It is implemented as a stand-alone daemon process
9written in the LPC language.
10
11P2P PSYC is the new implementation we have developed and the one we use in
12Secure Share. The messaging daemon -- called psycd -- is implemented in C as a
13service in the GNUnet framework. It uses GNUnet libraries for communication with
14the rest of GNUnet, and libpsyc for the parsing and rendering of PSYC packets.
15It stores data in an SQLite database.
16
17** Syntax
18
19PSYC is a text-based protocol with length prefixes for binary data, which makes
20it possible to transmit any kind of content in PSYC packets efficiently while
21keeping the protocol extensible. Its syntax is described in [[#syntax][Appendix 1]].
22
23An example packet looks like this:
24
25#+BEGIN_SRC psyc
26:_context psyc://J61VSCQA:g/#test
27:_source_relay psyc://I0GCD93U:g/
2870
29=_simple_var value
30:_binary_var 5 value
31_method_name
32Packet
33body
34here.
35|
36#+END_SRC
37
38A packet contains a routing header, followed by the length of the rest of the packet,
39context state modifiers, the method name and the packet body.
40
41** Identifiers
42
43In federated PSYC a server is identified by its DNS domain name. A server hosts
44person and group entities, each of which can manage several channels. Uniforms
45serve as identifiers for entities or channels, described with a URI (Uniform
46Resource Identifier) syntax:
47
48: psyc://host[:port[transport]][/[entity-type]entity[#channel]]
49: psyc://example.net/~alice#friends
50
51In peer-to-peer PSYC DNS is not employed, a public key is used instead to
52identify node, person or group. GNUnet uses a SHA-512 hash of the public key as
53node identifiers, we use a similar method for identifying entities. The
54ASCII-encoded version of this hash becomes the host part of the uniform, with no
55port number and 'g' as transport identifier:
56
57: psyc://pubkey-hash:g[/[entity-type]entity[#channel]]
58: psyc://I0GC...L29G:g/#friends
59
60As these identifiers are very long and not user-friendly, they can be aliased to
61shorter nicknames. The aliases are only used in client applications, they do not
62appear on the protocol level.
63
64In the prototype version GNUnet's host keys are used for identifying person
65entities as well, this simplification allows only one person per node. A more
66elaborate identification scheme is to be implemented later.
67
68Each user will have a master key which serves as the identifier of the person,
69its purpose is to sign subkeys used by various devices of the person. If a
70subkey gets compromised, the master key can be used to prune messages sent with
71the compromised key.
72
73These subkeys are assigned to person entities. A GNUnet node can host one or
74more entities. When using the distance vector transport, node and entity IDs are
75added to the DV routing table, and nodes gossip about available peers and
76entities in a local neighborhood up to a limited number of hops away, in the
77social circle of users. When using the mesh service, user ID to current node ID
78mappings are stored in the DHT.
79
80** Circuits
81
82A circuit is a virtual connection between two PSYC nodes, packets are sent and
83received over circuits. When sending packets the circuit type is determined by
84the transport specified in the target uniform.
85
86In federated PSYC we had TCP, UDP and TLS transports. In P2P PSYC psycd
87implements two circuit types so far: TCP circuits for local clients and GNUnet
88circuits for remote peers. Unix sockets, TLS and possibly UDP circuits are
89planned for later.
90
91** Contacting peers
92
93In federated PSYC it was enough to know the uniform of a person or group to
94establish contact. The uniform contains the host name, port number and transport
95method, which is all the information needed to establish connection to the
96remote entity.
97
98When using PSYC over P2P, two nodes have to know each other's public key and
99know how to reach the node associated with the public key. GNUnet introduces
100nodes to each other using hello messages which contain a public key and various
101transport methods and addresses which can be used to establish contact with the
102node. In case of the DV transport a hello message contains the identifier of
103another node through which it can be reached. The DV routing protocol gossips
104about connected nodes and entities in the network so they become reachable by
105their social network.
106
107When two users want to talk to each other, they should have received a hello
108message from the other party beforehand. When using the DV transport they might
109already know about each other if they are connected through common friends and
110received a gossip message about the other node. If they are on the same network
111they would discover each other through IPv4 broadcast or IPv6 multicast, or when
112using the WLAN transport a WiFi mesh network is created from the present
113nodes. Otherwise a hello message can be exchanged manually between users, using
114e.g. email or a USB stick. When sending a hello message over an insecure channel
115it should be encrypted using a shared secret in order to maintain
116confidentiality and integrity of the information contained within. Usually it's
117enough to exchange hello messages manually once when establishing connection for
118the first time, after that more stable, longer running nodes would be available
119to bootstrap a reconnecting node.
120
121When connection is established between two users, they set appropriate trust
122levels for each other -- which can be used in routing decisions in the network --
123and they subscribe one or more channels of the other party.
124
125** Entities
126
127Entities are addressable objects in the PSYC network. Entity types include place
128entities which are used for group communication or news feeds, and person
129entities which can make friendships between each other and subscribe to other
130entities. Each entity manages one or more channels with different subscription
131lists.
132
133Psycd implements person entities enabling clients to link to their entity, send
134and receive messages and manage membership of various channels. It also has a
135simple implementation of place entities providing dedicated group messaging.
136
137** Multicast contexts
138
139PSYC uses multicast contexts for efficient distribution of messages. A context
140is managed by the context master at the top of the distribution tree. Context
141members send packets to the context master which distributes them to context
142slaves on the next level in the multicast tree, which distribute them further
143down the tree. Figure 4.1 shows such a tree.
144
145#+CAPTION: Multicast context distribution tree
146[[./context.png]]
147
148Entities manage multiple channels, each of which is a separate multicast context
149having different membership and multicast distribution tree. Social
150interactions, such as status updates, group and private messaging can be modeled
151using these channels. An entity manages membership of its channels, in case of a
152person entity this could be used to create different circles of friends using a
153channel for each of them, or provide different channels for various topics to
154which interested friends -- or if desired anyone who can contact the person --
155can subscribe to. Ad-hoc group and private chats with friends can be modeled as
156well with channels of a person entity.
157
158Federated PSYC only implemented manually configured multicast distribution trees
159so far, this should be made fully automatic in the peer-to-peer version. When
160multicast routing is added, every node becomes a multicast routing hop serving
161several multicast contexts. A node can join a multicast context at any other
162node already a member of that particular context. By adding encryption to
163multicast contexts any node can help in the multicast routing process without
164being able to decrypt message contents. This way receiving packets for a
165multicast context does not necessarily mean that the given node can decrypt the
166packets sent to it. In its simplest implementation multicast encryption involves
167a symmetric key distributed by the context master to all the members which has
168to be changed periodically, and when a member joins or leaves.
169
170In \cite{hordes} Hordes, an anonymity protocol based on IP multicast is
171suggested. While we're not using IP multicast, part of their analysis could be
172applied to application-level multicast implemented in a P2P network.
173
174The prototype does not implement actual multicast yet, multicast contexts are
175modeled but messages to contexts are distributed to each member by unicast.
176
177** Distributed state
178
179PSYC has the concept of distributed state, a set of key-value pairs -- state
180variables -- are assigned to each multicast context and distributed to every
181member. It is used to model profile data, context membership, or any other data
182related to a context. Advantage of this approach is that it avoids unnecessary
183request-response operations as members have an up-to-date version of the state
184data most of the time, and allows local browsing of profiles of contacts, even
185offline. We have implemented distributed state for P2P PSYC in psycd -- a feature
186federated PSYC has long planned for but still lacked.
187
188Context state is kept in sync using state modifiers provided by the PSYC syntax.
189A state modifier adds, removes or modifies a state variable. State changes are
190distributed to context members only once, which means it is very bandwidth
191efficient. Using state modifiers require reliable, in-order delivery of
192packets. Packet loss can be detected with the help of a =_counter= variable in
193the routing header of packets. As the name suggests, it is a counter incremented
194by one for every packet sent to the context. When there's a missed packet, a
195node can re-request it from its parent node in the multicast distribution
196tree. After a node has joined a context, a full state synchronization is
197necessary to bring the node up-to-date.
198
199Syntax of a state modifier in Augmented Backus-Naur Form (ABNF):
200
201#+BEGIN_SRC abnf
202entity-modifier = operator variable entity-arg
203entity-arg = simple-arg / binary-arg / LF
204
205operator = "=" / ":" / "+" / "-" / "?" / "!" / "@"
206variable = 1*kwchar
207simple-arg = HTAB text-data LF
208binary-arg = SP length HTAB binary-data LF
209length = 1*DIGIT
210binary-data = *OCTET
211#+END_SRC
212
213Operators:
214- =:= (set) -- set variable just for the current packet, state is not modified
215- ~=~ (assign) -- assign value to state variable
216- =+= (augment) -- concatenate string or add list/dictionary element, depending
217 on type
218- =-= (diminish) -- remove list or dictionary element
219- =@= (update) -- update an item in a list or dictionary
220- =?= alone on a line: request state synchronization, all state variables are
221 returned in the response
222- ~=~ alone on a line: reset state, i.e. remove all previously stored state
223 variables
224- the rest of the operators are reserved for future use
225
226*** Syntax changes
227
228The state implementation involved some syntax changes: we have added a
229dictionary type in order to be able to store key-value pairs in a state
230variable, and modified the list syntax to make it consistent with the new
231dictionary syntax, allowing us to specify types for list elements as well. We
232have also added a new update modifier, which allows for updating individual list
233and dictionary elements.
234
235These syntax changes were necessary to represent more complex data structures,
236such as context members or alias mappings.
237
238*** List syntax
239
240A list is a list of ordered elements. Its syntax in ABNF is specified as the
241following:
242
243#+BEGIN_SRC abnf
244list = [ default-type ] *list-elem
245list-sep = "|"
246list-elem = list-sep [ "=" type ] [ SP list-value ]
247list-elem =/ list-sep "=" type ":" ] [ length ] [ SP *OCTET ]
248list-value = %x00-7B / %x7D-FF ; any byte except "|"
249#+END_SRC
250
251Examples:
252#+BEGIN_SRC psyc
253=_list_one _type| elem1| elem2| elem3
254=_list_two |=_type1 elem1|=_type2 elem2|=_type3 elem3
255#+END_SRC
256
257**** Inserting list elements
258
259For inserting values before a specified index the =+= operator is used. Index of
260the first element is 1, index of the last is -1. 0 means the end of the list,
261which is the default if the index is omitted.
262
263Syntax of the value part:
264#+BEGIN_SRC abnf
265list-insert = [ list-index SP ] list
266list-index = "#" 1*DIGIT
267#+END_SRC
268
269#+LaTeX: \pagebreak
270
271Example:
272#+BEGIN_SRC psyc
273+_list_fruits | banana| mango
274+_list_fruits #0 | banana| mango
275#+END_SRC
276
277**** Removing list elements
278
279For removing elements the =-= operator is used. Parameters are the start index
280which defaults to -1, and the amount of elements to be removed which defaults to 1.
281
282Syntax of the value part:
283#+BEGIN_SRC abnf
284list-remove = ( list-index SP uint | list-index | uint )
285#+END_SRC
286
287Example:
288#+BEGIN_SRC psyc
289-_list_fruits #1
290-_list_fruits #1 1
291#+END_SRC
292
293*** Dictionary syntax
294
295A dictionary is a set of key-value pairs. Its syntax specified in ABNF is:
296
297#+BEGIN_SRC abnf
298dict = [ type ] *dict-item
299dict-item = dict-item-key dict-item-value
300dict-item-key = "{" ( dict-key / length SP *OCTET) "}"
301dict-item-value = type [ SP dict-value ]
302dict-item-value =/ [ length ] [ ":" type ] [ SP *OCTET ]
303dict-key = %x00-7C / %x7E-FF ; any byte except "{"
304dict-value = %x00-7A / %x7C-FF ; any byte except "}"
305#+END_SRC
306
307=type= is the default type for elements which do not have a type specified.
308
309Examples:
310#+BEGIN_SRC psyc
311=_dict_one _type{4 key1}6 value1{key2} value2{key3}6 value3
312=_dict_two {4 key1}=_type1:6 val1{key2}=_type2 val2{key3}6 val3
313
314=_dict_avatars _picture{alice}3 \o/{bob}7 \oXoXo/
315#+END_SRC
316
317The =struct= type can be used to define dictionary values with less
318repetition. The structure is first defined once, then used for one or all
319elements. It works like a C struct, a list of types are defined in a specific
320order, after that we don't have to specify the types again when specifying the values.
321
322#+BEGIN_SRC psyc
323=_struct_member |=_nick|=_picture
324=_dict_members _struct_member{13 psyc://alice/}12 | alice| \o/
325=_dict_members {psyc://alice/}=_struct_member | alice| \o/
326#+END_SRC
327
328**** Adding dictionary entries
329
330The =+= operator is used for adding entries to an existing dictionary. The syntax
331is equivalent to the initial assignment of entries. If a key already exists in
332the dictionary, its value is overwritten.
333
334**** Removing entries from a dictionary
335
336The =-= operator is used for removing entries, syntax is the same as assignment
337but only the keys are listed.
338
339Example, removing 2 entries:
340#+BEGIN_SRC psyc
341-_dict_members {psyc://alice/}{psyc://bob/}
342#+END_SRC
343
344*** Update syntax
345
346For updating specific entries in a list or dictionary the =@= operator is used. It
347has the following syntax:
348
349#+BEGIN_SRC abnf
350update = 1*index SP op [ type ] [ ":" length] [SP value]
351index = ( dict-item-key / index-list / index-struct )
352index-list = "#" 1*DIGIT
353index-struct = "." type
354#+END_SRC
355
356Examples:
357#+BEGIN_SRC psyc
358@_list_gallery #-1 =_picture:7 \oXoXo/
359@_list_gallery #-1 =:7 \oXoXo/
360@_list_fruits #1 = pear
361@_list_prices #2 =_int 1000
362
363@_dict_gallery {alice} =_picture:7 \oXoXo/
364@_dict_gallery {alice} =:7 \oXoXo/
365@_dict_members {psyc://alice/}._nick = Alice
366@_dict_members {psyc://bob/}._nick + Bob
367@_dict_members {psyc://foo/}._int_score + 2
368#+END_SRC
369
370** Storage
371
372Incoming and outgoing packets, state variables and channel configuration are
373stored in an SQLite database. This allows for persistent storage of context
374state as well, which is restored after a restart of the node. Packets are stored
375for two purposes: it provides a message history for contexts and it can be used
376later to resend lost packets to nodes requesting it.
377
378SQLite is used mainly because of its efficient memory handling and wide platform
379support.
380
381The database consists of two tables with the following schema:
382- *contexts* (*uni* blob primary key, *state* blob, *config* blob,
383 *created* timestamp default current_timestamp)
384- *packets* (*context* blob, *source* blob, *target* blob, *counter* unsigned int,
385 *fragment* unsigned int, *packet* blob,
386 *created* timestamp default current_timestamp,\\
387 *primary key* (context, source, target, counter, fragment))
388
389We store information about subscribed and hosted contexts in these tables.
390The contexts table is used for storing configuration and state of contexts,
391whereas the packets table is for storing packet history. All this information
392is stored in PSYC packet format in the database.
diff --git a/secushare-old-latex/intro b/secushare-old-latex/intro
new file mode 100644
index 0000000..06a0e72
--- /dev/null
+++ b/secushare-old-latex/intro
@@ -0,0 +1,25 @@
1* Introduction
2
3The Internet is getting more and more centralized with users' personal data
4hosted on servers of large service providers, which involves serious privacy
5concerns. As in most cases these systems do not provide end-to-end
6confidentiality, server operators have full access to user data and users are
7often unaware of how much data is stored about them or with whom their data is
8shared with. Such systems include email and instant messaging services like
9GMail and GTalk, social network services like Facebook, Google+ and Twitter, or
10file storage and sharing services like Dropbox.
11
12It is possible to implement social sharing and messaging in a privacy protecting
13way. Chapter 2 describes previous attempts at this by federated social networks,
14problems with that approach and our requirements for secure communication.
15
16We suggest a peer-to-peer architecture as a better basis for a social network
17system in Chapter 3. We show how social interactions would work in such
18a network while maintaining privacy of users.
19
20In Chapter 4 we introduce core concepts of PSYC and show how we integrated it
21with P2P technology provided by the GNUnet framework, and tell more about
22implementation details of the prototype of Secure Share.
23
24Chapter 5 describes the clients we have implemented and shows extension
25possibilities of Secure Share.
diff --git a/secushare-old-latex/ref.bib b/secushare-old-latex/ref.bib
new file mode 100644
index 0000000..6173078
--- /dev/null
+++ b/secushare-old-latex/ref.bib
@@ -0,0 +1,116 @@
1@PhdThesis {gnunet-decrouting,
2 author = {Nathan S. Evans},
3 title = {Methods for Secure Decentralized Routing in Open Networks},
4 volume = {Dr. rer. nat.},
5 year = {2011},
6 month = {08/2011},
7 pages = {234},
8 school = {Technische Universit{\"a}t M{\"u}nchen},
9 address = {Garching bei M{\"u}nchen},
10 abstract = { The contribution of this thesis is the study and improvement of secure, decentralized, robust routing algorithms for open networks including ad-hoc networks and peer-to-peer (P2P) overlay networks. The main goals for our secure routing algorithm are openness, efficiency, scalability and resilience to various types of attacks. Common P2P routing algorithms trade-off decentralization for security; for instance by choosing whether or not to require a centralized authority to allow peers to join the network. Other algorithms trade scalability for security, for example employing random search or flooding to prevent certain types of attacks. Our design attempts to meet our security goals in an open system, while limiting the performance penalties incurred.
11
12 The first step we took towards designing our routing algorithm was an analysis of the routing algorithm in Freenet. This algorithm is relevant because it achieves efficient (order O(log n)) routing in realistic network topologies in a fully decentralized open network. However, we demonstrate why their algorithm is not secure, as malicious participants are able to severely disrupt the operation of the network. The main difficulty with the Freenet routing algorithm is that for performance it relies on information received from untrusted peers. We also detail a range of proposed solutions, none of which we found to fully fix the problem.
13
14 A related problem for efficient routing in sparsely connected networks is the difficulty in sufficiently populating routing tables. One way to improve connectivity in P2P overlay networks is by utilizing modern NAT traversal techniques. We employ a number of standard NAT traversal techniques in our approach, and also developed
15and experimented with a novel method for NAT traversal based on ICMP and UDP hole punching. Unlike other NAT traversal techniques ours does not require a trusted third party.
16
17Another technique we use in our implementation to help address the connectivity problem in sparse networks is the use of distance vector routing in a small local neighborhood. The distance vector variant used in our system employs onion routing to secure the resulting indirect connections. Materially to this design, we discovered a serious vulnerability in the Tor protocol which allowed us to use a DoS attack to reduce the anonymity of the users of this extant anonymizing P2P network. This vulnerability is based on allowing paths of unrestricted length for onion routes through the network. Analyzing Tor and implementing this attack gave us valuable knowledge
18which helped when designing the distance vector routing protocol for our system.
19
20 Finally, we present the design of our new secure randomized routing algorithm that does not suffer from the various problems we discovered in previous designs. Goals for the algorithm include providing efficiency and robustness in the presence of malicious participants for an open, fully decentralized network without trusted authorities. We provide a mathematical analysis of the algorithm itself and have created and deployed an implementation of this algorithm in GNUnet. In this thesis we also provide a detailed overview of a distributed
21emulation framework capable of running a large number of nodes using our full code base as well as some of the challenges encountered in creating and using such a testing framework. We present extensive experimental results showing that our routing algorithm outperforms the dominant DHT design in target topologies, and performs comparably in other scenarios.
22},
23 keywords = {DHT, Freenet, GNUnet, NAT, R5N, Tor},
24 isbn = {3-937201-26-2},
25 issn = {1868-2642},
26 attachments = {https://gnunet.org/sites/default/files/NET-2011-08-1.pdf},
27 url = {https://gnunet.org/nate2011thesis},
28}
29
30@Conference {gnunet-gap,
31 author = {Krista Bennett and Christian Grothoff},
32 title = {gap - Practical Anonymous Networking},
33 booktitle = {Designing Privacy Enhancing Technologies},
34 year = {2003},
35 pages = {141{\textendash}160},
36 publisher = {Springer-Verlag},
37 organization = {Springer-Verlag},
38 abstract = {This paper describes how anonymity is achieved in GNUnet, a framework for anonymous distributed and secure networking.
39
40The main focus of this work is gap, a simple protocol for anonymous transfer of data which can achieve better anonymity guarantees than many traditional indirection schemes and is additionally more efficient. gap is based on a new perspective on how to achieve anonymity. Based on this new perspective it is possible to relax the requirements stated in traditional indirection
41schemes, allowing individual nodes to balance anonymity with efficiency according to their specific needs.},
42 keywords = {anonymity, GNUnet, installation},
43 attachments = {https://gnunet.org/sites/default/files/aff.pdf},
44 url = {https://gnunet.org/gap},
45}
46
47@Misc {dark-freenet,
48 author = {Clarke, Ian and Sandberg, Oskar and Toseland, Matthew and Verendel, Vilhelm},
49 title = {Private Communication Through a Network of Trusted Connections: The Dark Freenet},
50 url = {https://freenetproject.org/papers/freenet-0.7.5-paper.pdf},
51}
52
53@article {hordes,
54 author = {Brian Neil Levine and Clay Shields},
55 title = {Hordes {\textendash}- A Multicast Based Protocol for Anonymity},
56 journal = {Journal of Computer Security},
57 volume = {10},
58 number = {3},
59 year = {2002},
60 pages = {213{\textendash}240},
61 abstract = {With widespread acceptance of the Internet as a public medium for communication and information retrieval, there has been rising concern that the personal privacy of users can be eroded by cooperating network entities. A technical solution to maintaining privacy is to provide anonymity. We present a protocol for initiator anonymity called Hordes, which uses forwarding mechanisms similar to those used in previous protocols for sending data, but is the first protocol to make use of multicast routing to anonymously receive data. We show this results in shorter transmission latencies and requires less work of the protocol participants, in terms of the messages processed. We also present a comparison of the security and anonymity of Hordes with previous protocols, using the first quantitative definition of anonymity and unlinkability.},
62 keywords = {anonymity, Hordes, multicast, routing},
63 issn = {0926-227X},
64 url = {http://portal.acm.org/citation.cfm?id=603406},
65 attachments = {https://gnunet.org/sites/default/files/Levine-2002.pdf},
66}
67
68@InProceedings {drac,
69 author = {George Danezis and Claudia Diaz and Carmela Troncoso and Ben Laurie and Google Inc},
70 title = {Drac: An architecture for anonymous low-volume communications},
71 booktitle = {Privacy Enhancing Technologies, volume 6205 of Lecture Notes in Computer Science},
72 year = {2010},
73 pages = {202--219},
74 publisher = {Springer}
75}
76
77@InProceedings {lifesocial,
78 title = {LifeSocial.KOM: A secure and P2P-based solution for online social networks},
79 author = {Graffi, K. and Gross, C. and Stingl, D. and Hartung, D. and Kovacevic, A. and Steinmetz, R.},
80 booktitle = {Consumer Communications and Networking Conference (CCNC), 2011 IEEE},
81 pages = {554--558},
82 year = {2011},
83 organization = {IEEE},
84 attachments = {http://www.cs.uni-paderborn.de/fileadmin/Informatik/FG-TI/Graffi/Publications/Kalman.Graffi_2011_IEEE.CCNC.11_LifeSocial.KOM.A.Secure.and.P2P.based.Solution.for.OSNs.pdf}
85}
86
87@Misc {psyc-paper,
88 author = {Carlo v. Loesch},
89 title = {Protocol for Synchronous Conferencing},
90 year = {2007},
91 url = {http://www.psyc.eu/whitepaper/white.en.html},
92}
93
94@Misc {psyc-bench,
95 title = {Libpsyc Performance Benchmarks},
96 url = {http://lib.psyc.eu/bench}
97}
98
99@Misc {js-crypto,
100 author = {Nate Lawson},
101 title = {Final post on Javascript crypto},
102 year = {2010},
103 url = {http://rdist.root.org/2010/11/29/final-post-on-javascript-crypto/},
104}
105
106@Conference {fsw-paranoia,
107 author = {Carlo v. Loesch and Gabor Toth and Mathias Baumann},
108 title = {Scalability \& Paranoia in a Decentralized Social Network},
109 booktitle = {Federated Social Web conference},
110 year = {2011},
111 month = {06/2011},
112 address = {Berlin, Germany},
113 abstract = {There{\textquoteright}s a lot of buzz out there about "replacing" Facebook with a privacy-enhanced, decentralized, ideally open source something. In this talk we{\textquoteright}ll focus on how much privacy we should plan for (specifically about how we cannot entrust our privacy to modern virtual machine technology) and the often underestimated problem of getting such a monster network to function properly. These issues can be considered together or separately: Even if you{\textquoteright}re not as concerned about privacy as we are, the scalability problem still persists. },
114 keywords = {GNUnet, privacy, social networks},
115 url = {http://secushare.org/2011-FSW-Scalability-Paranoia},
116}
diff --git a/secushare-old-latex/req b/secushare-old-latex/req
new file mode 100644
index 0000000..b0d4f75
--- /dev/null
+++ b/secushare-old-latex/req
@@ -0,0 +1,129 @@
1* Requirements and Related Work
2
3This chapter describes our requirements for a system that we can use to build a
4secure social network and introduces currently available alternatives to
5centralized social networks. This chapter is partly based on \cite{fsw-paranoia}.
6
7** Privacy
8
9Our goal is to provide a system for social interaction in a privacy-protecting
10and scalable manner. A truly private communication system we're aiming for
11should have the following properties:
12
13- End-to-end encryption: only the intended recipients can read the messages, no
14 server or network operators along the way between the communicating
15 parties. To ensure this, it is not enough to use link-level encryption between
16 a client and a server, end-to-end encryption is needed, which means that every
17 participant in the system has to manage their own cryptographic keys on their
18 own systems.
19- Perfect forward secrecy: messages transmitted over the network can't be
20 decrypted later if a user's private key is compromised. To achieve this,
21 temporary session keys need to be used when encrypting messages.
22- When logging a message to disk it should not contain a cryptographic signature
23 of the sender, so if someone gains access to the log, it does not provide a
24 proof that someone actually transmitted the messages.
25- An observer cannot determine for sure when two parties are communicating and
26 how much data they exchange with each other. This requires a trade-off: while
27 sending packets through other participants in the network would ensure this,
28 this also increases message delay.
29- Padding of packets is necessary to prevent attacks based on statistical
30 analysis of packet lengths. This is absolutely necessary when sending messages
31 through multiple hops, otherwise it would be enough to monitor packet lengths
32 to determine where a packet is forwarded to.
33- Delayed forwarding is also necessary to prevent correlation of received and
34 transmitted packets when forwarding. Sending multiple packets at once at
35 certain intervals would help to prevent this.
36- Private contact list: only visible to whom it needs be -- typically other
37 friends -- not available publicly or managed on servers where server operators
38 have access to it.
39- Every component of the system should be open source, so one can ensure it
40 really works as advertised. A closed component would be a security risk, as it
41 could leak information or otherwise weaken the security of the system, which
42 is harder to detect when no source code is available. This can be enforced
43 with a copyleft license, such as the Affero General Public License (AGPL).
44
45Currently available alternatives to centralized social network services are in
46most cases federated networks, which use a standardized protocol between servers
47enabling many service providers to take part in the network and communicate with
48each other. Examples for such systems include web-based platforms like Diaspora
49or Friendica, and others using a messaging protocol extended with social network
50functionalities -- friendship establishment, status messages to friends -- like
51OneSocialWeb, which is based on XMPP (Extensible Messaging and Presence
52Protocol) or PSYC (Protocol for SYnchronous Conferencing).
53
54These federated systems intend to offer more privacy than centralized systems,
55but they still not fulfill most of the requirements above, in most cases they
56only provide link-level encryption. They still store personal data on servers
57unencrypted, just like centralized systems. Users can have a server themselves,
58but that requires server administration skills which average users do not have,
59so we'll end up with a few larger servers and several smaller ones, just like in
60the case of email. Privacy is an even more serious issue in this case as it's no
61longer enough to trust one company, there are several server operators in this
62architecture sharing personal data with each other -- users' messages and
63profile data are transmitted to and stored unencrypted on servers of their
64friends as well. Even if some users run their own server, they would still
65communicate with people without their own server, exposing personal data to even
66more server operators this way.
67
68It is possible to enhance privacy of these federated protocols by adding
69end-to-end encryption on top of them, this is what PGP (Pretty Good Privacy)
70does for e-mail and OTR (Off-The-Record Messaging) does for instant messaging
71protocols. While this prevents servers from reading the content of messages,
72they still know everything else about a message, e.g. its sender, recipient, and
73size. There's an additional overhead of base64 encoding, which is needed because
74the underlying messaging protocols often do not support binary data
75transfer. Furthermore PGP and OTR can only be used for one-to-one messaging,
76one-to-many and many-to-many messaging are not supported by them.
77
78** Scalability
79
80Efficient message distribution is crucial in social networks, as one of their
81most prevalent features is sending one-to-many status updates, but many-to-many
82group messaging is frequently used as well. To deliver these messages most
83efficiently, multicast message distribution would be necessary. IP multicast
84does not scale to a large number of channels, as multicast routing tables would
85fill up very fast -- at least one channel would be needed for a user's status
86updates, and similarly, at least one for each group -- thus this has to be
87implemented on the application layer to make it work.
88
89XMPP has a simple distribution strategy, it sends one message per recipient
90server, which is only efficient if there are many large sites. XMPP's
91scalability is also limited by the way it handles presence updates, the majority
92of inter-server traffic in the XMPP network consists of this type of messages.
93
94XMPP's use of an XML stream as network protocol without any framing makes it
95less efficient, as it complicates parsing and makes it impossible to transport
96binary data without Base64 or similar encoding. Also, protocol extensions
97described in XML add a large amount of unnecessary verbosity to the protocol.
98
99PSYC is another federated messaging protocol with a compact but extensible
100syntax, which enables fast parsing and small bandwidth usage. It is a text-based
101protocol with length prefixes for binary data. Benchmarks we made show that it
102outperforms XMPP and JSON when it comes to parsing speed \cite{psyc-bench}.
103
104PSYC sends out one message per recipient server when distributing messages, but
105it also has manual multicast tree configuration.
106
107** Peer-to-peer networks
108
109Peer-to-peer (P2P) networks come closer to fulfilling these privacy
110requirements, as in many cases they're designed with security and privacy in
111mind from the ground up.
112
113Projects such as Tor and I2P aim to create an anonymous overlay network, while
114Freenet and GNUnet focus on anonymous information storage and retrieval. GNUnet
115also provides an extensive framework for writing P2P applications, including
116packet-based communication over different transport mechanisms.
117
118In a P2P network every user of the network runs the P2P software on their own
119computers (a computer in the P2P network is referred to as a node). This allows
120for creating a network architecture where servers are not needed to store and
121manage user data, every user can do so on their own node, giving them more
122control over their data. High-capacity servers we had in federated networks
123would be still useful in a P2P network, they can forward (and store when needed)
124encrypted data without being able to decrypt them, this way improving
125throughput, connectivity and stability of the network.
126
127Combining peer-to-peer network technology with social network semantics allows
128for creating a scalable, privacy-protecting social network based on connections
129of trusted peers. The next section describes the architecture of such a network.
diff --git a/secushare-old-latex/secushare b/secushare-old-latex/secushare
new file mode 100644
index 0000000..0366bd9
--- /dev/null
+++ b/secushare-old-latex/secushare
@@ -0,0 +1,56 @@
1#+TITLE: Secure Share
2#+AUTHOR: Gabor Toth
3#+SETUPFILE: .setup
4
5#+BEGIN_LaTeX
6\frontmatter
7
8\begin{titlepage}
9 \centering
10 \vspace*{10\baselineskip}
11 \huge
12 {{{title}}}
13 \large
14 \\[2\baselineskip]
15 A framework for secure social interaction
16 \\[4\baselineskip]
17 \Large
18 {{{author}}} \\[2\baselineskip]
19 \normalsize
20 \vfill
21 \normalsize
22 May 2012
23% \monthname\ \the\year
24\end{titlepage}
25#+END_LaTeX
26
27* :NOEXPORT:
28
29#+BEGIN_ABSTRACT
30#+INCLUDE abstract
31#+END_ABSTRACT
32
33#+BEGIN_LaTeX
34\renewcommand{\contentsname}{\vspace*{-1em} Contents}
35\tableofcontents
36\listoffigures
37#+END_LaTeX
38
39#+LaTeX: \mainmatter
40
41#+INCLUDE intro
42#+INCLUDE req
43#+INCLUDE arch
44#+INCLUDE impl
45#+INCLUDE clients
46#+INCLUDE conclusion
47
48#+INCLUDE: .setup-back
49#+BEGIN_LaTeX
50\backmatter
51\addcontentsline{toc}{chapter}{Bibliography}
52\printbibliography
53#+END_LaTeX
54
55#+INCLUDE: abbrevs
56#+INCLUDE: syntax
diff --git a/secushare-old-latex/secushare.pdf b/secushare-old-latex/secushare.pdf
new file mode 100644
index 0000000..9486833
--- /dev/null
+++ b/secushare-old-latex/secushare.pdf
Binary files differ
diff --git a/secushare-old-latex/shot-irssyc.png b/secushare-old-latex/shot-irssyc.png
new file mode 100644
index 0000000..eedd898
--- /dev/null
+++ b/secushare-old-latex/shot-irssyc.png
Binary files differ
diff --git a/secushare-old-latex/shot-secushare.png b/secushare-old-latex/shot-secushare.png
new file mode 100644
index 0000000..0c3687e
--- /dev/null
+++ b/secushare-old-latex/shot-secushare.png
Binary files differ
diff --git a/secushare-old-latex/slides.pdf b/secushare-old-latex/slides.pdf
new file mode 100644
index 0000000..7f602db
--- /dev/null
+++ b/secushare-old-latex/slides.pdf
Binary files differ
diff --git a/secushare-old-latex/syntax b/secushare-old-latex/syntax
new file mode 100644
index 0000000..16c417c
--- /dev/null
+++ b/secushare-old-latex/syntax
@@ -0,0 +1,46 @@
1# <<syntax>>
2* Appendix 1 - PSYC Syntax
3
4Syntaxes in this section are described in Augmented Backus-Naur Form (ABNF).
5
6*PACKET SYNTAX*
7
8#+BEGIN_SRC abnf
9packet = routing-header [ content-length content ] "|" LF
10; the length of content is either implicit
11; (scan until LF "|" LF)
12; or explicitly reported in content-length.
13
14routing-header = *routing-modifier
15entity-header = *sync-operation *entity-modifier
16content = entity-header [ body LF ]
17content-length = [ length ] LF
18
19routing-modifier= operator variable ( simple-arg / LF )
20sync-operation = ( "=" LF / "?" LF )
21entity-modifier = operator variable entity-arg
22entity-arg = simple-arg / binary-arg / LF
23
24body = method [ LF data ]
25
26operator = "=" / ":" / "+" / "-" / "?" / "!" / "@"
27simple-arg = HTAB text-data LF
28binary-arg = SP length HTAB binary-data LF
29
30length = 1*DIGIT
31binary-data = *OCTET
32 ; a length byte long byte sequence
33
34method = 1*kwchar
35variable = 1*kwchar
36text-data = *nonlchar
37
38data = *OCTET
39 ; amount of bytes as given by length or until
40 ; an (LF "|" LF) sequence has been encountered
41
42nonlchar = %x00-09 / %x0B-FF
43 ; any byte except \n
44kwchar = %x30-39 / %x41-5A / %x61-7A / "_"
45 ; alphanumeric or _
46#+END_SRC
diff --git a/secushare-old-orgmode/2012-29C3.slides.org b/secushare-old-orgmode/2012-29C3.slides.org
new file mode 100644
index 0000000..3dded9b
--- /dev/null
+++ b/secushare-old-orgmode/2012-29C3.slides.org
@@ -0,0 +1,168 @@
1#+TITLE: Introduction to SecuShare
2#+AUTHOR: Daniel Reusche and Gabor Toth
3#+LANGUAGE: en
4#+OPTIONS: H:3 num:t toc:t \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#+EXPORT_SELECT_TAGS: export
8#+EXPORT_EXCLUDE_TAGS: noexport
9
10#+startup: oddeven
11
12#+startup: beamer
13#+LaTeX_CLASS: beamer
14#+LaTeX_CLASS_OPTIONS: [bigger]
15#+latex_header: \mode<beamer>{\usetheme{Pittsburgh}}
16#+latex_header: \setbeamertemplate{navigation symbols}{}
17#+BEAMER_FRAME_LEVEL: 2
18
19* Introduction
20** Introduction
21 [[file:./img/unicast.png]]
22*** unicast :NOEXPORT:
23- natural communication
24 - this is where we want to go
25
26** Introduction
27 [[file:./img/cloud.png]]
28*** server :NOEXPORT:
29- this is where we are now
30 - servers
31 - clouds
32 - clusters
33- all more or less centrally owned
34
35
36* Goals
37** Goals
38#+Begin_Center
39#+LaTeX: \textbf{\Huge{Transfer Anything}}
40#+End_Center
41*** Transfer :NOEXPORT:
42- Arbitrary stuff
43 - messages
44 - subscription lists, etc.
45 - files
46- future:
47 - push to talk
48 - television
49
50** Goals
51#+Begin_Center
52#+LaTeX: \textbf{\Huge{Resilience}}
53#+End_Center
54*** Resilience :NOEXPORT:
55- Do not get rid of servers but:
56 - Make nodes/content/servers easily exchangeable.
57- It is no problem if a server goes down, because traffic is rerouted.
58- If we put up another server, traffic gets quickly routed over it again.
59
60** Goals
61#+Begin_Center
62#+LaTeX: \textbf{\Huge{Privacy}}
63#+End_Center
64*** Privacy :NOEXPORT:
65- Only intended recipients get the content.
66- public stuff unencrypted
67- Make sure of this by end-to-end encryption
68- Groups and one-on-one chat
69 - goal mpotr
70 - encrypted
71 - authenticated
72 - repudiable
73- maybe even anonymity later:
74 - play with packet padding and timing
75 - onion routing possible
76
77** Goals
78#+Begin_Center
79#+LaTeX: \textbf{\Huge{Scalability}}
80#+End_Center
81*** Scalability :NOEXPORT:
82- not only adsl nodes
83 - servers for routing, buffering
84 - bandwith, cpu, memory
85 - everything is encrypted, so no problem
86- Round Robin slow
87 - Carlos Mailverteiler
88 - vor 5 jahren 70% XMPP traffic presence messages
89 - http://about.psyc.eu/XMPP#Scalability
90- multicast distribution trees scale well
91 - psyc: several hundred instances of up to 10k users each
92
93** Goals
94 [[file:./img/multicast.png]]
95*** notes :NOEXPORT:
96- this is what we want to do
97- make the first scale on large networks
98
99** Goals
100#+Begin_Center
101#+LaTeX: \textbf{\Huge{API}}
102#+End_Center
103*** API :NOEXPORT:
104- Ease of use for developers = more applications
105- we need gread (Easily adaptable) interfaces
106 - our grandmothers have to be able to use it
107- The developers will never be able to keep up with all the needs of the users
108* How Not To Do It
109** How Not To Do It
110#+Begin_Center
111#+LaTeX: \textbf{\Huge{Trust in Servers}}
112#+End_Center
113*** notes :NOEXPORT:
114- Can be seized
115- server unfriendly legislation can be passed, eg liability
116- In current architectures, lots of data resides there
117- federation:
118 - data is visible, accessible on even more servers
119 - you have to trust even more admins
120- Central points of failure
121 - even with crypto, the data is not lost but the communication channels are
122- Servers are vulnerable to:
123 - Memory analysis
124- VPSs are vulnerable to :
125 - Being fed bad random data -> weak crypto
126
127** How Not To Do It
128#+Begin_Center
129#+LaTeX: \textbf{\Huge{Encryption in the Browser}}
130#+End_Center
131*** notes :NOEXPORT:
132- trust in integrity of whatever code you get from the server required
133- server compromised, all users compromised
134- ssl ca system broken
135
136* Technologies
137** Technologies
138#+Begin_Center
139#+LaTeX: \textbf{\Huge{GNUnet}}
140#+End_Center
141*** GNUnet :NOEXPORT:
142- Use it for routing and encryption.
143- anonymous filehosting
144- TUM, in the heritage of freenet
145
146** Technologies
147#+Begin_Center
148#+LaTeX: \textbf{\Huge{PSYC}}
149#+End_Center
150*** PSYC :NOEXPORT:
151- Use it for multicast binary transport and trust graph.
152- Scales well, several hundred instances with 10k users each
153
154* About Us
155** Contributors
156- Carlo von lynX
157- Gabor Toth
158- Matthias Baumann
159- Daniel Reusche
160** URL
161#+Begin_Center
162#+LaTeX: \textbf{\Huge{secushare.org}}
163#+End_Center
164
165
166
167
168
diff --git a/secushare-old-orgmode/2012-SIGINT.slides.org b/secushare-old-orgmode/2012-SIGINT.slides.org
new file mode 100644
index 0000000..1625442
--- /dev/null
+++ b/secushare-old-orgmode/2012-SIGINT.slides.org
@@ -0,0 +1,168 @@
1#+TITLE: Introduction to SecuShare
2#+AUTHOR: Daniel Reusche
3#+LANGUAGE: en
4#+OPTIONS: H:3 num:t toc:t \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#+EXPORT_SELECT_TAGS: export
8#+EXPORT_EXCLUDE_TAGS: noexport
9
10#+startup: oddeven
11
12#+startup: beamer
13#+LaTeX_CLASS: beamer
14#+LaTeX_CLASS_OPTIONS: [bigger]
15#+latex_header: \mode<beamer>{\usetheme{Pittsburgh}}
16#+latex_header: \setbeamertemplate{navigation symbols}{}
17#+BEAMER_FRAME_LEVEL: 2
18
19* Introduction
20** Introduction
21 [[file:./img/unicast.png]]
22*** unicast :NOEXPORT:
23- natural communication
24 - this is where we want to go
25
26** Introduction
27 [[file:./img/cloud.png]]
28*** server :NOEXPORT:
29- this is where we are now
30 - servers
31 - clouds
32 - clusters
33- all more or less centrally owned
34
35
36* Goals
37** Goals
38#+Begin_Center
39#+LaTeX: \textbf{\Huge{Transfer Anything}}
40#+End_Center
41*** Transfer :NOEXPORT:
42- Arbitrary stuff
43 - messages
44 - subscription lists, etc.
45 - files
46- future:
47 - push to talk
48 - television
49
50** Goals
51#+Begin_Center
52#+LaTeX: \textbf{\Huge{Resilience}}
53#+End_Center
54*** Resilience :NOEXPORT:
55- Do not get rid of servers but:
56 - Make nodes/content/servers easily exchangeable.
57- It is no problem if a server goes down, because traffic is rerouted.
58- If we put up another server, traffic gets quickly routed over it again.
59
60** Goals
61#+Begin_Center
62#+LaTeX: \textbf{\Huge{Privacy}}
63#+End_Center
64*** Privacy :NOEXPORT:
65- Only intended recipients get the content.
66- public stuff unencrypted
67- Make sure of this by end-to-end encryption
68- Groups and one-on-one chat
69 - goal mpotr
70 - encrypted
71 - authenticated
72 - repudiable
73- maybe even anonymity later:
74 - play with packet padding and timing
75 - onion routing possible
76
77** Goals
78#+Begin_Center
79#+LaTeX: \textbf{\Huge{Scalability}}
80#+End_Center
81*** Scalability :NOEXPORT:
82- not only adsl nodes
83 - servers for routing, buffering
84 - bandwith, cpu, memory
85 - everything is encrypted, so no problem
86- Round Robin slow
87 - Carlos Mailverteiler
88 - vor 5 jahren 70% XMPP traffic presence messages
89 - http://about.psyc.eu/XMPP#Scalability
90- multicast distribution trees scale well
91 - psyc: several hundred instances of up to 10k users each
92
93** Goals
94 [[file:./img/multicast.png]]
95*** notes :NOEXPORT:
96- this is what we want to do
97- make the first scale on large networks
98
99** Goals
100#+Begin_Center
101#+LaTeX: \textbf{\Huge{API}}
102#+End_Center
103*** API :NOEXPORT:
104- Ease of use for developers = more applications
105- we need gread (Easily adaptable) interfaces
106 - our grandmothers have to be able to use it
107- The developers will never be able to keep up with all the needs of the users
108* How Not To Do It
109** How Not To Do It
110#+Begin_Center
111#+LaTeX: \textbf{\Huge{Trust in Servers}}
112#+End_Center
113*** notes :NOEXPORT:
114- Can be seized
115- server unfriendly legislation can be passed, eg liability
116- In current architectures, lots of data resides there
117- federation:
118 - data is visible, accessible on even more servers
119 - you have to trust even more admins
120- Central points of failure
121 - even with crypto, the data is not lost but the communication channels are
122- Servers are vulnerable to:
123 - Memory analysis
124- VPSs are vulnerable to :
125 - Being fed bad random data -> weak crypto
126
127** How Not To Do It
128#+Begin_Center
129#+LaTeX: \textbf{\Huge{Encryption in the Browser}}
130#+End_Center
131*** notes :NOEXPORT:
132- trust in integrity of whatever code you get from the server required
133- server compromised, all users compromised
134- ssl ca system broken
135
136* Technologies
137** Technologies
138#+Begin_Center
139#+LaTeX: \textbf{\Huge{GNUnet}}
140#+End_Center
141*** GNUnet :NOEXPORT:
142- Use it for routing and encryption.
143- anonymous filehosting
144- TUM, in the heritage of freenet
145
146** Technologies
147#+Begin_Center
148#+LaTeX: \textbf{\Huge{PSYC}}
149#+End_Center
150*** PSYC :NOEXPORT:
151- Use it for multicast binary transport and trust graph.
152- Scales well, several hundred instances with 10k users each
153
154* About Us
155** Contributors
156- Carlo von lynX
157- Gabor Toth
158- Matthias Baumann
159- Daniel Reusche
160** URL
161#+Begin_Center
162#+LaTeX: \textbf{\Huge{secushare.org}}
163#+End_Center
164
165
166
167
168
diff --git a/secushare-old-orgmode/2012-SIGINT.slides.pdf b/secushare-old-orgmode/2012-SIGINT.slides.pdf
new file mode 100644
index 0000000..29a3d85
--- /dev/null
+++ b/secushare-old-orgmode/2012-SIGINT.slides.pdf
Binary files differ
diff --git a/secushare-old-orgmode/2012-eth0.slides.org b/secushare-old-orgmode/2012-eth0.slides.org
new file mode 100644
index 0000000..3dded9b
--- /dev/null
+++ b/secushare-old-orgmode/2012-eth0.slides.org
@@ -0,0 +1,168 @@
1#+TITLE: Introduction to SecuShare
2#+AUTHOR: Daniel Reusche and Gabor Toth
3#+LANGUAGE: en
4#+OPTIONS: H:3 num:t toc:t \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#+EXPORT_SELECT_TAGS: export
8#+EXPORT_EXCLUDE_TAGS: noexport
9
10#+startup: oddeven
11
12#+startup: beamer
13#+LaTeX_CLASS: beamer
14#+LaTeX_CLASS_OPTIONS: [bigger]
15#+latex_header: \mode<beamer>{\usetheme{Pittsburgh}}
16#+latex_header: \setbeamertemplate{navigation symbols}{}
17#+BEAMER_FRAME_LEVEL: 2
18
19* Introduction
20** Introduction
21 [[file:./img/unicast.png]]
22*** unicast :NOEXPORT:
23- natural communication
24 - this is where we want to go
25
26** Introduction
27 [[file:./img/cloud.png]]
28*** server :NOEXPORT:
29- this is where we are now
30 - servers
31 - clouds
32 - clusters
33- all more or less centrally owned
34
35
36* Goals
37** Goals
38#+Begin_Center
39#+LaTeX: \textbf{\Huge{Transfer Anything}}
40#+End_Center
41*** Transfer :NOEXPORT:
42- Arbitrary stuff
43 - messages
44 - subscription lists, etc.
45 - files
46- future:
47 - push to talk
48 - television
49
50** Goals
51#+Begin_Center
52#+LaTeX: \textbf{\Huge{Resilience}}
53#+End_Center
54*** Resilience :NOEXPORT:
55- Do not get rid of servers but:
56 - Make nodes/content/servers easily exchangeable.
57- It is no problem if a server goes down, because traffic is rerouted.
58- If we put up another server, traffic gets quickly routed over it again.
59
60** Goals
61#+Begin_Center
62#+LaTeX: \textbf{\Huge{Privacy}}
63#+End_Center
64*** Privacy :NOEXPORT:
65- Only intended recipients get the content.
66- public stuff unencrypted
67- Make sure of this by end-to-end encryption
68- Groups and one-on-one chat
69 - goal mpotr
70 - encrypted
71 - authenticated
72 - repudiable
73- maybe even anonymity later:
74 - play with packet padding and timing
75 - onion routing possible
76
77** Goals
78#+Begin_Center
79#+LaTeX: \textbf{\Huge{Scalability}}
80#+End_Center
81*** Scalability :NOEXPORT:
82- not only adsl nodes
83 - servers for routing, buffering
84 - bandwith, cpu, memory
85 - everything is encrypted, so no problem
86- Round Robin slow
87 - Carlos Mailverteiler
88 - vor 5 jahren 70% XMPP traffic presence messages
89 - http://about.psyc.eu/XMPP#Scalability
90- multicast distribution trees scale well
91 - psyc: several hundred instances of up to 10k users each
92
93** Goals
94 [[file:./img/multicast.png]]
95*** notes :NOEXPORT:
96- this is what we want to do
97- make the first scale on large networks
98
99** Goals
100#+Begin_Center
101#+LaTeX: \textbf{\Huge{API}}
102#+End_Center
103*** API :NOEXPORT:
104- Ease of use for developers = more applications
105- we need gread (Easily adaptable) interfaces
106 - our grandmothers have to be able to use it
107- The developers will never be able to keep up with all the needs of the users
108* How Not To Do It
109** How Not To Do It
110#+Begin_Center
111#+LaTeX: \textbf{\Huge{Trust in Servers}}
112#+End_Center
113*** notes :NOEXPORT:
114- Can be seized
115- server unfriendly legislation can be passed, eg liability
116- In current architectures, lots of data resides there
117- federation:
118 - data is visible, accessible on even more servers
119 - you have to trust even more admins
120- Central points of failure
121 - even with crypto, the data is not lost but the communication channels are
122- Servers are vulnerable to:
123 - Memory analysis
124- VPSs are vulnerable to :
125 - Being fed bad random data -> weak crypto
126
127** How Not To Do It
128#+Begin_Center
129#+LaTeX: \textbf{\Huge{Encryption in the Browser}}
130#+End_Center
131*** notes :NOEXPORT:
132- trust in integrity of whatever code you get from the server required
133- server compromised, all users compromised
134- ssl ca system broken
135
136* Technologies
137** Technologies
138#+Begin_Center
139#+LaTeX: \textbf{\Huge{GNUnet}}
140#+End_Center
141*** GNUnet :NOEXPORT:
142- Use it for routing and encryption.
143- anonymous filehosting
144- TUM, in the heritage of freenet
145
146** Technologies
147#+Begin_Center
148#+LaTeX: \textbf{\Huge{PSYC}}
149#+End_Center
150*** PSYC :NOEXPORT:
151- Use it for multicast binary transport and trust graph.
152- Scales well, several hundred instances with 10k users each
153
154* About Us
155** Contributors
156- Carlo von lynX
157- Gabor Toth
158- Matthias Baumann
159- Daniel Reusche
160** URL
161#+Begin_Center
162#+LaTeX: \textbf{\Huge{secushare.org}}
163#+End_Center
164
165
166
167
168
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