CẤU TẠO THẺ THÔNG MINH

Một phần của tài liệu Chữ ký số trong thẻ thông minh và ứng dụng xác thực (Trang 26)

1.2.1. Cu trúc vt lý

Thẻ thông minh có các điểm tiếp xúc trên bề mặt của nhựa nền, bộ xử lý trung tâm bên trong và nhiều dạng bộ nhớ. Một số loại thẻ thông minh có bộđồng xử lý để cho việc tính toán thuận lợi.

1.2.1.1. Các đim tip xúc

Thẻ thông minh có 8 điểm tiếp xúc, chức năng của chúng như hình dưới: 2 cho việc cung cấp điện áp và tiếp đất,

1 cho việc xác lập lại (reset),

1 cho tín hiệu đồng hồđể cung cấp việc định thời cho bộ vi xử lý, 2 được dự trữđể sử dụng sau này (future allocation),

còn lại là cho đầu vào và đầu ra của dữ liệu và nguồn.

Hướng và vị trí các điểm tiếp xúc được mô tả trong phần 2 của ISO 7816.

Hình 1-4 Cu trúc vt lý ca th thông minh

Điểm Vcc cung cấp nguồn cho chip hiệu điện thế 3 hoặc 5 volts, với sai số

10%. Thẻ thông minh trong các máy di động thường là 3 volts.

Điểm RST được dùng để gửi tín hiệu để reset bộ vi xử lý – được gọi là khởi

động nóng (warm reset). Khởi động nguội (cold reset) được thực hiện chuyển nguồn cung cấp tắt hoặc bật.

Bộ xử lý thẻ thông minh không thực hiện việc tạo tín hiệu đồng hồ bên trong. Điểm CLK cung cấp tín hiệu đồng hồ bên ngoài, từđó tạo ra tín hiệu đồng hồ

bên trong.

Điểm GND dùng như mức hiệu điện thế chuẩn, giá trị xem như bằng 0.

VCC RST CLK RFU RFU h÷ ký GND

Điểm Vpp là tùy chọn và chỉ dùng trong các thẻ cũ. Khi được sử dụng, nó cung cấp hai mức hiệu điện thế lập trình. Mức thấp được gọi là trạng thái ngủ (idle state), mức cao là trạng thái kích hoạt ( active state). Thay đổi mức điện thế là cần thiết để lập trình bộ nhớ EEPROM trong một số thẻ thông minh cũ.

Điểm I/O được dùng để chuyển dữ liệu và lệnh giữa thẻ thông minh và thế

giới bên ngoài theo chếđộ bán song công (half – duplex mod). Có nghĩa là tín hiệu và lệnh chỉđược truyền theo một hướng duy nhất ở một thời điểm.

Các điểm RFU để dành cho tương lai.

1.2.1.2. B x lý trung tâm trong th thông minh

Hình 1-5 Cu trúc b x lý trong th thông minh

Bộ xử lý trung tâm trong hầu hết các chip thẻ thông minh hiện nay là 8- bit, thường sử dụng tập lệnh của Motorola 6805 và Intel 8051, với tín hiệu đồng hồ tới 5MHz. Các thẻ công nghệ cao (high-end) thường gồm bộ nhân tín hiệu (nhân 2,4 hoặc 8), nó cho phép những thẻđó thao tác tới 40 MHz(5Mhz nhân 8).

Các thẻ thông minh mới nhất có bộ vi xử lý 16 hoặc 32 bit, và có tập lệnh

đơn giản (RISC). Trong tương lai chúng sẽ trở nên phổ biến.

1.2.1.3. Bđng x lý trong th thông minh

Các chip thẻ thông minh cho các ứng dụng bảo mật, thường có bộđồng xử

lý. Bộđồng xử lý có mạch tích hợp đặc biệt để tăng khả năng tính toán, đặc biệt các thuật toán modular và tính toán với số nguyên lớn. Những tính toán này được yêu cầu bởi thuật toán mã hóa chẳng hạn như RSA.

CPU ROM Card OS VM Apps. RAM EEPROM CO- PROCESSOR

