Tiêu chuẩn IMAPS 

IMAP (Giao thức truy cập thư Internet) là một giao thức chuẩn được sử dụng bởi ứng dụng email để truy cập email được lưu trữ trên máy chủ thư từ xa. Các ứng dụng email khách sử dụng IMAP có thể sử dụng cổng 143 để thiết lập kết nối không bảo mật hoặc cổng 993 nếu họ yêu cầu kết nối an toàn qua IMAP qua SSL (IMAPS)...

I. Giới thiệu

IMAP (Giao thức truy cập thư Internet) là một giao thức chuẩn được sử dụng bởi ứng dụng email để truy cập email được lưu trữ trên máy chủ thư từ xa. Các ứng dụng email khách sử dụng IMAP có thể sử dụng cổng 143 để thiết lập kết nối không bảo mật hoặc cổng 993 nếu họ yêu cầu kết nối an toàn qua IMAP qua SSL (IMAPS). Được thiết kế bởi Mark Crispin vào năm 1986, IMAP đã trải qua nhiều lần sửa đổi và phiên bản mới nhất của nó – Phiên bản IMAP 4 (IMAP4rev1) đã được RFC 3501 xác định vào năm 2003.

IMAP, như POP, là giao thức được sử dụng bởi các tác nhân người dùng thư để truy xuất thư, cho một người dùng cụ thể từ máy chủ. IMAP là một giao thức gần đây cung cấp sự linh hoạt hơn, bao gồm hỗ trợ cho nhiều hộp thư cho mỗi người dùng. POP thường được sử dụng để chuyển tất cả các tin nhắn trong một hộp thư đến máy khách từ máy chủ; IMAP được thiết kế để lưu trữ thư trên máy chủ, cho phép chúng được sao chép và thao tác bởi máy khách. IMAP là một giao thức có khả năng hơn nhiều so với POP và tương ứng là khó thực hiện một cách an toàn.

Mặt khác, ý nghĩa bảo mật của IMAP rất giống với ý nghĩa bảo mật của POP. IMAP không cho phép mật khẩu không sử dụng được, nhưng không phải tất cả các máy chủ và máy khách IMAP đều hỗ trợ chúng. Tương tự, một tiêu chuẩn Internet đang phát triển sẽ cho phép IMAP sử dụng TLS để hỗ trợ mã hóa tin nhắn khi chúng đi qua giữa máy chủ và máy khách, nhưng hiện tại có rất ít máy chủ và máy khách hỗ trợ tùy chọn này. Ngoài ra còn có một cổng được gán cho IMAP qua SSL, được hỗ trợ bởi số lượng máy khách và máy chủ lớn hơn một chút. Trừ khi kiểm soát các máy chủ IMAP và đã cấu hình chúng để yêu cầu mật khẩu và mã hóa dữ liệu không thể sử dụng được, hoặc đang hạn chế kết nối với IMAP qua SSL, nên IMAP đang truyền mật khẩu có thể sử dụng lại và dữ liệu không được mã hóa.

Trong bài viết này, tác giả sẽ giới thiệu tổng quan về IMAP, SSL và tính năng và cách sử dụng Giao thức truy cập tin nhắn Internet an toàn – IMAP qua SSL / TLS.

II. Nội dung chính của IMAPS

IMAP (Giao thức truy cập thư Internet) là gì?

IMAP ra lệnh một cách cụ thể để kết nối với máy chủ email để tìm nạp email. Không giống như Giao thức Bưu điện, hay POP, là một giao thức email đơn giản, lấy các bản sao email từ máy chủ email, nhưng không thay đổi, IMAP cho phép liên lạc hai chiều. Điều này có nghĩa là nếu sử dụng IMAP thông qua ứng dụng email, những thay đổi được thực hiện trên ứng dụng email – chẳng hạn như thư bị xóa hoặc thư mục mới – sẽ phản ánh trên máy chủ email.

Giao thức truy cập thư Internet (IMAP) và Giao thức bưu điện (POP3) là các giao thức được sử dụng để truy xuất email và chúng được sử dụng bởi hầu hết mọi máy khách và máy chủ thư hiện đại.

Sự khác biệt giữa IMAP và POP và các tính năng độc đáo khác của Giao thức IMAP:

