(Post 04/04/2006) 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.
1. 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ư:
- 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.
2. 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...
3. PHƯƠNG PHÁP MÃ HÓA DỮ LIỆU
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). |
|
Mã hóa khóa bí mật
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.
Hình 2:
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). |
|
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ỏ.
4. 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.
Hình 3: Mô hình chữ
ký điện tử |
|
5. 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.
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
|
Thiều Quang Trung
(theo PCWorld VN)
|