WebRT C взаимная аутентификация с использованием сертификатов - PullRequest
0 голосов
/ 30 марта 2020

Я хотел бы создать приложение для передачи файлов с сквозным шифрованием, похожим на волхвов c -червную дыру или cro c с использованием RTCDataChannel s ( WebRT C).

Возможно ли выполнить взаимную аутентификацию путем проверки сертификатов одноранговых узлов с помощью Web API ? Идея состоит в том, чтобы предотвратить атаки «человек посередине», сравнивая сертификат (или отпечаток сертификата) со значением, согласованным вне диапазона.

По-видимому, существует getRemoteCertificates и RTCCertificate интерфейс , который должен обеспечивать доступ к удаленному отпечатку сертификата. Кроме того, при поиске решений я нашел комментарий , относящийся к старому проекту WebRT C. Однако я не уверен, как с этим связан Identity Provider . Реализации

WebRT C должны проверять сертификаты на безопасность. Это описано в разделе 8.3.5 проекта W3 C: ожидание установления всех соединений DTLS и проверка того, что отпечатки сертификатов на всех соединениях совпадают с отпечатками, предоставленными IdP.

Наконец, это хороший подход или предпочтительнее добавить еще один уровень безопасности приложения для аутентификации?

1 Ответ

2 голосов
/ 30 марта 2020

Это звучит нормально для меня!

getRemoteCertificates , к сожалению, не везде доступно, что может усложнить задачу. Тем не менее, вы можете получить это непосредственно из SessionDescription! Ищите a=fingerprint, это может быть либо на уровне медиа, либо на глобальном уровне.

Я не знаю, облегчает ли это, но если вы контролируете всех клиентов, вы также можете предоставить свой собственный сертификат! Конструктор RTCPeerConnection позволяет пользователям передавать свои собственные сертификаты. Тогда вам не нужно беспокоиться о MITM вообще.

gfile также может послужить хорошим источником вдохновения. Он реализует передачу файлов через RTCDataChannels.

...