combox-paper

notes and other things concerning combox
git clone git://git.ricketyspace.net/combox-paper.git
Log | Files | Refs

commit 4a0baacf8b008da981c32afb56a11cd93d479de6
parent 2c136728999d7451d8eef2f202a08ec7bc524136
Author: Siddharth Ravikumar <sravik@bgsu.edu>
Date:   Fri, 26 Feb 2016 13:33:51 -0500

started drafting chapter 1.

Diffstat:
report/bib/combox.bib | 30++++++++++++++++++++++++++++++
report/chapters/1-intr.tex | 151++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
report/combox-report.pdf | 0
report/combox.tex | 8++++----
4 files changed, 185 insertions(+), 4 deletions(-)

diff --git a/report/bib/combox.bib b/report/bib/combox.bib @@ -1,3 +1,33 @@ +%1 +@misc{website:wikileaks-spyfiles, +title = "WikiLeaks - SpyFiles", +url = "https://wikileaks.org/spyfiles/", +} + +@misc{website:dropbox-privacy, +title = "Dropbox Privacy Policy", +url = "https://www.dropbox.com/privacy", +} + +@misc{src:combo-box, +title = "Combo-Box - source code", +url = "https://bitbucket.org/bgsucodeloverslab/combobox" +} + +@mastersthesis{vollmar-combo-box, +author = "Wesley Vollmar", +title = "Combox-Box", +school = "Bowling Green State University", +type = "Master's Project", +year = "2014", +month = "April", +} + +@misc {website:systemd, +title = "systemd - System and Service Manager", +url = "https://www.freedesktop.org/wiki/Software/systemd/" +} + %3 @article{yeo, title = "Leveraging client-side storage techniques for enhanced use of multiple consumer cloud storage services on resource-constrained mobile devices ", diff --git a/report/chapters/1-intr.tex b/report/chapters/1-intr.tex @@ -0,0 +1,151 @@ +\chapter{Introduction} + +\epigraph{From a security perspective, if you're connected, you're + screwed.}{\textit{Daniel J. Bernstein}} + +Internet companies have made it trivial for computer users to store +data/information on their computers and at the same time there is a +lot of evidence of governments and other powerful organizations being +able to access information/data stored on the Internet companies' +computers\cite{website:wikileaks-spyfiles}. Also most companies add a +standard clause in their privacy policy that allows them to disclose +information about users or information stored/created by users to +``third parties'': + +\begin{quote} + \emph{Law \& Order}. We may disclose your information to third + parties if we determine that such disclosure is reasonably necessary + to (a) comply with the law; (b) protect any person from death or + serious bodily injury; (c) prevent fraud or abuse of Dropbox or our + users; or (d) protect Dropbox's property rights. -- Dropox Privacy + Policy\cite{website:dropbox-privacy} +\end{quote} + +In this type of world, it did be good to have a program that would +encrypt all the data/information before storing it on the storage +provided by Internet companies. combox aims to be one such program +which not only encrypts but stores only a part of the encrypted +data/information on the Internet company' storage, thus making it +non-trivial for ``third parties'' get access the user's +data/information. Section \ref{1-sec-b} gives a conceptual +introduction to combox; Section \ref{1-sec-cb-diff} enumerates how combox +is different from Combo-Box; lastly, section \ref{1-sec-using-cb} +contains information on how one can start using combox. + +\section{What is combox?}\label{1-sec-cb} + +combox allows the user to store all her files in the ``combox +directory'' and combox picks each file stored in the combox directory, +splits them into N shards, encrypts each of the N shards and spreads +the shards to N node directories. A ``node directory'' is the +directory of the file storage provider (Dropbox directory is a node +directory). Figure \ref{fig:1-combox-overview-0}, illustrates how a file +called \verb+strunk-white.pdf+ is split, encrypted and spreaded across +N node directories; shards \verb+strunk-white.pdf.shard0+ to +\verb+strunk-white.pdf.shardN+ are encrypted. + +\begin{figure}[h] +\begin{verbatim} + + __________________________ + | | + -->| strunk-white.pdf.shard0 | + | | | + ___________________ | |_________________________| + | | | node directory 0 + | strunk-white.pdf | / + | | | __________________________ + |__________________| |\ | | + combox directory || | strunk-white.pdf.shard1 | + ||->| | + | |_________________________| + | node directory 1 + | . + | . + | . + | + | __________________________ + | | | + --->| strunk-white.pdf.shardN | + | | + |_________________________| + node directory N +\end{verbatim} +\caption{combox overview - file splitting} +\label{fig:1-combox-overview-0} +\end{figure} + +combox does not sync encrypted shards stored in the node directories +to the respective file storage provider's server and it depends on the +respective file storage provider's client program to sync the +shards. + +combox can be used on all of the user's computers. For instance, the +user can install combox on her second computer and combox will +reconstruct the file from the encrypted shards stored in the node +directories into the combox directory; figure +\ref{fig:1-combox-overview-1} illustrates this. Here too, combox +depends on the client program of the respective file storage provider +to sync shards to/from the file storage provider's server to/from the +respective node directory on the user's computer. + +\begin{figure}[h] +\begin{verbatim} + + __________________________ + | | + | strunk-white.pdf.shard0 | + | |\ + |_________________________| \ ___________________ + node directory 0 \ | | + |->| strunk-white.pdf | + __________________________ |-->| | + | | | ->|__________________| + | strunk-white.pdf.shard1 |-- | combox directory + | | | + |_________________________| | + node directory 1 | + . | + . | + . | + | + __________________________ | + | | | + | strunk-white.pdf.shardN |---- + | | + |_________________________| + node directory N + +\end{verbatim} +\caption{combox overview - file reconstruction} +\label{fig:1-combox-overview-1} +\end{figure} + +As of combox \verb+v0.2.2+, combox is compatible on GNU/Linux and OS +X, it supports just two file storage providers -- Google Drive and +Dropbox. + +\section{How is combox different from Combo-Box?}\label{1-sec-cb-diff} + +\section{Using combox}\label{1-sec-using-cb} + +Installing and running combox is relatively easy for Unix users: + +\begin{verbatim} + $ pip install combox + $ combox +\end{verbatim} + +For detailed information on installing combox, see +https://ricketyspace.net/combox/setup/. + +\subsection{Caveats} + +combox is extremely event-driven and depends on file-system events to +do the right thing when a file is created/modified/moved/deleted, so +the user must sure to start combox before starting the file storage +providers' client programs that sync encrypted shards to the +respective node directories; on most GNU/Linux distributions this can +be automated through by using the distribution's startup system (most +GNU/Linux distributions seem to use +\verb+systemd+\cite{website:systemd} these days). diff --git a/report/combox-report.pdf b/report/combox-report.pdf Binary files differ. diff --git a/report/combox.tex b/report/combox.tex @@ -347,17 +347,17 @@ % +----------------------------------------------------------+ %% 1 -\chapter{Introduction} +\include{chapters/1-intr} %% 2 -\include{chapters/3-lit-r} +\include{chapters/2-lit-r} %% 3 -\include{chapters/4-arch-d} +\include{chapters/3-arch-d} %% 4 -\include{chapters/5-testing} +\include{chapters/4-testing} %% 5 \chapter{Conclusion and Future Work}