Rate this post

Trong hầu như tất cả các môi trường phân tán, thư điện tử là ứng dụng dựa trên mạng được sử dụng nhiều nhất. Người dùng mong đợi có thể và thực hiện được, gửi e-mail cho những người khác được kết nối trực tiếp hoặc gián tiếp với Internet, bất kể hệ điều hành máy chủ hoặc bộ truyền thông. Với sự phụ thuộc ngày càng lớn vào e-mail, nhu cầu về các dịch vụ xác thực và bảo mật ngày càng tăng.

Các bài viết liên quan:

Hai chương trình nổi bật là phương pháp tiếp cận phổ biến rộng rãi sử dụng:

Bảo mật Khá Tốt (PGP) và S / MIME.

PGP(Pretty Good Privacy) là gì

PGP là viết tắt của Pretty Good Privacy (PGP) được phát minh bởi Phil Zimmermann.

Pretty Good Privacy hay PGP là một chương trình phổ biến được sử dụng để mã hóa và giải mã email qua internet, cũng như xác thực các tin nhắn bằng chữ ký số và các tệp được lưu trữ được mã hóa. PGP hiện nay thường đề cập đến bất kỳ chương trình hoặc ứng dụng mã hóa nào triển khai tiêu chuẩn mật mã khóa công khai OpenPGP.

PGP được thiết kế để cung cấp tất cả bốn khía cạnh bảo mật, tức là quyền riêng tư, tính toàn vẹn, xác thực và tính không từ chối trong việc gửi email.

PGP sử dụng chữ ký kỹ thuật số (sự kết hợp của mã hóa băm và khóa công khai) để cung cấp tính toàn vẹn, xác thực và không từ chối. PGP sử dụng kết hợp mã hóa khóa bí mật và mã hóa khóa công khai để cung cấp quyền riêng tư. Do đó, chúng ta có thể nói rằng chữ ký điện tử sử dụng một hàm băm, một khóa bí mật và hai cặp khóa riêng-công khai.

PGP là một gói phần mềm mã nguồn mở và có sẵn miễn phí để bảo mật email.

PGP cung cấp xác thực thông qua việc sử dụng Chữ ký số.

Nó cung cấp tính bảo mật thông qua việc sử dụng mã hóa khối đối xứng.

Nó cung cấp khả năng nén bằng cách sử dụng thuật toán ZIP và khả năng tương thích với EMAIL bằng cách sử dụng lược đồ mã hóa cơ số 64.

PGP là một hiện tượng đáng chú ý. Phần lớn là nỗ lực của một người, Phil Zimmermann, PGP cung cấp dịch vụ bảo mật và xác thực có thể được sử dụng cho các ứng dụng lưu trữ tệp và thư điện tử. Về bản chất, Zimmermann đã làm những điều sau:

  1. Đã chọn các thuật toán mật mã tốt nhất hiện có làm block.
  2. Tích hợp các thuật toán này vào một ứng dụng có mục đích chung không phụ thuộc vào hệ điều hành và bộ xử lý và dựa trên một tập hợp nhỏ các lệnh dễ sử dụng.
  3. Tạo gói và tài liệu của nó, bao gồm cả mã nguồn, có sẵn miễn phí qua Internet, bảng thông báo và các mạng thương mại như AOL (America On Line).
  4. Đã ký thỏa thuận với một công ty (Viacrypt, nay là Network Associates) để cung cấp phiên bản thương mại hoàn toàn tương thích với chi phí thấp của PGP.

PGP đã phát triển bùng nổ và hiện nay đã sử dụng. Một số lý do có thể được trích dẫn cho sự tăng trưởng này.

  1. Nó được cung cấp miễn phí trên toàn thế giới với các phiên bản chạy trên nhiều nền tảng khác nhau, bao gồm Windows, UNIX, Macintosh và nhiều nền tảng khác. Ngoài ra, phiên bản thương mại đáp ứng những người dùng muốn có một sản phẩm đi kèm với sự hỗ trợ của nhà cung cấp.
  2. Nó dựa trên các thuật toán đã tồn tại được sự đánh giá rộng rãi của công chúng và được coi là cực kỳ an toàn. Cụ thể, gói này bao gồm RSA, DSS và Diffie-Hellman để mã hóa khóa công khai; CAST-128, IDEA và 3DES để mã hóa cộng đồng; và SHA-1 để mã hóa băm.
  3. Nó có nhiều khả năng ứng dụng, từ các tập đoàn muốn lựa chọn và thực thi một chương trình tiêu chuẩn hóa để mã hóa các tệp và tin nhắn cho các cá nhân những người muốn giao tiếp an toàn với những người khác trên toàn thế giới qua Internet và các mạng khác.
  4. Nó không được phát triển bởi hoặc cũng không được kiểm soát bởi bất kỳ tổ chức chính phủ hoặc tiêu chuẩn nào. Đối với những người có bản năng không tin tưởng vào “cơ sở”, điều này làm cho PGP trở nên hấp dẫn.
  5. PGP hiện đang theo dõi các tiêu chuẩn Internet (RFC 3156; Bảo mật MIME với OpenPGP). Tuy nhiên, PGP vẫn có hào quang của một nỗ lực chống thành lập.

Chúng tôi bắt đầu với một cái nhìn tổng thể về hoạt động của PGP. Tiếp theo, chúng tôi kiểm tra cách các khóa mật mã được tạo và lưu trữ. Sau đó, chúng tôi giải quyết vấn đề quan trọng của việc quản lý khóa công khai.

Xem thêm Các yếu tố, tín hiệu xếp hạng onpage

Ký hiệu

Hầu hết các ký hiệu được sử dụng trong chương này đã được sử dụng trước đây, nhưng một số thuật ngữ là mới. Có lẽ tốt nhất là nên tóm tắt những điều đó ở đầu. Các ký hiệu sau được sử dụng.

  • Ks = PRa = PUa = EP =
  • DP =
  • EC =
  • DC =

Tài liệu PGP thường sử dụng thuật ngữ khóa bí mật để chỉ một khóa được ghép nối với khóa công khai trong lược đồ mã hóa khóa công khai. Như đã đề cập trước đó, thực hành này có nguy cơ nhầm lẫn với khóa bí mật được sử dụng để mã hóa đối xứng. Do đó, chúng tôi sử dụng thuật ngữ khóa cá nhân để thay thế.

Sau đây là các bước do PGP thực hiện để tạo email an toàn tại trang web của người gửi:

  • Thư e-mail được băm bằng cách sử dụng hàm băm để tạo thông báo.
  • Sau đó, thông báo được mã hóa để tạo thành thông báo có chữ ký bằng cách sử dụng khóa cá nhân của người gửi và sau đó thông báo có chữ ký sẽ được thêm vào thư email ban đầu.
  • Thư gốc và thông báo đã ký được mã hóa bằng cách sử dụng khóa bí mật dùng một lần do người gửi tạo.
  • Khóa bí mật được mã hóa bằng cách sử dụng khóa công khai của người nhận.
  • Cả khóa bí mật được mã hóa và sự kết hợp mã hóa của thông báo và thông báo được gửi cùng nhau.

Xem thêm

PGP tại trang Người gửi (A)

