2014-11-10 1 views
-2

사용자가 자신의 PC에 연결된 스마트 카드 (토큰)를 사용해야한다는 요구 사항이 있습니다. 그가 웹 사이트에 액세스 할 때 스마트 카드에서 인증서 정보를 읽음으로써 사용자를 인증 한 다음이 데이터를 DB로 확인해야합니다. 정보가 맞으면 사용자를 로그인하십시오. 그렇지 않으면 오류 메시지 또는 인증서가 표시됩니다.스마트 카드에서 데이터를 읽어 사용자를 인증하려면 어떻게해야합니까?

스마트 카드와 함께 사용되는 CA와 다른 인증 된 SSL (HTTPS) 연결을 사용합니다.

Java로 어떻게 할 수 있습니까?

+0

질문은 infosec 도메인 인 인증과 관련이 있지만 표면적으로 Java에서 프로토콜 및 솔루션 구현에 관한 것입니다. StachExchange의 www.StackOverflow.com 사이트에서 더 나은 답변을 얻을 수 있습니다. StachExchange는 프로그래밍 및 소프트웨어 솔루션에 중점을 둡니다. – 0xSheepdog

+0

[Java Smart Card I/O API] (https://docs.oracle.com/javase/7/docs/jre/api/security/smartcardio/spec/)를 사용하여 예제를 확인 했습니까? 나는 그것을 사용하지 않았지만 갈 길이 멀다. –

+0

@PavelHoral은 클라이언트 측 앱에서 작동하지만이 경우 웹 앱입니다. –

답변

1

의도 한 인증 프로세스에 대한 설명이 비정상적인 약점을 보여줍니다. 인증서는 사용자 이름 등과 같은 몇 가지 추가 데이터로 공개 키를 보유합니다. 이자형. 완전히 공개 데이터로 구성됩니다. 일반적으로 사용자는 자신의 개인 키를 사용하여 서명을 생성하고 인증서의 공개 키를 사용하여 서명을 확인합니다. 이는 카드가 간접적으로 증명하는 서명을 생성하여 사용자가 개인용으로 필요한 PIN을 알고 있다는 장점이 있습니다 또한 재생 공격을 방지합니다. 또한 인증서의 카드 번호와 같은 것을 사용할 수 있기 때문에 인증서의 데이터베이스 항목이 필요하지 않습니다. (그러나 관련 사용자 역할과 같은 기타 정보에 대한 레코드가 필요할 수도 있습니다.)

관련 문제