|
||||||||
|
||||||||
|
|
Công Cụ | Xếp Bài |
24-02-2010, 09:45 PM | #1 |
Guest
Trả Lời: n/a
|
PKI & thương mại điện tử - Phần 2
PKI & thương mại điện tử - Phần 2 Phỏng dịch từ "PKI Implementing and Managing E-Security" - các tác giả: Andrew Nash, William Duane, Celia Joseph và Derek Brink Xin được khái quát những vấn đề đã trình bày ở phần 1. Ất và Bính muốn bảo vệ bí kiếp nấu bún mắm gia truyền, cụ thể là họ muốn bảo đảm những yếu tố sau: - Nếu bí kiếp lọt vào tay một người khác thì người đó cũng không thể đọc được. - Bí kiếp không bị thêm bớt hoặc sửa chữa. - Bí kiếp mà Bính nhận được là thực sự do Ất gửi. Nói một cách khác, thông tin trao đổi cần thỏa mãn những yếu tố: 1. Confidence: Riêng tư, bí mật. 2. Integrity: Toàn vẹn, không bị sửa đổi. 3. Authenticity / Non-repudiation: Có thể xác thực xuất xứ. Bằng biện pháp mã hóa bí kiếp kết hợp hai loại thuật toán đối xứng và bất đối xứng, họ đã đạt yếu tố "confidence". Tuy vậy vẫn còn 02 yếu tố phải giải quyết: "integrity" và "authenticity". PHẦN 2 - CHỮ KÝ SỐ(DIGITAL SIGNATURE) Hàm băm (Cryptographic hash function) Xin bạn yên tâm vì bài viết này không chứa yếu tố bạo lực. Hàm băm là cách mà dân IT Việt Nam thường dùng để gọi cryptographic hash function. Đây là một hàm khá phổ biến trong khoa học máy tính, thường được dùng nhất để tăng tốc quá trình xử lý chỉ mục của một mảng hoặc một cơ sở dữ liệu có dung lượng lớn. Trước khi nói đến chữ ký số, ta cần phải trao đổi đôi chút về hàm băm. Hàm băm nhận dữ liệu đầu vào là chuỗi ký tự có độ dài bất kỳ trong một thông điệp để kết xuất một chuỗi ký tự có độ dài xác định. Chuỗi kết quả thường có dung lượng nhỏ hơn rất nhiều lần so với thông điệp gốc. Thông điệp gốc thường được gọi là message. Chuỗi kết quả được gọi là digest (tạm dịch là cô đọng) hoặc digital fingerprint (dấu tay số) của thông điệp. Một hàm băm lý tưởng phải có 4 thuộc tính: 1- Có thể dễ dàng tính được digest của bất kỳ một message nào. 2- Không thể tìm được thông điệp gốc của một digest. 3- Không thể điều chỉnh thông điệp mà không làm thay đổi digest của nó. 4- Không thể tìm được 2 thông điệp khác nhau có digest giống nhau. Trích: Cũng như mọi phương tiện mã hóa khác, các hàm băm đã trải qua nhiều thử thách. Người ta đã tìm ra yếu điểm của hàm băm SHA-1 vào năm 2005 (Finding Collisions in the Full SHA-1 & Cryptanalysis of SHA-1) và yếu điểm của hàm băm MD5 vào năm 2008 (MD5 considered harmful today) Quá trình xây dựng các hàm băm thay thế vẫn đang diễn ra. Ví dụ người ta đang tổ chức cuộc thi thiết kế SHA-3, và cuộc thi này đã bước vào vòng 2: Cryptographic hash Algorithm Competition Hiện nay SHA-1 và MD5 vẫn là hai hàm băm thông dụng nhất. Dung lượng của digest là 160 bit khi dùng SHA-1 và là 128 bit khi dùng MD5. Diễn đạt một cách khác, người ta xem một hàm băm là lý tưởng khi thỏa 03 yêu cầu sau đây: - Preimage resistant (Kháng tiền ảnh): Cho trước một digest hm thì việc tìm ra thông điệp M sao cho hm = hash(M) là rất khó. - Second preimage resistant (Kháng tiền ảnh thứ hai): Cho trước một thông điệp M1 thì việc tìm ra một thông điệp M2 (khác với M1) sao cho hash(M1) = hash(M2) là rất khó. - Collision-resistant: (Kháng xung đột) việc tìm ra 2 thông điệp khác nhau M1 và M2 sao cho hash(M1) = hash(M2) là rất khó. Mục đích cuối cùng của những đòi hỏi này là khiến cho kẻ tấn công không thể thay đổi thông điệp (cho dù là thay đổi cực nhỏ) mà không làm thay đổi digest. Có thể tóm lược như sau: Click this bar to view the full image. Chữ ký số (Digital signature) Để dễ dàng tìm hiểu chữ ký số, tạm thời giả định rằng Bính không sợ người khác đọc bí kiếp (nghĩa là Ất có thể gửi bí kiếp ở dạng bạch văn) mà Bính chỉ muốn bảo đảm rằng bí kiếp thật sự do Ất gửi đến (chứ không phải do công ty sản xuất keo dính chuột gửi đến). Quá trình phát sinh chữ ký số như sơ đồ: Click this bar to view the full image. Ất hash bí kiếp, thu được digest của bí kiếp: Hash(M) -> Hm Ất mã hóa bất đối xứng digest của bí kiếp bằng mã khóa cá nhân của Ất (Qa của người gửi). Giá trị thu được là chữ ký số của Ất trên bí kiếp: Hm + Qa -> Sa/m Ất gửi Bính bi kiếp có kèm chữ ký số: M & Sa/m Khi nhận được bi kiếp có kèm chữ ký số của Ất, Bính sẽ tiến hành kiểm định: Click this bar to view the full image. Bính tách dữ liệu nhận được thành 2 phần: M' và S'a/m. M' (chứ không phải M) đại diện cho bí kiếp để thể hiện tình huống có thể bí kiếp đã không còn nguyên trạng như khi Ất gửi đi. S'a/m (chứ không phải Sa/m) đại diện cho chữ ký số để thể hiện tình huống có thể chữ ký ấy không phải do Ất thực hiện. Bính tra cứu mã khóa công khai của Ất (Pa của người gửi) trong danh bạ công cộng và dùng mã khóa công khai đó để giải mã S'a/m: Ta có thể gặp tình huống thứ nhất: Click this bar to view the full image. Nếu S'a/m không phải là Sa/m (không phải do Ất thực hiện - giả mạo chữ ký) thì Bính sẽ không thể giải mã được: S'a/m - Pa -> Không thể giải Lý do: Chữ ký số không do Ất thực hiện tức không phải là kết quả của quá trình mã hóa bất đối xứng bằng mã khóa cá nhân của Ất (Qa), vì thế không thể giải bằng mã khóa công khai của Ất (Pa). Trong tình huống này, Bính có thể kết luận ngay rằng bí kiếp này không phải do Ất gửi đến. Tình huống thứ hai: Click this bar to view the full image. Nếu S'a/m chính là Sa/m (do Ất thực hiện - là kết quả của quá trình mã hóa bằng mã khóa cá nhân của Ất - ) thì Bính sẽ chỉ có thể giải mã được bằng mã khóa công khai của Ất và kết quả phải là Hm: Sa/m - Pa -> Hm. Đến đây, Bính kết luận rằng thông tin nhận được thực sự là do Ất gửi. Bính sẽ tiếp tục kiểm chứng bí kiếp: Bính hash bí kiếp M' và thu được digest Hm'. Nếu bí kiếp đã bị sửa chữa hay thậm chí bị thay thế trong quá trình gửi đi, nghĩa là M' khác với M thì chắc chắn Hm' sẽ khác Hm. Ngược lại, nếu Hm' trùng với Hm thì Bính có thể kết luận rằng M' chính là M tức là bí kiếp vẫn ở nguyên trạng như khi Ất gửi đi. Ta có thể thấy rằng thông qua việc triển khai chữ ký số, Bính có thể xác thực nguồn gốc và sự toàn vẹn của bí kiếp: "authenticity" và "integrity". Vậy để bảo đảm cả 3 yếu tố confidence, integrity và authenticity, Ất và Bính có thể thực hiện như tóm lược trong 2 sơ đồ sau: 1. Ất thực hiện khi gửi bí kiếp: Click this bar to view the full image. Click this bar to view the full image. 2. Bính thực hiện khi nhận bí kiếp: Click this bar to view the full image. Click this bar to view the full image. Như vậy là mọi sự đã tốt đẹp hay chưa? Than ôi, "cuộc đời không như ước mơ lòng người"; "Diamond cut diamond". Ất và Bính rất có thể sẽ gặp phải một kẻ xấu cao tay ấn hơn nữa. Hãy cùng tôi quan sát xem một "đại ma đầu" có thể gây hại cho Ất và Bính thế nào. "Đại ma đầu" tất nhiên cũng có thể truy cập danh bạ công cộng và hắn tìm cách can thiệp vào dữ liệu danh bạ: 1. Thay thế mã khóa công khai của Ất (Pa) trong danh bạ công cộng bằng mã khóa công khai của hắn (Ph) 2. Mã hóa và ký chữ ký số vào bí kiếp sản xuất keo dính chuột. 3. Gửi phong bì số cho Bính. Chúng ta có thể hình dung quá trình thông qua 2 sơ đồ sau: Click this bar to view the full image. Click this bar to view the full image. Ta thấy rằng Bính đã dính một cú lừa ngoạn mục và hăng hái bắt tay chế biến món bún mắm cực kỳ kinh dị. Một vấn đề mới nảy sinh: Làm sao bảo đảm rằng mã khóa công khai của Ất trong danh bạ công cộng thực sự do chính Ất công bố và không bị ai sửa chữa? Nói một cách khác, vì mã khóa công khai - như tên gọi của nó - được phổ biến rộng rãi nên người ta buộc phải có giải pháp để bảo đảm xuất xứ và sự toàn vẹn của nó. Xin xem tiếp hồi sau sẽ rõ! Theo: Nhất Nghệ |
|
|