Các thành phần trong kiến trúc của thẻ chip 4 3-

Một phần của tài liệu Nghiên cứu ứng dụng hạ tầng cơ sở mật mã khoá công khai cho hệ thống đấu thầu qua mạng (Trang 45)

Smart Cards là thẻ mỏng có gắn một con chip, và điều này tự nhiên đặt ra các thách thức cho riêng nó về thiết kế kiến trúc. Nhƣng thực ra là các giải pháp hƣớng tới việc thu nhỏ các chip thông thƣờng chứ không phải là phát minh một chip mới hoàn toàn.

1.4.4.1. Vị trí và các chiều của các điểm tiếp xúc

Con chíp đƣợc gắn trên thẻ phải đảm bảo vị trí và các chiều của các tiếp xúc.

Hình 1.24 Vị trí và các chiều của các điểm tiếp xúc.

Các vùng C1, C2, C3, C5, C7 phải đƣợc bao phủ toàn bộ bằng các mặt dẫn, tạo nên các tiếp xúc ICC tối thiểu. Các vùng C4, C6, C8 có thể có các mặt dẫn một cách tùy chọn.

Với thẻ lƣỡng tính vị trí của con chíp và dải từ đƣợc thể hiện nhƣ hình 1.25

Hình 1.25 Tƣơng quan giữa vị trí của con chíp và dải từ trên thẻ.

1.4.4.2. Bộ xử lý trung tâm

Hình 1.26 Cấu trúc của bộ xử lý

Thông thƣờng nó là một microcontroller 8-bit nhƣng để tăng cƣờng sức mạnh hơn nữa thì các chip 16 và 32-bit cũng đang đƣợc sử dụng. Nhƣng không một chip nào có khả năng đa luồng (multi-threading) và các tính năng mạnh mẽ khác đang rất phổ biến trong các máy tính chuẩn. Smart Card CPUs thi hành các chỉ thị máy với tốc độ xấp xỉ 1 MIPS. Một bộ đồng xử lý (coprocessor) cũng thƣờng đƣợc thêm vào để cải thiện tốc độ của các tính toán mã hóa.

1.4.4.3. Hệ thống bộ nhớ

Có ba loại bộ nhớ chính trên thẻ:

- RAM. 1K. Nó cần thiết cho việc tính toán và phản hồi nhanh chóng. Chỉ có sẵn dung lƣợng rất nhỏ.

- EEPROM (Electrically Erasable PROM). Khoảng từ 1 đến 24K. Không giống nhƣ RAM, nội dung của nó không bị mất khi rút nguồn điện. Các ứng dụng có thể chạy lại và ghi vào nó, nhƣng nó rất chậm và ngƣời ta chỉ có thể đọc/ghi vào nó khoảng 100 000 lần.

- ROM. Khoảng từ 8 đến 24K.

Smart Card Word

size ROM EEPROM RAM Voltage Clock Write/erase cycles Transmission rate Infineon SLE 44C10S 8-bit 9K 1K 256b 2.7 - 5.5V 5 MHz 500 000 9600 baud Orga ICC4 8-bit 6K 3K 128b 4.7 - 5.3V 10 000

GemCombi 8-bit 5K 4.5 - 5.5V 13.6 MHz 100 000 106 kbaud DNP Risona 8-bit 1K 5V 3.5 MHz 9600 baud AmaTech Contactless 8-bit 1K 5V 13.6 MHz 100 000 cycles Schlumberger Cyberflex 8/16- bit 8K 16K 256b 5V 1-5 MHz 100 000 cycles 9600 baud Bảng 2.6 Một số loại thẻ chip

1.4.4.4. Các thiết bị giao tiếp ( Interface devices)

Thẻ thông minh cần năng lƣợng và một tín hiệu đồng hồ để chạy các chƣơng trình, nhƣng chúng không thể tự trang bị đƣợc. Thay vào đó, chúng đƣợc cung cấp bởi Interface Device – thiết bị giao tiếp (thông thƣờng là một thiết bị đọc thẻ thông minh) khi giao tiếp với thẻ.

Bên cạnh đó, thiết bị đọc thẻ cũng phải chịu trách nhiệm cho việc mở một kênh liên lạc giữa phần mềm ứng dụng trên máy tính và hệ điều hành trên thẻ. Giờ đây, tất cả các thiết bị đọc thẻ thông minh đều thật sự là thiết bị đọc/ghi, vì thế, chúng cho phép một ứng dụng ghi vào thẻ cũng nhƣ đọc dữ liệu từ thẻ.

Dữ liệu chỉ có thể truyền theo một chiều từ thiết bị đến thẻ hoặc từ thẻ đến thiết bị. Dữ liệu đƣợc lƣu trên vùng đệm trong RAM của thẻ. Bởi vì không có nhiều RAM nên các gói dữ liệu tƣơng đối nhỏ (10-100 bytes) đƣợc chuyển trong mỗi thông điệp.

