Как я могу использовать ключевой материал из HSM, совместимого с PKCS # 11 (например, SafeNet iKey 2032 [USB] или Aladdin eToken PRO [USB]) в приложении PHP, работающем на сервере Linux?
Я не видел, и беглый поиск не нашел, библиотеку клещей PCKS # 11 для PHP. Вероятно, это не тот ответ, который вы ищете. (: Если у вас есть лучший поиск fu, чем я, обновите этот поток.
Я думаю, что лучше всего будет написать программу на C, которая вызывает PKCS # 11 и получает доступ к HSM, и вызывать это из вашего PHP-приложения как внешнего двоичного файла. Даже если для PHP появляется оболочка PKCS # 11, этот подход даст вам полный API, доступный для кода C, вместо того, чтобы обойтись независимо от того, какой автор обертки должен удовлетворить своим собственным требованиям. PKCS # 11 – это большой API, а реализация оболочек часто бывает неполной.
Вам нужно посмотреть на pkcs11-помощник из проекта OpenSC. Это будет непросто, если вы попытаетесь получить доступ к модулю PKCS # 11 непосредственно из PHP.
Я предполагаю, что вы просите пользователей использовать свои токены для генерации подписей. подписи создаются на стороне клиента, то есть в браузере. тот факт, что ваше решение находится на linux / php, не имеет значения.
вам нужно добавить компонент программного обеспечения, называемый подписывающим лицом, который будет читать сертификат и генерировать подпись.
существующие подписчики с открытым исходным кодом записываются в java, и причина в том, что Java-апплет по-прежнему остается самой доступной технологией клиентской стороны.