1. Trang chủ
  2. » Luận Văn - Báo Cáo

tìm hiểu về giao thức bảo mật PGP

25 658 7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 2,44 MB

Nội dung

tìm hiểu về giao thức PGP, giới thiệu, mô hình kiến trúc, các phương thức hoạt động của PGP : xác thực thông điệp, đảm bảo tính bí mật thông điệp và đồng thời cả xác thực và đảm bảo thông điệp. Cách mã hóa email dựa trên nền tảng open PGP

Trang 1

1. Lịch sử của giao thức bảo mật PGP.

Giao thức bảo mật PGP được phát triển bởi Philip Zimmermannvào năm 1991 PGP viết tắt cho Pretty Good Privacy Cái tên nàyđược lấy cảm hứng từ một cửa hàng bán đồ tạp hóa “Ralph’s PrettyGood Grocery”

Trang 2

Phiên bản đầu tiên của PGP sử dụng thuật toán mã hóa khóa đốixứng được Zimmerman tự tay phát triển Ông đặt tên cho thuật toán

đó là BassOmatic Tại thời điểm đó, ông là một nhà phi hạt nhân trongthời kỳ đó và muốn phát triển một chương trình giúp cho người dùng

có thể trao đổi thông tin một cách bảo mật nhất có thể trên mạng Internet Ông cho ra mắt phiên bản PGP với mục đích không phải để kinh doanh Tất cả các source code được đính kèm với các bản sao được công bố PGP nhanh chóng được sử dụng rộng rãi trên mạng Internet

Phil đã phát triển nên giao thức PGP cung cấp các tình riêng

tưvà tính xác thực trên thông điệp truyền PGP được sử dụng rộng rãi và thừa nhận thành chuẩn thực tế (RFC 3156) PGP cho phép

mã hóa dữ liệu sử dụng mã khóa bí mật và mã khóa công khai, đồng thời cho phép tạo và kiểm tra chữ ký số, hỗ trợ hầu hết các

thuật toán mã hóa hiện đại như 2DES, AES, RSA,…

Không lâu sau khi được công bố, PGP đã được phát triển rộng rãi trên các nước trên thế giới Vào năm 1993, Zimmermann đã trở thành đối tượng bị điều tra của chính phủ Mỹ với tội danh “Xuất khẩu

vũ khí quân sự trái phép” Theo quy định của chính phủ Mỹ thời đó, nếu như hệ thông mã hóa sử dụng khóa lớn hơn 40 bits thì sẽ được coi

là vũ khí quân sự, còn PGP thì sử dụng khóa 128 bits và lớn hơn Zimmerman đã chống lại quy định này bằng cách ông cho xuất bản một cuốn sách chứa đầy đủ thông tin về PGP, bao gồm cả source code.Sau nhiều năm điều tra không đem lại kết quả, chính phủ Mỹ đã phải

bộ và đóng cuộc điều tra lại

Vào 12-1997, PGP được công ty Network Associates, Inc (hay hiện nay còn được biết đến với tập đoàn McAfee) mua lại Tại đây, đội ngũ phát triển của PGP đã có thể tích hợp mã hóa trên đĩa, tường lửa, hệ thống phát hiện xâm nhập và IPSec VPNs và hệ thống của mình

Trang 3

line) Từ đó, PGP đã thành lập văn phòng hỗ trợ kỹ thuật trên khắp nước Mỹ và các nước trên thế giới như Đức và Nhật Bản.

29-04-2010, Symantec Corp đã mua lại PGP với mức giá 300 triệu USD với mục tiêu là phát triển nó cho việc bảo mật các doanh nghiệp

3. Khái quát về Open PGP.

Ở trong PGP Inc, các nhà phát triển vẫn có những hoài nghi về vấn đề bản quyển Mã hóa PGP đang được phát triển rất rộng rãi trên thế giới, có rất nhiều công ty, tập đoàn muốn được cài đặt nó vào hệ thống của mình Zimmerman tin rằng là tạo ra một chuẩn mã hóa PGP

sẽ là điều quan trọng cho cộng đồng mã hóa Vào tháng 7-1997, PGP, Inc đã đề xuất với IETF (Internet Engineering Task Force, là một tổ chức phát triển các tiêu chuẩn trên Internet) rằng họ muốn đặt ra một chuẩn gọi là OpenPGP Họ cho phép IETF quyền được sử dụng cái tênOpenPGP để miêu tả tiêu chuẩn mới này Sau đó, IETF đã chấp thuận

