TCPIP có cấu trúc tương tự như mô hình OSI, tuy nhiên để đảm bảo tính tương thích giữa các mạng và sự tin cậy của việc truyền thông tin trên mạng, bộ giao thức TCPIP được chia thành 2 phần riêng biệt: giao thức IP sử dụng cho việc kết nối mạng và giao thức TCP để đảm bảo việc truyền dữ liệu một cách tin cậy.
Trang 1MỤC LỤC
MỤC LỤC i
DANH MỤC CÁC TỪ VIẾT TẮT iii
DANH MỤC CÁC HÌNH VẼ v
Chương 1 - TỔNG QUAN VỀ THẺ THÔNG MINH 1
1.1 KHÁI NIỆM THẺ THÔNG MINH 1
1.2 CÁC LOẠI THẺ CƠ BẢN 1
1.2.1 Thẻ nhớ và thẻ chip 1
1.2.2 Thẻ tiếp xúc và thẻ không tiếp xúc 3
1.3 PHẦN CỨNG CỦA THẺ THÔNG MINH 3
1.3.1 Các điểm tiếp xúc 4
1.3.2 Bộ xử lý trung tâm trong thẻ thông minh 5
1.3.3 Bộ đồng xử lý thẻ trong thông minh 5
1.3.4 Hệ thống bộ nhớ của thẻ thông minh 5
1.4 TRUYỀN THÔNG VỚI THẺ THÔNG MINH 6
1.4.1 Thiết bị chấp nhận thẻ và các ứng dụng máy chủ 6
1.4.2 Mô hình truyền thông với thẻ thông minh 6
1.4.3 Giao thức APDU 6
1.4.4 Mã hoá bit 8
1.4.5 Giao thức TPDU 9
1.4.6 Thông điệp trả lời để xác lập lại 10
Chương 2 - HỆ ĐIỀU HÀNH THẺ THÔNG MINH 11
2.1 GIỚI THIỆU HỆ ĐIỀU HÀNH THẺ THÔNG MINH 11
2.2 CÁC FILE HỆ THỐNG TRONG THẺ THÔNG MINH 13
2.2.1 Thư mục gốc 13
2.2.2 Thư mục chuyên dụng 13
2.2.3 File cơ bản 14
2.3 TRUY CẬP FILE 16
2.3.1 Định danh file 16
2.3.2 Các phương thức lựa chọn file 16
2.3.3 Điều kiện truy cập file 17
2.4 CẤU TRÚC FILE THẺ EMV 17
2.4.1 Cấu trúc file thẻ MPCOS-EMV 17
2.4.2 Cấu trúc file thẻ Global Platform 19
2.5 CÁC CHỨC NĂNG CỦA THẺ EMV 23
2.6 ĐẶC TẢ ỨNG DỤNG DEBIT VÀ CREDIT 25
2.6.1 Các file trong trao đổi giao dịch tài chính 25
2.6.2 Lồng giao dịch 27
Trang 22.6.3 Các hàm được sử dụng trong xử lý giao dịch 28
Chương 3 - XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH 31
3.1 CÁC THUẬT TOÁN MÃ HOÁ 31
3.1.1 Mã hoá khoá đối xứng 31
3.1.2 Mã hoá khoá công khai 34
3.2 GIAO THỨC XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH 36
3.2.1 Giao thức xác thực với thẻ thông minh 36
3.2.2 Bảo toàn dữ liệu với thẻ thông minh 38
3.2.3 Bảo toàn và bảo mật dữ liệu với thẻ thông minh 40
3.2.4 Thiết lập khoá phiên với thẻ thông minh 41
3.3 QUẢN LÝ KHÓA VÀ CƠ CHẾ BẢO MẬT CỦA THẺ EMV 42
3.3.1 Xác thực dữ liệu tĩnh 42
3.3.2 Xác thực dữ liệu động ngoại tuyến 42
3.3.3 Mã hóa số PIN 43
3.4.4 Thông điệp an toàn 44
3.4.5 Các chính sách và nguyên tắc quản lý chứng chỉ khóa công khai 44
Chương 4 - CHƯƠNG TRÌNH GHI/ĐỌC DỮ LIỆU THẺ THÔNG MINH TRÊN HỆ MÁY CÔNG NGHIỆP VÀ ĐỂ BÀN 46
4.1 GIỚI THIỆU 46
4.2 QUY TRÌNH LÀM THẺ 47
4.3 HỆ THỐNG TỰ ĐỘNG GHI DỮ LIỆU VÀO THẺ THÔNG MINH 49
4.3.1 Giới thiệu MPR3000 49
4.3.2 Các đặc tính ưu việt của MPR3000 52
4.2.3 Đặc điểm chương trình ghi dữ liệu vào thẻ thông minh PersoAppMPR3K.53 4.3.3 Giới thiệu máy DC9000 54
4.4 Quy trình chuẩn bị số liệu 57
4.4 CHƯƠNG TRÌNH GHI DỮ LIỆU VÀO THẺ THÔNG MINH 58
4.4.1 Bộ công cụ phát triển SPMWIN 58
4.4.2 Chức năng PersoAppMPR3K 61
4.4.3 Bộ công cụ phát triển SCPM SDK 62
4.4.4 Chức năng chính của PASCPM 64
4.4.5 Các kết quả ban đầu đạt được 64
4.4.6 Khai thác và định hướng phát triển các ứng dụng các thể hóa thẻ chip 66
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 69
Trang 3Chương 1 - TỔNG QUAN VỀ THẺ THÔNG MINH
1.1 KHÁI NIỆM THẺ THÔNG MINH
Thẻ thông minh (smart card) thường được gọi là thẻ chip hoặc thẻ mạch tích hợp.Mạch tích hợp trong thẻ gồm các thành phần được sử dụng cho truyền, lưu trữ và xử lý
dữ liệu Thẻ thông minh có thể có một vùng dập nổi trên một mặt và dải từ trên mặtkia
Thể hiện vật lý và đặc tính của thẻ thông minh được định nghĩa trong chuẩn ISO
7816 - 1 Đó là tài liệu cho ngành công nghiệp thẻ thông minh
Thông thường thẻ thông minh không chứa thiết bị cung cấp nguồn, hiển thị haybàn phím Để tương tác với thế giới bên ngoài, thẻ thông minh được đặt trong hay gầnthiết bị chấp nhận thẻ, được nối với máy tính
1.2 CÁC LOẠI THẺ CƠ BẢN
Thẻ thông minh được chia thành một số loại Ví dụ thẻ nhớ (memory card) và thẻ
vi xử lý (microprocessor card) Có thể phân loại thành thẻ tiếp xúc hoặc không tiếp xúcdựa theo cách truy nhập thẻ
Hình 1: Sơ đồ phân loại thẻ.
1.2.1 Thẻ nhớ và thẻ chip
Thẻ thông minh sớm nhất được sản xuất theo số lượng lớn là thẻ nhớ Thẻ nhớchưa thực sự là thẻ thông minh vì chúng không có vi xử lý Chúng được nhúng trongchip nhớ hoặc chip kết hợp với bộ nhớ nhưng không lập trình được
Do thẻ nhớ không có CPU, nên việc xử lý dữ liệu được thực hiện bởi một sốmạch đơn giản, có khả năng thực hiện một vài lệnh được lập trình trước Cũng do sốchức năng của một mạch là giới hạn, được cố định trước nên không thể lập trình đểthay đổi các chức năng đó Tuy nhiên thẻ nhớ có thể dễ dàng làm giả
Ưu điểm của thẻ nhớ là đòi hỏi công nghệ đơn giản do đó giá thành thấp Hình 2
mô tả cấu trúc các khối bên trong của một thẻ nhớ điển hình
Trang 4Hình 2: Sơ đồ khối của thẻ dùng chip nhớ
Thẻ vi xử lý, có khả năng bảo mật cao và khả năng tính toán Với thẻ vi xử lý, dữliệu không được phép truy xuất tuỳ ý vào bộ nhớ Bộ vi xử lý kiểm soát dữ liệu và việctruy nhập bộ nhớ thông qua các điều kiện (mật khẩu, mã hóa …) và các lệnh từ ứngdụng bên ngoài Nhiều loại thẻ vi xử lý hiện nay được thiết kế hỗ trợ việc mã hóa Cácthẻ đó đặc biệt hữu ích cho các ứng dụng cần bảo mật dữ liệu Các chức năng của thẻchủ yếu bị giới hạn bởi dung lượng bộ nhớ và sức mạnh tính toán CPU trong thẻ
Hình 3: Sơ đồ khối của thẻ dùng vi điều khiển
Thẻ vi xử lý được dùng rộng rãi trong kiểm soát truy nhập, ứng dụng ngân hàng,thẻ viễn thông, thẻ khách hàng thường xuyên, thẻ y tế,…
Nhìn chung thuật ngữ “thẻ thông minh” bao gồm cả thẻ nhớ và thẻ vi xử lý Tuynhiên theo thói quen phổ biến hiện nay cũng như trong luận văn này khi sử dụng thuậtngữ “thẻ thông minh” ta hiểu là thẻ vi xử lý
Trang 51.2.2 Thẻ tiếp xúc và thẻ không tiếp xúc
Thẻ tiếp xúc phải được đưa vào một thiết bị chấp nhận thẻ, chúng liên lạc với thếgiới bên ngoài qua giao diện tiếp xúc gồm có 8 điểm như hình vẽ trong phần mô tảphần cứng thẻ thông minh, mục 1.3.1
Thẻ không tiếp xúc không cần phải đặt trong thiết bị chấp nhận thẻ Chúng liênlạc qua ăng ten trong thẻ Năng lượng có thể cung cấp bởi nguồn bên trong hoặc quaăng ten Thẻ không tiếp xúc truyền dữ liệu tới thiết bị chấp nhận thẻ thông qua trườngđiện từ
Hình 4: Cấu trúc của thẻ thông minh không tiếp xúc.
1.3 PHẦN CỨNG CỦA THẺ THÔNG MINH
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ý trungtâ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[13, 24, 28]
Hình 5: Sơ đồ khối bên trong của thẻ thông minh
Trang 61.3.1 Các điểm tiếp xúc
Hình 6: Hình dạng điểm tiếp xúc của thẻ thông minh.
Hình 7: Một số hình dạng điểm tiếp xúc thông dụng của thẻ thông minh
Thẻ thông minh có 8 điểm tiếp xúc, chức năng của chúng như hình trê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[23] như sau:
§ Đ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ểnnguồ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
§ Đ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ệnthế 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ínhiệ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
Trang 71.3.2 Bộ xử lý trung tâm 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ới5MHz Các thẻ công nghệ cao (high - end) thường gồm bộ nhân tín hiệu (nhân 2, 4hoặ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 đơngiản (RISC) Trong tương lai chúng sẽ trở nên phổ biến
1.3.3 Bộ đồng xử lý thẻ trong 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ậttoá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ởithuật toán mã hóa chẳng hạn như RSA, DES,…
1.3.4 Hệ thống bộ nhớ của thẻ thông minh
Hình 8: Sơ đồ khối bên trái cho thấy một phân vùng đặc trưng của bộ nhớ RAM 256
byte của thẻ thông minh cơ bản, sơ đồ bên phải cho thấy một tổ chức bộ nhớ RAM 6
kbyte của thẻ SIM.
Thẻ thông minh thường gồm ba loại bộ nhớ ROM, EEPROM, RAM[24, 28]
§ 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ẻ đượcsả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àmmặ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)
Trang 8§ 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.4 TRUYỀN THÔNG VỚI THẺ THÔNG MINH
1.4.1 Thiết bị chấp nhận thẻ và các ứng dụng 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áytí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ị đầucuố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áytính, qua đó thẻ thông minh được truyền thông Đầu đọc có khe cắm chứa thẻ thôngminh, 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 đầu đọc thẻ 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ứcdướ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 TellerMachines - ATMs) Bên cạnh chức năng của đầu đọc thẻ, thiết bị đầu cuối có khả năng
xử lý dữ liệu truyền giữa nó và thẻ thông minh
1.4.2 Mô hình truyền thông với 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ả haihướ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 Unit - đơ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ớiAPDU phản hồi Các lệnh APDU và APDU phản hồi được truyền đan xen giữa máychủ và thẻ
1.4.3 Giao thức APDU (Application Protocol Data Unit)
Được chỉ ra trong chuẩn ISO 7816 - 4, APDU là một giao thức ở mức ứng dụnggiữ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ạicấ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ửilệ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áychủ 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)[24, 28]
Một lệnh APDU luôn có lệnh R-APDU tạo thành cặp tương ứng
Trang 9Cấu trúc APDU lệnh:
CLA INS P1 P2 Lc Data with length Lc
Cấu trúc APDU phản hồi:
Header (tiêu đề) 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à APDUphản hồi Byte “mã” xác định chỉ thị của lệnh Hai tham số P1 và P2 xác định thêmthô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 tuỳ 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ủaAPDU 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ếttuỳ 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 haitrườ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ộtlệnh đã được thực hiện thành công và trọn vẹn
Trường dữ liệu là tuỳ 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
Trường hợp 1: Không đầu vào/Không đầu ra
Trường hợp 2: Không đầu vào / Đầu ra có độ dài biết trước
NOTE: lgth='00' tương ứng dữ liệu truyền 256 bytes
Trường hợp 3: Không đầu vào / Đầu ra có độ dài chưa biết trước
Trang 10lgth (='00') '9F' lgth1 GET RESPONSE
CLA INS P1 P2 P3 DATA with lgth2 £ lgth1 SW1 SW2
Trường hợp 4: Có đầu vào / Không đầu ra
Trường hợp 5: Có đầu vào / Đầu ra có độ dài biết trước hoặc không
§ 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ảnhồ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ếtquả 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
Trang 111.4.4 Mã hoá bit
Mã hoá bit (bit encoding) trực tiếp hay đảo bit đều được dùng trong thẻ thôngminh[23]
Trực tiếp (xuôi thứ tự):
Đảo bit (ngược thứ tự)
1.4.5 Giao thức TPDU (Transport Protocol Data Unit)
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 minhhiệ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ốigồ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áychủ
Cấu trúc TPDU được dùng trong giao thức T = 0 và T = 1 là khá khác nhau.Trong đó, T = 0 là giao thức truyền ký tự bán song công không đồng bộ Hầu hết cácthẻ thông minh sử dụng giao thức T = 0 Tất cả các thẻ cho mạng di động GSM đềudùng giao thức này
Còn 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
Trang 12- 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
Dữ liệu tới thẻ, ví dụ lệnh ghi
Dữ liệu từ thẻ, ví dụ lệnh đọc
§ Giao thứcT = 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 trongtrườ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.4.6 Thông điệp trả lời để xác lập lại
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 33byte Byte đầu tiên định nghĩa kiểu mã bit (trực tiếp hay đảo ngược) Bản thân ATRcòn chứa các tham số truyền tín hiệu như giao thức truyền thông được thẻ thông minh
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, … Xem chi tiết ở mục2[23]
-
Chương 2 - HỆ ĐIỀU HÀNH THẺ THÔNG MINH
Trang 132.1 GIỚI THIỆU HỆ ĐIỀU 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ậphợ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 Hiện nay, trên thế giới có rất nhiều hãng sản xuất thẻthông minh có hệ điều hành hoặc dựa trên nền tảng chuẩn mở (OCF - Open CardFlatform) hoặc tự phát triển nền tảng riêng (Proprietary Card) để phát triển hệ điềuhành
§ Thẻ Proprietary hay Native
Hình 9: Kiến trúc của thẻ thông minh dùng hệ điều hành riêng như MPCOS, STARCOS,
ACOSx, WatchData,…
§ Thẻ Global Platform
Hình 10: Kiến trúc của thẻ thông minh dùng hệ điều hành Global Platform dựa trên nền
tảng chuẩn mở OCF hỗ trợ Java.
§ The Multos
Trang 14Hình 11: Kiến trúc thẻ thông minh dùng hệ điều hành Multos.
Trang 15Hình 14: Kiến trúc thẻ thông minh dùng hệ điều hành TIBC hỗ trợ Java.
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à truycậ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 Chính vì vậy, việc phân chia giữa hệ điềuhành và ứng dụng không được định nghĩa rõ ràng Các hệ điều hành mới nhất hỗ trợtốt hơn sự phân chia lớp hệ thống và nạp mã ứng dụng của người dùng vào thẻ
2.2 CÁC FILE HỆ THỐNG 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 tuỳ chọn là chi tiết Header chứa cácthô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ệucủa file
2.2.1 Thư mục gốc
Thư mục gốc (Master File - 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ụ máy POS, ATM, …)
MF không thể bị xoá khi thẻ còn hoạt động[8, 9, 13, 24, 28]
2.2.2 Thư mục chuyên dụng
Thư mục chuyên dụng (Dedicated File - 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 đượcphâ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 ứngdụng khác nhau Một số DF có thể chia sẻ tài nguyên chung qua MF[8, 9, 13, 24, 28] Các DF ở mức đầu tiên tồn tại trong thẻ MPCOS-EMV như sau:
Trang 16DFSystem, chứa hai file thành phần lưu thông tin về nhà sản xuất thẻ cũng như nhàphát hành ứng dụng cho thẻ
Tất cả các file này là mức con ngay dưới của MF
2.2.3 File cơ bản
Những file này (Elementary File - EF) chứa dữ liệu thực sự Chúng bao gồm mộtchi 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 15: Sơ đồ tổ chức file trong thẻ thông minh
§ EF trong suốt (Transparent EF)
Hình 16: Dữ liệu địa chỉ offset trong một file trong suốt
Đó là EF có cấu trúc gồm các byte liên tiếp Byte đầu tiên có địa chỉ ‘00’ Khifile đượ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í đó.Tiêu đề của file trong suốt biểu thị độ dài chi tiết của file[8, 9, 13, 24, 28]
§ EF cố định tuyến tính (Linear fixed EF)
Trang 17Hình 17: Cấu trúc file cố đinh tuyến tính
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 ghi trongfile đó được định nghĩa trong header của file
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 ghicủ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ạntheo chuẩn ISO7816 - 4, số bản ghi tối đa trong file tuyến tính cố định là 254, và mỗibản ghi có độ dài không vượt quá 255 bytes[8, 9, 13, 24, 28]
§ EF biến đổi tuyến tính (Linear variable EF)
Kiểu file này gồm các bản ghi liên tiếp có độ dài không cố định Cúng giống vớikiểu file tuyến tính cố định, mỗi bản ghi cũng được định danh duy nhất bởi số thứ tựbản ghi[8, 9, 13, 24, 28]
Hình 18: Cấu trúc file biến đổi tuyến tính
§ EF nối vòng (Cyclic EF)
Hình 19: Cấu trúc file nối vòng
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 ghivớ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
Trang 18kế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 ghicuố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 ghitrước nó là bản ghi cuối cùng[8, 9, 13, 24, 28]
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ảnlên bả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ẢNGHI
2.3 TRUY CẬP FILE
2.3.1 Định danh file
Định danh được dùng để đánh địa chỉ mỗi file trong thẻ Định danh bao gồm haibyte và được thể hiện dưới dạng mã hexa Byte đầu tiên của định danh xác định kiểufile Định danh file cho thẻ chip như sau:
§ File gốc: 3F
§ Mức đầu tiên của file chuyên dụng: 01
§ Mức thứ hai của file chuyên dụng: 5F
§ File thành phần dưới mức MF: 2F
§ File thành phần dưới mức DF đầu tiên: 6F
§ File thành phần dưới mức DF thứ hai: 4F
2.3.2 Các phương thức lựa chọn file
Khi thẻ được đưa vào các thiết bị chấp nhận thẻ (POS, ATM, …), file gốc sẽ đượcchọn và trở thành thư mục hiện tại Mỗi file của thẻ EMV có thể được lựa chọn bởilệnh SELECT Có một số luật cần tuân theo để việc lựa chọn file thành công Từ filehiện tại, các file sau có thể được lựa chọn:
§ File gốc (MF)
§ File chuyên dụng hiện tại
§ File chuyên dụng mức cha của thư mục hiện tại
§ Bất kỳ file chuyên dụng nào là mức con liền kề của file chuyên dụng cha củathư mục hiện tại
§ Bất kỳ file 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 file được thực hiện bằng cách dùng định danh của file đượclựa chọn Trong quá trình lựa chong file, nếu file được chỉ định lựa chọn không tồn tạitrên thẻ thì lập tức thẻ sẽ thông báo cho thiết bị đầu cuối biết bằng mã lỗi trả về Tuynhiên con trỏ hiện tại vẫ không bị mất đi mà vẫn nằm ở vị trí hiện tại
2.3.3 Điều kiện truy cập file
Để lựa chọn một file của thẻ thông minh, cần có một số điều kiện truy cập phảituân theo Điều kiện truy cập chỉ áp dụng cho file thành phần (EF), file gốc (MF) và
Trang 19file chuyên dụng (DF) không có điều kiện truy cập Tuy nhiên ở mỗi loại thể đều cómột số quy định riêng về cách truy cập file của nó, điều này thường được mô tả rất chitết trong tài liệu đi kèm với từng loại thẻ tương ứng
Thẻ thông minh cho phép truy cập file để bảo vệ dùng mã riêng hoặc khóa Các
mã riêng này được lưu trữ trong EF được gọi là Secret Code Elementary Files (EFsc).File gốc và mỗi file chuyên dụng có thể chứa một EFsc
Truy cập tới các file của thẻ chip được bảo vệ bởi mã riêng bí mật Mã này đượclưu trữ trong một EF chỉ định mà được gọi là EFsc Mỗi EFsc có thể chứa tới 8 mã bímật, được đánh số từ 0 đến 7 File MF và mỗi DF chỉ chứ một EFsc
Các điều kiện truy cập định ngĩa mức bảo vệ cho một file Các điều kiện nàythường lưu 2 byte trong các mô tả của DF và EF Chúng định nghĩa như các điểm sau:
§ Có tới 2 mã số bí mật mà phải đệ trình để truy cập file cho mỗi kiểu truy cập(tạo file, đọc, ghi hoặc cập nhật nội dung file)
§ Sử dung khóa bí mật cho các thực hiện thông điệp an toàn trên file cho mỗikiểu truy cập (tạo file, đọc, ghi hoặc cập nhật nội dung file)
Các điều kiển bảo vệ dữ liệu có thể được định nghĩa bởi nhà phát hành ứng dụngcho mỗi EF hoặc DF
Khi thiết bị đầu cuối đệ trình một mã bí mật, nó được chỉ định là một mã bí mậttrong dãi từ 0 đến 7 Thẻ sẽ so sánh mã bí một được đệ trình với mã bí mật được chỉđịnh bở EFsc Nếu mã bí mật đó không tương ứng, thẻ sẽ trả về một byte trạng thái lỗi.Còn nếu mã bí mật đó tương ứng, thẻ sẽ đặt tương ứng số bit tới số của mã bí mật đã
đệ trình thành công lên ‘1’ trong thanh ghi ủy quyền[8,9]
2.4 CẤU TRÚC FILE THẺ EMV
2.4.1 Cấu trúc file thẻ MPCOS-EMV
Cấu trúc thẻ MPCOS-EMV tuân theo chuẩn ISO 7816 Ở đỉnh của cấu trúc này làfile gốc (MF) Thư mục này chứa hai file chuyên dụng ở mức đầu tiên và hai file thànhphần của mức đầu Đó là các file EFKey, DFSystem, EFCard, EFIssuer[8,9]
Cụ thể các file đó là:
§ EFKey
File này được dùng để chứa mã khóa hệ thống, mã khóa này rất cần thiết để thựchiện việc cá thể hóa các ứng dụng của nhà phát hành lên thẻ Thông tin về mã khóa nàyđược nhà sản xuất thẻ cung cấp cho khách hàng khi họ mua thẻ File này có độ dài 24byte Điều kiện truy cập của file này để đọc là luôn bị khóa không cho phép đọc nộidung, nhà phát hành thẻ chỉ được phép ghi và cập nhật nội dung cho file này mà thôi.Tất cả các thao tác đó đều được mã hóa dưới mã khóa của file EFKey
Trang 20Hình 20: Cấu trúc khởi tạo của thẻ MPCOS-EMV.
Trang 21Đây là một file thành phần chứa chuổi số thứ tự của thẻ (Card Serial Number),chuỗi số này là duy nhất được ghi bởi nhà sản xuất thẻ File này có độ dài 12 byte, điềukiện truy cập của file chỉ cho phép đọc nội dụng file, người dùng không thể thay đổinội dung của nó
§ EFIssuer
File này chứa thông tin dữ liệu liên quan đến nhà phát hành ứng dụng trên thẻ(ngân hàng, tổ chức tài chính,…) Thông tin này được nhà phát hành lưu trữ vào filetrong quá trình cá thể hóa thẻ File này có độ dài 12 byte, điều kiện truy cập file chophép đọc nội dung file, để ghi thông tin hoặc cập nhật nội dung file thì cần phải có mãkhóa EFKey trong thư mục gốc Master File
2.4.2 Cấu trúc file thẻ Global Platform
Cấu trúc thẻ Global Platform là thẻ Java cũng tuân theo chuẩn ISO 7816 Cấutrúc lớp phần cứng cũng giống như hầu hết thẻ thông minh cơ bản, với hệ điều hànhthẻ là Global Platform chuẩn mở, như kiến trúc mô tả ở hình 22
Hình 22: Kiến trúc thẻ Global Platform
Ở đây, ta thấy trong thẻ được chia thành nhiều khu vực khác nhau tương ứng vớitừng loại chức năng khác nhau, mỗi một khu vực ứng dụng đều có một vùng bảo vệ(Security Domain) tương ứng[10]
2.4.2.1 Security Domains
Vùng này đóng vai trò như là các đại diện chính trên thẻ của các thẩm quyềnngoài thẻ Có ba kiểu bảo vệ như sau:
Trang 22§ Vùng bảo mật cho nhà phát hành (Issuer Security Domain) là phần chính, là đại diện không thể thiếu của bộ phận quản trị thẻ (Card Administrator), đặc trưng bởi nhà cấp thẻ (Card Issuer)
§ Vùng bảo mật bổ sung (Supplementary Security Domain) cũng được thêm vào,
là thành phần tùy chọn của bộ phận cung cấp ứng dụng (Application
Providers) hoặc nhà cấp thẻ (Card Issuer) hoặc các đại lý của họ (ví dụ như phòng dịch vụ)
§ Vùng bảo mật thẩm quyền điều khiển (Controlling Authority Security Domain)
là một phần đặc biệt của vùng bảo mật bổ sung Thẩm quyền điều khiển có vai trò để thi hành các chính sách bảo mật trên tất cả các ứng dụng được nạp vào thẻ Nếu vậy, thẩm quyền điều khiển cũng sử dụng loại này của vùng bảo mật như nó Có thể có nhiều hơn một vùng bảo mật
Phần lớn, vùng bảo mật hỗ trợ các dịch vụ bảo mật như là điều khiển mã khóa,
mã hóa, giãi mã, tạo chữ ký số và xác minh cho các nơi cung cấp (Card Issuer,Application Provider hoặc Controlling Authority) ứng dụng
Mỗi một vùng bảo mật được thiết lập trên danh nghĩa của Card Issuer,Application Provider hoặc Controlling Authority khi các thực thể ngoài yêu cầu sửdụng các mã khóa mà được hoàn thành riêng biệt từ mỗi cái khác nhau[10]
2.4.2.2 Global Services Applications
Một hoặc nhiều các ứng dụng dịch vụ được cài đặt sẵn lên thẻ để cung cấp cácứng dụng dịch vụ tới các ứng dụng khác trên thẻ Ví dụ như là dịch vụ phương thứcxác minh chủ thẻ (CVM)[10]
2.4.2.3 Môi trường chạy thực (Runtime Environment)
Global Platform được xây dựng cho phép chạy đa ứng dụng trên bất kỳ môitrường Môi trường này có trách nhiệm cung cấp giao diện kết nối phần cứng cho cácứng dụng cũng như một vùng lưu trữ an toàn và tạo một không gian cho các ứng dụng
để đảm bảo rằng mỗi mã ứng dụng và dữ liệu có thể duy trì riêng biệt và an toàn so vớicác ứng dụng khác trên thẻ Ngoài ra, nó còn cung cấp các dịch vụ giữu thẻ và các thựcthể ngoài
Các thẻ thông minh nói chung thường tuân theo các chuẩn: ISO 7816 - 3, ISO
7816 - 4, ISO 14443 - 3, ISO 14443 - 4, chúng đều hỗ trợ các tùy chọn ATR/ATQ cũngnhư giao thức truyền thông, kênh logic vào chuỗi lệnh[10]
2.4.2.4 Trusted Framework
Các thẻ GP có thể chước một hoặc nhiều nền tảng tin cậy (Trusted Framework),
nó cung cấp các dịch vụ kết nối giữu các ứng dụng bên trong với nhau Nó không phải
Trang 23là một ứng dụng hay phân vùng bảo mật nhưng lại có một trạng thái đặc biệt mà ở đóchúng có một phần hoặc mở rộng của Runtime Environement[10]
2.4.2.5 Global Platform Environment (OPEN)
Trách nhiệm chính của khối này là cung cấp một API cho các ứng dụng, điềuphối lệnh, lựa chọn ứng dụng, quản lý kênh logic (tùy chọn) và quản lý chương trìnhthẻ
OPEN sẽ thực thi việc nạp mã ứng dụng và nhưng phần liên quan tới quản lýchương trình thẻ và quản lý bộ nhớ
OPEN cũng quản lý việc cài đặt các ứng dụng nạp vào thẻ Nó chịu trách nhiệmthi hành yếu tố bảo mật đã định nghĩa trước cho quản lý chương trình thẻ
Chức năng quan trọng khác của OPEN là cung cấp điều phối lệnh APDU và lựachọn ứng dụng Khi lênh SELECT được xử lý thành công thì OPEN thiết đặt ứng dụngđấy tham chiếu vào trong câu lệnh SELECT để lựa chọn ứng dụng và những lệnh ứngdụng tiếp sau cũng được điều phối để lựa chọn tới ứng dụng đấy
OPEN sở hữu và sử dụng vùng đăng ký nền tảng (Global Platform Registry) như
mà một tài nguồn nguyên thông tin cho khối quản lý ứng dụng thẻ Vùng này chứathông tin cho việc quản lý thẻ, các file tải ứng dụng, các ứng dụng, các liên kết vùngbảo mật và những đặc quyền riêng của thẻ[10]
2.4.2.6 Giao diện ứng dụng nền tảng (Global Platform API)
Nó cung cấp các dịch vụ tới các ứng dụng (chẳng hạn như xác minh chủ thẻ, cáthể hóa thẻ hoặc các dịch vụ bảo mật khác) Nó cũng cung cấp các dịch vụ quản lý nộidung thẻ tới các ứng dụng[10]
2.4.2.7 Chương trình thẻ (Card Content)
Tất cả chương trình thẻ như đã định nghĩa, là cái đầu tiên tồn tại trên thẻ trongkhuôn dạng của mội file nạp thực thi (Executable Load File)
Mỗi một file nạp thực thi có thể chứa một hoặc nhiều module thực thi là mã ứngdụng Việc cài đặt một ứng dụng sẽ tạo ra một thực thể từ một module thực thi cộngvới dữ liệu ứng dụng bên trong vùng nhớ biến đổi cố định Bất kỳ một thực thể ứngdụng và dữ liệu liên quan của nó có thể được gỡ bỏ Thẻ Global Platform được dự định
để hỗ trợ đa tập tin nạp thực thi và đa module thực thi như là đa ứng dụng có thể cùngtồn tại trên một thẻ Global Platform[10]
2.4.2.8 Card Manager
Nó như là trung tâm quạn trị của thẻ thông minh, đảm nhận nhiều trách nhiệm.Module quản lý thẻ có thể được xem như là ba thực thể như: môi trường Global
Trang 24Platform (OPEN), phân vùng bảo mật nhà phát hành và các dịch vụ phương thức xácminh chủ thẻ (CVM)[10]
Thông qua mô hình tham chiếu các lớp, thì thẻ Global Platform có thể hiểu nhưcấu trúc dưới đây Xem hình 23
Hình 23: Sơ đồ tham chiếu các lớp.
§ Lớp máy ảo thẻ java (JCVM) là môi trường để cho các ứng dụng nạp vào thẻthực thi trên đấy
§ Lớp giao tiếp ứng dụng thẻ java (JCAPI), đây là nền tảng cơ bản để ứng dụnggiao tiếp với các module bên trong cũng như bên ngoài thẻ
§ Lớp giao tiếp ứng dụng Global Platform (GPAPI) và Global Platform SystemApplet, cũng tương tự như lớp JCAPI, đây là một lớp riêng của thẻ GlobalPlatform, nó hỗ trợ các phương thức giao tiếp riêng mà chỉ thẻ GlobalPlatform mới có
§ Lớp giao tiếp nhà phát hành định nghĩa (Issuer defined APIs), thẻ java hỗ trợcho phép nhà phát hành thẻ có thể thêm các thư viện giao tiếp với thẻ để thựchiện những chức năng riêng biệt mà nhà phát hành mong muốn
§ Lớp ứng dụng, thẻ java cho phép người dùng xây dựng các ứng dụng (gọi làcác applet) có chức năng cụ thể như: ứng dụng ví điện tử(wallet), ứng dụngkhách hàng than thiết(loyalty), ứng dụng mã số cá nhân(id), … Lớp này đượcquản lý bởi Card Content
2.5 CÁC CHỨC NĂNG CỦA THẺ EMV
Chuẩn EMV 2000 quy định một số lệnh bắt buộc để quản lý file hệ thống của thẻ EMV Trong chuẩn mô tả cụ thể điều kiện trạng thái liên quan, mã lỗi và mã trả lời đối với từng lệnh[4, 10]
Trang 25§ Lệnh SELECT:
Lệnh này dùng để lựa chọn một file Sau khi thực hiện thành công, con trỏ bảnghi trong file cố định tuyến tính không được xác định Con trỏ trong file nối vòng sẽ làđịa chỉ của bản ghi cuối cùng được cập nhật hoặc được tăng
Đầu vào: Định danh file
§ Lệnh đọc nhị phân (READ BINARY):
Lệnh này chỉ dùng được với file thành phần trong suốt, với điều kiện đọc của fileliên quan được thoả mãn Thoả mãn điều kiện này, lệnh đọc ra một chuỗi các byte từfile Lệnh yêu cầu địa chỉ tương đối, độ dài của chuỗi là đầu vào, đầu ra là một chuỗicác byte
§ Lệnh đọc bản ghi (READ RECORD):
Dùng cho file thành phần có cấu trúc nối vòng hoặc tuyến tính với độ dài cố định.Điều kiện để lệnh được thực hiện là file đó cho phép truy cập đọc
Có 4 chế độ để đọc một bản ghi Chế độ hiện tại (CURRENT), nơi bản ghi hiệntại được đọc, không gây ảnh hưởng gì tới con trỏ bản ghi tương ứng Chế độ tuyệt đối(ABSOLUTE), bản ghi được đọc theo số hiệu bản ghi, con trỏ bản ghi không bị thayđổi Chế độ kế tiếp (NEXT), trước khi đọc bản ghi con trỏ bản ghi đã tăng 1 Chế độliền trước (PREVIOUS), con trỏ bản ghi giảm 1 trước khi đọc bản ghi
Lệnh đọc bản ghi chỉ rõ một trong bốn chế độ kể trên cùng với độ dài bản ghi làđầu vào Trường hợp là chế độ tuyệt đối, cần thêm số hiệu bản ghi Kết quả trả về làbản ghi đó
§ Lệnh cập nhật nhị phân (UPDATE BINARY):
Tương tự lệnh đọc nhị phân, lệnh này chỉ được xây dựng cho file thành phầntrong suốt Nó chỉ được thực hiện nếu điều kiện cập nhật được thoả mãn Khi file đượccập nhật nhị phân, chuỗi các byte được thay thế bởi giá trị mới ở trong lệnh Đầu vào
là địa chỉ tương đối và độ dài của xâu được cập nhật cùng với chuỗi byte sẽ được cậpnhật Lệnh này không có đầu ra
§ Lệnh cập nhật bản ghi (UPDATE RECORD):
Lệnh này dùng để thay thế bản ghi hiện tại bởi một bản ghi mới Nó chỉ áp dụngcho file thành phần là tuyến tính nối vòng hoặc tuyến tính độ dài cố định, cùng vớiđiều kiện truy cập cập nhật bản ghi được đáp ứng Bốn chế độ của lệnh này hoàn toàntương tự lệnh đọc bản ghi Đầu vào là chế độ và độ dài bản ghi, không có đầu ra
Trang 26§ Lệnh lấy dữ liệu (GET DATA):
Lệnh này dùng để đọc các đối tượng dữ liệu được lưu trữ trong phạm vi ứng dụnghiện hành Việc sử dụng lệnh này còn tùy thuộc và từng đặc tả của thể thông minh.Trong các giao dịch tài chính, nhà phát hành thẻ có thể lấy thông tin về PIN tryCounter (số lần vào mã PIN của khách hàng) bằng lệnh này Lênh này chỉ được sửdụng trong các xử lý giao dịch
§ Lệnh đặt dữ liệu (PUT DATA):
Lệnh này được thực thể ngoài dùng để đặt thông tin vào trong đối tượng dữ liệulưu trữ, trong phạm vị file hệ thống trên thẻ Lệnh này phục vụ chức năng theo từngđặc tả của thẻ thông minh tương ứng
§ Lệnh xác thực ngoài (EXTERNAL AUTHENTICATE):
Lệnh này được dùng thường xuyên trong quá trình cá thể hóa thông tin vào thẻthông minh Trong một số trường hợp truy cập file để đọc thông tin cũng phải thôngqua bước xác thực này nếu file có yêu cầu
§ Lệnh xác thực nội (INTERNAL AUTHENTICATE):
Lệnh này được dùng để tính toán dữ liệu chữ ký số động (Signed DynamicApplication Data) bởi thẻ, nó sẽ dùng dữ liệu kích thích từ thiết bị đầu cuối gửi vàocùng dữ liệu ngẫu nhiên của thẻ tạo ra và mã khóa cá nhân được lưu trên thẻ Kết quảthẻ sẽ trả về thiết bị đầu cuối thông tin dữ liệu chữ ký số động
§ Lệnh xác nhận (VERIFY):
Lệnh này được sử dụng để so sánh dữ liệu PIN trong trường dữ liệu gửi vào với
dữ liệu PIN có trong ứng dụng Lệnh được áp dụng khi CVM chọn từ danh sách CVMnhư là PIN Offline
§ Lệnh đổi PIN/mở khóa (PIN CHANGE/UNBLOCK):
Đây là lệnh phát sinh thêm, mục đích của nó là cung cấp cho nhà phát hành thẻ
có khả năng hoặc là mở khóa PIN hoặc là vừa cùng lúc mở khóa PIN và thay đổi mãPIN tham chiếu trước đấy
Sau khi lệnh này thực hiện hoàn thành, thẻ sẽ thực thi các chức năng tiếp theonhư: giá trị “PIN try Counter” sẽ được đặt lại bằng giá trị “PIN try Limit”, nếu có yêucầu thì giá trị PIN tham chiếu cũng được thay mới Nếu có dữ liệu PIN được truyền đitrong lệnh này thì nó cũng được mã hóa bảo mật để đảm bảo độ an toàn
Trang 272.6 ĐẶC TẢ ỨNG DỤNG DEBIT VÀ CREDIT
2.6.1 Các file trong trao đổi giao dịch tài chính
2.6.1.1 Ánh xạ các đối tượng dữ liệu
Hệ thống thanh toán hoặc nhà phát thành sẽ ánh xạ các đối tượng dữ liệu(Mapping Data Objects) thích ứng tới các file cần thiết[4, 10]
§ Tất cả các file mà sử dụng được lệnh READ RECORD như đã định nghĩachứa các đối tượng dữ liệu trong đặc tả này sẽ dùng các SFI trong khoảng từ 1đến 10 Các file này là:
- File thường là kiểu file tuyến tính có thể đọc được sử dụng lệnhREAD RECORD như đã mô tả
- File có thể chứa nhiều bản ghi Mỗi bản ghi giới hạn 254 byte baogồm vị trí (tag) và độ dài
- Mỗi bản ghi sẽ được tọa mã theo cấu trúc của đổi tượng dữ liệu
Vị trí của cấu trúc này thường là ‘70’ mã hex biểu thị một mẫu riêng và
độ dài là tổng độ dài của đối tượng được đóng gói
- File không những chứa các đối tượng dữ liệu đã định nghĩa màcòn được viết mã theo chuẩn BER-TLV
- File có thể có điều kiện truy cập tương ứng để cho phép cập nhậtnội dung nhưng chắc chắn là nó phải được phép đọc
§ Các file mà SFI nằm trong khoảng từ 11 đến 20 thường để dự trữ cho dữ liệuriêng được chỉ định hở hệ thống thanh toán riêng
§ Các file mà SFI nằm trong khoảng từ 21 đến 30 thường để dự trữ cho dữ liệuriêng được chỉ định bởi nhà phát hành
§ Trong AFL sẽ xác đính định rõ các file và các bản ghi được dùng cho xử lýgiao dịch
2.6.1.2 Các đối tượng dữ liệu bắt buộc
Bảng 1 sau liệt kê các đối tượng dữ liệu phải được thiết đặt trong thẻ nằm trongcác file đọc được bằng cách dùng lệnh READ RECORD
‘5A’ Application Primary Account Number (PAN) M
Trang 28‘8C’ Card Risk Management Data Object List 1 M
‘8D’ Card Risk Management Data Object List 2 M
Bảng 1: Các đối tượng dữ liệu bắt buộc
Tất cả những đối tượng dữ liệu được định nghĩa ở đây thường trú trong các filebên trong thẻ[25]
Bảng 2 tiếp theo liệt kê các đối tượng dữ liệu phải có sẵn trong thẻ nếu thẻ đó hỗtrợ xác thực dữ liệu tĩnh (SDA) ngoại tuyến[25]
‘8F’ Certification Authority Public Key Index
‘90’ Issuer Public Key Certificate
93 Signed Static Application Data
92 Issuer Public Key Remainder
9F32 Issuer Public Key Exponent
Bảng 2: Dữ liệu yêu cầu cho SDA
Bảng 21 kế tiếp cũng liệt kê các đối tượng dữ liệu phải có sẵn trong thẻ nếu nó hỗtrợ xác thực dữ liệu động (DDA/CDA) ngoại tuyến[25]
‘8F’ Certification Authority Public Key Index
‘90’ Issuer Public Key Certificate
‘93’ Signed Static Application Data
‘92’ Issuer Public Key Remainder
‘9F32’ Issuer Public Key Exponent
‘9F46’ ICC Public Key Certificate
‘9F47’ ICC Public Key Exponent
‘9F48’ ICC Public Key Remainder
‘9F49’ Dynamic Data Authentication Data Object List (DDOL)
Bảng 3: Dữ liệu yêu cầu cho DDA/CDA
Trang 29Hình 24: Sơ đồ luồng giao dịch
2.6.3 Các hàm được sử dụng trong xử lý giao dịch
Như sơ đồ luồng giao dịch ở hình 27 Ta thấy có rất nhiều chức năng được thẻ gọitới để thực hiện một quá trình giao dịch[4]
2.6.3.1 Khởi tạo xử lý ứng dụng
Mục đích: Đây là chức năng xử lý khởi tạo ứng dụng
Trang 30§ Báo cho thẻ biết rằng một xử lý một giao dịch mới sẽ bắt đầu
§ Cung cấp cho thẻ và thiết bị đầu cuối về thông tin giao dịch
§ Lấy AIP (Application Interchange Profile) từ thẻ và liệt kê danh sách file chứatrong thẻ để sau này sử dụng xử lý giao dịch
§ Quyết định giao dịch có được phép hay không
Điều kiện thực thi: Thiết bị đầu cuối luôn luôn thực thi chức năng này
Luồng thực thi: Đây là chức năng trước tiên được thực hiện sau khi lựa chọn ứngdụng
2.6.3.2 Đọc dữ liệu ứng dụng
Mục đích: Dữ liệu chứa trong file trên thẻ cần phải được thiết bị đầu cuối thực thicác chức năng khác nhau dùng trong xử lý giao dịch Thiết bị đầu cuối phải đọc dữ liệunày từ thẻ
Điều kiện thực thi: Thiết bị đầu cuối sẽ luôn thực thi chức năng này
Luồng thực thi: Chức năng đọc dữ liệu ứng dụng được thực thi tức thời theoluồng khởi tạo ứng dụng
2.6.3.3 Xác thực dữ liệu ngoại tuyến (Offline Data Authentication)
Mục dích: Quá trình này chỉ ra làm thế nào để quyết định xác thực dữ liệu ngoạituyến có được thực thi hay không, loại nào của quá trình xác thực sẽ được thực hiện vàlàm thế nào để thành công hay thất bại của quá trình xác thực ảnh hưởng đến luồnggiao dịch và dữ liệu được ghi lại trong TVR và TSI
Điều kiện thực thi: Trong thẻ phải có dữ liệu để hỗ trợ xác thực dữ liệu ngoạituyến như là tùy chọn Sự có mặt của nó sẽ được biểu thị trong AIP Nếu cả thiết bị đầucuối và thẻ đều hỗ trợ xác thực dữ liệu ngoại tuyến, thiết bị đầu cuối sẽ thực hiệnnhững chức năng này Dựa trên các khả năng của thẻ và thiết bị đầu cuối, SDA hoặcDDA hoặc CDA sẽ được thực hiện
Nếu cả hai ý sau đều đúng thì thiết bị đầu cuối sẽ thực hiện CDA như đã được chỉđịnh:
§ AIP biểu thị thẻ có hỗ trợ CDA
§ Thiết bị đầu cuối hỗ trợ CDA
Nếu tất cả ý sau đều đúng, thì thiết bị đầu cuối sẽ thực hiện DDA như đã được chỉđịnh:
§ AIP biểu thị thẻ hỗ trợ DDA
§ Thiết bị đầu cuối hỗ trợ DDA
§ Hoặc là thẻ hoặc là thiết bị đầu cuối hoặc cả hai không hỗ trợ CDA
Trang 31Nếu tất cả ý sau đều đúng, thì thiết bị đầu cuối sẽ thực hiện SDA như đã được chỉđịnh:
§ AIP biểu thị thẻ hỗ trợ SDA
§ Thiết bị đầu cuối hỗ trợ SDA
§ Hoặc là thẻ hoặc là thiết bị đầu cuối hoặc cả hai không hỗ trợ DDA
§ Hoặc là thẻ hoặc là thiết bị đầu cuối hoặc cả hai không hỗ trợ CDA
Nếu SDA hoặc DDA hoặc CDA không được thực hiện, thì thiết bị đầu cuối sẽ đặtbít “Offline Data Authentication was not performed’” trong TVR lên ‘1’
Luồng thực thi: Thiết bị đầu cuối sẽ thực hiện xác thực dữ liệu ngoại tuyến trongbất kỳ chỗ nào sau khi đọc dữ liệu ứng dụng như phải thực hiện trước khi thiết bị đầucuối hoạt động phân tích hoàn thành
2.6.3.4 Xác minh chủ thẻ (Cardholder Verification)
Mục đích: xác minh chủ thẻ được thực hiện để chắc chắn rằng người đó có ở hiệntại không và người đó đúng với ứng dụng trên thẻ đã được phát hành
Điều kiện thực thi: Khả năng thẻ hỗ trợ ít nhất một phương thức xác minh chủ thẻđược biểu thị trong AIP Nếu bít này được đặt bằng ’1’, thiết bị đầu cuối sẽ dùng dữliệu liên quan tới xác minh dữ liệu trong thẻ để quyết định phương thức xác minh chủthẻ (CVM) do nhà phát hành chỉ định có nên thực thi hay không
Luồng thực thi: Chức năng này có thể được thực hiện bất cức ở đâu sau khi đọc
dữ liệu ứng dụng và trước khi thiết bị đầu cuối hoạt động phân thích hoàn thành
2.6.3.5 Quản lý rủi ro thiết bị đầu cuối
Mục đích: Quản lý rủi ro thiết bị đầu cuối (Terminal Risk Management) là mộtphần của quản lý rủi ro được thực hiện bởi thiết bị đầu cuối để bảo vệ Acquirer, nhàphát hành và hệ thống từ các hành động gian lận Nó cung cấp tích cự các quyền hạncủa nhà phát hành cho các giao dịch có giá trị cao và đảm bảo rằng giao dịch đượckhởi tạo từ thẻ và vẫn ở trạng thái trực tuyến để bảo vệ chống lại mối đe dọa mà có thểđược phát hiện trong môi trường ngoại tuyến Để có được quản lý rủi ro thiết bị đầucuối là đặt các bit tương thích trong TVR
Điều kiện thực thi: Quản lý rủi ro thiết bị đầu cuối sẽ được thực hiện nếu bít
“Terminal risk management is to be performed” trong AIP được đặt lên ‘1’ Lựa chọnmột giao dịch ngẫu nhiên không được thực hiện bởi thiết bị đầu cuối mà không cầnkhả năng trực tuyến
Luồng thực thi: Quản lý rủi ro thiết bị đâu cuối có thể được thực thi bất cứ khinào nào khi đọc dữ liệu ứng dụng nhưng phải thực thi trước khi dùng lệnhGENERATE AC đầu tiên
Trang 322.6.43.6 Xử lý trực tuyến
Mục đích: Xử lý trực tuyến (Online Processing) được thực thi để chắc chắn rằngnhà phát hành thẻ có thẻ xem lại và cho phép hoặc loại bỏ giao dịch đó, có thể là ngoàigiới hạn chấp nhận rủi do được định nghĩa trước bởi nhà phát hành, hệ thống thanhtoán hoặc Acquirer (hệ thống phối hợp giao dịch các thết bị đầu cuối)
Điều kiện thưc thi: Xử lý trực tuyến sẽ được thực hiện nếu thẻ trả về một ARQCtrong trường dữ liệu phản hồi của lệnh GENERATE AC trong giao dịch
Luồng thực thi: Chức năng xử lý giao dịch được thực thi khi thiết bị đầu cuốinhận được một phản hồi ARQC trong lệnh GENERATE AC đầu tiên của cả quá trình
-
Chương 3 - XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH
Trong chương này ta xem xét các giao thức được dùng phổ biến nhất cho việcxác thực và truyền dữ liệu an toàn liên quan đến thẻ thông minh và đưa ra một số ví dụ
về cách sử dụng những giao thức này
3.1 CÁC THUẬT TOÁN MÃ HOÁ
Có hai lớp thuật toán mã hoá: thuật toán mã hoá đối xứng và không đối xứng.Thuật toán mã hoá đối xứng sử dụng cùng một khoá cho việc mã hoá và giải mã dữliệu Nó còn được gọi là thuật toán mã hoá khoá đối xứng
Thuật toán mã hoá bất đối xứng dùng hai khóa - một để mã hoá và một để giải
mã Nó còn được gọi là thuật toán mã hoá khoá công khai
Các thuật toán mã hoá đối xứng thực hiện nhanh Nhưng trên thực tế cùng mộtkhoá dùng cho mã hoá và giải mã thường gặp khó khăn về giữ bí mật Bên gửi và nhậnphải có cùng khoá Chỉ có bên nhận biết khoá của bên gửi để đảm bảo tính riêng tư củaviệc truyền tin Bên nhận phải biết khoá của tất cả các bên gửi tiềm năng để có thể giải
mã các thông điệp đến Khi số thực thể trong mạng lớn thì giải pháp này là khó khả thi.Giải pháp cho vấn đề này là kết hợp thuật toán đối xứng và không đối xứng
Trang 333.1.1 Mã hoá khoá đối xứng
3.1.1.1 Thuật toán mã hoá DES
Thuật toán chuẩn mã hoá dữ liệu (Data Encryption Standard - DES) là thuật toán
mã hoá khối, nó chia dữ liệu được mã hoá thành các khối và thao tác với một khối ởmột thời điểm DES dùng khối kích thước 64 bit và khoá có kích thước 56 bit Thực tế,khoá DES được giới thiệu 64 bit, nhưng bit thấp nhất của mỗi byte được dùng để kiểmtra mã chẵn lẻ và không dùng trong thuật toán
Nền tảng xây dựng khối của DES là sự thay thế kế tiếp của hoán vị trong một vòng lặp DES có 16 vòng lặp, như vậy có 16 thay thế và hoán vị được áp dụng cho khối 64 bit Bởi vì tính chất lặp lại của nó, DES có thể dễ dàng thực hiện bởi phần cứng
Kích thước khoá 56 bit được dùng trong thuật toán DES là khá nhỏ Với các máytính hiện đại ngày nay, thuật toán DES trở nên tầm thường về mặt bảo mật Ở hội nghịRSA năm 1999, DES đối mặt với thông báo rằng khoá 56 bit bị phá dưới 24 giờ dù
rằng hơn 50% không gian khoá phải dùng đến nhiều máy tính cùng xử lý để tìm ra a.
Thuật toán triple DES
Triple DES (3DES) dựa trên DES, nhưng dùng khoá 112 bit Khoá được chia làmhai phần: K1 và K2 Dữ liệu đầu tiên được mã hoá bởi K1, rồi giải mã bởi K2 rồi lại
mã hoá bởi K1 Đó là chế độ encrypt - decrypt - encrypt (EDE) Để giải mã, bản mãđược giải mã bởi K1, mã hoá bởi K2 và giải mã lại bởi K1
Triple DES có độ bảo mật cao Tấn công vét cạn chống lại là không khả thi, bởi
vì không gian khoá được tìm kiếm tăng theo tỷ lệ số mũ với kích thước của khoá Ví
dụ để tìm khoá 112 bit bằng cách vét cạn tốn hơn 2 mũ 56 so với tìm khoá 56 bit b.
Phương thức mã hoá DES-ECB
Có một số phương thức mã hoá DES khác nhau, thường được sử dụng với thẻthông minh Phương thức đơn giản nhất là ECB (Electronic Code Book) Thao tác mãhoá được áp dụng cho từng khối bản rõ 64 bit
Thao tác giải mã cho từng khối 64 bit tách biệt
Trang 34c Phương thức mã hoá DES-CBC §
Trang 35§ Giải mã
Đầu tiên giải mã cho từng khối bản mã, và sau đó áp dụng toán tử XOR với ICVcho khối đầu tiên, với kết quả của thao tác trước cho tất cả các khối tiếp theo
d Ứng dụng DES: Tạo mã xác thực thông điệp
DES không chỉ dùng để mã hoá dữ liệu mà còn có thể dùng để tính toán mã xácthực thông điệp (Message Authentication Codes - MAC) MAC dùng để đảm bảo tínhtoàn vẹn dữ liệu và để xác thực Ta xem xét việc tính toán MAC theo ANSI X9.9
Hình 26: Chế độ mã hóa DES - CBC.
Hình 27: Chế độ giải mã DES - CBC.
Trang 36Hình 28: Sơ đồ tính MAC trong chế độ mã hóa DES - CBC.
Chúng ta có thế nhận thấy kết quả bằng với khối bản mã cuối cùng nhận được từ
mã hoá CBC Điều đó có nghĩa là khi thực hiện mã hoá DES dạng CBC, MAC có thể nhận được bằng cách mã hoá các dữ liệu liên quan và ta lấy kết quả là khối 64 bit cuối cùng của bản mã
3.1.1.2 Thuật toán mã hóa AES
Tiêu chuẩn mã hoá tiên tiến ( Advanced Encryption Standard - AES ) là sự kếthừa của hệ mã hoá DES Rất nhiều thuật toán đã được đưa ra như là chuẩn mới vàqua quá trình lựa chọn rộng rãi Trong năm thuật toán lọt vào vòng cuối cùng, NISTchọn thuật toán Rijndael được thiết kế bởi Joan Daemen và Vincent Rijmen
Rijndael là thuật toán mã hoá khối với độ dài khối thay đổi và khoá có độ dài
128, 192 hoặc 256 bit để mã hoá khối với độ dài 128, 192 hoặc 256 bit Tất cả chín sựkết hợp độ dài khoá với độ dài khối có thể được thực hiện trong Rijndael và nó có thể
mở rộng cả độ dài khoá và độ dài khối tới bội số của 32 bit
Lựa chọn những tuỳ chọn trên, AES cho phép kích thước khối 128 bit và độ dàikhoá 128, 192 hoặc 256 bit, các tuỳ chọn khác không được chấp nhận trong chuẩn.Thuật toán AES có thể thực hiện một cách hiệu quả bởi phần mềm cũng như phầncứng
3.1.2 Mã hoá khoá công khai
Ý tưởng cơ bản dẫn đến mã hoá khoá công khai là cặp khoá, một cho mã hoá vàmột cho giải mã, đồng thời khó thể tính được một khoá nếu biết khoá kia Khái niệm
Trang 37này được phát minh đồng thời bởi Whitfield Diffie và Martin Hellman và độc lập bởiRalph Merkle
Rất nhiều thuật toán đã được đưa ra nhưng hầu hết không an toàn hoặc không khảthi Các thuật toán mã hoá khoá công khai rất chậm so với thuật toán mã hoá khoá bímật Thuật toán RSA chậm hơn 1000 lần so với DES khi thực hiện bởi phần cứng và
100 lần khi thực hiện bằng phần mềm
Tuy vậy thuật toán mã hoá khoá công khai có ưu điểm rất lớn khi được dùng đểđảm bảo tính riêng tư của kết nối Thuật toán khoá công khai dùng các khoá khác nhaucho việc mã hoá và giải mã Khoá bí mật chỉ được người sở hữu biết và giữ bí mật Nó
có thể dùng để tạo chữ ký điện tử và giải mã thông tin đã được mã hoá bởi khoá côngkhai Khoá công khai dùng để kiểm tra chữ ký điện tử hoặc để mã hoá thông tin.Không cần phải giữ bí mật khoá công khai, vì khó có thể tính được khoá bí mật nếu
biết khoá công khai 3.1.2.1 Hệ mã hoá RSA
Sơ đồ
Cho n = p*q, trong đó p, q là hai số nguyên tố lớn và F(n) = (p-1)(q-1)
Đặt P = C = Zn Chọn b nguyên tố với F(n)
Tập khoá: K = {(n, a, b): a*b ”1 mod F(n)}
Với mỗi k = (n , a, b), mỗi x ˛ P, y ˛ C, định nghĩa:
Hàm mã hoá : ek (x) = xb mod n
Hàm giải mã : dk(y) = ya mod n
Các giá trị n, b là công khai Còn p, q, a là bí mật
Kiểm tra quy tắc giải mã
Do ab ”1mod F(n), F(n) = (p -1)(q - 1) = F(p) F(q) nên ab = 1 +
tF(n), với t là số nguyên khác 0 Chú ý rằng 0 £x < n
Giả sử (n, x) = 1 ta có
yamod n ” (xb)a mod n”x 1 + t F (n) mod n ”x {xF (n) mod n} mod n
” x 1 mod n (vì (x, n) = 1, nên xF (n) mod n =1) = x (d x < n)
Nếu (x, n) = d > 1 thì d = p hoặc d =q hoặc d = n
Nếu d = n thì x = 0 và đương nhiên y = 0 Do đó ya mod n = 0 = x
Giả sử d = p khi đó do 0 £x < n nên x = p
Ta có: ya mod n ” xab mod n ” pab mod n
Ký hiệu: u = pab mod n
Thế thì: u + kn = pa, 0 £ u < n, hay u + kpq = pab
Trang 38Thế thì u = p = x tức là ya mod n = x Vậy (xb)a mod n = x, "x ˛ {1, n - 1}
3.1.2.2 Mã hoá đường cong Elliptic
Đường cong Elliptic được đề nghị lần đầu tiên cho các hệ mã hóa khoá công khaivào năm 1985 Các thuật toán dùng đường cong Elliptic nhanh hơn RSA hoặc DSA vàyêu cầu kích thước khoá nhỏ hơn với cùng mức độ yêu cầu bảo mật Đường congElliptic trên trường xác định GF (2 n ) đặc biệt thú vị bởi vì chúng cho phép thực hiệnhiệu quả
Ưu điểm của đường cong Elliptic làm cho chúng là ứng cử viên tiềm năng để ápdụng cho thẻ thông minh Bởi vì việc tính toán có thể được thực hiện trên thẻ màkhông cần bộ đồng xử lý mã hoá, kích thước khoá nhỏ, tiết kiệm không gian lưu trữ Tuy nhiên hệ mã hoá này chỉ được một số ít thẻ thông minh hỗ trợ Hầu hết cácsản phẩm thương mại điện tử trên thị trường như Web Server, Certificate Authorities,middle – ware, các thư viện mã hoá , SSL… đã hỗ trợ RSA và DSA, nên thẻ thôngminh phải hỗ trợ các thuật toán này để có thể sử dụng trên cơ sở hạ tầng khoá côngkhai đang tồn tại
Để hỗ trợ RSA và DSA trong thẻ thông minh yêu cầu bộ đồng xử lý mã hoá và bộnhớ cố định ít nhất là 8 Kbytes
Thuật toán mã hóa và giải mã như sau:
§ Mã hóa bất kỳ thông tin M nào dựa trên một điểm của đường cong elliptic Pm
§ Chọn đường cong phù hợp và điểm G trên đường E(Fp)
§ Mỗi người chọn một khóa riêng Private Key nA <n
§ Sinh ra khóa công khai Public Key PA = nA x G
§ Mã hóa Pm: Cm = {kG, Pm+kPB}, với k là ngẫu nhiên
§ Giải mã Cm: Pm + kPB – nB(kG) = Pm + k(nBG) – nB(kG) = Pm
3.2 GIAO THỨC XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH
3.2.1 Giao thức xác thực với thẻ thông minh
Trong phần này ta xem xét các giao thức để thiết lập sự tin tưởng giữa các thựcthể tham gia - sử dụng thẻ thông minh Đó là các giao thức xác thực, trong đó thực thểngoài luôn là ”chủ”, thẻ thông minh luôn là ”tớ”