Số 12
HỒ LÔ BIẾN

CHỨNG THƯ ĐIỆN TỬ: "Từ khi trăng là nguyệt"

(tiếp theo)
HOÀNG NGỌC GIAO (SAMIS)

Bạn thử hình dung: Mỗi cá nhân, mỗi tổ chức có một cặp khóa, khóa công khai để tạo mật mã và khóa bí mật tương ứng để giải mật mã. Ta có thể dùng khóa công khai của tổ chức ấy (vì là “công khai” mà) để tạo mật mã gởi đến cho họ. Do bên nhận có sẵn “bửu bối” là khóa giải mật mã, chỉ có họ mới đọc được thông điệp của bạn. Ngược lại, người ta có thể dùng khóa công khai của bạn để gửi thư mật mã cho bạn. Vì chỉ riêng bạn có khóa bí mật tương ứng với khóa công khai đã dùng, không ai có thể đọc được thư ấy ngoài bạn. Chính vì sự thuận tiện này mà việc tạo mật mã bằng khóa công khai trở nên phổ biến trong môi trường truyền thông mở rộng như Internet. Hai bên đối thoại không quen biết nhau từ trước vẫn có thể thiết lập ngay liên lạc riêng tư, bí mật nếu cần.

Chữ ký thời “điện tử”

Trong môi trường mạng, giải thuật mật mã với khóa công khai không chỉ dùng vào việc bảo vệ tính bí mật của dữ liệu mà còn là phương tiện để bảo vệ tính xác thực của dữ liệu, ngăn chặn sự giả mạo, sự “cạo sửa”. Khi viết thư trên giấy, bạn ký tên (hoặc... lăn tay, nếu cần) vào bức thư để người nhận biết rằng chính bạn, chứ không phải ai khác, đã viết bức thư. Với cách thức như vậy, ta cũng không thể chối bỏ bức thư mà mình đã viết. Đối với thông điệp mà bạn gửi qua mạng, cũng có một cơ chế để tạo ra “chữ ký” của riêng bạn mà người ta thường gọi là chữ ký số (digital signature) hoặc nói cho có vẻ... hiện đại là chữ ký điện tử. Cơ chế ấy như sau: Từ mỗi thông điệp luôn luôn có thể tính ra một trị số tương ứng duy nhất gọi là trị băm (hash value). Trị băm là đặc thù của thông điệp, giống như dấu tay của một người. Hai thông điệp khác nhau chắc chắn có trị băm khác nhau. Bằng cách so sánh trị băm ban đầu kèm theo thông điệp và trị băm được tính ra từ bản thân thông điệp, ta sẽ biết thông điệp ấy có bị sửa đổi, có bị “đục bỏ” hoặc thêm thắt chi không trên đường đi.

Tuy nhiên, trong thực tế mọi giải thuật tính toán trị băm đều được công bố rộng rãi, không có chi bí mật. Do vậy, nếu ai đó sửa đổi thông điệp do bạn gửi đi thì rất có thể họ sẽ tìm cách sửa luôn trị băm đính kèm cho phù hợp, làm cho ta không phát hiện được sự sửa đổi. Bạn thử nghĩ xem, ta cần làm gì để bảo vệ “trị băm ban đầu”?

Người ta đã tìm ra một giải pháp: Mật mã hóa trị băm kèm theo thông điệp bằng giải thuật khóa công khai. Cụ thể là bên gửi dùng khóa bí mật để mật mã hóa trị băm của thông điệp và bên nhận dùng khóa công khai để giải mật mã đó. Bạn chú ý một chút, kẻo nhầm lẫn: Giải pháp vừa nêu ngược với trường hợp mật mã hóa bản thân thông điệp, trong đó khóa công khai dùng để tạo mật mã ở bên gửi và khóa bí mật dùng để giải mật mã ở bên nhận. Hiển nhiên, trong mọi trường hợp chỉ có chủ nhân khóa bí mật là người sử dụng nó.

