Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 72 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
72
Dung lượng
0,93 MB
Nội dung
ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN 2010 CHƯƠNG 15 BẢO MẬT THƯ ĐIỆN TỬ SVTH: HUỲNH THỊ NGỌC DUNG 07110024 HỒ NGUYÊN HÃN 07110038 NGUYỄN NHẬT HOÀNG 07110050 LÝ VÂN LONG 07110068 VĂN CÔNG NGUYÊN 07110082 NGUYỄN THỊ THANH THÚY 07110130 [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] Chương 15: BẢO MẬT THƯ ĐIỆN TỬ 15.1 Pretty Good Privacy (PGP): PGP tượng đáng ý Đây nỗ lực cá nhân lớn Phil Zimmermann, PGP cung cấp dịch vụ bảo mật xác thực sử dụng thư điện tử ứng dụng lưu trữ tập tin Về bản, Zimmermann làm điều sau đây: Chọn thuật tốn mã hóa thích hợp xem thành phần Tích hợp thuật tốn thành chương trình có nhiều cơng dụng, khơng phụ thuộc vào hệ điều hành xử lý dựa tập nhỏ lệnh dễ sử dụng Cấu tạo gói tài liệu nó, bao gồm mã nguồn, có sẵn miễn phí qua Internet, tin, mạng lưới thương mại AOL (America On Line) Tham gia vào hợp đồng với công ty (Viacrypt, Network Associates) cung cấp phiên thương mại tương thích đầy đủ giá hợp lý PGP PGP phát triển mạnh mẽ dùng rộng rãi Một số lý trích dẫn cho tăng trưởng này: Các phiên ứng dụng miễn phí tồn giới, chạy nhiều hệ thống, bao gồm Windows, UNIX, Macintosh, nhiều Ngoài ra, phiên thương mại đáp ứng cho người dùng muốn sản phẩm mà kèm hỗ trợ nhà cung cấp Nó dựa thuật tốn mà cịn tồn rộng rãi, đảm bảo quyền xem an tồn Cụ thể là, bao gồm RSA, DSS, DiffieHellman cho việc mã hóa với khố cơng khai; CAST-128, IDEA, 3DES cho việc mã hóa đối xứng, SHA-1 cho mã băm Nó có nhiều ứng dụng rộng rãi, từ cơng ty có nhu cầu bắc buộc lựa chọn chương trình tiêu chuẩn hóa để mã hóa tập tin thơng điêp, đến cá nhân có nhu cầu giao tiếp an toàn với người khác toàn giới qua Internet mạng khác BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] PGP không phát triển không bị kiểm sốt tổ chức phủ tổ chức tiêu chuẩn Do đó, PGP thêm hấp dẫn PGP thuộc đường lối tiêu chuẩn Internet (RFC 3156) Tuy nhiên, PGP cịn tồn tình trạng lạc lối Chúng ta bắt đầu với nhìn tổng thể hoạt động PGP Tiếp theo, nghiên cứu xem khóa mật mã tạo lưu trữ Sau đó, giải vấn đề quản lý khố cơng khai (public-key) Ký hiệu: Hầu hết ký hiệu sử dụng chương sử dụng trước đây, có vài thuật ngữ Tốt nên tổng hợp từ lúc Các ký hiệu sử dụng là: Ks = khóa phiên (session-key) sử dụng thuật tốn mã hóa khóa đối xứng PRa = khóa riêng (private-key) người dùng A, sử dụng thuật tốn mã hố khố cơng khai PUa = khóa cơng khai(public-key) người dùng A, sử dụng thuật tốn mã hố khố cơng khai EP = q trình mã hóa khóa cơng khai (public-key) DP = q trình giải mã khóa cơng khai (public-key) EC = mã hóa đối xứng DC = giải mã đối xứng H = hàm băm | | = nối Z = Nén cách sử dụng thuật toán ZIP R64 = Chuyển đổi sang định dạng ASCII số 64 Các tài liệu PGP thường sử dụng thuật ngữ secret-key để việc khoá kết hợp với khóa cơng khai (public-key) thuộc lược đồ mã hố khố cơng khai Như đề cập trước đó, áp dụng secret-key dễ gây sử dụng nhầm lẫn việc mã hóa đối xứng Vì lý đó, sử dụng private-key để thay BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] Mô tả hoạt động: Ngược lại với việc quản lý khố, q trình hoạt động PGP bao gồm dịch vụ: Chứng thực, bảo mật, nén, tương thích e-mail, phân đoạn (Bảng 15.1) Bảng 15.1 Tóm tắt dịch vụ PGP Chức Giải thuật Mô tả sử dụng Chữ ký số DSS/SHA RSA/SHA Một mã băm thông điệp tạo cách sử dụng SHA-1 Tóm tắt thơng điệp (message digest) mã hóa DSS RSA với khóa riêng người gửi (private-key) với thơng điệp Mã hóa thơng điệp CAST IDEA hay Three-key Triple DES với DiffieHellman RSA Nén ZIP Tương thích E-mail Chuyển đổi số 64 Một thơng điệp mã hóa CAST-128 IDEA 3DES với khóa phiên lần (one session-key) tạo người gởi Các khóa phiên mã hóa Diffie-Hellman RSA với khóa cơng khai (public-key) người nhận gởi thông điệp Một thơng điệp nén giải thuật ZIP để lưu trữ truyền dẫn Thông điệp sử dụng thuật toán để chuyển đổi thành chuỗi ASCII số 64 để ứng dụng mail minh bạch Để đáp ứng giới hạn kích thước tối đa thông điệp, PGP thực phân đoạn ghép lại Phân đoạn Chứng thực : Hình 15.1a minh hoạ PGP cung cấp dịch vụ chữ ký điện tử Đây lược đồ chữ ký số (digital signature scheme) thảo luận chương 13 minh hoạ hình 11.5c Trình tự sau: Người gửi tạo thông điệp Dùng SHA-1 để tạo mã băm 160 bit cho thông điệp Mã băm mã hoá với khoá riêng người gửi thuật tốn RSA, sau ghép kết vào thơng điệp BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] Người nhận giải mã phục hồi mã băm RSA khoá công khai người gửi Người nhận tạo mã băm cho thơng điệp so sánh với mã băm giải mã Nếu giống thơng điệp xác thực Hình 15.1 Chức mã hố PGP ` BÁO CÁO GIỮA KỲ: BẢO MẬT THƠNG TIN [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] SHA-1 kết hợp với RSA tạo lược đồ chữ ký số hiệu Bởi với sức mạnh giải thuật RSA, người nhận chắn có người sở hữa khố riêng phù hợp tạo chữ ký Với SHA-1, người nhận tin khơng có khác tạo thơng điệp phù hợp với mã băm chữ ký thơng điệp ban đầu Để thay thế, dùng DSS/SHA-1 để tạo chữ ký Mặc dù chữ ký thường tìm thấy kèm theo thơng điệp tập tin, luôn vậy: Chữ ký tách rời hỗ trợ Chữ ký tách rời lưu trữ truyền tách biệt với thơng điệp mà đánh dấu Như hữu dụng số trường hợp Người dùng muốn trì bảng chữ ký riêng tất tin nhắn gửi nhận Một chữ ký tách rời chương trình thực thi phát virus lây nhiễm Cuối cùng, chữ ký tách rời sử dụng có nhiều nhóm phải ký tài liệu, ví dụ hợp đồng pháp lý Chữ ký người độc lập, áp dụng vào tài liệu Nếu không, với người thứ hai ký tài liệu chữ ký đầu tiên, chữ ký phải lồng nhau, Bảo mật: Bảo mật dịch vụ khác PGP, cung cấp mã hố thơng điệp truyền lưu trữ thành tập tin Trong trường hợp, giải thuật mã hoá đối xứng CAST-128 đuợc dùng Ngồi ra, IDEA 3DES dùng thay Chế độ mật mã phản hồi 64 (CFB) bit sử dụng Như thường lệ, phải xem xét vấn đề phân phối khoá Trong PGP, khoá đồng sử dụng lần Đó khố tạo số ngẫu nhiên 128 bit cho thông điệp Như vậy, điều nhắc đến tài liệu khóa phiên, thực tế khố sử dụng lần Bởi sử dụng lần, khóa phiên gắn thơng điệp truyền với Để bảo vệ khóa, mã hóa với khóa cơng khai người nhận Hình 15.1b minh họa trình tự, mơ tả sau: Nguời gởi tạo thông điệp số 128bit ngẫu nhiên để dùng làm khố phiên cho thơng điệp Thơng điệp mã hố giải thuật CAST-128 (hoặc IDEA 3DES) với khoá phiên BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] Khoá phiên mã hố RSA khố cơng khai người nhận, đính kèm vào thơng điệp Người nhận giải mã phục hồi khoá phiên RSA khố riêng Thơng điệp giải mã khố phiên Ngồi việc dùng RSA để mã hoá khoá, PGP đưa lựa chọn khác giải thuật Diffie-Hellman Như giải thích chương 10, Diffie-Hellman giả thuật trao đổi khoá Thực ra, PGP sử dụng biến thể Diffie-Hellman ElGamal để mã hoá/giải mã Vài theo dõi đuợc thực Đầu tiên, để rút ngắn thời gian mã hoá, kết hợp mã hoá đối xứng khố cơng khai ưu tiên sử dụng dùng RSA ElGamal để mã hố thơng điệp trực tiếp: chất CAST-128 giải thuật đối xứng khác nhanh hơn RSA ElGamal Thứ hai, sử dụng giải thuật khố cơng khai giải vấn đề phân phối khố phiên, nguời nhận phục hồi khố phiên đính kèm với thông điệp Chú ý không cần giao thức trao đổi khoá phiên thảo luận chương 10, khơng bắt đầu phiên liên tục Thay vào đó, tin nhắn kiện độc lập lần với khóa riêng Hơn nữa, tính chất lưu trữ chuyển tiếp thư điện tử, việc sử dụng handshaking để đảm bảo hai phía có khố phiên khơng thực tế Cuối cùng, việc sử dụng khoá đối xứng lần cố thêm phương pháp mã hoá đối xứng hiệu Chỉ số văn gốc mã hố với khố, khơng có liên hệ khố Như vậy, để giải thuật khố cơng khai an tồn tồn lược đồ phải an tồn Để kết thúc, PGP cung cấp cho nguời dùng lựa chọn phạm phi khoá từ 768 đến 3072 bit (khoá DSS cho chữ ký giới hạn 1024 bit) Bảo mật xác thực : Như hình 15.1c, hai dịch vụ sử dụng cho thông điệp Đầu tiên, chữ ký tạo cho thông điệp gốc đính kèm với thơng điệp Sau đó, thơng điệp gốc với chữ ký mã hoá CAST-128(hoặc IDEA 3DES), khoá phiên mã hoá RSA (hoặc ElGamal) Trình tự thích hợp với điều ngược lại: mã hóa thơng điệp sau tạo chữ ký cho thơng điệp mã hóa Việc lưu trữ chữ ký với văn gốc thông điệp tiện lợi BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] Hơn nữa, bên thứ ba xác thực, chữ ký thực trước, bên thứ ba khơng cần quan tâm đến khố cơng khai xác thực chữ ký Tóm lại, hai dịch vụ sử dụng, nguời gửi ký thơng điệp khố riêng, sau mã hố thơng điệp khố phiên, sau mã hố khố phiên khố cơng khai người nhận Nén : Mặc định, PGP nén thông điệp sau cung cấp chữ ký trước mã hoá Như có tiết kiệm cho việc lưu trữ chuyển tiếp email Các vị trí thuật tốn nén, định Z cho việc nén Z-1 để giải nén hình 15.1, quan trọng: Chữ ký tạo trước nén lý : a Ưu tiên ký thông điệp chưa nén để lưu trữ thơng điệp chưa nén với chữ ký cho tiện việc xác minh sau Nếu ký văn nén, phải lưu phiên nén để sau xác minh phải giải nén thông điệp cần xác minh b Thậm chí sẵn sàng giải nén để xác thực, giải thuật nén PGP tồn khó khăn giải thuật khơng qn Những thực thi khác thuật toán cho cân khác tốc độ chạy so với tỉ lệ nén, kết cho dạng nén khác Tuy nhiên, giải thuật nén khác tương thích phiên thuật tốn giải nén xác đầu phiên khác Áp dụng hàm băm chữ ký sau nén hạn chế thực thi PGP lên phiên giải thuật nén Sau nén thực mã hoá thơng điệp để tăng cường tính bảo mật Bởi vì, thơng điệp nén bị dư thừa liệu thơng điệp gốc, việc giải mã khó khăn Giải thuật nén ZIP, mô tả Phụ Lục 15A Tương thích email: BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] Khi sử dụng PGP, phần gửi chắn mã hoá Nếu sử dụng dịch vụ chữ ký, thơng điệp tóm tắt mã hoá (cùng với khoá riêng nguời gửi) Nếu sử dụng dịch vụ bảo mật, thông điệp khố (nếu có) mã hố (bằng khố đối xứng lần) Như vậy, phần toàn khối kết bao gồm chuỗi bit Tuy nhiên, nhiều hệ thống thư điện tử cho phép sử dụng khối bao gồm kí tự ASCII Để cho phù hợp, PGP cung cấp dịch vụ chuyển đổi chuỗi nhị phân 8bit thành chuỗi ký tự ASCII Giải thuật chuyển đổi số 64 làm việc Mỗi nhóm ba octet liệu nhị phân ánh xạ thành bốn ký tự ASCII Định dạng gắn CRC để phát lỗi trình truyền Xem Phụ Lục 15B đễ biết thêm chi tiết Thuật toán số 64 làm thông điệp mở rộng thêm 33% Nhưng may mắn phần khố phiên chữ ký thơng điệp tương đối nhỏ gọn, văn gốc thông điệp nén Thực ra, nên nén nhiều để bù đắp cho việc mở rông số 64 Thí dụ, [HELD96] báo cáo sử dụng ZIP tỉ lệ nén trung bình khoảng 2.0 Nếu chung ta bỏ qua chữ ký thành phần khoá tương đối nhỏ, hiệu tổng hợp việc nén mở rộng tập tin có độ dài X 1.33 x 0.5 x X = 0.665 x X Như vậy, việc nén thực khoảng 1/3 file Một điểm đáng ý thuật toán số 64 chuyển đổi chuỗi đầu vào nội dung thành định dạng số 64, input văn ASCII Như vậy, thông điệp ký chưa mã hố tồn khối thực chuyển số, người cung cấp cấp độ bảo mật ngẫu nhiên khơng thể đọc output Do tính chất tùy chọn này, PGP cấu hình để chuyển đổi phần chữ ký sang định dạng số 64 thông điệp gốc ký Như người nhận đọc thơng điệp mà không cần dùng PGP PGP dùng để xác nhận chữ ký Hình 15.2 cho biết mối quan hệ dịch vụ đề cập Khi truyền tin, cần chữ ký tạo mã băm văn gốc chưa nén Sau đó, văn gốc cộng với chữ ký (nếu có) nén Tiếp theo, có dịch vụ bảo mật văn gốc nén (hoặc văn gốc chữ ký nén) mã hố đính kèm với BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] khoá mã hố đồng public Cuối cùng, tồn khối convert sang định dạng số 64 Hình 15.2 Truyền nhận thông điệp PGP Khi nhận, khối vào chuyển từ định dạng số 64 sang mã nhị phân Tiếp đó, thơng điệp mã hoá, người nhận phục hồi khoá phiên giãi mã thơng điệp Khối kết sau giải nén Nếu thông điệp ký, người nhận phục hồi mã băm nhận so sanh với mã băm vừa tính Phân ghép (Segmentation and Reassembly) Dịch vụ Email thường giới hạn độ dài tối đa thơng điệp Ví dụ, nhiều dịch vụ Internet giới hạn độ dài tối đa 50000 khối 8bit (octet) Bất thông điệp dài chia thành khối nhỏ để truyền riêng lẻ Để làm vậy, PGP tự động chia thông điệp lớn thành đoạn nhỏ vừa đủ để truyền qua email Việc phân đoạn thực sau làm xong quy trình khác bao gồm chuyển đổi số 64 Như vậy, thành phần khoá phiên chữ ký xuất lần đầu phân đoạn Khi trình nhận kết BÁO CÁO GIỮA KỲ: BẢO MẬT THƠNG TIN 10 [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] Table 15.9 Radix-64 Encoding 6-Bit Character Encoding 55 56 57 58 59 60 61 62 + 63 / (pad) = Hình minh họa 15.11 Đề án lập đồ đơn giản đầu vào nhị phân xử lý theo khối octet, 24 bit Mỗi bit khối 24-bit ánh xạ vào kí tự Trong hình, kí tự mã hoá số lượng 8-bit Trong trường hợp điển hình, đầu vào 24-bit mở rộng đến 32 bit đầu BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN 58 [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] Ví dụ, xem xét chuỗi văn 24-bit nguyên 00100011 01011100 10010001, thể hệ thập lục phân 235C91 Chúng xếp việc vào khối bit: 001000 110101 110010 010001 Các số bit dạng thập phân có giá trị là: 8, 53, 50, 17 Tra bảng mã hóa 15.9 kí tự sau: I1yR Nếu kí tự lưu trữ dạng bit ASCII Nếu ký tự lưu trữ định dạng ASCII 8-bit với bit chẵn lẻ thiết lập thành khơng, ta có: 01001001 00110001 01111001 01010010 Trong hệ thập lục phân, 49317952 Tóm lại: Input Data Binary representation Hexadecimal representation 00100011 01011100 10010001 235C91 Radix-64 Encoding of Input Data Character representation I1yR ASCII code (8 bit, zero parity) 01001001 00110001 01111001 01010010 BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN 59 [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] Hexadecimal representation 49317952 15.C Phụ lục 15C PGP hệ số ngẫu nhiên PGP sử dụng chương trình phức tạp mạnh mẽ để tạo số ngẫu nhiên số giả ngẫu nhiên, nhiều mục đích PGP tạo số ngẫu nhiên từ nội dung thời gian người sử dụng tổ hợp phím, số giả ngẫu nhiên cách sử dụng thuật toán dựa ANSI X9.17 PGP sử dụng số cho mục đích sau đây: • Số ngẫu nhiên: sử dụng để tạo cặp khóa RSA cung cấp đầu vào ban đầu cho máy tạo số giả ngẫu nhiên cung cấp đầu vào bổ sung hệ số giả ngẫu nhiên • Số giả ngẫu nhiên: sử dụng để tạo phím phiên sử dụng để tạo vector khởi tạo (IV) để sử dụng với chốt phiên chế độ mã hóa CFB Số ngẫu nhiên: PGP trì vùng đệm 256-byte bit ngẫu nhiên Mỗi lần PGP chờ tổ hợp phím, ghi lại thời gian, dạng 32-bit, thời điểm bắt đầu đợi Khi nhận phím tắt, ghi lại thời gian phím nhấn giá trị 8-bit ký tự Thời gian thơng tin gõ phím sử dụng để tạo khóa, sử dụng để mã hóa giá trị đệm ngẫu nhiên-bit Số gia ngẫu nhiên: Thế hệ số giả ngẫu nhiên dùng đầu vào 24-octet tạo khóa phiên 16 octet, khởi tạo vector octet, thành đầu vào để sử dụng cho hệ số giả Thế hệ số giả ngẫu nhiên thuật toán dựa thuật tốn BÁO CÁO GIỮA KỲ: BẢO MẬT THƠNG TIN 60 [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] mơ tả X9.17 (chương 7) (xem hình 7.14) sử dụng CAST-128 thay ba DES để mã hóa Thuật toán sử dụng cấu trúc liệu sau đây: Input randseed.bin (24 octets): Nếu tập tin rỗng, lấp đầy với 24 octet thực ngẫu nhiên Message: khóa phiên IV sử dụng để mã hóa thơng điệp cho chức tin nhắn Việc góp phần cho ngẫu nhiên khóa IV, đối phương biết rõ nội dụng thật tin nhắn, khơng cần thiết phải bắt khóa phiên thứ Output K (24 octet): 16 octet đầu, K[0,….,15], chứa khóa phiên, octet cuối, K[16,…,23], chứa IV randseed.bin (24 octets): giá trị đầu vào đặt tập tin Cấu trúc liệu nội dtbuf (8 octets): octet đầu, dtbuf[0…3], khởi tạo với giá trị ngày đệm tương đương với biến DT thuật toán X12.17 rkey (16 octets): CAST-128 mã hóa khóa sử dụng giai đoạn thuật toán rseed (8 octets): Tương đương với biến Vi X12.17 rbuf (8 octets): Một số giả ngẫu nhiên tạo thuật toán đệm tương đương với biến Ri X12.17 K' (24 octets): Bộ đệm tạm cho giá trị randseed.bin Thuật tốn bao gồm chín bước, G1 tới G9 Bước đầu bước cuối bước làm hoang mang, để làm thay đổi giá trị file randseed.bin đối phương Các bước lại tương đương với ba lần lặp thuật tốn X12.17 minh họa hình 15,12 (so sánh với hình 7.14) Tóm lại: G1: [Thay đổi đầu vào cũ] a Sao chép randseed.bin tới K[0,…,23] b Băm thông điệp( điều thực thong điệp vừa kí kết, khơng 4K octet thông điệp sử dụng Sử dụng kết khóa, sử dụng IV null, mã hóa K chế độ CFB, lưu trữ kết K BÁO CÁO GIỮA KỲ: BẢO MẬT THÔNG TIN 61 [CHƯƠNG 15: BẢO MẬT THƯ ĐIỆN TỬ] G2: [Khởi tạo đầu vào ban đầu] a Đặt dtbuf [0 3] với thời gian cục 32-bit, đặt dtbuff[4, ,7] sang Sao chép rkey b