Mã hóa đối xứng (Symmetric Encryption)

Một phần của tài liệu Dịch vụ mobile wallet (Trang 36)

4. Bảo mật trong thương mại di động

4.2 Mã hóa đối xứng (Symmetric Encryption)

Mã hóa là phương thức dùng để ám chỉ việc bảo vệ dữ liệu bằng cách thay đổi nó về dạng không thể hiểu được. Mã hóa đối xứng cũng được gọi là mã hóa private key hay mã hóa secret key. Nó sử dụng một chìa khoá duy nhất để mã hoá và giải mã dữ liệu (được thể hiện dưới hình dưới). Khi một mã hóa đối xứng được sử dụng cho files trên một ổ cứng, user thực hiện mã hoá với một secret key. Khi một giao tiếp được sử dụng mã hoá đối xứng, hai giao tiếp sẽ chia sẻ nhau cùng một mật mã để mã hoá và giải mã gói tin.

Sinh viên thực hiện: Lê Sỹ Đức - Khóa K50 - Lớp CNPM 37

Hình 14. Mã hóa đối xứng

Phương thức mã hóa đối xứng được thực hiện nhanh hơn rất nhiều so với quá trình sử dụng mã hóa bất đối xứng. Với tốc độ nhanh nên thuật toán này được thiết kế chỉ một key trong quá trình mã hoá và giải mã dữ liệu.

Mã hóa đối xứng cung cấp một giải pháp mã hoá mạnh mẽ bảo vệ dữ liệu bằng một key lớn được sử dụng. Tuy nhiên, để bảo vệ các keys này ta luôn luôn phải lưu giữ chúng và được gọi là private key. Nếu key này bị mất hay bị lộ, khi đó sẽ không đảm bảo tính bảo mật của dữ liệu nữa. (Tương tự như một ngôi nhà có một chiếc chìa khoá để khoá cửa, khoá của ngôi nhà có thể rất phức tạp và không cưa nổi, nhưng điều gì sẽ xảy ra nếu kẻ trộm làm ra được một chiếc chìa khoá tương tự như vậy).

Và một tình huống khác đó là trong quá trình truyền thông tin của Key giữa các máy tính … đó cũng là một vấn đề. Để sử dụng mật mã đối xứng để mã hoá các giao tiếp giữa người A và người B trên internet, người A phải chắc một điều rằng việc bảo mật quá trình truyền keys trên mạng cần phải được đảm bảo. Nếu A chắc chắn rằng việc truyền dữ liệu về key được đảm bảo, vậy A sử dụng phương thức mã hoá nào cho việc truyền key đó trên mạng. Giải pháp là key được truyền tới người B không qua con đường internet, có thể chứa trong đĩa CD và chuyển theo đường bưu điện, hay viết tay gửi thư… Rồi người B và A sử dụng key đó để mã hoá dữ liệu và giải mã trong quá trình truyền thông tin.

Tuy nhiên A có thể sử dụng một giải pháp thông minh hơn đó là Public Key Infrastructure (PKI) giải pháp được sử dụng kết hợp với mã hóa đối xứng trong quá trình truyền thông tin keys. Việc truyền thông tin key bằng việc sử dụng một mã hoá để truyền với sử dụng một phiên truyền thông tin duy nhất. Hiểu, sử dụng và

Sinh viên thực hiện: Lê Sỹ Đức - Khóa K50 - Lớp CNPM 38

triển khai sử dụng PKI không đơn giản và có nhiều giải pháp của nhiều nhà sản xuất khác nhau.

Mật mã đối xứng được chia làm hai dạng:

a. Block cipher

Block cipher là một giải pháp hoạt dộng chống lại sự hạn chế của dữ liệu tĩnh. Dữ liệu được chia ra thành các blocks với size cụ thể và mỗi blocks được mã hoá một cách khác nhau.

b. Stream cipher

Stream cipher là giải pháp hoạt động chống lại dữ liệu luôn luôn sử dụng một phương thức để truyền. Một vùng đệm, ít nhất bằng một block, đợi cho toàn bộ thông tin của block đó được chứa trong vùng đệm sau đó block đó sẽ được mã hoá rồi truyền cho người nhận. Một sự khác nhau cơ bản giữa dữ liệu được truyền và dữ liệu nguyên bản. Không như giải pháp sử dụng mật mã đối xứng là mỗi block được sử dụng một key khác nhau trong quá trình truyền thông tin.

Dưới đây là các giải pháp mật mã đối xứng hay sử dụng nhất:

Bảng 2. Các thuật toán mã hóa đối xứng hay sử dụng 4.3 Mã hóa bất đối xứng (Asymmetric Encryption)

