Sử dụng các thuật toán mật mã khóa đối xứng

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu cơ sở hạ tầng khóa công khai PKI ứng dụng chứng thực cho các giao dịch hành chính công điện tử​ (Trang 44)

4. Những nội dung nghiên cứu chính

2.2.1 Sử dụng các thuật toán mật mã khóa đối xứng

Để xác thực thông tin, nguyên tắc của mật mã là chỉ có những đối tượng hợp lệ mới khôi phục được thông tin gốc từ thông tin mật. Có thể sử dụng nguyên tắc này để xác thực thông tin như sau:

Theo quy ước, chỉ có nơi gửi thông tin và nơi nhận thông tin hợp lệ mới có khóa bí mật K. Do đó chỉ nơi nhận thông tin hợp lệ mới có khả năng tạo ra khối thông tin mật hợp lệ từ khối thông tin gốc M. Tương tự, chỉ có nơi nhận thông tin hợp lệ mới có khả năng giải mã được thông tin mật để ra thông tin gốc M. Tất cả các cố gắng khác đều cho ra kết quả sai.

Như vậy:

− Chỉ có người nhận hợp lệ mới nhận được thông điệp từ người gửi và

− Chỉ có người gửi hợp lệ mới gửi được thông điệp đến người nhận

Hình 2.1: Xác thc thông tin dùng mt mã đối xng

Nơi gửi Nơi nhận

Sử dụng kỹ thuật mật mã khóa bất đối xứng để trao đổi khóa bí mật trên kênh an toàn, bằng cách mã hóa khóa bí mật (đối xứng) sử dụng khóa công khai của người gửi PUB

• Bên gửi: [E(K, PUB), E(M, K)]

• Bên nhận:

− Giải mã: D[E(K, PUB), PRB] = K

− Giải mã: D[E(M, K), K] = M

Hình 2.2: S dng khóa bt đối xng để trao đổi khóa bí mt 2.2.2 S dng các thut toán mt mã khóa bt đối xng

Trường hợp sử dụng mật mã khóa bất đối xứng để xác thực thông tin, nơi gửi thông tin thực hiện mã hóa bằng khóa bí mật PR bên gửi thay vì dùng khóa công khai PU. Khối thông tin mật tạo ra có thể được giải mã bởi bất kỳ đối tượng nào biết khóa công khai của thực thể gửi. Tuy nhiên, nếu quá trình giải mã thành công, đối tượng nhận thông tin có thể chắc chắn rằng thông tin nhận được là đúng và chính đối tượng gửi hợp lệ đã gửi thông tin này, bởi vì chỉ có đối tượng đó mới có khóa riêng PR.

Hình 2.3: Xác thc thông tin dùng mt mã bt đối xng

M: thông tin gốc E: thuật toán mật mã D: Thuật toán giải mã C: Thông tin mật K: Khóa bí mật dùng chung giữa bên gửi và bên nhận PRB: Khóa bí mật của bên nhận. PUB: Khóa công khai của bên nhận

PRB PUB E(K, PUB) Nơi gửi K E C D K Nơi nhận E(M, PRB) Nơi gửi M E C D M Nơi nhận PUA PRA

M: Thông tin gốc E:Thuật toán mật mã D: Thuật toán giải mã C: Thông tin mật K: Khóa bí mật dùng chung giữa bên gửi và bên nhận PRA: Khóa bí mật của bên gửi. PUA: Khóa công khai của bên gửi

• Bên gửi: E(M, PRA)

• Bên nhận:

− Giải mã: D[E(K, PRA), PUA] = M

2.2.3 S dng mã xác thc MAC

