Chỉ dành cho Gmail: Thiết lập S/MIME cho tính năng mã hoá phía máy khách

Các phiên bản hỗ trợ tính năng này: Frontline Plus; Enterprise Plus; Education Standard và Education Plus. So sánh phiên bản của bạn

Để sử dụng S/MIME với tính năng Mã hoá phía máy khách (CSE) của Google Workspace cho Gmail, bạn cần bật Gmail API và cấp quyền truy cập cho API này vào toàn bộ tổ chức của bạn. Sau đó, đối với mỗi người dùng, bạn cần sử dụng Gmail API để tải một chứng chỉ S/MIME (Phần mở rộng thư Internet an toàn/đa mục đích) (khoá công khai) và siêu dữ liệu khoá riêng tư lên Gmail. Nếu đang sử dụng dịch vụ khoá mã hoá, bạn cũng cần mã hoá (hoặc "gói") siêu dữ liệu khoá riêng tư của người dùng bằng dịch vụ khoá của mình.

Bất cứ lúc nào, bạn cũng có thể chuyển sang một dịch vụ khoá khác bằng cách tải chứng chỉ S/MIME mới và siêu dữ liệu khoá riêng tư được mã hoá bằng dịch vụ mới lên.

Yêu cầu

Để hoàn tất các bước định cấu hình S/MIME cho người dùng, bạn cần:

  • Quyền quản trị viên cấp cao đối với Tài khoản Google của tổ chức bạn. Bạn cần cấp quyền truy cập trên toàn miền cho Gmail API.
  • Truy cập vào các công cụ dịch vụ khoá mã hoá của tổ chức hoặc nhân viên hỗ trợ của họ.
  • Có kinh nghiệm làm việc với API và tập lệnh Python.

Giới thiệu về S/MIME

S/MIME là một giao thức tiêu chuẩn trong ngành được chấp nhận rộng rãi để ký và mã hoá thư email bằng kỹ thuật số nhằm đảm bảo tính toàn vẹn và bảo mật của thư. CSE của Gmail dựa trên tiêu chuẩn S/MIME 3.2 của IETF để gửi và nhận dữ liệu MIME bảo mật. S/MIME yêu cầu người gửi và người nhận email phải có chứng chỉ X.509 được Gmail tin cậy.

Lưu ý: Ngoài ra, bạn có thể sử dụng S/MIME mà không cần thêm lớp mã hoá và quyền riêng tư mà CSE cung cấp. Chỉ sử dụng phương án thay thế này nếu bạn không cần ngăn máy chủ của Google giải mã dữ liệu của bạn bằng CSE. Để biết thông tin chi tiết, hãy xem bài viết Bật S/MIME được lưu trữ để mã hoá thư.

Trước khi bắt đầu

Đảm bảo bạn đã hoàn tất các bước sau:

  1. Chọn một dịch vụ mã khoá.
  2. Kết nối với nhà cung cấp danh tính (IdP).
  3. Thiết lập dịch vụ khoá bên ngoài hoặc mã hoá khoá phần cứng.
  4. Chỉ định một dịch vụ khoá hoặc chế độ mã hoá bằng khoá phần cứng cho các đơn vị tổ chức hoặc nhóm.

    Nếu bạn đang sử dụng nhiều dịch vụ khoá, hãy nhớ chỉ định các dịch vụ đó cho các đơn vị tổ chức hoặc nhóm cấu hình thích hợp.

Thiết lập Gmail API

Lưu ý: Bạn cần có kiến thức về lập trình để sử dụng các API này.

Bước 1: Bật Gmail API

  1. Tạo một dự án mới trên GCP. Để biết thông tin chi tiết, hãy xem bài viết Tạo và quản lý dự án.

    Ghi lại mã dự án: Bạn sẽ dùng mã này để cấp quyền truy cập trên toàn miền cho API.

  2. Truy cập vào Google API Console rồi bật Gmail API cho dự án mới. Để biết thông tin chi tiết, hãy xem phần Bật API trong dự án Google Cloud.