Mật mã bất đối xứng hay còn gọi là mã hoá sử dụng public key. Nó sử dụng một cặp key đó là public key và private key thể hiển hình dưới đây. Trong mỗi quá trình truyền thông tin sử dụng mật mã bất đối xứng chúng cần một cặp key duy nhất. Nó tạo ra khả năng có thể sử dụng linh hoạt và phát triển trong tương lai hơn là giải pháp mật mã đối xứng. Private key cần phải giữ riêng và đảm bảo tính bảo mật và nó không truyền trên mạng. Public key được cung cấp miễn phí và được public cho mọi người.

Sinh viên thực hiện: Lê Sỹ Đức - Khóa K50 - Lớp CNPM 39

Ví dụ, khi Alice muốn gửi thông tin cho Bob, Alice sử dụng public key của Bob để mã hóa thông tin rồi gửi cho Bob. Khi Bob nhận thông tin đã được mã hóa của Alice sẽ giải mã thông tin bằng Pivate key của mình.

Mật mã bất đối xứng hoạt động chậm hơn phương thức mật mã đối xứng, không phải nó mã hoá một khối lượng dữ liệu lớn. Nó thường được sử dụng để bảo mật quá trình truyền key của mật mã đối xứng. Nó cung cấp bảo mật cho quá trình truyền thông tin bằng các dịch vụ: Authentication, Integrity, Protection, và Nonrepudiation.

Hình 15. Mã hóa bất đối xứng

Phương thức mật mã bất đối xứng sử dụng: - Rivest Shamir Adleman (RSA)

- Diffie-Hellman

- Error Correcting Code (ECC) - El Gamal

Sinh viên thực hiện: Lê Sỹ Đức - Khóa K50 - Lớp CNPM 40

4.4 Mô hình Hybrid/Session key System

Hình 16. Mô hình Hybrid system

Để tận dụng được tốc độ của mã hóa đối xứng và sức mạnh của mã hóa bất đối xứng, ta sử dụng mô hình Hybrid system. Trong đó gồm 2 bước:

- Trao đổi khóa bí mật: Sử dụng mã hóa bất đối xứng để trao đổi khóa bí mật. Khóa do bên A sinh ra, được mã hóa bằng public key của B và gửi cho B, B sử dụng private key của mình để giải mã và nhận khóa bí mật

- Trao đổi thông tin: Từ bước sau, khóa bí mật sẽ được dùng để trao đổi thông tin, sử dụng mã hóa đối xứng.

Như vậy, mã hóa bất đối xứng sẽ chỉ phải sử dụng một lần, giúp làm tăng tốc độ của hệ thống, tiết kiệm tài nguyên mà vẫn đảm bảo tính bảo mật của mã hóa bất đối xứng.

Sử dụng mô hình Hybrid system có thể chống lại được việc đánh cắp thông tin cũng như là che dấu thông tin, nhưng lại chưa chắc chắn được tính toán toàn vẹn của thông tin. Một kẻ tấn công man-in-the-midle M có thể bắt được các gói tin mà A gửi cho B đồng thời dùng khóa công khai của B để giả mạo 1 gói tin khác và gửi cho B. Để khắc phục điều này, hệ thống sử dụng MAC để đảm bảo tính toàn vẹn dữ liệu. MAC là một message digest được sinh ra khi dùng hàm băm 1 chiều băm bản tin cùng với session key. MAC sẽ được gửi kèm theo gói tin và khi B nhận được cũng băm bản tin và session key để verify tính toàn vẹn dữ liệu.

Sinh viên thực hiện: Lê Sỹ Đức - Khóa K50 - Lớp CNPM 41

Hình 17. Mô hình Hybrid System với MAC

Nên nhớ rằng Hybrid system không phải là thuốc chữa bách bệnh. Mô hình Session key được coi là bảo mật hơn Hybrid system, trong đó client cũng có 1 cặp key công khai riêng, và khóa session được sinh từ 2 phía. Tức là khóa bí mật sẽ được sinh từ 2 thành phần, mỗi thành phần sẽ được một bên sinh ra. Điều này làm tăng thêm tính bảo mật của khóa bí mật.

Sinh viên thực hiện: Lê Sỹ Đức - Khóa K50 - Lớp CNPM 42

Public Key của B

Alice Bob

message Message encrypted message

Private Key của B

Public Key của B Private Key của B

Private Key của A Public Key của A

Session key Session key Session key Session key Session key Session key

Public Key của A Private Key của A

Session key Session key

Alice Bob

