====== Существующие решения для организации связи ====== At the moment, 2 approaches to information exchange are mainly used in networks: ====== User<>Server (Centralized Model)====== This is a classic and still the most common model: - **User1** wants to send data to **user2** - **User1** connects to a **[[https://en.wikipedia.org/wiki/Server_(computing)|server]]** and sends data to it. - **User2** receives the data from the **[[https://en.wikipedia.org/wiki/Server_(computing)|server]].** This model has a number of serious problems with both security and [[https://en.wikipedia.org/wiki/Fault_tolerance|fault-tolerance]]: The server is controlled by a third party, which results in: - The server owner having full access to all transmitted data, which leads to: * Data leakage. * [[https://en.wikipedia.org/wiki/Metadata|Metadata]] leakage. * Data distortion/substitution. (This problem can be partially solved by [[https://en.wikipedia.org/wiki/Cryptography|cryptography]]) - Server dependency. - Server failure renders communication impossible for all server users. - Blocking/censoring of the server makes it inaccessible. Centralized services include: * All social networks (any [[https://en.wikipedia.org/wiki/Web_server|web]] service). * Classic [[https://en.wikipedia.org/wiki/Email|email]] ( [[https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol|SMTP]] ) * Most [[https://en.wikipedia.org/wiki/Instant_messaging|IM]] ([[https://en.wikipedia.org/wiki/Voice_over_IP VOIP] solutions ( [[https://en.wikipedia.org/wiki/Viber|Viber]], [[https://en.wikipedia.org/wiki/WhatsApp|WhatsApp]], [[https://en.wikipedia.org/wiki/Telegram|Telegram]], [[https://en.wikipedia.org/wiki/Discord|Discord]], RaidCall, .....), the messaging/video/voice chat program that you use most likely works exactly according to this scheme ) ====== User<>User (Decentralized Model) ====== [[https://en.wikipedia.org/wiki/Peer-to-peer|Decentralized Model]] There is no division into user and server in this system, each data exchange participant often acts as both simultaneously. This approach, when used correctly, allows for a high level of privacy and security, but it also has its drawbacks: - Requires an external ip address for at least one of the participants. [[https://en.wikipedia.org/wiki/Network_address_translation|NAT]] problems Can be partially solved with [[https://en.wikipedia.org/wiki/Universal_Plug_and_Play|UPnP]], [[https://en.wikipedia.org/wiki/NAT_Port_Mapping_Protocol|NAT-PMP]], [[https://en.wikipedia.org/wiki/STUN|stun]]. [[https://en.wikipedia.org/wiki/IPv6|IPv6]] completely solves this problem. - Often a greater consumption of internet traffic (which may be undesirable on mobile devices). - Often requires more computing power, RAM, hard disk space to store data and metadata. - Often less convenient for end users because part of the functionality for the average user with this approach is either difficult or completely impossible. ====== User<>Intermediary<>User (Hybrid Model) ====== This is a subtype of User<>User (P2P) that uses intermediaries, in the role of which can act a regular user as well as a dedicated computer/router. This model was created for the purpose of solving some key problems within the pure P2P model, namely: - [[https://en.wikipedia.org/wiki/NAT|NAT]] problems. In the hybrid model, users who do not have an external IP address can exchange data through intermediaries. - Problems with offline data storage. In the hybrid model, intermediaries can act as servers for storing data that must be delivered to a user who is not online at a given time. ====== Summary ====== You can familiarize yourself with [[Основные_проблемы_приватности_и_безопасности|major security and privacy concerns]], [[Общие_рекомендации_по_безопасности|general security and privacy recommendations]] on the internet, [[Рекомендованные_программные_решения|recommended program solutions]] for secure and private communication, as well as [[Основы_криптографии_для_начинающих|basic cryptography for beginners]].