Как стать автором
Поиск
Написать публикацию
Обновить
64.51

Прямая передача файлов между устройствами по WebRTC

Время на прочтение2 мин
Количество просмотров13K


Новый сервис WebWormHole работает как портал, через который файлы передаются с компьютера на другой. Нажимаете кнопку New Wormhole — и получаете код для входа. Человек с другой стороны вводит такой же код или URL — и между вами устанавливается эфемерный туннель, по которому напрямую передаются файлы. Очень просто и эффективно. Исходный код на Github.

Для установки портала между устройствами необязательно открывать браузер. Клиент на Go запускается из командной строки и генерирует одноразовый код в консоли.

Установка:

$ go get -u webwormhole.io/cmd/ww

Передача:

$ cat hello.txt
hello, world
$ ww send hello.txt
8-enlist-decadence

Получатель на другой стороне эфемерного тоннеля вводит одноразовый код в консоли — и получает файл.

$ ww receive 8-enlist-decadence
$ cat hello.txt
hello, world

Автор программы Сальман Альджаммаз (Salmān Aljammāz) предупреждает, что клиент находится в ранней разработке, использует экспериментальные криптографические библиотеки, поэтому может глючить и работать не во всех браузерах. Программа также не прошла аудит безопасности, так что может работать неправильно и небезопасно.

Автор позаимствовал идею и название у программы Magic Wormhole, которая тоже устанавливает пиринговое соединение и передаёт файлы между компьютерами.


Magic Wormhole

Отличие в том, что WebWormHole использует WebRTC, что позволяет пробить файрволы и NAT, а также запускать передачу из браузера.

Каждый тоннель защищается одноразовым паролем и PAKE — это специфический способ обмена ключами с проверкой подлинности пароля для установки зашифрованного соединения. При этом сам пароль не передаётся по сети ни в каком виде.

Проверка осуществляется примерно как в доказательстве с нулевым разглашением, в котором получатель может убедиться в достоверности какого-либо утверждения, не имея при этом никакой другой информации от отправителя.


SPAKE2

В WebWormHole для выработки общего ключа шифрования происходит обмен описаниями сессий с отпечатками сертификатов DTLS, которые использует WebRTC для шифрования соединений.

Передача файлов через пиринговый тоннель быстрее и безопаснее, чем по почте, FTP или другими способами. По удобству и безопасности эти способы сравниваются в таблице из презентации Magic Wormhole:

Ввод отправителем Ввод получателем Физическая близость Прослушка
Электронная почта ~30 симв. провайдеры, центры сертификации, интернет
Загрузка на FTP/HTTP ~60 симв. сервер, провайдеры, центры сертификации, интернет
Dropbox ~60 симв. Dropbox, центры сертификации
+сервис сокращения ссылок ~20 симв. сервис сокращения ссылок, случайный перебор, Dropbox, центры сертификации
USB-накопитель Х
SSH/scp ~740 симв. публичный ключ никто
magic wormhole ~20 симв. никто
Примечание. С момента составления этой таблицы в далёком 2016 году были запущены удобные сервисы для передачи файлов типа Firefox Send (есть консольный клиент) и File.pizza

Кроме питоновского Magic Wormhole, есть и другие клиенты для установления прямых соединений по WebRTC между компьютерами:


В качестве бонуса:

  • rtc-ssh: WebRTC-обёртка для SSH-соединений

По каналу WebRTC можно установить видеосвязь между устройствами, передавать голос, файлы и т. д.

Что касается механизма обмена ключами PAKE, то он полезен и в разных областях. Например, позволяет реализовать аутентификацию на сайте без передачи пароля на сервер.
Теги:
Хабы:
Всего голосов 16: ↑15 и ↓1+19
Комментарии5

Публикации

Информация

Сайт
www.globalsign.com
Дата регистрации
Дата основания
1996
Численность
501–1 000 человек
Местоположение
Япония