Bài thi cuối kì môn ANM 0 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA VIỄN THÔNG 1 TIỂU LUẬN CÁC THUẬT TOÁN MÃ HÓA TRONG MẠNG RIÊNG ẢO VPN Bài thi cuối kì môn ANM i MỤC LỤC MỤC LỤC i BẢNG PHÂN[.]
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG 1
Trang 2
MỤC LỤC
MỤC LỤC……….… …i
BẢNG PHÂN CÔNG CÔNG VIỆC……… iii
DANH MỤC THUẬT NGỮ VIẾT TẮT……….………… iv
DANH MỤC BẢNG BIỂU VÀ HÌNH VẼ……… …… v
LỜI CẢM ƠN……….………vi
LỜI MỞ ĐẦU……….……… vii
I TỔNG QUAN VỀ VPN……… 1
1.1 Tổng quan……… ……… 1
1.2 Khái niệm……….……… 1
1.3 Đường hầm và mã hóa ……….1
1.3.1 Đường hầm (Tunnel)……….….…………2
1.3.2 Mã hoá và giải mã (Encryption/Decryption) ……….………2
1.4 Chức năng của mạng riêng ảo VPN……… 3
II CÁC THUẬT TOÁN MÃ HÓA ĐƯỢC SỬ DỤNG TRONG VPN……….3
2.1 Thuật toán mã hóa AES……….3
2.1.1 Giới thiệu……… 3
2.1.2 Các tham số AES ……….4
2.1.3 Mật mã hóa và giải mã AES………4
2.1.3.a Qúa trình mật mã hóa……….… 5
2.1.3.b Qúa trình giải mã……….…….5
2.2 Thuật toán mã hóa RSA ……….6
2.2.1 Giới thiệu ………6
2.2.2 Mô tả thuật toán……… ………7
2.2.2.a Sinh khóa……….….7
2.2.2.b Mã hóa……….…………7
2.2.2.c giải mã……….…….……8
2.2.3 Ưu, nhược điểm của thuật toán………8
2.3 Giải thuật băm SHA ……….… 9
2.3.1 Hàm băm ……….9
2.3.1.a Cơ chế hoạt động………9
2.3.1.b Tính chất hàm băm……….…10
2.3.1.c Cách áp dụng hàm băm trong trong việc xác thực bản tin ……… 10
2.3.1.d Các hàm hash……….…11
2.3.2 Giải thuật băm SHA ……….11
2.3.2.a Khái niệm….……… 11
2.3.2.b Các hàm hash SHA……….…11
Trang 3III MÔ HÌNH THỰC NGHIỆM ……….………… 12
3.1 Kịch bản Site-to-site VPN ……….……….….… 12
3.2 Bảng địa chỉ chi tiết cho mô hình mạng Site-to-site VPN ……….….… 12
3.3 Các bước triển khai……….….……13
IV KẾT LUẬN……… … ….18
DANH MỤC TÀI LIỆU THAM KHẢO……….… 19
Trang 5DANH MỤC THUẬT NGỮ VIẾT TẮT
AES Advanced Encryption
Standard
Tiêu chuẩn mã hóa nâng
cao IETF Internet Engineering Task
Association and Key Management Protocol
Hiệp hội bảo mật Internet
và giao thức quản lý
khóa ISP Internet Service Provider Nhà cung cấp dịch vụ
Internet
L2F Layer 2 Forwarding Giao thức chuyển tiếp
lớp 2 L2TP Layer 2 Tunneling Protocol Giao thức đường hầm
lớp 2 LAN Local Area Network Mạng cục bộ
OSI Open Systems
SA Secure Associate Liên kết an toàn SHA Secure Hash Algorithm Giải thuật băm an toàn SSL / TLS Secure Sockets Layer/
Transport Layer Security
Lớp Sockets bảo mật / Bảo mật lớp vận chuyển SSTP Secure Socket Tunneling
Protocol
Giao thức đường hầm ổ cắm bảo mật TCP/IP Transmission Control
Protocol/Internet Protocol
Bộ giao thức Internet
VPN Virtual Private Network Mạng riêng ảo WAN Wide Are Network Mạng diện rộng
Trang 6DANH MỤC BẢNG VÀ HÌNH VẼ
DANH MỤC HÌNH
Hình 1: Mô hình mạng riêng ảo VPN……… ….……1
Hình 2: Đường hầm và mã hóa trong VPN……….2
Hình 3: Sơ đồ mật mã và giải mật mã AES……….…5
Hình 4: Mô tả RSA – mã hóa bất đối xứng……….7
Hình 5: Quá trình xử lý của RSA và ví dụ minh họa ……….9
Hình 6: Sử dụng hàm băm để kiểm tra tính xác thực của dữ liệu……… 11
Hình 7: Tính chất hàm băm……… 11
Hình 8: E (K, [M || H(M)])……….…… 12
Hình 9: E(K, H(M))………12
Hình 10: Không mật mã hóa………12
Hình 11: E(K, [M || H(M || S)])……… 12
Hình 12: Topo của mô hình VPN site to site………14
DANH MỤC BẢNG Bảng 1: Đặc trưng của AES……… 4
Bảng 2: Các tham số của AES……….……….……….4
Bảng3: Các hàm hash SHA……….……….…13
Bảng 4: Địa chỉ của các PC……….14
Bảng 5: Địa chỉ của các Router Gateway……….14
Trang 7LỜI CẢM ƠN
Em là Nguyễn Thái Bảo nhóm trưởng nhóm 11, em xin chân thành cảm ơn cô giáo TS.Phạm Anh Thư, giảng viên môn học An Ninh Mạng Viễn Thông, bộ môn Mạng Viễn Thông, Khoa Viễn Thông 1 đã giảng dạy truyền đạt cho chúng em những kiến thức
bổ ích của môn học cũng như đã hướng dẫn, đồng ý cho nhóm em lựa chọn đề tài tiểu luận để chúng em hoàn thành môn học một cách tốt nhất qua đó nhóm em có thể thoải mái nêu ra quan điểm, triển khai nội dung cũng như lập luận về đề tài mà nhóm em chọn, giúp cho nhóm em có thể hoàn thành tốt bài tiểu luận này. Em cũng xin cảm ơn các bạn thành viên trong nhóm Nguyễn Thế Hoàng, Vũ Công Đông đã rất tâm huyết cùng em tìm hiểu, khai triển và hoàn thành rất tốt các nội dung tiểu luận
Nhóm em xin chân thành cảm ơn !
Trang 8LỜI MỞ ĐẦU
Cùng với sự phát triển của công nghệ thông tin, công nghệ mạng máy tính và đặc biệt là mạng Internet ngày càng phát triển đa dạng và phong phú Các dịch vụ trên mạng Internet đã xâm nhập vào hầu hết các lĩnh vực trong đời sống xã hội Các thông tin trao đổi trên Internet cũng đa dạng cả về nội dụng lẫn hình thức, trong đó có rất nhiều thông tin cần bảo mật cao bởi tính kinh tế, chính xác và tin cậy của nó
Bên cạnh đó, những dịch vụ mạng ngày càng có giá trị, yêu cầu phải đảm bảo tính bảo mật và an toàn cao Tuy nhiên các hình thức phá hoại mạng cũng trở lên tinh
vi và phức tạp hơn, do đó đối với mỗi hệ thống, nhiệm vụ đặt ra cho người quản trị là hết sức quan trong và cần thiết Đồng thời do sự xuất hiện của đại dịch COVID-19, nhu cầu ngày càng tăng về việc cung cấp môi trường làm việc an toàn khi làm việc tại nhà, do nhân viên đang dựa vào internet từ nơi làm việc từ xa Xuất phát từ những thực
tế nêu trên, hiện nay trên thế giới đã xuất hiện rất nhiều công nghệ liên quan tới bảo mật thông tin và mạng máy tính, việc nắm bắt những công nghệ này là hết sức cần thiết Một trong số đó là công nghệ Mạng riêng ảo (VPN-Vitual Private Network) Vì
lí do đưa trên chúng em đã lựa chọn đề tài “Các thuật toán mã hóa trong mạng riêng
ảo VPN” với mục tiêu chính của bài tiểu luận là tìm hiểu về mạng riêng ảo VPN; phân
tích, đánh giá đặc điểm, hoạt động của các thuật toán mã hóa được sử dụng chủ yếu trong mạng riêng ảo VPN
Trang 9I TỔNG QUAN VỀ VPN
1.1 Tổng quan
Mạng Internet là mạng công cộng có phạm vi toàn cầu và không một tổ chức, chính phủ cụ thể nào quản lý nên rất khó khăn trong việc bảo mật và an toàn dữ liệu cũng như trong việc quản lý các dịch vụ Từ đó người ta đã đưa ra một công nghệ mạng mới nhằm thoã mãn những yêu cầu trên mà vẫn có thể tận dụng lại những cơ sở hạ tầng hiện có của Internet, đó chính là mô hình mạng riêng ảo (Virtual Private Network – VPN )
1.2 Khái niệm
Mạng riêng ảo VPN được định nghĩa là “sự mở rộng” của một mạng riêng thông qua các mạng công cộng Mỗi VPN là một mạng riêng lẻ sử dụng một mạng chung để kết nối cùng với các site (các mạng riêng lẻ) hay nhiều người sử dụng từ xa Thay cho việc sử dụng kết nối thực, chuyên dùng như kênh thuê riêng, mỗi VPN sử dụng các kết nối ảo được truyền qua Internet từ mạng riêng của các công ty tới các site hay các nhân viên từ xa
Hình 1: Mô hình mạng riêng ảo VPN
Những thiết bị hỗ trợ cho mạng riêng ảo là Bộ chuyển mạch, Bộ định tuyến và Tường lửa
Những thiết bị này có thể được công ty hoặc các nhà cung cấp dịch vụ như ISP quản lý VPN được gọi là mạng ảo vì đây là một cách thiết lập một mạng riêng qua một mạng công cộng sử dụng các kết nối tạm thời Sự mở rộng của VPN được thực hiện bằng cách sử dụng “Đường hầm” và “Mã hoá” VPN có chức năng chính là truyền các thông tin đã được mã hoá trong một đường hầm dựa trên hạ tầng mạng được chia sẻ
1.3 Đường hầm và mã hóa
Để có thể gửi và nhận dữ liệu thông qua mạng công cộng mà vẫn bảo đảm tính an toàn và bảo mật VPN cung cấp các cơ chế mã hoá dữ liệu trên đường truyền tạo ra một đường hầm bảo mật giữa nơi nhận và nơi gửi (Tunnel) giống như một kết nối point-to-point trên mạng riêng
Trang 10Hình 2: Đường hầm và mã hóa trong VPN
• IP Sec (Internet Protocol Security)
• PPTP (Point-to-Point Tunneling Protocol):
• L2F (Layer 2 Forwarding):
• L2TP (layer 2 Tunneling Protocol):
• SSTP (Secure Socket Tunneling Protocol):
• IKEv2 (Internet Key Exchange version 2):
• OpenVPN
• WỉreGuard
1.3.2 Mã hoá và giải mã (Encryption/Decryption)
Khi thông tin được lưu trữ trên mạng càng nhiều thì sự cần thiết đối với việc mã hoá thông tin càng trở nên quan trọng Mã hóa là quá trình biến đổi nội dung ban đầu ở dạng đọc được (Clear Text hay Plain Text) thành một dạng văn bản mật mã vô nghĩa không đọc được (Cypher Text) nên những người dùng không được phép sẽ không thể đọc được Còn giải mã là quá trình ngược lại của mật mã hoá, tức là biến đổi văn bản đã
mã hoá thành dạng đọc được bởi những người dùng được cho phép
Các thuật toán được sử dụng trong mã hóa thông tin là:
• DES (Data Encryption Standard)
• 3DES (Triple Data Encryption Standard)
• AES (Advanced Encryption Standard)
• SHA (Secure Hash Algorithm): giải thuật băm SHA
• RSA (Rivest-Shamir-Adleman): thuật toán mã hóa công khai RSA
Trang 111.4 Chức năng của mạng riêng ảo VPN
VPN có 3 chức năng chính
• Tính bảo mật (Confidentiality): Người gửi có thể mã hoá các nội dung trước khi truyền chúng qua mạng Internet Bằng cách này, kẻ xâm nhập không thể truy nhập để lấy thông tin mà không được sự cho phép, mà nếu lấy được thông tin thì cũng không đọc được vì thông tin đã được mã hoá
• Tính toàn vẹn dữ liệu (Data Integrity): Người nhận có thể kiểm tra dữ liệu truyền qua mạng có bị thay đổi hay không ?
• Chứng thực nguồn gốc (Origin Authentication): Người nhận có thể chứng thực nguồn gốc của thông tin, đảm bảo và công nhận nguồn dữ liệu
II CÁC THUẬT TOÁN MÃ HÓA ĐƯỢC SỬ DỤNG TRONG VPN
Trong công nghệ mạng riêng ảo VPN sử dụng rất nhiều loại thuật toán mật mã hóa như DES, 3DES, AES, RSA, SHA, SEAL, RC, Blowfish, Serpent,… Do giới hạn bài báo cáo nên nhóm em chỉ nêu một số thuật toán mã hóa, chứng thực tiêu biểu như AES, RSA, SHA
2.1.1 Giới thiệu
Vào những năm 1990, nhận thấy nguy cơ của mật mã hóa DES là kích thước khóa ngắn, có thể bị phá mã trong tương lai gần (nếu phá khóa DES mất 1 giây cho mỗi khóa, thì phải mất 149 tỉ năm đối với AES), Cục tiêu chuẩn quốc gia Hoa Kỳ đã kêu gọi xây dựng một phương pháp mật mã hóa mới Cuối cùng một thuật toán có tên
là Rijndael được chọn và sau đó đổi tên thành Advanced Encryption Standard (AES)
Bảng 1: Đặc trưng của AES
Mô tả Advanced Encryption Standard
Thời gian phát hành Hoa Kỳ: 26/11/2001
Việt Nam: 2007
Độ dài khóa (bit) 128, 192 hoặc 256
Kích thước khối bản rõ (bit) 128
Thời gian phá khóa 149 tỉ năm
Phù hợp với nhiều ứng dụng
Dễ dàng triển khai
Trang 12Ứng dụng Tạo mật mã dòng, số ngẫu nhiên, hàm
băm, mã xác thực bản tin MAC,…
2.1.2 Các tham số AES
Bảng 2: Các tham số đặc trưng của AES
Kích thước khóa (từ/byte/bit) 4/16/128 6/24/192 8/32/256 Kích thước khối bản rõ (từ/byte/bit) 4/16/128 4/16/128 4/16/128
2.1.3 Mật mã hóa và giải mã AES
Hình 3: Sơ đồ mật mã và giải mật mã AES
Trang 132.1.3.a Qúa trình mật mã hóa
Sơ đồ mật mã gồm 10 vòng (gồm 11 khóa con) Số vòng phụ thuộc vào độ dài khóa (xem bảng …)
• 9 vòng đầu bao gồm bốn hàm biến đổi: SubBytes, ShiftRows, MixColumns
và AddRoundKey
• Vòng cuối cùng (vòng 10) chỉ bao gồm 3 phép biến đổi
Bước 1: Khởi động vòng lặp (Round 0)
Khối bản rõ đầu vào (128 bit) được sắp xếp thành các ma trận vuông 4x4 và được đưa qua khối AddRoundKey Khối này thực hiện phép XOR khối bản rõ đầu vào
và một phần khóa mở rộng (khóa con thứ 1) Kết quả thực hiện phép XOR này được cung cấp cho vòng lặp thứ nhất (Round 1)
Khóa mở rộng được tạo ra khi đưa Khối khóa 16 byte đã được sắp xếp thành ma trận vuông 4x4 vào Bộ mở rộng khóa Bộ mở rộng khóa tạo đầu ra gồm một mảng tuyến tính 44 từ (176 byte) Đầu ra của bộ mở rộng khóa đủ để cung cấp khóa cho các vòng lặp: 11 khóa, mỗi khóa 4 từ (16 byte)
Bước 2: Vòng lặp (Round 1 – Round 9)
Trong mỗi vòng lặp, một phép hoán vị và ba phép thay thế được sử dụng:
• SubBytes(): sử dụng S-box để thực hiện thay thế các byte của khối đầu vào
• ShiftRows(): đây là một phép hoán vị đơn giản, thực hiện dịch vòng 3 hàng cuối của mảng
• MixColumns(): Mỗi cột được chuyển đổi tuyến tính bằng cách nhân với một ma trận
• AddRoundKey(): tương tự như bước khởi động vòng lặp, với mỗi vòng lặp bản text mới thu được sẽ được XOR với một khóa con khác nhau
Bước 3: Vòng lặp cuối (Round 10)
Vòng lặp cuối cùng chỉ thực hiện 3 phép biến đổi là SubBytes, ShiftRow và AddRoundKey Đầu ra của vòng lặp cuối cùng sẽ là ma trận 4x4, sau được được sắp xếp lại thành bản mã (16 byte)
2.1.3.b Qúa trình giải mã
Quá trình mã hóa và giải mã AES giống nhau và nó cũng bắt đầu với chức năng AddRoundKey Bản mã 16 byte ở dạng ma trận 4x4 được XOR với khóa có 4 từ (16 byte) duy nhất
Chuỗi khóa trong mã hóa được đảo ngược trong quá trình giải mã Và tất cả các phép biến đổi trong mỗi vòng lặp cũng được đảo ngược trong quá trình giải mã để giải
mã ra khối bản rõ 16 byte ban đầu
Trang 142.2 Thuật toán mã hóa RSA
2.2.1 Giới thiệu
Trao đổi khóa công khai RSA là một thuật toán mã hóa bất đối xứng RSA có thể được sử dụng cho các dịch vụ như chữ ký điện tử, trao đổi khóa và cho các mục đích
mã hóa Việc cung cấp RSA được sử dụng với một khóa dài, nó đã được chứng minh
là một thuật toán rất an toàn và cung cấp cả xác thực và mã hóa
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 RSA lấy
từ 3 chữ cái đầu của tên 3 tác giả
Hình 4: Mô tả RSA – mã hóa bất đối xứng
Giống như Diffie-Hellman, sử dụng RSA yêu cầu cặp khóa công khai và khóa riêng tư để mã hóa và giải mã dữ liệu qua internet Mục đích chính của việc sử dụng mật mã khóa công khai là cung cấp một giải pháp có thể mở rộng và an toàn để trao đổi khóa một cách an toàn qua internet Các thiết bị cổng VPN cũng như các dịch vụ khác như trang web cần giao tiếp và đồng ý về một khóa sử dụng trên internet được sử dụng để mã hóa và giải mã dữ liệu, có thể dễ dàng bị tin tặc đánh cắp và đánh cắp Vì
lý do này, đó là lý do tại sao cơ chế khóa công khai và khóa riêng tư (Không đối xứng) được đưa ra để các thực thể có thể đồng ý một cách an toàn về khóa đối xứng qua internet mà các khóa này không bị xâm phạm
Thuật toán RSA dựa trên độ khó của việc tính các số lớn thành hai thừa số
nguyên tố Nó dựa trên một hàm băm một chiều, trong đó dễ dàng nhân hai số để có kết quả đầu ra hoặc giá trị, tuy nhiên, việc sử dụng đầu ra hoặc giá trị này để tính ra hai số nguyên tố ban đầu là cực kỳ khó Nói một cách tương tự hàm băm, thật dễ dàng
để đi theo một chiều từ một điểm hoặc giá trị, nhưng rất khó đảo ngược hoặc đi ngược lại để hoàn nguyên về điểm hoặc giá trị ban đầu
RSA được sử dụng phổ biến nhất trong việc thiết lập phiên SSL / TLS - và bởi giao thức OpenVPN (và đôi khi là IKEv2) để bảo mật cho quá trình bắt tay TLS.Nếu một nhà cung cấp VPN sử dụng giao thức OpenVPN hoặc SSTP để thiết lập một đường hầm bảo mật giữa khách và các máy chủ VPN, điều này có nghĩa là máy khách VPN đang sử dụng các khóa RSA để bảo mật bắt tay TLS
RSA được chia làm 3 loại chính:
Trang 15• RSA-1024: đã bị NSA (Cơ quan an ninh quốc gia Hoa Kỳ) bẻ khóa vào năm
2010
• RSA-2048: Đây được coi là mật mã khá an toàn và hiện là mặc định thông thường cho phần lớn các nhà cung cấp VPN Giao thức OpenVPN sử dụng RSA trên kênh điều khiển để chuyển qua các khóa đối xứng cần thiết cho mã hóa AES được sử dụng trên kênh dữ liệu Để việc bắt tay đó được an toàn, kích thước khóa RSA phải tối thiểu là 2048 bit
• RSA-3072: Nhiều nhà cung cấp VPN ngày nay sử dụng khóa RSA-3072 thậm chí mạnh hơn là 4096-bit, nhưng hầu hết các chuyên gia không coi điều này là cần thiết cho mục đích bảo mật
2.2.2 Mô tả thuật toán
Hoạt động của RSA dựa trên 4 bước chính: sinh khóa, chia sẻ khóa , mật mã hóa
và giải mật mã Giả sử Alice và Bob cần trao đổi thông tin bí mật thông qua một kênh không an toàn (ví dụ như qua Internet) Thuật toán RSA được mô tả qua các bước:
2.2.2.a Sinh khóa
Sinh khóa làm nhiệm vụ tìm kiếm một bộ 3 số tự nhiên e d n thỏa mãn công thức: M ed = M mod n (M là bản rõ)
• Chọn 2 số nguyên tố khá lớn (>1024bit) p và q, p ≠ q
• Lấy tích số: n = p.q, n được gọi là modulo mã hóa
• Chọn số e sao cho: 1< e < pq, e và (p-1)(q-1) nguyên tố cùng nhau (vậy e phải chọn là một số lẻ) e được gọi là số mũ mã hóa
• Tính số d sao cho tích số e.d ≡ 1[mod(p-1)(q-1)] có nghĩa là tích số e.d chia cho tích số (p-1)(q-1) có số dư là 1, hay là e.d-1 chia hết cho (p-1)(q-1) Ta dùng phương pháp thử dần các số nguyên X sao cho có được: d = [X(p-1)(q-1) +1]/e là số nguyên d được gọi là số mũ giải mã
Khóa công khai KU A gửi cho B (qua đường thông tin bất kỳ) là cặp số (e, n)
Khóa bí mật KR A giữ cho riêng mình là cặp số (d, n)
2.2.2.b Mã hóa
Bob nhận được khóa công khai của Alice gửi Bob có thông điệp gốc (plaintext)
M (thông điệp đã được số hóa, M thực ra là một con số dạng nhị phân được đổi thành
số thập phân nào đó) cần gửi cho Alice
Bob mã hóa bằng phép toán: e.M mod n = C; M = plaintext, C = ciphertext Phép toán “lũy thừa theo modulo” có nghĩa là lấy M lũy thừa e rồi chia cho n và lấy số dư Việc mã hóa thực hiện theo công thức:
Phương án 1, mã hóa bảo mật: C = E(M,KU) = Me mod n
Phương án 2, mã hóa chứng thực: C = E(M,Kr) = Md mod n
Bob gửi thông điệp mã hóa C cho Alice