IMAP hỗ trợ cả chế độ hoạt động trực tuyến và ngoại tuyến. Đây là một phương pháp thay thế cho POP3 để nhận email và được thiết kế để giải quyết các điểm yếu trong POP cũng như để cung cấp ang các tính năng gửi và quản lý email. Trong khi các ứng dụng email POP3 tải xuống, xóa và lưu trữ thư ngoại tuyến, các ứng dụng email IMAP thường lưu trữ tất cả các thư và thư mục của chúng trên máy chủ và máy khách quản lý các thư thư từ xa này bằng cách gửi một loạt lệnh đến máy chủ.

Các ứng dụng thư IMAP có thể dường như đang quản lý thư cục bộ, nhưng thực tế chúng đang truy cập thư trực tuyến. Một người dùng có thể quản lý cùng một hộp thư thông qua nhiều máy khách trong bất kỳ máy tính nào được cấu hình miễn là có kết nối Internet và máy chủ thư đang chạy. Bằng cách lưu trữ thư trực tuyến, người dùng không phải lo lắng rằng email của mình sẽ bị mất trong trường hợp xảy ra sự cố hệ thống hoặc PC bị đánh cắp,…

Tài khoản email IMAP cũng có thể được cấu hình để tải xuống một bản sao của thư được lưu trong bộ nhớ cache để sử dụng ngoại tuyến. Điều này khác với giao thức POP3 trong đó IMAP sao chép thư vào ứng dụng thư khách, trong khi POP3 chuyển email đến máy khách cục bộ thay thế. Với IMAP, máy chủ thư từ xa sẽ giữ lại một bản sao chính của email và POP3 sẽ xóa bản sao máy chủ của email sau khi tải xuống. Người dùng máy khách IMAP có thể xóa bản sao ngoại tuyến một cách an toàn mà không ảnh hưởng đến bản sao chính trên máy chủ.

Một tính năng của giao thức IMAP là các cờ cho phép các ứng dụng thư theo dõi các thư chưa đọc, đã đọc, trả lời hoặc xóa. Bằng cách lưu trữ các cờ trên máy chủ từ xa, các máy khách khác nhau được kết nối với cùng một hộp thư có thể phát hiện các thay đổi về trạng thái thư được tạo bởi các máy khách khác.

Quản lý nhiều hộp thư (còn được gọi là thư mục) trên máy chủ từ xa được hỗ trợ. Các máy khách IMAP4 sử dụng tính năng này để giữ Hộp thư đến được tổ chức. Hộp thư có thể được tạo, đổi tên hoặc xóa. Người dùng cũng có thể di chuyển tin nhắn giữa các hộp thư. Ứng dụng thư khách sử dụng giao thức IMAP trên một máy có thể tạo hộp thư trên máy chủ từ xa, sau đó hiển thị cho tất cả các chương trình thư khác được định cấu hình với cùng một tài khoản email IMAP. Vì các hộp thư được đồng bộ hóa với tất cả các ứng dụng thư khách, việc di chuyển và sắp xếp thư xung quanh sẽ tự động hiển thị cho những khách ang đó. Hộp thư IMAP có thể được đăng ký và / hoặc hủy đăng ký để chỉ giữ các thư mục quan trọng để truy cập nội dung dễ dàng giúp giữ thư và thư mục được sắp xếp. Các thư mục chưa đăng ký sẽ không bị xóa khỏi máy chủ, nhưng chúng sẽ không được hiển thị hoặc đưa vào tìm kiếm từ trong ứng dụng thư khách.

Giao thức IMAP cho phép khách ang tìm nạp và chỉ xem trước các tiêu đề của thư có lợi cho các kết nối dữ liệu bị chậm hoặc bị giới hạn. Người dùng cũng có thể quyết định tải xuống (hoặc không) các tệp đính kèm lớn qua kết nối chậm, cho phép họ tiết kiệm ang thông trên gói dữ liệu của họ.

Theo thời gian, lưu trữ thư sẽ phát triển trên máy chủ và người dùng IMAP có thể cần chú ý đến dung lượng lưu trữ email của họ so với những người dùng POP đó. Tuy nhiên, điều này đã trở thành một vấn đề ít hơn vì công nghệ tiên tiến và thu hẹp chi phí lưu trữ dẫn đến các nhà cung cấp dịch vụ email như Gmail và Yahoo cung cấp không gian lưu trữ rộng rãi cho các ứng dụng email của họ, mặc dù số lượng email ngày càng lớn với các tệp đính kèm nặng có thể nhanh chóng lấp đầy được chỉ định không gian lưu trữ.

