TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG VÀ TRUYỀN THÔNG BÁO CÁO MÔN HỌC AN TOÀN THÔNG TIN MẠNG Đề tài: CƠ CHẾ SỬ DỤNG CHỮ KÝ ĐIỆN TỬ TRONG EMAIL VÀ MÃ HÓ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG VÀ TRUYỀN THÔNG
BÁO CÁO MÔN HỌC
AN TOÀN THÔNG TIN MẠNG
Đề tài:
CƠ CHẾ SỬ DỤNG CHỮ KÝ ĐIỆN TỬ TRONG
EMAIL VÀ MÃ HÓA DỮ LIỆU
Sinh viên : Đinh Thị Lệ Thu
Cán bộ hướng dẫn : TS.Nguyễn Tấn Khôi
Đà Nẵng 2012
Trang 2LỜI CẢM ƠN
Ngày nay công nghệ thông tin ngày càng phát triễn mạnh mẽ, việc học tập và nắm bắt kiến thức công nghệ thông tin là yêu cầu nhất thiết đối với mọi người nói chung, và sinh viên công nghệ thông tin nói riêng
An toàn thông tin về mạng là kiến thức mà bắt buộc mỗi một sinh viên khoa công nghệ thông tin cần nắm vững Sau một thời gian học tập lí thuyết trên lớp với sự giảng
dạy tận tình của thầy Nguyễn Tấn Khôi, em được giao làm báo cáo nhằm nắm vững kiến
thức đã tiếp thu được Trong qua trình thực hiện sẽ không tránh khỏi những thiếu sót, kính mong thầy góp ý để em hoàn thiện hơn bài làm của mình Cuối cùng em xin gởi lời
cám ơn đến thầy Nguyễn Tấn Khôi đã giúp đỡ em hoàn thiện bài làm này.
Em xin chân thành cảm ơn!
Trang 3CHƯƠNG I MỞ ĐẦU
1 Lý do chọn đề tài
Con người đã sử dụng các hợp đồng dưới dạng điện tử từ hơn 100 năm nay với việc sử dụng mã Morse và điện tín Vào năm 1989, tòa án tối cao bang New Hampshire (Hoa Kỳ) đã phê chuẩn tính hiệu lực của chữ ký điện tử Trong những năm gần đây với sự phát triển của khoa học kỹ thuật thì chữ ký điện tử mới đi vào cuộc sống một cách rộng rãi
Vào thập niên 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để truyền đi cac tài liệu quan trọng Mặc dù chữ ký điện tử trên các tài liệu này vẫn thể hiện trên giấy nhưng quá trình truyền nhận chúng hoàn toàn dựa trên tín hiệu điện tử Tại Mỹ tháng 6/2000, cựu tổng thống Bill Clinton đã phê chuẩn một điều luật công nhận giá trị pháp lý của chữ ký điện tử Và đầu tháng 8/2010, liên minh châu
Âu đã chính thức chấp thuận chữ ký điện tử
Hiện nay, chữ ký điện tử có thể bao hàm các cam kết gửi bằng email, nhập các số định dạng cá nhân (PIN) vào máy ATM, ký bằng bút điện tử với màn hình cảm ứng tại các quầy tính tiền, chấp nhận các điều khoản người dùng khi cài đặt phần mềm máy tính, ký các hợp đồng điện tử online,…
Không chỉ trên thế giới, tại Việt Nam luật giao dịch điện tử có hiệu lực từ ngày 1 tháng 3 năm 2006 đã công nhận giá trị pháp lý của chữ ký điệm tử và nó cũng đang trở nên phổ biến và chiếm vị trí quan trọng trong các giao dịch thương mại điện tử,
chính vì thế trong môn học an toàn thông tin mạng này em chọn đề tài “Cơ chế sử dụng chữ ký điện tử trong eMail và mã hóa dữ liệu”
2 Mục tiêu
- Tìm hiểu các phương pháp mã hóa dữ liệu.
- Hiểu được cơ chế sử dụng chữ ký điện tử trong email.
- Demo minh họa
Trang 4CHƯƠNG II TỔNG QUAN VỀ CHỮ KÝ ĐIỆN TỬ
1 Chữ ký điện tử là gì?
- Chữ ký điện tử (electronic signature) là thông tin đi kèm theo dữ liệu nhằm mục
đích xác định người chủ của dữ liệu đó, được sử dụng trong các giao dịch điện tử
2 Chức năng
- Chữ ký điện tử có thể sử dụng trong các giao dịch thư điện tử, mua bán hàng trực
tuyến, chuyển tiền ngân hàng…đảm bảo an toàn thông tin cá nhân
- Dùng để kê khai, nộp thuế trực tuyến, khai báo hải quan trực tiếp mà không mất
thời gian cho các thủ tục
- Giúp cho các đối tác có thể ký hợp đồng làm ăn trực tuyến, chỉ cần ký vào file
hợp đồng và gửi qua e-mail
- Xác định người chủ của dữ liệu đó
- Đảm bảo an toàn dữ liệu truyền trên mạng
- Ngăn chặn việc thay đổi dữ liệu
3 Mã hóa dữ liệu
3.1 Mã hóa là gì?
- Mã hóa là sử dụng một phương pháp biến đổi dữ liệu từ dạng bình thường sang
một dạng khác, mà một người không có thẩm quyền, không có phương tiện giải
mã thì không thể đọc hiểu được Giải mã dữ liệu là quá trình ngược lại, là sử dụng một phương pháp biến đổi dữ liệu đã được mã hóa về dạng thông tin ban đầu
Hình 1: Quy trình mã hóa dữ liệu
- Mã hóa: quá trình chuyển đổi dữ liệu từ dữ liệu gốc thành dữ liệu được mã hóa
sao cho người khác không hiểu được
- Giải mã: quá trình ngược lại của mã hóa, biến đổi dữ liệu được mã hóa thành dữ
liệu dạng gốc ban đầu
- Thông điệp, bản gốc: tệp dữ liệu chưa mã hóa.
- Bản mã: tệp dữ liệu đã mã hóa
3.2 Phân loại
- Mã hóa bí mật.
- Mã hóa công khai.
- Mã hóa 1 chiều (hàm băm)
3.2.1 Mã hóa bí mật
3.2.1.1 Khái niệm
Trang 5- Phương pháp mã khóa bí mật (secret key cryptography) còn được gọi là mã hóa
đối xứng (sysmmetric cryptography) Với phương pháp này, người gửi và người nhận sẽ dùng chung một khóa để mã hóa và giải mã dữ liệu
Hình 2 Mã hóa bí mật
- Trước khi mã hóa dữ liệu để truyền đi trên mạng, hai bên gửi và nhận phải có
khóa và thống nhất thuật toán để giải mã Một số thuật toán ứng dụng cho mã hóa khóa bí mật như: DES (Data Encrytion Standard), 3DES (triple strength DES), RC2 (Rons Cipher 2), RC4,…
3.2.1.2 Nhận xét
- Ưu điểm: tốc độ mã hóa và giải mã nhanh
- Nhược điểm: khóa được truyền trên mô trường mạng nên tính bảo mật không cao.
Người gửi và người nhận phải biết giữ bí mật về khóa
3.2.2 Mã hóa công khai
3.2.2.1 Khái niệm
- Là sự sắp xếp kết hợp Khóa Công Khai với Các Yếu Tố Định Danh (identities)
của đối tượng tạo thành một Chứng Nhận (Certificate) bới một thành phần thứ ba gọi là Nhà Cung Cấp Dịch Vụ Chứng Nhận (Certification Authority _ viết tắt là CA) thông qua các thuật toán
- Phương pháp mã hóa công khai (public key cryptography) còn gọi là mã hóa bất
đối xứng (asymmetric cryptography) vì nó sử dụng hai khóa khác nhau public key
và private key Public key được công khai trên mạng và dùng để mã hóa, trong khi private key được giữ kín và được dùng để giải mã
Hình 3 Mã hóa công khai
Trang 6- Để chứng nhận tính xác thực về giá trị Khóa Công Khai, CA sẽ sừ dụng Chữ Ký
Số (Digital Signature _ viết tắt là DS) của mình để chứng thực thông tin kết hợp gồm : Các Thông Tin Định Danh và Khóa Công Khai của đối tượng để tạo nên Chứng Nhận cho đối tượng đó Quá trình này được thực hiện bởi phần mềm tại
CA và các phần mềm phối hợp mà đối tượng sử dụng
- Những người có khóa công khai có thể mã hóa thông tin, nhưng chỉ những người
có khóa bí mật mới đọc được thông tin
- Phướng pháp này sử dụng thuật toán mã hóa RSA (Ron Rivest, Adi Shamir và
Leonard Adleman) và thuật toán DH (Diffie-Hellman)
3.2.2.2 Nhận xét
- Ưu điểm: phương pháp cho phép trao đổi khóa dễ dàng và thuận lợi.
- Nhược điểm: tốc độ mã hóa chậm, chỉ được sử dụng cho mẩu dữ liệu nhỏ.
3.2.3 Mã hóa một chiều (hàm băm)
- Hàm băm (hash) chứng thực và kiểm tra tính nguyên vẹn của thông điệp.
- Hàm băm là các thuật toán không sử dụng khóa để mã hóa, nó có đầu vào là một
xâu ký tự dài tùy ý, hệ thống sẽ tiến hành băm thành những xâu ký tự có độ dài cố định Do đó người nhận không biết được nội dung hay độ dài ban đầu của thông điệp đã được băm bằng hàm bằm
- Khóa mã hóa được tạo ra dựa trên từng đoạn và khóa bí mật.
- Các đoạn thông tin có thể được mã hóa hoặc không trước khi truyền qua mạng
- Chỉ người nhận có khóa mã hóa mới giải mã được các thông tin.
3.3 Hàm băm MD5 (Message Digest algorithm 5)
- MD5 được thiết kế bởi Ronald Rivest vào năm 1991, là một chuẩn internet dùng
để kiểm tra tính toàn vẹn của tập tin, được sử dụng phổ biến với giá trị Hash dài
128 bit
- MD5 rất khó có thể giải mã ngược chiều.
- Cách đơn giản và hiệu quả nhất của việc giải mã MD5 là dựng các database của
các giá trị mã hóa MD5
- Miêu tả MD5:
Một bảng băm MD5 thường được diễn tả bằng một số thập lục phân 32 ký tự Đầu vào là những khối 512 bit, được chia cho 16 khối con 32 bit Đầu ra của thuật toán là một thiết lập của 4 khối 32 bit để tạo thành một hàm băm 128 bit
Đầu tiên, ta chia tin nhắn thành những khối 512 bit, với khối cuối cùng (đặt là
x và x < 512 bit) của tin nhắn, chúng ta cộng thêm bit 1 vào cuối của x, theo sau đó là các bit 0 để được độ dài cần thiết (512 bit) Kết quả tin nhắn vào là một chuỗi M có độ dài chia hết cho 512, vì vậy ta có thể chia M thành N khối con 32 bit (N khối này sẽ chia hết cho 16)
- Phương pháp sử dụng thuật toán mã hóa công khai RSA được đặt tên từ ba nhà phát minh là Ron Rivest, Adi Shamir và Leonard Adleman, thuật toán sử dụng
Trang 7biểu thức với hàm mũ để mã hóa bản gốc thành các khối, mỗi khối có một giá trị nhị phân nhỏ hơn n
- Thuật toán RSA có hai khóa: khóa công khai và khóa bí mật Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa Những thông tin
được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng
- Để tạo một cặp khóa RSA thực hiện các bước sau:
Chọn hai số nguyên tố ngẫu nhiên p, q (nên chọn p và q có độ dài bằng nhau)
Tính n = pq và Ф(n) = (p-1)(q-1)
Chọn ngẫu nhiên số nguyên e (1<e< Ф) thỏa gcd(e, Ф(n))=1 với gcd là ước
số chung lớn nhất
Tính d=e-1 mod Ф
Kết quả ta có được cặp khóa: khóa công khai KU (n,e) và khóa bí mật KR (n,d)
4 Giải pháp ứng dụng chữ ký điện tử
- Quá trình gửi và nhận các tệp văn bản phục vụ quản lý dựa vào thuật toán băm
MD5 và thuật toán RSA
4.1 Quy trình ký và xác nhận tập tin
- Từ file cần gửi ban đầu, chương trình sẽ sử dụng hàm băm MD5 để mã hóa thành
chuỗi ký tự dài 128 bit, hash value
- Chương trình sử dụng thuật toán RSA để mã hóa riêng (private key) của người
gửi và bản tóm lược hash value thành một dạng khác gọi là chữ ký điện tử
- Kết hợp file ban đầu với chữ ký điện tử thành một thông điệp đã ký và gửi đi cho
người nhận Sau khi đã ký nhận vào văn bản, mọi sự thay đổi trên văn bản sẽ bị phát hiện trong giai đoạn kiẻm tra Ngoài ra, việc ký nhận này đảm bảo người nhận tin tưởng văn bản này xuất phát từ người gửi chứ không phải ai khác
Hình 4 Quy trình ký và xác nhận tập tin
Tập tin
Mã hóa RSA Hash value
Hàm băm MD5
KR(d,n)
Tập tin đã ký
Gửi đi
Trang 84.2 Quy trình nhận và giải mã
- Sau khi người nhận đăng nhập vào hệ thống và thực hiện việc nhận các tệp văn
bản, hệ thống sẽ tách thông điệp đã ký thành tập tin và chữ ký điện tử Đến giai
đoạn này sẽ có hai quá trình kiểm tra:
1 Kiểm tra tập tin có đúng người gửi hay không
- Sử dụng thuật toán RSA để giải mã chữ ký điện tử bằng khóa công khai của
người gửi
- Nếu giải mã không được thì văn bản nhận không đúng người gửi.
- Nếu giải mã thành công thì văn bản nhận được đúng người gửi và có được bản
tóm lược 1
2 Kiểm tra tập tin có bị lỗi hay không
- Từ tập tin tách ra dùng giải thuật MD5 mã hóa thành bản tóm lược 2.
- Kiểm tra bản tóm lược 1 và bản tóm lược 2 có giống nhau hay không, nếu trùng
nhau ta kết luận văn bản này không bị thay đổi trong quá trình truyền và văn bản
này là của người gửi., ngược lại là đã bị thay đổi
Hình 5 Quy trình nhận và giải mã tập tin
Không
Có
Tập tin của người gửi
Tập tin bị thay đổi Giống
Bản tóm lược 2
Bản tóm lược 1 Có
Không đúng người gửi Không
Giải mã
Public key
KU(e,n)
Hàm băm MD5
Tập tin ban dầu
Giải mã RSA CKĐT
Tách tập tin và CKĐT Tập tin nhận được
Trang 9CHƯƠNG III TRIỂN KHAI DỊCH VỤ VÀ KẾT QUẢ
Để có được chữ ký điện tử,trong bài Lab sẽ sử dụng Windows Server 2003 để cung cấp chữ ký số Windows server 2003 đã được cài đặt các dịch vụ cần thiết như : DNS,IIS,CA,POP3
Hình 6: Dịch vụ DNS
Hình 7: Dịch vụ IIS
Trang 10Sau khi đã cài đặt thành công 2 dịch vụ DNS và IIS Ta tiến hành cài đặt Certificate Services : vào Control Panel Add or remove programs Add/remove windows conponents click vào Certificate Services OK Quá trình cài đặt được tiến hành
Hình 8: Cài đặt Certificate Authority
Hình 9: Truy cập vào Certificate Authority
Mở dịch vụ POP3
Trang 11Hình 10: Dịch vụ POP3
Hình 11: Khai báo domain mới và tạo các mailbox
Để xin cấp 1 chứng chỉ số, từ trình duyệt Internet Explorer của máy Client, ta gõ địa chỉ của máy cung cấp địa chứng chỉ số, trong bài Lab là 192.168.3.1
Trang 12Hình 12: Trang web cung cấp CA
Chọn Request a certificate E-mail Protection Certificate điền thông tin vào bảng vừa xuất hiện
Trang 13Hình 13: Thông tin client xin cấp CA
Sau khi máy client xin chứng chỉ, tại máy server sẽ xuất hiện thông báo xin chứng chỉ ở máy server
Hình 14: Thông báo xin chứng chỉ tại server
Trang 14Trên client dùng web browser truy cập vào CA-Server với đường dẫn :
Http:// 192.168.3.1/Certsrv
- Chọn dòng : “View the status of a pending certificate request”
- Double-click vào tên Certificate xuất hiện để cài đặt
Hình 15: Cài đặt CA
Trang 15KÊT QUẢ
Máy client đăng nhập với email được tạo như trên
Hình 16: Tạo tài khoản mail mới
Người dùng tạo thư gửi đi, nhấn nút Sign để thực hiện chữ ký số
Hình 17: Thư kèm theo chữ ký số
Trang 16TÀI LIỆU THAM KHẢO
Các bài viết về chữ ký điện tử trên các bài báo, sách
Trang 17MỤC LỤC
LỜI CẢM ƠN 2
CHƯƠNG I MỞ ĐẦU 3
1 Lý do chọn đề tài 3
2 Mục tiêu 3
CHƯƠNG II TỔNG QUAN VỀ CHỮ KÝ ĐIỆN TỬ 4
1 Chữ ký điện tử là gì? 4
2 Chức năng 4
3 Mã hóa dữ liệu 4
3.1 Mã hóa là gì? 4
3.2 Phân loại 4
3.2.1 Mã hóa bí mật 4
3.2.2 Mã hóa công khai 5
3.2.3 Mã hóa một chiều (hàm băm) 6
3.3 Hàm băm MD5 (Message Digest algorithm 5) 6
3.4 RSA 6
4 Giải pháp ứng dụng chữ ký điện tử 7
4.1 Quy trình ký và xác nhận tập tin 7
4.2 Quy trình nhận và giải mã 8
CHƯƠNG III TRIỂN KHAI DỊCH VỤ VÀ KẾT QUẢ 9
TÀI LIỆU THAM KHẢO 16
Trang 18MỤC LỤC HÌNH
Hình 1: Quy trình mã hóa dữ liệu 4
Hình 2 Mã hóa bí mật 5
Hình 3 Mã hóa công khai 5
Hình 4 Quy trình ký và xác nhận tập tin 7
Hình 5 Quy trình nhận và giải mã tập tin 8
Hình 6: Dịch vụ DNS 9
Hình 7: Dịch vụ IIS 9
Hình 8: Cài đặt Certificate Authority 10
Hình 9: Truy cập vào Certificate Authority 10
Hình 10: Dịch vụ POP3 11
Hình 11: Khai báo domain mới và tạo các mailbox 11
Hình 12: Trang web cung cấp CA 12
Hình 13: Thông tin client xin cấp CA 13
Hình 14: Thông báo xin chứng chỉ tại server 13
Hình 15: Cài đặt CA 14
Hình 16: Tạo tài khoản mail mới 15
Hình 17: Thư kèm theo chữ ký số 15