và nhóm làm việc OpenPGP ra đời

Mã hóa của OpenPGP có thể đảm bảo được sự bảo mật trong việc vận chuyển các file và tin nhắn, cũng như cung cấp những tiến trình để đảm bảo tính xác thực của tin nhắn Bộ công cụ văn phòng

mã nguồn mở Libre Office đã tích hợp OpenPGP vào phần mềm trongphiên bản 5.4.0 trên Linux OpenPGP cũng được dùng để bảo vệ các file quan trọng trong thiết bị di động và trên cloud

OpenPGP được sử dụng chủ yếu để mã hóa e-mail Giao thức

OpenPGP là định dạng tiêu chuẩn trong việc mã hóa e-mail

4. Độ bảo mật của PGP.

Theo những thông tin chính thức hiện có, gần như không có một cách nào để có thể bẻ khóa mã hóa bằng PGP Từ năm 1995, nhà mật mã học Bruce Scheiner đã phát biểu rằng những phiên bản đầu của PGP có mức độ bảo mật mạnh tương tự với mật mã hóa của quân

Trang 4

đội Tuy nhiên, PGP vẫn được cho là có những điểm yếu có thể bị khai thác trên lý thuyết PGP không chỉ bảo về được dữ liệu khi truyền

đi mà còn cả khi lưu trữ dữ liệu

Trong những phiên bản đầu tiên, PGP sử dụng thuật toán RSA

để mã hóa Phiên bản thứ hai thì PGP sử dụng giải thuật mã hóa khóa đối xứng IDEA Tại phiên bản hiện tại, PGP đã được bổ sung thêm nhiều thuật toán mã hóa khác Phần lớn các điểm yếu đều đến từ việc

sử dụng các thuật toán mã hóa này

Tuy nhiên, PGP có thể rất khó khăn cho kẻ gian giải mã được nhưng vẫn có nhiều cách khác để chúng lấy được dữ liệu Những kỹ thuật như rubber-hose (Ép cung, tra tấn người giữ khóa để lấy khóa) hay black-bag cryptanalysis (Cài đặt trojan hay key log vào máy nạn nhân để đánh cắp khóa) có thể phá vỡ bảo mật PGP Trong những trường hợp như vậy thì gần như không có phần mềm mã hóa nào có thể bảo vệ được dữ liệu cả

5. Tại sao PGP lại quan trọng?

Có thể chúng ta không biết nhưng email là một cách rất an toàn

để liên lạc Khi email của bạn rời khỏi tài khoản và được gửi qua internet, chúng sẽ đươc chuyển qua các mạng nằm ngoài tầm kiểm soát của bạn Khi đó khả năng chúng có thể bị chặn và giả mạo là rất cao

Nếu chúng ta cần gửi một tin nhắn có giá trị và tính bảo mật cao, email bình thường sẽ không phù hợp Bởi tin nhắn cá nhân của bạn có thể bị cướp bởi những tin tặc, chúng có thể sử dụng những tin nhắn này để thực hiện hành vi gian lận danh tính Trong trường hợp này sẽ xảy ra nguy hiểm rất lớn khi các tin nhắn quan trọng của chính phủ có thể rơi vào tay các điệp viên Một người rình rập thậm chí có thể đọc mọi thứ đi qua hộp thư đến của họ

Những mối nguy hiểm này là một phần lý do tại sao PGP được phát minh ra để mang lại một số lợi ích riêng tư và bảo mật cho Wild West, đó là liên lạc qua email

Trang 5

II. Kiến trúc.

1. Mô hình kiến trúc.

Kiến trúc tổng quan

Hai dịch vụ chính mà PGP cung cấp cho người dùng là: mã hóa

và xác thực thông điệp Khi thiết kế một ứng dụng bảo mật email, người thiết kế phải đương đầu với hai vẫn đề chính, trước hết, phải bảo mật ứng dụng bằng những giải thuật nào?

Trong trường hợp của PGP, những dịch vụ vủa nó dựa vào 3 giải thuật: IDEA (mã hóa khóa bí mật), RSA (mã hóa khóa công khai)

và MD5 (Hàm băm an toàn)

2. Thiết kế của PGP.

Giao thức PGP kết hợp các kỹ thuật để đảm bảo an toàn bảo mật như mã hóa bằng hàm băm, nén dữ liệu, giải thuật khóa đối xứng,bất đối xứng và cuối cùng là các kỹ thuật phân phối khóa công khai