1.2.1.4. H thng b nh ca th thông minh (adsbygoogle = window.adsbygoogle || []).push({});

Hình 1-6 H thng b nh th thông minh

Thẻ thông minh thường gồm ba loại bộ nhớ ROM, EEPROM, RAM. ROM (bộ nhớ chỉđọc) được dùng để lưu trữ các chương trình cố định của thẻ. Nó có thể lưu trữ dữ liệu khi nguồn đã tắt và không thể ghi sau khi thẻđược sản xuất. ROM của thẻ thông minh có thể chứa hệđiều hành cũng như dữ liệu và chương trình cốđịnh. Quá trình ghi mã nhị phân vào ROM được gọi là làm mặt nạ (masking),

được thực hiện trong quá trình sản xuất chip.

EEPROM (bộ nhớ chỉđọc có thể lập trình bằng tín hiệu điện).

RAM (bộ nhớ truy nhập ngẫu nhiên): dùng để lưu trữ những thông tin cần xử lý nhanh nhưng mang tính tạm thời, không được lưu lại khi nguồn đã tắt.

1.2.2. Giao tiếp truyn thông vi th thông minh

1.2.2.1. Thit b chp nhn th và các ng dng máy ch

Thẻ thông minh được đưa vào thiết bị chấp nhận thẻ, được kết nối tới một máy tính khác. Thiết bị chấp nhận thẻđược chia làm hai loại: đầu đọc thẻ và thiết bịđầu cuối (terminal).

Đầu đọc được kết nối tới cổng nối tiếp, cổng song song hoặc cổng USB của máy tính, qua đó thẻ thông minh được truyền thông. Đầu đọc có khe cắm chứa thẻ

thông minh, hoặc có thể nhận dữ liệu thông qua trường điện từđối với thẻ không tiếp xúc. Thông thường thẻ đọc không đủ thông minh để xử lý dữ liệu, có thể có các hàm dò và sửa lỗi nếu việc truyền dữ liệu không tương thích với giao thức truyền thông mức dưới.

Thiết bịđầu cuối, có máy tính của riêng nó. Một thiết bịđầu cuối tích hợp

đầu đọc thẻ như là một thành phần của nó. Ta có thể thấy các thiết bịđầu cuối như

các điểm bán hàng (point of sales – POS) hoặc máy rút tiền tự động (Automatic Teller Machines – ATMs). Bên cạnh chức năng của đầu đọc thẻ, thiết bịđầu cuối

1.2.2.2. Mô hình truyn thông vi th thông minh

Việc truyền thông giữa thẻ và máy chủ là bán song công, có nghĩa là dữ

liệu chỉ có thể truyền từ thẻđến máy chủ hoặc từ máy chủđến thẻ chứ không thể

theo cả hai hướng một lúc.

Thẻ thông minh tương tác với máy tính bằng cách sử dụng các gói tin của riêng nó - được gọi là APDUs (Application Protocol Data Units - đơn vị dữ liệu giao thức ứng dụng). Một APDU chứa một lệnh hoặc một thông điệp trả lời.

Thẻ thông minh đóng vai trò thụđộng trong mô hình chủ - tớ với máy chủ. Nó đợi lệnh APDU từ máy chủ. Sau đó thực hiện chỉ thị trong lệnh và trả lời máy chủ với APDU phản hồi. Các lệnh APDU và APDU phản hồi được truyền đan xen giữa máy chủ và thẻ.

1.2.2.3. Giao thc APDU

Được chỉ ra trong chuẩn ISO 7816-4, APDU là một giao thức ở mức ứng dụng giữa thẻ thông minh và ứng dụng của máy chủ. Các thông điệp APDU gồm hai loại cấu trúc: một được sử dụng bởi ứng dụng máy chủ từ phía thiết bị chấp nhận thẻđể gửi lệnh đến thẻ và một được sử dụng bởi thẻđể gửi thông điệp trả lời cho ứng dụng máy chủ. Tương ứng với chúng là hai lớp APDU lệnh (Command APDU C-APDU) và APDU phản hồi (Response APDU R-APDU).

