2010-04-23 70 views
18

Làm cách nào để bắt đầu lập trình thẻ thông minh? Tôi yêu cầu ở đây về tất cả các bộ công cụ cần thiết để bắt đầu: sách, hướng dẫn, phần cứng, v.v.bắt đầu lập trình thẻ thông minh

Tôi đang lên kế hoạch chơi với một vài lập trình viên thông minh và tôi khá mới trong lĩnh vực này.

Chỉnh sửa: Tôi chủ yếu quan tâm đến các lập trình viên chơi đẹp với hệ điều hành giống Unix. Ngoài ra, tôi không chắc chắn cách thức hoạt động này ... nhưng tôi muốn lập trình chúng trong C/C++

Trả lời

0

Nếu bạn google về việc bạn có thể tìm các bộ phát triển thẻ thông minh cung cấp một lập trình viên, một vài mẫu thẻ và hướng dẫn sử dụng, hợp lý không tốn kém.

Nó cũng giúp hiểu về mật mã (đặc biệt là mã hóa khóa công khai) và một số thực hành tại dữ liệu đóng gói thành các cấu trúc thực sự rất nhỏ.

Thẻ thông minh có phạm vi từ cực kỳ câm (một kho lưu trữ 1kb an toàn) đến khá tinh vi (tôi đã thấy quảng cáo chạy một khung cắt .NET).

Có lẽ các thẻ thông minh được sử dụng phổ biến nhất là các đơn vị được sản xuất bởi Mifare thường được làm như vé du lịch nhưng cũng được sử dụng làm thẻ khách hàng thân thiết hoặc thậm chí là giấy phép truy cập.

+4

Nếu bạn đã googled, sẽ rất hữu ích khi đặt các liên kết thực sự tại đây. – kizzx2

20

Bất cứ khi nào tôi cần thiết để truy cập thẻ thông minh để sử dụng trong các ứng dụng an ninh nó đã được thông qua một trong hai:

  • Microsoft CryptoAPI
  • thư viện PKCS#11 cho thẻ.

Để truy cập thẻ bằng cách sử dụng Microsoft CryptoAPI, nhà cung cấp dịch vụ mã hóa cụ thể (CSP) cần thẻ. CSP nằm dưới lớp CryptoAPI.

Nếu bạn đang phát triển trên Unix/Linux sử dụng 'C/C++', tuy nhiên, có thể bạn sẽ muốn xem tiêu chuẩn PKCS#11 từ RSA. Tiêu chuẩn xác định một API 'C' được gọi là Cryptoki (Giao diện mã hóa mật mã), cung cấp một sự trừu tượng chung trên tất cả các loại thiết bị mã hóa. Gần như tất cả các nhà cung cấp thẻ thông minh đều cung cấp thư viện PKCS # 11 cho thẻ của họ mà bạn có thể lập trình chống lại việc sử dụng API Cryptoki.

Nếu bạn muốn truy cập thẻ thông minh/đầu đọc ở mức thấp hơn, bạn có thể sử dụng các API như PC/SC hoặc CT-API.

  • PC/SC defacto tiêu chuẩn cho việc truy cập thẻ thông minh thực hiện trên Windows, Linux và Mac OS X

  • CT-API cung cấp chức năng chỉ rất ít; không phù hợp cho các ứng dụng hiện đại.

Nếu bạn quan tâm bằng văn bản Java applet chạy trên thẻ thông minh thì có thể bạn muốn nhìn http://java.sun.com/javacard/

Tài mà bạn có thể sử dụng

  • OpenSC là một tập hợp các thư viện và các công cụ cho thẻ thông minh.Nó được thiết kế để làm việc với các thẻ hỗ trợ PKCS # 11. OpenCT cung cấp trình điều khiển cho đầu đọc thẻ và mã thông báo bao gồm cả thẻ và đầu đọc (ví dụ: mã thông báo usb và các thiết bị hoàn chỉnh khác).

  • http://www.linuxnet.com/ CƠ BẮP - Các phong trào sử dụng thẻ thông minh trong một môi trường linux

  • PKCS#15 - Thông tin Cryptographic Mã Format Chuẩn

  • Smart Card Handbook

  • Một presentation on PKCS#11 đưa ra ở conf RSA trong 2009.

  • PyKCS11 A Py thon wrapper xung quanh PKCS # 11. Các loại trình bao bọc này có thể cung cấp một giao diện mức cao hơn đơn giản hơn so với làm việc trực tiếp ở mức Cryptoki.

  • Smart Card Alliance

+0

Cảm ơn bạn đã trả lời rất nhiều thông tin! Chỉ cần làm rõ, OpenSC không nhắm mục tiêu "thẻ hỗ trợ PKCS # 11" (PKCS # 11 là giao diện phần mềm, không phải là bố cục thẻ hoặc tiêu chuẩn truy cập hoặc như vậy). –

+0

Chúng tôi có thể đặt một số mã C++/C thay vì nhiều sách đọc suốt đời không? – YumYumYum

3

Java đang bắt đầu để có được một va li lớn trên thị trường SmartCard, đẩy bởi người chơi rất lớn (như IBM).

Có toàn bộ quốc gia nơi mọi người mang theo thẻ Java trong túi của họ. Ví dụ, có hơn 10 triệu công dân Bỉ có thẻ ID quốc gia (bắt buộc phải có với họ) là một Thẻ Java chạy "applet" của BELPIC.

Nếu tôi không nhầm lẫn, toàn bộ hệ thống chăm sóc sức khỏe của Brazil cũng dựa trên (các) Thẻ Java.

Về SmartCard và Linux, đây là howto Linux SmartCard (lưu ý rằng howto đó là đầy đủ của từ khóa "Java" ở khắp mọi nơi):

http://www.faqs.org/docs/Linux-HOWTO/Smart-Card-HOWTO.html

Sau đó có một .pdf gọi "Khám phá smartcards" từ tháng 6 năm 2008, nhìn vào mớ hỗn độn lớn mà thế giới "SmartCard" và về cơ bản bắt đầu bằng cách giải thích rằng "SmartCard" là mô tả như "máy tính": nghĩa là không mô tả;)

0

Sẽ rất muộn để trả lời nhưng tôi muốn cung cấp một phần bổ sung cho câu trả lời của @bignum.

Vâng, bạn có thể bắt đầu chơi xung quanh với phát triển thẻ thông minh Java và tôi muốn giới thiệu một cuốn sách hay để hiểu được cách thức cho người mới bắt đầu và nhà phát triển. "Java Card Technology for Smart Cards".

Nếu ngân sách bỏ túi của bạn cho phép bạn có thể mua "Mobile Security Card" để nghiên cứu và phát triển các ứng dụng thẻ thông minh bằng kiến ​​thức thu được từ sách được đề cập ở trên.

Và bạn cũng có thể tham khảo hoặc sử dụng dự án API thẻ thông minh SEEK FOR ANDROID được lưu trữ trên googlecode để có trải nghiệm đầu tiên.

Các vấn đề liên quan