Sau đây là các bước được thực hiện để chỉ ra cách PGP sử dụng hàm băm và sự kết hợp của ba khóa để tạo thông báo gốc:

  • Người nhận nhận được sự kết hợp của khóa bí mật được mã hóa và nhận được thông báo thông báo.
  • Khóa bí mật được mã hóa được giải mã bằng cách sử dụng khóa riêng của người nhận để lấy khóa bí mật dùng một lần.
  • Sau đó, khóa bí mật được sử dụng để giải mã sự kết hợp của thông báo và thông báo.
  • Thông báo được giải mã bằng cách sử dụng khóa công khai của người gửi và thông báo gốc được băm bằng cách sử dụng hàm băm để tạo thông báo.
  • Cả hai tiêu chuẩn được so sánh nếu cả hai đều bằng nhau có nghĩa là tất cả các khía cạnh của an ninh được bảo toàn.

PGP tại địa điểm Người nhận (B)

Operational Description 

Hoạt động thực tế của PGP, ngược lạiđể quản lý các khóa, bao gồm bốn dịch vụ: xác thực, bảo mật, nén và khả năng tương thích với e-mail (Bảng 18.1). Chúng ta lần lượt xem xét từng điều này.

AUTHENTICATION  

Minh họa dịch vụ chữ ký số được cung cấp bởi PGP. Đây là sơ đồ chữ ký số được thảo luận trong Chương 13 và được minh họa trong Hình 13.2. Trình tự như sau.

  1. Người gửi sẽ tạo một tin nhắn.
  2. SHA-1 được sử dụng để tạo mã băm 160 bit của tin nhắn.
  3. Mã băm được mã hóa bằng RSA sử dụng mã của người gửi khóa riêng tư và kết quả được thêm vào trước tin nhắn.
  4. Người nhận sử dụng RSA với khóa công khai của người gửi để giải mã và khôi phục Mã Băm.
  5. Người nhận tạo một mã băm mới cho tin nhắn và so sánh nó với mã băm được giải mã. Nếu cả hai khớp nhau, tin nhắn được chấp nhận như xác thực.

Sự kết hợp của SHA-1 và RSA cung cấp một lược đồ chữ ký số hiệu quả. Do sức mạnh của RSA, người nhận được đảm bảo rằng chỉ người đánh giá khóa cá nhân phù hợp mới có thể tạo ra chữ ký. Do sức mạnh của SHA-1, người nhận được đảm bảo rằng không ai khác có thể tạo một tin nhắn mới khớp với mã băm và do đó, là chữ ký của tin nhắn gốc.

Một thay đổi , chữ ký can thì là ở được tạo ra sử dụng DSS / SHA-1.

Mặc dù chữ ký thường được tìm thấy đính kèm trong thư hoặc tệp họ ký, điều này không phải luôn luôn như vậy: Các chữ ký tách rời được hỗ trợ. Một chữ ký tách rời có thể được lưu trữ và truyền đi một cách riêng biệt với thông điệp mà nó ký. Điều này rất hữu ích trong một số ngữ cảnh. Người dùng có thể muốn duy trì một nhật ký chữ ký riêng biệt của tất cả các tin nhắn được gửi hoặc nhận. Một chữ ký tách rời của một chương trình thực thi có thể phát hiện sự lây nhiễm vi rút tiếp theo. Cuối cùng, chữ ký tách rời có thể được sử dụng khi nhiều bên phải ký một tài liệu, chẳng hạn như hợp đồng pháp lý. Chữ ký của mỗi người là độc lập và do đó chỉ được áp dụng cho tài liệu. Nếu không, các chữ ký sẽ phải được lồng vào nhau, với người ký thứ hai ký cả tài liệu và chữ ký đầu tiên, v.v.

CONFIDENTIALITY

Một dịch vụ cơ bản khác do PGP cung cấp là tính bảo mật, được cung cấp bằng cách mã hóa các tin nhắn được truyền đi hoặc được lưu trữ cục bộ dưới dạng tệp. Trong cả hai trường hợp, thuật toán mã hóa đối xứng CAST-128 có thể được sử dụng. Ngoài ra, có thể sử dụng IDEA hoặc 3DES. Chế độ phản hồi mật mã 64-bit (CFB) được sử dụng.

Như mọi khi, người ta phải giải quyết vấn đề phân phối khóa. Trong PGP, mỗikhóa đối xứng chỉ được sử dụng một lần. Nghĩa là, một khóa mới được tạo dưới dạng số 128 bit ngẫu nhiên cho mỗi tin nhắn. Do đó, mặc dù điều này được gọi trong tài liệu là khóa phiên, nhưng trên thực tế nó là khóa dùng một lần. Bởi vì nó chỉ được sử dụng một lần, khóa phiên được liên kết với thông điệp và được truyền cùng với nó. Để bảo vệ khóa, nó được mã hóa bằng khóa công khai của người nhận. Hình 18.1b minh họa trình tự, có thể được mô tả như sau.

  1. Người gửi tạo một tin nhắn và một số 128 bit ngẫu nhiên để chỉ được sử dụng làm khóa phiên cho tin nhắn này.
  2. Tin nhắn được mã hóa bằng CAST-128 (hoặc IDEA hoặc 3DES) với khóa ses-sion.
  3. Khóa phiên được mã hóa bằng RSA sử dụng khóa công khai của người nhận và là viết trước tin nhắn.
  4. Người nhận sử dụng RSA với khóa riêng của nó để giải mã và khôi phục phiên Chìa khóa.
  5. Khóa phiên được sử dụng để giải mã thông báo.

Để thay thế cho việc sử dụng RSA để mã hóa khóa, PGP cung cấp một tùy chọn được gọi là Diffie-Hellman. Như đã được giải thích trong Chương 10, Diffie- Hellman là một thuật toán trao đổi khóa. Trên thực tế, PGP sử dụng một biến thể của Diffie-Hellman làm Provide mã hóa / giải mã, đã biết như ElGamal (Chương 10).

Xem thêm Từ khóa là gì?

Một số quan sát có thể được thực hiện. Đầu tiên, để giảm thời gian mã hóa, tổ hợp mã hóa đối xứng và khóa công khai được sử dụng để ưu tiên sử dụng RSA hoặc ElGamal để mã hóa thông điệp trực tiếp: CAST-128 và các thuật toán đối xứng khác về cơ bản nhanh hơn RSA hoặc ElGamal.

Thứ hai, việc sử dụng thuật toán khóa công khai giải quyết vấn đề phân phối khóa phiên, vì chỉ người nhận mới có thể khôi phục khóa phiên được liên kết với thông báo. Lưu ý rằngchúng ta không cần giao thức trao đổi khóa phiên thuộc loại được thảo luận trong Chương 14, bởi vì chúng tôi sẽ không bắt đầu một phiên đang diễn ra. Đúng hơn, mỗi tin nhắn là một thời hạn một lần-sự kiện độc lập với chìa khóa riêng của nó. Hơn nữa, với tính chất lưu trữ và chuyển tiếp của thư điện tử, việc sử dụng bắt tay để đảm bảo rằng cả hai bên có cùng một khóa phiên là không thực tế.

