1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ TRUYỀN THÔNG Báo Cáo Bài Tập Lớn Nhóm 10 Thông Tin Di Động ĐỀ TÀI Thiết kế phần mềm thu thập, xử lý, đóng gói dữ liệu để truyền qua module SIM về server[.]
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ TRUYỀN THÔNG
Thông Tin Di Động
ĐỀ TÀI:
Thiết kế phần mềm thu thập, xử lý, đóng gói dữ
liệu để truyền qua module SIM về server
SVTH: Nguyễn Sĩ Anh ĐT1-K56 20111124
Nguyễn Việt Đức CNĐT1-K56 20115524
Nguyễn Tuấn Anh CNĐT1-K56 20115445
Giang Quang Đạt 20111371
Trịnh Văn Minh 20101899 GVHD: TS.Trần Quang Vinh
Hà Nội 12/2015
Trang 2Table of Contents
I TỔNG QUAN ĐỀ TÀI 3
1.1 Lời nói đầu 3
1.2 Giới thiệu hệ thống 3
II YÊU CẦU HỆ THỐNG VÀ KẾ HOẠCH THỰC HIỆN 4
2.1 Yêu cầu chức năng 4
2.2 Yêu cầu phi chức năng 5
2.3 Sơ đồ khối 5
2.4 Phân công nhiệm vụ thực hiện đề tài .6
III SƠ LƯỢC VỀ LẬP TRÌNH SOCKET TRÊN LINUX 7
3.1 Mô hình client – server 7
3.2 Các bước thiết lập socket 7
3.2.1 Phía Client 7
3.2.2 Phía Server 7
IV PHÂN TÍCH CHI TIẾT CÁC KHỐI 8
4.1 Định dạng bản tin giao tiếp giữa thiết bị và Server 8
4.2 Thuật toán mã hoá bảo mật DES 11
4.2.1 Giới thiệu 11
4.2.2 Mô tả thuật toán 11
4.2.3 Ưu nhược điểm 15
V THỰC HIỆN VÀ KẾT QUẢ 16
VI KẾT LUẬN 16
TÀI LIỆU THAM KHẢO 17
Trang 3I TỔNG QUAN ĐỀ TÀI
1.1 Lời nói đầu
Hệ thống thông tin di động là một trọng những hệ thống viễn thông phát triển nhanh và mạnh nhất hiện nay Qua từng thế hệ mạng di động, sự phát triển của cơ sở
hạ tầng mạng, sự hiện đại của các thiết bị di động, số lượng người dùng đã phát triển rất nhanh chóng Chất lượng hệ thống mạng di động cũng ngày càng được nâng cao Thông tin di động là môn học cung cấp cho sinh viên những kiến thức nền tảng nhất về hệ thống thông tin di động và những hiểu biết quan trọng trong việc tìm hiểu
và nghiên cứu những công nghệ mạng thông tin di động tiên tiến
Hiện nay, các ứng dụng khai thác hạ tầng mạng thông tin di động và mạng Internet sẵn có đang phát triển mạnh mẽ Một số ứng dụng thực tế có thể kể ra như: Hệ thống thu thập dữ liệu từ môi trường, hệ thống điều khiển thiết bị, hệ thống giám sát, cảnh báo từ xa,… Trong các ứng dụng này thường sử dụng modul SIM để truyền dữ liệu (SMS/DATA) qua hạ tầng mạng thông tin di động Bài tập lớn môn Thông tin di động yêu cầu sinh viên tìm hiểu, thiết kế và thực hiện một phần công việc trong các hệ thống nêu trên, nhằm củng cố và nắm chắc kiến thức chung về hệ thống thông tin di động, áp dụng kiến thức đã học vào giải quyết một bài toán cụ thể trong thực tế
Nhóm xin cảm ơn TS Trần Quang Vinh đã hướng dẫn chúng em hoàn thành bài tập lớn môn học này!
1.2 Giới thiệu hệ thống
Bài toán thiết kế, chế tạo hệ thống giám sát, thu thập, và xử lí thông tin sử dụng modul SIM
Trang 4Hình 1 Bài toán thông tin di động trong thực tế
Hình vẽ trên mô tả một hệ thống thông tin di động có tính ứng dụng và điển hình trong thực tế Trọng tâm của bài toán là giao tiếp cảm biến – Server – người dùng thông qua hệ thống thông di động
Nội dung bài toán bao gồm nhiều mảng kiến thức, từ thu thập đóng gói dữ liệu, thiết kế phần cứng, lập trình server, android, bảo mật thông tin…
Dựa trên gợi ý đề tài của giảng viên, nhóm đã chọn đề tài 1: (Protocol) Thiết kế
phần mềm thu thập, xử lý, đóng gói dữ liệu để truyền qua module SIM về server
Nhóm có kết hợp và sử dụng server của nhóm làm Thiết kế phần mềm nhận và
xử lý gói dữ liệu từ module SIM về server để hoàn thành đề tài
II YÊU CẦU HỆ THỐNG VÀ KẾ HOẠCH THỰC HIỆN
2.1 Yêu cầu chức năng
• Thiết kế phần mềm thu thập xử lý và định dạng dữ liệu
Trang 5• Phát triển giao thức truyền thông phù hợp với thiết bị định vị giám sát công suất thấp
• Viết phần mềm gửi dữ liệu (client), giả lập server hoặc sử dụng server ở đề tài 3
2.2 Yêu cầu phi chức năng
• Đảm bảo đúng khuôn dạng gói tin theo chuẩn dữ GPRS
• Hệ thống đảm bảo chuẩn xác tính xác thực của thiết bị (Client) và của Server bằng việc kiểm tra mã xác thực của thiết bị và Server
• Sử dụng lập trình C Socket trên nền tảng Linux (Ubuntu) để mô phỏng quá trình đóng gói và gửi giữ liệu từ module SIM về server
• Hệ thống đảm bảo tính an toàn bảo mật thông tin khi truyền nhận dữ liệu giữa thiết bị và server
• Trong đề tài, nhóm đã sử dụng thuật toán mã hoá DES cho việc mã hoá bảo mật dữ liệu
2.3 Sơ đồ khối
Hình 2 Sơ đồ khối hệ thống
Trang 6• Trước khi được gửi về Server, dữ liệu được đóng gói theo chuẩn của gói tin GPRS và được mã hoá bằng thuật toán mã hoá bảo mật DES
• Dữ liệu sau mã hoá được gửi về Server, đầu tiên là bản tin xác thực Server xác thực thiết bị và gửi lại bản tin xác thực Server cho thiết bị
• Thiết bị gửi bản tin dữ liệu về Server, Server nhận và xử lí bản tin
2.4 Phân công nhiệm vụ thực hiện đề tài
Bảng 1 Kế hoạch thực hiện đề tài
Nội dung Thành viên Cài đặt hệ điều hành Linux (Ubuntu), tìm hiểu
lập trình C Socket trên GNU Linux
Sĩ Anh, Đức, Tuấn Anh, Minh , Đạt
Xây dựng sơ đồ khối, phân chia công việc,ghép
Tìm hiểu thuật toán mã hoá dữ liệu và thuật toán
mã hoá bảo mật DES Sĩ Anh, Việt, Tuấn Anh Tìm hiểu và xây dựng định dạng cấu trúc gói tin
theo chuẩn GPSR Minh , Đạt
Trang 7III SƠ LƯỢC VỀ LẬP TRÌNH SOCKET TRÊN LINUX
3.1 Mô hình client – server
3.2 Các bước thiết lập socket
3.2.1 Phía Client
• Tạo một socket bằng hàm socket()
• Kết nối socket đến địa chỉ của server bằng hàm connect()
• Gửi và nhận dữ liệu: Có một số cách khác nhau, đơn giản nhất là sử dụng
các hàm read() và write()
• Đóng kết nối bằng hàm close()
3.2.2 Phía Server
• Tạo một socket bằng hàm socket()
• Gắn (bind) socket đến địa chỉ của server sử dụng hàm bind()
Đối với server trên internet địa chỉ bao gồm địa chỉ ip của máy host + số hiệu cổng dịch vụ (port number)
• Lắng nghe (listen) các kết nối đến từ clients sử dụng hàm listen()
• Chấp nhận các kết nối sử dụng hàm accept() Hàm này sẽ dừng (block) cho
đến khi nhận được một client kết nối đến
• Gửi và nhận dữ liệu với client (hàm read(), write())
• Đóng kết nối bằng hàm close()
Trang 8IV PHÂN TÍCH CHI TIẾT CÁC KHỐI
4.1 Định dạng bản tin giao tiếp giữa thiết bị và Server
Center và MS trao đổi thông tin với nhau bằng các gói tin Các gói tin có thể là gói TCP/UDP hoặc SMS Các gói tin trao đổi giữa Center và MSID là Text Kích thước toàn bộ gói tin không được lớn hơn 1KB Với gói tin SMS, kích thước tối đa của gói tin SMS là 160 byte
Mỗi gói tin có hai phần, gồm HEADER và phần MESSAGE:
Tranmistion Packet
Header bao gồm:
SIGN: 4bytes kí hiệu bắt đầu gói tin, có giá trị là “TTDD”
SIZE: 3bytes: Tổng kích thước của gói tin, bằng kích thước HEADER cộng với
kích thước của phần dữ liệu
Bảng 2 Cấu trúc gói tin trao đổi giữa thiết bị và Server
STT Tên trường Mô tả Độ dài Giá trị
mặc định
1 SIGN Đánh dấu bắt đầu gói tin 4 “TTDD”
2 SIZE Tổng kích thước gói tin, thể hiện
dưới dạng kí tự HEXA
3
3 MESSAGE Phụ thuộc vào loại dữ liệu Thay đổi
6 Tổng cộng Nội dung của MESSAGE đã được
Encrypt bằng DES Sau khi mã
7+Kích thước
HEADER
MESSAGE (Text Only-AES Encode)
Trang 9hóa xong thì đã ở dạng text MESSAGE
Sơ đồ xử lí gói tin
Mô tả:
• Secure_encrypt (option): Mã hoá khối DES dữ liệu cần gửi đi với khoá là
“01234567”, khoá mã hoá ở Client và khoá giải mã ở Server phải như nhau Mã này tuỳ thuộc vào đối tượng sử dụng
Trong đề tài, nhóm sử dụng 2 bản tin cho việc truyền nhận dữ liệu: bản tin xác thực và bản tin mang dữ liệu cần gửi đi Về cấu trúc, 2 bản tin này có các trường tương tự nhau nhưng nội dung các trường khác nhau, độ dài tối đa là 1000 bytes
Trang 10• Bản tin xác thực có SIGN là “REQT” (request) và phần dữ liệu chứa “KEY” đại diện cho thiết bị và là thông tin xác thực thiết bị
4 bytes “REQT” 3 bytes hexa
length of packet KEY
• Bản tin dữ liệu có SIGN là “TTDD” và phần dữ liệu chứa thông tin cần gửi đi
4 bytes “TTDD” length of packet 3 bytes hexa DATA
Sơ đồ thuật toán giao tiếp Socket giữa Client và Server
Hình 3 Sơ đồ thuật toán giao tiếp Socket trong đề tài
Trang 11• Trong đề tài, khi lâp trình Socket sử dụng giao thức TCP đã được hỗ trợ bảo giao thức mạng, ngôn ngữ lập trình C trên Linux(Ubuntu) đã hỗ trợ sẵn giai đoạn bắt tay ba bước khi kết nối Client Server
• Để xác thực được thiết bị và Server, nhóm đã gửi đi bản tin xác thực (sau khi đã được mã hoá với thuật toán DES) Server sẽ kiểm tra ID của thiết bị và gửi lại bản tin xác thực Server cho thiết bị
• Sau khi tính xác thực của cả Client và Server được đảm bảo, 2 bên sẽ tiến hành truyền nhận dữ liệu
4.2 Thuật toán mã hoá bảo mật DES
4.2.1 Giới thiệu
DES (Data Encryption Standard- Chuẩn mã hoá dữ liệu) là một phương pháp mật
mã hóa được FIPS (Chuẩn Xử lý thông tin Liên bang Hoa Kỳ) chọn làm tiêu chuẩn chính thức vào năm 1976 Sau đó tiêu chuẩn này được sử dụng rộng rãi trên phạm vi toàn thế giới
• Đây là chuẩn mã hóa đầu tiên, được sử dụng rộng rãi trên phạm vi toàn thế giới, làm nền tảng cho các thuật toán mã hóa về sau như Triple DES, AES …
• Nhóm đánh giá giá trị thông tin trong đề tài là phù hợp với thuật toán
4.2.2 Mô tả thuật toán
DES là thuật toán mã hóa khối: nó xử lý từng khối thông tin của bản rõ có độ dài xác định – 64 bit và biến đổi theo những quá trình phức tạp để trở thành khối thông tin của bản mã có độ dài không thay đổi DES cũng sử dụng khóa để cá biệt hóa quá trình chuyển đổi Nhờ vậy, chỉ khi biết khóa mới có thể giải mã được văn bản mã Khóa dùng trong DES có độ dài 64 bit nhưng chỉ có 56 bit được sử dụng để thực hiện tính toán giá trị khóa vòng Khóa được chia làm 8 byte Các bit ở vị trí 8, 16, 32, 40,
48, 56 và 64 được sử dụng để kiểm tra độ chính xác của khóa theo từng byte vì khi khóa được phân phối trên đường truyền đến bộ mã hóa giải mã thì có thể xảy ra lỗi
Trang 12a) Sơ đồ khối
Sơ đồ khối tổng quát của thuật toán được thể hiện ở Hình 4: có 16 chu trình giống
nhau trong quá trình xử lý Ngoài ra còn có hai lần hoán vị đầu và cuối (Initial and Final Permutation – IP & FP) Hai quá trình này có tính chất đối nhau, trong quá trình
mã hóa thì IP trước FP, khi giải mã thì ngược lại IP và FP không có vai trò xét về mật
mã học và việc sử dụng chúng chỉ có ý nghĩa đáp ứng cho quá trình đưa thông tin vào
và lấy thông tin ra từ các khối phần cứng Trước khi đi vào 16 chu trình chính, khối thông tin 64 bit được chia làm hai phần 32 bit và mỗi phần sẽ được xử lý tuần tự ( quá trình này được gọi là mạng Feistel)
Trang 13Hình 4 Sơ đồ khối thuật toán mã hoá DES
Thuật toán đảm bảo rằng quá trình mã hóa và giải mã diễn ra tương tự Điểmkhác nhau chỉ ở chỗ các khóa con được sử dụng theo trình tự ngược nhau Điều này giúp cho việc thực hiện thuật toán trở nên đơn giản, đặc biệt khi thiết kế phần cứng
Ký hiệu thể hiện phép toán XOR Hàm F làm biến đổi một nửa của khối đang xử lý với một khóa con Đầu ra sau hàm F được kết hợp với nửa còn lại của khối
và hai phần được tráo đổi để xử lý trong chu trình kế tiếp Sau chu trình cuối cùng thì
2 nửa không bị tráo đổi; đây là đặc điểm của cấu trúc Feistel khiến cho quá trình mã hóa và giải mã trở nên giống nhau
b) Hàm Feistel (F):
Hình 5 Hàm F dùng trong DES
Hàm F, như được miêu tả tron hình 2, hoạt động trên khối 32 bit và bao gồm 4 giai đoạn:
Trang 141 Mở rộng: 32 bit đầu vào được mở rộng thành 48 bit sử dụng thuật toán hoán vị
mở rộng với việc nhân đôi một số bit Giai đoạn này được kí hiệu la E trong sơ
đồ
2 Trộn khóa: 48 bit thu được sau quá trình mở rộng được XOR với khóa con 16 khóa con 48 bit được tạo ra từ khóa chính 56 bit theo một chu trình tạo khóa con
3 Thay thế: 48 bit sau khi trộn được chia làm 8 khối con 6 bit và được xử lý qua hộp thay thế S-box Đầu ra của mỗi khối 6 bit là một khối 4 bit theo một chuyển đổi phi tuyến được thực hiện bằng một bảng tra Khối S-box đảm bảo phần quan trọng cho độ an toàn của DES Nếu không có S-box thì quá trình sẽ
là tuyến tính và việc thám mã rất đơn giản
4 Hoán vị: Cuối cùng, 32 bit thu được sau S-box sẽ được sắp xếp lại theo 1 thứ
tự cho trước( còn gọi là P-box)
Quá trình luân phiên sử dụng S-box và sự hoán vị các bit cũng như quá trình mở rộng đã thực hiện được tính chất gọi là sự xáo trộn và khuếch tán Đây là yêu cầu cần có của một thuật toán mã hóa
c) Quá trình tạo khoá con
Hình 6 mô tả thuật toán tạo khóa con cho các chu trình Đầu tiên, từ 64 bit ban đầu của khóa, 56 bit được chọn (Permuted Choice 1, PC-1), 8 bit còn lại bị loại bỏ
56 bit thu được được chia làm hai phần bằng nhau, mỗi phần được xử lý độc lập Sau mỗi chu trình, mỗi phần được dịch đi 1 hoặc 2 bit( tùy thuộc từng chu trình, nếu
đó là chu trình 1,2,9,16 thì dịch 1 bit, còn lại sẽ được dịch 2 bit) Các khóa con 48 bit được tạo thành bởi thuật toán lựa chọn 2 ( Permuted Choice 2, PC-2), gồm 24 bit
từ mỗi phần được cho qua một bảng hoán vị Quá trình dịch bit ( được kí hiệu là
“<<<” trong sơ đồ) khiến cho các khóa con sử dụng các bit khác nhau của khóa chính, mỗi bit được sử dụng trung bình ở 14 trong tổng số 16 khóa con
Trang 15Quá trình tạo khóa con khi thực hiện giải mã cũng diễn ra tương tự nhưng các khóa con được tạo theo thứ tự ngược lại Ngoài ra sau mỗi chu trình, khóa sẽ được dịch phải thay vì dịch trái như khi mã hóa
Hình 6 Quá trình tạo khóa con trong DES
4.2.3 Ưu nhược điểm
a Ưu điểm:
- Có tính bảo mật cao
- Công khai, dễ hiểu
Trang 16- Có thể triển khai trên các thiết bị điện tử có kích thước nhỏ
b Nhược điểm:
- Tính bù: nếu ta biết được mã y được mã hóa từ thông tin x với khóa k thì suy ra được bản mã 𝑦̅ được mã hóa từ bản rõ 𝑥̅ với khóa 𝑘̅ Tính chất này là một điểm yếu của DES vì qua đó có thể loại bỏ đi một số khóa phải thử khi tiến hành giải mã theo kiểu vét cạn
- Khóa yếu: Khóa yếu là các khóa mà theo thuật toán sinh khóa con thì tất cả
16 khóa con đều như nhau, điều đó khiến cho việc mã hóa và giải mã đối với khóa yếu là giống nhau
- Không gian khóa K là không lớn, có 256=1017 khóa, hoàn toàn có thể tìm khóa bằng phương pháp vét cạn trong thời gian chưa đến 1 ngày, nhất là với tốc độ máy tính ngày càng nhanh như hiện nay
V THỰC HIỆN VÀ KẾT QUẢ
Qua quá trình tìm hiểu và phân tích, nhóm đã thực hiện đề tài trên ngôn ngữ lập trình C trên hệ điều hành Ubuntu, và đạt những kết quả sau:
• Nhóm đã chạy được các thuật toán: mã hoá DES, thuật toán binary-text encoding Base85
• Ghép nối thành công thuật toán mã hoá và giải mã DES vào hệ thống hoàn chỉnh
• Tuy nhiên khi ghép nối Base85 thì quá trình giải mã xảy ra lỗi và chưa giải mã được, vì vậy trong kết quả demo không có sự tham gia của thuật toán này
VI KẾT LUẬN
Mặc dù chưa thể chạy hoàn chỉnh được hệ thống như mong muốn, tuy nhiên nhóm
đã thực hiện được những yêu cầu cơ quan trọng của đề tài là đảm bảo tính xác thực và bảo mật dữ liệu
Do còn chưa có kinh nghiệm và chưa có kiến thức đầy đủ về hệ thống thông tin di động nên việc thực hiện đề tài còn nhiều sai sót, đó là điều không thể tránh khỏi