Bước 2: Tạo tài khoản dịch vụ trên toàn miền

  1. Trong bảng điều khiển Cloud, hãy chuyển đến trang Tài khoản dịch vụ rồi tạo một tài khoản dịch vụ trên toàn miền. Để biết thông tin chi tiết, hãy xem bài viết Tạo và quản lý tài khoản dịch vụ.
  2. Tạo khoá riêng tư cho tài khoản dịch vụ và lưu khoá vào một tệp JSON trên hệ thống cục bộ của bạn, chẳng hạn như svc_acct_creds.json. Tệp này chứa thông tin đăng nhập mà bạn sẽ dùng khi thiết lập Gmail cho người dùng. Để biết thông tin chi tiết, hãy chuyển đến phần Tạo và quản lý khoá tài khoản dịch vụ.

Bước 3: Cấp quyền truy cập trên toàn miền cho Gmail API

Trong bước này, bạn sẽ dùng tài khoản dịch vụ mà bạn đã tạo để cấp cho Gmail API quyền chỉnh sửa đối với tất cả người dùng.

  1. Làm theo hướng dẫn để Kiểm soát quyền truy cập API bằng tính năng uỷ quyền trên toàn miền.
  2. Nhập những thông tin sau khi được nhắc:

    Mã ứng dụng khách: Mã ứng dụng khách của tài khoản dịch vụ được tạo trong Bước 2 ở trên.

    Phạm vi OAuth: gmail.settings.readonly một trong hai gmail.settings.basic hoặc gmail.settings.sharing

Bật tính năng CSE của Gmail cho người dùng

Bật tính năng CSE cho Gmail cho các đơn vị tổ chức hoặc nhóm. Để biết thông tin chi tiết, hãy xem bài viết Bật hoặc tắt tính năng mã hoá phía máy khách.

Lưu ý: Đối với các đơn vị tổ chức, bạn có thể đặt chế độ mặc định là mã hoá tất cả email (soạn, trả lời và chuyển tiếp). Người dùng vẫn có thể tắt tính năng mã hoá nếu cần. Bạn phải có tiện ích bổ sung Quyền kiểm soát có đảm bảo hoặc Assured Controls Plus.

Thiết lập chứng chỉ S/MIME CSE cho người dùng

Sau khi thiết lập Gmail API và bật CSE Gmail cho người dùng trong Bảng điều khiển dành cho quản trị viên, bạn có thể thiết lập chứng chỉ S/MIME CSE và siêu dữ liệu khoá riêng tư cho người dùng.

Bước 1: Chuẩn bị chứng chỉ S/MIME và siêu dữ liệu khoá riêng tư

Đối với mỗi người dùng sẽ sử dụng CSE của Gmail để gửi hoặc nhận email:

Sử dụng một tổ chức phát hành chứng chỉ (CA), tạo một cặp khoá công khai/riêng tư S/MIME bằng một chuỗi chứng chỉ. Chứng chỉ S/MIME phải bao gồm địa chỉ Gmail chính của người dùng dưới dạng tên chủ thể hoặc chủ thể của tiện ích SAN.

Bạn có thể làm theo một trong hai cách sau:

  • Sử dụng chứng chỉ gốc của CA mà Google tin tưởng: Để xem danh sách chứng chỉ gốc, hãy truy cập vào Chứng chỉ CA mà Gmail tin tưởng đối với S/MIME.
  • Sử dụng một CA không được Google tin cậy: Ví dụ: để sử dụng CA của riêng bạn, bạn có thể thêm chứng chỉ gốc của CA đó vào Bảng điều khiển dành cho quản trị viên. Để biết thông tin chi tiết, hãy chuyển đến phần Quản lý chứng chỉ đáng tin cậy cho S/MIME.

    Lưu ý: Nếu bạn sử dụng một CA không được Google tin cậy và người dùng sẽ gửi email được mã hoá phía máy khách ra bên ngoài tổ chức của bạn, thì người nhận cũng phải tin tưởng CA đó.

Bước 2: Bao bọc chứng chỉ và siêu dữ liệu khoá riêng tư

Sử dụng dịch vụ mã hoá khoá của bạn để mã hoá hoặc "gói" siêu dữ liệu của khoá riêng tư S/MIME. Hãy liên hệ với dịch vụ mã khoá của bạn để thực hiện việc này hoặc làm theo hướng dẫn mà họ cung cấp.