Trang 6

Mỗi một bước trong giao thức được sử dụng rất nhiều các thuật toán khác nhau Phiên bản đầu tiên sử dụng giao thức này được gọi là mạng lưới tín nhiệm, Web Of Trust (WOT) WOT là một hệ thống dùng để thiết lập độ xác thực và tin cậy giữa các khóa công khai với chủ của nó Đây là một mô hình có độ tin cậy được phân tán trên mạng máy tính, là một sự thay thế cho mô hình tin cậy tập trung trong khoảng thời gian bấy giờ, phụ thuộc hoàn toàn vào chữ ký số của bên thứ ba, hay còn gọi là Certificate Authority Cũng như mạng máy tính,tồn tại nhiều mạng lưới tín nhiệm hoạt động độc lập với nhau Mỗi người sử dụng trong mô hình này có thể là thành viên của nhiều mạng

và như vậy họ trở thành cầu nối giữa các mạng đó

Các phiên bản PGP vế sau dựa trên các kiến trúc tương tự như

hạ tầng hóa công khai.hạ tầng khóa công khai (viết tắt PKI) là một cơ

chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực số) cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công khai/khóa bí mật Các quá trình nàythường được thực hiện bởi một phần mềm đặt tại trung tâm và các phần mềm phối hợp khác tại các địa điểm của người dùng Khóa công khai thường được phân phối trong chứng thực khóa công khai

Trang 7

Mô hình miêu tả phương thức hoạt động của giao thức PGP

3. Vân tay PGP.

Trong mô hình giao thức PGP còn sử dụng vân tay PGP – PGP fingerprint Vân tay PGP công khai là phiên bản dài hơn của khóa công khai sau khi được hàm băm xử lý Sử dụng vân tay PGP sẽ làm tăng độ tin cậy của khóa công khai hơn vì độ lớn của nó lớn hơn khóa công khai nhiều Từ dấu vân tay PGP, người dùng có thể nhận được khóa công khai tương ứng với đoạn thông điệp

4. Tính thích ứng của PGP.

Hiện nay, PGP được phát triển bởi tập đoàn Symantec Vì vậy, tính thích ứng trong giao thức PGP là một yếu tố quan trọng Hiện

Trang 8

nay, giao thức PGP vẫn đang được phát triển Khi đó, giao thức cũng

áp dụng những thuật toán mã hóa và các tính năng bảo mật mới Vì vậy, các hệ thống PGP cũ sẽ không có khả năng giải mã thông điệp kể

cả khi có được khóa bí mật Vì vậy, những đối tác sử dụng giao thức PGP sẽ luôn phải cập nhật phần mềm và hệ thống của mình để có thể trao đổi thông tin được với nhau, hoặc ít nhất là 2 bên cùng đồng nhất trong một phiên bản của hệ thống PGP

1. Khái niệm cơ bản.

Giả dụ như bạn có một gói hàng có chứa nhiều thông tin quan trọng muốn gửi đến cho bạn của mình Bạn sẽ phải gửi gói hàng đó thông qua đường bưu điện cho người bạn đó Kẻ trộm có thể dễ dàng đánh cắp gói hàng đó và chiếm lấy những thông tin quan trọng

Có một số giải pháp cho vấn đề này Ta có thể gặp người bạn đó

và đưa cho họ một bản sao của chiếc chìa khóa cho gói hàng Như vậy, cả 2 đều sẽ có chìa khóa để mở gói hàng Điều này không cần thiết cho lắm vì bạn là người gửi sẽ không có nhu cầu phải mở lại gói hàng một lần nữa Hơn nữa, nếu như người bạn đó lại làm mất chiếc chìa khóa vào tay kẻ xấu Như vậy, tạo ra bản sao của 2 chiếc chìa khóa cũng sẽ tạo nên một lỗ hổng bảo mật

Giải pháp tốt nhất ở đây sẽ là tạo ra 2 khóa Một khóa chỉ có khả năng khóa gói hàng lại Còn khóa còn lại chỉ có khả năng mở gói hàng ra Và tùy vào nhu cầu của bạn, bạn sẽ đưa chìa khóa cho đúng người

