Bảo mật mạng - Lớp ứng dụng

Các dịch vụ kinh doanh khác nhau hiện được cung cấp trực tuyến thông qua các ứng dụng máy khách-máy chủ. Các hình thức phổ biến nhất là ứng dụng web và e-mail. Trong cả hai ứng dụng, máy khách giao tiếp với máy chủ được chỉ định và nhận các dịch vụ.

Trong khi sử dụng dịch vụ từ bất kỳ ứng dụng máy chủ nào, máy khách và máy chủ trao đổi nhiều thông tin trên mạng nội bộ hoặc Internet bên dưới. Chúng tôi nhận thức được rằng các giao dịch thông tin này rất dễ bị tấn công.

An ninh mạng đòi hỏi phải bảo mật dữ liệu chống lại các cuộc tấn công trong khi nó được truyền trên mạng. Để đạt được mục tiêu này, nhiều giao thức bảo mật thời gian thực đã được thiết kế. Giao thức như vậy cần cung cấp ít nhất các mục tiêu chính sau:

  • Các bên có thể thương lượng tương tác để xác thực lẫn nhau.
  • Thiết lập khóa phiên bí mật trước khi trao đổi thông tin trên mạng.
  • Trao đổi thông tin dưới dạng mã hóa.

Điều thú vị là các giao thức này hoạt động ở các lớp khác nhau của mô hình mạng. Ví dụ, giao thức S / MIME hoạt động ở lớp Ứng dụng, giao thức SSL được phát triển để hoạt động ở lớp truyền tải và giao thức IPsec hoạt động ở lớp Mạng.

Trong chương này, chúng ta sẽ thảo luận các quy trình khác nhau để đạt được bảo mật cho giao tiếp e-mail và các giao thức bảo mật liên quan. Phương pháp bảo mật DNS được đề cập sau đó. Trong các chương sau, các giao thức để đạt được bảo mật web sẽ được mô tả.

Bảo mật e-mail

Ngày nay, e-mail đã trở thành ứng dụng mạng được sử dụng rất rộng rãi. Hãy thảo luận ngắn gọn về cơ sở hạ tầng e-mail trước khi tiếp tục tìm hiểu về các giao thức bảo mật e-mail.

Cơ sở hạ tầng e-mail

Cách đơn giản nhất để gửi e-mail là gửi một tin nhắn trực tiếp từ máy của người gửi đến máy của người nhận. Trong trường hợp này, điều cần thiết là cả hai máy phải chạy trên mạng đồng thời. Tuy nhiên, thiết lập này là không thực tế vì người dùng đôi khi có thể kết nối máy của họ với mạng.

Do đó, khái niệm thiết lập máy chủ e-mail đã xuất hiện. Trong thiết lập này, thư được gửi đến máy chủ thư có sẵn vĩnh viễn trên mạng. Khi máy của người nhận kết nối với mạng, nó sẽ đọc thư từ máy chủ thư.

Nói chung, cơ sở hạ tầng e-mail bao gồm một mạng lưới các máy chủ thư, còn được gọi là Message Transfer Agents (MTA) và máy khách chạy chương trình e-mail bao gồm Tác nhân người dùng (UA) và MTA cục bộ.

Thông thường, một tin nhắn e-mail được chuyển tiếp từ UA của nó, đi qua lưới các MTA và cuối cùng đến UA trên máy của người nhận.

Các giao thức được sử dụng cho e-mail như sau:

  • Giao thức truyền thư đơn giản (SMTP) được sử dụng để chuyển tiếp thư e-mail.

  • Giao thức Bưu điện (POP) và Giao thức Truy cập Thư Internet (IMAP) được sử dụng để truy xuất thư của người nhận từ máy chủ.

MIME

Tiêu chuẩn e-mail Internet cơ bản được viết vào năm 1982 và nó mô tả định dạng của thông điệp e-mail được trao đổi trên Internet. Nó chủ yếu hỗ trợ tin nhắn e-mail được viết dưới dạng văn bản trong bảng chữ cái La Mã cơ bản.

