1. Trang chủ
  2. » Thể loại khác

Nghiên cứu giải pháp bảo mật mạng 3G : Luận văn ThS. Công nghệ thông tin: 60 48 10

70 20 0

Đ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 70
Dung lượng 2,18 MB

Nội dung

1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ VŨ BẢO TẠO NGHIÊN CỨU GIẢI PHÁP BẢO MẬT MẠNG 3G LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN HÀ NỘI - 2013 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ VŨ BẢO TẠO NGHIÊN CỨU GIẢI PHÁP BẢO MẬT MẠNG 3G Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã số: 60.48.10 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN HỮU NGỰ HÀ NỘI - 2013 MỤC LỤC CẢM ƠN Error! Bookmark not defined LỜI CAM ĐOAN Error! Bookmark not defined MỤC LỤC .3 DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH MỞ ĐẦU CHƢƠNG 1: HỆ THỐNG THÔNG TIN DI ĐỘNG 3G 1.1 Tổng quan hệ thống thông tin di động 3G 1.1.1 Định nghĩa 3G .9 1.1.2 Lộ trình phát triển thơng tin di động lên 3G 1.1.4 Kiến trúc chung hệ thống thông tin di động 3G 11 1.1.5 Chuyển mạch kênh (CS), chuyển mạch gói (PS) 13 1.1.6 Các loại lƣu lƣợng dịch vụ đƣợc 3G WCDMA hỗ trợ 15 1.2 An ninh thông tin di động 16 1.2.1 Khái niệm an ninh an tồn thơng tin 16 1.2.2 Đánh giá vấn đề an toàn, bảo mật hệ thống 17 1.2.3 Các nguy an ninh an tồn mạng thơng tin di động 18 1.3 Kết luận 24 CHƢƠNG 2: MÃ HĨA THƠNG TIN 25 2.1 Giới thiệu chung mật mã 25 2.1.1 Giới thiệu 25 2.1.2 Hệ thống mật mã 25 2.1.3 Phân loại hệ mật mã 26 2.2 Các hệ mật mã khóa đối xứng 26 2.3 Các hệ mật mã khóa cơng khai 27 2.3.1 Hệ mật mã RSA 28 2.3.2 Hệ mật đƣờng cong Elliptic 30 2.3.3 So sánh hai phƣơng pháp mã hóa RSA ECC 36 2.4 Kết luận 37 CHƢƠNG 3: GIẢI PHÁP BẢO MẬT THÔNG TIN TRONG MẠNG 3G 38 3.1 Bảo mật thông tin di động 3G giới 38 3.1.1 Tổng quan bảo mật mạng 3G 38 3.1.2 Kiến trúc bảo mật mạng 3G 38 3.2 Hiện trạng mạng thông tin di động 3G Việt nam 39 3.2.1 Tình hình triển khai mạng 3G Việt Nam 39 3.2.2 Thực trạng nguy an toàn mạng 3G Việt Nam 40 3.2.3 Giải pháp bảo mật thông tin di động 3G 41 3.3 Phân tích lựa chọn phƣơng pháp mã hóa thơng tin 41 3.4 Các vấn đề bảo mật thoại mạng điện thoại IP 43 3.4.1 Giới thiệu mạng điện thoại IP 43 3.4.2 Giới thiệu giao thức SIP 43 3.4.3 Giao thức RTP 47 3.5 Phân tích thiết kế xây dựng phần mềm bảo mật thoại 47 3.5.1 Cơng nghệ lập trình ứng dụng 47 3.5.2 Kiến trúc tổng thể hệ thống 47 3.5.3 Mơ hình phân cấp chức hệ thống 48 3.5.4 Chức thiết lập kết nối .48 3.5.5 Chức quản trị khóa 49 3.5.6 Chức mã hóa giải mã liệu 51 3.5.7 Phát triển ứng dụng 53 3.5.8 Cài đặt hệ thống 54 3.6 Kết luận 59 KẾT LUẬN 60 HƢỚNG PHÁT TRIỂN ĐỀ TÀI 60 TÀI LIỆU THAM KHẢO 61 PHỤ LỤC MÃ NGUỒN MỘT SỐ MODULE CHÍNH TRONG CHƢƠNG TRÌNH 63 DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt ATM BSC BTS CDMA CS GPRS GPS Từ gốc PLMN PS Asynchronous Transfer Mode Base Station Controller Base Transceiver Station Code Division Multiple Acces Circuit Switch General Packet Radio Service Global Positioning System Global System Mobile Communication High-Speed Downlink Packet Access Public Land Mobile Network Packet Switch PSTN Public Switched Telephone Network RAN RNC SMS Radio Access Network Rado Network Controller Short Message Servive TDMA Time Division Multiple Access UMTS Universal Mobile Telephone Service GSM HSPDA WCDMA IMSI MSISDN EIR IMEI AUC AV FDMA DSSS FHSS THSS SIR Wideband Code Division Multiple Access International Mobile Subsscriber Identity Nghĩa tiết Việt Chế độ truyền dị Bộ điều khiển trạm gốc Trạm thu phát gốc Đa truy nhập phân chia theo mã Chuyển mạch kênh Dịch vụ vơ tuyến gói tổng hợp Hệ thống Định vị Tồn cầu Hệ thống thơng tin di động tồn cầu Truy nhập gói đƣờng xuống tốc độ cao Mạng di động công cộng mặt đất Chuyển mạch gói Mạng điện thoại chuyển mạch cơng cộng Mạng truy nhập vô tuyến Bộ điều khiển trạm gốc Dịch vụ nhắn tin Công nghệ đa truy nhập phân chia theo thời gian Hệ thống viễn thơng di động tồn cầu Đa truy cập phân mã băng rộng Số nhận dạng thuê bao di động quốc tế Số thuê bao có danh bạ điện Mobile Station ISDN thoại Equipment Identity Register Bộ ghi nhận dạng thiết bị International Mobile Equipment Số nhận dạng thiết bị di động Identity toàn giới Authentication Center trung tâm nhận thực Authetication Vector Véc tơ nhận thực Đa truy nhập phân chia theo tần Frequency Division Multiple Acces số Direct Sequence Spreading Spectrum Trải phổ dãy trực tiếp Frequency Hopping Spreading Trải phổ nhảy tần Spectrum Time Hopping Spreading Spectrum Trải phổ nhảy thời gian Signal to Interference Ratio Tỷ số tín hiệu nhiễu DANH MỤC CÁC BẢNG Bảng 1.1 Sự khác W-CDMA CDMA2000 11 Bảng 1.2 Phân loại dịch vụ 3G WDCMA UMTS 16 Bảng 2.2 Bảng so sánh kích thƣớc khóa RSA ECC với mức độ an toàn 36 Bảng 3.1 Mô tả package class tƣơng ứng 53 DANH MỤC CÁC HÌNH Hình 1.1 Lộ trình phát triển hệ thống thông tin di động từ hệ đến hệ Hình 1.2 Kiến trúc tổng quát mạng di động kết hợp CS PS 12 Hình 1.3 Chuyển mạch kênh (CS) chuyển mạch gói (PS) 13 Hình 1.4 Đóng bao tháo bao cho gói IP trình truyền tunnel 14 Hình 1.5 Thiết lập kết nối tunnel chuyển mạch tunnel 15 Hình 1.6 Các phƣơng thức công bị động 19 Hình 1.7 Phần mềm bắt gói tin Ethereal 20 Hình 1.8 Các phƣơng thức công chủ động 21 Hình 1.9 Mơ tả q trình cơng DOS tầng liên kết liệu 22 Hình 1.10 Mơ tả q trình cơng theo kiểu chèn ép 23 Hình 1.11 Mơ tả q trình công theo kiểu thu hút 23 Hình 2.1 Mơ hình mã hóa với khóa mã khóa giải giống 26 Hình 2.2 Mơ hình mã hóa khóa đối xứng 27 Hình 2.3 Mơ hình mã hóa khóa cơng khai 28 Hình 2.4 Sơ đồ bƣớc thực mã hóa theo thuật tốn RSA 29 Hình 2.5 Minh họa việc thực mã hóa giả mã theo thuật tốn RSA 30 Hình 2.6 Đƣờng cong elliptic y2 = x3 - 3x +1 31 Hình 2.7 Phép cộng đƣờng cong elliptic 32 Hình 2.8 So sánh mức độ bảo mật ECC với RSA / DSA 37 Hình 3.1 Tính bảo mật mạng 3G 38 Hình 3.2 Mơ hình cơng theo kiểu thăm dị 40 Hình 3.3 Sự đa dạng công nghệ kết nối thoại thông qua Internet 43 Hình 3.3 Cấu trúc hệ thống SIP 45 Hình 3.4 Cấu trúc tin SIP 46 Hình 3.5 Kiến trúc tổng thể hệ thống 48 Hình 3.6 Mơ hình phân cấp chức hệ thống 48 Hình 3.7 Quá trình user đăng ký tới máy chủ SIP 49 Hình 3.8 SIP Server tạo phiên làm việc cho user 49 Hình 3.9 Minh họa q trình trao đổi khóa cơng khai 50 Hình 3.10 Lƣu đồ giải thuật chức mã hóa 51 Hình 3.11 Lƣu đồ giải thuật truyền liệu 52 Hình 3.12 Lƣu đồ giải thuật nhận liệu 52 Hình 3.13 Lƣu đồ giải thuật chức mã hóa 53 Hình 3.14 Quản lý tài khoản SIP OfficeSIP 54 Hình 3.15 Đăng nhập vào máy chủ FTP với tài khoản đƣợc cấp 55 Hình 3.16 Cấu hình tài khoản SIP 55 Hình 3.17 Kết việc kết nối tài khoản với máy chủ SIP thành cơng 56 Hình 3.18 Nhập thông tin tài khoản ngƣời nhận 57 Hình 3.19 Ngƣời có tài khoản 5554 thực gọi 57 Hình 3.20 Hai bên thực gọi 57 Hình 3.21 Hai bên sử dụng khóa cơng khai để mã hóa thơng tin 58 Hình 3.22 Nội dung tệp user.xml lƣu khóa cơng khai tài khoản 58 Hình 3.23 Minh họa việc mã hóa giải mã liệu dạng văn 59 Hình 3.24 Nội dung văn đƣợc mã hóa tệp 5554.txt 59 MỞ ĐẦU Hệ thống thông tin di động Việt Nam đƣợc bắt đầu với công nghệ di động GSM, hệ 2G đơn giản, với dịch vụ kèm nhƣ truyền liệu, fax, SMS (tin nhắn)… Để đáp ứng đƣợc dịch vụ truyền thơng đa phƣơng tiện phạm vi tồn cầu đồng thời đảm bảo tính kinh tế, hệ thống GSM đƣợc nâng cấp bƣớc lên hệ ba - 3G (The Third Generation) Với công nghệ 3G, nhà cung cấp mang đến cho khách hàng dịch vụ đa phƣơng tiện nhƣ: âm nhạc chất lƣợng cao; hình ảnh video chất lƣợng truyền hình số; Email; Video streaming; High-ends games; dịch vụ định vị toàn cầu (GPS) Tuy nhiên, để khách hàng yên tâm tin tƣởng sử dụng dịch vụ vấn đề an ninh, an tồn thơng tin hệ thống thông tin di động hệ ba phải đƣợc đặc biệt quan tâm Bởi liệu truyền mạng 3G không đơn thoại, mà liệu đa phƣơng tiện Nếu vấn đề an tồn bảo mật thơng tin khơng đƣợc đảm bảo gây thiệt hại vơ to lớn, việc “Nghiên cứu giải pháp bảo mật mạng 3G” thực cần thiết, để từ đƣa giải pháp phù hợp với việc đề xuất xây dựng ứng dụng nhằm đảm bảo an tồn thơng tin bảo mật cho mạng 3G Với lý luận văn tiến hành phân tích, nghiên cứu cơng nảy sinh gây nguy hại nghiêm trọng mà từ đề xuất giải pháp bảo mật mạng 3G Do vấn đề bảo mật hệ thống thông tin di động 3G rộng phức tạp, tác giả chƣa có đủ điều kiện để nghiên cứu sâu rộng toàn vấn đề Nội dung luận văn bao gồm chƣơng:  Chƣơng 1: Hệ thống thông tin di động 3G  Chƣơng 2: Mã hóa thơng tin  Chƣơng 3: Giải pháp bảo mật thông tin mạng 3G Tuy nhiên vấn đề mà luận văn đề cập lĩnh vực tƣơng đối rộng, nỗ lực hết sức, cố gắng vận dụng kiến thức, khả năng, điều kiện, nội dung luận văn chắn nhiều thiếu sót hạn chế Rất mong nhận đƣợc góp ý q báu thầy giáo, đồng nghiệp để luận văn đƣợc hoàn thiện Hà Nội, ngày 22 tháng 03 năm 2013 Tác giả Vũ Bảo Tạo CHƢƠNG 1: HỆ THỐNG THÔNG TIN DI ĐỘNG 3G 1.1 Tổng quan hệ thống thông tin di động 3G 1.1.1 Định nghĩa 3G 3G thuật ngữ dùng để hệ thống thông tin di động hệ thứ (Third Generation) Mạng 3G (Third - generation technology) hệ thứ ba chuẩn công nghệ điện thoại di động, cho phép truyền liệu thoại liệu thoại (tải liệu, gửi email, tin nhắn nhanh, hình ảnh ) Ở hệ thứ hệ thống thông tin di động có xu hồ nhập thành tiêu chuẩn có khả phục vụ tốc độ bit lên đến Mbit/s Để phân biệt với hệ thống thông tin di động băng hẹp nay, hệ thống thông tin di động hệ gọi hệ thống thông tin di động băng rộng 3G cung cấp hai hệ thống chuyển mạch gói chuyển mạch kênh Điểm mạnh công nghệ so với công nghệ 2G 2.5G cho phép truyền, nhận liệu, âm thanh, hình ảnh chất lƣợng cao cho thuê bao cố định thuê bao di chuyển tốc độ khác 1.1.2 Lộ trình phát triển thông tin di động lên 3G Để tiến tới hệ ba từ hệ hai phải trải qua giai đoạn trung gian [4], giai đoạn gọi hệ 2,5 Hình 1.1 Lộ trình phát triển hệ thống thông tin di động từ hệ đến hệ 1.1.3 Các chuẩn công nghệ di động thuộc 3G 3G bao gồm chuẩn chính: W-CDMA, CDMA2000 1.1.3.1 W-CDMA (Wideband Code Division Multiple Access) Là chuẩn liên lạc di động 3G song hành với với chuẩn GSM W-CDMA công nghệ tảng cho công nghệ 3G khác nhƣ UMTS FOMA W-CDMA 10 hệ ba (3G) giúp tăng tốc độ truyền nhận liệu cho hệ thống GSM cách dùng kỹ thuật CDMA hoạt động băng tần rộng thay cho TDMA Trong công nghệ thông tin di động hệ ba W-CDMA có đƣợc tính linh hoạt lớp vật lý việc hỗ trợ kiểu dịch vụ khác đặc biệt dịch vụ tốc độ bit thấp trung bình Hệ thống thơng tin di động hệ ba W-CDMA cung cấp dịch vụ với tốc độ bit lên đến 2MBit/s Bao gồm nhiều kiểu truyền dẫn nhƣ truyền dẫn đối xứng không đối xứng, thông tin điểm đến điểm thơng tin đa điểm Với khả đó, hệ thống thơng tin di động hệ ba cung cấp dể dàng dịch vụ nhƣ: điện thoại thấy hình, tải liệu nhanh, ngồi cịn cung cấp dịch vụ đa phƣơng tiện khác [3] - UMTS dựa công nghệ W-CDMA, giải pháp tổng quát cho nƣớc sử dụng công nghệ di động GSM UMTS tổ chức 3GPP quản lý 3GPP đồng thời chịu trách nhiệm chuẩn mạng di động nhƣ GSM, GPRS EDGE - FOMA đƣợc đƣa vào ứng dụng từ năm 2001 đƣợc coi dịch vụ 3G thƣơng mại giới Mặc dù dựa vào tảng W-CDMA nhƣng FOMA lại khơng tƣơng thích với UMTS 1.1.3.2 CDMA2000 CDMA2000 (còn gọi IMT Multi-Carrier (IMT-MC) họ 3G tiêu chuẩn công nghệ di động, sử dụng cơng nghệ CDMA truy cập kênh, để gửi thoại, liệu, tín hiệu liệu điện thoại di động trang web di động Các tiêu chuẩn bao gồm: CDMA2000 1X, CDMA2000 EV-DO Rev 0, CDMA2000 EV-DO Rev A, CDMA2000 EV-DO Rev B Tất đƣợc phê duyệt giao diện vô tuyến cho ITU IMT-2000 CDMA2000, thực chất kế tục phát triển từ chuẩn 2G CDMA IS-95 Chuẩn CDMA2000 đƣợc quản lý 3GPP2, tổ chức hoàn toàn độc lập riêng rẽ với 3GPP CDMA2000 công nghệ nâng cấp từ CDMA, cho phép truyền tải liệu mạng di động Năm 2000, CDMA2000 cơng nghệ 3G đƣợc thức triển khai CDMA2000 gồm phiên bản: - 1xRTT phiên CDMA2000, cho phép truyền tải liệu với tốc độ 307 Kbps (downlink) 153 Kbps (uplink) CDMA2000 1xRTT mang lại chất lƣợng thoại tốt kênh CMDA 1,25MHz đơn lẻ - 1xEV (1X Evolution): công nghệ 1xEV cung cấp tốc độ downlink uplink lớn theo hai giai đoạn triển khai: Giai đoạn một: 1xEV-DO (Cách mạng Dữ liệu) : Tăng tốc độc tải xuống tối đa tới 2,4 Mbps Giai đoạn hai: 1xEV-DV (Cách mạng Dữ liệu thoại): Tích hợp thoại liệu mạng cung cấp với tốc độ truyền tải tối đa 4,8 Mbps - 3x CDMA2000 3x sử dụng kênh CDMA 1,25MHz Công nghệ chuẩn đặc tả CDMA2000, dành cho nƣớc cần băng thông 5MHz cho mục địch sử dụng mạng 3G CDMA2000 3X cịn có tên "3XRTT," "MC-3X," "IMTCDMA MultiCarrier 3X" [3] 56  Nếu tài khoản đúng, kết nối đƣợc thực tới máy chủ SIP, biểu tƣợng kết nối chuyển sang màu xanh Hình 3.17 Kết việc kết nối tài khoản với máy chủ SIP thành cơng a) Chức trao đổi khóa Khi kết nối thành cơng, ngƣời dùng thực gọi, kết nối đƣợc tới ngƣời nhận gọi, khóa công khai ngƣời gọi ngƣời nhận đƣợc trao đổi với Ví dụ: - Ngƣời gọi có số 5554 gọi thực gọi tới ngƣời nhận số 5556 cách nhập thông tin tài khoản ngƣời gọi 57 Hình 3.18 Nhập thơng tin tài khoản ngƣời nhận - Tiến hành thực gọi tới tài khoản 5556 Hình 3.19 Ngƣời có tài khoản 5554 thực gọi - Hai bên thực gọi Hình 3.20 Hai bên thực gọi - Nội dung gọi đƣợc mã hóa khóa cơng khai ngƣời đàm thoại với 58 Hình 3.21 Hai bên sử dụng khóa cơng khai để mã hóa thơng tin - Truy cập vào máy chủ TFP với tài khoản đƣợc cấp ta xem nội dung file user.xml lƣu khóa cơng khai dùng chung cho tất ngƣời dùng Hình 3.22 Nội dung tệp user.xml lƣu khóa cơng khai tài khoản b) Chức mã hóa, giải mã liệu dạng văn (text) Khi kết nối thành công, ngƣời gọi ngƣời nhận trao đổi với liệu dạng văn (text), liệu ngƣời gửi đƣợc mã hóa lƣu lên tệp 5554.txt Ngƣời nhận thực đọc liệu từ tệp 5554.txt giải mã 59 Hình 3.23 Minh họa việc mã hóa giải mã liệu dạng văn - Xem nội dung file 5554.txt lƣu nội dung văn đƣợc mã hóa Hình 3.24 Nội dung văn đƣợc mã hóa tệp 5554.txt 3.6 Kết luận Chƣơng trình bày tổng quan vấn đề bảo mật mạng di động 3G giới Giới thiệu khái quát tình hình triển khai mạng 3G Việt Nam Phân tích nguy an ninh an tồn mạng lựa chọn giải pháp bảo mật tầng ứng dụng mạng thông tin 3G Phần cuối chƣơng 3, tác giả trình bày chức hệ thống bảo mật, thuật toán tƣơng ứng cách thức cài đặt hệ thống, minh họa chức phần mềm bảo mật thoại 60 KẾT LUẬN Trong trình thực đề tài, tác giả tiếp thu đƣợc kiến thức công nghệ 3G, kiến thức liên quan đến vấn đề bảo mật thông tin, đe dọa, cơng mạng, hàm, thuật tốn đƣợc sử dụng để mã hóa tồn vẹn thơng tin, đặc biệt bảo mật mạng 3G Chỉ đƣợc nguy gây an tồn thơng tin di động sử dụng cơng nghệ 3G Từ thấy rằng, việc thực bảo mật thông tin mạng điện thoại di động 3G cần thiết đặc biệt nhu cầu bảo mật thông tin cá nhân ngƣời sử dụng + Những điểm đạt đƣợc luận văn là: - Trình bày tổng qt cơng nghệ 3G, kiến trúc mạng 3G Tổng quát hóa vấn đề chung an tồn vào bảo mật thơng tin mạng di động 3G - Tổng hợp phƣơng pháp mã hóa thông tin, ƣu nhƣợc điểm sử dụng phƣơng pháp mã hóa khác Đi sâu vào nghiên cứu lý thuyết hệ mật đƣờng cong Eliptic ứng dụng ECC vào việc mã hóa liệu, trao đổi khóa, sở cho việc lựa chọn phƣơng pháp mã hóa bảo mật thơng tin di động 3G - Nghiên cứu trạng mạng thông tin 3G Việt Nam, thực trạng nguy an toàn mạng 3G, việc tác giả lựa chọn nghiên cứu tảng cơng nghệ lập trình ứng dụng hệ điều hành Android khâu quan trọng việc xây dựng phần mềm bảo mật thoại + Những điểm tồn luận văn là: - Phần thực sản phẩm phần mềm dừng lại việc mơ máy ảo q trình trao đổi khóa hai ngƣời gọi, q trình mã hóa giải mã thông tin hai ngƣời gọi liên lạc với - Tuy nhiên vấn đề mà luận văn đề cập lĩnh vực tƣơng đối rộng, nỗ lực hết sức, cố gắng vận dụng kiến thức, khả năng, điều kiện, nội dung luận văn chắn cịn nhiều thiếu sót hạn chế Rất mong nhận đƣợc góp ý quý báu thầy cô giáo, đồng nghiệp để luận văn đƣợc hoàn thiện HƢỚNG PHÁT TRIỂN ĐỀ TÀI Triển khai nghiên cứu xây dựng ứng dụng bảo mật mạng di động 3G nhƣ call video, tích hợp PKI thiết bị di động, xây dựng ứng dụng số hệ điều hành di động khác nhƣ Windows Phone Cần tiếp tục nghiên cứu để làm rõ giải pháp bảo đảm an toàn bảo mật cho hệ thống thông tin di động 3G, sở phát triển hệ thống thực tế 61 TÀI LIỆU THAM KHẢO Tiếng Việt Trƣờng Đại học Hàng Hải (2008), Giáo trình An tồn Bảo mật thơng tin, Hải Phịng, tr.4-5, Nguyễn Tiến Ban (2007), Kỹ thuật viễn thông, Học viện công nghệ Bƣu viễn thơng Hà Nội, tr.93-96 Nguyễn Phạm Anh Dũng (2009), Bài giảng giới thiệu công nghệ 3G WCDMA UMTS, Học viện Cơng nghệ Bƣu Viễn thơng Hà Nội, tr.7-10,11-17 Trần Văn Dũng (2007), Giáo trình An tồn Bảo mật thơng tin, Đại học Giao thông vận tải Hà Nội, tr.14-24, 77-79, 94-96 5.Phan Thị Thu Hiền (2006), Hệ mật đƣờng cong elliptic, đồ án tốt nghiệp đại học, Trƣờng Đại học Dân lập Hải Phòng, tr.15-17 Nguyễn Thị Tuyết Mai (2012), Nghiên cứu giải pháp an toàn bảo mật cho hệ thống mạng lõi 3G ứng dụng cho Vinaphone , luận văn thạc sĩ, Học viện Công Nghệ BCVT, Hà Nội, tr.28-31 Phạm Văn Quỳnh (2010), An ninh 3G UMTS, đồ án tốt nghiệp đại học, Học viện cơng nghệ Bƣu viễn thơng Hà Nội, tr.4 Trần Minh Triết (2005), Thuật tốn mã hóa ứng dụng, Trƣờng Đại học Khoa học Tự nhiên, Đại học Quốc gia thành phố Hồ Chí Minh, tr16-17, 21-23, 198-200, 213216 Vũ Anh Tuấn (2009), Giải pháp nâng cao độ an ninh thông tin mạng LAN không dây chuẩn IEEE 802.11ii, luận văn thạc sĩ, Đại học Thái Nguyên, tr.18-22, 25-26 10 Nguyễn Khanh Văn (2000), Mật mã An tồn Thơng tin, Đại học Bách khoa Hà Nội, tr.7-12 Tiếng Anh 11 Keiji Tachikwa (2002), W-CDMA Mobile Communications System, John Wiley & Sons LTD, pp.28-31, 245-250 12 Prentice Hall (1998), Cryptography and Network Security Principles and Practice, pp.165-170, 400-416 13 Wiley(2005) UMTS Networks Architecture Mobility and Services, pp.22-27, 5963, 207-211,294-297 14.http://vinaphone.com.vn/news/16625/-Thang-10-ra-mat-cac-dich-vu-dien- thoai-di-dong-3G-dau-tien-tai-Viet-Nam 15 http://xahoithongtin.com.vn/20090814085239480p0c112/mobifone-se-cungcap-dich-vu-3g-vao-thang-122009.htm 62 16 http://vnn.vietnamnet.vn/cntt/2009/04/840952/ 17 http://mobifone3g.com.vn/index.aspx?s=NDETAIL&AID=155&pages=2 18.http://www.pcworld.com.vn/articles/kinh-doanh/an-toan-thong- tin/2010/09/1220868/bao-mat-tren-mang-3g/ 19 http://voer.edu.vn/module/khoa-hoc-va-cong-nghe/bo-giao-thuc-rtp/rtcp.html 20.http://sandbox.yoyogames.com/extras/user/cv/san2/170/326170/T%C3%AC m_hi%E1%BB%83u_v%E1%BB%81_giao_th%E1%BB%A9c_SIP.doc 63 PHỤ LỤC MÃ NGUỒN MỘT SỐ MODULE CHÍNH TRONG CHƢƠNG TRÌNH Định nghĩa đường cong Eliptic package taovb.ecc.elliptic; import java.io.*; import java.math.BigInteger; public class EllipticCurve { private BigInteger a, b, p, order; private ECPoint generator; private BigInteger ppodbf; private int pointcmpsize; private String name; public static final BigInteger COEFA = new BigInteger("4"); public static final BigInteger COEFB = new BigInteger("27"); public static final int PRIMESECURITY = 500; public EllipticCurve(BigInteger a, BigInteger b, BigInteger p) throws InsecureCurveException { this.a = a; this.b = b; this.p = p; if (!p.isProbablePrime(PRIMESECURITY)) { } if (isSingular()) throw new InsecureCurveException(InsecureCurveException.SINGULAR, this); byte[] pb = p.toByteArray(); if(pb[0] == 0) pointcmpsize = pb.length; else pointcmpsize = pb.length + 1; name = ""; } public EllipticCurve(ECParameters ecp) throws InsecureCurveException { this(ecp.a(),ecp.b(),ecp.p()); order = ecp.order(); name = ecp.toString(); try{ generator = new ECPoint(this, ecp.generatorX(), ecp.generatorY()); generator.fastCache(); } catch (NotOnMotherException e){ System.out.println("Error defining EllipticCurve: generator not on mother!"); } } public void writeCurve(DataOutputStream output) throws IOException { byte[] ab = a.toByteArray(); output.writeInt(ab.length); output.write(ab); byte[] bb = b.toByteArray(); output.writeInt(bb.length); output.write(bb); byte[] pb = p.toByteArray(); output.writeInt(pb.length); output.write(pb); byte[] ob = order.toByteArray(); output.writeInt(ob.length); output.write(ob); 64 byte[] gb = generator.compress(); output.writeInt(gb.length); output.write(gb); byte[] ppb = getPPODBF().toByteArray(); output.writeInt(ppb.length); output.write(ppb); output.writeInt(pointcmpsize); output.writeUTF(name); } protected EllipticCurve(DataInputStream input) throws IOException { byte[] ab = new byte[input.readInt()]; input.read(ab); a = new BigInteger(ab); byte[] bb = new byte[input.readInt()]; input.read(bb); b = new BigInteger(bb); byte[] pb = new byte[input.readInt()]; input.read(pb); p = new BigInteger(pb); byte[] ob = new byte[input.readInt()]; input.read(ob); order = new BigInteger(ob); byte[] gb = new byte[input.readInt()]; input.read(gb); generator = new ECPoint(gb, this); byte[] ppb = new byte[input.readInt()]; input.read(ppb); ppodbf = new BigInteger(ppb); pointcmpsize = input.readInt(); name = input.readUTF(); generator.fastCache(); } public boolean isSingular(){ BigInteger aa = a.pow(3); BigInteger bb = b.pow(2); BigInteger result = ((aa.multiply(COEFA)).add(bb.multiply(COEFB) ) ).mod(p); if ( result.compareTo(BigInteger.ZERO) == ) return true; else return false; } public BigInteger calculateOrder(){ return null; } public ECPoint calculateGenerator(){ return null; } public boolean onCurve(ECPoint q){ if (q.isZero()) return true; BigInteger y_square = (q.gety()).modPow(new BigInteger("2"),p); BigInteger x_cube = (q.getx()).modPow(new BigInteger("3"),p); BigInteger x = q.getx(); BigInteger dum = ((x_cube.add(a.multiply(x))).add(b)).mod(p); if (y_square.compareTo(dum) == 0) return true; else return false; 65 } public BigInteger getOrder(){ return order; } public ECPoint getZero(){ return new ECPoint(this); } public BigInteger geta(){ return a; } public BigInteger getb(){ return b; } public BigInteger getp(){ return p; } public int getPCS() { return pointcmpsize; } public ECPoint getGenerator(){ return generator; } public String toString(){ if (name == null) return "y^2 = x^3 + " + a + "x + " + b + " ( mod " + p + " )"; else if (name.equals("")) return "y^2 = x^3 + " + a + "x + " + b + " ( mod " + p + " )"; else return name; } public BigInteger getPPODBF(){ if(ppodbf == null) { ppodbf = p.add(BigInteger.ONE).shiftRight(2); } return ppodbf; } } Lớp tạo khóa package taovb.ecc.elliptic; import java.math.BigInteger; import java.io.*; public class ECKey implements Key { protected boolean secret; protected BigInteger sk; protected ECPoint beta; protected EllipticCurve mother; public ECKey(EllipticCurve ec) { mother = ec; secret = true; sk = new BigInteger(ec.getp().bitLength() + 17,Rand.om); if (mother.getOrder() != null) sk = sk.mod(mother.getOrder()); beta = (mother.getGenerator()).multiply(sk); beta.fastCache(); } public String toString() { if (secret) return ( "Secret key: "+ sk +" "+ beta +" "+ mother); else return("Public key:"+ beta +" "+ mother); } 66 public boolean isPublic() { return (!secret); } public void writeKey(OutputStream out) throws IOException { DataOutputStream output = new DataOutputStream(out); mother.writeCurve(output); output.writeBoolean(secret); if(secret) { byte[] skb = sk.toByteArray(); output.writeInt(skb.length); output.write(skb); } byte[] betab = beta.compress(); output.writeInt(betab.length); output.write(betab); } public Key readKey(InputStream in) throws IOException { DataInputStream input = new DataInputStream(in); ECKey k = new ECKey(new EllipticCurve(input)); k.secret = input.readBoolean(); if(k.secret) { byte[] skb = new byte[input.readInt()]; input.read(skb); k.sk = new BigInteger(skb); } byte[] betab = new byte[input.readInt()]; input.read(betab); k.beta = new ECPoint(betab, k.mother); return k; } public void setSecretKey(BigInteger x) { sk = x; } public ECKey getPublic() { ECKey temp = new ECKey(mother); ((ECKey)temp).beta = beta; ((ECKey)temp).sk = BigInteger.ZERO; ((ECKey)temp).secret = false; System.gc(); return temp; } public void setPublic(ECPoint beta) { this.beta = beta; } public void setPublic(BigInteger x, BigInteger y) { try { beta = new ECPoint(beta.getMother(), x, y); } catch (NotOnMotherException e) { e.printStackTrace(); } } public BigInteger getSK() { return sk; } public ECPoint getBeta() { return beta; } } Tạo khóa Private Public package taovb.ecc.elliptic; public class CryptElliptic { 67 private EllipticCurve ec; private ECCryptoSystem cs; private ECKey sk; private ECKey pk; private ECPoint publicPoint; public CryptElliptic() { try { ec = new EllipticCurve(new secp256r1()); cs = new ECCryptoSystem(ec); sk = cs.generateKey(); pk = sk.getPublic(); publicPoint = pk.getBeta(); } catch (InsecureCurveException e) { System.out.println("TestCryptoStreams: " + e); } } public ECCryptoSystem getCS() { return cs; } public ECKey getSK() { return sk; } public ECKey getPK() { return pk; } public ECPoint getPublicPoint() { return publicPoint; } } Cập nhật khóa công khai lên FTP Server BigInteger pKeyX = myPublicPointKey.getx(); BigInteger pKeyY = myPublicPointKey.gety(); System.out.println(phone_name + ": " + getString(R.string.connect_success)); List userPublicKeyList = ftpUtils.readFileXml(); List upKeyList = new ArrayList(); boolean exists = false; for (UserPublicKey item: userPublicKeyList) { if (item.getUsername().equals(phone_name)) { item.setPublicKeyX(pKeyX.toString()); item.setPublicKeyY(pKeyY.toString()); exists = true; } upKeyList.add(item); } if (exists == false) { UserPublicKey item = new UserPublicKey(); item.setUsername(phone_name); item.setPublicKeyX(pKeyX.toString()); item.setPublicKeyY(pKeyY.toString()); upKeyList.add(item); } if (ftpUtils.writeFileXML(upKeyList)) { System.out.println(getString(R.string.update_success)); } else { System.out.println(getString(R.string.update_not_success)); } Nhận khóa cơng khai 68 void get_public_key(AutoCompleteTextView view) { String target = view.getText().toString(); if (m_AlertDlg != null) { m_AlertDlg.cancel(); } if (target.length() > 0) { int acong = target.indexOf("@"); if (acong != -1) { contact_name = target.substring(0, acong); } else { contact_name = target; } contactPublicKey = getContactPublicKey(contact_name); taovb_demo.setText(contactPublicKey.getBeta().toString()); } } private ECKey getContactPublicKey(String contact_name) { return ftpUtils.getContactPublicKey(cryptElliptic, contact_name); } Mã hóa package org.sipdroid.sipua.ui; import java.io.UnsupportedEncodingException; import org.sipdroid.sipua.R; import taovb.ecc.elliptic.ECKey; import taovb.ftp.client.FTPUtils; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class EncryptElliptic extends Activity { private FTPUtils ftpUtils; private boolean connected; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.encrypt_elliptic); final EditText crypto_send_to_address = (EditText) findViewById(R.id.crypto_send_to_address); final EditText crypto_key = (EditText) findViewById(R.id.crypto_key); final EditText crypto_content = (EditText) findViewById(R.id.crypto_content); final Button crypto_button_get_key = (Button) findViewById(R.id.crypto_button_get_key); final Button crypto_button_send = (Button) findViewById(R.id.crypto_button_send); final Context context = getApplicationContext(); final int duration = Toast.LENGTH_SHORT; 69 ftpUtils = new FTPUtils("14.160.91.174", "taovb","123456", "/user", "user.xml"); connected = ftpUtils.connectFTP(); if(!connected) { CharSequence text = "Không kết nối tới FTP Server"; Toast toast = Toast.makeText(context, text, duration); toast.show(); } crypto_button_get_key.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { if (crypto_send_to_address.getText().toString().equals("")) { CharSequence text = "Bạn phải nhập địa người nhận"; Toast toast = Toast.makeText(context, text, duration); toast.show(); } else { Sipdroid.contactPublicKey = getContactPublicKey(getName(crypto_send_to_address.getText().toString())); crypto_key.setText(Sipdroid.contactPublicKey.getBeta().toString()); } } }); crypto_button_send.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String test = crypto_content.getText().toString(); byte[] test1 = null; try { test1 = test.getBytes("UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } ftpUtils.uploadFile("5554.txt", test1, Sipdroid.cryptElliptic.getCS(), Sipdroid.contactPublicKey); CharSequence text = "Giai ma cong"; Toast toast = Toast.makeText(context, text, duration); toast.show(); } }); } private String getName(String address) { String contact_name = ""; int acong = address.indexOf("@"); if (acong != -1) { contact_name = address.substring(0, acong); } else { contact_name = address; } return contact_name; } private ECKey getContactPublicKey(String contact_name) { return Sipdroid.ftpUtils.getContactPublicKey(Sipdroid.cryptElliptic, contact_name); } } Giải mã package org.sipdroid.sipua.ui; 70 import org.sipdroid.sipua.R; import taovb.ftp.client.FTPUtils; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class DecryptElliptic extends Activity { private FTPUtils ftpUtils; private boolean connected; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.decrypt_elliptic); final EditText crypto_file_address = (EditText) findViewById(R.id.crypto_file_address); final EditText crypto_decrypt_content = (EditText) findViewById(R.id.crypto_decrypt_content); final Button crypto_button_decrypt = (Button) findViewById(R.id.crypto_button_decrypt); final Context context = getApplicationContext(); final int duration = Toast.LENGTH_SHORT; crypto_button_decrypt.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String file_name = crypto_file_address.getText().toString(); if (file_name.equals("")) { CharSequence text = "Bạn phải nhập tên tệp"; Toast toast = Toast.makeText(context, text, duration); toast.show(); } else { ftpUtils = new FTPUtils("14.160.91.174", "taovb","123456", "/user", file_name); connected = ftpUtils.connectFTP(); if (connected) { String decrypt_content = ftpUtils.decryptFile(Sipdroid.cryptElliptic.getCS(), Sipdroid.cryptElliptic.getSK()); crypto_decrypt_content.setText(decrypt_content); CharSequence text = "Giải mã thành công"; Toast toast = Toast.makeText(context, text, duration); toast.show(); } else { CharSequence text = "Kết nối không thành công"; Toast toast = Toast.makeText(context, text, duration); toast.show(); } } } }); } }

Ngày đăng: 23/09/2020, 20:56

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w