Vì không biết khóa bí mật, “kẻ gian” sẽ không thể tạo ra trị băm phù hợp cho thông điệp giả mạo. Trị băm ở dạng mật mã được bạn gửi kèm theo thông điệp của mình có vai trò giống như chữ ký của riêng bạn, người khác không thể “nhái” được. “Chữ ký điện tử” là như thế.

Cụ thể, cách thức sử dụng chữ ký điện tử như sau. Trước khi gửi thông điệp, ta “ký tên” qua các bước:

1. Tính trị băm của thông điệp.

2. Mật mã hóa trị băm bằng khóa bí mật, lấy từ cặp khóa bí mật-công khai của bạn.

Sau khi nhận thông điệp, đối tác của bạn kiểm tra chữ ký trên thông điệp ấy qua các bước:

1. Dùng khóa công khai của bạn giải mật mã để tìm lại trị băm ban đầu.

2. So sánh trị băm thu được với trị băm được tính ra từ bản thân thông điệp đã nhận.

3. Nếu hai trị băm trùng nhau thì kết luận chắc chắn rằng thông điệp ấy do chính bạn gởi đi, không bị sửa đổi, không phải giả mạo. Nếu hai trị băm khác nhau, chắc chắn có chuyện “chẳng lành” chi đó trên đường truyền (Hình 1).

Trị băm ở dạng mật mã của thông điệp, thứ được mệnh danh là chữ ký điện tử, có vai trò chứng thực rất giống với chữ ký trên thư viết tay thông thường, thể hiện qua các yếu tố:

* Không giả mạo được: “Chữ ký” của bạn được tạo nên bằng khóa bí mật. Chỉ có bạn mới tạo ra được “chữ ký” như vậy.

* Kiểm tra được: Người nhận thông điệp biết được “chữ ký” kèm theo thông điệp là của chính bạn nhờ khóa công khai tương ứng với khóa bí mật của bạn.

* Chỉ dùng một lần: “Chữ ký” chỉ có hiệu lực cho một thông điệp duy nhất. Không thể sao chép “chữ ký” ấy để dùng cho thông điệp khác.

* Không chối bỏ được: Bạn không thể chối bỏ “chữ ký” của mình, cho rằng đấy là giả mạo (trừ khi bạn có bằng chứng rằng khóa bí mật của mình bị mất cắp).

* Dùng để niêm phong: Thông điệp có “chữ ký” của bạn xem như được niêm phong. Bản thân thông điệp hoặc “chữ ký” sẽ hư hỏng nếu bị sửa đổi.

Do vậy, chữ ký điện tử rồi sẽ trở thành điều bình thường trong cuộc sống. Nếu không sợ nhầm lẫn, ta có thể gọi “chữ ký điện tử” là “chữ ký” cho ngắn gọn.

[Đầu trang]

Niềm tin thời “điện tử”

Đối với chữ ký trên giấy, nhận dạng chữ ký có khi là vấn đề không nhỏ. Nếu người nhận thư của bạn là người thân thiết, người ấy biết rõ chữ ký của bạn từ lâu và nhận ra ngay chữ ký trong thư không phải giả mạo. Tuy nhiên, nếu người nhận thư là người chưa từng quen biết với bạn, có khả năng xảy ra trường hợp: người ấy nhận thư của người khác mạo nhận là bạn. Bức thư giả danh dĩ nhiên “có vấn đề”. Người nhận thư sẽ “đùng đùng” cầm bức thư ấy đi tìm bạn cho bằng được để... mắng vốn (giống như trò đùa thời học sinh, một bức thư tỏ tình ly kỳ gởi cho “nàng” học khác lớp do tên “quỷ sứ” nào đó bày ra, giả mạo chữ ký của bạn).

