doc update
This commit is contained in:
		
							
								
								
									
										53
									
								
								doc/meow.tex
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								doc/meow.tex
									
									
									
									
									
								
							@@ -14,7 +14,7 @@
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
    The \textffm{Meow} protocol is a privacy driven instant messaging protocol. 
 | 
					    The \textffm{Meow} protocol is a privacy driven instant messaging protocol. 
 | 
				
			||||||
That protocol might be used for creating secure and distributed chat services or allowing machine to machine communication.
 | 
					That protocol might be used for creating secure and distributed chat services or allowing machine to machine communication.
 | 
				
			||||||
This document describes the services provided by the protocol, the messaging structures and the transport protocols that might be used.
 | 
					This document describes the services provided by the protocol.
 | 
				
			||||||
\begin{quote} 
 | 
					\begin{quote} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    \centering 
 | 
					    \centering 
 | 
				
			||||||
@@ -43,7 +43,7 @@ The server requires very few ressources and will run on any low cost single boar
 | 
				
			|||||||
\textffm{Meow} also provides an anonymizing transfer service very similar to the Tor Onion protocol, we call it the Matriochka protocol.
 | 
					\textffm{Meow} also provides an anonymizing transfer service very similar to the Tor Onion protocol, we call it the Matriochka protocol.
 | 
				
			||||||
Any server can be used for building the transfer chain. 
 | 
					Any server can be used for building the transfer chain. 
 | 
				
			||||||
Some of them might be marked as trusted.
 | 
					Some of them might be marked as trusted.
 | 
				
			||||||
Random delays might be set for each forwarding step, making the overall message tracking much more difficult, even with a global network survey.
 | 
					Random delays and random payload padding might be set for each forwarding step, making the overall message tracking much more difficult, even for organizations having capabilities of global network surveillance.
 | 
				
			||||||
It is strongly advised to use trusted servers as your first node and message server (the one that holds your incoming messages).
 | 
					It is strongly advised to use trusted servers as your first node and message server (the one that holds your incoming messages).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\subsubsection{Presence protocol for direct messaging}
 | 
					\subsubsection{Presence protocol for direct messaging}
 | 
				
			||||||
@@ -54,7 +54,7 @@ If that flag is set, your encrypted IP will be published on the server, allowing
 | 
				
			|||||||
\subsubsection{Peer based privacy settings}
 | 
					\subsubsection{Peer based privacy settings}
 | 
				
			||||||
You might define specific communication privacy preferences for each of your contacts: 
 | 
					You might define specific communication privacy preferences for each of your contacts: 
 | 
				
			||||||
\begin{itemize}
 | 
					\begin{itemize}
 | 
				
			||||||
    \item simple server based communication allowed for Joe, 
 | 
					    \item simple server based communication allowed for Sarah, 
 | 
				
			||||||
    \item preferred direct communication with Julian, fallback to my own server, 
 | 
					    \item preferred direct communication with Julian, fallback to my own server, 
 | 
				
			||||||
    \item required matriochka protocol for Edward, first node is one of my trusted servers, my message node is my own server, randomly switch from trusted server lists for others.
 | 
					    \item required matriochka protocol for Edward, first node is one of my trusted servers, my message node is my own server, randomly switch from trusted server lists for others.
 | 
				
			||||||
    \item ...
 | 
					    \item ...
 | 
				
			||||||
@@ -110,7 +110,7 @@ Well, that option offers a few advantages :
 | 
				
			|||||||
    \item no social network algorithm will select people that think/behave/vote/eat... just like you. Diversity makes a better world;
 | 
					    \item no social network algorithm will select people that think/behave/vote/eat... just like you. Diversity makes a better world;
 | 
				
			||||||
    \item a smaller community of users, skilled enough to operate a \textffm{Meow} chat app... that might provide a first filter;
 | 
					    \item a smaller community of users, skilled enough to operate a \textffm{Meow} chat app... that might provide a first filter;
 | 
				
			||||||
    It's a bit like in the early ages, when people had to be able to start a win98 computer, connect it to internet, then download and install ICQ...
 | 
					    It's a bit like in the early ages, when people had to be able to start a win98 computer, connect it to internet, then download and install ICQ...
 | 
				
			||||||
    If you lost some time in social networks, and experienced ICQ in the 2000's, you'll understand.
 | 
					    If you lost some time in social networks today, and experienced ICQ in the 2000's, you'll understand what we'd like to revive.
 | 
				
			||||||
\end{itemize}
 | 
					\end{itemize}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{Identities and keys}
 | 
					\section{Identities and keys}
 | 
				
			||||||
@@ -136,7 +136,7 @@ The Ekp might be changed anytime by its owner and the new public key will be sen
 | 
				
			|||||||
A contact conversation Lookup Key Pair(Lkp) is also associated with your conversation. The Lkp public key is used to identify your conversation on a server.
 | 
					A contact conversation Lookup Key Pair(Lkp) is also associated with your conversation. The Lkp public key is used to identify your conversation on a server.
 | 
				
			||||||