Đến năm 1992, nhu cầu được cải thiện như cũ. Do đó, một Phần mở rộng Thư Internet Đa năng (MIME) tiêu chuẩn bổ sung đã được xác định. Nó là một tập hợp các phần mở rộng cho tiêu chuẩn Internet E-mail cơ bản. MIME cung cấp khả năng gửi e-mail bằng các ký tự khác với các ký tự của bảng chữ cái La Mã cơ bản như bảng chữ cái Cyrillic (được sử dụng bằng tiếng Nga), bảng chữ cái Hy Lạp hoặc thậm chí là các ký tự lý tưởng của Trung Quốc.

Một nhu cầu khác của MIME là gửi nội dung không phải văn bản, chẳng hạn như hình ảnh hoặc video clip. Do tính năng này, tiêu chuẩn MIME đã được áp dụng rộng rãi với SMTP để giao tiếp qua e-mail.

Dịch vụ bảo mật e-mail

Việc sử dụng ngày càng nhiều giao tiếp e-mail cho các giao dịch quan trọng và quan trọng đòi hỏi phải cung cấp một số dịch vụ bảo mật cơ bản như sau:

  • Confidentiality - Thư điện tử không được đọc bởi bất kỳ ai ngoại trừ người nhận.

  • Authentication - Người nhận e-mail có thể chắc chắn về danh tính của người gửi.

  • Integrity - Đảm bảo với người nhận rằng thông điệp e-mail không bị thay đổi kể từ khi nó được chuyển đi bởi người gửi.

  • Non-repudiation - Người nhận e-mail có thể chứng minh với bên thứ ba rằng người gửi đã thực sự gửi thư.

  • Proof of submission - Người gửi thư điện tử được xác nhận rằng thư đã được chuyển đến hệ thống chuyển thư.

  • Proof of delivery - Người gửi nhận được xác nhận rằng người nhận đã nhận được tin nhắn.

Các dịch vụ bảo mật như quyền riêng tư, xác thực, tính toàn vẹn của thông điệp và tính không từ chối thường được cung cấp bằng cách sử dụng mật mã khóa công khai.

Thông thường, có ba kịch bản khác nhau của giao tiếp qua e-mail. Chúng tôi sẽ thảo luận về các phương pháp đạt được các dịch vụ bảo mật trên trong các tình huống này.

Email một-một

Trong trường hợp này, người gửi chỉ gửi một e-mail đến một người nhận. Thông thường, không quá hai MTA tham gia vào cuộc giao tiếp.

Giả sử một người gửi muốn gửi một e-mail bí mật cho người nhận. Việc cung cấp quyền riêng tư trong trường hợp này đạt được như sau:

  • Người gửi và người nhận có khóa công khai-riêng của họ lần lượt là (S PVT , S PUB ) và (R PVT , R PUB ).

  • Người gửi tạo một khóa đối xứng bí mật, K S để mã hóa. Mặc dù người gửi có thể đã sử dụng R PUB để mã hóa, nhưng một khóa đối xứng được sử dụng để mã hóa và giải mã nhanh hơn.

  • Người gửi mã hóa thông điệp bằng khóa K S và cũng mã hóa K S bằng khóa công khai của người nhận, R PUB .

  • Người gửi sẽ gửi thông điệp được mã hóa và K S được mã hóa cho người nhận.

  • Đầu tiên người nhận nhận được K S bằng cách giải mã K S được mã hóa bằng cách sử dụng khóa riêng của mình, R PVT .

  • Người nhận sau đó giải mã thông điệp bằng khóa đối xứng, K S .

Nếu các dịch vụ toàn vẹn, xác thực và không thoái thác thông báo cũng cần thiết trong trường hợp này, các bước sau sẽ được thêm vào quy trình trên.

  • Người gửi tạo ra mã băm của tin nhắn và ký số vào hàm băm này bằng khóa riêng của mình, S PVT .

  • Người gửi gửi mã băm đã ký này đến người nhận cùng với các thành phần khác.

  • Người nhận sử dụng khóa công khai S PUB và trích xuất mã băm nhận được dưới chữ ký của người gửi.

  • Người nhận sau đó băm thông điệp đã giải mã và bây giờ so sánh hai giá trị băm. Nếu chúng khớp nhau, tính toàn vẹn của thông điệp được coi là đạt được.

  • Ngoài ra, người nhận chắc chắn rằng tin nhắn được gửi bởi người gửi (xác thực). Và cuối cùng, người gửi không thể phủ nhận rằng anh ta đã không gửi tin nhắn (không thoái thác).