Đây là cách mà giao thức PGP hoạt động: Bạn sẽ có một khóa công khai (public key) dùng để mã hóa gói tin và một khóa bí mật (private key) dùng để giải mã gói tin Bạn sẽ gửi khóa công khai cho tất cả những người bạn của mình để họ có thể mã hóa được tin nhắn gửi cho bạn Sau đó, bạn sẽ dùng khóa bí mật của mình để giải mã tin nhắn đó Và bạn cũng sẽ làm điều ngược lại với những người bạn của mình Khóa công khai và khóa bí mật được kết nối với nhau, nếu bạn

Trang 9

mã hóa một thứ gì đó bằng mã công khai, thì người khác có thể giải

mã bằng khóa bí mật đồng bộ

2. Cách sử dụng vân tay PGP.

• Những chiếc khóa tự bản thân nó là những dãy số rất lớn Vì vậy, như đã nói ở trên, PGP sẽ sử dụng vân tay PGP để rút ngắn khóa này lại Để có thể tạo ra vân tay PGP, ta sẽ làm như sau:

- Khóa công khai sẽ được mã hóa thành các byte Để đảm bảorằng tạo vân tay PGP của một khóa là độc nhất, ta cần phải

mã hóa các khóa công khai một cách rõ ràng và những dữ liệu được thêm mới sẽ được thay đổi và lưu bên cạnh với khóa công khai

- Đoạn bytes được mã hóa sẽ đi qua hàm băm như là SHA-1, SHA-2

- Nếu cần thiết, đầu ra của hàm băm có thể được rút ngắn lại

để thuận tiện cho việc sử dụng hơn

• Vân tay PGP hỗ trợ rất tốt trong việc chuyển khóa công khai

Trang 10

Ví dụ:

Ta có khóa công khai với ID ngắn, ID dài và vân tay như sau:

fingerprint: 0D69 E11F 12BD BA07 7B37 26AB 4E1F 799A A4FF 2279long id: 4E1F 799A A4FF 2279

short id: A4FF 2279

Ta có thể thấy rằng ID ngắn thuận tiện cho việc sử dụng hơn nhưng nó có khả năng tạo ra sự xung đột trong hệ thống Khi số lượngcác khóa càng nhiều thì càng có khả năng rằng sẽ có các khóa bị trùngnhau Đây là số lượng các ID khóa có thể tạo ra với độ dài của mỗi thành phần:

Như vậy, sử dụng vân tay PGP, ta có thể tăng độ bảo mật vì tạo

ra không gian khóa lớn, khó có thể vét cạn được và tránh được trường hợp xung đột khi số lượng khóa tăng

3. Mã hóa

Hoạt động thực tế của PGP để gửi và nhận thông điệp bao gồm

5 dịch vụ: chữ ký số, mã hóa thông điệp trong PGP

Quy trình thực hiện theo các bước sau:

Trang 12

Quá trình mã hóa 1 thông điệp trong PGP

4. Giải mã.

Hình dưới mô tả quá trình giải mã một thông điệp trong PGP

Về cơ bản, để giải mã, PGP chỉ cần thực hiện đảo ngược các bước củaquá trình mã hóa

Trang 14

Quá trình giải mã một thông điệp trong PGP

5. Khóa

Khóa là một giá trị làm việc với một thuật toán mã hóa để tạo ramột bản mã cụ thể Về cơ bản khóa là những con số rất lớn Kích thước của khóa được đo bằng bit Trong các thuật toán mã hóa, khóa càng lớn thì tính bảo mật càng cao

Nền tảng những thao tác của PGP là yêu cầu mỗi người dùng cómột cặp khóa công khai – bí mật cũng như các bản sao chép các khóa công khai của người nhận

Khóa được lưu trữ ở dạng mã hóa PGP lưu trữ các khóa trong hai tập tin trên đĩa cứng của bạn Một cho khóa công cộng và một cho khóa bí mật Những tập tin này được gọi là một vòng khóa

PGP thường lưu lại những chìa khóa công khai mà người dùng thu được Các khóa này được tập hợp và lưu lại trên vòng khóa công khai Mỗi mục vòng gồm các phần:

- Khóa công khai

- User ID chủ nhân của khóa công khai này, tên đặc trưng của chủ nhân

- Một key ID, là định danh cho khóa này

- Thông tin khác liên quan đến độ tin cậy của khóa và chủ nhân của nó

b. Khóa bí mật.

Để sử dụng PGP, người dùng cần phải có một khóa bí mật Nếu muốn người dùng có thể tạo nhiều khóa bí mật Vòng khóa bí mật chứa đựng thông tin của mỗi khóa

- Khóa riêng gồm 128 bit được sinh ra nhờ một passphrase và hàm băm MD5