Giao thức truy cập tin nhắn Internet an toàn IMAPS – IMAP qua SSL/TLS

SSL là một giao thức mã hóa cho truyền thông trực tuyến. Giao thức SSL cơ bản sử dụng cơ chế xác thực và “bắt tay”. Điều này có nghĩa là hai máy tính sử dụng SSL – máy khách và máy chủ kết nối – sử dụng chứng chỉ xác thực để xác minh danh tính. Mỗi máy tính sau đó đàm phán một thuật toán mã hóa để sử dụng. Khi họ đồng ý về một thuật toán, phần còn lại của phiên SSL sử dụng phương thức mã hóa đó để bảo mật tất cả dữ liệu được truyền.

Một lợi ích của SSL là nó cho phép sử dụng các giao thức truyền thông khác nhau. Ví dụ: việc sử dụng SSL điển hình nhất là kết hợp với Giao thức truyền siêu văn bản hoặc HTTP, để có thể kết nối với nhau; ví dụ, trang web của ngân hang, ứng dụng email khách ang sử dụng IMAP qua SSL được mã hóa. Bằng cách này, các giao dịch email chỉ xảy ra theo cách được mã hóa, trong khi vẫn sử dụng IMAP.

Các cổng “imaps” và “pop3s” riêng biệt đã được đăng ký để sử dụng với SSL. Việc sử dụng các cổng này không được khuyến khích trong các lệnh STARTTLS hoặc STLS.

Một số vấn đề đã được quan sát với các cổng riêng biệt cho các biến thể giao thức “an toàn” được mô tả như sau:

- Các cổng riêng biệt dẫn đến một lược đồ URL riêng biệt xâm nhập vào giao diện người dùng theo những cách không phù hợp. Ví dụ: nhiều trang web sử dụng ngôn ngữ như “nhấp vào đây nếu trình duyệt của bạn hỗ trợ SSL”. Đây là một quyết định trình duyệt thường có khả năng đưa ra nhiều hơn so với người dùng.

- Các cổng riêng biệt ngụ ý một mô hình “an toàn” hoặc “không an toàn”. Điều này có thể gây hiểu nhầm theo một số cách. Đầu tiên, trên thực tế, cổng “an toàn” có thể không được chấp nhận an toàn vì bộ mật mã bị tê liệt có thể được sử dụng. Điều này có thể đánh lừa người dùng vào một cảm giác an toàn sai lầm. Thứ hai, trên thực tế, cổng bình thường có thể được bảo mật bằng cách sử dụng cơ chế SASL bao gồm lớp bảo mật. Do đó, sự phân biệt cổng riêng biệt làm cho chủ đề phức tạp của chính sách bảo mật trở nên khó hiểu hơn. Một kết quả phổ biến của sự nhầm lẫn này là các quản trị viên tường lửa thường bị nhầm lẫn khi cho phép cổng “an toàn” và chặn cổng tiêu chuẩn. Đây có thể là một lựa chọn kém khi sử dụng phổ biến SSL với lớp mã hóa khóa 40 bit và xác thực mật khẩu văn bản thuần túy kém an toàn hơn các cơ chế mạnh của SASL như GSSAPI với Kerberos 5.

- Việc sử dụng các cổng riêng cho SSL đã khiến khách ang chỉ thực hiện hai chính sách bảo mật: sử dụng SSL hoặc không sử dụng SSL. Chính sách bảo mật mong muốn “sử dụng TLS khi khả dụng” sẽ rất phức tạp với mô hình cổng riêng biệt, nhưng đơn giản với STARTTLS.

- Số cổng là một nguồn tài nguyên hạn chế.