Một lệnh APDU luôn có lệnh R-APDU tạo thành cặp tương ứng. Cấu trúc APDU lệnh:

CLA INS P1 P2 P3 Data with length P3

Cấu trúc APDU phản hồi:

Data with length Le SW1 SW2

Header của APDU lệnh gồm 4 bytes: CLA (“lớp” chỉ thị), INS (“mã” chỉ

thị), và P1, P2 (tham số 1 và 2). Byte “lớp” xác định loại APDU lệnh và APDU phản hồi. Byte “mã” xác định chỉ thị của lệnh. Hai tham số P1 và P2 xác định thêm thông tin cho chỉ thị. Tham số P3 xác định độ dài trường dữ liệu (theo byte). Phần sau header trong APDU lệnh là phần tùy chọn chi tiết có độ dài đa dạng. Trường Lc trong phần chi tiết chỉ rõ độ dài của trường dữ liệu (theo byte). Trường dữ liệu chứa dữ liệu được truyền tới thẻ để thực hiện lệnh được chỉ rõ trong header của APDU. Byte cuối cùng trong phần chi tiết APDU lệnh là trường Le, nó chỉ ra số byte mà máy chủ chờ thẻ phản hồi.

APDU phản hồi, được gửi bởi thẻ để trả lời cho APDU lệnh, bao gồm một chi tiết tùy chọn và phần bắt buộc kèm theo. Phần chi tiết bao gồm trường dữ liệu có độ dài được xác định bởi trường Le trong APDU lệnh tương ứng. Phần bắt buộc bao gồm hai trường SW1 và SW2, đi cùng với nhau được gọi là từ trạng thái, biểu thị trạng thái xử lý của thẻ sau khi thực hiện APDU lệnh. Ví dụ: từ trạng thái “0x9000” có nghĩa là một lệnh đã được thực hiện thành công và trọn vẹn.

Trường dữ liệu là tùy chọn đối với cả APDU lệnh và APDU phản hồi. Do

đó, APDU còn được phân loại thêm theo 5 loại sau, dựa trên đặc điểm có chứa trường dữ liệu trong APDU lệnh và APDU phản hồi hay không. (adsbygoogle = window.adsbygoogle || []).push({});

o Trường hp 1: Không đầu vào/Không đầu ra

CLA INS P1 P2 P3 SW1 SW2

lgth (='00') '90' '00'

o Trường hp 2: Không đầu vào/Đầu ra có độ dài biết trước

CLA INS P1 P2 P3 DATA with length lgth SW1 SW2

Lgth '90' '00'

NOTE: lgth='00' tương ứng dữ liệu truyền 256 bytes.

o Trường hp 3: Không đầu vào/Đầu ra có độ dài chưa biết trước

CLA INS P1 P2 P3 SW1 SW2

lgth (='00') '9F' lgth1

GET RESPONSE

CLA INS P1 P2 P3 DATA with length lgth2 ≤≤≤≤ lgth1 SW1 SW2

lgth2 '90' '00'

o Trường hp 4: Có đầu vào/Không đầu ra

CLA INS P1 P2 P3 DATA with length lgth SW1 SW2

Lgth '90' '00'

o Trường hp 5: Có đầu vào/Đầu ra có độ dài biết trước hoặc không

CLA INS P1 P2 P3 DATA with length lgth SW1 SW2

Lgth '9F' lgth1

GET RESPONSE

Trường hợp 1: không có dữ liệu được truyền tới hoặc nhận từ thẻ, APDU lệnh chỉ chứa header, APDU phản hồi chỉ chứa từ trạng thái.

Trường hợp 2: không có dữ liệu được truyền tới thẻ, nhưng có dữ liệu phản hồi từ thẻ. Chi tiết APDU lệnh chỉ chứa 1 byte - trường Le, nó chỉ rõ số byte dữ

liệu cần có trong APDU phản hồi.

Trường hợp 3: không có dữ liệu được truyền tới thẻ, nhưng có dữ liệu phản hồi từ thẻ. Tuy nhiên độ dài của dữ liệu phản hồi không được chỉ rõ.

