Привет - Serverless-приложение для видеозвонков на основе WebRTC. Данное решение является одним из наиболее безопасных способов совершения видеозвонков.
- Приложение использует протокол WebRTC, который по умолчанию шифрует данные на всем этапе совершения вызова
- Приложение работает без сервера, что позволяет пользователям самостоятельно установить P2P-соединение и, следовательно, не передавать никакие личные данные третьим лицам
Для наглядности рассмотрим следующие схемы: AS-IS и TO-BE:
При такой модели приложение использует 3 сервера:
- Signaling Server
- STUN Server
- TURN Server
Использование данных серверов необходимо для передачи данных для подключения между пользователями.
Проблема использования данного метода связи заключается в том, что данные пользователя могут быть скомпрометированы в случае их передачи недобросовестным 3-м лицам.
При такой модели (Целевом решении) пользователи обмениваются данными для подключения непосредственно, без использования предопределенных серверов и, следовательно, могут самостоятельно установить P2P-соединение, которое будет по умолчанию зашифровано согласно протоколу WebRTC.
Такое решение является одним из способов создания безопасного подключения с использованием VoIP (Voice over Internet Protocol).
Несмотря на то, что данные все равно передаются через 3-и сервисы (но иные от тех, которые предлагаются компанией-изготовителем ПО), данные пользователей намного сложнее скомпрометировать, так как пользователи вправе выбирать любой удобный для них источник передачи данных. Результатом этого является то, что потенциальному хакеру будет сложно предугадать платформу, которая будет использоваться для передачи данных.
Несмотря на преимущества данной модели установления связи, необходимо подчеркнуть и следующие недостатки:
- Пользователям необходимо вручную передавать друг другу файлы с данными о подключении (как минимум для установления первичного подключения)
- Пользователи должны заранее договориться о совершении звонка, так как в случае, если один из пользователей позвонит другому без предупреждения, второй не увидит того, что с ним пытаются связаться
Хотя это решение и обладает некоторыми недостатками (преимущественно в рамках UX), оно является одним из наиболее безопасных на данный момент.
Целью данного проекта был поиск наиболее безопасного способа установления связи между пользователями. В ходе реализации данного проекта было также установлено, что потенциально более безопасным решением будет использование E2EE и технологии блокчейна.