Internet Message Access Protocol (IMAP) so với SSLv3 / TLSv1 sử dụng cơ chế mở rộng STARTTLS để cung cấp vận chuyển thông điệp an toàn. Trước tiên, máy chủ sẽ gửi OK IMAP4rev1 cho biết dịch vụ đã sẵn ang. Phản hồi đầu tiên từ máy khách, nếu TLS được sử dụng, là một yêu cầu cho các khả năng của máy chủ. Nếu tiện ích mở rộng STARTTLS được bao gồm trong máy đo khả năng thì máy khách có thể yêu cầu STARTTLS. Sau đó, máy chủ phản hồi với tín hiệu OK để bắt đầu đàm phán TLS. Sau khi đàm phán hoàn tất, khách ang yêu cầu các khả năng của máy chủ một lần nữa vì chúng có thể thay đổi sau khi đàm phán kết thúc. Sau đó, định dạng tin nhắn tiêu chuẩn tiếp tục qua kết nối TLS đã được đàm phán. Dưới đây là một ví dụ về giao tiếp máy khách-máy chủ để thiết lập.

Thành phần Mail.dll IMAP hỗ trợ các giao thức Lớp cổng bảo mật (SSL) và Giao thức bảo mật lớp vận chuyển (TLS) để xác thực máy chủ và bảo mật liên lạc giữa máy khách và máy chủ.

Có hai chế độ trong đó Mail.dll có thể hoạt động:

- Ngẫu nhiên – nơi ứng dụng khách Mail.dll IMAP kết nối ngay lập tức bằng kênh bảo mật.

- Rõ ang – nơi khách ang Mail.dll IMAP kết nối trên kênh không bảo mật trước và sau đó bảo mật liên lạc bằng cách ban hành lệnh STARTTLS. Chế độ này đôi khi được gọi là TLS.

Trong cả hai trường hợp, theo mặc định, Lớp cổng bảo mật (SSL) 3.0 và Bảo mật lớp vận chuyển (TLS) 1.0 – 1.2 đều được chấp nhận để liên lạc an toàn. Có thể thay đổi mặc định bằng thuộc tính Imap.SSLConfiguration.
Ứng dụng khách IMAP có thể quyết định bảo mật kênh, nếu máy chủ IMAP rõ ang cấm đăng nhập vào kênh không bảo mật và đang sử dụng phương thức UseBestLogin.

Hình 1: Giao thức truy cập tin nhắn Internet an toàn IMAPS

 

Chế độ SSL ngầm định IMAP

Thành phần Mail.dll IMAP kết nối bằng kênh SSL an toàn. Cần biết trước, nếu máy chủ hỗ trợ kết nối SSL – hãy hỏi quản trị viên. Thông thường, IMAP qua SSL được liên kết với cổng 993, nhưng điều này không phải lúc nào cũng đúng. Có thể chỉ định cổng chuẩn khác nhau bằng cách sử dụng quá tải phương thức ConnectSSL.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

// C# version

 

using System;

using System.Collections.Generic;

using Limilabs.Client.IMAP;

using Limilabs.Mail;

 

class Program

{

static void Main(string[] args)

{

using (Imap imap = new Imap())

{

imap.ConnectSSL(“imap.example.com”);

imap.UseBestLogin(“user”, “password”);

 

imap.SelectInbox();

 

List<long> uids = imap.Search(Flag.Unseen);

 

foreach (long uid in uids)

{

var eml = imap.GetMessageByUID(uid);

Imail email = new MailBuilder()

.CreateFromEml(eml);

 

Console.WriteLine(email.Subject);

}

imap.Close();

}

}

}

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

‘ VB.NET version

 

Imports System

Imports System.Collections.Generic

Imports Limilabs.Client.IMAP

Imports Limilabs.Mail

 

Public Module Module1

Public Sub Main(ByVal args As String())

 

Using imap As New Imap()

imap.ConnectSSL(“imap.example.com”)

imap.UseBestLogin(“user”, “password”)

 

imap.SelectInbox()

 

Dim uids As List(Of Long) = imap.Search(Flag.Unseen)

 

For Each uid As Long In uids

Dim eml = imap.GetMessageByUID(uid)

Dim email As Imail = New MailBuilder() _

.CreateFromEml(eml)

 

Console.WriteLine(email.Subject)

Next

imap.Close()

End Using

 

End Sub

End Module

 

Chế độ SSL rõ ang IMAP

