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 Cấu trúc file trong thẻ thông minh
o EF trong suốt (Transparent EF)
Đó là EF có cấu trúc gồm các byte liên tiếp. Byte đầu tiên có địa chỉ ‘00’. Khi file được đọc hoặc cập nhật, byte được kích hoạt sẽ được tham chiếu qua địa chỉ offset, nó biểu thị vị trí bắt đầu của byte và độ dài được đọc hoặc cập nhật tính từ vị trí đó. Header của file trong suốt biểu thịđộ dài chi tiết của file.
o EF cốđịnh tuyến tính (Linear fixed EF)
Kiểu EF này gồm các bản ghi liên tiếp có cùng độ dài (cố định). Mỗi bản ghi được định danh duy nhất bởi số thứ tự bản ghi. Độ dài của bản ghi và số bản
Liên kết với cấu trúc trong suốt, ta có thể có một số cách để truy nhập các bản ghi của file này. Có thể truy cập qua số thứ tự bản ghi, bằng cách sử dụng chế độ TRƯỚC – SAU, hoặc bằng cách sử dụng dạng tìm kiếm từ đầu file. File này cũng có giới hạn theo chuẩn ISO 7816 – 4, số bản ghi tối đa trong file tuyến tính cốđịnh là 254, và mỗi bản ghi có độ dài không vượt quá 255 bytes.
o EF nối vòng (Cyclic EF)
Có cấu trúc tương tự file cốđịnh tuyến tính. Nó gồm có số cố định các bản ghi với độ dài các bản ghi là cốđịnh. Điểm khác nhau với file tuyến tính cố định là có liên kết giữa bản ghi đầu tiên và cuối cùng. Theo cách này, khi con trỏ bản ghi ở bản ghi cuối cùng, bản ghi tiếp theo là bản ghi đầu tiên, khi con trỏở bản ghi
đầu tiên, bản ghi trước nó là bản ghi cuối cùng.
EF nối vòng được sử dụng phổ biến cho việc lưu trữ thông tin theo mốc thời gian. Theo cách này, khi tất cả các bản ghi đã được sử dụng, dữ liệu tiếp theo sẽ ghi đè bản lên ghi cũ nhất đã được dùng, sử dụng phương thức TRƯỚC. Với thao tác đọc, phương thức tìm địa chỉ bản ghi là TRƯỚC, SAU, HIỆN TẠI và SỐ
HIỆU BẢN GHI.
1.2.5. Truy cập File
1.2.5.1. Đnh danh file
Định danh được dùng đểđánh địa chỉ mỗi thư mục/file trong thẻ SIM. Định danh bao gồm hai byte và được thể hiện dưới dạng mã hexa. Byte đầu tiên của
định danh xác định kiểu thư mục/file. Định danh file cho GSM như sau: Thư mục gốc: 3F
Mức đầu tiên của thư mục chuyên dụng: 7F Mức thứ hai của thư mục chuyên dụng: 5F File cơ bản dưới mức MF: 2F
File cơ bản dưới mức DF đầu tiên: 6F File cơ bản dưới mức DF thứ hai: 4F
1.2.5.2. Các phng thc la ch n file
Các thiết bị di động được kích hoạt, thư mục gốc sẽđược chọn và trở thành thư mục hiện tại. Mỗi thư mục/file của SIM có thể được lựa chọn bởi lệnh SELECT. Có một số luật cần tuân theo để việc lựa chọn thư mục/file thành công. Từ thư mục/file hiện tại, các thư mục/file sau có thểđược lựa chọn:
Thư mục gốc (MF).
Thư mục chuyên dụng hiện tại.
Thư mục chuyên dụng mức cha của thư mục hiện tại.
Bất kỳ thư mục chuyên dụng nào là mức con liền kề của thư mục chuyên dụng cha của thư mục hiện tại.
Bất kỳ thư mục chuyên dụng nào là con của thư mục hiện tại.
Tất cả việc lựa chọn thư mục/file được thực hiện bởi dùng định danh của thư mục/file được lựa chọn
1.2.5.3. Điu kin truy cp file
Để lựa chọn một file của thẻ SIM, cần có một số điều kiện truy cập phải tuân theo. Điều kiện truy cập chỉ áp dụng cho file cơ bản, thư mục gốc và thư mục chuyên dụng không có điều kiện truy cập.
Các điều kiện truy cập được định nghĩa cho các file của SIM như sau: ALWAYS: Không có giới hạn về chức năng được thực hiện.
CHV1: Chức năng này chỉ được thực hiện khi giá trị CHV1 được nhập
đúng, hoặc CHV1 bị vô hiệu (disable), hay lệnh UNBLOCK CHV1 đã được thực hiện thành công ở bước trước.
CHV2: Được thực hiện khi giá trị CHV2 được nhập đúng, hoặc khi lệnh UNBLOCK CHV2 đã được thực hiện thành công.
ADM: Xác định thực hiện yêu cầu này là trách nhiệm có thẩm quyền quản trị.
NEVER: Những chức năng này chỉ được thực hiện bên trong SIM. Không có cách nào được thực hiện qua giao diện MÁY – SIM (ME – SIM ).
Các mức truy cập được thực hiện cho thẻ SIM: ALWAYS: mức 0
CHV1: mức 1
CHV2: mức 2
Mức 3 được dành cho tương lai.
Mức 4 đến 14 là mức cho ADM.
1.2.5.4. Lnh thao tác vi th
Tập lệnh ISO/IEC 7816-4 chia thành 2 phần chính: truy xuất file và security. Sau đây là mô tả chi tiết cho một số các lệnh cơ bản trong tập lệnh này.
o Lệnh Select File
Lệnh này dùng để thiết lập một con trỏ logic tới file cần thao tác. Mọi thao tác sau này đều thông qua con trỏ logic này, có thể tạo cùng lúc nhiều con trỏ như
vậy thông qua lệnh Manage Channel bằng cách tạo ra nhiều kênh giao tiếp giữa reader và card (lưu ý là việc truy xuất hệ thống file là không đa luồng). Lệnh này phải cung cấp cho phía card thông tin xác định file cần trỏ tới, có 4 cách chỉ ra thông tin này (mặc dù không phải loại card nào cũng hỗ trợ cả):
Bằng sốđịnh danh file 2 byte Bằng tên của DF
Bằng đường dẫn: chuỗi ghép các sốđịnh danh Bằng sốđịnh danh 5 bit
o Lệnh Read Binary
Lệnh này được phía reader dùng để đọc một đoạn trong file EF. File EF
được đọc phải là dạng file trong suốt, nếu cố truy xuất một file dạng bản ghi sẽ
xuất hiện lỗi. Hai tham số phía reader truyền tới là địa chỉ offset của byte bắt đầu cần đọc và số byte cần đọc và được trả về phía reader.
o Lệnh Write Binary
Tương tự lệnh Read Binary, lệnh Write Binary chỉ làm việc với các file không phải kiểu bản ghi. Tùy thuộc vào thuộc tính đặt trong lệnh mà nó có thể được dùng để “dựng” một dãy các byte trong EF (đặt các bit cho trước trong một byte thành giá trị 1), “xóa” một dãy các byte trong EF (đặt các bit cho trước trong một byte thành giá trị 0) hay ghi một dãy các byte vào EF.
o Lệnh Update Binary
Lệnh này cũng chỉ làm việc với các file không phải kiểu bản ghi, nó xóa một dãy các byte trong EF và ghi vào đó một dãy các byte khác có độ dài tương
đương. Các tham số truyền từ phía reader là địa chỉ offset và số byte cần ghi.
o Lệnh Erase Binary
Tương tự các lệnh trên, nó chỉ làm việc với các file transparent, chức năng của lệnh là xóa một dãy các byte của EF được chỉ ra trong các tham số truyền từ
o Lệnh Read Record
Lệnh này chỉ làm việc với các file bản ghi. Nếu cố gắng truy xuất tới một file transparent, lỗi sẽ xuất hiện. Chức năng của lệnh này là đọc nội dung của một hay nhiều bản ghi của EF. Tùy thuộc vào tham số truyền cùng lệnh mà nó sẽ đọc các bản ghi từ đầu tới một bản ghi cho trước, từ bản ghi cho trước tới cuối file hoặc là chỉ một bản ghi cho trước của file.
o Lệnh Write Record
Lệnh Write Record chỉ làm việc với các file bản ghi, chức năng của nó hoặc là ghi một bản ghi vào EF, đặt một số bit trong một bản ghi hoặc là xóa một số bit trong một bản ghi. Các cách sau đây được dùng để chỉ ra bản ghi được ghi trong EF: bản ghi đầu tiên trong EF, bản ghi cuối cùng trong EF, bản ghi kế tiếp trong EF, bản ghi trước đó trong EF hoặc là một bản ghi cụ thể (xác định bởi một số) trong EF.
o Lệnh Append Record
Lệnh này dùng để bổ sung thêm một bản ghi vào cuối file bản ghi tuyến tính hoặc ghi bản ghi đầu tiên vào một file bản ghi tuần hoàn.
o Lệnh Update Record
Lệnh Update Record có chức năng xóa một bản ghi cụ thể và ghi vào đó một bản ghi khác trong EF.
o Lệnh Get Data
Lệnh này được gửi bởi reader nhằm đọc nội dung một đối tượng dữ liệu nằm trên hệ thống file trên card. Do việc quy định các “đối tượng dữ liệu” thay
đổi khác nhau từng loại card nên lệnh này cũng khác nhau đối với từng loại card.
o Lệnh Put Data
Tương tự lệnh Get Data, sự khác nhau duy nhất chỉ là chức năng của lệnh là ghi nội dung lên một đối tượng dữ liệu.
o Lệnh Verify
Lệnh Verify được reader gửi tới hệ thống bảo mật trên card thực hiện việc kiểm tra một mật mã xem có đúng với mật mã được lưu trên card hay không. Mật mã lưu trên card thường gắn vào một file, một vài file hoặc toàn bộ hệ thống file trên card. Nếu thực hiện lệnh này thành công, ứng dụng phía reader sẽ có thể truy cập tới các file được bảo vệ bởi mật mã vừa được kiểm tra. Nếu thực hiện không thành công (mật mã không đúng với mật mã trên card), một trạng thái lỗi được gửi trả về phía reader.
o Lệnh Internal Authenticate
Lệnh này được ứng dụng phía reader gửi tới card để nhận dạng card, lệnh này cho biết card có sở hữu một khóa bí mật được chia sẻ với ứng dụng phía reader hay không. Ứng dụng phía reader sẽ sinh ra một số ngẫu nhiên rồi mã hóa nó và truyền đi, phía card khi nhận được sẽ giải mã dựa vào khóa bí mật nằm trên card và gửi trả lại kết quả cho ứng dụng phía reader. Nếu kết quả trả lại đúng là số
ngẫu nhiên ban đầu mà phía reader sinh ra, lệnh được coi như thực hiện thành công, ứng dụng phía reader lúc này có thể cho phép card truy cập vào một số
thông tin và dịch vụ trong ứng dụng phía reader.
o Lệnh External Authenticate
Lệnh này kết hợp với lệnh Get Challenge dùng để giúp card xác thực được
ứng dụng phía reader. Thông qua lệnh Get Challenge, ứng dụng phía reader nhận
được một sốđược sinh ra ngẫu nhiên bởi card và mã hóa nó thông qua một khóa bí mật riêng. Thông tin mã hóa được trả lại card và card sẽ dùng khóa bí mật của mình để giải mã thông tin này. Nếu số nhận được sau khi giải mã trùng với số
ngẫu nhiên mà card đã gửi đi thì nghĩa là card đã xác thực đúng ứng dụng phía reader và cho phép nó truy cập dữ liệu trên card. Trong quá trình “nhận nhau” này, khóa bí mật không hề truyền qua lại lẫn nhau giữa card và ứng dụng phía reader.
o Lệnh Get Challenge
Lệnh Get Challenge như đã nói ở trên nhận về một thông tin dùng để xác thực được gửi đi từ card (thường là một số sinh ngẫu nhiên bởi card). Lệnh này thường hoạt động cùng với lệnh External Authenticate.
o Lệnh Manage Channel
Lệnh này được ứng dụng phía reader mở hoặc đóng các kênh giao tiếp giữa nó và card. Thông thường, sau khi quá trình khởi tạo (thông qua cơ chế ATR)
được thiết lập giữa ứng dụng phía reader và card, một kênh giao tiếp mặc định
được mở ra. Kênh giao tiếp này sau đó được dùng để mở thêm hoặc đóng các kênh giao tiếp logic khác thông qua lệnh Manage Channel.
o Lệnh Envelope:
Lệnh Envelope hỗ trợ kiểu truyền bảo mật thông qua giao thức T=0. Trong kiểu truyền này các APDU được mã hóa và gửi đi.
o Lệnh Get Response:
Lệnh này cho phép dùng giao thức T=0 để truyền đủ các dạng của APDU. Với kiểu APDU Case 4 trong giao thức T=0, phản hồi gửi trả lại ứng dụng phía reader chỉ ra là còn dữ liệu đang chờ, lệnh dùng với mục đích lấy về dữ liệu chờ.
1.2.6. Quá trình sản xuất một Smart Card
Quá trình sản xuất một Smart Card được chia thành nhiều bước khác nhau:
o Chế tạo chip
Hàng ngàn chip kích thước 5x5mm được chế tạo đặt trong một miếng silicon hình bánh thánh (wafer) - một hình tròn có đường kính lớn hơn 100mm, xấp xỉ 4 inch – sau khi hoàn thành, một miếng silicon như vậy chứa khoảng 3000 đến 4000 con chip. Quá trình chế tạo được thực hiện thông qua một quy trình lọc chân không của vật liệu bán dẫn siêu tinh khiết trên nền silicon.
o Đóng gói các chip riêng lẻđểđưa vào trong thẻ
Sau khi quá trình thứ nhất được hoàn thành, mỗi một chip riêng lẻđược test để đảm bảo là chúng hoạt động được. Mỗi một con chip hoạt động tốt được đánh dấu bằng một dấu hiệu vật lý chuẩn bị cho quá trình chia nhỏ miếng silicon thành nhiều mảnh khác nhau, mỗi chip một mảnh riêng. Sau khi các chip được phân chia xong, các connector được gắn vào, các đường dẫn vô cùng nhỏ trên connector nối tới các chân tương ứng trong mỗi con chip kết quả có một module.
o Chế tạo thẻ
Thẻđược chế tạo bằng polyvinyl chloride hoặc các vật liệu tương tự, các đặc tính hóa học và kích thước của thẻ tuân theo các chuẩn quốc tế (xem 1.6). Thẻđược làm từ những tấm vật liệu phẳng, rộng và có độ dày quy định, tấm vật liệu này sau đó
được in và từng chiếc thẻ riêng lẻđược cắt ra. Công đoạn cuối cùng là làm tròn các cạnh của thẻ.
o Đưa chip vào trong thẻ
Một khi module và thân thẻđược làm xong, chúng được gắn vào nhau. Một lỗ
hổng được tạo ra trên phần thẻ và module được dính vào đó. Lỗ hổng này được làm bằng cách khắc hoặc là nấu chảy vật liệu rồi gắn thẳng module vào.
o Quá trình chuẩn bị chuyên biệt hóa (pre-personalization)
Sau khi module được gắn vào trong card, một số chương trình và các file phải
được cài đặt trên card trước khi chuyên biệt hóa và chuyển cho người sử dụng. Quá trình này thực hiện thông qua các I/O connector trên bề mặt của thẻ.
o Quá trình chuyên biệt hóa (personalization)
Quá trình này bao gồm việc đưa các thông tin của người sử dụng như tên và số
tài khoản lên chip của thẻ, quá trình còn bao gồm việc viết sốđịnh danh PIN lên thẻ để sau này người sử dụng dùng nó để chứng thực nhận dạng của mình đối với thẻ.
o In thẻ
Việc in các hình đồ họa và chữ lên thẻ có một vai trò hết sức quan trọng, nó thể hiện được tính chất của thẻ và của nhà sản xuất. Các biểu tượng như logo hay biểu tượng tập đoàn thể hiện thông tin về nhà sản xuất và có giá trị quảng cáo. Với