Cuối cùng, việc sử dụng các khóa đối xứng một lần củng cố những gì vốn đã là một phương pháp mã hóa đối xứng mạnh mẽ. Chỉ một lượng nhỏ bản rõ được mã hóa với mỗi khóa và không có mối quan hệ nào giữa các khóa. Do đó, trong phạm vi mà thuật toán khóa công khai được bảo mật, toàn bộ sơ đồ được bảo mật. Để đạt được mục đích này, PGP cung cấp cho người dùng một loạt các tùy chọn kích thước khóa từ 768 đến 3072 bit (khóa DSS cho chữ ký được giới hạn ở 1024 bit).

CONFIDENTIALITY và AUTHENTICATION

Như Hình minh họa, cả hai dịch vụ có thể được sử dụng cho cùng một thông báo. Đầu tiên, một chữ ký được tạo cho bản rõtin nhắn và thêm vào trước tin nhắn. Sau đó, thông điệp văn bản rõ ràng cộng với chữ ký được mã hóa bằng CAST-128 (hoặc IDEA hoặc 3DES) và khóa phiên được mã hóa bằng RSA (hoặc ElGamal).

Trình tự này thích hợp hơn so với trình tự ngược lại: mã hóa thông điệp và sau đó tạo chữ ký cho thông điệp được mã hóa. Nói chung, việc lưu trữ chữ ký với phiên bản văn bản rõ của tin nhắn sẽ thuận tiện hơn. Hơn nữa, với mục đích xác minh của bên thứ ba, nếu chữ ký được thực hiện trước, bên thứ ba không cần quan tâm đến khóa đối xứng khi xác minh chữ ký.

Tóm lại, khi cả hai dịch vụ đều được sử dụng, trước tiên người gửi ký thư bằng khóa riêng của mình, sau đó mã hóa thư bằng khóa phiên và cuối cùng mã hóa khóa phiên bằng khóa công khai của người nhận.

COMPRESSION

Theo mặc định, PGP nén thông báo sau khi áp dụng chữ ký nhưng trước khi mã hóa. Điều này có lợi là tiết kiệm không gian cho cả việc truyền e-mail và lưu trữ tệp.

Vị trí của thuật toán nén, được chỉ ra bởi Z để nén và Z-1 để giải nén trong Hình 18.1, là rất quan trọng.

Chữ ký được tạo trước khi nén vì hai lý do:

Tốt hơn là ký một tin nhắn không nén để người ta chỉ có thể lưu trữ tin nhắn không nén cùng với chữ ký để xác minh trong tương lai sự. Nếu một người đã ký vào một tài liệu nén, thì cần phải lưu trữ phiên bản nén của thông báo để xác minh sau này hoặc nén lại thông báo khi cần xác minh.

Ngay cả khi một người sẵn sàng tạo động một thông báo được giải nén lại để xác minh, thì thuật toán nén của PGP vẫn gặp khó khăn. Bí danh-nhịp điệu không mang tính xác định; các triển khai khác nhau của thuật toán đạt được sự cân bằng khác nhau về tốc độ chạy so với tỷ lệ nén và kết quả là tạo ra các dạng nén khác nhau. Tuy nhiên, các thuật toán nén khác nhau này có thể tương tác với nhau vì bất kỳ phiên bản nào của thuật toán cũng có thể giải nén chính xác kết quả đầu ra của bất kỳ phiên bản nào khác. Áp dụng hàm băm

hàm và chữ ký sau khi nén sẽ hạn chế tất cả các ứng dụng PGP vào cùng một phiên bản của thuật toán nén.

Mã hóa thông điệp được áp dụng sau khi nén để tăng cường bảo mật mật mã. Bởi vì thông điệp được nén có ít dư thừa hơn so với bản rõ ban đầu, việc phân tích mật mã khó khăn hơn.

Thuật toán nén được sử dụng là ZIP, được mô tả trong Phụ lục O.

E-MAIL COMPATIBILITY

Khi PGP được sử dụng, ít nhất một phần của khối được truyền đi đã được mã hóa. Nếu chỉ dịch vụ chữ ký được sử dụng, thì bản tóm tắt thông báo được mã hóa (với khóa riêng của người gửi). Nếu dịch vụ bảo mật được sử dụng, thông điệp cộng với chữ ký (nếu có) sẽ được mã hóa (bằng khóa đối xứng dùng một lần). Do đó, một phần hoặc toàn bộ khối kết quả bao gồm một luồng các octet 8 bit tùy ý. Tuy nhiên, nhiều hệ thống thư điện tử chỉ cho phép sử dụng các khối bao gồm văn bản ASCII. Để giải quyết hạn chế này, PGP cung cấp dịch vụ chuyển đổi luồng nhị phân 8 bit thô thành luồng ký tự ASCII có thể in được.

Lược đồ được sử dụng cho mục đích này là chuyển đổi cơ số 64. Mỗi nhóm gồm ba octet dữ liệu nhị phân được ánh xạ thành bốn ký tự ASCII. Định dạng này cũng gắn thêm CRC để phát hiện lỗi truyền. Xem Phụ lục 18A để biết mô tả.

Việc sử dụng cơ số 64 mở rộng thông báo thêm 33%. May mắn thay, khóa phiênvà các phần chữ ký của thông báo tương đối nhỏ gọn, và bản rõ ràng đã được nén. Trên thực tế, độ nén phải là quá đủ để bù đắp cho việc mở rộng cơ số 64. Ví dụ: [HELD96] báo cáo tỷ lệ nén trung bình khoảng 2.0 bằng cách sử dụng ZIP. Nếu chúng ta bỏ qua chữ ký tương đối nhỏ và các thành phần chính, thì hiệu quả tổng thể điển hình của việc nén và mở rộng tệp có độ dài X sẽ là 1,33 * 0,5 * X = 0,665 * X. Do đó, tổng thể vẫn có độ nén khoảng một phần ba. .

Một khía cạnh đáng chú ý của thuật toán cơ số 64 là nó chuyển đổi dòng đầu vào sang định dạng cơ số 64 một cách mù quáng bất kể nội dung, ngay cả khi đầu vào là văn bản ASCII. Do đó, nếu một thông báo được ký nhưng không được mã hóa và việc chuyển đổi được áp dụng cho toàn bộ khối, đầu ra sẽ không thể đọc được đối với người quan sát thông thường, điều này cung cấp một mức độ bảo mật nhất định. Như một tùy chọn, PGP có thể được định cấu hình để chuyển đổi sang định dạng cơ số 64 chỉ phần chữ ký của bản rõ đã kýtin nhắn. Điều này cho phép người nhận đọc tin nhắn mà không cần sử dụng PGP. PGP sẽ vẫn phải được sử dụng để xác minh chữ ký.

Hình trên cho thấy mối quan hệ giữa bốn dịch vụ được thảo luận cho đến nay. Khi truyền (nếu được yêu cầu), chữ ký được tạo bằng cách sử dụng mã băm của bản rõ không nén. Sau đó, bản rõ (kèm theo chữ ký nếu có) là com-bị ép. Tiếp theo, nếu yêu cầu bảo mật, khối (bản rõ nén hoặc chữ ký được ép cộng với bản rõ) được mã hóa và thêm vào trước bằng khóa mã hóa đối xứng được mã hóa bằng khóa công khai. Cuối cùng, toàn bộ khối được chuyển đổi sang định dạng cơ số 64.

