API-ключ безопасности для приложения WebAssembly - PullRequest
0 голосов
/ 20 февраля 2019

Я знаю, что всегда плохо вставлять ключ API в интерфейс.

Мы разрабатываем приложение WebAssembly, которое аутентифицируется с помощью вызова API Javascript.Другие пользователи могут получить двоичный файл WebAssembly, который мы предоставляем, и создать свой собственный веб-сайт, если у них есть ключ API.

Чтобы избежать злоупотребления, каждый ключ должен быть привязан к указанному пользователем доменному имени.(Как и в случае с Google, что, на мой взгляд, не очень безопасный способ ...)
Даже с HTTPS, чтобы решить вопрос, какой клиент может изменить ответ API на стороне JS, который перейдет вПриложение WebAssembly для определения статуса аутентификации, сторона сервера подписывает ответ, а приложение WebAssembly встраивает открытый ключ сервера, чтобы проверить ответ, который не изменяется после получения на стороне JS.

Таким образом, поток будет ...

Запустить приложение WebAssembly с ключом API
-> вызов стороны JS auth api с ключом в качестве параметра и реферером
-> сервер проверяет доменимя (реферер) и ключ.Вернуть подписанный ответ , который может быть проверен только приложением WebAssembly (не клиентом JS).
-> Если все в порядке, запустите приложение WebAssembly

Однако реферер может быть поддельным.В этом случае мы думаем получить доменное имя со стороны WebAssembly, а затем зашифровать доменное имя ключом, чтобы сгенерировать один запутанный параметр url.Затем сервер сможет расшифровать этот параметр, чтобы получить правильный ключ и имя домена.

Мне интересно, является ли это лучшим способом сделать это, или мы просто усложняем ситуацию, не добиваясь реальной безопасности?.

...