Người gửi sử dụng khóa công khai của người nhận để mã hóa một khóa chung còn được gọi là khóa phiên dùng trong các thuật toán mật mã hóa khóa đối xứng.. Tài liệu hướng dẫn sử dụng mã hóa
Trang 1TÀI LIỆU HƯỚNG DẪN MÃ HÓA
VỚI PGP
Trang 2Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 2
MỤC LỤC Mục lục……… 2
1 Tổng quan về PGP 2
1.1 Giới thiệu chung về PGP 3
1.2 Mục đích sử dụng PPG 3
1.3 Hoạt động của PGP 3
2 Các bước chuẩn bị: 4
2.1 Cài đặt phần mềm mail client Thunderbird 4
2.2 Cài đặt chương trình quản lý khóa Gnu4win 9
2.3 Cài đặt phần mềm hỗ trợ mã hóa Enigmail trên Thunderbird 13
3 Quản lý khóa 15
3.1 Tạo Khóa 15
3.2 Tạo Chứng chỉ thu hồi (Revocation Certificate) 17
3.3 Tạo Secret Keys và Public Keys 20
3.4 Import Public Keys và Upload Public Keys lên Servers 24
3.5 Một số chức năng khác 26
4 Mã hóa và tạo chữ ký điện tử 36
4.1 Mã hóa 36
4.2 Tạo chữ ký điện tử 39
5 Giải mã 42
Tài liệu tham khảo 46
Trang 31 Tổng quan về PGP
1.1 Giới thiệu chung về PGP
Khái niệm: Mã hóa PGP là một phần mềm máy tính dùng để mật mã hóa dữ liệu và xác
thực Phiên bản PGP đầu tiên do Phil Zimmermann được công bố vào năm 1991 Kể từ đó, phần mềm này đã có nhiều cải tiến và hiện nay tập đoàn PGP cung cấp phần mềm dựa trên nền tảng này
1.3 Hoạt động của PGP
PGP sử dụng kết hợp mật mã hóa khóa công khai và thuật toán khóa đối xứng cộng thêm
với hệ thống xác lập mối quan hệ giữa khóa công khai và chỉ danh người dùng (ID) Phiên bản đầu tiên của hệ thống này thường được biết dưới tên mạng lưới tín nhiệm dự trên các mối quan hệ ngang hàng (khác với hệ thống X.509 với cấu trúc cây dựa vào nhà cung cấp chứng thực số) 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 khóa công khai
PGP sử dụng thuật toán mã hóa khóa bất đối xứng Trong hệ thống này, người sử dụng
đầu tiên phải có một cặp khóa: Khóa công khai và khóa bí mật Người gửi sử dụng khóa công khai của người nhận để mã hóa một khóa chung (còn được gọi là khóa phiên) dùng trong các thuật toán mật mã hóa khóa đối xứng Khóa phiên này chính là chìa khóa để mật mã hóa các thông tin gửi qua lại trong các phiên giao dịch Có rất là nhiều khóa công khai của những người sử dụng PGP được lưu trữ trên mác máy chủ khóa PGP trên khắp thế giới
Một điều vô cùng quan trọng nữa là để phát hiện thông điệp có bị thay đổi hoặc giả mạo người gửi Để thực hiện mục tiêu trên thì người gửi phải ký văn bản với thuật toán RSA hoặc DSA Đầu tiên, PGP tính giá trị hàm băm của thông điệp rồi tạo ra chữ ký số với khóa bí mật của người gửi Khi nhận được văn bản, người nhận tính lại giá trị hàm băm của văn bản đó đồng thời giải mã chữ ký số bằng khóa công khai của người gửi Nếu hai giá trị này giống nhau thì có thể khẳng định là văn bản chưa bị thay đổi kể từ khi gửi và người gửi đúng là người sở hữu khóa bí mật tương ứng
Trong quá trình mã hóa cũng như kiểm tra chữ ký, một điều vô cùng quan trọng là khóa công khai được sử dụng thực sự thuộc về người được cho là sở hữu của nó Nếu chỉ đơn giản download một khóa công khai từ đâu đó sẽ không đảm bảo được điều này PGP thực hiện việc phân phối khóa thông qua thực chứng số được tạo nên bởi những kỹ thuật mật mã sao cho việc sửa đổi có thể dễ dàng bị phát hiện Tuy nhiên chỉ điều này thôi thì vẫn chưa đủ vì nó chỉ ngăn chặn được việc sửa đổi sau khi chứng thực được tạo ra Người dùng còn cần phải trang
bị khả năng xem xét khóa công khai có thực sự thuộc về người chủ sở hữu hay không Từ phiên bản đầu tiên PGP đã có một cơ chế hỗ trợ điều này được gọi là mạng lưới tín nhiệm Mỗi khóa công khai đều có thể được một bên thứ 3 xác nhận
OpenPGP cung cấp các chữ ký tin cậy có thể được sử dụng để tạo ra các nhà cung cấp chứng thực số (CA) Một chữ ký tin cậy có thể chứng tỏ rằng một khóa thực sự thuộc về một người sử dụng và người đó đáng tin cậy để ký xác nhận một khóa của mức thấp hơn Một chữ
ký có mức 0 tương đương với chữ ký trong mô hình mạng lưới tín nhiệm Chữ ký ở mức 1
Trang 4Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 4
PGP cũng được thiết kế với khả năng hủy bỏ hoặc thu hồi các chứng thực có khả năng đã
bị vô hiệu hóa Điều này tương đương với danh sách thực chứng bị thu hồi của mô hình hạ tầng khóa công khai Các phiên bản PGP gần đây cũng hỗ trợ tính năng hạn của thực chứng
2 Các bước chuẩn bị
2.1 Cài đặt phần mềm Mail Client Thunderbird
Bạn vào đường link sau:
http://www.mozilla.org/en-US/thunderbird/download/
Để down load Thunderbird về máy và tiến hành cài đặt
Bạn chọn Next để tiếp tục
Trang 5Ở trên hình có hai tùy chọn
Standard: Thunderbird sẽ cài đặt theo một chuẩn chung
Custom: Tùy chọn này nói về những tùy chỉnh của người sử dụng Bạn nên chọn Custom
Sau đó bạn chọn Next để tiếp tục
Trang 6Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 6
Ở đây cho phép bạn chọn đường dẫn để lưu trữ chương trình Thunderbird Mặc định là C:\Program Files\Mozilla Thunderbird Bạn có thể thay đổi đường dẫn này tùy theo ý muốn Tiếp theo bạn chọn Next
Ở đây nói về việc bạn tạo một biểu tượng cho Thunderbird Bạn chọn Next
Trang 7Ở bước này bạn chọn Install để tiến hành cài đặt Sau khi cài đặt xong Thunderbird sẽ có cửa sổ sau
Để tạo một tài khoản mail bạn chọn Create a new account như trên hình vẽ
Trang 8Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 8
Cửa sổ Mail Account Setup hiện ra cho phép bạn điền các thông tin cần thiết
Your name: Bạn điền tên của bạn
Email address: Bạn điền địa chỉ Email của bạn
Password: Bạn điền password mail của bạn
Sau đó bạn chọn Continue để tiếp tục
Có hai tùy chọn để cấu hình Mail
IMAP: Có thể thiết lập một mail account trên nhiều PC/Laptop một lúc mà chúng
ta có thể xem mail được tất cả IMAP chỉ lấy về các header của các mail, khi nào cần mở thì IMAP mới lấy xuống từng email riêng biệt Nếu các bạn check mail nhiều trên các thiết bị điện thoại hay laptop và bạn chủ yếu dùng web mail hoặc muốn dùng điện thoại để đồng bộ thư thì hãy dùng IMAP Ở đây thì tôi dùng IMAP
POP3: Với POP3, email của bạn sẽ được lưu trữ trên mailbox của remote server cho đến khi bạn check mail, khi bạn check mail thì tất cả mail ngay lập tức được download về máy tính và không còn lưu trữ trên server nữa Nếu bạn đang dùng email client trên một máy thường xuyên hoặc một hòm mail đồ sộ hãy dùng POP3
để kiểm soát được dung lượng hòm thư trên server
Sau đó chọn Create Account Quá trình tạo một tài khoản mail hoàn tất
Trang 92.2 Cài đặt chương trình quản lý khóa Gnu4win
Bạn download từ địa chỉ http://www.gpg4win.org/download.html
Và cài đăt các bước như sau:
Bạn chọn ngôn ngữ để cài đặt mặc định là English bạn chọn OK
Trang 10Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 10
Bạn chọn Next để tiếp tục
Ở cửa sổ này hiển thị giấy phép GNU Bạn chọn Next
Trang 11Chọn các thành phần của GNU Bạn nên để mặc định và chọn Next
Chọn thư mục để cài đặt và chọn Next
Trang 12Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 12
Bạn chọn Next sau đó chọn Install là hoàn tất xong quá trình cài đặt Gnu4win
Bạn vào biểu tượng trên màn hình Dekstop để vào chương trình quản lý khóa
Trang 13Đây là giao diện của chương trình quản lý khóa Bạn cũng có thể vào ở đây để tạo khóa, quản lý quá và thực hiện chữ ký điện tử Cái này sẽ nói rõ hơn ở chương trình quản lý mail client Thunderbird
2.3 Cài đặt phần mềm hỗ trợ mã hóa Enigmail trên Thunderbird
Để cài đặt phần mềm mở rộng hỗ trợ mã hóa mail, Thunderbird đã tích hợp phần mềm add-ons Enigmail Để cài đặt Enigmail bạn phải làm các bước như sau:
Bạn vào Tools → Add-ons
Cửa sổ Add-ons Manager hiện ra, ở thanh công cụ tìm kiếm add-ons bạn gõ vào ký tự Enigmail để tìm kiếm phần mềm hỗ trợ
Trang 14Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 14
Bạn chọn đến Enigmail và chọn Install Enigmail có đuôi là “XPI”
Quá trình download Enigmail hoàn tất bạ chọn Restart now để khởi động lại Thunderbird
Trang 15Sau khi khởi động lại bạn sẽ thấy trên thanh Menu có thêm thành phần OpenPGP chứng
tỏ bạn đã cài đặt thành công Enigmail
3 Quản lý khóa
Chú ý: “Ở OpenPGP sẽ cung cấp cho bạn hai khóa là Public Keys, Secret Key và chứng chỉ thu hồi Ngoài ra khi bạn tạo Secret Keys và mã hóa với RSA hoặc DSA sẽ yêu cầu nhập mật khẩu Passphrase, bạn chú ý rằng Passphrase này rất quan trọng, trong trường hợp bạn mất Passphrase thì không thể giải mã được thông điệp, Passphrase này buộc bạn phải ghi nhớ và một điều quan trọng nữa là Passphrase này phải được đặt đủ dài, đủ độ khó Đối với Secret Keys và chứng chỉ thu hồi bạn không nên lưu vào máy tính cài đặt mã hóa mail hiện tại mà nên back up vào một nơi nào đó bạn coi là an toàn, đủ tin cậy, tránh trường hợp mất Secret Keys và chứng chỉ thu hồi Lúc đó hacker có thể lấy dùng các công cụ giải mã Passphrase để chiếm quyền Admin của bạn”
3.1 Tạo khóa
Để tạo khóa bạn vào OpenPGP → Key management cửa sổ OpenPGP Key Management
hiện ra
Trang 16Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 16
Bước 1: Vào Generate → New Key Pair
Bước 2: Bạn nhập các thông số cần thiết vào cửa sổ Generate OpenPGP Key
Account/User ID: Chính là tài khoản mail của bạn
Passphrase: Nhập mật khẩu của bạn Mật khẩu này có thể nhập hoặc không, nếu mà bạn không muốn nhập thì tích vào ô No passphrase Nhưng bạn nên nhập vào để đảm bảo an toàn
thông tin, mật khẩu phải đủ độ dài và độ khó
Trang 17Khuyến cáo đối với Passphrase: Để đảm bảo an toàn thông tin Passphrase cũng giống
như mật khẩu login vào một tài khoản nào đó của bạn, passphrase này chỉ cung cấp một lần Nếu như bạn mất Passphare thì bạn không thể sign messages hay giải mã tài liệu Passphare bắt buộc bạn phải nhớ, passphrase phải đủ dài, đủ độ khó như nên đặt với chữ hoa, chữ thường và số Ngoài ra để thay đổi passphrase bạn có thể nhấp chuột phải vào private key của
mình ở cửa sổ OpenPGP Key Management chọn Change passphrase
Key expiry: Mặc định của OpenPGP là 5 năm, bạn có thể thay đổi nó Nếu chọn Key does
not expire thì thời hạn của key là không xác định và bạn không nên chọn Keys có thời hạn không xác định
Thẻ Advanced: Để nói về kiểu mã hóa có hai kiểu mã hóa là DSA & EL gamal và RSA Ở
key size chính là số bít để mã hóa có 3 size là 1024, 2048, 4096 Ở OpenPGP cung cấp hai kiểu mã hóa bạn nên chọn RSA vì RSA được dùng để mã hóa và tạo chữ ký điện tử, còn DSA chủ yếu được dùng để ký chữ ký điện tử Mặc định của của OpenPGP là dùng thuật toán RSA với key size là 2048
Khuyến cáo đối với thẻ Advanced: Ở hai thuật toán mã hóa DSA và RSA cung cấp 3
size để mã hóa dữ liệu, nếu bạn muốn gửi tài liệu trong một thời gian ngắn thì bạn nên chọn
1024 bits, nếu bạn dùng để gửi tài liệu trong vòng 1 năm đến 2 năm bạn nên chọn 2048 bits Còn nếu bạn sử dụng keys từ 3 năm tới 5 năm bạn nên chọn mã hóa keys cao nhất là 4096 bits RSA được dùng phổ biến hơn DSA cho nên theo khuyến cáo bạn nên sử dụng thuật toán RSA để má hóa cho khóa của mình Nếu bạn chọn số bits càng cao thì quá trình tạo khóa có thể mất tới vài phút để mã hóa dữ liệu
Quá trình tạo khóa hoàn tất khi bạn nhấn vào Generate key
3.2 Tạo chứng chỉ thu hồi (Revocation Certificate)
Mục đích tạo chứng chỉ thu hồi khi bạn không sử dụng cặp khóa nữa hoặc khi bạn bị mất Secret keys để thu hồi lại khóa bạn đã cấp Để tạo chứng chỉ thu hồi bạn làm như sau:
Bạn vào cửa sổ OpenPGP Key Managemet bạn chọn Generate → Revocation Certificate lúc đó cửa sổ Create & Save Revocation Certificate hiện lên cho bạn tạo và lưu chứng chỉ thu
hồi
Trang 18Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 18
Đuôi mở rộng của Revocation Certificate là “.asc” Đồng thời có một cửa sổ Pinenty hiện
lên yêu cầu bạn nhập Passphrase Bạn nhập Passphrase vào
Tiếp theo bạn nhấn Ok thì cửa sổ thông báo quá trình tạo chứng chỉ thu hồi bạn nhấn Continue để hoàn thành Bạn vào nơi lưu chứng chỉ thu hồi và xem, một chứng chỉ thu hồi sẽ
có dạng
Để thu hồi khóa được tạo ra ban làm như sau: Nháy chuột phải vào khóa trên cửa sổ OpenPGP Key Management và chọn Revoke Key cửa sổ xác nhận hiện lên
Trang 19Bạn chọn Revoke Key để hoàn thành quá trình thu hồi khóa
Ví dụ ở đây đã tạo sẵn một khóa Secret Keys có email là anhducpoktv@gmail.com sau khi thực hiện thu hồi khóa được tạo Dùng mail trananhduc198x@yahoo.com để test như sau xem thử khóa có mail là anhducproktv@gmail.com đã bị thu hồi hay chưa Từ cửa sổ
OpenPGP Keys Management vào Keyserve → Search for Keys
Vào mail của mình và chọn server ban đầu đã upload public keys lên
Có nhiều keys tạo ra và upload lên trước đó Chỉ việc chọn vào Key ID thích hợp và ngày tạo trùng khớp với keys của email anhducproktv@gmail.com check vào và chọn Ok
Trang 20Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 20
Hộp thoại này thông báo là đã download được Public keys ở trên server về máy client
Bạn nhìn vào hình bạn để ý thấy là anhducproktv@gmail.com có màu xám bị mờ đi chứng tỏ public key này đã được thu hồi và hết hạn sử dụng
3.3 Tạo Secret Keys và Public Keys
Quá trình tạo khóa hoàn tất PGP sẽ tạo ra cho bạn một cặp khóa là Public keys và Private keys (Secret keys) Private keys là khóa riêng bạn phải lưu ở một nơi thật cẩn thận để đảm bảo
an toàn thông tin khóa của mình Để đảm bảo điều đó bạn nên dùng phần mềm nén lại và đặt mật khẩu bảo vệ cho khóa Public keys là khóa mà bạn gửi cho đối tác của bạn dùng để mã hóa thông điệp gửi đi
Khuyến cáo đối với Private keys hay còn gọi là Secret keys: OpenPGP cung cấp cho bạn
khóa private keys, sau khi xuất ra một file text có dạng *.asc bạn nên lưu lại cẩn thận Khi máy tính của bạn xảy ra sự cố như lỗi windowns phải cài lại windowns mới hay hỏng ổ cứng, hoặc là để một nơi nào đó không an toàn dễ bị người khác lấy private keys và dùng các công
cụ để giải mã tìm passphrase… Do đó để đảm bảo an toàn thông tin bạn nên back up private keys vào một nơi nào đó bạn coi là an toàn nhất, được nén lại bằng phần mềm winrar và đặt
mật khẩu giải nén đủ dài và đủ độ khó Khi bạn nén bằng winrar nếu bạn đăt mật khẩu winrar khoảng 3-4 ký tự thì chỉ mất vài tiếng là tool dò mật khẩu winrar sẽ dò ra, nếu bạn đặt mật
Trang 21khẩu 7-8 ký tự thì tool này phải dò ít nhất 7 ngày mới dò ra Do đó bạn nên đặt dài và có độ
khó nhất định Khi máy hỏng cài lại windowns mới bạn chỉ cần Import Keys from File và
tìm đường dẫn tới file private keys của bạn thế là xong
Để tạo Private keys bạn làm như sau: Từ cửa sổ OpenPGP Key Management bạn chọn
File → Export Keys to File
Cửa sổ này hỏi bạn có muốn tạo Public keys và Secret Keys không? Bạn chọn Export
Secret keys để tạo Secret keys Sau đó bạn chọn đường dẫn để lưu Secret Keys ( Bạn phải chú
ý là Secret Keys thực hiện như khuyến cáo)
Loại File được tạo ra có đuôi mở rộng mặc định là “*.asc” bạn chọn Save để lưu lại
Trang 22Tài liệu hướng dẫn sử dụng mã hóa PGP
Trần Anh Đức - Phòng Nghiệp Vụ - VNCERT 22
Quá trình tạo Public Keys cũng tương tự như Secret Keys vậy
Từ cửa sổ OpenPGP Key Management bạn chọn File → Export Keys to File
Sau đó bạn chọn Export Public keys only bạn chọn đường dẫn để lưu nó lại, Nó cũng có thành phần mở rộng là “*.asc”
Trang 23Bạn tạo xong Public Keys bạn nên gửi cho đối tác của bạn Từ cửa sổ OpenPGP Key
Management bạn vào File → Send public keys by Email