Email từ một đến nhiều người nhận

Trong trường hợp này, người gửi sẽ gửi một thông điệp e-mail đến hai hoặc nhiều người nhận. Danh sách được quản lý bởi chương trình e-mail của người gửi (UA + MTA cục bộ). Tất cả người nhận đều nhận được cùng một tin nhắn.

Giả sử, người gửi muốn gửi e-mail bí mật cho nhiều người nhận (giả sử R1, R2 và R3). Việc cung cấp quyền riêng tư trong trường hợp này đạt được như sau:

  • Người gửi và tất cả người nhận đều có cặp khóa công khai-riêng của họ.

  • Người gửi tạo ra một chìa khóa đối xứng bí mật, K s và mã hóa thông điệp với phím này.

  • Sau đó, người gửi mã hóa K S nhiều lần với các khóa công khai của R1, R2 và R3, nhận được R1 PUB (K S ), R2 PUB (K S ) và R3 PUB (K S ).

  • Người gửi sẽ gửi thông điệp được mã hóa và K S được mã hóa tương ứng cho người nhận. Ví dụ, người nhận 1 (R1) nhận được thông điệp được mã hóa và R1 PUB (K S ).

  • Đầu tiên, mỗi người nhận trích xuất khóa K S bằng cách giải mã K S được mã hóa bằng khóa riêng của mình.

  • Mỗi người nhận sau đó giải mã thông điệp bằng khóa đối xứng, K S .

Để cung cấp tính toàn vẹn, xác thực và không thoái thác của thư, các bước phải làm tương tự như các bước được đề cập ở trên trong kịch bản e-mail một-một.

E-mail danh sách một đến phân phối

Trong trường hợp này, người gửi gửi một thông điệp e-mail đến hai hoặc nhiều người nhận nhưng danh sách người nhận không được quản lý cục bộ bởi người gửi. Nói chung, máy chủ e-mail (MTA) duy trì danh sách gửi thư.

Người gửi gửi thư đến MTA quản lý danh sách gửi thư và sau đó, thư được MTA phát nổ cho tất cả người nhận trong danh sách.

Trong trường hợp này, khi người gửi muốn gửi một e-mail bí mật đến những người nhận trong danh sách gửi thư (giả sử R1, R2 và R3); sự riêng tư được đảm bảo như sau:

  • Người gửi và tất cả người nhận đều có cặp khóa công khai-riêng của họ. Máy chủ Exploder có một cặp khóa riêng-công khai cho mỗi danh sách gửi thư (Danh sách PUB , Danh sách PVT ) được duy trì bởi nó.

  • Người gửi tạo một khóa đối xứng bí mật K s và sau đó mã hóa thông điệp bằng khóa này.

  • Sau đó, người gửi mã hóa K S bằng khóa công khai được liên kết với danh sách, thu được Danh sách PUB (K S ).

  • Người gửi gửi tin nhắn được mã hóa và Danh sách PUB (K S ). MTA người khai phá giải mã Danh sách PUB (K S ) sử dụng Danh sách PVT và có được K S .

  • Bộ giải mã mã hóa K S với càng nhiều khóa công khai càng có nhiều thành viên trong danh sách.

  • Exploder chuyển tiếp tin nhắn đã được mã hóa và K S được mã hóa tương ứng đến tất cả người nhận trong danh sách. Ví dụ, Exploder chuyển tiếp thông điệp được mã hóa và R1 PUB (K S ) tới người nhận 1, v.v.

Để cung cấp tính toàn vẹn của thư, xác thực và không từ chối, các bước cần tuân theo tương tự như đã đưa ra trong trường hợp email một-một.

