Mã hoá bit (bit encoding)

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 31)

Mã hoá bit trực tiếp hay đảo bit đều được dùng trong thẻ thông minh

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)

Đó 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 ni 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 cp 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 (adsbygoogle = window.adsbygoogle || []).push({});

đị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 Lnh 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 (adsbygoogle = window.adsbygoogle || []).push({});

Bằng đường dẫn: chuỗi ghép các sốđịnh danh Bằng sốđịnh danh 5 bit

o Lnh 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 Lnh 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 Lnh 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 Lnh 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 Lnh 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 Lnh 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 Lnh 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 Lnh 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 Lnh 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 Lnh 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 Lnh 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 Lnh 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ố (adsbygoogle = window.adsbygoogle || []).push({});

thông tin và dịch vụ trong ứng dụng phía reader.

o Lnh 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,

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 31)