1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV

84 471 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 84
Dung lượng 2,16 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DANH MỤC CÁC TỪ VIẾT TẮT AFL: Application File Locator: định danh tệp tin ứng dụng ATR: Answer To Reset: Trả lời để khẳng định lại APDU: Application Protocol Data Units: Đơn vị dữ liệu g

Trang 1

ĐẠI HỌC CÔNG NGHỆ

PHAN THU NGÂN

NGHIÊN CỨU GIẢI PHÁP VÀ PHÁT H ÀNH THẺ

THÔNG MINH THEO CHUẨN EMV

Trang 2

MỤ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 3

2.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

PHỤ LỤC 71

A Ứng dụng ví điện tử (wallet) 71

B Thuật toán tính MAC 75

Trang 4

DANH MỤC CÁC TỪ VIẾT TẮT

AFL: Application File Locator: định danh tệp tin ứng dụng

ATR: Answer To Reset: Trả lời để khẳng định lại

APDU: Application Protocol Data Units: Đơn vị dữ liệu giao thức ứng dụng AES: Advanced Encryption Standard: chuẩn mã hoá tiên tiến

ARQC: Authorisation Request Cryptogram

ATM: Automatic Teller Machine: máy rút tiền tự động

AuC: Authentication Centre: trung tâm xác thực

BTS: Base Station: trạm thu phát

CDA: Application Cryptogram Generation: tạo mã ứng dụng

CDOL1: Card Risk Management Data Object List 1

CDOL2: Card Risk Management Data Object List 1

CPU: Central Processing Unit: bộ xử lý trung tâm

C-APDU: Command - Application Protocol Data Units: APDU lệnh

CBC: Cipher Block Chaining

CLA: Class: “lớp” chỉ thị

CVM: Cardholder Verification Method: phương thức xác minh chủ thẻ DDA: Dynamic Data Authentication: xác thực dữ liệu động

DDOL: Dynamic Data Authentication Object List

DF: Dedicated File: thư mục chuyên dụng

DES: Data Encryption Standard: chuẩn mã hoá dữ liệu

EEPROM: Electrically Erasable Programmable Read Only Memory:

Bộ nhớ có thể ghi bằng tín hiệu điện

ECB: Electronic Code Book

EF: Elementary File: file cơ bản

GSM: Global System for Mobile Communications

GPRS: General Packet Radio Service: dịch vụ truyền phát mã hoá gói tin GEA: Generic Evolutionary Algorithm:

HLR: Home Location Register: đăng ký vùng chủ

HPLMN: Home Public Land Mobile Networks: mạng di động công khai ICC: Integrated Chip Card

ICV: Initial Chaining Value: giá trị chuỗi khởi tạo

INS: Instruction: “mã” chỉ thị

Trang 5

ISO: International Standards Organization: Hiệp hội tiêu chuẩn quốc tế

IMSI: International Mobile Subscriber Identity: định danh thuê bao di động quốc tế LFSRs: Linear Feedback Shift Registers: thanh ghi dịch chuyển đầu ra tuyến tính MF: Master file: thư mục gốc

ME: Mobile Equipment: thiết bị di động

MAC: Message Authentication Codes: Mã xác thực thông điệp

MSC: Mobile Switching Centres: trung tâm chuyển mạch di động

PIN: Personal Identification Number: số định danh cá nhân

POS: Point Of Sale: điểm bán hàng

R-APDU: Response - Application Protocol Data Units: APDU phản hồi

RISC: Reduced instruction set computer: tập lệnh đơn giản

ROM: Read Only Memory: bộ nhớ chỉ cho phép đọc

RAM: Random Access Memory: bộ nhớ truy cập ngẫu nhiên

RE: Receiver Entity: thực thể nhận

RA: Receiver Application: ứng dụng nhận

SIM: Subscriber Identity Module: Thẻ thông minh mang định danh thuê bao

SAT: Sim Application Toolkit: bộ ứng dụng SIM

SA: Send Application: ứng dụng gửi

SDA: Static Data Authentication: xác thực dữ liệu tĩnh