Điều thú vị là chương trình e-mail sử dụng phương pháp bảo mật trên để bảo mật e-mail dự kiến ​​sẽ hoạt động cho tất cả các tình huống có thể được thảo luận ở trên. Hầu hết các cơ chế bảo mật trên cho e-mail được cung cấp bởi hai chương trình phổ biến, Pretty Good Privacy (PGP) và S / MIME. Chúng tôi thảo luận cả hai trong các phần sau.

PGP

Pretty Good Privacy(PGP) là một chương trình mã hóa e-mail. Nó đã trở thành tiêu chuẩn thực tế để cung cấp các dịch vụ bảo mật cho giao tiếp e-mail.

Như đã thảo luận ở trên, nó sử dụng mật mã khóa công khai, mật mã khóa đối xứng, hàm băm và chữ ký số. Nó cung cấp -

  • Privacy
  • Xác thực người gửi
  • Tính toàn vẹn của thông điệp
  • Non-repudiation

Cùng với các dịch vụ bảo mật này, nó cũng cung cấp hỗ trợ nén dữ liệu và quản lý khóa. PGP sử dụng các thuật toán mật mã hiện có như RSA, IDEA, MD5, v.v., thay vì phát minh ra những thuật toán mới.

Hoạt động của PGP

  • Băm tin nhắn được tính toán. (Thuật toán MD5)

  • Kết quả băm 128 bit được ký bằng khóa riêng của người gửi (Thuật toán RSA).

  • Chữ ký điện tử được nối với tin nhắn và kết quả được nén.

  • Một khóa đối xứng 128 bit, K S được tạo ra và được sử dụng để mã hóa thông điệp nén với IDEA.

  • K S được mã hóa bằng khóa công khai của người nhận bằng thuật toán RSA và kết quả được nối vào thông điệp được mã hóa.

Định dạng của thông báo PGP được hiển thị trong sơ đồ sau. Các ID cho biết khóa nào được sử dụng để mã hóa KS và khóa nào được sử dụng để xác minh chữ ký trên băm.

Trong lược đồ PGP, một tin nhắn được ký và mã hóa, sau đó MIME được mã hóa trước khi truyền.

Chứng chỉ PGP

Chứng chỉ khóa PGP thường được thiết lập thông qua một chuỗi ủy thác. Ví dụ, khóa công khai của A được ký bởi B bằng khóa công khai của anh ta và khóa công khai của B được ký bởi C bằng khóa công khai của anh ta. Khi quá trình này tiếp tục, nó thiết lập một mạng lưới tin cậy.

Trong môi trường PGP, bất kỳ người dùng nào cũng có thể hoạt động như một cơ quan chứng nhận. Bất kỳ người dùng PGP nào cũng có thể chứng nhận khóa công khai của người dùng PGP khác. Tuy nhiên, chứng chỉ đó chỉ có giá trị đối với người dùng khác nếu người dùng nhận ra người chứng nhận là người giới thiệu đáng tin cậy.

Một số vấn đề tồn tại với một phương pháp chứng nhận như vậy. Có thể khó tìm một chuỗi dẫn từ khóa công khai đã biết và đáng tin cậy đến khóa mong muốn. Ngoài ra, có thể có nhiều chuỗi có thể dẫn đến các khóa khác nhau cho người dùng mong muốn.

PGP cũng có thể sử dụng cơ sở hạ tầng PKI với cơ quan cấp chứng chỉ và khóa công khai có thể được chứng nhận bởi CA (chứng chỉ X.509).

S / MIME

S / MIME là viết tắt của Secure Multipurpose Internet Mail Extension. S / MIME là một tiêu chuẩn e-mail an toàn. Nó dựa trên một tiêu chuẩn gửi thư điện tử không an toàn trước đó được gọi là MIME.

Hoạt động của S / MIME

Cách tiếp cận S / MIME tương tự như PGP. Nó cũng sử dụng mật mã khóa công khai, mật mã khóa đối xứng, hàm băm và chữ ký số. Nó cung cấp các dịch vụ bảo mật tương tự như PGP cho giao tiếp e-mail.

Các mật mã đối xứng phổ biến nhất được sử dụng trong S / MIME là RC2 và TripleDES. Phương thức khóa công khai thông thường là RSA và thuật toán băm là SHA-1 hoặc MD5.