- User ID

Trang 15

- Key ID của khóa công khai tương ứng.

6. Chữ ký số trong giao thức PGP.

Giao thức PGP hỗ trợ việc kiểm tra tính xác thực và toàn vẹn của tin nhắn Ta có thể kiểm tra xem tin nhắn có bị thay đổi trong quá trình chuyển dữ liệu hay không và có đích thực là tin nhắn được gửi từngười bạn của ta Bởi vì nội dung của tin nhắn đã bị mã hóa, những thay đổi trên nội dung này sẽ dẫn đến việc giải mã sai kể cả khi ta có khóa thích hợp Người gửi tin lúc này sẽ sử dụng PGP để tạo ra một chữ ký số cho tin nhắn với một thuật toán mã hóa có thể là RSA hoặc DSA PGP sẽ tạo ra một giá trị băm từ một đoạn dữ liệu của người gửi sau đó tạo ra một chữ ký số từ giá trị băm đó bằng khóa bí mật

Chữ ký số cho người nhận thông tin xác minh tính xác thực của nguồn gốc thông tin, và cũng xác nhận rằng thông tin còn nguyên vẹn.Một chữ ký số công khai rất quan trọng trong cung cấp chứng thực và toàn vẹn dữ liệu

Cách thức làm việc của chữ ký số được mô tả trong hình:

Lược đồ ký trên một thông điệp PGP

Người gửi tạo ra một thông điệp

- PGP sử dụng MD5 băm thông điệp tạo ra một mã băm 128 bit

Trang 16

- Người gửi lấy khóa bí mật trên vòng khóa để sử dụng

- PGP mã hóa mã băm bằng RSA sử dụng chìa khóa bí mật của người gửi, và gán kết quả vào thông điệp Key ID của khóa công khai của người gửi tương ứng gắn liền với chữ ký

Lược đồ kiểm tra chữ ký trên một thông điệp PGP của người nhận

Trong lược đồ trên

- PGP lấy Key ID được gán trong chữ ký và sử dụng nó để lấykhóa công khai đúng từ vòng khóa công khai

- PGP sử dụng RSA với khóa công khai của người gửi để giải

mã khôi phục mã băm

Trang 17

- PGP tạo ra một mã băm mới cho thông điệp và so sánh nó với mã băm giải mã Néu cả hai trùng nhau, thông điệp đượcxác thực.

Sự kết hợp của MD5 và RSA cung cấp một sơ đồ chữ ký số hiệu quả Với sức mạnh của RSA, người nhận chắc chắn rằng chỉ người sở hữu riêng với khóa thích hợp mới có thể tạo chữ ký Với sức mạnh của MD5, người nhận chắc chắn rằng không ai khác có thể tạo

ra một thong điệp mới mà mã băm trùng với mã băm của thông điệp gốc và vì vậy không thể trùng với chữ ký của thông điệp gốc

7. Mạng lưới tin cậy – Web of Trust

Một trong những yếu tố quan trọng nhất khi mã hóa thông điệp

và chứng nhận chữ ký là đảm bảo rằng người nhận khóa công khai đích thực là chủ thể được chọn để gửi đến Nếu như ta tải về một khóacông khai mà không kiểm tra trước thì sẽ có rất nhiều khả năng tồi tệ xảy ra như khóa đó bị giả mạo Từ những phiên bản đầu tiên, PGP đã

có những điều khoản nhằm xác thực việc phát tán các khóa Những điều khoản này được thiết kế dưới dạng mã hóa nên những hành động giả mạo có thể phát hiện được Tuy nhiên, nếu như tạo ra một chứng chỉ để có thể phát hiện được những thay đổi trên khóa là không hiệu quả, việc này chỉ có thể phát hiện sau khi khóa được tạo chứ không phải trước đó Người dùng cũng phải gửi khóa với chứng chỉ đến đúng địa chỉ người nhận Vì vậy, khóa công khai này có thể sẽ được kết nối đến với một bên người dùng thứ 3 để có thể chứng thực việc trao đổi khóa giữa hai bên Sẽ có rất nhiều lớp bảo mật được tạo ra nếu như ta đi theo mô hình này Tuy vậy trên thực tế, có rất ít chương trình thực hiện việc xác thực khóa công khai này vì nó khá khó để cài đặt

8. Độ bảo mật của PGP.

Ngày đăng: 04/04/2019, 22:40

TỪ KHÓA LIÊN QUAN

w