Cũng có vấn đề tương tự đối với chữ ký điện tử trong thông điệp gởi qua mạng. Nếu hai bên đối thoại đã từng quen biết, bên nhận có sẵn khóa công khai của bên gởi, thì mọi chuyện đều ổn. Bạn thử hình dung, khi hai bên không quen biết nhau (như khi... “tìm bạn phương xa” trên mạng), cho dù bên nhận đã giải mật mã đối với chữ ký bằng khóa công khai đính kèm và không thấy chi lạ, vẫn phải đặt ra vấn đề: Làm sao biết khóa công khai ấy thực sự của ai? Thông điệp gởi đến tuy không bị sửa đổi trên đường đi nhưng có thể là thông điệp giả mạo hoàn toàn. Để nhận biết chữ ký trên thư tỏ tình chắc chắn là của “người ấy”, người nhận thư tỉnh táo nghĩ ngay đến chuyện tìm người tin cậy biết rõ “đương sự” để hỏi. Đối với khóa công khai dùng để giải mật mã cho chữ ký, giải pháp như vậy cũng được áp dụng. Cần có một bên thứ ba đáng tin cậy biết rõ khóa công khai của bên gởi. Bên thứ ba ấy chính là CA (Certification Authority), một cơ quan có tư cách pháp nhân thường xuyên tiếp nhận đăng ký khóa công khai và lưu trữ khóa công khai cùng lý lịch của chủ thể trong một cơ sở dữ liệu được bảo vệ chặt chẽ. CA chuyên nghiệp không nhất thiết là cơ quan nhà nước. Điều quan trọng nhất của một CA là uy tín để khẳng định sự thật, bảo đảm không thể có chuyện “đổi trắng thay đen”.

Khi nhận thư của người lạ có kèm khóa công khai để đọc chữ ký. Nếu chữ ký chứng tỏ bức thư do chính chủ nhân của khóa công khai ấy gửi đi, bạn có thể liên lạc với CA để tìm hiểu xem khóa công khai ấy thực sự của ai. Chủ nhân khóa công khai không thể chối bỏ bức thư của họ. Nếu khóa công khai không được chứng nhận bởi CA nào cả, bạn nên... quên bức thư ấy đi, nó không có giá trị gì khi chủ nhân của nó không dám lộ mặt. Nhờ có CA, không ai có thể giả danh... Microsoft hay IBM để gởi thông điệp “làm ăn” đến người khác. “Trò xưa đã khép” cho những vụ ném đá giấu tay!

[Đầu trang]

“Từ khi trăng là nguyệt”

Như đã trình bày, việc thực hiện giao dịch mua bán qua mạng chỉ an toàn khi thông tin quan trọng được gửi đi từ trình duyệt của khách theo giao thức bảo mật HTTPS. Trong giao thức bảo mật, phía chủ nhất thiết phải có chứng thư điện tử (digital certificate) để phía khách kiểm tra. Chứng thư ấy thực chất là một thông điệp chứa khóa công khai của phía chủ, được xác nhận bằng chữ ký của CA. Để trình duyệt đọc được chữ ký của CA, chứng thư cũng chứa khóa công khai của CA. Với CA có uy tín, trình duyệt nhận ra ngay khóa công khai ấy là đúng. Nếu không thể nhận biết CA, trình duyệt sẽ báo động cho khách.

Khi việc kiểm tra chứng thư hoàn thành suôn sẻ, khách đã nhận diện được chủ, hai bên “nhìn nhau” rõ ràng, trình duyệt sẽ sản sinh khóa bí mật ở phía khách (dưới dạng một dãy số ngẫu nhiên), dùng khóa công khai của phía chủ để mật mã hóa bản thân khóa bí mật ấy và gửi cho phía chủ. Sau khi phía chủ nhận được khóa bí mật của khách, khóa bí mật ấy bắt đầu được dùng để mật mã hóa dữ liệu trao đổi qua lại giữa hai bên. Bạn để ý, dữ liệu trao đổi trong giao thức HTTPS được mật mã hóa bằng giải thuật khóa bí mật, nghĩa là dùng một khóa duy nhất vừa để mật mã hóa, vừa để giải mật mã. Giải thuật khóa bí mật thích hợp với khối dữ liệu lớn, không làm máy tính “mệt óc” như giải thuật khóa công khai.