S / MIME chỉ định kiểu MIME bổ sung, chẳng hạn như “application / pkcs7-mime”, để bao bọc dữ liệu sau khi mã hóa. Toàn bộ thực thể MIME được mã hóa và đóng gói thành một đối tượng. S / MIME có các định dạng thông điệp mật mã được tiêu chuẩn hóa (khác với PGP). Trên thực tế, MIME được mở rộng với một số từ khóa để xác định các phần được mã hóa và / hoặc đã ký trong thư.

S / MIME dựa trên chứng chỉ X.509 để phân phối khóa công khai. Nó cần PKI phân cấp từ trên xuống để hỗ trợ chứng nhận.

Khả năng sử dụng của S / MIME

Do yêu cầu phải có chứng chỉ từ cơ quan cấp chứng chỉ để triển khai, không phải tất cả người dùng đều có thể tận dụng S / MIME, vì một số người có thể muốn mã hóa thư, bằng cặp khóa công khai / riêng tư. Ví dụ, không có sự tham gia hoặc chi phí quản trị của các chứng chỉ.

Trong thực tế, mặc dù hầu hết các ứng dụng e-mail đều triển khai S / MIME, quy trình đăng ký chứng chỉ rất phức tạp. Thay vào đó, hỗ trợ PGP thường yêu cầu thêm một trình cắm và trình cắm đó đi kèm với tất cả những gì cần thiết để quản lý khóa. Web of Trust không thực sự được sử dụng. Mọi người trao đổi khóa công khai của họ qua một phương tiện khác. Sau khi lấy được, họ giữ một bản sao khóa công khai của những người thường trao đổi thư điện tử.

Lớp triển khai trong kiến ​​trúc mạng cho các lược đồ PGP và S / MIME được hiển thị trong hình sau. Cả hai chương trình này đều cung cấp bảo mật cấp độ ứng dụng cho giao tiếp e-mail.

Một trong các lược đồ, PGP hoặc S / MIME, được sử dụng tùy thuộc vào môi trường. Có thể cung cấp giao tiếp email điện tử an toàn trong mạng cố định bằng cách thích ứng với PGP. Để bảo mật e-mail qua Internet, nơi thường xuyên trao đổi thư với những người dùng mới chưa quen biết, S / MIME được coi là một lựa chọn tốt.

Bảo mật DNS

Trong chương đầu tiên, chúng tôi đã đề cập rằng kẻ tấn công có thể sử dụng DNS Cache Poisoning để thực hiện một cuộc tấn công vào người dùng mục tiêu. Domain Name System Security Extensions (DNSSEC) là một tiêu chuẩn Internet có thể ngăn chặn các cuộc tấn công như vậy.

Lỗ hổng của DNS chuẩn

Trong lược đồ DNS tiêu chuẩn, bất cứ khi nào người dùng muốn kết nối với bất kỳ tên miền nào, máy tính của họ sẽ liên hệ với máy chủ DNS và tra cứu địa chỉ IP được liên kết cho tên miền đó. Sau khi có được địa chỉ IP, máy tính sẽ kết nối với địa chỉ IP đó.

Trong chương trình này, không có quá trình xác minh nào liên quan. Máy tính yêu cầu máy chủ DNS của nó cung cấp địa chỉ được liên kết với một trang web, máy chủ DNS phản hồi bằng địa chỉ IP và máy tính của bạn chắc chắn chấp nhận nó là phản hồi hợp pháp và kết nối với trang web đó.

Việc tra cứu DNS thực sự diễn ra theo nhiều giai đoạn. Ví dụ: khi một máy tính yêu cầu “www.tutorialspoint.com”, việc tra cứu DNS được thực hiện theo một số giai đoạn:

  • Đầu tiên máy tính hỏi máy chủ DNS cục bộ (ISP cung cấp). Nếu ISP có tên này trong bộ nhớ cache của nó, nó sẽ phản hồi khác sẽ chuyển tiếp truy vấn tới “thư mục vùng gốc” nơi nó có thể tìm thấy “.com”. và trả lời vùng gốc.

  • Dựa trên câu trả lời, máy tính sẽ hỏi thư mục “.com” nơi nó có thể tìm thấy “tutorialspoint.com”.

  • Dựa trên thông tin nhận được, máy tính hỏi “tutorialspoint.com” nơi nó có thể tìm thấy www. tutorialspoint.com.