Khi tiếp nhận, khối đến lần đầu tiên được chuyển đổi trở lại từ định dạng cơ số 64 sang hệ nhị phân. Sau đó, nếu tin nhắn được mã hóa, người nhận sẽ khôi phục khóa phiên và giải mã tin nhắn. Khối kết quả sau đó được giải nén. Nếu tin nhắn được ký, người nhận sẽ khôi phục mã băm đã truyền và so sánh nó với tính toán mã băm của riêng mình.

Cryptographic Keys và Key Rings 

PGP sử dụng bốn loại khóa: khóa đối xứng phiên dùng một lần, khóa công khai, khóa cá nhân và khóa đối xứng dựa trên cụm mật khẩu (sẽ giải thích sau). Ba yêu cầu riêng biệt có thể được xác định đối với các khóa này.

  1. Cần có phương tiện tạo các khóa phiên không thể đoán trước.
  2. Chúng tôi muốn cho phép người dùng có nhiều cặp khóa công khai / khóa riêng tư. Một lý do là người dùng có thể muốn thay đổi cặp khóa của mình theo thời gian. Khi điều này xảy ra, bất kỳ thông báo nào trong đường dẫn sẽ được xây dựng bằng một khóa lỗi thời. Hơn nữa, người nhận sẽ chỉ biết khóa công khai cũ cho đến khi có bản cập nhật. Ngoài nhu cầu thay đổi khóa theo thời gian, người dùng có thể muốn có nhiều cặp khóa tại một thời điểm nhất định để tương tác với các nhóm tương ứng khác nhau hoặc đơn giản là để tăng cường bảo mật bằng cách giới hạn số lượng tài liệu được mã hóa bằng bất kỳ một khóa nào. Kết quả của tất cả những điều này là không có sự tương ứng 1-1 giữa người dùng và khóa công khai của họ. Vì vậy, một số phương tiện là cần thiết để xác định các khóa cụ thể.
  3. Mỗi thực thể PGP phải duy trì một tệp các cặp khóa công khai / riêng tư của riêng mình cũng như một tệp khóa công khai của các đối tác.

Chúng tôi lần lượt xem xét từng yêu cầu này.

SESSION KEY GENERATION

Mỗi khóa phiên được liên kết với một thông báo duy nhất và chỉ được sử dụng cho mục đích mã hóa và giải mã thông báo đó. Nhớ lại rằng mã hóa / giải mã thông điệp được thực hiện bằng một thuật toán mã hóa đối xứng. CAST-128 và IDEA sử dụng khóa 128 bit; 3DES sử dụng khóa 168 bit. Đối với cuộc thảo luận sau đây, chúng tôi giả định CAST-128.

Các số 128 bit ngẫu nhiên được tạo bằng chính CAST-128. Đầu vào cho bộ tạo số ngẫu nhiên bao gồm một khóa 128 bit và hai khối 64 bit được coi như bản rõ cần được mã hóa. Sử dụng chế độ phản hồi mật mã, bộ mã hóa CAST-128 tạo ra hai khối văn bản mật mã 64 bit, được nối với nhau để tạo thànhkhóa phiên 128 bit. Thuật toán được sử dụng dựa trên thuật toán được chỉ định trong ANSI X12.17.

Đầu vào “bản rõ” cho bộ tạo số ngẫu nhiên, bao gồm hai Các khối 64-bit, bản thân nó có nguồn gốc từ một luồng các số ngẫu nhiên 128-bit. Những con số này dựa trên thao tác gõ phím từ người dùng. Cả thời gian gõ phím và các phím thực được đánh đều được sử dụng để tạo luồng ngẫu nhiên. Do đó, nếu người dùng nhấn các phím tùy ý với tốc độ bình thường của họ, một đầu vào “ngẫu nhiên” hợp lý sẽ được tạo ra. Đầu vào ngẫu nhiên này cũng được kết hợp với đầu ra khóa phiên trước đó từ CAST-128 để tạo thành đầu vào khóa cho trình tạo. Kết quả, với sự xáo trộn hiệu quả của CAST-128, là tạo ra một chuỗi các khóa phiên mà hiệu quả không thể đoán trước được.

KEY IDENTIFIERS

Như chúng ta đã thảo luận, một tin nhắn được mã hóa đi kèm với một dạng mã hóa của khóa phiên được sử dụng để mã hóa tin nhắn. Bản thân khóa phiên được mã hóa bằng khóa công khai của người nhận. Do đó, chỉ có người nhận sẽ có thể khôi phục khóa phiên và do đó khôi phục tin nhắn. Nếu mỗi người dùng sử dụng một cặp khóa công khai / riêng tư, thì người nhận sẽ tự động biết khóa nào cần sử dụng để giải mã khóa phiên: của người nhậnkhóa riêng duy nhất. Tuy nhiên, chúng tôi đã nêu một yêu cầu rằng bất kỳ người dùng nhất định nào cũng có thể có nhiều cặp khóa công khai / riêng tư.

Vậy làm cách nào để người nhận biết khóa công khai nào của nó đã được sử dụng để mã hóa khóa phiên? Một giải pháp đơn giản là truyền khóa công khaivới tin nhắn. Sau đó, người nhận có thể xác minh rằng đây thực sự là một trong các khóa công khai của nó và tiếp tục. Đề án này sẽ hoạt động, nhưng nó lãng phí không gian một cách không cần thiết. Khóa công khai RSA có thể dài hàng trăm chữ số thập phân. Một giải pháp khác sẽ là liên kết một số nhận dạng với mỗi khóa công khai là duy nhất ít nhất trong một người dùng. Nghĩa là, sự kết hợp của ID người dùng và ID khóa sẽ đủ để xác định một khóa duy nhất. Sau đó, chỉ ID khóa ngắn hơn nhiều sẽ cần được truyền. Tuy nhiên, giải pháp này đặt ra một vấn đề về quản lý và chi phí: Các ID khóa phải được chỉ định và lưu trữ để cả người gửi và người nhận có thể ánh xạ từ ID khóa sang khóa công khai. Điều này có vẻ nặng nề một cách không cần thiết.

Giải pháp được PGP áp dụng là gán một ID khóa cho mỗi khóa công khai, với xác suất rất cao, là duy nhất trong ID2 người dùng.Khóa ID được liên kết với mỗi khóa công khai bao gồm 64 bit ít quan trọng nhất của nó. Đó là, ID chính của công khaiPUa chính là (PUa mod 264). Đây là độ dài đủ để xác suất trùng lặp ID khóa là rất nhỏ.

Mã khóa cũng được yêu cầu cho chữ ký số PGP. Vì người gửi có thể sử dụng một trong số các khóa cá nhân để mã hóa thông báo thông báo, người nhận phải biết khóa công khai nào được dự định sử dụng. Theo đó, thành phần chữ ký số của một thông điệp bao gồm ID khóa 64-bit của khóa công khai được yêu cầu. Khi nhận được tin nhắn, người nhận xác minh rằng ID khóa dành cho khóa công khai mà nó biết cho người gửi đó và sau đó tiến hành xác minh chữ ký.

