2010-12-15 1 views
3

Я пытаюсь связаться с CAC с помощью Java. Из Developer Kit я смог найти информацию об извлечении уникального идентификатора (CHUID) и нескольких других частей информации, таких как апплеты, доступные на карте. Тем не менее, я не могу извлечь имя пользователя (LastName.FirstName.MiddleName.ID) с карты, и я также не могу найти документацию по материалам CAC.Как извлечь имя пользователя из DoD CAC с помощью Java

Я не пользуюсь картой для доступа к защищенному веб-сайту. Я использую его в настольном приложении для аутентификации пользователей, и поэтому не будет обращаться к сертификатам, хранящимся на карте. Я могу получить доступ к различным апплетам, хранящимся на карте, но не знаю, как получить имя пользователя. Это имя пользователя необходимо для проверки пользователей в нашей системе. Как я могу получить имя пользователя из CAC?

+0

В CoreStreet (http://corestreet.com/) есть хорошая библиотека смарт-карт, которую вы можете использовать для чтения карт CAC и PIV. Вы должны заплатить за это, хотя. – 2010-12-15 22:42:01

ответ

0

Большинство считывателей карт поставляются с драйвером, который поддерживает PKCS # 11, а затем вы можете использовать поставщика безопасности SunPKCS11 для обработки CAC, как и любого другого хранилища ключей. This answer может быть полезным.

Что касается документации по разработке Java-приложений с поддержкой CAC, я так и не смог найти их.

2

Я не уверен, что вы используете для этого, но если вы обращаетесь к нему с помощью PKCS # 11, вам нужно найти псевдоним на KeyStore карты, который содержит текст «ID Certificate». Затем вы можете получить этот сертификат как X509Certificate, используя keyStore.getCertificate(alias) и получите имя, которое вы ищете, используя cert.getSubjectX500Principal().getName().

И да, я так и не нашел документов для такого рода вещей.