SDAD: Signed Dynamic Application Data: dữ liệu ứng dụng chữ ký số động

SE: Send Entity: thực thể gửi

SM: Secure Message: thông điệp bảo mật

SP: Secure Packet: gói tin bảo mật

SMS: Short Message Service: dịch vụ tin nhắn ngắn

TM: Transport Mechanism: kiến trúc giao vận

TC: Transaction Certificate

TPDU: Transportation Protocol Data Units: Đơn vị dữ liệu giao thức truyền thông TMSI: Temporary Mobile Subscriber Identity: định danh thuê bao di động tạm thời USSD: Unstructured Supplementary Service Data: dữ liệu dịch vụ bổ sung không cấu trúc

Trang 6

DANH MỤC CÁC HÌNH VẼ

Hình 1: Sơ đồ phân loại thẻ 1

Hình 2: Sơ đồ khối của thẻ dùng chip nhớ 2

Hình 3: Sơ đồ khối của thẻ dùng vi điều khiển 2

Hình 4: Cấu trúc của thẻ thông minh không tiếp xúc 3

Hình 5: Sơ đồ khối bên trong của thẻ thông minh 3

Hình 6: Hình dạng điểm tiếp xúc của thẻ thông minh 4

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 4

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 5

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,… 11

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 .11

Hình 11: Kiến trúc thẻ thông minh dùng hệ điều hành Multos .12

Hình 12: Kiến trúc thẻ thông minh sử dụng hệ điều hành hãng Sun Microsystem hỗ trợ Java. .12

Hình 13: Kiến trúc thẻ thông sử dụng hệ điều hành Proton Prisma hỗ trợ Java 12

Hình 14: Kiến trúc thẻ thông minh dùng hệ điều hành TIBC hỗ trợ Java 13

Hình 15: Sơ đồ tổ chức file trong thẻ thông minh .14

Hình 16: Dữ liệu địa chỉ offset trong một file trong suốt .14

Hình 17: Cấu trúc file cố đinh tuyến tính .15

Hình 18: Cấu trúc file biến đổi tuyến tính .15

Hình 19: Cấu trúc file nối vòng .15

Hình 20: Cấu trúc khởi tạo của thẻ MPCOS-EMV 18

Hình 21: Sơ đồ cấu trúc file thẻ MPCOS-EMV khi được nạp thêm ứng dụng vào thẻ .18

Hình 22: Kiến trúc thẻ Global Platform .19

Hình 23: Sơ đồ tham chiếu các lớp .22

Hình 24: Sơ đồ luồng giao dịch .27

Hình 25: Chế độ mã hóa DES - ECB .32

Hình 26: Chế độ mã hóa DES - CBC 33

Hình 27: Chế độ giải mã DES - CBC 33

Hình 28: Sơ đồ tính MAC trong chế độ mã hóa DES - CBC .34

Trang 7

Hình 29: Sơ đồ xác thực giữa thẻ thông minh với thực thể ngoài .37

Hình 30: Sơ đồ thực thể ngoài xác thực với thẻ thông minh .38

Hình 31: Sơ đồ thực hiện quá trình mã hóa bản tin ghi vào thẻ thông minh 38

Hình 32: Sơ đồ thực hiện quá trình mã hóa bản tin đọc từ thẻ thông minh ra 39

Hình 33: Sơ đồ thực hiện quá trình bảo mật dữ liệu và mã hóa bản tin từ thực thể ngoài ghi vào thẻ thông minh .40

Hình 34: Sơ đồ thực hiện quá trình bảo mật dữ liệu và mã hóa bản tin đọc ra từ thẻ thông minh .40

Hình 35: Sơ đồ thiết lập khóa phiên giữu thẻ thông minh với thực thể ngoài dùng hệ mã hóa đối xứng .41

Hình 36: Sơ đồ thiết lập khóa phiên giữa thẻ thông minh với thực thể ngoài dùng hệ mã hóa công khai .41

Hình 37: Sơ đồ xác thực dữ liệu tĩnh (SDA) .42

Hình 38: Sơ đồ xác thực dữ liệu động ngoại tuyến (DDA) .43