Bây giờ khái niệm về ID khóa đã được giới thiệu, chúng ta có thể xem xét thêm xem chi tiết định dạng của một thông điệp được truyền đi, được thể hiện trong Hình 18.3. Thông báo bao gồm ba thành phần: thành phần thông báo, chữ ký (tùy chọn) và thành phần khóa phiên (tùy chọn).

Thành phần thông báo bao gồm dữ liệu thực tế sẽ được lưu trữ hoặc truyền, cũng như tên tệp và dấu thời gian chỉ định thời gian tạo.

Thành phần chữ ký bao gồm những điều sau đây.

  • Timestamp: Thời gian mà chữ ký được thực hiện.
  • Message digest:  Thông báo SHA-1 160 bit được mã hóa với quyền riêng tư của người gửi khóa chữ ký. Thông báo được tính toán qua dấu thời gian chữ ký nối với phần dữ liệu của thành phần thông báo. Việc bao gồm dấu thời gian chữ ký trong thông báo bảo đảm chống lại các loại tấn công phát lại. Việc loại trừ các phần tên tệp và dấu thời gian của thành phần thông báo đảm bảo rằng các chữ ký tách rời giống hệt như các chữ ký đính kèm

2Chúng ta đã xem phần giới thiệu khái niệm xác suất này trước đây, trong Phần 8.3, để xác định xem một số có phải là số nguyên tố hay không. Thông thường trong việc thiết kế các thuật toán, việc sử dụng các kỹ thuật xác suất dẫn đến một giải pháp ít phức tạp hơn, tốn ít thời gian hơn hoặc cả hai.

tiền tố vào tin nhắn. Chữ ký tách rời được tính toán trên một tệp riêng biệt không có trường nào trong số các trường tiêu đề thành phần thông báo.

  • Leading two octets of message digest: Cho phép người nhận xác định xem khóa công khai chính xác có được sử dụng để giải mã thông báo thông báo xác thực hay không bằng cách so sánh bản sao văn bản rõ này của hai octet đầu tiên với hai bản sao đầu tiên các bộ tám của thông báo đã được giải mã. Các octet này cũng đóng vai trò là chuỗi kiểm tra khung 16 bit cho thông báo.
  • Key ID of senders public key: Xác định khóa công khai sẽ được sử dụng để giải mã thông báo thông báo và do đó, xác định khóa riêng tư đã được sử dụng để mã hóa thông báo thông báo.

Thành phần thông báo và thành phần chữ ký tùy chọn có thể được nhấn bằng ZIP và có thể được mã hóa bằng khóa phiên.

Thành phần khóa phiên bao gồm khóa phiên và mã định danh của khóa công khai của người nhận đã được người gửi sử dụng để mã hóa khóa phiên.

Toàn bộ khối thường được mã hóa bằng mã hóa cơ số 64.

KEY RINGS

Chúng tôi đã thấy các ID chính quan trọng như thế nào đối với hoạt động của PGP và hai ID chính được bao gồm trong bất kỳ thông báo PGP nào cung cấp cả hai tính bảo mật và xác thực. Các khóa này cần được lưu trữ và sắp xếp một cách có hệ thống để các bên sử dụng hiệu quả và hiệu quả. Lược đồ được sử dụng trong PGP là cung cấp một cặp cấu trúc dữ liệu tại mỗi nút, một để lưu trữ các cặp khóa công khai / riêng tư thuộc sở hữu của nút đó và một để lưu trữ khóa công khai của những người dùng khác được biết đến tại nút này. Các cấu trúc dữ liệu này lần lượt được gọi là vòng khóa riêng và vòng khóa công khai.

Hình 18.4 mô tả cấu trúc chung của một vòng khóa riêng. Chúng ta có thể xem vòng như một bảng trong đó mỗi hàng đại diện cho một trong các cặp khóa công khai / riêng tư do người dùng này sở hữu. Mỗi hàng chứa các mục:

  • Timestamp: Ngày / giờ khi cặp khóa này được tạo.
  • Key ID: 64 bit ít quan trọng nhất của khóa công khai cho mục nhập này.
  • Public key: Phần khóa công khai của cặp.
  • Private key: Phần khóa riêng của cặp; trường này được mã hóa.
  • ID người dùng: Thông thường, đây sẽ là địa chỉ e-mail của người dùng (ví dụ: boothings@acm.org ).Tuy nhiên, người dùng có thể chọn liên kết một tên khác với từng cặp (ví dụ: Stallings, WStallings, WilliamStallings, v.v.) hoặc sử dụng lại cùng một User ID nhiều lần.

Vòng khóa cá nhân có thể được lập chỉ mục bằng ID người dùng hoặc ID khóa; sau này chúng ta sẽ thấy sự cần thiết của cả hai phương tiện lập chỉ mục.

Mặc dù có mục đích là vòng khóa riêng tư chỉ được lưu trữ trên máy của người dùng đã tạo và sở hữu các cặp khóa và chỉ người dùng đó mới có thể truy cập được, nhưng việc đảm bảo giá trị của khóa cá nhân là an toàn như khả thi. Theo đó, bản thân khóa cá nhân không được lưu trữ trong vòng khóa. Thay vào đó, khóa này được mã hóa bằng CAST-128 (hoặc IDEA hoặc 3DES). Thủ tục như sau:

  1. Người dùng chọn một cụm mật khẩu được sử dụng để mã hóa các khóa cá nhân.
  2. Khi hệ thống tạo một cặp khóa công khai / riêng tư mới bằng RSA, nó sẽ yêu cầungười dùng cho cụm mật khẩu. Sử dụng SHA-1, mã băm 160 bit được tạokhỏi cụm mật khẩu và cụm mật khẩu bị hủy.
  3. Hệ thống mã hóa khóa cá nhân bằng CAST-128 với 128 bit của mã băm làm khóa. Sau đó, mã băm sẽ bị loại bỏ và khóa cá nhân được mã hóa được lưu trữ trong vòng khóa cá nhân.

Sau đó, khi người dùng truy cập vào vòng khóa riêng để lấy khóa riêng, người đó phải cung cấp cụm mật khẩu. PGP sẽ truy xuất khóa cá nhân được mã hóa, tạo mã băm của cụm mật khẩu và giải mã khóa cá nhân được mã hóa bằng CAST-128 với mã băm.

Đây là một chương trình rất nhỏ gọn và hiệu quả. Như trong bất kỳ hệ thống nào dựa trên pass-từ, tính bảo mật của hệ thống này phụ thuộc vào tính bảo mật của mật khẩu. Để tránh bị cám dỗ khi viết ra, người dùng nên sử dụng cụm mật khẩu không dễ đoán nhưng dễ nhớ.

Hình 18.4 cũng cho thấy cấu trúc chung của một vòng khóa công khai. Dữ liệu nàycấu trúc được sử dụng để lưu trữ khóa công khai của người dùng khác mà người dùng này biết. Hiện tại, chúng ta hãy bỏ qua một số trường được hiển thị trong hình và mô tả các trường sau.

  • Timestamp: Ngày / giờ khi mục nhập này được tạo.
  • Key ID: 64 bit ít quan trọng nhất của khóa công khai cho mục nhập này.
  • Public Key: Khóa công khai cho mục nhập này.
  • User ID: Xác định chủ sở hữu của khóa này. Nhiều ID người dùng có thể được liên kết với một khóa công khai.

