GIAO THỨC XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH

Một phần của tài liệu Tìm hiểu và phát hành rộng rãi thẻ thông minh chuẩn EMV (Trang 38 - 44)

Chương 3 XÁC THỰC VÀ BẢO MẬT VỚI THẺ THÔNG MINH

3.2 GIAO THỨC XÁC THỰC VÀ BẢO MẬT 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ực thể 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ớ”.

a. Thẻ thông minh xác thực thực thể ngoài

Thẻ thông minh (thẻ TM) đi kiểm tra thực thể ngoài (TTN). Thẻ thông minh và TTN xây dựng giao thức yêu cầu - đáp ứng (challenge - response) như sau:

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

1. TTN yêu cầu số ngẫu nhiên r từ thẻ TM.

2. Thẻ TM tạo ra số ngẫu nhiên r, ghi lại và gửi nó tới TTN.

3. TTN dùng khoá mã hoá (đã thoả thuận với thẻ TM) để mã hoá r. Nó gửi lệnh xác thực gồm số ngẫu nhiên đã được mã hóa tới thẻ TM.

4. Thẻ TM nhận lệnh xác thực, giải mã số ngẫu nhiên đã được mã hoá trong lệnh đó.

Nếu kết quả bằng số r, xem như thẻ TM đã xác thực được TTN.

Giải thuật mã hoá có thể là mã hoá khoá đối xứng như DES hoặc mã hoá khóa công khai như RSA. Trong trường hợp mã hoá khóa đối xứng, TTN và thẻ TM phải chia sẻ cùng khoá bí mật.

Nếu mã hoá khoá công khai được sử dụng, TTN dùng khoá công khai để mã hoá, thẻ TM dùng khoá bí mật để giải mã[7].

b. Thực thể ngoài xác thực thẻ thông minh

TTN đi kiểm tra thẻ TM. Thẻ TM và TTN thiết lập giao thức như sau:

TTN Thẻ TM

Yêu cầu thẻ TM gửi số ngẫu nhiên r

Thông báo kết quả kiểm tra

Tạo và ghi lại số ngẫu nhiên r

Mã hoá r thành bản mã

e (r)

Gửi bản mã (e (r))

Giải mã và kiểm tra d (e (r)) = r ?

ext k_

ext k_

ext k_ card k_

Gửi số ngẫu nhiên r

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

1. TTN gửi yêu cầu xác thực chứa số ngẫu nhiên r và khoá chung với thẻ TM.

2. Thẻ TM dùng khoá n mã hoá số ngẫu nhiên r nhận được từ TTN và gửi trở lại TTN.

3. TTN dùng khoá n giải mã số r đã được mã hoá. Nếu kết quả bằng r, TTN xem như đã xác thực được thẻ TM.

Nếu thuật toán khoá đối xứng được dùng, TTN và thẻ TM phải sử dụng chung khoá bí mật. Nếu thuật toán khoá công khai được dùng, TTN dùng khoá bí mật tương ứng với khoá công khai được dùng trong thẻ thông minh[7].

3.2.2 Bảo toàn dữ liệu với thẻ thông minh

Thông điệp trên đường truyền có thể được bảo vệ bởi mã xác thực thông điệp (Message Authentication Code - MAC) hoặc được bảo vệ bởi MAC và mã hoá.

Để tính toán MAC hoặc mã hoá dữ liệu, khoá bí mật được chia sẻ bởi TTN và thẻ thông minh.

a. Bảo toàn dữ liệu ghi vào thẻ thông minh

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

1. TTN yêu cầu thẻ TM gửi số ngẫu nhiên r.

TTN Thẻ TM

Gửi (r, n) tới thẻ TM