Mã xác thực MAC (Message Authentication Code) được sinh ra từ tổ hợp gồm một khối thông tin gốc có độ dài bất kỳ và một khóa bí mật. Kích thước của MAC là cố định, không phụ thuộc vào kích thước của khối dữ liệu gốc và thường nhỏ hơn dữ liệu gốc. Nơi gửi sẽ gửi giá trị MAC kèm cùng với thông tin gốc. Phía nhận sau khi nhận được thông tin gốc cùng với giá trị MAC gửi kèm sẽ thực hiện thao tác tạo ra giá trị MAC mới từ thông tin gốc cùng với khóa bí mật đã thống nhất giữa hai bên. Nếu giá trị MAC vừa tạo như giá trị MAC nhận được từ phía gửi, phía nhận có thể chắc chắn rằng thông tin gốc không bị thay đổi trong quá trình truyền

Việc dùng MAC để xác thực thông tin dựa vào hai cơ sở:

− Ứng với một khối thông tin gốc M và một khóa bí mật K, hàm C chỉ tạo ra duy nhất một mã xác thực MAC.

− Chỉ có phía gửi và phía nhận hợp lệ mới được biết khóa K.

Có hai kỹ thuật tạo ra mã xác thực MAC: Kỹ thuật dùng cơ chế mật mã khối (Cipher Block Chaining), gọi là CMAC hay CBC-MAC và kỹ thuật dựa trên các hàm băm bảo mật, gọi là HMAC.

Mã xác thực MAC được ứng dụng trong các trường hợp thông tin chỉ yêu cầu đảm bảo tính xác thực mà không cần đảm bảo tính bí mật.

Hình 2.4: Xác thc thông tin dùng MAC

• Bên gửi:

− Mã hóa: MACA = E(M, K)

Nơi gửi Nơi nhận

Mã xác thực (MAC)

So sánh

M: thông tin gốc

K: Khóa bí mật dùng chung giữa bên gửi và bên nhận C: Hàm tạo mã xác thực

| |: Nối mã xác thực vào thông tin gốc

− Mã hóa: E(K, PUB)

− Truyền: (M, E(M, K), E(K, PUB))

• Bên nhận:

− Giải mã: D[E(K, PUB), PRB] = K

− Giải mã: D[E(M, K)] = MACB − So sánh: MACA = MACB ?

2.2.4 S dng các hàm băm bo mt

Sử dụng các hàm băm bảo mật (Secure Hash Function) cũng như mã xác thực MAC, hàm băm cũng tạo ra một khối thông tin ngắn có độ dài xác định gọi là mã băm (Hash Code) từ một khối thông tin gốc có độ dài bất kỳ. Tuy nhiên, khác với MAC, hàm băm chỉ dựa vào thông tin gốc để tạo ra mã băm mà không dùng thêm bất kỳ khóa bí mật nào. Do vậy, để có thể sử dụng như một cơ chế xác thực thông tin, hàm băm phải được dùng kèm với một thuật toán mật mã nào đó (đối xứng hoặc bất đối xứng).

Hình sau trình bày một ứng dụng điển hình của hàm băm xác thực thông tin. Theo cơ chế này, mã băm sau khi được tạo ra sẽ được mã hóa bằng một thuật toán mật mã đối xứng với khóa bí mật K chỉ có bên gửi và bên nhận biết. Đoạn mã băm đã được mã hóa và được gửi đi kèm với thông tin gốc và quá trình kiểm tra ở phía nhận cũng được tiến hành theo trình tự ngược lại, tức là giải mã đoạn mã băm bằng khóa bí mật, sau đó tạo ra mã băm mới từ thông tin gốc và so sánh hai đoạn mã băm.

Hình 2.5: Xác thc thông tindùng hàm băm

Sử dụng khóa đối xứng, bất đối xứng để mã hóa tài liệu và trao đổi khóa bí mật K trên kênh an toàn thực hiện trao đổi thông tin

Nơi gửi Nơi nhận

Mã băm đã được mã hóa

M’

M’ M’