Vòng khóa công khai có thể được lập chỉ mục bằng ID người dùng hoặc ID khóa; chúng ta sẽ thấy sự cần thiết của cả hai phương tiện lập chỉ mục sau này.

Bây giờ chúng tôi đang ở vị trí để chỉ ra cách các vòng khóa này được sử dụng trong việc truyền và nhận tin nhắn. Để đơn giản, chúng tôi bỏ qua phiên bản nén và cơ số 64 trong phần thảo luận sau. Đầu tiên hãy xem xét việc truyền thông điệp (Hình 18.5) và giả sử rằng thông điệp phải được ký và mã hóa. Thực thể PGP gửi thực hiện các bước sau.

  1. Ký tên vào tin nhắn:
    1. PGP lấy khóa cá nhân của người gửi từ vòng khóa cá nhân bằng cách sử dụng your_userid như một chỉ mục. Nếu your_userid không được cung cấp trong lệnh, khóa cá nhân đầu tiên trên vòng được truy xuất.
    2. PGP nhắc người dùng nhập cụm mật khẩu để khôi phục quyền riêng tư chưa được mã hóa Chìa khóa.
    3. Thành phần chữ ký của thông điệp được xây dựng.
  2. Mã hóa tin nhắn:
    1. PGP tạo khóa phiên và mã hóa thông điệp.
    2. PGP lấy khóa công khai của người nhận từ vòng khóa công khai bằng cách sử dụng her_userid làm chỉ mục.
    3. Thành phần khóa phiên của thông báo được xây dựng.

Thực thể PGP nhận thực hiện các bước sau (Hình 18.6).

  1. Giải mã tin nhắn:
    1. PGP lấy khóa riêng của người nhận từ vòng khóa riêng bằng cách sử dụng trường Key ID trong thành phần khóa phiên của thông báo dưới dạng chỉ mục.
    2. PGP nhắc người dùng nhập cụm mật khẩu để khôi phục khóa cá nhân chưa được mã hóa.
    3. PGP sau đó khôi phục khóa phiên và giải mã thông báo.

Hình 18.6 Nhận tin nhắn PGP (từ Người dùng A đến Người dùng B; không nén hoặc chuyển đổi cơ số 64)

  1. Xác thực tin nhắn:
    1. PGP lấy khóa công khai của người gửi từ vòng khóa công khai bằng cách sử dụng Khóa Trường ID trong thành phần khóa chữ ký của thư dưới dạng chỉ mục.
    2. PGP phục hồi thông báo thông báo đã truyền.
    3. PGP tính toán thông báo thông báo cho tin nhắn đã nhận và so sánh nó vào bản tóm tắt thông báo đã truyền để xác thực.

Public-Key Management 

Như có thể thấy từ cuộc thảo luận cho đến nay, PGP chứa một tập hợp các chức năng và định dạng để cung cấp một dịch vụ xác thực và bảo mật hiệu quả. Để hoàn thiện hệ thống, một lĩnh vực cuối cùng cần được giải quyết, đó là quản lý khóa công khai. Tài liệu PGP nắm bắt tầm quan trọng của lĩnh vực này:

Toàn bộ hoạt động bảo vệ khóa công khai khỏi bị giả mạo là vấn đề khó khăn nhất trong các ứng dụng khóa công khai thực tế. Nó là “gót chân Achilles” của mật mã khóa công khai, và rất nhiều sự phức tạp của phần mềm được gắn liền với việc giải quyết một vấn đề này.

PGP cung cấp một cấu trúc để giải quyết vấn đề này với một số tùy chọn được đề xuất có thể được sử dụng. Bởi vì PGP được thiết kế để sử dụng trong nhiều hình thức và môi trường không chính thức, không có sơ đồ quản lý khóa công khai cứng nhắc nào được thiết lập, chẳng hạn như chúng ta sẽ thấy trong phần thảo luận về S / MIME ở phần sau của chương này.

APPROACHES TO PUBLIC-KEY MANAGEMENT

Bản chất của vấn đề là: Người dùng A phải xây dựng một vòng khóa công khai chứa khóa công khai của những người dùng khác để tương tác với họ bằng PGP. Giả sử rằng vòng khóa của A chứa khóa công khai thuộc về B, nhưng trên thực tế khóa thuộc sở hữu của C. Điều này có thể xảy ra, ví dụ, nếu A lấy khóa từ hệ thống bảng thông báo (BBS) được B sử dụng để đăng khóa công khai nhưng điều đó đã bị xâm phạm bởi C. Kết quả là hai mối đe dọa hiện đang tồn tại. Đầu tiên, C có thể gửi tin nhắn đến A và giả mạo chữ ký của B để A chấp nhận tin nhắn đến từ B. Thứ hai, mọi thông điệp được mã hóa từ A đến B đều có thể được đọc bởi C.

Có thể có một số phương pháp để giảm thiểu rủi ro mà người dùng vòng khóa công khai chứa các khóa công khai sai. Giả sử rằng A muốn có được một khóa công khai đáng tin cậy cho B. Sau đây là một số cách tiếp cận có thể được sử dụng.

  1. Lấy khóa vật lý từ B. B có thể lưu khóa công khai (PUb) của cô ấy trên đĩa mềm và giao cho A. Sau đó, A có thể tải khóa vào hệ thống của mình từ đĩa mềm. Đây là một phương pháp rất an toàn nhưng có những hạn chế thực tế rõ ràng.
  2. Xác minh khóa bằng Điện thoại. Nếu A có thể nhận ra B trên điện thoại, A có thể gọi cho B và Yêu cầu cô ấy ra lệnh cho khóa, ở định dạng cơ số 64, qua điện thoại. Như một giải pháp thay thế thiết thực hơn, B có thể truyền khóa của cô ấy trong một thông điệp e-mail cho A. A có thể yêu cầu PGP tạo một thông báo SHA-1 160-bit của khóa và hiển thị nó ở định dạng thập lục phân; đây được gọi là “dấu vân tay” của khóa. Sau đó A có thể gọi cho B và yêu cầu cô ấy ra lệnh dấu vân tay qua điện thoại. Nếu hai dấu vân tay trùng khớp, chìa khóa đã được xác minh.
  3. Lấy khóa công khai của B từ một cá nhân đáng tin cậy D. Với mục đích này, người giới thiệu, D, tạo ra một chứng chỉ có chữ ký. Chứng chỉ bao gồm khóa công khai của B, thời điểm tạo khóa và thời hạn hiệu lực của khóa. D tạo thông báo SHA-1 của chứng chỉ này, mã hóa nó bằng khóa riêng của cô ấy và đính kèm chữ ký vào chứng chỉ. Vì chỉ có D mới có thể tạo ra chữ ký, không ai khác có thể tạo khóa công khai giả và giả vờ rằng nó được ký bởi D. Chứng chỉ đã ký có thể được gửi trực tiếp đến A bởi B hoặc D, hoặc nó có thể được đăng trên bảng thông báo .
  4. Nhận khóa công khai của B từ cơ quan chứng nhận đáng tin cậy. Một lần nữa, một chứng chỉ khóa công khai được tạo và được ký bởi cơ quan có thẩm quyền. Sau đó, A có thể truy cập vào cơ quan, cung cấp tên người dùng và nhận chứng chỉ đã ký.