Hình 39: Sơ đồ phân phối chứng chỉ khóa công khai .44

Hình 40: Sơ đồ quy trình sản xuất, phát hành thẻ thông minh .47

Hình 41: Quy trình phát hành thẻ thông minh .48

Hình 42: Luồng xử lý ghi dữ liệu vào thẻ thông minh .49

Hình 43: Hệ thống cá thể hóa thẻ thông minh tự động MPR3000 49

Hình 44: Trống quay tự động có gắn 12 đầu PWF .50

Hình 45: Các bộ phận của MPR3000 51

Hình 46: Mô hình các thiết bị gắn trên các trạm của MPR3000 52

Hình 47: Hệ thống DC9000 với 5 module được sử dụng 54

Hình 48: Sơ đồ khối hệ thống đọc/ghi thẻ chip .54

Hình 49: Sơ đồ bố trí của 7 trạm đọc/ghi thẻ thông minh .55

Hình 50: Sơ đồ bo mạch điều khiển các trạm đọc/ghi thẻ chip .56

Hình 51: Sơ đồ bo mạch điều khiển tương ứng của 7 trạm đọc/ghi thẻ chip .56

Hình 52: Sơ đồ tổng quát quy trình chuẩn bị dữ liệu theo chuẩn EMV 57

Hình 53: Tổng quan định dạng dữ liệu để cá thể hóa thẻ thông minh .57

Hình 54: Định dạng dữ liệu cá thể hóa cho một ứng dụng cụ thể trên thẻ .58

Hình 55: Chương trình biên dịch CPU ColdFire dùng trong 12 đầu PWF trên máy MPR3000. .58

Hình 56: Sơ đồ hoạt động tổng quát của SPMWIN 58

Hình 57: Sơ đồ quản lý luồng dữ liệu đầu vào của SPMWIN 59

Hình 58: Sơ đồ các module trên MPR3000 được quản lý bở SPMWIN 59

Trang 8

Hình 59: Luồng dữ liệu cho máy in Laser 60

Hình 60: Luồng dữ liệu cho máy in Inkjet 60

Hình 61: Luồng dữ liệu cho 12 đầu đọc PWF ghi/đọc thẻ 61

Hình 62: Sơ đồ hoạt động logic tổng quát của SCPM .62

Hình 63: Môi trường phát hành thẻ từ truyền thống .63

Hình 64: Môi trường phát hành thẻ EMV .63

Hình 65: Định dạng chuẩn các bản ghi dữ liệu sản xuất thẻ EMV 64

Hình 66: Giao diện chương trình MK EMV QC Tools 65

Hình 67: Định nghĩa các EMV profile templates 65

Hình 68: Máy in Condor - Giải pháp cá thể hóa thẻ chip để bàn 66

Trang 9

Chươ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ặt kia

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ị hay bà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ần thiế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úc dự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 trong chip 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ả

Trang 10

Ư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

Hì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ệc truy 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ừ ứng dụ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ác thẻ đó đặ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ế,…

Trang 11

Nhìn chung thuật ngữ “thẻ thông minh” bao gồm cả thẻ nhớ và thẻ vi xử lý Tuy nhiê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ật ngữ “thẻ thông minh” ta hiểu là thẻ vi xử lý

1.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ên lạ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ý 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[13, 24, 28]

Hình 5: Sơ đồ khối bên trong của thẻ thông minh

Trang 12

1.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ể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

§ Đ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

Trang 13

1.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ớ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.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ậ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, 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ẻ đượ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)

Trang 14

§ 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á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 đầ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ứ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 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ả 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 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ớ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.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ụ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)[24, 28]

Trang 15

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:

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à 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 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ủ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 tuỳ 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à 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 16

GET RESPONSE

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

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.4.4 Mã hoá bit

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

Trực tiếp (xuôi thứ tự):

Trang 17

Đả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 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 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á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

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

- 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

Trang 18

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 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.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 33 byte Byte đầu tiên định nghĩa kiểu mã bit (trực tiếp hay đảo ngược) Bản thân 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ẻ 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ục 2[23]