Trường hợp 4: dữ liệu được truyền tới thẻ, nhưng không có dữ liệu được trả

về do kết quả của quá trình xử lý lệnh. Chi tiết của APDU lệnh bao gồm trường Lc và trường dữ liệu. Trường Lc chỉ ra độ dài của trường dữ liệu. APDU phản hồi chỉ

chứa từ trạng thái.

Trường hợp 5: dữ liệu được truyền tới thẻ và dữ liệu được trả về từ thẻ là kết quả của quá trình xử lý lệnh. Chi tiết APDU lệnh bao gồm trường Lc, trường dữ liệu và trường Le. APDU phản hồi gồm cả dữ liệu và từ trạng thái.

1.2.2.4. Mã hoá bit (bit encoding)

Mã hoá bit trực tiếp hay đảo bit đều được dùng trong thẻ thông minh (adsbygoogle = window.adsbygoogle || []).push({});

o Trc tiếp (xuôi th t):

o Đảo bit (ngược th t )

1.2.2.5. Giao thc TPDU

APDU được truyền bởi giao thức mức tiếp theo – giao thức truyền thông,

được định nghĩa trong ISO 7816 – 3. Cấu trúc dữ liệu được trao đổi giữa máy chủ

và thẻ sử dụng giao thức truyền thông được gọi là giao thức truyền thông đơn vị

dữ liệu (Transport Protocol Data Unit - TPDU).

Hai giao thức truyền thông được dùng chủ yếu trong các hệ thống thẻ thông minh hiện nay là T = 0 và T = 1.

Giao thức T = 0 là giao thức hướng byte, có nghĩa là đơn vị nhỏ nhất được xử lý và truyền đi bởi giao thức là một byte. Giao thức T = 1 là hướng khối, tức là một khối gồm một số byte liên tiếp, là đơn vị dữ liệu nhỏ nhất có thể truyền giữa thẻ và máy chủ.

Cấu trúc TPDU được dùng trong giao thức T = 0 và T = 1 là khá khác nhau. T= 0 là giao thức truyền ký tự bán song công không đồng bộ. Hầu hết các thẻ thông minh sử dụng giao thức T =0. Tất cả các thẻ cho mạng di động GSM

đều dùng giao thức này.

T = 1 là giao thức truyền khối dữ liệu bán song công không đồng bộ. Thẻ

có thể hỗ trợ cả hai giao thức này, khi đó thiết bị đầu cuối sẽ lựa chọn giao thức nào được sử dụng.

Ta xem xét đặc điểm của hai giao thức này. T = 0

Giao thức truyền ký tự bán song công không đồng bộ. Thẻ có thể phát và nhận dữ liệu.

Một lệnh không thể gửi dữ liệu tới thẻ rồi nhận dữ liệu phản hồi đồng thời. Giao thức không chỉ ra hướng của dữ liệu.

Thiết bịđầu cuối phải biết hướng dữ liệu.

o D liu ti th, ví d lnh ghi

o D liu t th, ví d lnh đọc

T = 1

Giao thức truyền khối bán song công không đồng bộ. Dữ liệu có thểđược truyền theo cả hai hướng.

Lệnh và dữ liệu trong trường thông tin. Lệnh và dữ liệu trong khung độc lập. Không có byte kiểm tra chẵn lẻ.

1.2.2.6. Thông đip tr li đ xác lp li (ATR)

Ngay sau khi bật nguồn, thẻ thông minh gửi thông điệp trả lời để xác lập lại (answer to reset –ATR) tới máy chủ. Thông điệp này truyền tới máy chủ các thông số yêu cầu bởi thẻđể thiết lập kênh kết nối truyền dữ liệu. ATR có thể có từ 2 đến 33 byte. Byte đầu tiên định nghĩa kiểu mã bit (trực tiếp hay đảo ngược). ATR còn chứa các tham số truyền tín hiệu như giao thức truyền thông được thẻ hỗ trợ (T=0 hoặc T =1), tốc độ truyền dữ liệu, các tham số phần cứng của thẻ như số thứ tự