Đối với trường hợp 3 và 4, A đã phải có một bản sao khóa công khai của người giới thiệu và tin tưởng rằng khóa này hợp lệ. Cuối cùng, A sẽ chỉ định mức độ tin cậy cho bất kỳ ai đóng vai trò là người giới thiệu.

THE USE OF TRUST

Mặc dù PGP không bao gồm bất kỳ đặc điểm kỹ thuật nào để thiết lập cơ quan chứng nhận hoặc thiết lập lòng tin, nhưng nó cung cấp một phương tiện thuận tiện để sử dụng sự tin cậy, liên kết sự tin cậy với các khóa công khai và khai thác thông tin về sự tin cậy.

Cấu trúc cơ bản như sau. Mỗi mục nhập trong vòng khóa công khai là một chứng chỉ khóa, như được mô tả trong phần phụ trước. Được liên kết với mỗi mục nhập như vậy là trường tính hợp pháp chính cho biết mức độ mà PGP sẽ tin tưởng rằng đây là khóa công khai hợp lệ cho người dùng này; mức độ tin cậy càng cao thì sự ràng buộc của ID người dùng này với khóa này càng mạnh. Trường này được tính toán bởi PGP. Ngoài ra, liên kết với mục nhập là không hoặc nhiều chữ ký mà chủ sở hữu chiếc chìa khóa đã thu thập được ký chứng chỉ này. Đổi lại, mỗi chữ ký đã liên kết với nó một trường tin cậy chữ ký cho biết mức độ mà người dùng PGP này tin tưởng người ký để chứng nhận các khóa công khai. Trường tính hợp pháp chính có nguồn gốc từ tập hợp các trường tin cậy chữ ký trong mục nhập. Cuối cùng, mỗi mục nhập xác định một khóa công khai được liên kết với một chủ sở hữu cụ thể, và một trường tin cậy của chủ sở hữu được bao gồm cho biết mức độ mà khóa công khai này được tin cậy để ký các chứng chỉ khóa công khai khác; mức độ tin cậy này được chỉ định bởi người dùng. Chúng ta có thể coi các trường tin cậy chữ ký là các bản sao được lưu trong bộ nhớ cache của trường tin cậy chủ sở hữu từ một mục nhập khác.

Ba trường được đề cập trong đoạn trước được chứa trong một cấu trúc được gọi là byte cờ tin cậy. Nội dung của cờ tin cậy này cho mỗi cách sử dụng này được thể hiện trong Bảng 18.2. Giả sử rằng chúng ta đang xử lý vòng khóa công khai của người dùng A. Chúng ta có thể mô tả hoạt động của xử lý ủy thác như sau.

  1. Khi A chèn một khóa công khai mới trên vòng khóa công khai, PGP phải gán một giá trị cho cờ tin cậy được liên kết với chủ sở hữu của khóa công khai này. Nếu chủ sở hữu là A và do đó khóa công khai này cũng xuất hiện trong vòng khóa riêng tư, thì giá trị của độ tin cậy cuối cùng sẽ tự động được gán cho trường tin cậy.

Nếu không, PGP yêu cầu A đánh giá mức độ tin cậy được giao cho chủ sở hữu của khóa này và A phải nhập cấp độ mong muốn. Người dùng có thể chỉ định rằng chủ sở hữu này là không xác định, không đáng tin cậy, đáng tin cậy một chút hoặc hoàn toàn đáng tin cậy.

  1. Khi khóa công khai mới được nhập, một hoặc nhiều chữ ký có thể được gắn vào nó. Nhiều chữ ký hơn có thể được thêm vào sau này. Khi một chữ ký được chèn vào mục nhập, PGP sẽ tìm kiếm vòng khóa công khai để xem liệu tác giả của chữ ký này có nằm trong số các chủ sở hữu khóa công khai đã biết hay không. Nếu vậy, giá trị OWNERTRUST cho chủ sở hữu này được gán cho trường SIGTRUST cho chữ ký này. Nếu không, một giá trị người dùng không xác định sẽ được chỉ định.
  2. Giá trị của trường tính hợp pháp chính được tính toán trên cơ sở các trường tin cậy chữ ký có trong mục nhập này. Nếu ít nhất một chữ ký có giá trị tin cậy chữ ký là cuối cùng, thì giá trị tính hợp pháp của khóa được đặt thành hoàn thành. Nếu không thì,PGP tính tổng trọng số của các giá trị tin cậy. Trọng số 1 / X được trao cho các chữ ký luôn được tin cậy và 1 / Y cho các chữ ký thường được tin cậy, trong đó X và Y là các tham số người dùng có thể định cấu hình. Khi tổng trọng số của các phần tử giới thiệu của tổ hợp Khóa / UserID đạt đến 1, ràng buộc được coi là đáng tin cậy và giá trị tính hợp pháp của khóa được đặt thành chung. Do đó, trong trường hợp không có sự tin cậy cuối cùng, ít nhất phải có chữ ký X luôn được tin cậy, chữ ký Y thường được tin cậy hoặc cần có sự kết hợp nào đó.

Định kỳ, PGP xử lý vòng khóa công khai để đạt được tính nhất quán. Về bản chất, đây là một quy trình từ trên xuống. Đối với mỗi trường OWNERTRUST, PGP quét vòng để tìm tất cả các chữ ký do chủ sở hữu đó tạo ra và cập nhật trường SIGTRUST để bằng với trường OWNERTRUST. Quá trình này bắt đầu với các khóa mà có sự tin cậy tối ưu. Sau đó, tất cả các trường KEYLEGIT được tính toán trên cơ sở các chữ ký đính kèm.

Hình 18.7 cung cấp một ví dụ về cách thức mà chữ ký tin cậy và khóa Tính hợp pháp có liên quan.3 Hình vẽ cho thấy cấu trúc của một vòng khóa công khai. Người dùng đã có được một số khóa công khai — một số trực tiếp từ chủ sở hữu của họ và một số từ bên thứ ba, chẳng hạn như máy chủ khóa.

Xem thêm Xây dựng mối quan hệ: Cách kiếm được sự tin cậy & liên kết chất lượng cao

Nút có nhãn “Bạn” đề cập đến mục nhập trong vòng khóa công khai tương ứng với người dùng này. Khóa này là hợp pháp và giá trị OWNERTRUST là sự tin cậy cuối cùng. Mỗi nút khác trong vòng khóa có giá trị OWNERTRUST không xác địnhtrừ khi một số giá trị khác được chỉ định bởi người dùng. Trong ví dụ này, người dùng này đã xác định rằng họ luôn tin tưởng những người dùng sau ký các khóa khác: D, E, F, L. Người dùng này một phần tin tưởng người dùng A và B để ký các khóa khác.