Hình 18. Mô hình session key

- Bước 1 : quá trình trao đổi khóa (Key agreement)

A sinh key thứ nhất, dùng public key của B để mã hóa key rồi gửi cho B, B dùng private key của mình để giải mã, lấy được key thứ nhất đồng thời sinh key thứ 2 rồi gửi cho A bằng cách dùng public key của A. A dùng private key của mình, giải mã để lấy được key thứ 2. Như vậy, khóa session là kết hợp của 2 key thứ nhất và thứ 2.

- Bước 2 : quá trình trao đổi thông tin. Các thông tin sẽ được mã hóa bằng khóa bí mật.

4.5 Chữ kí số (Digital Signature)

Chữ ký số (chữ kí điện tử) là mô hình đảm bảo an toàn dữ liệu khi truyền trên mạng và được sử dụng để tạo chứng nhận điện tử trong các giao dịch điện tử qua mạng Internet.

Sinh viên thực hiện: Lê Sỹ Đức - Khóa K50 - Lớp CNPM 43

Chữ ký điện tử (digital signature) là đoạn dữ liệu ngắn đính kèm với văn bản gốc để chứng thực tác giả của văn bản và giúp người nhận kiểm tra tính toàn vẹn của nội dung văn bản gốc.

Chữ ký điện tử được tạo ra bằng cách áp dụng thuật toán băm một chiều trên văn bản gốc để tạo ra bản phân tích văn bản (message digest) hay còn gọi là fingerprint, sau đó mã hóa bằng private key tạo ra chữ ký số đính kèm với văn bản gốc để gửi đi. Khi nhận, văn bản được tách làm 2 phần, phần văn bản gốc được tính lại fingerprint để so sánh với fingerprint cũ cũng được phục hồi từ việc giải mã chữ ký số (xem hình dưới).

Hình 19. Cách tạo chữ kí số

Các bước kiểm tra:

1. Dùng public key của người gửi (khóa này được thông báo đến mọi người) để giải mã chữ ký số của message.

2. Dùng giải thuật (MD5 hoặc SHA) băm message đính kèm.

3. So sánh kết quả thu được ở bước 1 và 2. Nếu trùng nhau, ta kết luận message này không bị thay đổi trong quá trình truyền và message này là của người gửi.

4.6 Chứng nhận số (Digital Certificate) và tổ chức chứng nhận số (Certificate Authority) (Certificate Authority)

Hãy xem ví dụ A muốn gửi thông điệp cho B và mã hóa theo phương pháp khóa công khai. Lúc này A cần phải mã hóa thông điệp bằng public key của B. Trường hợp public key bị giả mạo thì sao? Hacker có thể tự sinh ra một cặp khóa public key/private key, sau đó đưa cho A khóa public key này và nói đây là khóa

Sinh viên thực hiện: Lê Sỹ Đức - Khóa K50 - Lớp CNPM 44

public key của B. Nếu A dùng public key giả này mà tưởng là của B thì dẫn đến hệ quả mọi thông tin A truyền đi đều bị hacker đọc được.

Vấn đề này được giải quyết nếu có một bên thứ ba được tin cậy, gọi là C, đứng ra chứng nhận public key. Những public key đã được C chứng nhận gọi là chứng nhận điện tử (public key certificate hay digital certificate).

Hình 20. Chứng nhận số

Một chứng nhận điện tử có thể được xem như là một “hộ chiếu” hay “chứng minh thư”. Nó được một tổ chức tin cậy (như VeriSign, Entrust, CyberTrust, v.v...) tạo ra. Tổ chức này được gọi là tổ chức chứng nhận khóa công khai Certificate Authority (CA). Một khi public key đã được CA chứng nhận thì có thể dùng khóa đó để trao đổi dữ liệu trên mạng với mức độ bảo mật cao.

Cấu trúc của một chứng nhận điện tử gồm các thành phần chính như sau: Issuer: tên của CA tạo ra chứng nhận.

Period of validity: ngày hết hạn của chứng nhận.

Subject: bao gồm những thông tin về thực thể được chứng nhận. Public key: khóa công khai được chứng nhận.

Signature: do private key của CA tạo ra và đảm bảo giá trị của chứng nhận.

4.7 Public key infrastructure (PKI)

Trong mật mã học, hạ tầng khóa công khai (tiếng Anh: Public key infrastructure, viết tắt PKI) là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực số) cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin. Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ

Sinh viên thực hiện: Lê Sỹ Đức - Khóa K50 - Lớp CNPM 45