Thành phần Mail.dll IMAP kết nối bằng kênh văn bản rõ ang và bảo vệ kênh bằng SSL bằng cách phát lệnh STARTTLS. Thông thường cổng IMAP tiêu chuẩn 143 được sử dụng, nhưng điều này không phải lúc nào cũng đúng. Có thể chỉ định cổng khác nhau sau đó sử dụng quá tải phương thức Connect.

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

// C# version

 

using System;

using System.Collections.Generic;

using Limilabs.Mail;

using Limilabs.Client.IMAP;

 

class Program

{

static void Main(string[] args)

{

using (Imap imap = new Imap())

{

imap.Connect(“imap.example.com”);

imap.StartTLS();

 

imap.UseBestLogin(“user”, “password”);

 

imap.SelectInbox();

 

List<long> uids = imap.Search(Flag.Unseen);

 

foreach (long uid in uids)

{

var eml = imap.GetMessageByUID(uid);

Imail email = new MailBuilder()

.CreateFromEml(eml);

 

Console.WriteLine(email.Subject);

}

imap.Close();

}

}

}

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

‘ VB.NET version

 

Imports System

Imports System.Collections.Generic

Imports Limilabs.Mail

Imports Limilabs.Client.IMAP

 

Public Module Module1

Public Sub Main(ByVal args As String())

 

Using imap As New Imap()

imap.Connect(“imap.example.com”)

imap.StartTLS()

 

imap.UseBestLogin(“user”, “password”)

 

imap.SelectInbox()

 

Dim uids As List(Of Long) = imap.Search(Flag.Unseen)

 

For Each uid As Long In uids

Dim eml = imap.GetMessageByUID(uid)

Dim email As Imail = New MailBuilder() _

.CreateFromEml(eml)

 

Console.WriteLine(email.Subject)

Next

imap.Close()

End Using

 

End Sub

End Module

Sau khi kết nối, có thể kiểm tra xem máy chủ IMAP có hỗ trợ SSL rõ ang hay không bằng cách sử dụng mã sau:

1

2

3

4

// C# version

 

bool supportsStartTLS = imap.SupportedExtensions()

.Contains(ImapExtension.StartTLS);

1

2

3

4

‘ VB.NET version

 

Dim supportsStartTLS As Boolean = imap.SupportedExtensions() _

.Contains(ImapExtension.StartTLS)

III. Ứng dụng

Hầu hết các ứng dụng email cho phép SSL - hoặc người kế nhiệm của nó, TLS - kết nối với các máy chủ email cho phép. Ví dụ: ứng dụng email Outlook gốc của Windows có cài đặt cho các kết nối SSL như vậy, cũng như ứng dụng Mail của Apple. Thunderbird, một máy khách Mozilla hoạt động trên Linux cũng như Windows và OS X, cũng có tùy chọn cho các kết nối SSL. Thông thường nhất, khách hàng liên lạc với máy chủ email để xác định khả năng SSL và chi tiết kết nối, do đó phải thực hiện rất ít cấu hình SSL thực tế để sử dụng IMAP qua SSL.

 Trong Thông tư số 39/2017/TT-BTTTT ngày 15/12/2017 của Bộ trưởng Bộ Thông tin và Truyền thông Công bố Danh mục tiêu chuẩn kỹ thuật về ứng dụng công nghệ thông tin trong cơ quan nhà nước quy định Bắt buộc áp dụng tiêu chuẩn IMAPS và được xếp vào nhóm Tiêu chuẩn về an toàn thông tin.

Tài liệu tham khảo

  1. https://tools.ietf.org/html/rfc2595#section-7.
  2. Crispin, M., "Internet Message Access Protocol – Version 4rev1", RFC 2060, December 1996.
  3. Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", RFC 2246, January 1999.

Nguyễn Thị Thu Trang

1909 Go top

Sự kiện nổi bật

Ý kiến về Trang thông tin điện tử Cục Chuyển đổi số quốc gia?
1. Đạt yêu cầu, 1180 phiếu (88 %)
2. Chưa đạt yêu cầu, 107 phiếu (8 %)
3. Cần thêm chủ đề, 57 phiếu (4 %)
Tổng số phiếu: 1344
THÔNG KÊ TRUY CẬP
  • Người trực tuyến Người trực tuyến
    • Khách Khách 60
    • Thành viên Thành viên 0
    • Tổng Tổng 60
    • Tổng lượt truy cập: Tổng lượt truy cập: 19817839