TÝnh e (r) e (r)

] [ _cardn k

] [ _cardn k Tạo và ghi lại số

ngẫu nhiên r.

Tính khoá n chung với thẻ TM

d (e (r)) = r ?

] [ _extn k

] [ _extn k

Thông báo kết quả kiểm tra

TTN Thẻ TM

Gửi số ngẫu nhiên r

Ghi có bảo vệ (file, offset, len, MAC)

ext file

Tạo và ghi lại số ngẫu nhiên r

TÝnh MAC cho dữ liệu, dùng r và k

TÝnh MAC’ cho dữ liệu, dùng r và k Ghi dữ liệu vào thẻ nÕu MAC = MAC’

Yêu cầu gửi số ngẫu nhiên r

2. Thẻ TM tạo và ghi lại số ngẫu nhiên r, gửi nó tới TTN.

3. TTN tính MAC cho phần đầu (header) của lệnh APDU ghi và dữ liệu sẽ ghi vào thẻ. Để tính MAC, nó dùng số ngẫu nhiên r làm vector khởi tạo ICV và khoá kext, phù hợp với khoá kfile bảo vệ file trong thẻ. Nó xây dựng câu lệnh gồm phần đầu APDU, dữ liệu, MAC, và gửi lại cho thẻ.

4. Thẻ TM nhận lệnh ghi. Nó tính MAC’ cho phần đầu của lệnh APDU và dữ liệu vừa nhận được (sử dụng số ngẫu nhiên r làm vector khởi tạo ICV và khoá kfile).

Nếu MAC = MAC’, dữ liệu chứa trong lệnh sẽ được ghi vào bộ nhớ thường trú của thẻ TM[7].

b. Bảo toàn dữ liệu đọc từ thẻ thông minh

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

1. TTN tạo số ngẫu nhiên r và gửi tới thẻ TM như một yêu cầu.

2. Thẻ TM ghi lại số ngẫu nhiên r, gửi lại đáp ứng rằng đã có số r.

3. TTN gửi lệnh đọc dữ liệu từ thẻ TM. Dữ liệu có độ dài xác định, từ một file bắt đầu ở chỉ mục cho trước, trong chế độ được bảo vệ.

4. Thẻ TM nhận lệnh đọc dữ liệu từ file thuộc vùng lưu trữ cố định trong thẻ. Thẻ TM dùng khoá kfilevà số r (như là vector khởi tạo ICV), để tính MAC cho dữ liệu. Thẻ gửi dữ liệu và MAC cho TTN.

5. TTN nhận dữ liệu từ thẻ cùng với MAC. Nó tính MAC’ cho dữ liệu vừa nhận được với khoá kext phù hợp với kfile và số r (như là vector khởi tạo ICV). Nếu MAC = MAC’, thì TTN chấp nhận dữ liệu là đọc từ thẻ TM[7].

3.2.3 Bảo toàn và bảo mật dữ liệu với thẻ thông minh

TTN Thẻ TM

Gửi số ngẫu nhiên r

Dữ liệu + MAC

Ghi lại số r

Đọc có bảo vệ (file, offset, len)

ext

file

Tạo và ghi lại số ngẫu nhiên r

TÝnh MAC’ cho dữ liệu, dùng r và k

MAC = MAC’ ?

Đọc dữ liệu, MAC cho dữ liệu,tính

dùng r và k Gửi lại dữ liệu

và MAC Gửi đáp ứng đã có r

a. Bảo toàn và bảo mật dữ liệu ghi vào thẻ thông minh

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.

1. TTN yêu cầu thẻ TM gửi số ngẫu nhiên r.

2. Thẻ TM tạo số ngẫu nhiên r, ghi lại, và gửi nó tới TTN.

3. TTN tính MAC cho phần đầu của lệnh APDU ghi và dữ liệu sẽ ghi vào thẻ. Để tính MAC, nó dùng số ngẫu nhiên r làm giá trị khởi tạo ICV và khoá kext, phù hợp với khoá kfile bảo vệ file trong thẻ. TTN mã hoá phần đầu của lệnh APDU, dữ liệu, MAC và gửi bản mã tới thẻ TM.

4. Thẻ TM nhận lệnh ghi. Giải mã bản mã trong lệnh với số ngẫu nhiên r và khoá kfile thích hợp. Nó tính MAC’ cho phần đầu của lệnh APDU và dữ liệu vừa nhận được (dùng khoá kfile và số ngẫu nhiên r làm vector khởi tạo ICV). Nếu MAC = MAC’, dữ liệu chứa trong lệnh sẽ được ghi vào bộ nhớ thường trú của thẻ TM (có bảo mật)[7].

b. Bảo toàn và bảo mật dữ liệu đọc từ thẻ thông minh

TTN Thẻ TM

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.

1. TTN tạo ra số ngẫu nhiên r và gửi tới thẻ TM như một yêu cầu.

2. Thẻ TM ghi lại số ngẫu nhiên r, gửi lại đáp ứng rằng đã có số r.

TTN Thẻ TM

Gửi số ngẫu nhiên r

Ghi có bảo vệ (file, offset, len, bản mã)

ext

Tạo và ghi lại số ngẫu nhiên r

TÝnh MAC cho dữ liệu, dùng r và k

Mã hoá (phần đầu APDU + dữ liệu +

MAC) Ghi dữ liệu vào thẻ

nÕu MAC = MAC’

Yêu cầu gửi số ngẫu nhiên r

Giải mã bản mã.

TÝnh MAC’ cho dữ liệu, dùng r và kfile

Gửi số ngẫu nhiên r

e (dữ liệu + MAC)

Ghi lại số r

Đọc có bảo vệ (file, offset, len)

ext

file Tạo và ghi lại

số ngẫu nhiên r

Giải mã (dữ liệu + MAC) TÝnh MAC’ cho dữ liệu, dùng r và k

MAC = MAC’ ?

Đọc dữ liệu.

Tính MAC cho dữ liệu, dùng r và k

Mã hoá (dữ liệu + MAC), gửi lại bản mã

kfile

Gửi đáp ứng đã có r

3. TTN gửi lệnh đọc dữ liệu từ thẻ thông minh. Dữ liệu có độ dài xác định, từ một file, bắt đầu ở chỉ mục cho trước, trong chế độ mã hoá.

4. Thẻ TM nhận lệnh đọc dữ liệu từ file thuộc vùng lưu trữ cố định trong thẻ. Thẻ dùng khoá kfile và số r (như giá trị khởi tạo ICV) để tính MAC cho dữ liệu. Thẻ mã hoá dữ liệu và MAC (cũng dùng số r và khoá kfile , với cùng thuật toán), gửi bản mã cho TTN.

5. TTN nhận dữ liệu và MAC từ thẻ ở dạng bản mã. Nó giải mã bản mã bằng khoá kext phù hợp với khoá kfile và số r. Nó tính MAC’ cho dữ liệu nhận được (dùng khoá kext và số r). Nếu MAC = MAC’, thì TTN chấp nhận dữ liệu là đọc từ thẻ TM (có bảo mật)[7].

3.2.4 Thiết lập khoá phiên với thẻ thông minh

a.Thiết lập khoá phiên bằng hệ mã hoá khoá đối xứng

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.

1. TTN gửi lệnh để thiết lập khoá phiên cho thẻ TM.

2. Thẻ TM tạo và ghi lại số ngẫu nhiên r. Tạo khoá phiên từ khoá chính và r. Gửi lại số ngẫu nhiên r cho TTN.

3. TTN nhận số ngẫu nhiên r. Tạo khoá phiên từ khoá chính (chung với thẻ) và r.

Hai bên đều tạo khoá chung theo cùng thuật toán tạo khoá.

b.Thiết lập khoá phiên bằng hệ mã hoá khoá công khai

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.

1. TTN tạo ra khoá phiên ks, mã hoá nó với khoá công khai kpub tương ứng với khoá bí mật kpriv trong thẻ.

TTN Thẻ TM

Gửi lệnh thiết lập khoá phiên

Tạo và ghi lại số ngẫu nhiên r, Tạo khoá phiên từ khoá chính và r Tạo khoá phiên từ

khoá chính và r

Gửi r

TTN Thẻ TM

Giải mã bản mã

dùng k d (e ) = k Tạo khoá phiên k ,

mã hoá bằng khoá k

priv s

Gửi trả lời pub

Gửi khoá đã mã hoá (e (k ))kpub s

kpriv kpub s

2. Thẻ TM giải mã khoá phiên ks(dùng khoá bí mật thích hợp), gửi trả lời tới TTN. Một bên tạo khoá và chuyển cho bên kia một cách an toàn[7].

Một phần của tài liệu Tìm hiểu và phát hành rộng rãi thẻ thông minh chuẩn EMV (Trang 38 - 44)

Tải bản đầy đủ (DOC)

(77 trang)
w