DNSSEC được xác định

Tra cứu DNS, khi được thực hiện bằng DNSSEC, bao gồm việc ký các câu trả lời của thực thể phản hồi. DNSSEC dựa trên mật mã khóa công khai.

Trong tiêu chuẩn DNSSEC, mọi vùng DNS đều có một cặp khóa công khai / riêng tư. Tất cả thông tin được gửi bởi máy chủ DNS đều được ký bằng khóa riêng của vùng gốc để đảm bảo tính xác thực. Máy khách DNS cần biết khóa công khai của khu vực để kiểm tra chữ ký. Ứng dụng khách có thể được định cấu hình trước bằng khóa công khai của tất cả các miền cấp cao nhất hoặc DNS gốc.

Với DNSSEC, quy trình tra cứu diễn ra như sau:

  • Khi máy tính của bạn hỏi vùng gốc nơi nó có thể tìm thấy .com, câu trả lời được máy chủ vùng gốc ký.

  • Máy tính kiểm tra khóa ký của vùng gốc và xác nhận rằng đó là vùng gốc hợp pháp với thông tin đúng.

  • Trong thư trả lời, vùng gốc cung cấp thông tin về khóa ký của máy chủ vùng .com và vị trí của nó, cho phép máy tính liên hệ với thư mục .com và đảm bảo nó là hợp pháp.

  • Sau đó, thư mục .com cung cấp khóa ký và thông tin cho tutorialspoint.com, cho phép nó liên hệ với google.com và xác minh rằng bạn được kết nối với tutorialspoint.com thực, như được xác nhận bởi các khu vực phía trên nó.

  • Thông tin được gửi ở dạng Bộ hồ sơ tài nguyên (RRSets). Ví dụ về RRSet cho tên miền “tutorialspoint.com” trong máy chủ “.com” cấp cao nhất được hiển thị trong bảng sau.

Tên miền Thời gian để sống Kiểu Giá trị
tutorialspoint.com 86400 NS dns.tutorialspoint.com
dns.tutorialspoint.com 86400 A 36..1.2.3
tutorialspoint.com 86400 CHÌA KHÓA 3682793A7B73F731029CE2737D ...
tutorialspoint.com 86400 SIG 86947503A8B848F5272E53930C ...
  • Bản ghi KEY là một khóa công khai của “tutorialspoint.com”.

  • Bản ghi SIG là hàm băm có chữ ký của máy chủ .com cấp cao nhất của các trường NS, A và bản ghi KEY để xác minh tính xác thực của chúng. Giá trị của nó là Kcom pvt (H (NS, A, KEY)).

Do đó, được coi là khi DNSSEC được triển khai đầy đủ, máy tính của người dùng có thể xác nhận rằng các phản hồi DNS là hợp pháp và đúng, đồng thời tránh các cuộc tấn công DNS được thực hiện thông qua nhiễm độc bộ nhớ cache DNS.

Tóm lược

Quá trình bảo mật thư điện tử đảm bảo tính bảo mật đầu cuối của thông tin liên lạc. Nó cung cấp các dịch vụ bảo mật về tính bí mật, xác thực người gửi, tính toàn vẹn của thư và không từ chối.

Hai chương trình đã được phát triển để bảo mật e-mail: PGP và S / MIME. Cả hai chương trình này đều sử dụng mật mã khóa bí mật và khóa công khai.

Tra cứu DNS tiêu chuẩn dễ bị tấn công như giả mạo DNS / nhiễm độc bộ nhớ cache. Bảo mật tra cứu DNS là khả thi thông qua việc sử dụng DNSSEC sử dụng mật mã khóa công khai.

Trong chương này, chúng ta đã thảo luận về các cơ chế được sử dụng ở lớp ứng dụng để cung cấp bảo mật mạng cho giao tiếp đầu cuối.