Как извлечь имя пользователя из DoD CAC с помощью Java - PullRequest
3 голосов
/ 16 декабря 2010

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

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

Ответы [ 2 ]

2 голосов
/ 16 декабря 2010

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

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

0 голосов
/ 16 декабря 2010

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

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

...