Nếu bạn đang sử dụng tính năng mã hoá khoá vật lý – Hãy nhớ bỏ qua bước này và không bao bọc siêu dữ liệu khoá riêng tư cho bất kỳ người dùng nào sẽ sử dụng tính năng mã hoá khoá vật lý. Trong trường hợp này, bạn không cần bao bọc siêu dữ liệu vì khoá riêng tư của người dùng cho Gmail nằm trên thẻ thông minh của họ. Bạn phải có tiện ích bổ sung Quyền kiểm soát có đảm bảo hoặc Assured Controls Plus.

Bước 3: Tải chứng chỉ S/MIME và siêu dữ liệu khoá riêng tư của người dùng lên Gmail

Sử dụng Gmail API để tải chuỗi chứng chỉ S/MIME khoá công khai và siêu dữ liệu khoá riêng tư của từng người dùng lên Gmail, đồng thời đặt các khoá này làm khoá ưu tiên cho người dùng bằng cách tạo một danh tính.

Lưu ý: Bạn cần sử dụng API Gmail để tải chứng chỉ lên, không phải ứng dụng Gmail. Ngoài ra, xin lưu ý rằng bạn sẽ không thể tải chứng chỉ lên từ ứng dụng Gmail khi bật CSE cho Gmail.

Hoàn tất các bước sau cho từng người dùng, bằng cách sử dụng tệp khoá riêng tư mà bạn đã tải xuống khi tạo tài khoản dịch vụ trên toàn miền để xác thực:

  1. Tải siêu dữ liệu khoá riêng tư và chuỗi chứng chỉ lên bằng lệnh gọi Gmail API keypairs.create.
  2. Bật cặp khoá cho địa chỉ email chính của người dùng bằng lệnh gọi API Gmail identities.create.

    Lệnh gọi identities.create yêu cầu mã nhận dạng cặp khoá được trả về trong nội dung phản hồi của lệnh gọi keypairs.create.

    Lưu ý: Bật cặp khoá cho địa chỉ email của người dùng:

    • Tạo một danh tính CSE được phép gửi email từ tài khoản của người dùng.
    • Định cấu hình Gmail để sử dụng siêu dữ liệu khoá riêng tư nhằm ký email CSE gửi đi.
    • Xuất bản chứng chỉ vào một kho lưu trữ dùng chung trên toàn miền để những người dùng CSE khác trong tổ chức của bạn có thể mã hoá thư gửi đến người dùng này.

Để hoàn tất các bước này, hãy sử dụng một tập lệnh tương tác với Gmail API. Bạn có thể làm theo một trong hai cách sau:

  • Tự viết kịch bản.
  • Sử dụng tập lệnh mẫu Python do Google cung cấp. Để xem hướng dẫn, hãy chuyển đến phần Sử dụng tập lệnh Python của Google để tải chứng chỉ và khoá được bao bọc của người dùng lên Gmail ở phần sau của trang này.

    Lưu ý: Tập lệnh này chỉ áp dụng cho những người dùng sẽ sử dụng dịch vụ mã khoá để mã hoá nội dung trong Gmail. Đối với những người dùng sẽ sử dụng mã hoá khoá vật lý, bạn cần tạo một tập lệnh khác để tải siêu dữ liệu khoá riêng tư chưa được gói của họ lên.

Sau khi bạn tải chứng chỉ lên, có thể mất đến 24 giờ thì chứng chỉ mới xuất hiện trong Gmail, mặc dù thường thì quá trình này diễn ra nhanh hơn nhiều.

(Không bắt buộc) Sử dụng tập lệnh mẫu Python của Google để tải chứng chỉ và khoá riêng tư được bao bọc của người dùng lên Gmail

Để hoàn tất Bước 3 ở trên, bạn có thể sử dụng tập lệnh Python mà Google cung cấp thay vì tự viết tập lệnh.

Lưu ý: Tập lệnh này yêu cầu 3 phạm vi mà bạn có thể dùng để cấp quyền truy cập trên toàn miền cho API Gmail (được liệt kê trước đó trên trang này): gmail.settings.readonly, gmail.settings.basicgmail.settings.sharing. Để sử dụng tập lệnh này, bạn có thể bật cả 3 phạm vi hoặc xoá phạm vi mà bạn không sử dụng khỏi tập lệnh.

