doc update
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing

This commit is contained in:
ycc 2023-12-12 23:44:30 +01:00
parent 1dda1b27a8
commit 6a42d261f1

View File

@ -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}