thống một cặp khóa công khai/khóa bí mật. Các quá trình này thường được thực hiện bởi một phần mềm đặt tại trung tâm và các phần mềm phối hợp khác tại các địa điểm của người dùng. Khóa công khai thường được phân phối trong chứng thực khóa công khai.

Khái niệm hạ tầng khóa công khai (PKI) thường được dùng để chỉ toàn bộ hệ thống bao gồm nhà cung cấp chứng thực số (CA) cùng các cơ chế liên quan đồng thời với toàn bộ việc sử dụng các thuật toán mật mã hóa khóa công khai trong trao đổi thông tin. Tuy nhiên phần sau được bao gồm không hoàn toàn chính xác bởi vì các cơ chế trong PKI không nhất thiết sử dụng các thuật toán mã hóa khóa công khai.

PKI cho phép những người tham gia xác thực lẫn nhau và sử dụng thông tin từ các chứng thực khóa công khai để mật mã hóa và giải mã thông tin trong quá trình trao đổi. Thông thường, PKI bao gồm phần mềm máy khách (client), phần mềm máy chủ (server), phần cứng (như thẻ thông minh) và các quy trình hoạt động liên quan. Người sử dụng cũng có thể ký các văn bản điện tử với khóa bí mật của mình và mọi người đều có thể kiểm tra với khóa công khai của người đó. PKI cho phép các giao dịch điện tử được diễn ra đảm bảo tính bí mật, toàn vẹn và xác thực lẫn nhau mà không cần phải trao đổi các thông tin mật từ trước.

Hầu hết các hệ thống PKI quy mô doanh nghiệp đều dựa trên các chuỗi chứng thực để xác thực các thực thể. Chứng thực của người dùng sẽ được một nhà cung cấp chứng thực số cấp, đến lượt nhà cung cấp này lại có chứng thực được một nhà cung cấp khác ở cấp cao hơn tạo ra... Hệ thống sẽ bao gồm nhiều máy tính thuộc nhiều tổ chức khác nhau với các gói phần mềm tương thích từ nhiều nguồn khác nhau. Vì vậy, các tiêu chuẩn là yếu tố rất quan trọng đối với hoạt động của các PKI. Hầu hết các tiêu chuẩn về PKI hiện tại được soạn thảo bởi nhóm làm việc PKIX của IETF.

Các hệ thống PKI doanh nghiệp thường được tổ chức theo mô hình danh bạ trong đó khóa công khai của mỗi người dùng được lưu trữ (bên trong các chứng thực số) kèm với các thông tin cá nhân (số điện thoại, email, địa chỉ, nơi làm việc...). Hiện nay, công nghệ danh bạ tiên tiến nhất là LDAP và định dạng chứng thực phổ biến nhất (X.509) cũng được phát triển từ mô hình tiền nhiệm của LDAP (X.500).

4.8 One time password (OTP)

Xuất hiện từ đầu thế kỉ 20 và còn có tên gọi khác là Vernam Cipher, OTP được mệnh danh là cái chén thánh của ngành mã hóa dữ liệu. OTP là thuật toán duy

Sinh viên thực hiện: Lê Sỹ Đức - Khóa K50 - Lớp CNPM 46

nhất chứng minh được về lý thuyết là không thể phá được ngay cả với tài nguyên vô tận (tức là có thể chống lại kiểu tấn công brute-force). Để có thể đạt được mức độ bảo mật của OTP, tất cả những điều kiện sau phải được thỏa mãn:

- Độ dài của chìa khóa phải đúng bằng độ dài văn bản cần mã hóa. - Chìa khóa chỉ được dùng một lần.

- Chìa khóa phải là một số ngẫu nhiên thực.

Mới nghe qua có vẻ đơn giản nhưng trong thực tế những điều kiện này khó có thể thỏa mãn được. Giả sử Alice muốn mã hóa chỉ 10MB dữ liệu bằng OTP, cô ta phải cần một chìa khóa có độ dài 10MB. Để tạo ra một số ngẫu nhiên lớn như vậy Alice cần một bộ tạo số ngẫu nhiên thực (TRNG - True Random Number Generator). Các thiết bị này sử dụng nguồn ngẫu nhiên vật lý như sự phân rã hạt nhân hay bức xạ nền vũ trụ. Hơn nữa việc lưu trữ, chuyển giao và bảo vệ một chìa khóa như vậy cũng hết sức khó khăn.

OTP ngày nay được sử dụng rộng rãi và khá quen thuộc trong các giao dịch điện tử. Ví dụ một giao dịch chuyển tiền qua điện thoại thì trước khi giao dịch được

Một phần của tài liệu Dịch vụ mobile wallet (Trang 36)