-

Trang 19

Chương 2 - HỆ ĐIỀU HÀNH THẺ THÔNG MINH

2.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ậ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 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 Card Flatform) hoặc tự phát triển nền tảng riêng (Proprietary Card) để phát triển hệ điều hà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.

Trang 21

§ Thẻ TIBC

Hì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à 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 Chính vì vậy, 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 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á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

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 đượ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[8, 9, 13, 24, 28]

Trang 22

Các DF ở mức đầu tiên tồn tại trong thẻ MPCOS-EMV như sau:

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’ 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í

đó Tiêu đề của file trong suốt biểu thị độ dài chi tiết của file[8, 9, 13, 24, 28]

Trang 23

§ EF cố định tuyến tính (Linear fixed EF)

Hì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 trong file đó đượ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 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 ISO7816 - 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[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ới kiể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

Trang 24

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[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ản lê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ẢN GHI

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 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 file Đị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ẽ được chọ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ởi lệ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ừ file hiệ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ủa thư 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 được lự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ại trê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ề Tuy nhiê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

Trang 25

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ải tuâ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à file 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 chi tế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 được lư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ày thườ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ỗi kiể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ụng cho 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ật trong 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ành phầ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ực hiệ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

24 byte Đ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ội

Trang 26

dung, 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

Hình 20: Cấu trúc khởi tạo của thẻ MPCOS-EMV.

§ DFSystem

File này chứa hai file chuyên thành phần EFCard, EFIssuer Các file thành phần trong mức ứng dụng này chứa thông tin liên quan đến nhà sản xuất thẻ và nhà phát hành thẻ

Hình 21: Sơ đồ cấu trúc file thẻ MPCOS-EMV khi được nạp thêm ứng dụng vào thẻ

Trang 27

Trong đó:

§ EFCard

Đâ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ều kiệ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 đổi nộ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 file trong quá trình cá thể hóa thẻ File này có độ dài 12 byte, điều kiện truy cập file cho phé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ấu trú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ành thẻ 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ới từ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]

Trang 28

§ 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ức xá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ôi trườ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ới cá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ực thể 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ũng như giao thức truyền thông, kênh logic vào chuỗi lệnh[10]

Trang 29

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

là 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ều phố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ình thẻ

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ệm thi 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ựa chọ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 ứng dụ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ứa thô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ùng bả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ội dung 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ẻ trong khuô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ã ứng dụ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ộng vớ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ể ứng dụ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ùng tồn tại trên một thẻ Global Platform[10]

Trang 30

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 Platform (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ác minh 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ụng giao 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 System Applet, cũng tương tự như lớp JCAPI, đây là một lớp riêng của thẻ Global Platform, nó hỗ trợ các phương thức giao tiếp riêng mà chỉ thẻ Global Platform 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ực hiệ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ụng khách hàng than thiết(loyalty), ứng dụng mã số cá nhân(id), … Lớp này được quản lý bởi Card Content

Trang 31

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]

§ 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ản ghi 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 file liê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ỗi cá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ện tạ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ần trong 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 được cậ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

Trang 32

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ập nhậ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ụng cho 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àn tương tự lệnh đọc bản ghi Đầu vào là chế độ và độ dài bản ghi, không có đầu ra

§ 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ụng hiệ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 try Counter (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ệu lư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ông qua 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 Dynamic Application 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ào cù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 CVM như 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

Trang 33

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 theo như: giá trị “PIN try Counter” sẽ được đặt lại bằng giá trị “PIN try Limit”, nếu có yêu cầu thì giá trị PIN tham chiếu cũng được thay mới Nếu có dữ liệu PIN được truyền đi trong lệnh này thì nó cũng được mã hóa bảo mật để đảm bảo độ an toàn

2.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ĩa chứ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ệnh READ 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 bao gồ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ật nộ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ệu riê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ệu riê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 trong các file đọc được bằng cách dùng lệnh READ RECORD

Trang 34

Tag Value Presence

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 file bê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 36

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ọi tớ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

§ 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ứa trong 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 ứng dụ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 thi cá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ệu nà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 theo luồ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ại tuyế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ồng giao 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ại tuyế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ị đầu cuố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ện nhữ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ặc DDA 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

Trang 37

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

Nế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ẽ đặt bí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 trong bấ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ị đầu cuố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ện tạ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ột phầ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ạn củ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 được khở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ị đầu cuối là đặt các bit tương thích trong TVR

Trang 38

Đ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ọn mộ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ần khả 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ứ khi nào nào khi đọc dữ liệu ứng dụng nhưng phải thực thi trước khi dùng lệnh GENERATE AC đầu tiên

2.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ằng nhà 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ài giớ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 thanh toá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 ARQC trong 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ối nhận được một phản hồi ARQC trong lệnh GENERATE AC đầu tiên của cả quá trình

-

Trang 39

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ệc xá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ột khoá 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ận phả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ủa việ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

3.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ểm tra 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áy tí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àm hai 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

Trang 40

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

Hình 25: Chế độ mã hóa DES - ECB.

c Phương thức mã hoá DES-CBC

Ngày đăng: 25/03/2015, 11:01

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. DataCard, “Reference Guide for Smart Card Personalization Manager (SCPM) Applications”, June 2004 Sách, tạp chí
Tiêu đề: Reference Guide for Smart Card Personalization Manager (SCPM) Applications
2. DataCard, “Reference Guide for Affina® Personalization Manager Applications”, March 2006 Sách, tạp chí
Tiêu đề: Reference Guide for Affina® Personalization Manager Applications
3. EMVCo, “EMV ’96 Integrated Circuit Card Terminal Specification for Payment Systems”, Version 3.0, June 30, 1996 Sách, tạp chí
Tiêu đề: EMV ’96 Integrated Circuit Card Terminal Specification for Payment Systems
4. EMVCo, “EMV Integrated Circuit Card Specifications for Payment Systems”, Books(1, 2, 3, 4), Version 4.1, 2004 Sách, tạp chí
Tiêu đề: EMV Integrated Circuit Card Specifications for Payment Systems
5. EMVCo, LCC, “EMV Card Personalization Specification”, Version 1.0, June 2003 Sách, tạp chí
Tiêu đề: EMV Card Personalization Specification
6. EMVCo, LCC, “EMV Issuer Security Guidelines”, Version 0.5, October 31, 2000 Sách, tạp chí
Tiêu đề: EMV Issuer Security Guidelines
7. Eur Ing Chris Hills BSc(Hons), “Encryption and Ciphers using 7816 for Smart Cards”, C. Eng., MIEE, FRGS September 2001 Sách, tạp chí
Tiêu đề: Encryption and Ciphers using 7816 for Smart Cards
8. Gemalto(9-2007), “MPCOS-EMV R5 Reference Manual” Sách, tạp chí
Tiêu đề: MPCOS-EMV R5 Reference Manual
9. Gemplus, August 1999, “MPCOS-EMV Reference Manual Version 3.1” Sách, tạp chí
Tiêu đề: MPCOS-EMV Reference Manual Version 3.1
10. Global Platform, “Card Specification”, Version 2.2, March 2006 Sách, tạp chí
Tiêu đề: Card Specification
11. Global Platform, “Global Platform Smart Card Security Target Guidelines”, Version 1.0, October 2005 Sách, tạp chí
Tiêu đề: Global Platform Smart Card Security Target Guidelines
12. IBM, “OpenCard Framework 1.2 Programmer's Guide” Sách, tạp chí
Tiêu đề: OpenCard Framework 1.2 Programmer's Guide
13. Jorge Ferrari, Robert Mackinnon, Susan Poh, Lakshman Yatawara, “Smart Cards: A Case Study”, IBM Sách, tạp chí
Tiêu đề: Smart Cards: A Case Study
14. Klaus Finkenzeller, “RFID Hand Book, Fundementals and Applications in Contactless Smart Cards and Identification (Second Edition)”, Giesecke &Devrient GmbH, Munich, Germany - 2003 Sách, tạp chí
Tiêu đề: RFID Hand Book, Fundementals and Applications in Contactless Smart Cards and Identification (Second Edition)
15. MasterCard, “MasterCard® Chip - Minimum Card Requirements for Debit and Credit”, Version 4.0, August 2001 Sách, tạp chí
Tiêu đề: MasterCard® Chip - Minimum Card Requirements for Debit and Credit
16. MasterCard, “Card Personalization Validation Guide”, September 2006 Sách, tạp chí
Tiêu đề: Card Personalization Validation Guide
17. Mike Hendry, “Smart Card Security and Applications (Second Edition)”, Artech House - Boston London - 2001 Sách, tạp chí
Tiêu đề: Smart Card Security and Applications (Second Edition)
18. Marcel Aumont, Senior Technology Consultant, CGI, “Public Key encryption and digital signature - How do they work?” Sách, tạp chí
Tiêu đề: Public Key encryption and digital signature - How do they work
20. Scott B.Guther & Mary J.Cronin, “Mobile Application Development with SMS and the SIM Toolkit”, McGraw- Hill Telecom - 2002 Sách, tạp chí
Tiêu đề: Mobile Application Development with SMS and the SIM Toolkit
21. Security in the GSM system, By Jeremy Quirke | Last updated 1 st May 2004, © 2004 AusMobile. http://www.ausmobile.com Link

HÌNH ẢNH LIÊN QUAN

Hình 1: Sơ đồ phân loại thẻ. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 1 Sơ đồ phân loại thẻ (Trang 9)
Hình 2: Sơ đồ khối của thẻ dùng chip nhớ. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 2 Sơ đồ khối của thẻ dùng chip nhớ (Trang 10)
Hình 5: Sơ đồ khối bên trong của thẻ thông minh. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 5 Sơ đồ khối bên trong của thẻ thông minh (Trang 11)
Hình 9: Kiến trúc của thẻ thông minh dùng hệ điều hành riêng như MPCOS, - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 9 Kiến trúc của thẻ thông minh dùng hệ điều hành riêng như MPCOS, (Trang 19)
Hình 13: Kiến trúc thẻ thông sử dụng hệ điều hành Proton Prisma hỗ trợ Java. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 13 Kiến trúc thẻ thông sử dụng hệ điều hành Proton Prisma hỗ trợ Java (Trang 20)
Hình 21: Sơ đồ cấu trúc file thẻ MPCOS-EMV khi được nạp thêm ứng dụng vào thẻ. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 21 Sơ đồ cấu trúc file thẻ MPCOS-EMV khi được nạp thêm ứng dụng vào thẻ (Trang 26)
Hình 20: Cấu trúc khởi tạo của thẻ MPCOS-EMV. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 20 Cấu trúc khởi tạo của thẻ MPCOS-EMV (Trang 26)
Hình 22: Kiến trúc thẻ Global Platform. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 22 Kiến trúc thẻ Global Platform (Trang 27)
Hình 24: Sơ đồ luồng giao dịch. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 24 Sơ đồ luồng giao dịch (Trang 35)
Hình 25: Chế độ mã hóa DES - ECB. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 25 Chế độ mã hóa DES - ECB (Trang 40)
Hình 26: Chế độ mã hóa DES - CBC. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 26 Chế độ mã hóa DES - CBC (Trang 41)
Hình 28: Sơ đồ tính MAC trong chế độ mã hóa DES - CBC. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 28 Sơ đồ tính MAC trong chế độ mã hóa DES - CBC (Trang 42)
Hình 41: Quy trình phát hành thẻ thông minh. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 41 Quy trình phát hành thẻ thông minh (Trang 56)
Hình 43: Hệ thống cá thể hóa thẻ thông minh tự động MPR3000. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 43 Hệ thống cá thể hóa thẻ thông minh tự động MPR3000 (Trang 57)
Hình 42: Luồng xử lý ghi dữ liệu vào thẻ thông minh. - Nghiên cứu giải pháp và xây dựng chương trình phát hành thẻ thông minh theo chuẩn EMV
Hình 42 Luồng xử lý ghi dữ liệu vào thẻ thông minh (Trang 57)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w