2017-01-31 6 views
1

저는 스마트 카드 프로그래밍에있어 완전히 새롭고 개발하고 싶은 마음에 특정한 응용 프로그램이 있습니다. 가능한 안 나는 접촉 덜 스마트 카드에 개인 키를 쓸 수 있도록하려면스마트 카드에 개인 키가 삽입 된 디지털 서명

  1. :

    나는 접촉 덜 스마트 카드를 사용하여 다음과 같은 기능을 가진 응용 프로그램을 개발하고자하는 추출물.

  2. 입력을 스마트 카드로 보내고 스마트 카드에 저장된 입력을 사용하여 스마트 카드에 저장된 개인 키를 사용하여 디지털 서명을 생성 할 수 있기를 원합니다. 디지털 서명의 결과는 출력으로 보내야합니다.
  3. 디지털 서명 알고리즘 (ECDSA)의 경우 스마트 카드에 타원 곡선을 정의하거나 쓸 수 있어야합니다.

프로젝트를 시작하기 위해 몇 가지 기본 하드웨어를 구입했지만, 구입 한 하드웨어가 호환 가능한지 여부는 확실하지 않습니다. 의 문서를 읽은 후 FM1108 칩

와 푸단 08 M1S50 : 나는 카드의이 유형을 구입 한 다음 연락처로 문의하십시오 ACR1251

적은 스마트 카드 : 리더/라이터를 들어

나는에게 구입 스마트 카드 프로그래밍, 나는 스마트 카드에 의해 지원 될 수 있는지 여부에 관해 혼란 스럽다. 내 이해에서 스마트 카드의 운영 체제는 제조사에 의해 정의되며 변경하거나 확장 할 수 없습니다. 다른 OS는 추가 할 수 없습니다. OS는 또한 카드가 지원하는 APDU 명령을 정확하게 정의합니다. 따라서 현재 사용중인 하드웨어로 요청할 수있는 기능을 구현할 수 있습니까?

그렇지 않은 경우 요청한 기능을 지원할 수있는 스마트 카드 유형에 대한 정보를 보내 주시면 감사하겠습니다. 대답을 직접 찾으려고 할 때 JavaCards가 Elliptic Curve Cryptography를 지원한다는 사실을 발견했습니다. 현재 스마트 카드가 내가 요청한 기능을 지원하지 않는다면 타원 곡선을 직접 정의 할 수있는 좋은 대안이 될 수 있습니까?

특정 APDU 명령 또는 다른 유용한 개발 팁과 같이 유용 할 수있는 다른 모든 팁은 높이 평가 될 것입니다.

미리 감사드립니다.

답변

1

카드를 프로그래밍하려면 Java Card 호환 카드를 적극 권장합니다. 필요한 ECC 호환성이 있는지 확인하십시오. 일반적으로 F (p)에 대해 커브를 사용해야하지만, 어쨌든 원하는 결과 일 수 있습니다.

큰 정수 또는 ECC 작업에 낮은 수준의 액세스가 필요한 경우 다른 스마트 카드 솔루션을 고려할 수 있습니다. Java Card는 상대적으로 높은 수준의 인터페이스를 제공합니다 (구현 특정 기능으로 확장 될 수 있음). ECC 가능 코 프로세서 및 충분한 메모리와 충분한 문서 및 개발 환경을 갖춘 런타임 및 API가있는 스마트 카드/프로세서 카드가 필요합니다.

카드에서 공개/개인 키 쌍을 생성 한 다음 공개 키를 내보내는 것이 더 나을 것입니다. 귀하 또는 서명 된 수신자는 물론 공개 키를 신뢰해야합니다.

독자는 비접촉식 스마트 카드로 사용해도 좋습니다. 현재 가지고있는 것은 소위 메모리 카드 인 것 같지만 프로그래밍 할 수 없습니다. 몇 바이트 만 저장할 수도 있습니다 (다소 안전합니다).

+0

빠른 응답을 보내 주셔서 감사합니다. Java Card 호환 카드를 대신 사용하도록하겠습니다. 아, 개인 키 누출 가능성에 대한 보안을 향상시킬 수있는 아주 좋은 지적입니다. 위대한, 적어도 내 독자는 괜찮습니다. 나는 메모리 카드의 한계를 알지 못했다. 그들을 설명해 주셔서 감사합니다. 대신 Java Card 호환 카드를 받으십시오. –

1

언급 한 복단 카드는 1kByte MIFARE 클래식 카드 인 것 같습니다. 이것은 스마트 카드가 아니지만 Maarten이 지적한대로 비접촉식 메모리 카드 일종입니다. 그것은 타원 곡선 암호화에 비해 성능 스펙트럼의 다른 끝 부분에 있습니다. 실제로는 약하고 깨진 대칭 암호화만을 사용합니다.

Thera는 프로그래밍 할 수없는 Java가 아닌 스마트 카드이지만 RSA와 타원형 곡선 키를 생성하고 적용 할 수 있습니다.

+0

다른 스마트 카드에 대한 좋은 지적으로 일반 스마트 카드 요구 사항에 대한 정보를 제 대답에 추가했습니다. –

+0

멋진 정보를 보내 주셔서 감사합니다. 스마트 카드 분야의 초보자 인이 유형의 정보는 매우 가치가 있습니다. –

+0

이제 프로토 타입을 작성하기 위해 일부 Java 카드를 주문했습니다. 그러나 당신은 내가 guidot을 요청하는 기능을 지원할 수있는 다른 대체 카드를 언급합니다. 특정 대안을 염두에두면 그러한 스마트 카드의 예를 지적 할 수 있습니까? 필요한 기능을 지원할 수 있는지 더 자세히 조사 할 것입니다. –