2011-05-03 112 views
3

過去幾天我一直在做這方面的一些研究,但還沒有找到解決辦法。我已經看到包含php Exec()函數來調用外部應用程序來處理這個問題的建議。我一直在尋找這樣一個基於PHP的站點的教程 - http://securitythroughabsurdity.com/2007/04/implementing-smart-card-authentication.html。任何意見或指導,將不勝感激。智能卡啓用IIS 6上託管的PHP網站?

感謝, 傑裏

編輯 - 我檢查這個帖子出來How to make php application to require smart card authentication但它不屬於我的目標。 SSLVerifyClient是否需要與智能卡一起使用?

+0

我認爲您需要讓Web服務器處理基於X.509證書的身份驗證,並將用戶憑據作爲服務器變量傳遞給PHP腳本。客戶的私鑰可以存儲在智能卡上,但當然Web服務器不能直接控制它。 – Borealid 2011-05-03 14:41:57

+0

感謝您的回覆。不幸的是,我不管理該網站託管的服務器,所以我遇到了很多障礙。 – Jerry 2011-05-05 15:42:49

+0

你需要什麼樣的接口/設備才能從智能卡獲取數據?幾年前我創建了一個使用磁卡進行身份驗證的應用程序。有[devices](http://www.google.com/products/catalog?q=magnetic+card+reader&um=1&ie=UTF-8&tbm=shop&cid=9253952205062488166&sa=X&ei=gz8cT_2rD4-ctwfBzPSoCw&ved=0CIwBEPMCMAA),其功能類似於鍵盤,讓您通過該設備刷卡,而鼠標焦點是某種形式的文本輸入。也許類似的東西會在這裏工作? – quickshiftin 2012-01-22 16:56:40

回答

1

我們在愛沙尼亞使用智能卡解決方案很多,因爲許多地方都支持國家ID。我認爲你看起來有點困惑 - 你不需要exec()。您需要的是配置您的Web服務器(在這種情況下爲IIS)以向客戶端請求證書。這與PHP無關。這可以基於路徑,子域或類似這樣來完成,並且這可以是可選的或者是必需的。例如,我們經常會將子域名配置爲只能使用ID訪問la http://id.foobar。芯片卡只是證書和密鑰的載體。通常這是無論如何「基於客戶端的證書」和谷歌。 可以配置強制性或可選客戶機證書要求。強制性是安全的,因爲沒有身份證的人無法看到服務器上的任何內容。但是這也有不足之處 - 他們也看不到任何錯誤消息。我們經常使用可選要求。 在PHP方面,你只是收到某種環境變量。你需要檢查他的內容。您可以通過谷歌搜索SSL_CLIENT_S_DN獲取您要搜索的內容。這是使用Apache Web服務器時獲得的變量的名稱。關於IIS我什麼都不知道,但基本原理是一樣的,只是變量和配置選項命名不同。