OpenPGP là phiên bản mã nguồn mở của giao thức mã hóa PGP, do đó luôn được cập nhật thường xuyên với phiên bản mới nhất là OpenPGP version 5. Người dùng có thể tìm thấy nó trong nhiều ứng dụng và dịch vụ hiện đại như Mozilla Thunderbird, Zimbra,…
Trang 1MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
MỤC LỤC iii
DANH MỤC CÁC TỪ VIẾT TẮT vi
DANH MỤC CÁC KÝ HIỆU vii
DANH MỤC HÌNH ẢNH viii
DANH MỤC CÁC BẢNG BIỂU x
LỜI NÓI ĐẦU xi
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG THƯ ĐIỆN TỬ 1
1.1 Tổng quan về hệ thống thư điện tử 1
1.1.1 Khái niệm thư điện tử 1
1.1.2 Cấu trúc của thư điện tử 1
1.2 Kiến trúc và hoạt động của hệ thống thư điện tử 2
1.2.1 Kiến trúc của hệ thống thư điện tử 2
1.2.2 Hoạt động của hệ thống thư điện tử 6
1.3 Các giao thức truyền/nhận trong hệ thống thư điện tử 8
1.3.1 Giao thức SMTP (Simple Mail Transfer Protocol) 8
1.3.2 Giao thức POP3 (Post Office Protocol version 3) 9
1.3.3 Giao thức IMAP (Internet Message Access protocol) 11
1.4 Các nguy cơ mất an toàn hệ thống thư điện tử và giải pháp phòng chống 13
1.4.1 Tấn công từ chối dịch vụ 13
1.4.2 Open Relay 14
1.4.3 Giả mạo địa chỉ 15
1.4.4 Spam (thư rác) 15
1.4.5 Mã độc 16
1.4.6 Nghe lén, đọc lén 18
1.4.7 Phân tích đường truyền 19
1.5 Các giải pháp bảo mật trong hệ thống thư điện tử 19
1.5.1 Bảo mật email với PEM 19
Trang 21.5.2 Bảo mật email với SSL và TLS 20
1.5.3 Bảo mật email với mã hóa khóa bất đối xứng (PGP và S/MIME) 21
1.6 Kết luận chương 22
CHƯƠNG 2: TÌM HIỂU VỀ GIAO THỨC OPENPGP V5 23
2.1 Giới về giao thức OpenPGP v5 23
2.1.1 Tổng quan về giao thức bảo mật OpenPGP 23
2.1.2 Các tính năng mới của phiên bản OpenPGP so với các phiên bản cũ 26
2.2 Cách thức bảo mật thư điện tử của giao thức OpenPGP v5 27
2.2.1 Các mô hình bảo mật thư điện tử 27
2.2.2 Phân tích đánh giá ưu, nhược điểm của giao thức OpenPGP 31
2.3 Các thuật toán mật mã sử dụng trong OpenPGP v5 32
2.3.1 Thuật toán mật mã khoá công khai 32
2.3.2 Thuật toán mật mã khoá bí mật 36
2.3.3 Thuật toán nén 38
2.3.4 Thuật toán băm 38
2.4 Khuyến nghị lựa chọn mật mã sử dụng trong OpenPGP v5 40
2.5 Kết luận chương 41
CHƯƠNG 3: TRIỂN KHAI GIAO THỨC OPENPGP V5 ỨNG DỤNG BẢO MẬT THƯ ĐIỆN TỬ 42
3.1 Mô hình triển khai 42
3.2 Các bước triển khai 43
3.2.1 Cấu hình máy chủ Mail-Server 43
3.2.2 Cấu hình máy Mail-Client 48
3.2.3 Cấu hình máy Attacker 51
3.3 Thực nghiệm hệ thống thư điện tử có bảo mật bằng OpenPGP v5 51
3.3.1 Thực hiện trao đổi thư điện tử giữa các máy Client khi chưa triển khai bảo mật dịch vụ thư điện tử 51
3.3.2 Thực hiện bảo mật dịch vụ thư điện tử 53
3.3.3 Thực hiện trao đổi thư điện tử giữa các máy User sau khi triển khai bảo mật dịch vụ thư điện tử và kiểm tra kết quả 58
3.4 Kết luận chương 64
Trang 3KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 68 PHỤ LỤC 69
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT
Trang 5DANH MỤC CÁC KÝ HIỆU
Trang 6DANH MỤC HÌNH ẢNH
Hình 1.1: Sơ đồ tổng quan hệ thống thư điện tử 3
Hình 1.2: Hoạt động của hệ thống thư điện tử 7
Hình 1.3: Mô hình hoạt động của SMTP 9
Hình 1.4: Hoạt động của giao thức POP3 10
Hình 2.1: Mô hình OpenPGP chỉ đảm bảo tính xác thực thông điệp 28
Hình 2.2: Mô hình OpenPGP chỉ đảm bảo tính bí mật thông điệp 29
Hình 2.3: Mô hình OpenPGP đảm bảo tính xác thực và bí mật 30
Hình 2.5: Sơ đồ mã hoá AES 37
Hình 3.1: Mô hình triển khai bảo mật thư điện tử 42
Hình 3.2: Cấu hình mạng máy chủ Mail-Server 43
Hình 3.3: Tạo tài khoản người dùng trong máy chủ Mail-Server 46
Hình 3.4: Kiểm tra thư nhận được trong thư mục /home/baolong/Maildir/new .47 Hình 3.5: Chỉnh sửa tập tin hosts trên máy User 1 48
Hình 3.6: Chỉnh sửa tập tin resolv.conf trên máy User 1 49
Hình 3.7: Khởi chạy Thunderbird Mail từ Dashboard 49
Hình 3.8: Cửa sổ đăng nhập trong Thunderbird Mail 50
Hình 3.9: Xác thực thành công hòm thư conglan@server.kmm.net 50
Hình 3.10: Giao diện hòm thư của người dùng conglan trên Thunderbird Mail 51
Hình 3.11: Người dùng conglan soạn thư gửi cho người dùng baolong 52
Hình 3.12: Thông tin trao đổi giữa máy chủ Mail-Server và máy User 1 52
Hình 3.13: Người dùng baolong nhận được thư từ người dùng conglan 53
Hình 3.14: Tiến hành cấu OpenPGP trong Thunderbird Mail 53
Hình 3.15: Sinh cặp khóa cho người dùng 54
Hình 3.16: Cấu hình cặp khoá công khai cho người dùng conglan 54
Hình 3.17: Quá trình sinh khóa hoàn tất 55
Hình 3.18: Thông tin khoá đã được tạo của người dùng conglan 55
Hình 3.19: Gửi Public keys của người dùng conglan bằng Email 56
Hình 3.20: Email đã được đính kèm Public key của conglan 56
Hình 3.21: Người dùng baolong nhận được email có đính kèm khóa công khai của conglan 57
Trang 7Hình 3.22: Người dùng baolong nhập khóa công khai của conglan 57
Hình 3.23: Cửa sổ thông báo import key thành công 58
Hình 3.24: Chọn khoá của người dùng conglan 59
Hình 3.25: Người dùng conglan soạn thư có ký số gửi cho người dùng baolong 59 Hình 3.26: Người dùng baolong nhận được thư có ký số từ người dùng conglan 60
Hình 3.27: Người dùng baolong gửi thư có ký số cho người dùng conglan 60
Hình 3.28: Thư có ký số của người dùng baolong bị sửa trên Mail-Server 61
Hình 3.29: Thư người dùng conglan nhận được sau khi bị chỉnh sửa 61
Hình 3.30: Người dùng conglan soạn thư có mã hóa gửi cho người dùng baolong 62
Hình 3.31: Người dùng baolong nhận được thư có mã hoá 62
Hình 3.32: Thông tin trao đổi giữa máy chủ Mail-Server và máy User 1 đã được mã hóa 63
Hình 3.33: Thư đã mã hóa của conglan trên Mail-Server 63
Hình 3.34: Người dùng conglan soạn thư có mã hóa và ký số cho baolong 64
Hình 3.35: Người dùng baolong nhận được thư có ký số và mã hoá 64
Trang 8DANH MỤC CÁC BẢNG BIỂU
Trang 9LỜI NÓI ĐẦU
Ngày nay, mạng Internet đã trở thành nền tảng chính cho sự trao đổithông tin trên toàn cầu Nhờ Internet mà việc trao đổi thông tin cũng ngày càngtiện lợi, nhanh chóng hơn, khái niệm thư điện tử (email) cũng không còn mấy xa
lạ với mọi người… Thư điện tử có thể được sử dụng trên nhiều lĩnh vực khácnhau như giao dịch thương mại điện tử, chuyển giao tài liệu trong nội bộ tổ chứchay giữa các cá nhân,… Các thông tin truyền đi có thể là những thông tin quantrọng hoặc bí mật hay nhạy cảm… Chính vì thế nên thư điện tử trở thành mụctiêu để tấn công, phá hoại với nhiều vấn đề gây mất an toàn thông tin như: lộ lọtthông tin, giả mạo, lừa đảo, lây lan mã độc,… lợi dụng để phục vụ cho mục đíchxấu Điều đó khiến các tổ chức, doanh nghiệp trên toàn thế giới luôn quan tâmđến việc phòng chống các mối đe dọa, các cuộc tấn công qua thư điện tử Do đó,một số yêu cầu được đặt ra đối với việc trao đổi thư điện tử là:
- Bảo mật tuyệt đối thông tin trong giao dịch
- Đảm bảo tính toàn vẹn của thông tin
- Chứng thực được tính đúng đắn về pháp lí của thực thể tham gia trao đổithông tin
Từ những yêu cầu trên, vấn đề đặt ra là cần có giải pháp bảo mật thư điện
tử tránh làm lộ lọt thông tin của hệ thống thư điện tử Một trong những giải pháp
để giải quyết những vấn đề nêu trên được đưa ra là sử dụng giao thức mật mãOpenPGP được phát triển bởi Phil Zimmerman vào năm 1991 OpenPGP làphiên bản mã nguồn mở của giao thức mã hóa PGP, do đó luôn được cập nhậtthường xuyên với phiên bản mới nhất là OpenPGP version 5 Người dùng có thểtìm thấy nó trong nhiều ứng dụng và dịch vụ hiện đại như Mozilla Thunderbird,Zimbra,…
Nhằm mục đích hiểu rõ hơn về thư điện tử, giao thức OpenPGP v5 cũngnhư ứng dụng của OpenPGP v5 trong vấn đề bảo mật thư điện tử, em đã chọn và
tìm hiểu về đề tài “Tìm hiểu, triển khai giao thức OpenPGP v5 ứng dụng bảo mật thư điện tử” để làm đồ án tốt nghiệp
Trang 10Do trình độ kiến thức có hạn, thời gian ngắn cũng như khả năng tổng hợp,
xử lý tài liệu còn hạn chế nên đồ án còn nhiều thiếu sót Em rất mong nhận được
sự quan tâm góp ý của các thầy, cô và các bạn để đồ án được hoàn thiện hơn
Đồ án gồm 3 chương với nội dung như sau:
Chương I: Tổng quan về hệ thống thư điện tử
Chương này trình bày tổng quan về hệ thống thư điện tử, kiến trúc, hoạtđộng của hệ thống thư điện tử, các giao thức truyền và nhận trong hệ thống thưđiện tử, giới thiệu một số nguy cơ mất an toàn hệ thống thư điện tử và các giảipháp phòng chống, các giải pháp bảo mật trong hệ thống thư điện tử
Chương II: Tìm hiểu về giao thức OpenPGP v5
Chương này giới thiệu về giao thức OpenPGP v5, cách thức bảo mật thưđiện tử của giao thức OpenPGP v5, các thuật toán mật mã sử dụng trongOpenPGP v5 và khuyến nghị lựa chọn thuật toán mật mã sử dụng trong giaothức OpenPGP v5
Chương III: Triển khai giao thức OpenPGP v5 ứng dụng bảo mật thư điện tử
Chương này trình bày mô hình triển khai hệ thống thư điện tử có bảo mậtbằng giao thức OpenPGP v5, cài đặt cấu hình các máy Mail server, Mail Client,triển khai OpenPGP v5 để thực hiện ký số, mã hoá và giải mã thư điện tử
Trang 11CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG THƯ ĐIỆN TỬ 1.1 Tổng quan về hệ thống thư điện tử
1.1.1 Khái niệm thư điện tử
Thư điện tử là một thông điệp gửi từ máy tính này đến một máy tính kháctrên mạng và mang nội dung cần thiết từ người gửi đến người nhận Do thư điện
tử được gửi qua mạng nên có tốc độ rất nhanh Ngoài ra người dùng còn có thểgửi hoặc nhận các thư riêng hoặc các bức điện giao dịch với các file đính kèmnhư hình ảnh, tài liệu, bản nhạc, chương trình phần mềm
Thư điện tử còn được gọi tắt là E-Mail E-Mail có nhiều cấu trúc khácnhau tuỳ thuộc vào hệ thống máy tính của người dùng Mặc dù khác nhau về cấutrúc nhưng tất cả đều có một mục đích chung là gửi và nhận thư điện tử từ mộtnơi này đến một nơi khác nhanh chóng Vì vậy, thư điện tử được coi là mộttrong những dịch vụ thông dụng nhất, được sử dụng rộng rãi trên mọi hệ thốngmạng nhất là mạng Internet và cho phép người dùng trao đổi thông tin với nhauthông qua các thông điệp một cách đơn giản và nhanh chúng
Hiện nay, hầu hết các nước trên thế giới đều kết nối hệ thống mạng máytính của các trường đại học, các tổ chức thương mại, các cơ quan chính quyền,vào mạng Internet để việc truyền thư được nhanh chóng và thuận tiện nâng caohiệu quả công việc
1.1.2 Cấu trúc của thư điện tử
Cấu trúc của địa chỉ thư
- Mỗi người dùng trong một hệ thống thư điện tử phải có một địa chỉ thư
để sử dụng, một địa chỉ thư điện tử sẽ bao gồm hai phần chính có dạng như sau:
<Tên Email>@<Tên miền>
+ <Tên Email>: Đây là phần xác định hộp thư Phần tên này thường do
người đăng ký hộp thư điện tử đặt ra
+ <Tên miền>: Đây là tên miền của nơi cung cấp dịch vụ thư điện tử.
Ví dụ: CongLanTC22@kmm.com
- Trong đó, phần đầu là phần tên của người dùng (CongLanTC22) là hộp
Trang 12cùng là phần miền tên xác định địa chỉ máy chủ thư điện tử quản lý thư màngười dùng đăng ký và có hộp thư trên đó (kmm.com) Nó thường là tên củamột cơ quan hay tổ chức và nó hoạt động trên hoạt động của hệ thống tên miền.
Cấu trúc của thư điện tử
- Thư điện tử (E-mail) được chia thành 2 phần chính:
+ Phần đầu (header): chứa tên địa chỉ của người nhận, tên và địa chỉ củanhững người này sẽ được chuyển đến, chủ đề của thư, tên và địa chỉ của ngườigửi, ngày tháng của bức thư… Cụ thể bao gồm:
From: địa chỉ của người gửi.
To: địa chỉ của người nhận chính.
Cc: địa chỉ của những người đồng nhận thư điện tử (những người này sẽ
nhận được một bản sao của thư)
Bcc: địa chỉ của những người nhận riêng (những người này cũng sẽ nhận
được một bản sao của bức thư nhưng không xem được những ai nhận thư)
Date: thời gian gửi bức thư.
Subject: chủ đề thư.
- Phần thân (body): chứa nội dung của thư và các file đính kèm
1.2 Kiến trúc và hoạt động của hệ thống thư điện tử
1.2.1 Kiến trúc của hệ thống thư điện tử
Hệ thống thư điện tử là một hệ thống tổng thể bao gồm nhiều thành phầnhoạt động tương tác với nhau Mỗi thành phần phục vụ các dịch vụ khác nhau,nhưng đồng thời các kết quả lại được đưa đến các thành phần khác để xử lý tiếptheo Hình 1.1 là mô hình của hệ thống thư điện tử và sự tương tác giữa cácthành phần bên trong:
Trang 13Hình 1.1: Sơ đồ tổng quan hệ thống thư điện tử
Hầu hết hệ thống thư điện tử bao gồm ba thành phần cơ bản là MUA,MTA và MDA
MUA (Mail User Agent)
MUA là chương trình thư điện tử trên các máy trạm cho phép người dùng
có thể đọc và lấy thư về từ MTA hoạt động trên máy chủ thư tín
MUA có thể lấy thư từ Mail server về để xử lý (thông qua giao thứcPOP3) hoặc chuyển cho một MUA khác thông qua MTA (thông qua giao thứcSMTP) MUA cũng có thể xử lý trực tiếp thư trên Mail server (thông qua giaothức IMAP)
Sau việc vận chuyển thì chức năng chính của MUA là cung cấp giao diệncho người dùng tương tác với thư, gồm có:
- Soạn thảo, gửi thư
- Hiển thị thư, gồm cả các file đính kèm
- Gửi trả hay chuyển tiếp thư
- Gắn các file vào các thư gửi đi (Text, HTML, MIME.v.v)
- Thay đổi các tham số (ví dụ như server được sử dụng, kiểu hiển thị thư,kiểu mã hoá thư.v.v)
- Thao tác trên các thư mục thư địa phương và ở đầu xa
Trang 14- Lọc thư.
Có hai loại MUA là email client và web mail:
- Email client là phần mềm được cài đặt trên thiết bị của người dùng, chophép người dùng tải thư và lưu trữ thư trên máy tính nội bộ Các mail client phổbiến là: Outlook Express, Thunderbird Mail,…
- Web mail là ứng dụng email được cài đặt trên một máy chủ, cung cấpcho người dùng tương tác với máy chủ mail qua giao diện Web Web mail khácemail client ở chỗ khi người dùng đăng nhập thì web mail mới thực hiện tải thư
từ máy chủ về chứ không tải và lưu trữ nội bộ như mail client Các web mailphổ biến là: Gmail, Outlook.com,…
MTA (Mail Transfer Agent)
Khi các bức thư được gửi đến từ MUA, MTA có nhiệm vụ nhận diệnngười gửi và người nhận từ thông tin đóng gói trong phần header của thư vàđiền các thông tin cần thiết vào header Sau đó, chuyển thư cho MDA để chuyểnđến hộp thư ngay tại MTA hoặc chuyển cho Remote-MTA
MTA sử dụng giao thức SMTP để thực hiện chức năng nhận và chuyểnthư MTA quyết định việc chuyển thư dựa trên địa chỉ người nhận được tìm thấytrên header của mỗi bức thư:
- Nếu nó trùng với hộp thư do MTA (Local-MTA) quản lý thì bức thưđược chuyển cho MDA cục bộ để chuyển vào hộp thư của người nhận
- Nếu địa chỉ gửi bị lỗi, bức thư có thể được chuyển trở lại người gửi
- Nếu không bị lỗi nhưng không phải là bức thư của MTA, tên miền được
sử dụng để xác định xem Remote-MTA nào sẽ nhận thư, theo các bản ghi MX(bản ghi trao đổi thư) trên hệ thống tên miền
- Khi các bản ghi MX xác định được Remote-MTA quản lý tên miền đóthì không có nghĩa là người nhận thuộc Remote-MTA Mà Remote-MTA có thểđơn giản chỉ trung chuyển (relay) thư cho một MTA khác, có thể định tuyến bứcthư cho địa chỉ khác như vai trò của một dịch vụ domain ảo (domain gateway)hoặc người nhận không tồn tại và Remote-MTA sẽ gửi trả lại cho MUA gửi mộtcảnh báo
Trang 15Phần mềm quản lý thư MTA được tích hợp trong hầu hết các phần mềmMail Server như: Madaemon, Exchange Server, Sendmail, Qmail, Postfix,…
MDA (Mail Delivery Agent)
MDA là một chương trình được MTA sử dụng để đưa thư vào hộp thưcủa người dùng MDA còn có khả năng lọc thư, định hướng thư,… MTAthường được tích hợp với một hoặc nhiều MDA Trong một vài trường hợp thìMDA còn được coi như LDA (Local Delivery Agent)
Truy vấn tên miền
DNS (Domain Name System) và thư điện tử là 2 dịch vụ có mối quan hệmật thiết với nhau Dịch vụ thư điện tử dựa vào dịch vụ DNS để chuyển thư từmạng bên trong ra bên ngoài và ngược lại Khi chuyển thư, Mail Server nhờDNS để tìm MX record để xác định máy chủ nào cần chuyển Mail đến
Khi DNS client cần xác định cho một tên miền nó sẽ truy vấn DNSserver Truy vấn DNS và trả lời của hệ thống DNS cho client sử dụng thủ tụcUDP cổng 53, UDP hoạt động ở tầng thứ 3 (Network) của mô hình OSI, UDP làthủ tục phi kết nối (Connectionless), tương tự như dịch vụ gửi thư bình thườngcho thư vào hòm thư và hy vọng có thể chuyển đến nơi cần gửi tới Mỗi mộtmessage truy vấn được gửi đi từ client bao gồm ba phần thông tin:
- Tên của miền cần truy vấn (tên đầy đủ FQDN)
- Xác định loại bản ghi là mail, web
- Lớp tên miền (phần này thường được xác định là IN internet, ở đâykhông đi sâu vào phần này)
VD: Tên miền truy vấn đầy đủ như "hostname.example.microsoft.com",
và loại truy vấn là địa chỉ A Client truy vấn DNS hỏi "Có bản ghi địa chỉ A chomáy tính có tên là "hostname.example.microsoft.com" khi client nhận được câutrả lời của DNS server nó sẽ xác định địa chỉ IP của bản ghi A Nói tóm lại cácbước của một truy vấn gồm có hai phần như sau:
- Truy vấn sẽ bắt đầu ngay tại client computer để xác định câu trả lời;
- Khi ngay tại client không có câu trả lời, câu hỏi sẽ được chuyển đến
Trang 161.2.2 Hoạt động của hệ thống thư điện tử
Hoạt động chính của hệ thống thư điện tử là thực hiện gửi thư, nhận thư,
và chuyển thư Thư điện tử được chuyển nhận thông qua các máy chủ thư (MailServer), thông thường mỗi Mail Server bao gồm các thành phần MTA, MDA vàMailbox
Để gửi thư, người gửi cần định hướng thư đến máy chủ thư SMTP server(MTA), máy chủ thư sẽ tìm kiếm địa chỉ và chuyển đến máy chủ thư của ngườinhận cho đến khi thư được lấy về
Để nhận thư, người nhận cần có một tài khoản thư điện tử (account).Nghĩa là phải có một địa chỉ để nhận thư Với tài khoản thư điện tử người nhận
có thể kết nối vào máy chủ thư điện tử để lấy thư từ bất cứ đâu Để chuyển thư,MTA của người gửi và người nhận liên lạc với nhau dựa vào hệ thống DNS.Giao thức dùng để chuyển thư là giao thức SMTP
Cả quá trình có thể được chia thành ba bước:
- Khi một email được gửi đi, giao thức TCP sẽ chia nó thành các gói tin,mỗi gói tin mang địa chỉ của cả người gửi và người nhận email
- Giao thức IP định tuyến các gói đến đích đã định Các bộ định tuyến sẽkiểm tra các địa chỉ trong mỗi gói tin để tính toán đường đi hiệu quả nhất đếnmáy chủ của email người nhận Sau đó, các gói tin sẽ được chuyển đến các bộđịnh tuyến tiếp theo
- Khi các gói tin đến máy chủ email của người nhận, TCP sẽ kết hợpchúng thành định dạng email mà nó đã được gửi đi
Hoạt động của hệ thống thư điện tử được thực hiện theo hình 1.2:
Trang 17Hình 1.2: Hoạt động của hệ thống thư điện tử
Gửi thư: Người dùng sử dụng MUA để viết thư vào địa chỉ người nhận vàbấm gửi thư để chuyển lên MTA của người gửi Căn cứ vào địa chỉ người nhận,máy chủ sẽ chuyển thư đến một MTA thích hợp Nếu người nhận thuộc sự quản
lý của máy chủ thư thì được chuyển đến MDA cục bộ Quá trình này được điềukhiển bởi giao thức SMTP
Chuyển thư: Một MTA khi nhận được thư gửi cho người dùng do mìnhquản lý thì sẽ chuyển cho MDA để chuyển vào hộp thư của người dùng đó Nếukhông có người dùng thích hợp thì nó sẽ thông báo cho bên gửi là người nhậnkhông thích hợp Giao thức được sử dụng để vận chuyển thư giữa hai máy chủthư điện tử là SMTP
Nhận thư: Sau khi nhận (Remote-MTA) đó nhận thư và nhận chuyển vàohộp thư của người nhận MUA của người dùng sẽ kết nối đến máy nhận để xemthư hoặc lấy thư về để xem Sau khi xem thư người nhận có thể lưu trữ hoặcxóa, hoặc trả lời… Quá trình này được điều khiển bởi giao thức POP hoặcIMAP
Quá trình chuyện nhận thư trên Internet được thực hiện bởi Mail Server
và dựa vào hệ thống tên miền để truy vấn tên miền và tìm được địa chỉ chính xáccủa hộp thư người nhận
Trang 181.3 Các giao thức truyền/nhận trong hệ thống thư điện tử
1.3.1 Giao thức SMTP (Simple Mail Transfer Protocol)
Giao thức SMTP (Simple Mail Transfer Protocol) do Jon Postel thuộctrường Đại học Nam California phát triển vào tháng 8 năm 1982 SMTP là giaothức cơ bản của Internet Mail, được định nghĩa trong RFC 821, được sử dụng đểtải lên một tin nhắn từ MUA (ứng dụng thư khách) đến MTA (máy chủ thư) và
để trao đổi tin nhắn giữa các MTA SMTP được dùng để gửi mail, không dùng
để nhận mail SMTP gửi thông điệp và không cho phép ai lấy thông điệp về từmáy chủ theo yêu cầu của mình một cách tùy ý Giao thức này chạy trên giaothức TCP và sử dụng cổng 25
Với ưu điểm là được phát triển từ rất sớm, SMTP là chuẩn sử dụng ASCIIcủa hầu hết mailserver trên thế giới nên phần lớn các hệ thống thư điện tử gửithư qua Internet đều dùng giao thức này Tuy nhiên, giao thức này cũng cónhược điểm là SMTP thiếu một số chức năng bảo mật, không đòi hỏi phải xácnhận người gửi là ai, do đó bất kỳ ai trên Internet cũng có thể gửi email đến mộtngười hoặc thậm chí một nhóm người nào đó, đây là lý do vì sao lại xuất hiệnthư nặc danh, thư quảng cáo trong hộp thư của chúng ta, vì vậy phải bổ sung cácgiao thức để bảo mật dữ liệu S/MIME hoặc OpenPGP, ngoài ra giao thức SMTPcòn được hỗ trợ định dạng dữ liệu rất kém (phải chuyển dữ liệu sang dạngASCII bằng giao thức MIME)
Khi số lượng người dùng email tăng lên, chức năng bổ sung đã được tìmkiếm trong các ứng dụng thư khách và máy chủ SMTP Để các máy chủ SMTP
hỗ trợ chức năng bổ sung này, các tiện ích mở rộng đã được thêm vào SMTP.Năm 1993, RFC 1425 đã giới thiệu khái niệm mở rộng dịch vụ SMTP Sau đó,RFC 1425 đã được thay thế bởi RFC 1651 vào năm 1994, RFC 1869 vào năm
1995 và RFC 2821 vào năm 2001 Những RFC này đã thêm ba phần vào khungSMTP:
Các lệnh SMTP mới (RFC 1425)
Đăng ký mở rộng dịch vụ SMTP (RFC 1651)
Trang 19 Các tham số bổ sung cho các lệnh SMTP MAIL FROM và RCPT TO(RFC 1869).
Thiết kế SMTP được dựa trên mô hình truyền thông sau: tương tự nhưmột yêu cầu của người sử dụng, Sender-SMTP thiết lập một kênh truyền tải 2chiều tới một Receiver-SMTP Receiver-SMTP hoặc là đích hoặc là điểm tạmthời Các lệnh SMTP được sinh ra bởi Sender-SMTP và gửi tới ReceiverSMTP.Đáp lại SMTP được gửi từ Receiver-SMTP các lệnh tới Sender-SMTP
Hình 1.3: Mô hình hoạt động của SMTP
1.3.2 Giao thức POP3 (Post Office Protocol version 3)
Giao thức POP (Post Office Protocol) được phát triển lần đầu tiên vàonăm 1984 Về cốt lõi, POP được sử dụng để sao chép thư từ mailbox của máychủ thư đến ứng dụng thư khách Nó hoạt động giống như một hộp thư bưu điệntruyền thống
Giao thức POP3 là phiên bản thứ 3 của giao thức POP, được thiết kế hỗtrợ xử lý mail trong chế độ Offline Theo chế độ này, các thông báo mail đượcchuyển tới máy chủ thư điện tử và một chương trình thư client trên một máytrạm kết nối tới máy chủ thư điện tử đó và tải tất cả các thông báo mail tới máytrạm đó Và sau đó, tất cả quá trình xử lý mail được diễn ra trên chính máy trạmnày
Tiêu chuẩn truy cập hộp thư POP có một số hạn chế đáng kể Thôngthường, khi người dùng truy xuất email, các bản sao của tin nhắn trên máy chủ
sẽ bị xóa Điều này có nghĩa là người dùng có trách nhiệm duy nhất lưu trữthông điệp Mặc dù điều này có thể được chấp nhận đối với tài khoản cá nhân,nhưng nhìn chung hầu hết các tổ chức thương mại hoặc chính phủ phải đáp ứngcác yêu cầu pháp lý nhất định là không thể chấp nhận được POP có thể được
Trang 20sẽ phải tải xuống tất cả các tin nhắn đã xem trước đó cũng như các tin nhắn mớikhi truy cập hộp thư từ một máy chủ khác hoặc phải thiết lập thời gian lưu giữsau đó tin nhắn sẽ tự động bị xóa khỏi máy chủ.
Hoạt động của giao thức POP3 được thể hiện ở hình 1.4:
Hình 1.4: Hoạt động của giao thức POP3
Một POP3 Server được thiết lập chế độ đợi ở cổng 110 Khi POP3 clientmuốn sử dụng giao thức POP3, nó thiết lập một kết nối TCP tới máy server ởcổng 110 Khi kết nối TCP được thiết lập, POP3 server sẽ gửi một lời chào tớiclient Phiên làm việc giữa client và server được thiết lập Sau đó client gửi cáclệnh tới server và server phản hồi các lệnh đó tới khi đóng kết nối hoặc kết nối
bị huỷ bỏ
Một phiên POP3 có 3 trạng thái là: AUTHORIZATION,TRANSACTION và UPDATE
- Trạng thái AUTHORIZATION: Khi kết nối TCP được mở và POP3
server gửi lời chào tới client thì phiên vào trạng thái AUTHORIZATION, trongtrạng thái này server sẽ xác thực client Khi server xác thực client thành công thìphiên vào trạng thái TRANSACTION
- Trạng thái TRANSACTION: Tiếp theo trạng thái AUTHORIZATION là
trạng thái TRANSACTION Trong trạng thái này, client có thể truy nhập tớimailbox của mình trên server để kiểm tra, nhận thư
- Trạng thái UPDATE: Khi client gửi lệnh QUIT tới server từ trạng thái
TRANSACTION, thì phiên vào trạng thái UPDATE, trong trạng thái này server
Trang 21gửi goodbye tới client và đóng kết nối TCP, kết thúc phiên làm việc Nếu clientgửi lệnh QUIT từ trạng thái AUTHORIZATION, thì phiên PO3 sẽ kết thúc màkhông vào trạng thái UPDATE.
1.3.3 Giao thức IMAP (Internet Message Access protocol)
IMAP (Internet Message Access protocol) được phát triển vào năm 1988,
là một giao thức cho phép client truy nhập thư điện tử trên một server, không chỉtải thư điện tử về máy của người sử dụng mà có thể thực hiện các công việc như:tạo, sửa, xoá, đổi tên mailbox, kiểm tra thư mới, thiết lập và xoá cờ trạng thái,
IMAP được thiết kế trong môi trường người dùng có thể đăng nhập vàoserver cổng 143 từ các máy trạm khác nhau IMAP rất hữu ích khi có thể tải thưcủa người dùng từ nhiều thiết bị khác nhau, bởi không phải lúc nào cũng chỉ sửdụng một máy tính Trong khi đó POP không cho phép người sử dụng tác độnglên các server Đơn giản POP chỉ được phép tải thư điện tử của người dùng đangđược quản lý trên server, trong inbox của người sử dụng đó Như vậy, POP chỉcung cấp quyền truy nhập tới inbox của người sử dụng mà không hỗ trợ quyềntruy nhập tới pulbic folder (IMAP)
Sử dụng IMAP với các mục đích sau:
- Tương thích đầy đủ với giao thức MIME
- Cho phép truy nhập và quản lý thông điệp từ nhiều máy tính khác nhau
- Hỗ trợ cả 3 chế độ truy nhập: online, offline, và disconnected
- Hỗ trợ truy nhập đồng thời tới các mailbox dùng chung
- Phần mềm bên client không cần thiết phải biết kiểu lưu trữ file củaserver
Kết nối IMAP bao gồm: kết nối mạng cho client/server, khởi tạo lệnh trênserver hay gọi là "hello message" và những tương tác client/server tiếp theo.Những tương tác này bao gồm: lệnh từ client, dữ liệu trên server và trả lời trênserver Tương tác giữa IMAP client và IMAP server thực hiện dựa vào các giaothức gửi/nhận của client/server Cụ thể sự tương tác được thể hiện như sau
Giao thức gửi của client và nhận của server
Trang 22- Khi hoạt động, bên client gửi một lệnh, mỗi lệnh có một định danh đượcgọi là một thẻ Mỗi thẻ này được sinh từ phía client cho từng lệnh khác nhau Có
2 trường hợp dòng lệnh gửi từ phía client không được coi là một lệnh:
+ Thứ nhất, tham số lệnh được trích dẫn trong dấu ngoặc
+ Thứ hai, tham số lệnh yêu cầu thông tin phản hồi từ phía server
- Trong từng trường hợp thì server gửi một thông tin trả lời (cho lệnh tiếptheo bên phía client) nếu nó đã có các octet và phần lệnh còn lại tương ứng Chú
ý rằng đặt trước thông tin trả lời là một dấu "+"
- Nếu server nhận ra lỗi dòng lệnh, thì nó gửi thông tin trả lời là BAD đểhuỷ bỏ lệnh và ngăn việc gửi thêm lệnh từ phía client Server có thể gửi mộtthông tin trả lời cho nhiều lệnh khác nhau cùng một thời điểm (trong trường hợpgửi nhiều lệnh) hoặc dữ liệu không gán thẻ Trong trường hợp khác khi yêu cầutiếp tục gửi lệnh đang chờ thì client thực hiện theo thông tin trả lời lệnh từ phíaserver và đọc thông tin trả lời khác từ server đến Trong tất cả các trường hợp thìclient phải gửi các thông tin hoàn thành lệnh trước khi khởi tạo lệnh mới
- Giao thức nhận bên server đọc dòng lệnh từ phía client gửi sang, phântích lệnh và các tham số, sau đó truyền tải dữ liệu trên server và thông tin hoànthành lệnh sang client
Giao thức gửi của server và nhận của client
- Dữ liệu đã truyền sang client gồm cả thông tin trạng thái thông báo chưakết thúc lệnh (đặt trước là dấu "*", được gọi là không gán thẻ)
- Dữ liệu trên server có thể được gửi theo lệnh từ phía client, hoặc có thểđược gửi từ phía server mà không cần theo lệnh từ phía client Không có sự khácnhau về cú pháp giữa 2 cách gửi này
- Thông tin hoàn thành đáp lại từ phía server để chỉ ra rằng công việc thựchiện đã hoàn thành hoặc bị lỗi Nó được gán thẻ tương tự thẻ lệnh đã sử dụngcho các lệnh bên phía client Do vậy, nếu có nhiều hơn một lệnh thì thẻ sử dụngtrong thông tin hoàn thành lệnh từ phía server còn nhằm dùng để xác nhận sựtương ứng với lệnh mà nó cần thông báo Thông tin hoàn thành lệnh từ phíaserver sử dụng một trong 3 chuỗi sau:
Trang 23+ OK để thông báo lệnh đã thực hiện thành công.
+ NO để thông báo lệnh thực hiện lỗi
+ BAD để thông báo bị lỗi khi sử dụng giao thức (lệnh không được côngnhận, hoặc cú pháp lệnh sai)
- Giao thức nhận của client đọc thông báo từ phía server gửi sang, sau đó
nó thực hiện theo thông báo đó dựa theo dấu hiệu (+ hoặc *) trên thông báo Chú
ý rằng, một client phải chấp nhận bất kỳ thông báo nào đó từ phía server ở mọithời điểm, bao gồm cả dữ liệu của server mà nó đã yêu cầu Dữ liệu của serverđược ghi lại, do đó client có thể tham chiếu tới bản sao mà không cần gửi lệnhyêu cầu dữ liệu tới server Nhưng điều này chỉ thực hiện được khi dữ liệu củaserver đã được ghi lại
1.4 Các nguy cơ mất an toàn hệ thống thư điện tử và giải pháp phòng chống
- Tấn công DoS vào các tiến trình lên máy chủ thư
- Tấn công DoS làm giảm dung lượng
* Giải pháp phòng chống
- Cài đặt máy chủ thư an toàn: Trong quá trình cài đặt thiết lập cấu hình
cho máy chủ thư nếu thấy bất kỳ ứng dụng, dịch vụ, tiện ích nào không cần thiếtnên loại bỏ ngay trước khi kết thúc quy trình cài đặt Áp dụng các bản vá lỗhổng và nâng cấp hệ thống Tạo ra các phân vùng ổ đĩa (logic hoặc vật lý) sửdụng cho việc cài đặt ứng dụng thư Loại bỏ hoặc vô hiệu hóa tất cả dịch vụ
Trang 24được cài đặt bởi ứng dụng máy chủ thư không cần thiết Áp dụng các cơ chế antoàn có sẵn đối với một máy chủ thư.
- Cấu hình an toàn ứng dụng máy chủ thư điện tử: Hầu hết các máy chủthư đã cung cấp khả năng phân quyền cho việc truy nhập đến hệ thống các tậptin, các thiết bị, và nguồn tài nguyên trên máy chủ đó Quan trọng nhất là việclàm sao có thể đồng nhất các quyền được thiết lập bởi hệ điều hành và chínhphần mềm máy chủ thư điện tử Bên cạnh đó phải đảm bảo rằng các đối tượng
sử dụng thư điện tử không được trao quá nhiều hoặc quá ít quyền Do đó ngườiquản trị máy chủ cần quản lý truy nhập để bảo vệ thông tin được lưu trữ trênmáy chủ thư công khai trong hai mối quan hệ sau:
+ Hạn chế sự truy nhập của ứng dụng máy chủ thư điện tử tới các nguồntài nguyên khác trên máy tính
+ Hạn chế sự truy cập của người dùng đến hệ thống thông qua các quyền
bổ sung được hỗ trợ bởi máy chủ thư, nơi mà những mức điều khiển truy nhậpđược thiết lập chi tiết hơn
Việc thiết lập cấu hình quản lý truy nhập có thể ngăn các thông tin nhạycảm, riêng tư khỏi những hiểm họa khi một máy chủ thư được công khai hóa.Hơn nữa việc quản lý truy nhập có thể được sử dụng nhằm giới hạn việc sử dụngnguồn tài nguyên trong trường hợp máy chủ bị tấn công từ chối dịch vụ (DoS)
- Nhằm giảm ảnh hưởng của các loại tấn công DoS, nên thiết lập cấu hìnhmáy chủ thư nhằm hạn chế số lượng nguồn tài nguyên hệ thống mà trong quátrình vận hành có thể gây tổn hại Cài đặt hộp thư của người sử dụng trên các ổcứng hoặc các phân vùng logic khác nhau hơn là trên chính hệ điều hành hayứng dụng máy chủ thư Giới hạn cho phép dung lượng đính kèm Bảo đảm cáctập tin nhật ký sẽ được lưu trữ ở vị trí với dung lượng phù hợp
1.4.2 Open Relay
Open Relay là một máy chủ chuyển tiếp email SMTP cho phép bất kỳ ai
từ Internet cũng có thể gửi tin nhắn qua nó trong khi che đậy nguồn gốc của cácthông điệp được gửi đi Điều này rất nguy hiểm, vì hiện nay trên Internet cáccông ty gửi thư quảng cáo (spam mail) liên tục quét các máy chủ Open Relay,
Trang 25SMTP và sẽ dùng các máy chủ đó để gửi thư đến các mailbox khác Như vậy,máy chủ thư không những bị tốn tài nguyên mà còn có khả năng bị thêm vàonhững danh sách đen và khiến nhiều máy chủ thư khác sẽ từ chối tất cả các thưgửi từ máy chủ đó.
* Giải pháp phòng chống
- Một máy chủ chuyển tiếp thư SMTP được bảo mật và được định cấuhình để chỉ chấp nhận và chuyển tiếp các thư như sau:
+ Thư từ địa chỉ IP cục bộ đến hộp thư cục bộ
+ Thư từ người dùng đã được xác thực và ủy quyền
1.4.3 Giả mạo địa chỉ
Giả mạo địa chỉ là cách thức kẻ tấn công mạo danh địa chỉ thư điện tử củangười khác để gửi thư với nhiều mục đích khác nhau, làm cho người khác lầmtưởng đã nhận được thư điện tử đáng tin cậy Kẻ tấn công đã lợi dụng mối quan
hệ tin tưởng này để gửi thư điện tử, có kèm theo virus hoặc các đoạn mã độc,đánh cắp các thông tin hoặc phá hoại các giao dịch của các đối tác kinh doanhlàm ăn
1.4.4 Spam (thư rác)
Spam là những bức thư điện tử không yêu cầu, không mong muốn vàđược gửi hàng loạt tới người nhận Thông thường, việc nhận nhiều thư rác khiếnngười nhận mất thời gian để kiểm tra và xóa chúng Thư rác chứa nội dung làcác quảng cáo, các kiểu nội dung thương mại, chính trị, thư phát tán virus,v.v…
mà người dùng không mong muốn và địa điểm gửi đến là các cá nhân, công ty,doanh nghiệp
Trang 26Lượng thư rác quá lớn sẽ gây nghẽn đường truyền Do vậy muốn tăng tốc
độ đường truyền cần phải mất thêm chi phí để tăng thêm băng thông Nhà cungcấp tiêu tốn dung lượng để chứa thư rác Chi phí cho việc mua, phát triển và bảotrì phần mềm chống thư rác Thiệt hại cho hệ thống khi hệ thống bị nhiễm mãđộc từ thư rác Người dùng mất thời gian xóa thư rác, trong điều kiện đã có bộlọc vẫn mất thời gian cho việc cấu hình, báo cáo, thậm chí còn có thể đánh mấtnhững thư điện tử quan trọng do cơ chế lọc thư rác không phân biệt được
* Giải pháp phòng chống
- Cài các bộ lọc để phát hiện và loại bỏ mã độc trong nội dung thư điện tử
và tệp đính kèm Việc này có hai phương án:
+ Cài đặt bộ lọc trên máy chủ, thực hiện quét tự động tất cả các thư và tệpđược tải lên
+ Cài đặt các trình antivirus trên máy người dùng để quét thư điện tử khigửi và nhận
- Tiến hành lọc nội dung thư, thực hiện quét virus trên bức tường lửa hoặcmáy chủ thư Khi thực thi việc quét virus hoặc ngăn cấm một loại tệp nào đó(căn cứ vào phần mở đầu, tên tệp hay định dạng tệp) thì chỉ đảm bảo được mộtmức độ an toàn nào đó, nhằm cách ly, làm sạch, ngăn chặn hoặc xóa bất kỳ dữliệu nào đi qua máy chủ cần căn cứ vào kết quả của quá trình quét Việc lọc nộidung thư có thể do nhà quản trị hoặc chủ tài khoản thư lọc
1.4.5 Mã độc
Mã độc là một loại phần mềm độc hại được tạo ra và chèn vào hệ thốngmột cách bí mật với mục đích thâm nhập, phá hoại hệ thống hoặc lấy cắp thôngtin, làm gián đoạn, tổn hại tới tính bí mật, tính toàn vẹn và tính sẵn sàng của máy
hệ thống Các loại mã độc càng ngày càng phức tạp từ cách thức lây nhiễm,phương pháp ẩn mình, cách thức thực hiện các hành vi nguy hiểm…
Hiện nay, tấn công mã độc qua thư điện tử là một hình thức tấn công rấtphổ biến Nạn nhân sẽ nhận được những thư điện tử có nội dung giả mạo như:quảng cáo, thông báo từ các tổ chức uy tín hoặc thư rác có nội dung gay cấnkích thích sự tò mò của người nhận,… Các mã độc được đính kèm cùng nội
Trang 27dung thư thành các đường link dẫn, các tệp pdf, exe, dll,… sẽ được tải về máytính của người dùng, sau đó lây lan sang các máy tính khác Tuỳ thuộc vào cơchế, hình thức lây nhiễm và phương pháp phá hoại mà có thể phân biệt mã độcthành nhiều loại khác nhau:
- Virus: đòi hỏi sự can thiệp trực tiếp của con người để lây lan, virus yêucầu người dùng tải xuống và nhấp đúp vào tệp nhị phân hoặc chuyển đi bằngphương tiện bị nhiễm, chẳng hạn như đĩa floppy Virus lây lan nhanh chóng đếntất cả các file trong một hệ điều hành nhưng không tự lây lan sang các hệ thốngkhác mà qua những hình thức khác Quá trình lây lan được thực hiện qua hành
vi lây file Ngoài ra, virus cũng có thể thực hiện các hành vi phá hoại, lấy cắpthông tin…
- Trojans: có đặc tính phá hoại máy tính, thực hiện các hành vi phá hoạinhư: xoá file, làm đổ vỡ các chương trình thông thường, ngăn chặn người dùngkết nối internet…các đoạn mã của Trojan được “che giấu” trong các loại viruskhác hoặc trong các phần mềm máy tính thông thường để bí mật xâm nhập vàomáy nạn nhân Khi tới thời điểm thuận lợi chúng sẽ tiến hành các hoạt động ăncắp thông tin cá nhân, mật khẩu, điều khiển máy tính nạn nhân … Bản chất củaTrojan là không tự lây lan mà phải sử dụng phần mềm khác để phát tán
- Worms: giống trojans về hành vi phá hoại, tuy nhiên nó có thể tự nhânbản để thực hiện lây nhiễm qua nhiều máy tính Sự khác biệt giữa virus vàworms là worms có thể lây lan với rất ít hoặc không có sự can thiệp của ngườidùng Khi lây vào máy tính, chúng thực hiện tìm kiếm các sổ địa chỉ, danh sáchemail trên máy nạn nhân rồi giả mạo các email để gửi bản thân chúng tới các địachỉ thu thập được Các email do worms tạo ra thường có nội dung “giật gân”,hoặc “hấp dẫn”, hoặc trích dẫn một email nào đó ở máy nạn nhân để ngụy trang.Điều này khiến các email giả mạo trở nên “thật” hơn và người nhận dễ bị đánhlừa hơn Nhờ những email giả mạo đó mà worms lây lan mạnh mẽ trên mạngInternet theo cấp số nhân Bên cạnh đó worms có thể lây lan nhanh chóng trêncác mạng sử dụng đồng nhất một hệ điều hành
Trang 28- Mã độc di động (Malicious mobile code – MCM) là phần mềm độc hạiđược truyền đi từ máy chủ (được điều khiển từ xa) đến một máy chủ nội bộ vàsau đó tự hiện trên các máy chủ nội bộ, bị vô tình hay cố ý tải vào máy tính hoặcthiết bị truyền thông khác của người dùng Loại mã độc này có thể được truyềnnhiễm thông qua các ứng dụng tương tác web, ngôn ngữ phổ biến cho mã độc diđộng bao gồm Java, ActiveX, Javascript và VBScript.
* Giải pháp phòng chống
- Cài các bộ lọc để phát hiện và loại bỏ mã độc trong nội dung thư điện tử
và tệp đính kèm Việc này có hai phương án:
+ Cài đặt bộ lọc trên máy chủ, thực hiện quét tự động tất cả các thư và tệpđược tải lên
+ Cài đặt các trình antivirus trên máy người dùng để quét thư điện tử khigửi và nhận
- Việc bắt buộc tất cả người dùng cài đặt các antivirus trên máy là điều rấtkhó khăn, vì vậy lựa chọn các thành phần trên máy chủ là điều dễ dàng và hiệuquả hơn Hiện tại có rất nhiều giải pháp do các công ty như BKAV, Kaspersky,Eset, Avast,… Đánh giá chung các giải pháp này đều hoạt động rất tốt nhưnglượng chi phí phải trả để duy trì bản quyền sẽ là một vấn đề cần phải tính đến.Đối với các doanh nghiệp nhỏ, giải pháp mã nguồn mở được ưu tiên hơn cả (vídụ: ClamAV)
1.4.6 Nghe lén, đọc lén
Kẻ tấn công sử dụng kỹ thuật tấn công này để bắt thư điện tử gửi đi trong
hệ thống email Tấn công này được thực hiện khi nằm cùng mạng nội bộ vớimáy người dùng mục tiêu và hệ thống thư điện tử không thiết lập các biện phápbảo mật nội dung thư
* Giải pháp phòng chống
- Để phòng tránh tình trạng nghe lén, đọc lén gây ra, người dùng nên sửdụng tường lửa cá nhân, phần mềm chống vi-rút, mạng riêng ảo (VPN), hoặc sửdụng kỹ thuật mật mã để mã hóa các thông tin khi chúng được chuyển đi trênmạng internet để đến server Mail Và ngay trên server, thông tin cũng cần phải
Trang 29được mã hóa để lưu trữ một cách an toàn sử dụng khóa bảo mật mà chỉ có ngườinhận đích thực mới biết.
- Chặn không cho System administrator có quyền truy xuất tài khoảnemail bằng cách đơn giản reset và tạo ra 1 password mới
1.4.7 Phân tích đường truyền
Phân tích đường truyền là một kiểu dùng để phân tích các lưu lượng đangđược lưu thông trên đường truyền Từ đấy có thể biết được các thông tin về:password, file, email Các giao thức SMTP, POP, IMAP đều có thể phân tích vàlấy được nội dung bên trong Phương pháp phân tích đường truyền ban đầu làdành cho các nhà quản trị hệ thống đề kiểm tra và theo dõi mạng
Một số chương trình đề phân tích đường truyền như: Cain&Abel,Wireshark, Pilot…
Trong trường hợp nội dung thư được mã hoá, đối tượng đọc trộm khôngthể đọc nội dung bên trong thư điện tử nhưng họ có thể thu thập được một lượngthông tin không nhỏ: Nguồn gửi, nguồn nhận, thời gian gửi…
Việc phân tích đường truyền dựa vào một trong các yếu tố như: gửi thưđiện tử cho ai, nhận thư điện tử từ ai, độ dài của các thông điệp thư điện tử, hoặckhi nào thư điện tử được gửi Có rất nhiều thông tin ẩn chứa trong các yếu tốkiểu như vậy nếu họ biết cách khai thác
* Giải pháp phòng chống
- Bảo mật thư trên đường truyền kết hợp các giao thức bảo mật như
SSL/TLS SSL (Secure Socket Layer) là giao thức đa mục đích được thiết kế đểtạo ra các giao tiếp giữa hai chương trình ứng dụng trên một cổng định trướcnhằm mã hóa toàn bộ thông tin đi/đến TLS (Transport Layer Security) là mộtdạng của SSL có thêm một số thay đổi
1.5 Các giải pháp bảo mật trong hệ thống thư điện tử
1.5.1 Bảo mật email với PEM
PEM (Privacy Enhaced Mail): Một cơ chế mã hóa cung cấp khả năng xácthực, bí mật, toàn vẹn và chống chối bỏ PEM sử dụng RSA, DES và X.509
Trang 30Thuật toán lưu trữ dữ liệu chọn cho PEM là DES Chuẩn lưu trữ dữ liệu
đã được phê chuẩn bởi cục tiêu chuẩn quốc gia Mỹ vào năm 1977 DES là mộtthuật toán lưu trữ theo truyền thống, nó tính toán 64 bit dữ liệu một lần Lưu trữcác yêu cầu trong một thông điệp để thông điệp xuất hiện trong các mẫu 64 bit
PEM cho phép lưu trữ các thông điệp chỉ sử dụng DES, trong thực tiễnmục này ít được sử dụng Để thay thế, khóa mật mã chung đã được sử dụng để
bổ sung vào DES
Khóa mật mã chung là một hệ thống lưu trữ các thông điệp sao cho chúng
có thể được lưu trữ hoặc lấy lại với khóa kết hợp Một phần của khóa kết hợpcủa một người dùng đã được sử dụng để lưu trữ, phần khác được sử dụng để lấylại Vì vậy, đôi khi khóa mật mã chung được tham khảo như mật mã không đốixứng Sự tương phản này với khóa bí mật truyền thống lưu trữ đối xứng giốngnhư DES, nơi mà khóa giống nhau được sử dụng cho việc lưu trữ và lấy lại Mộtphần của khóa chung dành cho người dùng đã cho được tính toán ở cùng mộtthời điểm, không thể lấy được phần khác
Hệ thống lưu trữ khóa chung được sử dụng cho hầu hết các hệ thống lưutrữ thư điện tử gồm có PEM là RSA thuật toán khóa chung Trong thực tế sự kếthợp giữa RSA và thuật toán DES đã được sử dụng trong PEM Một sự bổ sungPEM đưa ra một khóa DES ngẫu nhiên giả hiệu và lưu trữ các thông điệp sửdụng khóa một lần này Khóa DES này được lưu trữ sử dụng RSA và khóa lưutrữ kèm theo thông điệp Chương trình lưu trữ của người nhận lưu trữ khóa DES
sử dụng RSA và sau đó lưu trữ thông điệp sử dụng khóa DES Bởi vì khóa DESđặc trưng nhiều thông điệp ngắn, kết quả là một phương pháp lưu trữ nhanh hơnviệc chỉ sử dụng RSA
1.5.2 Bảo mật email với SSL và TLS
SSL (Secure Socket Layer) là giao thức đa mục đích được thiết kế để tạo
ra các giao tiếp giữa hai chương trình ứng dụng trên một cổng định trước nhằm
mã hóa toàn bộ thông tin đi/đến
TLS (Transport Layer Security) là một dạng của SSL có thêm một số thayđổi
Trang 31Để tăng cường bảo mật cho email người ta sử dụng dịch vụ email có hỗtrợ SSL cho các hệ thống Webmail, POP, IMAP, SMTP Servers
SSL là sự kết hợp giữa cơ chế mã hóa khóa đối xứng và bất đối xứng.Nếu người dùng kết nối tới sever có sử dụng SSL, các trường hợp sau sẽ xảy ra:
- Server sử dụng private key của chính nó để chứng minh nó chính làserver người dùng đang cố gắng kết nối tới Điều đó cho người dùng biết làkhông phải họ đang kết nối tới một “middleman” đang cố gắng bắt các gói tin
- Người dùng gửi cho server public key của họ
- Server sẽ gửi cho người dùng một secret key đã mã hóa bằng public keycủa chính người dùng đó
- người dùng và server liên lạc sử dụng cơ chế mật mã khóa đối xứng đểtrao đổi secret key (Quá trình liên lạc sử dụng cơ chế mật mã khóa đối xứngnhanh hơn so với cơ chế mật mã không đối xứng)
1.5.3 Bảo mật email với mã hóa khóa bất đối xứng (PGP và S/MIME)
Giao thức SSL chỉ bảo vệ được password và nội dung của email một cáchtương đối, nó chỉ bảo vệ được nội dung của email trong giao tiếp giữa email vớiSMTP Server Khi đến SMTP Server, email vẫn phải lưu dưới dạng plaintext
Giải pháp được đưa ra là sử dụng cơ chế mã hóa khóa bất đối xứng đểcung cấp mã hóa, chữ ký và xác thực email
Phương pháp này chỉ mã hóa được nội dung của email Để username vàpassword lúc kết nối đến server cũng được mã hóa thì phải dùng kết hợp vớiSSL Bởi vì thông tin username và password không phải là nội dung email Do
đó, chúng sẽ không được mã hóa khi chỉ sử dụng OpenPGP hoặc S/MIME
Có hai phương pháp sử dụng cơ chế mã hóa sử dụng khóa bất đối xứng làOpenPGP và S/MIME Cả hai phương pháp này đều cho phép ký số và mã hóanội dung email OpenPGP được openpgp.com cấp và tương thích với hầu hếtcác email client chuẩn S/MIME được sử dụng cho Microsoft Outlook và một sốemail client khác, nhưng trước khi sử dụng S/MIME thì phải có chứng thư sốS/MIME do một công ty thứ ba cung cấp
Trang 32OpenPGP hoặc S/MIME giải quyết được nhiều vấn đề về bảo mật email,tuy nhiên chúng lại đặt ra một số vấn đề khác: đó là khả năng tương thích lẫnnhau Người gửi không thể gửi một email được gọi là an toàn nếu sử dụngchuẩn OpenPGP còn người nhận lại sử dụng S/MIME
OpenPGP tương thích với đa số người dùng Tuy nhiên, người dùng lạithích sử dụng S/MIME hơn Hơn thế nữa, việc tiếp cận và bắt đầu với S/MIMEcũng dễ dàng và rẻ hơn là OpenPGP
Một vấn đề về tương thích nữa là “trao đổi khóa” Nếu người dùng muốngửi đi một email đã được mã hóa, thứ đầu tiên mà cần phải có đó là public keycủa họ Nếu người nhận muốn biết ai đã gửi email cho họ, họ cũng cần phải cópublic key của người gửi để xác nhận danh tính người gửi Có rất nhiều cách đểtrao đổi các public key cho nhau OpenPGP cho phép trao đổi khóa thông quamột server trao đổi khóa mà nó cung cấp Khi đó, người dùng chỉ việc truy cậpvào server và download public key mà họ muốn Tuy nhiên, không phải ai cũng
có OpenPGP public key trên OpenPGP server, vì có thể họ lại sử dụng cơ chếS/MIME để trao đổi khóa Do đó, vấn đề trao đổi khóa cũng là một trở ngại choviệc tương thích giữa OpenPGP và S/MIME
1.6 Kết luận chương
Như vậy, trong chương này đồ án đã tìm hiểu về hệ thống thư điện tử, cácgiao thức truyền nhận thư cũng như một số vấn đề về an toàn trong giao dịch thưđiện tử, các biện pháp đảm bảo an toàn thông tin giao dịch điện tử để làm cơ sởcho việc nghiên cứu các chương tiếp theo
Trang 33CHƯƠNG 2: TÌM HIỂU VỀ GIAO THỨC OPENPGP V5
2.1 Giới về giao thức OpenPGP v5
OpenPGP là một giao thức được sử dụng để mã hóa email bằng mật mãkhóa công khai Nó dựa trên phần mềm PGP (Pretty Good Privacy) ban đầu.Giao thức OpenPGP xác định các định dạng chuẩn cho tin nhắn, chữ ký vàchứng chỉ được mã hóa để trao đổi khóa chung Phiên bản mới nhất hiện nay làversion 5 với một số cải tiến sẽ trình bày cụ thể trong chương này
2.1.1 Tổng quan về giao thức bảo mật OpenPGP
OpenPGP là tiêu chuẩn mã hóa email được sử dụng rộng rãi nhất. Nóđược Nhóm Công tác OpenPGP của Lực lượng Đặc nhiệm Kỹ thuật Internet(IETF) định nghĩa như một Tiêu chuẩn Đề xuất trong RFC 4880. OpenPGP banđầu có nguồn gốc từ phần mềm PGP, do Phil Zimmermann tạo ra
Không lâu sau khi ra đời, PGP đã được sử dụng bên ngoài Hoa Kỳ và vàotháng 2 năm 1993, Zimmermann trở thành mục tiêu của một cuộc điều tra củachính phủ Hoa Kỳ về việc xuất khẩu “vũ khí” không giấy phép Tại thời điểm
đó, các hệ thống mật mã với khóa lớn hơn 40bit được xếp hạng cùng với vũ khítrong khi PGP chưa bao giờ sử dụng khóa có độ dài nhỏ hơn 128bit Mức hìnhphạt cho tội nói trên là khá nặng nhưng cuộc điều tra đã đột ngột dừng lại mà
Trang 34Chính sách hạn chế xuất khẩu mật mã vẫn còn hiệu lực nhưng đã đượcnới lỏng rất nhiều kể từ thập kỷ 1990 Từ năm 2000 trở đi thì việc tuân thủ cácchính sách này không còn là điều khó khăn nữa PGP không còn được xếp là vũkhí không được phép xuất khẩu tới bất kỳ nơi nào nếu không bị cấm tại nơi đó
Đội ngũ phát triển của Zimmermann tiếp tục đưa ra phiên bản PGP3.Phiên bản này có nhiều cải thiện về an toàn, trong đó cấu trúc mới của chứngthực đã được sửa vài lỗi nhỏ của phiên bản 2.x cũng như cho phép các khóakhác nhau cho quá trình mã hóa và ký xác minh Bên cạnh đó, xuất phát từ bàihọc về bản quyền và xuất khẩu, PGP3 đã loại bỏ hoàn toàn bản quyền PGP3 sửdụng thuật toán mật mã khóa đối xứng CAST-128 (còn gọi là CAST5) và thuậttoán mật mã khóa bất đối xứng DSA và Elgamal Các thuật toán này đều không
bị ràng buộc bởi bản quyền
Do tầm ảnh hướng lớn của PGP trên phạm vi thế giới (được xem là hệthống mật mã chất lượng cao được sử dụng nhiều nhất), rất nhiều nhà phát triểnmuốn các phần mềm của họ làm việc được với PGP5 Vì thế một tiêu chuẩn mởcho PGP là điều cực kỳ quan trọng đối với công ty cũng như cộng đồng sử dụngmật mã
Ngay từ năm 1997 đã có một hệ thống tuân thủ theo các tiêu chuẩn củaPGP với bản quyền PGP2 nhận được từ Zimmermann
Vì vậy vào tháng 7 năm 1997, PGP Inc đề xuất với IETF về một tiêuchuẩn mở có tên là OpenPGP PGP Inc cho phép IETF quyền sử dụng tênOpenPGP cho tiêu chuẩn cũng như các chương trình tuân theo tiêu chuẩn mớinày IETF chấp thuận đề xuất và thành lập nhóm làm việc về OpenPGP
Hiện nay, OpenPGP là một tiêu chuẩn Internet và được quy định tại RFC
4880 OpenPGP vẫn đang trong giai đoạn phát triển và quy định tiếp theo củaRFC 4880 đang được nhóm làm việc tiếp tục hoàn thiện
Ngoài ra, nhiều nhà cung cấp khác cũng phát triển các phần mềm dựa trênOPenPGP Các phiên bản PGP xuất hiện sau khi có tiêu chuẩn vẫn tuân theohoặc hỗ trợ OpenPGP
Trang 35Ứng dụng
Một trong những ứng dụng phổ biến nhất của OpenPGP là bảo mật email.OpenPGP chuyển email mà nó bảo vệ thành một chuỗi các ký tự không thể đọcđược (văn bản mã hóa) và chỉ có thể được giải mã nếu có khóa giải mã tươngứng Trên thực tế, việc bảo mật các tin nhắn văn bản cũng sử dụng cơ chế tương
tự, và cũng có một số ứng dụng phần mềm cho phép OpenPGP được triển khaibên trên các Ứng dụng khác, nghĩa là bổ sung thêm một hệ thống mã hóa vàocác dịch vụ nhắn tin không bảo mật
Mặc dù OpenPGP chủ yếu được sử dụng để bảo mật thông tin liên lạc trênmạng internet, nhưng nó cũng có thể được sử dụng để mã hóa các thiết bị riêng
lẻ Trong trường hợp này, OpenPGP có thể được sử dụng cho các phân vùng đĩacủa máy tính hoặc thiết bị di động Bằng cách mã hóa đĩa cứng, người dùng phảicung cấp mật khẩu mỗi khi hệ thống khởi động
Facebook cho phép người dùng sử dụng chuẩn mã hóa OpenPGP nhằmbảo vệ email thông báo gửi bởi công ty, và chia sẻ khóa mã hóa công khai vớibạn bè Điều này giúp người dùng bảo vệ những tin nhắn riêng tư và nhạy cảmcủa người dùng trước tin tặc Facebook cho biết họ đang dần dần triển khai mộttính năng mới cho phép người dùng thêm khóa công khai OpenPGP vào hồ sơcủa họ; khóa này có thể sử dụng để mã hóa email thông báo ‘end-to-end’ gửi từFacebook đến tài khoản email đăng kí của bạn
Kể từ khi được phát triển vào năm 1991, OpenPGP đã là một công cụthiết yếu để bảo vệ dữ liệu và hiện được sử dụng trong nhiều ứng dụng khácnhau, cung cấp sự riêng tư, tính bảo mật và xác thực cho một số hệ thống truyềnthông và nhà cung cấp dịch vụ kỹ thuật số Mặc dù phát hiện năm 2018 về lỗhổng EFAIL đã gây ra những lo ngại đáng kể về khả năng tồn tại của giao thức,công nghệ cốt lõi vẫn được coi là mạnh mẽ và hợp lý về mặt mật mã Điều đángchú ý là các cách triển khai OpenPGP khác nhau có thể mang đến các mức độbảo mật khác nhau
2.1.2 Các tính năng mới của phiên bản OpenPGPv4 so với các phiên bản
Trang 36OpenPGP sử dụng thư viện mật mã OpenPGP.js, được sử dụng phổ biếnnhất để mã hóa email. ProtonMail, Mailvelope và FlowCrypt đều sử dụngOpenPGP.js.
Tiêu chuẩn OpenPGP, được xuất bản lần đầu tiên vào những năm 1990,giống như hầu hết mọi thứ, đều yêu cầu bảo trì và cập nhật cho cả tính bảo mật
và khả năng sử dụng. "Làm mới thư viện mật mã" của tiêu chuẩn đang đượcthực hiện , bổ sung các thuật toán mã hóa hiện đại và loại bỏ các thuật toán lỗithời. Để cải thiện khả năng sử dụng, các ứng dụng email khác nhau hiện chophép người dùng mã hóa liên lạc của họ một cách liền mạch mà không cần quản
lý khóa của họ hoặc của những người trong danh bạ của họ
Được phát hành lần đầu vào năm 2014, OpenPGP.js bắt đầu dựa trên mộtnguyên mẫu ban đầu có tên là GPG4B browser, dựa trên một số tập lệnh củaHerbert Hanewinkel (trong số những người đóng góp khác). Phiên bản thứ haicủa OpenPGP.js, được phát hành vào năm 2016, đã được làm lại hoàn toàn để
sử dụng Uint8Arrays thay vì các chuỗi (giúp tăng đáng kể hiệu suất của nó) vàcác mô-đun ES6 hiện đại hơn là các mô-đun CommonJS trong nội bộ. Phiên bản
3 và 4, cả hai đều được phát hành vào năm 2018, đã bổ sung hỗ trợ cho mật mãđường cong Elliptic (ECC) và phát trực tuyến, tương ứng
1 Tạo khóa
Trong OpenPGP.js phiên bản 4, RSA được sử dụng khi tạo khóa mới theomặc định. Mặc dù ECC nhanh hơn và an toàn hơn, nhưng Curve25519 vẫn chưađược tiêu chuẩn hóa trong đặc tả OpenPGP, vì vậy OpenPGP.js phiên bản 5 hiệntạo khóa bằng ECC theo mặc định
2 Chỉ nhập các mô-đun cần thiết
Tương tự như vậy, trong khi OpenPGP.js đã sử dụng mô-đun ES6 nội bộtrong nhiều năm, phiên bản 4 vẫn không xuất bản mô-đun ES6 thích hợp. Thayvào đó, nó chỉ xuất bản một mô-đun Univeral Module Definition (UMD) có thểchạy cả trong trình duyệt và trên Node.js. Trong phiên bản 5, điều này thay đổibằng cách xuất bản các mô-đun riêng biệt cho trình duyệt và Node.js (cả ES6 và
Trang 37không phải ES6), giúp người dùng thư viện dễ dàng nhập OpenPGP.js trên tất cảcác nền tảng và (khi sử dụng mô-đun ES6) chỉ nhập những phần cần thiết.
3 Từ chối mật mã yếu
Ngoài ra còn có nhiều cải tiến bảo mật khác. Ví dụ: khóa RSA 1024 bit,khóa ElGamal và DSA được coi là không an toàn và bị từ chối theo mặcđịnh. Ngoài ra, trong đó phiên bản 4 đã được mặc định là mã hóa AES, phiênbản 5 hiện từ chối mã hóa hoàn toàn bằng các thuật toán yếu hơn theo mặc định,ngay cả khi khóa công khai tuyên bố chỉ hỗ trợ một thuật toán yếu hơn. Thayvào đó, nó giả định rằng tất cả các triển khai OpenPGP đều hỗ trợ AES
2.2 Cách thức bảo mật thư điện tử của giao thức OpenPGP v5
2.2.1 Các mô hình bảo mật thư điện tử
Như đã đề cập ở phần trên thì OpenPGP sẽ bảo mật nội dung Email bằng
kỹ thuật mã hóa và ký số Trong phần này đồ án sẽ trình bày ba mô hình bảo mậtthư điện tử của giao thức PGP là:
- Mô hình PGP chỉ đảm bảo tính xác thực thông điệp
- Mô hình PGP chỉ đảm bảo tính bí mật thông điệp
- Mô hình PGP đảm bảo tính xác thực và bí mật thông điệp
Để thuận tiện cho việc mô tả hoạt động của các mô hình PGP, có các kýhiệu sau:
H: Hàm băm một chiều
EC: Hàm mã hóa khóa đối xứng
DC: Hàm giải mã khóa đối xứng
EP: Hàm mã hóa khóa bất đối xứng
DP: Hàm giải mã khóa bất đối xứng
Z: Hàm nén
Z-1: Hàm giải nén
KUa: Khóa công khai của bên A
KRa: Khóa riêng của bên A
KUb: Khóa công khai của bên B
Trang 38Ks: Khóa phiên
||: Phép kết hợp
Mô hình OpenPGP chỉ đảm bảo tính xác thực thông điệp
Hình 2.5: Mô hình OpenPGP chỉ đảm bảo tính xác thực thông điệp
Mô hình này sử dụng chữ ký số để xác thực tính toàn vẹn và chủ thể gửithông điệp Điều kiện thực hiện mô hình này là bên gửi A phải sở hữu khóariêng KRa của A và bên nhận B phải sở hữu khóa công khai KUa của A
Quá trình thực hiện gửi/nhận thông điệp M đảm bảo tính xác thực tại mỗibên như sau:
- Bên gửi A:
+ Soạn thư M;
+ Tính giá trị hàm băm SHA-256 của nội dung thư H(M);
+ Dùng RSA mã hóa giá trị hàm băm bằng khóa riêng của người gửiE[KRa,H(M)];
+ Gán E[KRa,H(M)] vào nội dung thư
+ Nén và gửi đi
- Bên nhận B:
+ Giải nén thư nhận được
+ Tách kết quả mã hóa hàm băm E[KRa,H(M)] ra khỏi nội dung thư;+ Tính giá trị hàm băm SHA-256 H(M) của nội dung thư;
+ Dùng khóa công khai của người gửi giải mã giá trị E[KRa,H(M)] rồi sosánh với giá trị băm vừa thu được
Trang 39Nếu kết quả bằng nhau thì: Người nhận đảm bảo rằng nội dung thư Mkhông bị sửa đổi do kẻ tấn công không có khóa bí mật nên không thể tính đúnggiá trị băm trên thông báo đã sửa đổi Đồng thời người nhận đảm bảo rằng thôngbáo đến từ người gửi vì chỉ có người gửi có khóa bí mật.
Nếu kết quả khác nhau thì nội dung thư M có thể đã bị sửa đổi, hoặckhông được ký và gửi bởi bên A
Mô hình OpenPGP chỉ đảm bảo tính bí mật thông điệp
Hình 2.6: Mô hình OpenPGP chỉ đảm bảo tính bí mật thông điệp
Mô hình này sử dụng kết hợp giữa mã hóa khóa đối xứng và mã hóa khóabất đối xứng để đảm bảo tính bí mật của thông điệp
Điều kiện thực hiện mô hình này là bên gửi A phải có khóa công khaiKUb của B
Quá trình thực hiện gửi/nhận thông điệp M đảm bảo tính bí mật tại mỗibên như sau:
- Bên gửi A:
+ Người gửi tạo số giả ngẫu nhiên 128 bit;
+ Nén nội dung thư rồi mã hóa bằng thuật toán mã hóa (AES) dùng sốgiả ngẫu nhiên vừa sinh ra làm khóa phiên liên lạc Ks tạo ra E[Ks,M];
+ Mã hóa số giả ngẫu nhiên (khóa bí mật Ks) bằng khóa công khai củangười nhận tạo ra E[KUb,Ks] rồi gắn vào đầu thư;
+ Gửi bản mã dữ liệu cho người nhận
- Bên nhận B:
Trang 40+ Dùng khóa bí mật của người nhận KRb giải mã khóa bí mật Ks;
+ Dùng khóa Ks giải mã giá trị E[Ks, M] để được nội dung thư ở dạngnén
+ Giải nén để được nội dung thư ở dạng đọc được
Kẻ tấn công không thể biết được nội dung thư vì không có khóa bí mậtcủa người nhận để giải mã khóa bí mật Ks rồi dùng Ks giải mã nội dung thư
Mô hình OpenPGP đảm bảo tính bí mật và xác thực thông điệp
Mô hình này là sự kết hợp của cả 2 mô hình đã mô tả ở trên Ta sẽ sửdụng chữ ký số để xác minh tính toàn vẹn và chủ thể của thông điệp Đồng thời
mã hóa bằng khoá đối xứng và mã hóa bằng khoá bất đối xứng để đảm bảo tínhbảo mật của thông điệp
Điều kiện để thực hiện được mô hình này là cả 2 bên gửi và nhận đều phải
có cặp khóa công khai, khoá bí mật của riêng mình và có khoá công khai của đốiphương Theo đó, bên gửi A thực hiện ký và mã hóa thông điệp, còn bên nhận Bthực hiện giải mã và kiểm tra chữ ký thông điệp
Hình 2.7: Mô hình OpenPGP đảm bảo tính xác thực và bí mật
- Bên gửi A:
+ Soạn thư;
+ Người gửi tạo số giả ngẫu nhiên 128 bit;
+ Tính giá trị hàm băm SHA-256 của nội dung thư H(M);
+ Dùng RSA mã hóa giá trị hàm băm bằng khóa riêng của người gửiE[KRa,H(M)];
+ Gán E[KRa,H(M)] vào nội dung thư được M||E[KRa,H(M)];