1.4.4.5. Hệ điều hành

Hệ điều hành thông dụng trên phần lớn các thẻ thông minh cài đặt một tập hợp các câu lệnh chuẩn (thƣờng là từ 20-30 câu lệnh). Các chuẩn thẻ thông minh nhƣ ISO 7816 và CEN 726 mô tả một dải lệnh mà thẻ thông minh có thể cài đặt.

Mối quan hệ giữa thiết bị đọc thẻ và thẻ là một mối quan hệ chủ/tớ. Thiết bị đọc thẻ gửi một lệnh đến thẻ, thẻ chạy lệnh và trả về kết quả (nếu có) cho thiết bị đọc thẻ và chờ cho câu lệnh khác.

Microsoft phát hành một phiên bản Windows mini cho thẻ thông minh vào năm 1998 và các phiên bản trƣớc của Gnu O/S đã đƣợc phát hành.

1.4.4.6. Input / Output

Thông qua một cổng I/O đƣợc điều khiển bởi bộ xử lý để đảm bảo các truyền thông đƣợc chuẩn hóa theo khuôn mẫu của APDUs (Application Protocol Data Unit).

1.4.4.7. Hệ thống File

Hầu hết các hệ điều hành hỗ trợ một hệ file đơn giản (simple file system) dựa trên chuẩn ISO 7816. Một file thẻ thông minh thật sự là các khối liên tiếp nhau.

Các file đƣợc tổ chức trong một cấu trúc cây phân cấp. Một khi file đƣợc cấp phát, nó không thể đƣợc mở rộng và vì thế các file phải đƣợc tạo ra với kích thƣớc lớn nhất đƣợc mong đợi.

Mỗi file có một danh sách của các bên đƣợc cấp quyền thực hiện các thao tác trên nó. Có nhiều loại file khác nhau: linear, cyclic, transparent, SIM, v.v. Các thao tác thông thƣờng nhƣ tạo, xóa, đọc, ghi và cập nhật có thể đƣợc thực hiện trên tất cả các loại file trên. Một số thao tác khác chỉ đƣợc hỗ trợ trên các loại file cụ thể.

Type Special Operations Example

Linear Seek Credit card account table

Cyclic Read next, read previous Transaction log Transparent Read and write binary Picture

SIM file Encrypt, decrypt cellular telephone Bảng 2.7 Các hệ thống file.

Có hai kiểu phân loại file: - Dedicated file (DF)

- Elementary file (EF)

Thẻ thông minh hỗ trợ một hệ thống lƣu trữ phân cấp nhƣ đƣợc mô tả trong hình dƣới đây. Thẻ không áp đặt các hạn chế về chiều rộng hay chiều sâu của cây phân cấp lƣu trữ trong giới hạn của bộ nhớ có sẵn, ngoại trừ trƣờng hợp đƣợc chỉ ra cụ thể.

(Master File(MF) là một dedicated file, đó là root của cấu trúc file)

Hình 1.27 Cấu trúc file

1/. Master file (MF)

Master file (MF) là một dedicated file (DF) đặc biệt và định nghĩa gốc cho cây phân cấp lƣu trữ đƣợc ICC hỗ trợ. ID tƣơng ứng của file đó là 0x3F00. Nếu các tên DF đƣợc hỗ trợ, thì tên MF sẽ đƣợc đặt là “Master.File”. MF sẽ đƣợc tự động lựa chọn sau khi thiết đặt lại thẻ và có thể đƣợc chọn lại bằng ID hay tên.

MF luôn luôn tồn tại và thông thƣờng đƣợc tạo ra trong khi cá thể hóa ICC tại thời điểm sản xuất. nếu ICC hỗ trợ việc khởi tạo lại ICC qua một câu lệnh bên ngoài, thì việc xóa bất kỳ cây phân cấp lƣu trữ đang tồn tại và việc tự động tạo MF phải đƣợc thực hiện trong quá trình này. Không thể xóa MF.

2/. Dedicated file (DF)

Một dedicated file (DF) xác định một nhóm file có liên quan bao gồm chính nó và tất cả các file nhƣ thế chứa DF này trong cây phân cấp cha của chúng. Mỗi DF có một file ID độ dài 2 bytes và có thể thêm tên bao gồm 1 đến 16 ký tự. file ID có các thuộc tính sau: - Các con có cùng cha phải có ID duy nhất.

- ID không thể là bất cứ các giá trị định trƣớc sau: 0x3F00, 0x3FFF, hay 0xFFFF. Tên nếu đƣợc cung cấp phải duy nhất trong toàn cục của ICC.

ICC kiểm tra tính duy nhất của cả file ID và tên khi một DF đƣợc tạo ra. Nếu ID và tên không duy nhất thì lỗi sẽ bị trả về và việc tạo sẽ bị hủy bỏ. khi DF mới đƣợc tạo ra, nó sẽ đƣợc tự động chọn thành DF hiện thời. DF có thể đƣợc chọn rõ ràng bằng tên của nó (khi đƣợc hỗ trợ), hay bằng cách sử dụng file ID của nó lên quan đến cha của nó (do file ID chỉ xác định so với cha của nó). Việc chọn file ID là 0x3F00 luôn luôn chọn MF bất kể việc chọn lựa DF hiện thời.

