• Thứ Tư, 27/04/2005 14:39 (GMT+7)

    Chữ ký điện tử: Đảm bảo an toàn dữ liệu truyền trên mạng

    Nguy cơ bị thay đổi, sao chép hoặc mất dữ liệu trên mạng thật sự là một trở ngại trong giao dịch điện tử. 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.

    Nguy cơ bị thay đổi, sao chép hoặc mất dữ liệu trên mạng thật sự là một trở ngại trong giao dịch điện tử. Vì thế, bảo đảm tính toàn vẹn dữ liệu là một phần trong các biện pháp đảm bảo an toàn thông tin theo chuẩn ISO 17799.

    THẾ NÀO LÀ MỘT HỆ THỐNG AN TOÀN THÔNG TIN?

    Thanh toán bằng thẻ tín dụng qua dịch vụ web có thể gặp các rủi ro như:

     

    Hình 1: Mã hóa và giải mã theo phương pháp mã hóa khóa bí mật (mã hóa đối xứng).

    Thông tin truyền từ trình duyệt web của khách hàng ở dạng thuần văn bản nên có thể bị lọt vào 'con mắt' người khác .

    Trình duyệt web của khách hàng không thể xác định máy chủ mà mình trao đổi thông tin là thật hay giả mạo.

    Không thể đảm bảo được thông tin truyền đi có bị thay đổi hay không.

    Vì vậy cần phải có một cơ chế bảo đảm an toàn trong quá trình giao dịch điện tử. Một hệ thống thông tin trao đổi dữ liệu an toàn phải đáp ứng các yêu cầu sau:

    Hệ thống phải đảm bảo dữ liệu trong quá trình truyền đi không bị đánh cắp.

    Hệ thống phải có khả năng xác thực, tránh trường hợp giả danh, mạo nhận.

    Hệ thống phải có khả năng kiểm tra tính toàn vẹn dữ liệu.

    GIAO THỨC SSL

    Giao thức SSL (Secure Socket Layer) tổ hợp nhiều giải thuật mã hóa nhằm đảm bảo quá trình trao đổi thông tin trên mạng được bảo mật. Việc mã hóa dữ liệu diễn ra một cách trong suốt, hỗ trợ nhiều giao thức khác chạy trên nền giao thức TCP.

    Cơ chế hoạt động của giao thức SSL dựa trên nền tảng các ứng dụng mã hóa đã được kiểm chứng như: giải thuật mã hóa đối xứng và bất đối xứng, giải thuật băm (hash) một chiều, giải thuật tạo chữ ký số, v.v...

    PHƯƠNG PHÁP MÃ Hóa DỮ LIỆU

    Mã hóa khóa bí mật

    Hình 1: Mã hóa và giải mã theo phương pháp mã hóa khóa công khai (mã hóa bất đối xứng).

     

    Phương pháp mã hóa khóa bí mật (secret key cryptography) còn được gọi là mã hóa đối xứng (symmetric cryptography). Với phương pháp này (xem hình 1), người gửi và người nhận sẽ dùng chung một khóa để mã hóa và giải mã dữ liệu. Trước khi mã hóa dữ liệu để truyền đi trên mạng, hai bên gửi và nhận phải có khóa và phải thống nhất thuật toán dùng để mã hóa và giải mã. Có nhiều thuật toán ứng dụng cho mã hóa khóa bí mật như: DES - Data Encrytion Standard, 3DES - triple-strength DES, RC2 – Rons Cipher 2 và RC4, v.v...

    Nhận xét: Nhược điểm chính của phương pháp này là khóa được truyền trên môi trường mạng nên tính bảo mật không cao. Ưu điểm là tốc độ mã hóa và giải mã rất nhanh.

    Mã hóa khóa công khai

    Phương pháp mã hóa khóa công khai (public key cryptography) đã giải quyết được vấn đề của phương pháp mã hóa khóa bí mật là sử dụng hai khóa public key và private key. Public key được gửi công khai trên mạng, trong khi đó private key được giữ kín. Public key và private key có vai trò trái ngược nhau, một khóa dùng để mã hóa và khóa kia sẽ dùng để giải mã (xem hình 2).

    Phương pháp này còn được gọi là mã hóa bất đối xứng (asymmetric cryptography) vì nó sử dụng hai khóa khác nhau để mã hóa và giải mã dữ liệu. Phương pháp này sử dụng thuật toán mã hóa RSA (tên của ba nhà phát minh ra nó: Ron Rivest, Adi Shamir và Leonard Adleman) và thuật toán DH (Diffie-Hellman).

    Giả sử B muốn gửi cho A một thông điệp bí mật sử dụng phương pháp mã hóa khóa công khai. Ban đầu, A có cả private key và public key. A sẽ giữ private key ở nơi an toàn và gửi public key cho B. B mã hóa và gửi cho A thông điệp đã mã hóa bằng public key nhận được của A. Sau đó A sẽ giải mã thông điệp bằng private key của mình. Ngược lại nếu A muốn gửi thông điệp cho B thì A phải mã hóa thông điệp bằng public key của B.

    Nhận xét: Phương pháp cho phép trao đổi khóa một cách dễ dàng và tiện lợi. Tuy nhiên, tốc độ mã hóa khá chậm nên chỉ được sử dụng cho mẩu dữ liệu nhỏ.

    TỔ CHỨC CHỨNG NHẬN KHÓA CÔNG KHAI

    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 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).

    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.

    5. CHỮ KÝ ĐIỆN TỬ

                          Hình 3: Mô hình chữ ký điện tử

     

    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 3).

    Các bước mã hóa:

    1. Dùng giải thuật băm để thay đổi thông điệp cần truyền đi. Kết quả ta được một message digest. Dùng giải thuật MD5 (Message Digest 5) ta được digest có chiều dài 128-bit, dùng giải thuật SHA (Secure Hash Algorithm) ta có chiều dài 160-bit.

    2. Sử dụng khóa private key của người gửi để mã hóa message digest thu được ở bước 1. Thông thường ở bước này ta dùng giải thuật RSA. Kết quả thu được gọi là digital signature của message ban đầu.

    3. Gộp digital signature vào message ban đầu. Công việc này gọi là “ký nhận” vào message. Sau khi đã ký nhận vào message, mọi sự thay đổi trên message sẽ bị phát hiện trong giai đoạn kiểm tra. Ngoài ra, việc ký nhận này đảm bảo người nhận tin tưởng message này xuất phát từ người gửi chứ không phải là ai khác (xem hình 4).

    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.

    6. NHẬN XÉT VỀ ỨNG DỤNG CHỮ KÝ ĐIỆN TỬ

    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.

    Ví dụ A gửi đến tổ chức Certificate Authority yêu cầu cấp chứng nhận điện tử kèm theo khóa công khai của họ. Tổ chức CA sẽ “ký nhận” vào đó và cấp digital certificate cho A. Khách hàng này sẽ thông báo certificate của mình trên mạng. Giả sử có B muốn gửi cho A một message thì công việc đầu tiên B sẽ lấy certificate của A và kiểm tra tính hợp lệ của certificate. Nếu hợp lệ, B sẽ lấy public key trong digital certificate để mã hóa dữ liệu và gửi cho A.

    Thiều Quang Trung
    Bưu điện TP.HCM
    Email: trungthieu@hcmpt.com.vn

     

    Tài liệu tham khảo

     
     

    Các chuẩn mã khoá bảo mật công khai
    The ISO 17799 Security Standard
    Network Security, private communication in a Public World (Charlie Kaufman, Radia Perlman, Mike Speciner)
    www.pgp.com; www.rsa.com

     
    ID: A0503_96