Vì vậy, việc tô bóng, hoặc thiếu nó, của các nút trong Hình 18.7 cho biết mức độ tin cậy được chỉ định bởi người dùng này. Cấu trúc cây cho biết những phím nào đã đượcđược ký bởi những người dùng khác. Nếu khóa được ký bởi người dùng có khóa cũng nằm trong vòng khóa này, thì mũi tên sẽ nối khóa đã ký với người ký. Nếu khóa được ký bởi người dùng có khóa không có trong vòng khóa này, thì mũi tên nối khóa đã ký thành một dấu chấm hỏi, cho biết rằng người ký không biết người dùng này.

Một số điểm được minh họa trong Hình 18.7.

  1. Lưu ý rằng tất cả các khóa có chủ sở hữu được người dùng này tin cậy hoàn toàn hoặc một phần đều đã được người dùng này ký, ngoại trừ nút L. Chữ ký người dùng như vậy là không phải lúc nào cũng cần thiết, như sự hiện diện của nút L cho thấy, nhưng trên thực tế, hầu hết người dùng có khả năng ký khóa cho hầu hết các chủ sở hữu mà họ tin tưởng. Vì vậy, để kiểm tra, mặc dù khóa của E đã được ký bởi người giới thiệu đáng tin cậy F, người dùng đã chọn ký trực tiếp vào khóa của E.
  2. Chúng tôi giả định rằng hai chữ ký đáng tin cậy một phần là đủ để chứng nhận một khóa. Do đó, khóa cho người dùng H được PGP coi là hợp pháp vì nó được ký bởi A và B, cả hai đều được tin cậy một phần.
  3. Một khóa có thể được xác định là hợp pháp vì nó được ký bởi một người đầy đủ đáng tin cậy hoặc hai bên ký kết đáng tin cậy một phần, nhưng người dùng của nó có thể không được tin cậy để ký các khóa khác. Ví dụ: khóa của N là hợp pháp vì nó được ký bởi E, người mà người dùng này tin tưởng, nhưng N không được tin cậy để ký các khóa khác vì người dùng này chưa gán cho N giá trị tin cậy đó. Do đó, mặc dù khóa của R được ký bởi N, PGP không coi khóa của R là hợp pháp. Tình huống này có ý nghĩa hoàn hảo. Nếu bạn muốn gửi một tin nhắn riêng tư cho một số cá nhân, bạn không nhất thiết phải tin tưởng cá nhân đó ở bất kỳ khía cạnh nào. Chỉ cần bạn chắc chắn rằng bạn có khóa công khai chính xác cho cá nhân đó.
  4. Hình 18.7 cũng cho thấy một ví dụ về nút “mồ côi” tách rời S, với hai chữ ký không xác định. Một khóa như vậy có thể đã được lấy từ một máy chủ khóa.

PGP không thể cho rằng khóa này là hợp pháp đơn giản vì nó đến từ một máy chủ uy tín. Người dùng phải khai báo khóa hợp pháp bằng cách ký tên vào nó hoặc bằng cách nói với PGP rằng họ sẵn sàng tin tưởng hoàn toàn vào một trong những người ký của khóa.

Điểm cuối cùng: Trước đó, người ta đã đề cập rằng nhiều ID người dùng có thể được liên kết- với một khóa công khai duy nhất trên vòng khóa công khai. Điều này có thể là do một người đã thay đổi tên hoặc được giới thiệu thông qua chữ ký dưới nhiều tên, ví dụ, chỉ ra các địa chỉ e-mail khác nhau cho cùng một người. Vì vậy, chúng ta có thể coi khóa công khai là gốc của một cái cây. Khóa công khai có một số ID người dùng liên kết với nó, với một số chữ ký bên dưới mỗi ID người dùng. Sự ràng buộc của một ID người dùng cụ thể với một khóa phụ thuộc vào các chữ ký được liên kết với ID người dùng đó và khóa đó, trong khi mức độ tin cậy trong khóa này (để sử dụng để ký các khóa khác) là một chức năng của tất cả các chữ ký phụ thuộc.

REVOKING PUBLIC KEYS

Người dùng có thể muốn thu hồi khóa công khai hiện tại của mình hoặc vì nghi ngờ có sự thỏa hiệp hoặc đơn giản là để tránh việc sử dụng cùng một khóa trong một thời gian dài. Lưu ý rằng một thỏa hiệp sẽ yêu cầu đối thủ bằng cách nào đó đã lấy được bản sao của khóa cá nhân chưa được mã hóa của bạn hoặc đối thủ đã lấy được cả khóa riêng từ vòng khóa riêng và cụm mật khẩu của bạn.

Xem thêm Phân khối khóa (key) trong mã hóa

Quy ước thu hồi khóa công khai là chủ sở hữu phát hành khóa thu hồi- chứng chỉ cation, có chữ ký của chủ sở hữu. Chứng chỉ này có hình thức tương tự như chứng chỉ chữ ký thường nhưng bao gồm một chỉ báo rằng mục đích của chứng chỉ này là thu hồi việc sử dụng khóa công khai này. Lưu ý rằng khóa cá nhân tương ứng phải được sử dụng để ký chứng chỉ thu hồi khóa công khai. Sau đó, chủ sở hữu nên cố gắng phổ biến chứng chỉ này càng rộng rãi và càng nhanh càng tốt để cho phép các đối tác tiềm năng cập nhật các vòng khóa công khai của họ.

Lưu ý rằng đối thủ đã xâm phạm khóa cá nhân của chủ sở hữu cũng có thể cấp chứng chỉ như vậy. Tuy nhiên, điều này sẽ phủ nhận đối thủ cũng như chủ sở hữu hợp pháp việc sử dụng khóa công khai, và do đó, nó có vẻ như là một mối đe dọa ít có khả năng xảy ra hơn nhiều so với việc sử dụng ác ý khóa riêng bị đánh cắp.

Nhược điểm của mã hóa PGP

  • Quản lý khó khăn: Các phiên bản khác nhau của PGP làm phức tạp thêm việc quản lý.
  • Vấn đề về khả năng tương thích: Cả người gửi và người nhận đều phải có phiên bản PGP tương thích. Ví dụ: nếu bạn mã hóa email bằng cách sử dụng PGP với một trong các kỹ thuật mã hóa, người nhận có phiên bản PGP khác không thể đọc dữ liệu.
  • Độ phức tạp: PGP là một kỹ thuật phức tạp. Các chương trình bảo mật khác sử dụng mã hóa đối xứng sử dụng một khóa hoặc mã hóa không đối xứng sử dụng hai khóa khác nhau. PGP sử dụng phương pháp kết hợp thực hiện mã hóa đối xứng với hai khóa. PGP phức tạp hơn và nó ít quen thuộc hơn so với các phương pháp đối xứng hoặc bất đối xứng truyền thống.
  • Không có phục hồi: Quản trị viên máy tính phải đối mặt với vấn đề mất mật khẩu của họ. Trong những tình huống như vậy, quản trị viên nên sử dụng một chương trình đặc biệt để lấy mật khẩu. Ví dụ: một kỹ thuật viên có quyền truy cập vật lý vào PC có thể được sử dụng để lấy mật khẩu. Tuy nhiên, PGP không cung cấp một chương trình phục hồi đặc biệt như vậy; Phương pháp mã hóa rất mạnh vì vậy nó không lấy lại mật khẩu bị quên dẫn đến mất tin nhắn hoặc mất tập tin.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now