3/. Elementary Files (EF)

Elementary file xuất hiện trên các node lá trong cây phân cấp lƣu trữ. EF có thể lƣu trữ dữ liệu ứng dụng hay dữ liệu hệ thống của ICC. Tất cả các EF đều có file ID độ dài 2 bytes duy nhất trong tất cả các EF con có cùng DF cha. Một số câu lệnh có thể hỗ trợ một cách đánh địa chỉ EF theo cấu trúc thu gọn khi đó EF ID đƣợc mã hóa trong 5 bits, với các giá trị trong khoảng từ 1 đến 30. nếu việc đánh địa chỉ theo cấu trúc thu gọn đƣợc yêu cầu thì nhà cung cấp phải chỉ rõ làm thế nào mà việc ánh xạ vào các ID thu gọn đƣợc thực hiện.

Mức tối thiểu mà ICC phải cho phép là việc lựa chọn EF dựa trên file ID của nó liên quan đến cha DF của nó. Điều này bao gồm tính năng lựa chọn rõ ràng EF bằng việc tham chiếu đến file ID của nó.

4/. Transparent Files

Transparent file bao gồm một chuỗi các byte trong một mảng tuyến tính. Khi đánh địa chỉ transparent file, thì đơn vị dữ liệu cơ bản phải luôn đƣợc định nghĩa là một byte (8 bits). Việc đánh địa chỉ độ dài ngắn, nhƣ đƣợc định nghĩa cho APDU trong ISO/IEC 7816-4 phải đƣợc hỗ trợ. Vì thế, offset lớn nhất có thể định rõ đƣợc trong một transparent EF là 32767 bytes (15 bits), và số bytes lớn nhất có thể đọc là 256 hay 255 byte đƣợc ghi trong một câu lệnh đơn. ICC phải hỗ trợ kích thƣớc transparent file cực đại là 32768 bytes.

1.4.4.8. Phần mềm

Thẻ thông minh có thể là phủ mềm hay phủ cứng (Soft-Mask hay Hard-Mask), phụ thuộc vào hầu hết các ứng dụng nằm trên EEPROM hay ROM. Các thẻ phủ cứng đắt hơn. Một số dữ liệu/chỉ thị ứng dụng đặc biệt luôn luôn cần đƣợc lƣu trong EEPROM. Thẻ không theo luật chạy mọi thứ trên RAM.

Khi lập trình thẻ thông minh, ta nên tuân theo chuẩn thực hành là để cho chƣơng trình chạy trên một bộ giả lập trƣớc để gỡ rối, bởi vì EEPROM chỉ có thể đƣợc ghi với một số hữu hạn lần trong tuổi thọ của nó.

Chạy thử có thể đƣợc thực hiện trên một mức độ khác nhau: các ngân hàng thông thƣờng sử dụng một thẻ phủ mềm cho việc chạy thử nghiệm các ứng dụng mới và sau đó chuyển sang các thẻ phủ cứng bền hơn cho khách hàng trong các triển khai rộng hơn. Nhƣng một số ứng dụng có các giới hạn về triển khai mà không bao giờ đƣợc thực hiện cho phủ cứng, vì việc phủ cứng có giá cao hơn về cả thời gian và tiền bạc. Phủ cứng cũng có thể không phù hợp cho một số ứng dụng, nhƣ là một thẻ định danh nhân viên cho các công ty nhỏ.

1.4.4.9. Ngôn ngữ lập trình

Hầu hết thẻ thông minh đang đƣợc lập trình bằng các ngôn ngữ mức thấp dựa trên các hệ điều hành thẻ thông minh độc quyền. Một số chƣơng trình đƣợc làm trong tập hợp chỉ thị thuần túy của chip (thông thƣờng là Motorola 6805, Intel 8051, hay Hitachi H8). Không nhiều lập trình viên có khả năng về điều này.

Vào năm 1998-2000, một loại thẻ mới đƣợc đƣa ra, đôi khi gọi là thẻ có thể cấu hình lại. Chúng có một hệ điều hành mạnh cho phép việc thêm vào hay xóa đi mã ứng dụng sau khi thẻ đƣợc phát hành. Thẻ đƣợc lập trình bằng Java và vì thế đƣợc gọi là thẻ Java. Các ngôn ngữ tƣơng đối phổ biến khác liên quan đến Windows cho thẻ thông minh hay MEL (Multos programming language) hay thậm chí Basic.

Một phần của tài liệu Nghiên cứu ứng dụng hạ tầng cơ sở mật mã khoá công khai cho hệ thống đấu thầu qua mạng (Trang 45)

Tải bản đầy đủ (PDF)

(103 trang)