chip, phiên bản làm mặt nạ cho chip, nhà sản xuất …

1.2.3. Hệđiu hành th thông minh

Hệ điều hành thẻ thông minh gần giống như hệ điều hành máy để bàn (desktop) như DOS, UNIX hay Window. Ngoài ra, hệ điều hành thẻ thông minh hỗ trợ một tập hợp các lệnh, dựa vào đó để xây dựng các ứng dụng của người dùng. ISO 7816 – 4 đã được chuẩn hóa có thể hỗ trợ tập hợp lớn các chỉ thị trong

định dạng của APDU. Một hệđiều hành thẻ thông minh có thể hỗ trợ một số hay tất cả các lệnh APDU khi nhà sản xuất thêm vào và mở rộng.

Các lệnh APDU phần lớn hướng file hệ thống, như các lệnh lựa chọn file và truy cập file. Trong trường hợp này, một ứng dụng của người dùng thường là một file dữ liệu lưu thông tin cụ thể của ứng dụng. Ngữ nghĩa và chỉ thịđể truy cập file dữ liệu ứng dụng được thực hiện bởi hệđiều hành. Việc phân chia giữa hệ điều hành và ứng dụng không được định nghĩa rõ ràng. Các hệđiều hành mới hỗ

trợ tốt hơn sự phân chia lớp hệ thống và nạp về mã ứng dụng của người dùng. (adsbygoogle = window.adsbygoogle || []).push({});

1.2.4. Các File h thng trong th thông minh

Thẻ thông minh lưu trữ thông tin bằng các file dữ liệu. Các file dữ liệu này

được tổ chức dưới dạng cây phân cấp theo chuẩn ISO 7816 – 4. Người ta chia làm ba loại: thư mục gốc (master file -MF), thư mục chuyên dụng (dedicated file -DF) và các file cơ bản (elementary file – EF). Các file này dùng để quản trị hoặc cho

ứng dụng.

Dữ liệu được lưu trong các file được quản lý bởi hệ điều hành. Các file gồm có header, được quản lý bởi thẻ thông minh và phần tùy chọn là chi tiết. Header chứa các thông tin liên quan đến cấu trúc và thuộc tính của file, còn phần chi tiết chứa dữ liệu của file.

1.2.4.1. Th mc gc (Master File - MF)

Thư mục gốc (MF) của hệ thống file và là duy nhất cho mỗi thẻ. MF được kích hoạt khi thẻ được đưa vào thiết bị đọc thẻ (ví dụ điện thoại di động). MF không thể bị xoá khi thẻ còn hoạt động.

1.2.4.2. Th mc chuyên dng (Dedicated File - DF)

DF là thư mục của thẻ thông minh, nó lưu các thư mục chuyên dụng khác và các file cơ bản. DF lưu trữ dữ liệu ứng dụng. Về bản chất vật lý, nó là một khối bộ nhớ tĩnh và có một khối header. Tất cả các DF được phân chia về vật lý và logic với DF khác, để tránh sựảnh hưởng lẫn nhau giữa các ứng dụng khác nhau. Một số DF có thể chia sẻ tài nguyên chung qua MF.

Các DF ở mức đầu tiên tồn tại trong thẻ SIM như sau: DFGSM, chứa các ứng dụng cho GSM và DCS 1800.

DFIS41, chứa ứng dụng cho IS41.

DFTELECOM, chứa các dịch vụ dành cho viễn thông.

DFFP-CTS, chứa các ứng dụng cho phần cốđịnh CTS.

Tất cả các thư mục này là mức con ngay dưới của MF.

1.2.4.3. File c bn (Elementary File - EF)

Những file này chứa dữ liệu thực sự. Chúng bao gồm một chi tiết và một header. Có 4 loại EF: file trong suốt (transparent), cố định tuyến tính (linear fixed), biến đổi tuyến tính (linear variable) và cốđịnh nối vòng (cyclic fixed).

Hình 1-7 Cu trúc file trong th thông minh

o EF trong sut (Transparent EF)

Một phần của tài liệu Chữ ký số trong thẻ thông minh và ứng dụng xác thực (Trang 26)