Смарт-карта включает сайт PHP, размещенный на IIS 6?

Я проводил некоторые исследования по этому поводу за последние пару дней и еще не нашел решения. Я видел предложения, которые включают функцию php Exec() для вызова внешнего приложения для обработки этого. Я искал подобное руководство для сайта на основе PHP - http://securitythroughabsurdity.com/2007/04/implementing-smart-card-authentication.html. Любые советы или рекомендации по этому поводу будут очень признательны.

Спасибо, Джерри

Изменить. Я проверял этот пост Как сделать php приложение для проверки подлинности с помощью смарт-карты, но это не относится к моей цели. Можно ли использовать SSLVerifyClient со смарт-картой?


person Jerry    schedule 03.05.2011    source источник
comment
Я думаю, вам нужно, чтобы веб-сервер обрабатывал аутентификацию на основе сертификата X.509 и передал учетные данные пользователя PHP-скрипту в качестве серверной переменной. Закрытый ключ клиента может храниться на смарт-карте, но, конечно же, веб-сервер не имеет над этим прямого контроля.   -  person Borealid    schedule 03.05.2011
comment
Спасибо за ответ. К сожалению, я не управляю сервером, на котором размещен сайт, поэтому у меня было много препятствий.   -  person Jerry    schedule 05.05.2011
comment
Какой интерфейс/устройство у вас есть для получения данных со смарт-карты? Несколько лет назад я создал приложение, в котором для аутентификации использовалась магнитная карта. Существуют устройства, которые действуют как клавиатура, поэтому вы проводите картой через это устройство, в то время как фокус мыши является вводом текста в какой-либо форме. Возможно, что-то подобное сработает здесь?   -  person quickshiftin    schedule 22.01.2012


Ответы (1)


Мы часто используем смарт-карты в Эстонии из-за поддержки национального удостоверения личности во многих местах. Я думаю, что вы выглядите немного сбитым с толку - вам не нужен exec(). Что вам нужно, так это настроить веб-сервер (в данном случае IIS) для запроса сертификата у клиента. Это не имеет ничего общего с PHP. Это можно сделать на основе пути, поддомена или чего-то подобного, и это может быть необязательным или обязательным. Например, мы часто настраиваем поддомен а-ля http://id.foobar, чтобы он был доступен только по идентификатору. Чип-карта является лишь носителем сертификата и ключей. Обычно это в любом случае «клиентский сертификат» и Google для него. Можно настроить обязательные или необязательные требования сертификата клиента. Обязательный безопаснее, потому что люди без удостоверения личности не смогут ничего увидеть на вашем сервере. Но у этого есть и обратная сторона — они также не видят от вас никаких сообщений об ошибках. Мы часто используем необязательные требования. На стороне PHP вы просто получаете какую-то переменную среды. Вам нужно проверить его содержимое. Вы получите то, что ищете, погуглив SSL_CLIENT_S_DN. Это имя переменной, которую вы получаете при использовании веб-сервера Apache. Про IIS я ничего не знаю, но основы одинаковы, только переменные и параметры конфигурации называются по-разному.

person Tõnu Samuel    schedule 08.06.2012