Hình 2.6: Xác thc dùng hàm băm và mt mã bt đối xng • Bên gửi: − Băm: hA = H(M’, K) − Mã hóa: E( hA, K) − Mã hóa: E( M, K) − Mã hóa: E(K, PUB) − Truyền: (M’, E( hA, K), E( M, K), E(K, PUB)) • Bên nhận: − Giải mã: K = D[E(K, PUB),PRB] − Giải mã: hA= D[E( hA, K), K] − Băm: hB = H(M’, K) − So sánh: hA = hB ? − Giải mã: M = D[E( M, K), K]

Có nhiều cách áp dụng các thuật toán mật mã vào hàm băm để xác thực thông tin: Sử dụng kỹ thuật mật mã khóa đối xứng hoặc khóa bất đối xứng. Hoặc chỉ mã hóa giá trị băm hoặc mã hóa cả thông tin gốc và giá trị băm, có thể tổ hợp nhiều cách trên lại với nhau.

Ngoài các ứng dụng xác thực thông tin, các hàm băm còn được sử dụng trong nhiều ứng dụng khác nhau.

2.2.5 Xác thc thông tin dùng ch ký đin t

Sử dụng các hàm băm bảo mật (Secure Hash Function) chữ ký số để xác thực nguồn gốc thông tin. Hàm băm dựa vào thông tin gốc để tạo ra mã băm và dùng khóa riêng của người gửi mã hóa giá trị băm này. Vì vậy, để có thể sử dụng cơ

M: Thông tin gốc E:Thuật toán mật mã D: Thuật toán giải mã C: Thông tin mật K: Khóa bí mật dùng chung giữa bên gửi và bên nhận PRB: Khóa bí mật của bên nhận. PUB: Khóa công khai của bên nhận

M’: Thông tin cá nhân

PRB PUB E D Nơi gửi K K Nơi nhận M D M K K E(K, PRB) E(M, K) E

chế xác thực thông tin, hàm băm phải được dùng kèm với một thuật toán mật mã bất đối xứng RSA.

Hình 2.7: Xác thc thông tindùng ch ký s

Sử dụng khóa bí mật K (đối xứng) để mã hóa tài liệu M và sử dụng khóa công khai của người nhận PUB (bất đối xứng) để mã hóa khóa bí mật K

• Bên gửi:

− Tạo chữ ký số: E [H(M’), PRA]

− Mã hóa tài liệu: E( M, K)

− Mã hóa: E(K, PUB) − Truyền: (M’, E [H(M’), PRA], E( M, K), E(K, PUB)) • Bên nhận: − Giải mã: K = D[E(K, PUB),PRB] − Giải mã: hA= D[E[H(M’), PRA], PUA] − Băm: hB = H(M’) − So sánh: hA = hB ? − Giải mã: M = D[E( M, K), K] Hình 2.8: Xác thc thông tin dùng ch ký s Nơi gửi Nơi nhận

Mã băm đã được mã hóa

M’

M’ M’

Chữ ký số

M: Thông tin gốc E:Thuật toán mật mã D: Thuật toán giải mã C: Thông tin mật K: Khóa bí mật dùng chung giữa bên gửi và bên nhận PRB: Khóa bí mật của bên nhận. PUB: Khóa công khai của bên nhận

M’: Thông tin cá nhân

PRB PUB E D Nơi gửi K K Nơi nhận M D M K K E(K, PRB) E(M, K) E

2.2.6 Xác thc thông tin dùng ch ký đin t và chng thc đin t

Quá trình xác thực dùng chứng chỉ số và chữ ký điện tử như sau:

a)Thiết lập phiên làm việc:

− Trước tiên, User truy nhập khoá riêng của mình cho Client

− Client của người sử dụng truy tìm khoá riêng và sử dụng nó để tạo chữ ký điện tử cho User

− Client gửi chứng thực sốvà chữ ký điện tửcủa User tới Server

− Server sử dụng chứng thực số và chữ ký số đã nhận xác thực định danh User có đúng hay không

− Nếu đúng, Server xác thực quyền truy nhập cho User và cho phép User bắt đầu phiên làm việc giữa Client và Server.