The private key allows you to sign your request and prove the server that you are the legitimate recipient for a message.
 | 
					The private key allows you to sign your request and prove the server that you are the legitimate recipient for a message.
 | 
				
			||||||
This Lkp can be changed anytime by its owner and the new public key will be sent along the last message. 
 | 
					This Lkp can be changed anytime by its owner and the new public key will be sent along the last message. 
 | 
				
			||||||
The Lkp and the Ekp are only changed once the change has beeen acknowledged by your contact.
 | 
					The Lkp and the Ekp are only changed once the change has been acknowledged by your contact.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\subsection{Server identity}
 | 
					\subsection{Server identity}
 | 
				
			||||||
Each server has a Server key (Skp). That key allows you to cypher the messages that you're sending to the server.
 | 
					Each server has a Server key (Skp). That key allows you to cypher the messages that you're sending to the server.
 | 
				
			||||||
@@ -175,49 +175,44 @@ TODO
 | 
				
			|||||||
\subsection{Synchronization messages}
 | 
					\subsection{Synchronization messages}
 | 
				
			||||||
TODO
 | 
					TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{Transport protocols}
 | 
					 | 
				
			||||||
\subsection{URLs}
 | 
					 | 
				
			||||||
Server urls do define the protocol used for communicating with the server.
 | 
					 | 
				
			||||||
Some of the protocols will be described hereafter, but that list is not exhaustive and might be extended in the future.\\
 | 
					 | 
				
			||||||
Examples of a valid url:
 | 
					 | 
				
			||||||
\begin{verbatim}
 | 
					 | 
				
			||||||
http://myserver.com
 | 
					 | 
				
			||||||
https://user:pass@myauthenticatedserver.net:8443
 | 
					 | 
				
			||||||
mqtt://mymqttserver:6203
 | 
					 | 
				
			||||||
udp://myudpserver.org:41325
 | 
					 | 
				
			||||||
serial://dev/ttyS0
 | 
					 | 
				
			||||||
\end{verbatim}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
\subsection{HTTP/S}
 | 
					 | 
				
			||||||
TODO
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
\subsection{UDP}
 | 
					 | 
				
			||||||
TODO
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
\subsection{Internetless alternative routing}
 | 
					 | 
				
			||||||
TODO
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{Server Features}
 | 
					\section{Server Features}
 | 
				
			||||||
\subsection{Server catalog}
 | 
					\subsection{Server catalog}
 | 
				
			||||||
Each server will cache a list of all the servers that it is aware of.
 | 
					Each server will cache a list of all the servers that it is aware of.
 | 
				
			||||||
 | 
					This server list will be shared between servers in a lazy exchange mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\subsection{Antispam}
 | 
					\subsection{Antispam}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\subsection{Self defense}
 | 
					\subsection{Self defense}
 | 
				
			||||||
 | 
					The servers do integrate self defense mechanisms. Any threat to the \textffm{Meow} network by any computer, 
 | 
				
			||||||
 | 
					computer group or organization, might result in a distributed response from volunteering \textffm{Meow} servers and clients.
 | 
				
			||||||
 | 
					An information about threat, desired defense action and request for assitance, might be submitted by any server or group of servers.
 | 
				
			||||||
 | 
					Server owners and client users might accept or refuse to participate to the response action.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TODO : Request and actions definition consensus mechanism
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
\section{Backup}
 | 
					\section{Backup}
 | 
				
			||||||
\section{Recovery}
 | 
					\section{Recovery}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{Very secure devices}
 | 
					\section{Very secure devices}
 | 
				
			||||||
You don't trust your phone ?
 | 
					You don't trust your phone ?
 | 
				
			||||||
 | 
					We're planning to provide very secured minimal devices dedicated to very sensitive \textffm{Meow} communication.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\section{Roadmap}
 | 
					\section{Roadmap}
 | 
				
			||||||
\subsection{Nations}
 | 
					\subsection{Nations}
 | 
				
			||||||
Beyond the scope of user directories, we plan to implement the concept of virtual Nations.
 | 
					Beyond the scope of user directories, we plan to implement the concept of virtual Nations.
 | 
				
			||||||
 | 
					Nation will allow people to regroup around common political funding values. 
 | 
				
			||||||
 | 
					They're not exclusive, you might be a citizen of several virtual nations.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Today still, most people don't really choose the nation they live in. 
 | 
					Today still, most people don't really choose the nation they live in. 
 | 
				
			||||||
 | 
					You just have to live with the goverment decisions. 
 | 
				
			||||||
 | 
					In the best scenario that government was elected, and might represent at most 25\% of the population.
 | 
				
			||||||
 | 
					In most case, they will vote laws to satisfy the powerful people who supported their election, and the most powerful lobbies.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\textffm{Meow} Nations aim to be the next lobbying power to influence real life politics, "the poor man's lobby". 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Virtual nation in that perspective will be probably quickly flagged as terrorist nation by the old world media, but well,
 | 
				
			||||||
 | 
					one man's terrorist is another man's freedom fighter. 
 | 
				
			||||||
 | 
					If requiring more democracy, using the same technique that is preventing it from happening, has to qualified that way, so be it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
\end{document}
 | 
					\end{document}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user