Аутентификация устройства с использованием самозаверяющего сертификата - PullRequest
0 голосов
/ 03 июля 2018

Я ищу аутентификацию устройства, где

  1. Я хочу убедиться, что все звонки на мой веб-сервис \ веб-сайт (размещенный на Google App Engine) поступают только с авторизованного устройства с использованием сертификата устройства.

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

  3. Сертификат устройства может быть отозван в любое время.

Для достижения вышеизложенного я планирую создать еще одну Службу, которая выдала бы сертификат устройствам, одобренным для использования моей службы. Я выдам сертификат по электронной почте пользователю, где он установит его вручную. Мои пользователи будут использовать браузер для доступа к моему сервису.

Но я не уверен, как бы я набрал очки 2 и 3. Не могли бы вы рассказать, как этого добиться, используя самозаверяющий сертификат?

1 Ответ

0 голосов
/ 03 июля 2018
  1. Я хочу убедиться, что все звонки на мой веб-сервис \ веб-сайт (размещенный на Google App Engine) поступают только с авторизованного устройства с использованием сертификата устройства.

Вы можете использовать канал SSL с аутентификацией клиента или добавлением цифровой подписи к своим сообщениям

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

невозможно обеспечить это с помощью сертификатов программного обеспечения. Если вы распространяете их по электронной почте, пользователь может установить их на нескольких устройствах.

Вы можете использовать аппаратный токен (nfc / bluetooth) или предварительно установить сертификат в цепочку ключей Android / iOS, чтобы его нельзя было извлечь. но это сильно усложняет распределение.

  1. Сертификат устройства может быть отозван в любое время.

Проверьте отзыв на стороне сервера, прежде чем принимать запрос от клиента. Для этого есть стандартные протоколы (OCSP, CRL) или пользовательский механизм, поскольку вы сами их запускаете

...