Hình 2.9: Minh ho xác thc s dng chng ch s và ch kýđin t

b) Quá trình xin cấp một chứng chỉ số

1. User: Tạo một cặp khoá PRU và PUU(Private và Public Key).

2. Gửi khoá công khai của User PUU và một số thông tin định danh khác – M, tạo thành một chứng thực số (Certificate) đến CA. Như vậy có thể hiểu một chứng thực bao gồm: Certificate = {PUUvà M}. Thông tin định danh cá nhân thường là họ tên, số điện thoại, địa chỉ email ... Thông tin định danh của cá nhân hay của một Website thường là các định danh tài nguyên URL của site đó..

ŒUser enters private-key password Client retrieves private key and uses it to create digital signature ŽClient sends certificate and digital signature across network. Server authorizes access for authenticated identity. Web server  Server user certificate and digital signature to authenticate the user’s identity.

3. CA sẽ băm H(M + PUU),mã hoá bằng khoá riêng của CA (CA Private key) - PRCA tạo thành chữ ký số của CA, đính vào chứng chỉ số (Certificate) tạo thành một chứng chỉ số đã ký SC (Signed Certificate):E[H(M+PUU),PRCA]

4. Trả chứng chỉ số đã ký SC về cho người dùng.

Hình 2.10: Sơ đồ minh ha quá trình xin cp chng ch s

c) Quá trình sử dụng chứng chỉ số

1. Giả sử Client đã được Server cấp chứng chỉ số đã ký SC. Client có thể định danh được Server

2. Chứng chỉ số bao gồm khoá công khai của Server cùng với thông tin định danh. Client giải mã chữ ký điện tử của CA bằng khoá công khai của CA, thực hiện HASH để xác thực rằng chứng chỉ số không bị thay đổi. Như vậy khoá công khai của CA đã được sử dụng để chứng thực khoá công khai trong chứng chỉ số của người gửi. Khi khoá công khai của người gửi được xác nhận, nó được dùng để chứng thực chữ ký điện tử trong thông điệp của nó.

Để cung cấp một chứng chỉ bảo đảm hoặc hệ thống chữ ký, những điều kiện sau phải được thoả mãn :

− Nhà cung cấp dịch vụ chứng chỉ phải cung cấp chứng chỉ cho cả bên gửi và bên nhận.

− Bên nhận phải có khả năng sử dụng chứng chỉ của CA để kiểm chứng khoá công khai của bên gửi.

− Khoá công khai đã được chứng thực của bên gửi phải được sử dụng để kiểm chứng chữ ký điện tử của thông điệp của nó.

PRCA PUU (Public Key) User Certifying Authority Certificat Request Signed Certificate

2.3 Các giao thức xác thực

2.3.1 Mt khu

Trong số các cơ chế xác thực, cơ chế xác thực dựa trên thông tin mà thực thể truy xuất biết (what you know) là cơ chế đơn giản nhất và được sử dụng nhiều nhất. Thông tin này thường là mật khẩu (password), được liên kết với một thực thể dùng để xác thực thực thể đó.

Mật khẩu thường là một chuỗi ký tự. Không gian mật khẩu (password space) là tập hợp tất cả các chuỗi ký tự có thể xuất hiện trong mật khẩu. Mỗi hệ thống xác thực có một không gian mật khẩu khác nhau. Không gian mật khẩu càng lớn thì khả năng bị tấn công mật khẩu theo phương thức vét cạn (Brute Force) lại càng thấp.Mật khẩu được gọi là phức tạp nếu nó khó bị phát hiện bằng phương pháp dò mật khẩu theo từ điển (Dictionary Attack).

Theo khảo sát, những loại mật khẩu được dùng phổ biến nhất hiện nay:

− Người sử dụng có thói quen dùng tên của người sử dụng (User Name hoặc Account Name), hoặc ngày sinh, số điện thọai… để làm mật khẩu

− Dùng tên đăng nhập (Logon Name) làm mật khẩu.

