Есть еще один, очень безопасный метод. Это клиентские сертификаты. Знаете, как серверы представляют сертификат SSL, когда вы связываетесь с ними по https? Серверы могут запросить сертификат у клиента, чтобы они знали, что клиент - это то, кем они себя называют. Клиенты генерируют сертификаты и передают их вам по безопасному каналу (например, заходят в ваш офис с USB-ключом, предпочтительно USB-ключом без троянской программы).
Вы загружаете открытый ключ сертификатов клиентов сертификатов (и, при необходимости, сертификатов их подписывающих лиц) на свой веб-сервер, и веб-сервер не будет принимать подключения от кого-либо кроме < / em> люди, у которых есть соответствующие закрытые ключи для сертификатов, о которых он знает. Он работает на уровне HTTPS, поэтому вы даже можете полностью пропустить аутентификацию на уровне приложения, такую как OAuth (в зависимости от ваших требований). Вы можете абстрагироваться от слоя и создать локальный центр сертификации и подписывать запросы сертификатов от клиентов, что позволяет пропустить этапы «заставить их приходить в офис» и «загрузить сертификаты на сервер».
Боль в шее? Абсолютно. Подходит для всего? Неа. Очень безопасно? Ага.
Однако он полагается на то, что клиенты сохраняют свои сертификаты в безопасности (они не могут публиковать свои закрытые ключи в Интернете), и обычно используется, когда вы продаете услугу клиентам, а не позволяете кому-либо зарегистрироваться и подключиться.
В любом случае, это может быть не то решение, которое вы ищете (вероятно, не по правде), но это другой вариант.
person
Tom Ritter
schedule
27.01.2011