Как извлечь имя пользователя из DoD CAC, используя Java

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

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

2 ответа

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

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

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

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

Другие вопросы по тегам