− Dùng tên máy tính (Computer Name) làm mật khẩu.

− Dùng những từ khóa đặc biệt như computer, hacker, …

− Lấy tên của những người có quan hệ mật thiết, như vợ, chồng, con, người thân làm mật khẩu ….

Những mật khẩu như trên đều có độ phức tạp rất thấp và do đó dễ dàng bị tiết lộ. Các hệ thống xác thực thường đưa ra các chính sách về mật khẩu (Password Policy) đối với người sử dụng. Các chính sách này thường quy định những ràng buộc sau đây:

− Chiều dài tối thiểu và độ khó của mật khẩu, mật khẩu không được chứa User Name hoặc logon-name (Password Complexity).

− Thời gian sử dụng tối đa của mật khẩu (Password Age).

− Thường xuyên thay đổi mật khẩu, …

Về phía người sử dụng, những nguyên tắc chung để tăng độ an toàn cho việc xác thực dùng mật khẩu bao gồm:

− Sử dụng nhiều loại ký tự khác nhau để làm mật khẩu, mục đích là mở rộng không gian mật khẩu (dùng chữ cái, chữ số, các ký hiệu đặc biệt, dùng phối hợp giữa chữ hoa và chữ thường, …)

− Không sử dụng các mật khẩu quá ngắn.

− Không sử dụng những từ khóa hoặc từ có nghĩa trong mật khẩu.

− Thường xuyên thay đổi mật khẩu.

− Không tiết lộ mật khẩu cho người khác, cả những tình huống an toàn nhất. Trên các máy chủ xác thực, mật khẩu của người sử dụng thường không được lưu trữ một cách trực tiếp dưới dạng ký tự gốc (cleartext) mà phải được mã hoá dưới một dạng nào đó để đảm bảo an toàn. Ngoài ra, để mật khẩu không bị đánh cắp khi truyền đi trên mạng, nhiều thủ tục xác thực phức tạp được xây dựng để đảm bảo rằng mật khẩu không được truyền đi trực tiếp (Cleartext) trên mạng.

2.3.2 Các giao thc xác thc trong mô hình đim - đim

Một thực thể bên ngoài hệ thống thông tin muốn truy xuất hệ thống như một chủ thể của thệ thống thì phải cung cấp các thông tin để hệ thống xác thực nhận dạng của chủ thể. Các thông tin này thường là mật khẩu, thẻ xác thực, dấu vân tay, … Quá trình xác thực một thực thể bao gồm việc lấy thông tin mà thực thể cung cấp, phân tích và xác định xem thông tin có liên kết với thực thể đó hay không.

Có hai mô hình thực tế của một hệ thống xác thực là xác thực tại chỗ (Local Authentication) và xác thực từ xa (Remote Authentication) thông qua môi trường mạng. Mô hình thứ nhất được sử dụng khi người sử dụng đăng nhập trực tiếp vào một thống nội bộ (Local Logon), thông tin xác thực (tên người dùng và mật khẩu) được cung cấp trực tiếp cho hệ thống xác thực (server). Trong mô hình thứ hai, người sử dụng đăng nhập vào một hệ thống ở xa. Tình huống này bắt buộc các thông tin xác thực phải được gửi đi trên mạng và do đó, nguy cơ bị nghe lén thông tin là rất cao. Các giao thức xác thực được thiết kế để giảm thiểu các nguy cơ này.

Trong các hệ thống cổ điển, kết nối từ xa thường được thực hiện bằng các giao thức điểm – điểm như SLIP (Serial Line Internet Protocol) hoặc PPP (Point to Point Protocol). Các thủ tục xác thực đều là một chiều, tức là chỉ có máy chủ xác thực người sử dụng chứ không có thủ tục ngược lại. Hai giao thức xác thực thường được dùng trong các hệ thống này là PAP và CHAP

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu cơ sở hạ tầng khóa công khai PKI ứng dụng chứng thực cho các giao dịch hành chính công điện tử​ (Trang 44)