Xin nhắc bạn rằng quy trình làm việc như trên diễn ra hoàn toàn tự động giữa trình duyệt web và trình chủ web. Quy trình ấy có lẽ minh bạch, thẳng thắn và an toàn hơn cả giao dịch trực diện. Khi con người làm việc với nhau, vì “tế nhị”, bên này có thể ngần ngại, không yêu cầu bên kia xuất trình đầy đủ giấy tờ để chứng minh họ là ai. Giao thức bảo mật trên mạng không có chỗ cho sự “tế nhị” phiền phức ấy.

Nếu bạn có ý định lên mạng “mở tiệm”, địa chỉ mạng của bạn cần có chứng thư điện tử được cấp bởi một CA có uy tín. Những cửa hàng “điện tử” chấp nhận chi trả qua mạng thường chứng tỏ sự nghiêm túc của họ bằng cách cho phép khách bấm nút nào đó để xem chứng thư của họ bất cứ lúc nào (ví như giấy tờ pháp lý của một công ty được trưng bày ngay cửa ra vào trụ sở!).

Khi bạn yêu cầu một CA cấp chứng thư cho địa chỉ mạng của mình, họ sẽ “điều tra” kỹ càng để biết rõ địa chỉ mạng mà bạn đăng ký có thực sự thuộc về bạn và để bảo đảm bạn chính là... bạn (với “tên tuổi” mà bạn đưa ra). Sau thủ tục “nhận diện”, CA cung cấp cho bạn công cụ để tạo cặp khóa công khai bí mật. Cặp khóa công khai-bí mật được sản sinh dựa vào những thông tin hoàn toàn riêng tư của bạn, do đó không thể trùng với cặp khóa của người khác.

Bạn phải giữ kín khóa bí mật của mình (vì là bí mật mà!) và chỉ gửi khóa công khai cho CA. Sau đó, CA sẽ cấp chứng thư cho bạn dưới dạng một tập tin. Chứng thư chứa khóa công khai của bạn và chữ ký xác nhận của CA. Khâu cuối cùng là công việc của bạn: Cài đặt chứng thư vào trình chủ web để có thể bắt đầu thực hiện những giao dịch bảo mật theo giao thức HTTPS (thao tác này khác nhau đối với các trình chủ web khác nhau và CA sẽ hướng dẫn bạn thực hiện). Một khi đã được xác nhận “ta là mình”, ta phải chịu trách nhiệm hoàn toàn về hành động của mình.

Ở nước ta hiện nay, nền móng cho giao dịch điện tử còn rất sơ khai về mọi mặt. Tuy nhiên, con đường “điện tử hóa” gần như là lộ trình bắt buộc, tựa như ta không thể đứng ngoài hệ thống mã vạch và những tiêu chuẩn ISO.

Hình 1: Các bước tạo lập thông điệp có chữ ký điện tử ở nơi gửi và các bước kiểm tra thông điệp có chữ ký điện tử ở nơi nhận.

[Đầu trang]
Trang chủ
Thư ngỏ
Nội lực "Peter Pan"
Cầu nối Intel Việt Nam
Chuyện trong tuần
Nhóm Frontpage
Cõi người ta
Kim cương doanh nghiệp
Bình luận thị trường
Cõi Mô-bai
Chuyên đề
Bổ ngửa
Nuôi hồn Robot
Túi càn khôn IT
Hồ lô biến
Cảm về Game
Nhật ký e-CHÍP
Bản quyền VASC Orient, Công ty phát triển phần mềm VASC
99 Triệu Việt Vương HN; Tel: (04) 9782235 • email: echip@vasc.com.vn