Đồ án- báo cáo thực tập
Trang 1LỜI NÓI ĐẦU vii
CHƯƠNG I: GIỚI THIỆU VỀ TRUNG TÂM ỨNG CỨU KHẨN CẤP MÁY TÍNH VIỆT NAM – CHI NHÁNH ĐÀ NẴNG (GỌI TẮT LÀ VNCERT) 1
1.1 Giới thiệu về trung tâm ứng cứu khẩn cấp máy tính Việt Nam (VNCERT) 1
1.1.1 Quá trình hình thành và phát triển của VNCERT 1
1.1.2 Cơ cấu tổ chức 1
1.1.3 Nhiệm vụ, chức năng chính và định hướng phát triển của trung tâm 2
1.1.4 Giới thiệu về chi nhánh tại Đà Nẵng 2
1.1.4.1 Cơ cấu nhân sự 3
1.1.4.2 Giới thiệu công việc, các dự án mà chi nhánh đã và đang thực hiện 3
1.2 Giới thiệu đề tài 4
2.2.3 Mã hóa khóa công cộng 9
2.3 Một số thuật toán trong chương trình ứng dụng 11
2.3.1 Thuật toán mã hóa RSA 11
2.3.2 Thuật toán mã hóa El Gamal 15
2.4 Chương trình ứng dụng GnuPG 16
2.4.1 Cài đặt GnuPG 16
2.4.2 Tạo khóa mới 20
2.4.3 Upload Public Key lên Server 24
2.4.4 Download khóa công cộng của người khác 24
2.4.5 Tạo bộ lọc tự động mã hóa 25
2.4.6 Gửi và nhận email 28
CHƯƠNG III: KẾT LUẬN VÀ KIẾN NGHỊ 30
3.1 Kết luận chung về kết quả đạt được 30
3.2 Mức độ hoàn thành đề tài so với kế hoạch 30
Trang 23.3 Kiến nghị 30
3.3.1 Đối với trung tâm 30
3.3.2 Đối với nhà trường 30
TÀI LIỆU THAM KHẢO i
PHIẾU ĐÁNH GIÁ ii
Ý KIẾN ĐÁNH GIÁ CỦA GIẢNG VIÊN v
Trang 3DANH MỤC HÌNH VẼ
Hình 1.1 : Cơ cấu tổ chức Trung tâm ứng cứu khẩn cấp máy tính Việt Nam 2
Hình 1.2: Cơ cấu tổ chức tại chi nhánh Đà Nẵng 3
Hình 2.1: Mô hình mã hóa thông tin 7
Hình 2.2: Quá trình truyền tin sử dụng mã khóa bí mật 8
Hình 2.3: Quá trình truyền tin sử dụng mã hóa công cộng 10
Hình 3.1: Giao diện cài đặt GnuPG 17
Hình 3.2: Giao diện cài đặt GnuPG 17
Hình 3.3: Giao diện cài đặt Enigmail 18
Hình 3.4: Giao diện cài đặt Enigmail 18
Hình 3.5: Giao diện cài đặt Enigmail 19
Hình 3.6: Giao diện khởi động Enigmail 19
Hình 3.7: Giao diện tạo khóa mới 20
Hình 3.8: Giao diện tạo khóa mới 20
Hình 3.9: Giao diện tạo khóa mới 21
Hình 3.10: Giao diện chứng thực việc tạo khóa mới 21
Hình 3.11: Giao diện lưu chứng thực tạo khóa mới 22
Hình 3.12: Giao diện khóa mới được tạo 22
Hình 3.13: Giao diện lưu khóa mới được tạo 23
Hình 3.14: Giao diện lưu khóa mới được tạo 23
Hình 3.15: Giao diện thông báo lưu khóa mới thành công 23
Hình 3.16: Giao diện Upload Upload Public Keys lên Server 24
Hình 3.17: Giao diện chọn Server để Upload 24
Hình 3.18: Giao diện Download Public Keys của người khác 24
Hình 3.19: Giao diện Download Public Keys của người khác 25
Hình 3.20: Giao diện tạo bộ lọc tự động mã hóa 25
Hình 3.21: Giao diện tạo bộ lọc tự động mã hóa 26
Hình 3.22: Giao diện tạo bộ lọc tự động mã hóa 26
Hình 3.23: Giao diện tạo bộ lọc tự động mã hóa 27
Hình 3.24: Giao diện tạo bộ lọc tự động mã hóa 27
Hình 3.25: Giao diện xác nhận ký và mã hóa thông tin 28
Hình 3.26: Giao diện gửi mail 28
Hình 3.27: Giao diện nhận email khi không có khóa riêng 29
Trang 4Hình 3.28: Giao diện nhận mail khi có khóa riêng 29
Trang 5DANH MỤC CHỮ VIẾT TẮTChữ viết tắt Ý nghĩa
POP3 Post Office Protocol: Giao thức bưu điện phiên bản 3
khẩn cấp Máy tính Việt Nam
Trang 6LỜI CẢM ƠN
Kỳ thực tâp tốt nghiệp là một khoảng thời gian để cho sinh viên bắt đầu làm quen với tác phong làm việc ở môi trường thực tế Đối với sinh viên, đây là một giai đoạn chuyển giao giữa những kiến thức được đào tạo tại nhà trường và thực tế ngoài doanh nghiệp, để có thể áp dụng những gì đã học và tìm kiếm cho mình một công việc phù hợp với năng lực Còn đối với các doanh nghiệp, đây có thể được xem là giai đoạn mà các doanh nghiệp có nhu cầu tuyển chọn nhân sự cho công ty trong tương lai có thể xem xét, đánh giá, và tuyển chọn những sinh viên phù hợp với nhu cầu phát triển của công ty
Qua quá tìm tìm hiểu cùng với sự giới thiệu của nhà trường Trường cao đẳng Công nghệ thông tin hữu nghị Việt – Hàn, em đã được nhận vào thực tập tại Trung tâm ứng cứu khẩn cấp máy tính Việt Nam chi nhánh Đà Nẵng trong khoảng thời
gian từ ngày 19/04/2010 đến ngày 22/05/2010, với đề tài:
“Bảo mật thư điện tử”
Trong khoảng thời gian thực tập tại trung tâm, em đã có cơ hội được tiếp xúc với môi trường làm việc trong thực tế, bổ sung thêm các kiến thức khi học trên trường, được gặp gỡ và học hỏi kinh nghiệm quản lý, làm việc của các cán bộ quản lý, các nhân viên trong trung tâm, đã phần nào giúp em có được kinh nghiệm làm việc cho bản thân sau này
Em xin chân thành cảm ơn các anh chị và các bạn tại Trung tâm ứng cứu khẩn cấp máy tính Việt Nam chi nhánh Đà Nẵng đã tận tình giúp đỡ, chỉ dẫn em trong
suốt quá trình thực tập tại trung tâm, đồng thời em xin gửi lời cảm ơn đến cô Nguyễn Ngọc Huyền Trân – Giảng viên hướng dẫn thực tập cùng các thầy cô trong trường đã quan tâm, hướng dẫn em giúp em hoàn thành tốt đợt thực tập này.
Em xin chân thành cảm ơn!
Đà Nẵng, ngày 19/05/2010Sinh viên thực hiện
Trần Thùy Dung
Trang 7LỜI NÓI ĐẦU
Ngày nay, mạng Internet đã trở thành nền tảng chính cho sự trao đổi thông tin trên toàn cầu Có thể thấy một cách rõ ràng là Internet đã và đang tác động lên nhiều mặt của đời sống chúng ta từ việc tìm kiếm thông tin, trao đổi dữ liệu đến việc hoạt động thương mại, học tập nghiên cứu và làm việc trực tuyến Nhờ Internet mà việc trao đổi thông tin cũng ngày càng tiện lợi, nhanh chóng hơn, khái niệm thư điện tử (email) cũng không còn mấy xa lạ với mọi người.
Là một dịch vụ phổ biến nhất trên Internet, thư điện tử giúp mọi người sử dụng máy tính kết nối Internet đều có thể trao đổi thông tin với nhau Ngoài ra, email cũng là một hình thức đặc trưng nhất trong năm hình thức giao dịch của thương mại điện tử Với thương mại điện tử, email được dùng như là một công cụ thông dụng nhất để giao tiếp với đối tác kinh doanh, với khách hàng, thu thập thông tin khách hàng, có những chiến lược quảng cáo, giới thiệu sản phẩm, những dịch vụ hữu ích một cách nhanh nhất Người ta cũng có thể trao đổi thông tin đặt đơn mua hàng, những thông tin cần thiết trước một giao ước Tóm lại mọi giao dịch, trao đổi đều có thể thông qua thư điện tử.
Tuy nhiên trên môi trường truyền thông này, ngoài mặt tích cực Internet cũng tiềm ẩn những tiêu cực của nó đối với vấn đề bảo vệ thông tin
Do đó, những yêu cầu được đặt ra đối với việc trao đổi thông tin trên mạng:
• Bảo mật tuyệt đối thông tin trong giao dịch
• Đảm bảo tính toàn vẹn của thông tin.
• Chứng thực được tính đúng đắn về pháp lí của thực thể tham gia trao đổi thông tin.
• Đảm bảo thực thể không thể phủ nhận hay chối bỏ trách nhiệm của họ về những hoạt động giao dịch trên Internet.
Từ thực tế đó cần có phương pháp bảo mật thông tin nhằm cải thiện an toàn trên Internet Việc tìm ra giải pháp bảo mật dữ liệu, cũng như việc chứng nhận quyền sở hữu của cá nhân là một vấn đề luôn luôn mới Bảo mật phải được nghiên cứu và cải tiến để theo kịp sự phát triển không ngừng của cuộc sống.
• Làm sao để bảo mật dữ liệu?
• Làm sao để tin tức truyền đi không bị mất mát hay bị đánh tráo?
Trang 8• Làm sao để người nhận biết được thông tin mà họ nhận được có chính xác hay không? Thông tin đã bị thay đổi gì chưa?
• Làm sao để biết được thông tin này do ai gửi đến? Thuộc quyền sở hữu của ai? Những câu hỏi được đặt ra là một thách thức rất lớn đối với những người nghiên cứu về bảo mật Có rất nhiều cách thức để bảo vệ thông tin trên đường truyền, nhiều giải pháp được đề xuất như: sử dụng mật khẩu (password), mã hóa dữ liệu,… Cùng với sự phát triển của các biện pháp bảo mật ngày càng phức tạp, thì các hình thức tấn công ngày càng tinh vi hơn Do đó vấn đề là làm sao đưa ra một giải pháp thích hợp và có hiệu quả theo thời gian và sự phát triển mạnh mẽ của khoa học kỹ thuật
Xuất phát từ vấn đề trên, cùng với thực tế trao đổi những thông tin nội bộ trong trung tâm Ứng cứu khẩn cấp máy tính Việt Nam (VNCERT), trung tâm đã sử dụng một chương trình để có thể đảm bảo tính bảo mật của thông tin dựa trên ứng dụng của các phương pháp mã hóa thông tin và chữ ký điện tử Với cơ hội được tiếp xúc, thực tập tại
trung tâm, em đã nghiên cứu đề tài “Bảo mật thư điện tử” để hiểu rõ ràng hơn mục
đích chương trình được xây dựng là giúp đỡ người dùng có thể soạn thảo, gửi, nhận, đọc, xóa hay lưu giữ thư một cách dễ dàng, nhanh chóng nhưng vẫn đảm bảo tính an toàn cho những thông tin quan trọng cần có tính bảo mật Với những thư không cần bảo mật thì người dùng có thể chọn cách gửi đi bình thường, còn muốn bảo mật thì có thể chọn phương pháp mã hoá trước khi gửi đi
Mặc dù đã cố gắng trong quá trình tìm hiểu và thực hiện đề tài, nhưng với khoảng thời gian thực tập có hạn, lượng kiến thức là vô hạn nên không thể tránh được những thiếu sót Em rất mong nhận được quan tâm đóng góp của quý thầy cô, các anh chị và các bạn để báo cáo hoàn thiện hơn nữa.
Em xin chân thành cảm ơn!
Đà Nẵng, ngày 19/05/2010Sinh viên thực hiện
Trần Thùy Dung
Trang 9CHƯƠNG I: GIỚI THIỆU VỀ TRUNG TÂM ỨNG CỨU KHẨN CẤP MÁY TÍNH VIỆT NAM – CHI NHÁNH ĐÀ NẴNG
Trụ sở chính đặt tại Hà Nội.
Địa chỉ liên hệ: A12 lô 11 khu đô thị Định Công - Hà Nội
Điện thoại: Tổng đài 04.36404423 - 04.36404421 - 04 36404424Email: office@vncert.vn, vncert@mic.gov.vn
website: http://vncert.gov.vn
1.1.2 Cơ cấu tổ chức
Ngoài trụ sở chính đặt tại Hà Nội, trung tâm còn có các chi nhánh tại Miền Trung và Miền Nam, nhằm tạo điều kiện cho công tác ứng cứu kịp thời, cũng như đảm bảo tính nhanh nhạy, góp phần tham gia công tác quản lý tại các vùng miền
Chi nhánh tại Miền Trung: 42 Trần Quốc Toản, TP Đà Nẵng
Chi nhánh tại Miền Nam: 27 Nguyễn Bỉnh Khiêm, TP Hồ Chí Minh
Cùng 5 phòng ban chức năng, nhiệm vụ cụ thể gồm các phòng Hành chính– Tổng hợp, phòng Nghiệp vụ, phòng Kỹ thuật hệ thống, phòng Nghiên cứu– Phát triển và phòng Tư vấn- Đào tạo Các chi nhánh, phòng ban ngoài nhiệm vụ cụ thể của mình còn hỗ trợ nhau hoàn thành nhiệm vụ chính của trung tâm.
Trang 10Hình 1.1 : Cơ cấu tổ chức Trung tâm ứng cứu khẩn cấp máy tính Việt Nam1.1.3 Nhiệm vụ, chức năng chính và định hướng phát triển của trung tâm
Trung tâm Ứng cứu khẩn cấp máy tính Việt Nam (VNCERT- Vietnam Computer Emergency Response Team) là đơn vị trực thuộc Bộ Thông tin và Truyền thông, thực hiện chức năng điều phối các hoạt động ứng cứu sự cố máy tính trong toàn quốc; cảnh báo kịp thời các vấn đề về an toàn mạng máy tính; xây dựng, phối hợp xây dựng các tiêu chuẩn kỹ thuật về an toàn mạng máy tính; thúc đẩy hình thành hệ thống các trung tâm ứng cứu khẩn cấp máy tính (CERT) trong các cơ quan, tổ chức, doanh nghiệp; là đầu mối thực hiện hợp tác với các tổ chức CERT nước ngoài.
Điều phối các hoạt động ứng cứu sự cố máy tính trong toàn quốc Chức năng chính có thể tóm tắt như sau:
- Cảnh báo kịp thời các vấn đề về an toàn mạng máy tính
- Xây dựng, phối hợp xây dựng các tiêu chuẩn kỹ thuật về an toàn mạng máy tính- Thúc đẩy hình thành hệ thống các Trung tâm Ứng cứu khẩn cấp Máy tính (CERT) trong các cơ quan, tổ chức, doanh nghiệp
- Là đầu mối thực hiện hợp tác với các tổ chức CERT nước ngoài
- Tham gia giúp Bộ trưởng trong công tác quản lý an toàn bảo mật trong các hoạt động bưu chính, viễn thông và công nghệ thông tin.
1.1.4 Giới thiệu về chi nhánh tại Đà Nẵng
Trang 11Chi nhánh tại Đà Nẵng thực hiện các chức năng, nhiệm vụ tương tự như các chức năng, nhiệm vụ của trung tâm tại Hà Nội như đã nêu ở trên.
1.1.4.1 Cơ cấu nhân sự
Hình 1.2: Cơ cấu tổ chức tại chi nhánh Đà Nẵng
Đảm nhận lĩnh vực System, kiểm tra và giám sát hệ thống của trung tâm ở khu vực Miền Trung và Tây Nguyên
Trần Phương NamPhạm Thị Hà Phương
Đảm nhận theo dõi và phân tích tình hình lây lan của các loại mã độc tại khu vực Miền Trung và Tây Nguyên Theo dõi và cảnh báo tình hình an toàn thông tin tại các cổng thông tin điện tử của các sở ban ngành khu vực Miền Trung và Tây Nguyên
1.1.4.2 Giới thiệu công việc, các dự án mà chi nhánh đã và đang thực hiện
1 Xây dựng và đang thử nghiệm quy trình đánh giá mức độ an toàn thông tin cho các cổng thông tin điện tử của chính phủ và các sở thông tin truyền thông 64 tỉnh thành từ tháng 12/2008 đến nay.
2 Theo dõi và quan sát tình hình an ninh mạng để cảnh báo về các vấn đề an ninh mạng trên địa bàn Miền Trung và Tây Nguyên
3 Phân tích điều tra các mẫu malware, virus xuất phát từ Việt NamGiám đốc
Đặng Hải Sơn
Chuyên viên Phan
Phú Thuận Phạm Hồng VĩnhChuyên viên Trần Phương NamChuyên viên
Chuyên viên Phạm Thị Hà Phương
Trang 124 Hợp tác với các đơn vị trên địa bàn miền Trung - Tây Nguyên để tiến hành đào tạo, tư vấn triển khai các giải pháp an toàn thông tin cho từng địa phương Như các sở thông tin Đà Nẵng, Quảng Nam, Đăklăk, Gia Lai, Đăk Nông, …
5 Tham gia bảo đảm an ninh mạng cho toàn hệ thống mạng được sử dụng tại Seagame 25, tổ chức tại Lào năm 2009 Trung tâm đã lên các hạng mục, giới hạn an toàn, kiểm tra hằng ngày và cảnh báo vượt giới hạn an toàn cho phép trong suốt thời gian diễn ra Seagame 25
1.2 Giới thiệu đề tài1.2.1 Bối cảnh đề tài
Một phiên giao dịch an toàn là mong muốn của tất cả những ai tham gia giao dịch thông qua mạng Internet Để thiết lập được một phiên giao dịch an toàn, cần kết hợp nhiều yếu tố: Mã hóa thông tin, xác thực và chứng thực thông tin Trong đề tài này em đi sâu vào nghiên cứu bảo mật thư điện tử dựa trên một số phương pháp mã hóa thông tin và chữ ký điện tử.
1.2.2 Mục đích thực hiện đề tài
Tìm hiểu một số phương pháp mã hóa, quá trình phát sinh khóa dựa trên các thuật toán để mã hóa thư điện tử trước khi gửi đi, tìm hiểu thông qua quá trình tạo khóa, mã hóa và giải mã thông tin thông qua chương trình ứng dụng đang được sử dụng tại trung tâm Ngoài ra, quá trình tìm hiểu còn giúp em có được kiến thức và kinh nghiệm để hoàn thành đồ án tốt nghiệp sắp tới
1.2.3 Những công việc được giao tại trung tâm
Thời gian thực tập bắt đầu từ ngày 19/04/2010, với đề tài: “Bảo mật thư điện tử”
em đã nhận được sự quan tâm, giúp đỡ của các anh chị trong chi nhánh, người chịu trách nhiệm chính hướng dẫn em là anh Trần Phương Nam
Các công việc:
1 Tìm hiểu lý thuyết chung về mã hóa thông tin
2 Tìm hiểu các bài viết, báo cáo, đề tài nghiên cứu trong lĩnh vực này
3 Tìm hiểu một số thuật toán phát sinh khóa trong chương trình ứng dụng GnuPG, là chương trình đang được ứng dụng tại trung tâm để mã hóa, bảo mật thư điện tử.
Trang 134 Sử dụng chương trình ứng dụng GnuPG để mã hóa thông tin, gửi thư đã mã hóa5 Viết báo cáo và trình bày báo cáo thực tập
1.2.4 Kết quả đạt được
Hoàn thiện lý thuyết chung về mã hóa thông tin Hiểu chương trình ứng dụng, sử dụng thành thạo chương trình ứng dụng trong thực tế tại trung tâm Viết báo cáo thực tập.
Trang 14CHƯƠNG II: BẢO MẬT THƯ ĐIỆN TỬ TẠI TRUNG TÂM ỨNG CỨU KHẨN CẤP MÁY TÍNH VIỆT NAM –CHI NHÁNH
ĐÀ NẴNG2.1 Giới thiệu chung về chương trình ứng dụng
GnuPG - Gnu Privacy Guard là một chương trình được sử dụng tại trung tâm từ năm 2008 Chương trình được ứng dụng nhằm bảo vệ thông tin nội bộ, hoặc các thông tin từ trung tâm truyền ra bên ngoài được gửi bằng email thông qua mạng Internet Với đặc thù là một tổ chức hành chính sự nghiệp quốc gia, Trung tâm ứng cứu máy tính khẩn cấp Việt Nam phải tiến hành giao dịch với các đối tác trong và ngoài nước Các thông tin xoay quanh vấn đề bảo mật, các vấn đề về an ninh mạng, các thông tin về chính sách ngăn ngừa đe dọa an toàn giao dịch, an toàn thông tin, một số giải pháp hỗ trợ quản lý nhà nước và các thông tin tuyệt mật trong nội bộ trung tâm Vì vậy, giải pháp để đảm bảo an toàn thông tin, cụ thể là đối với thư điện tử là rất cần thiết và trung tâm đã chọn giải pháp này nhằm thực hiện yêu cầu an toàn thông tin trong giao dịch Ưu điểm lớn nhất của chương trình là mã hóa thông điệp được gửi bằng email cho người nhận Giả sử một người nào đó vì vô tình hay cố tình có được tài khoản email của người nhận nhưng cũng không thể xem được thông tin vì không biết khóa riêng của cá nhân đó GnuPG
cho phép áp dụng với các email có hỗ trợ POP3 - là một giao thức Internet được dùng để nhận email từ server về ứng dụng khách, cho phép gửi và nhận email từ
máy tính lên server hoặc ngược lại mà không cần sử dụng trang cho phép sử dụng email chuyên dùng, nếu sử dụng Microsoft Office Outlook 2003 cũng có thể sử dụng các chức năng tương tự Tuy nhiên, Outlook chỉ cho phép nhận và gửi các email thông thường, còn GnuPG thì cho phép nhận và gửi các email đã mã hóa.
2.2 Một số khái niệm
2.2.1 Mã hóa thông tin
Mã hóa thông tin là quá trình chuyển các văn bản hay các tài liệu gốc thành các văn bản, tài liệu dưới dạng mật mã để bất kỳ ai ngoài người gửi và người nhận, đều không thể đọc được
Trang 15Hình 2.1: Mô hình mã hóa thông tin
Mục đích chính của các kỹ thật mã hóa là đảm bảo an ninh cho các thông tin được lưu trữ, đảm bảo an ninh cho thông tin trong quá trình truyền phát Mã hóa là một kỹ thuật phổ biến hiện nay, có khả năng đảm bảo một số khía cạnh an ninh trong thương mại điện tử như:
- Đảm bảo tính toàn vẹn của dữ liệu (Integrity): dữ liệu không bị thay đổi trong quá trình truyền
- Đảm bảo tính xác thực (Authority): Xác thực rằng chính người đó đã gửi thông tin và người còn lại có khóa riêng mới là người nhận chứ không ai khác
- Đảm bảo tính bí mật của thông tin (Confidentiality): dữ liệu không bị xem bởi “bên thứ 3”
- Chống phủ định (Non-repudiation): là cơ chế người thực hiện hành động không thể chối bỏ những gì mình đã làm, có thể kiểm chứng được nguồn gốc hoặc người đưa tin
Kỹ thuật mã hóa được sử dụng từ thời Ai Cập cổ đại Theo kỹ thuật cổ truyền, thông điệp được mã hóa bằng tay, sử dụng các phương pháp dựa trên các chữ cái của thông điệp Hai cách mã hóa thường được sử dụng là kỹ thuật thay thế và kỹ thuật hoán vị Theo kỹ thuật thay thế, mỗi chữ cái được thay thế bởi một chữ cái khác Giả sử, nếu “a” được thay bằng “b”, “b” được thay bằng “c”, “c” được thay bằng “d”, và cứ như thế thì chữ “SIGNATURE” sẽ được mã hóa thành “TJHMBUVSF” Theo kỹ thuật hoán vị, thứ tự các chữ cái sẽ bị thay đổi giả sử, ta hoán đổi vị trí các ký tự, chữ đầu thành chữ cuối, cứ lần lượt như thế, chữ “SIGNATURE” có thể bị xáo thành “ERUTANGIS”.
Hệ thống mã hóa hiện đại thường được số hóa Thuật toán dựa trên các bit đơn của thông điệp chứ không dựa trên ký hiệu các chữ cái Máy tính lưu trữ dữ liệu dưới dạng
Trang 16chuỗi nhị phân, trình tự của các số 0 và 1 Mỗi ký tự được gọi là một bit Các mã khóa và mã mở là các chuỗi nhị phân với độ dài khóa được định sẵn Hiện nay hai kỹ thuật
mã hóa cơ bản được sử dụng để mã hóa thông tin trên internet là mã hóa khóa bí mật và mã hóa khóa công cộng.
2.2.2 Mã hóa khóa bí mật
Mã hóa khóa bí mật hay còn gọi là mã hóa khóa riêng hoặc mã hóa đối xứng là
phương pháp mã hóa chỉ dùng một khóa cho cả quá trình mã hóa và quá trình giải mã Mã khóa bí mật sử dụng một khóa đối xứng để mã hóa và giải mã thông điệp Trong trường hợp này, người gửi mã hóa một thông điệp sử dụng khóa bí mật đối xứng, sau đó gửi thông điệp đã mã hóa cùng khóa bí mật cho người nhận, người nhận sẽ sử dụng khóa này để giải mã thông điệp Kỹ thuật này được được IBM phát triển, áp dụng cho cơ quan chính phủ Mỹ năm 1977 được gọi là tiêu chuẩn mã hóa dữ liệu (DES- Data Encryption Standard)
Ví dụ 1: Khách hàng X muốn gửi 1 đơn đặt hàng cho người bán Y X mã hóa
đơn đặt hàng của mình bằng một mã khóa, rồi gửi đơn đặt hàng đó cho Y
Khi nhận được đơn đặt hàng đã mã hóa, Y giải mã đơn đặt hàng bằng chính khóa mà X đã sử dụng.Việc sử dụng loại khóa này rất đơn giản và dễ dàng.
Hình 2.2: Quá trình truyền tin sử dụng mã khóa bí mật
Một vấn đề gặp phải khi sử dụng mã khóa bí mật là trước khi thực hiện giao dịch, truyền thông tin, để đảm bảo an ninh cho dữ liệu, hai người gửi và nhận phải tìm cách trao đổi khóa đối xứng một cách an toàn Họ có thể liên lạc với nhau qua bưu điện, điện thoại, tuy nhiên cách này cũng không thể đảm bảo rằng không có người nghe lén thông tin qua điện thoại của bạn, hoặc có người mạo danh và nhận bưu phẩm là khóa bí mật Hơn nữa cách này càng không phù hợp với hệ thống thông tin lớn Tính toàn vẹn và bí mật của thông tin có thể bị lộ trong quá trình chuyển giữa
Trang 17người gửi và người nhận Bên cạnh đó, cả hai bên trong giao dịch đều dùng một khóa để mã hóa và giải mã, vì thế chúng ta không thể xác minh được ai là người đã tạo ra thông điệp Để mỗi thông điệp gửi cho một người được an toàn, chúng ta phải tạo ra các mật mã riêng cho từng người nhận Giả sử có n người tham gia giao dịch thì chúng ta phải tạo ra n(n-1)/2 khóa Như vậy số lượng khóa sẽ rất nhiều, gây khó khăn cho nhà quản lý.
Có thể tóm tắt những ưu và nhược điểm của việc sử dụng mã hóa khóa bí mật
2.2.3 Mã hóa khóa công cộng
Mã hóa khóa công cộng hay còn gọi lã mã hóa khóa công khai hoặc mã hóa khóa bất đối xứng Đây là phương pháp sử dụng hai mã khóa một mã khóa sử dụng trong quá trình mã hóa và một mã khóa sử dụng trong quá trình giải mã Hai khóa này có quan hệ với nhau về mặt thuật toán sao cho dữ liệu được mã hóa bằng khóa này sẽ được giải mã bằng khóa kia.
Mỗi người sử dụng có hai loại mã khóa: mã khóa bí mật chỉ riêng người gửi biết còn mã khóa công cộng được thông báo rộng rãi cho những người sử dụng khác trong hệ thống Để gửi một thông điệp an ninh, người gửi sử dụng mã khóa công cộng của người nhận để mã hóa thông điệp Người nhận khi nhận được thông điệp (đã được mã hóa) sẽ sử dụng mã khóa cá nhân của mình để giải mã thông điệp Vì không ai có thể biết được mã khóa bí mật của người nhận nên không ai có thể đọc được thông điệp đó, thông điệp được đảm bảo.
Trang 18Hình 2.3: Quá trình truyền tin sử dụng mã hóa công cộng
Người ta có thể sử dụng cả mã hóa bí mật và mã hóa công cộng để mã hóa thông điệp Giả sử rằng khách hàng sử dụng mã khóa công cộng của người bán để mã khóa thông điệp, lúc này có thể xác minh được người nhận là người bán Tuy nhiên người bán lại không thể xác minh được người gửi là ai Nếu sử dụng mã khóa bí mật của người gửi để mã hóa thông điệp, khi đó thông điệp chỉ có thể được giải mã bằng mã hóa công cộng của người gửi Như vậy có thể xác minh được người gửi là ai Hai phương pháp có thể kết hợp để xác minh cả hai bên tham gia giao dịch, theo đó cả hai loại mã khóa công cộng và mã khóa bí mật đều sử dụng để mã hóa và sau đó người nhận cũng sử dụng cả hai khóa này để giải mã Bởi mỗi người đều có một cặp khóa, khóa bí mật và khóa công cộng cho mình nên giả sử khi có n người tham gia giao dịch thì sẽ tạo ra 2n khóa Dựa trên giả thuyết này chúng ta có thể đi đến một kết luận để đảm bảo sử dụng phương pháp mã hóa tốt nhất, giả sử n là số người tham gia giao dịch, ta có phương trình toán học như sau: [n(n-1)/2] - 2n>=0
Giải phương trình ta có: nếu n>5 ta nên sử dụng phương pháp mã hóa khóa công cộng, nếu n<=5 ta nên sử dụng phương pháp mã hóa khóa bí mật
Có thể tóm tắt những ưu và nhược điểm của việc sử dụng mã hóa khóa công cộng:
Trang 19Thuật toán phổ biến nhất trong mã hóa khóa công cộng là kỹ thuật mã hóa RSA, được xuất hiện từ năm 1977 Ngày nay, RSA được sử dụng ở hầu hết ở các công ty lớn trên thế giới và đặc biệt là ứng dụng của kỹ thuật này với chữ ký điện tử trong hệ thống thương mại điện tử.
2.3 Một số thuật toán trong chương trình ứng dụng2.3.1 Thuật toán mã hóa RSA
RSA là một thuật toán mật mã hóa khóa công khai Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn.
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT) Tên của thuật toán lấy từ 3 chữ cái đầu của tên 3 tác giả.
Thuật toán RSA được MIT đăng ký bằng sáng chế tại Hoa Kỳ vào năm 1983, số đăng ký 4,405,829 Bằng sáng chế này hết hạn vào ngày 21 tháng 9 năm 2000 Tuy nhiên, do thuật toán đã được công bố trước khi có đăng ký bảo hộ nên sự bảo hộ hầu như không có giá trị bên ngoài Hoa Kỳ.
Sự khác biệt giữa một hệ thống mã bí mật với một hệ thống mã công khai là hệ thống mã công khai dùng hai khóa khác nhau để mã hóa và giải mã Do đó, một bộ mã công khai sẽ bao gồm hai khóa: một khóa dành cho người mã hóa, thường được công khai và khóa còn lại dùng cho người giải mã, thường được giữ bí mật Mặc dù, hai khóa đó thực hiện các thao tác ngược nhau và có liên quan với nhau, nhưng phải làm sao để không thể suy ra khóa bí mật từ khóa công khai.
Trang 20Cơ sở toán học của hệ mã RSA là định lý Euler:
“Nếu n và a là 2 số nguyên tố cùng nhau, ta có aФ(n) = 1(mod n), trong đó Ф(n) là số nguyên trong đoạn [1, n], và nguyên tố cùng nhau với n”.
Ta có:
Nếu n là số nguyên tố thì Ф(n) = n -1
Nếu n là tích của 2 số nguyên tố p và q( n = p * q) thì Ф(n) = (p – 1) *(q – 1).Giả sử thông điệp số m là một số nguyên trong đoạn [2, n -1], sau đó, m sẽ được mã hoá bằng khoá công khai (e, n) thành số nguyên c.
Trang 21Khi giải mã, dựa vào những số được mã hoá bằng Public Key, người dùng sẽ giải mã dữ liệu bằng Private Key của mình Thật sự, đây cũng là những con số, dựa vào số d.
Public Key là chung (người nào cũng có thể biết) nhưng để giải mã được văn bản bị mã hoá thì phải dùng Private key phù hợp với Public key trên, và Private key này là bí mật, chỉ người cần giải mã mới biết đến.
Ví dụ 2:
Trước hết, Ta chọn hai số nguyên tố p và q, với p = 5, q = 7 Tính n = p*q = 5 * 7 = 35
Z = (p-1) * (q – 1) = (5 -1)(7-1) = 24 Tiếp đến, chọn e thoả điều kiện 1< e< n
chọn e = 5
Tìm d, sao cho e * d -1 chia hết cho z Ta có: ( 5 * 29- 1) thì thoả chia hết cho 24 chọn d = 29
Do đó, ta có cặp key (Key Pair) như sau: Public Key = (n,e) = (35, 5)
Private Key = (n,d) = (35,29)Áp dụng để mã hoá chuỗi : SECURE
Trong bảng chữ cái, có tất cả 26 ký tự, các ký tự ứng với một con số Do đó, ta có bảng sau:
Trang 22Bảng 1: Mã hóa chuỗi SECURE
Nếu tại đây, dữ liệu trên đường chuyển đến người nhận bị một người khác bắt được, anh ta sẽ không biết được nội dung muốn nói điều gì, mà chỉ nhận được đó chỉ là những con số, không nói lên được điều gì Nếu muốn đọc được nội dung, anh ta phải có Private Key, mà ứng với Public Key dùng để mã hoá dữ liệu trên thì phải có private Key thích hợp Do đó, dữ liệu sẽ an toàn.
Khi dữ liệu đến tay người nhận, muốn khôi phục lại dữ liệu gốc ban đầu, ta sẽ decrypt lại với n = 35, d = 29
Bảng 2: Giải mã chuỗi SECURE
Public Key = (n,e) = (35, 5).Private Key = (n,d) = (35,29).
Khi mã hoá dữ liệu dùng thuật toán RSA, dữ liệu sẽ được gởi đi dưới dạng những con số, bằng cách dùng Public Key để mã hoá Trên đường truyền, nếu Hacker bắt được thì đó cũng chỉ là những con số, không thể đoán được gì Khi nhận được dữ liệu bị mã hoá, người nhận sẽ dùng Private Key phù hợp để giải mã ngược trở lại.
Tốc độ mã hoá và giải mã dữ liệu của RSA không phụ thuộc vào kích thước của Key (n )
Bảng 3: Tốc độ mã hóa, giải mã của RSA
Trang 232.3.2 Thuật toán mã hóa El Gamal
Ngoài phương pháp mã hoá dữ liệu dùng RSA, ở thuật toán mã hoá bất đối xứng còn dùng El Gamal El Gamal cũng là sự lựa chọn cho các tổ chức lớn cần sự bảo mật cao, an toàn của dữ liệu, nhưng nó ít phổ biến và thông dụng như là RSA được xây dựng bởi Taher ElGamal.
Thuật toán
o Chọn số nguyên tố po Chọn số nguyên tố k
o Chọn g và x thoả: g< p và x <po Tính y = g x mod p
o Từ đây, ta có cặp Key (Key Pair)Private Key = (x)
Public Key = (y, g, p)o Quy tắc mã hoá:
a = gk mod pb = m* y k mod po Quy tắc giải mã:
m = b / (ax) mod po Với:
a và b là: văn bản bị mã hoá (Cipher text)m = văn bản chưa bị mã hoá (Plain text)
Public Key = (x) = 765
Private Key = (y, g, p) = (949, 2, 2579)- Mã hoá