Tải tập lệnh xuống

Tải gói tập lệnh Python (.zip) xuống máy tính (Mac, Linux hoặc Windows) rồi giải nén các tệp vào thư mục làm việc.

Tạo môi trường ảo và cài đặt các mô-đun

Sử dụng dòng lệnh trong thư mục đang hoạt động, hãy nhập các lệnh sau:

Gọi tập lệnh

Tải chứng chỉ và khoá của người dùng lên

Bước 1: Tạo một thư mục để lưu trữ tất cả các khoá riêng tư được bao bọc

  • Ví dụ: bạn có thể tạo thư mục $root/wrapped_keys.
  • Tên tệp cho mỗi khoá riêng tư được bao bọc phải là địa chỉ email đầy đủ của người dùng có đuôi .wrap. Ví dụ: $root/wrapped_keys/user1@example.com.wrap
  • Đảm bảo tệp khoá riêng tư được bao bọc có một đối tượng JSON với 2 trường bắt buộc:

Bước 2: Tạo một thư mục để lưu trữ tất cả các chứng chỉ

  • Các chứng chỉ cần ở định dạng P7 PEM, vì vậy, bạn có thể tạo thư mục $root/p7pem_certs.
  • Đảm bảo rằng tệp chứng chỉ chứa toàn bộ chuỗi đến tổ chức phát hành chứng chỉ (CA) gốc.
  • Tên tệp của mỗi chứng chỉ phải là địa chỉ email đầy đủ của người dùng có đuôi .p7pem. Ví dụ: $root/p7pem_certs/user1@example.com.p7pem

Nếu có tệp P7B: Bạn có thể dùng chú thích openssl sau đây để chuyển đổi tệp đó sang định dạng P7 PEM:

Bước 3: Tải cặp khoá và danh tính của người dùng lên

Đối với bước này, bạn sẽ cần tệp JSON chứa thông tin đăng nhập cho tài khoản dịch vụ mà bạn đã lưu vào máy tính ở Bước 2: Tạo tài khoản dịch vụ ở trên.

Cách dễ nhất để tải cặp khoá và danh tính của người dùng lên là chạy lệnh insert. Lưu ý rằng mỗi lệnh phải có một đối số, ví dụ:

Ngoài ra, bạn có thể làm những việc sau đây cho từng người dùng:

  1. Chạy insert_keypair và ghi lại mã nhận dạng cặp khoá.
  2. Chạy insert_identity bằng mã nhận dạng cặp khoá đó.

Bạn cũng có thể lấy mã nhận dạng cặp khoá bằng cách chạy lệnh list_keypair.

Bước 4: Xác minh rằng người dùng có danh tính và cặp khoá CSE

Đảm bảo người dùng có các cặp khoá và danh tính hợp lệ trong Gmail bằng cách chạy các lệnh sau cho mỗi người dùng:

list_keypair

list_identity

Cách chuyển sang một dịch vụ mã khoá khác cho tính năng Mã hoá phía máy khách (CSE) của Gmail

Nếu bạn muốn chuyển sang một dịch vụ khoá khác cho tính năng CSE của Gmail, hãy lặp lại các bước 2 và 3 trong phần Thiết lập chứng chỉ S/MIME cho tính năng CSE cho người dùng ở trên, sử dụng dịch vụ khoá mới để bao bọc các khoá riêng tư.

Lưu ý: Việc tải chứng chỉ mới lên cho người dùng sẽ không di chuyển nội dung sang dịch vụ khoá mới. Tuy nhiên, người dùng vẫn có thể tiếp tục truy cập vào email được mã hoá bằng các chứng chỉ trước đó và siêu dữ liệu khoá riêng tư được bao bọc bởi dịch vụ khoá cũ.

Di chuyển thư sang Gmail dưới dạng email được mã hoá phía máy khách

Giờ đây, sau khi thiết lập CSE của Gmail, bạn có thể tuỳ ý nhập thư. Để biết thông tin chi tiết, hãy xem bài viết Di chuyển thư sang Gmail dưới dạng email được mã hoá phía máy khách.