Tài liệu trình bày lý thuyết chi tiết, cơ bản về giao thức trao đổi khóa DiffieHellman. Đánh giá so sanh các phiên bản giao thức DiffieHellman. Từ phiên bản này đưa ra nhận định về độ an toàn của giao thức trên đường cong Elliptic là cao. Và phiên bản X25519 được ứng dụng vào thực tế. Tài liệu cài đặt giao thức X25519 trên nền tảng Qt bằng giao thức lập trình C
Trang 1BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN BƯU CHÍNH VIỄN THÔNG
Trang 2BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN BƯU CHÍNH VIỄN THÔNG
Trang 3MỤC LỤC
Danh mục kí hiệu và viết tắt
Danh mục hình vẽ
Lời cảm ơn
Lời nói đầu
Chương 1 Vấn đề thỏa thuận khóa trong an toàn thông tin
1.1 Khái quát an toàn thông tin
1.2 Bài toán thỏa thuận khóa
1.3 Các giao thức thỏa thuận khóa phổ biến hiện nay
1.4 Kết Luận Chương 1
Chương 2 Nghiên cứu các phiên bản thỏa thuận khóa diffie – hellMAN
2.1 Giao thức thỏa thuận khóa Diffie – Hellman nguyên thủy và các phiên bản cải tiến
2.2 Giao thức thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic
2.3 Tham số an toàn cho giao thức Diffie – Hellman và khuyến nghị sử dụng
2.4 So sánh độ an toàn các phiên bản giao thức thỏa thuận khóa Diffie – Hellman
2.5 Kết luận chương 2
Chương 3 CÀI ĐẶT VÀ THỰC NGHIỆM GIAO THỨC DIFFIE-HELLMAN TRÊN ĐƯỜNG CONG ELLIPTIC CURVE25519
3.1 Lược đồ hoạt động giao thức
3.2 Các bước thực hiện giao thức và thuyết minh mã nguồn
3.3 Kết quả thực nghiệm chương trình cài đặt
3.4 Đánh giá độ an toàn, hiệu năng của chương trình thực hiện giao thức X25519
3.5 Kết luận chương 3
Tài liệu tham khảo
Trang 4DANH MỤC KÍ HIỆU VÀ VIẾT TẮT
AES Advanced Encryption Standard Tiêu chuẩn mã hóa tiên tiến
DES Data Encryption Standard Tiêu chuẩn mã hóa dữ liệuD-H Diffie - Hellman
DoS Denial of Service Tấn công từ chối dịch vụ
ECDH Elliptic-Curve Diffie–Hellman
Giao thức thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic
ECC Elliptic Curve Cryptography Hệ mật dựa trên đường cong
Elliptic
IKE Internet Key Exchange Giao thức trao đổi khóa và
thỏa thuận khóa
IPSec Internet Protocol Security
KDC Key Distribution Center Trung tâm phân phối khóaKPS Key Predistribution Scheme Phân phối khóa trước
MIT Massachusett Institute of Technology Viện Công nghệ Massachusetts
MITM Man In The Middle Tấn công kẻ ở giữa
NIST National Institute of Standards and
Technology
Viện tiêu chuẩn và kỹ thuật Quốc Gia ( Hoa Kỳ)
NLSP Network Layer Security Protocol
NSA National Security Agency Cơ quan an ninh quốc gia
khaiSKDS Session Key Distribution Scheme Phân phối khóa phiên
SSL Secure Sockets Layer
Trang 5toànTCP/IP Internet protocol suite Bộ giao thức liên mạng
TLS Transport Layer Security Giao thức bảo mật tầng giao
vậnVPN Virtual Private Network Mạng riêng ảo
25519
Trang 6DANH MỤC HÌNH VẼ
Trang 7LỜI CẢM ƠN
Trong quá trình thực hiện đồ án tốt nghiệp này, tôi đã nhận được sự giúp đỡtận tình của cán bộ hướng dẫn là Giảng viên Học viện Bưu Chính Viễn Thông, sựquan tâm sâu sát của cán bộ Học viện Bưu Chính Viễn Thông, sự động viên củangười thân và bạn bè
Xin cảm ơn tất cả mọi người đã tạo những điều kiện tốt nhất để tôi hoànthành đồ án tốt nghiệp này!
SINH VIÊN THỰC HIỆN ĐỒ ÁN
Nguyễn Trung Nam
Trang 8LỜI NÓI ĐẦU
Thời gian gần đây, các cuộc tấn công mạng đang gia tăng cả về số lượng vàquy mô, diễn ra ngày càng tinh vi và phức tạp Nhiều cuộc tấn công có chủ đíchnhằm vào các cơ quan Chính phủ, các hệ thống thông tin quan trọng trong nhiềulĩnh vực Hầu hết các doanh nghiệp còn chủ quan trong các vấn đề an ninh mạng
và dễ bị tấn công vào các lỗ hổng: các doanh nghiệp còn đánh giá thấp tầm quantrọng về sự tin tưởng của người tiêu dùng trong lĩnh vực an ninh mạng
Thực trạng mất an toàn diễn ra thường xuyên và mật mã là một biện phápchính trong việc đảm bảo các dịch vụ an toàn thông tin như: bí mật, xác thực, toànvẹn Để việc sử dụng mật mã có thể đảm bảo được an toàn thông tin thì cần nhữngyêu cầu về thuật toán, các tham số sử dụng và khóa Trong đó, đối với khóa sửdụng trong các hệ mật thì vấn đề thỏa thuận khóa giữa các bên liên lạc cũng cầnđược nghiên cứu và sử dụng đúng cách dựa trên năng lực tính toán máy tính hiệnnay và các tấn công đã công bố
Diffie – Hellman là một giao thức thỏa thuận khóa được phát minh rất sớmtrong mật mã học và được sử dụng phổ biến cho tới nay Giao thức này cho phépcác bên liên lạc thiết lập một khóa bí mật chung để mã hóa dữ liệu sử dụng trênkênh truyền thông không an toàn Tuy nhiên, với việc năng lực tính toán ngày càngcao của thế hệ máy tính hiện nay và rất nhiều cuộc tấn công vào giao thức Diffie-Hellman được công bố thì việc cài đặt Diffie-Hellman theo mặc định gây ra rấtnhiều nguy hiểm mất an ninh thông tin cho tổ chức, doanh nghiệp
Và để khắc phục nhược điểm trên ECDH đã ra đời, thực hiện việc thỏa thuậnkhóa dựa vào việc tính toán trên đường cong Elliptic, sử dụng khóa có độ dài nhỏhơn nhưng vẫn đảm bảo tính an toàn cao Thời gian xử lý được giảm đi đáng kểnhờ số phép toàn dùng để mã hóa và giải mã ít hơn phù hợp với mọi thiết bị có khảnăng tính toán thấp
Mục tiêu đặt ra khi thực hiện đồ án là:
1 Nghiên cứu các phiên bản giao thức trao đổi khóa Diffie-Hellman
2 Nghiên cứu các tấn công chính lên phiên bản giao thức trao đổi khóaDiffie – Hellman
Trang 93 So sánh độ an toàn giữa các giao thức trao đổi khóa Đề xuất phiên bảngiao thức Diffie – Hellman : ECDH X25519 (với đường cong EllipticCurve25519) với độ an toàn cao.
4 Thực hiện cài đặt, thử nghiệm phiên bản giao thức ECDH X25519
Sau thời gian khoảng ba tháng thực hiện đồ án, các mục tiêu về cơ bản đãđạt được Tuy nhiên mật mã là lĩnh vực khoa học phức tạp, thời gian thực hiện đồ
án tương đối ngắn nên chắc chắn không tránh khỏi thiếu sót Rất mong được sựgóp ý của các thầy cô, cũng như các bạn học viên để đồ án này được hoàn thiệnhơn
SINH VIÊN THỰC HIỆN ĐỒ ÁN
Nguyễn Trung Nam
Trang 10CHƯƠNG 1 VẤN ĐỀ THỎA THUẬN KHÓA TRONG AN TOÀN
THÔNG TIN
1.1 Khái quát an toàn thông tin
1.1.1 Vấn đền an toàn thông tin hiện nay
Thực trạng an toàn thông tin tại Việt Nam ngày càng diễn biến phức tạp vànguy hiểm Các cuộc tấn công mạng có quy mô, mức độ phức tạp và được chuẩn bịmột cách kỹ lưỡng Trong đó, các mục tiêu tấn công đang dần chuyển dịch từ cácmục tiêu cá nhân, sang các mục tiêu là các tập đoàn kinh tế lớn hay nghiêm trọnghơn là các hệ thống thông tin quan trọng của các quốc gia
Theo thống kê của các chuyên gia an ninh mạng, trong 9 tháng đầu năm
2017 đã ghi nhận đã có 9.964 [18] sự cố tấn công vào hệ thống mạng của các cánhân, tổ chức tại Việt Nam (hình 1.1)
Hình 1 1 : Các cuộc tấn công trong 9 tháng đầu năm 2017
Các cuộc tấn công bao gồm cả 3 loại hình chính: Malware, Phishing, vàDeface.Trong đó, tấn công bằng mã độc (Malware) phát tán chiếm nhiều nhất với4.595 lần , tức hơn 46% tổng số các cuộc tấn công Trong số các nạn nhân của loại
Trang 11hình Malware này có tới hơn 20 website có tên miền gov.vn (các website thuộcchính phủ Việt Nam), đến nay mới chỉ có ⅔ số website này đã được khắc phục.
Loại hình tấn công thay đổi giao diện (Deface) được đánh giá là một cuộctấn công quy mô lớn với 3.607 trường hợp đã được ghi nhận trong 9 tháng qua.Trong đó, 21 trường hợp nhắm vào các website chính phủ gov.vn nhưng đến nay
đã khắc phục gần hết Loại hình website lừa đảo (Phishing) chiếm số lượng ít hơnvới 1.762 sự cố Báo cáo cũng ghi nhận 987 sự cố đã được khắc phục, trong đó có
3 website tên miền gov.vn
Trong số các cuộc tấn an ninh công mạng ở Việt Nam xảy ra trong quýI/2017, đáng chú ý nhất phải kể đến cuộc tấn công của nhóm hacker U15 vàowebsite các cảng hàng không ở Việt Nam (Sân bay Tân Sơn Nhất, Đà Nẵng, PhúQuốc, Rạch Giá, Tuy Hòa ), tấn công này khiến nhiều người nghi ngờ đây là “sự
cố Vietnam Airlines” lần thứ 2 Sự việc xảy ra vào các ngày 8 – 10/3/2017, nhiềungười đã không thể truy cập được vào trang web chính thức của cảng hàng không(nơi cung cấp thông tin lịch trình các chuyến bay, dịch vụ hỗ trợ mặt đất của cáccảng hàng không ở Việt Nam) Trên trang chủ, tin tặc đã để lại dòng chữ xác nhận
đã tấn công web, cảnh báo an ninh mạng của sân bay đang có vấn đề, hệ thống bảomật bị lỗi Tuy nhiên, các Hacker này đã không phá hoại hay đánh cắp dữ liệuthông tin của sân bay Mục đích mà các tin tặc thực hiện cuộc tấn công mạng nàychỉ là để cảnh báo nhắc nhở về hệ thống bảo mật của trang web
Ngoài ra, đối với thế giới sự gia tăng của các nhóm mã độc mã hóa(ransomware) mới đúng như đã dự đoán, ransomware đã đạt đến đỉnh cao với cáccuộc tấn công WannaCry và Petya Chỉ riêng WannaCry một loại mã độc tống tiền,phần mềm độc hại này mã hóa dữ liệu của máy tính và ngăn cản người dùng truycập dữ liệu trên đó cho đến khi tin tặc nhận được tiền chuộc Nó đã lây nhiễm cho300.000 máy trên khắp thế giới và đã gây thiệt hại tài chính và kinh tế lên tới 4 tỷ
đô la Mỹ Thực trạng an toàn thông tin ở Việt Nam cũng như toàn thế giới rơi vàotrạng thái đáng báo động
Trang 121.1.2 Mật mã và các dịch vụ an toàn thông tin
Mật mã được sử dụng lần đầu là bằng văn bản từ năm 1900 trước CôngNguyên Và sau đó, mật mã được phát triển mạnh mẽ và áp dụng trên nhiều lĩnhvực khác nhau và sau khi sự phát triển rộng rãi của công nghệ truyền thông thì cáchình thức mật mã mới được ra đời, cải tiến hơn Mật mã được sử dụng để bảo vệtính bí mật của thông tin khi thông tin được truyền trên các kênh truyền thông côngcộng như Internet, mạng điện thoại, v v…
Định nghĩa hệ mật
Một hệ mật là một bộ năm (R,M,K,E,D thoả mãn các điều kiện sau:)
1 R là không gian rõ bao gồm một tập hữu hạn các bản rõ R có thể.
2 M là không gian mã bao gồm một tập hữu hạn các bản mã M có thể
3 K là không gian khóa bao gồm một tập hữu hạn các khóa K có thể
4 Với mỗi khóa K∈K có một quy tắc mã E K ∈E và một quy tắc giải mã
K
D ∈D Trong đó, mỗi E K :R →M và D K :M →R là các hàm đảmbảo D E R K( K( ))=R với mọi bản rõ R∈R
Hình 1 2 : Mô hình thông tin hệ mật gửi từ Alice với BobChức năng của mật mã đối với các dịch vụ an toàn thông tin :
Trang 13• Xác thực: Chức năng của dịch vụ xác thực là để đảm bảo người nhậnthông điệp nhận được thông điệp đúng từ nơi mà nó yêu cầu Xác thựcxảy ra ở 2 thời điểm: Thứ nhất, tại thời điểm bắt đầu kết nối, dịch vụ đảmbảo rằng hai thực thể đó được xác thực với nhau.Thứ hai, dịch vụ phảiđảm bảo rằng sự liên kết không bị can thiệp theo cách mà một bên thứ ba
có thể giả mạo vì mục đích gửi hoặc nhận thông điệp trái phép
o Xác thực thực thể: Cung cấp các yếu tố để xác nhận độ tin tưởng củacác thực thể trong tổ chức
o Xác thực nguồn gốc dữ liệu: Xác nhận nguồn gốc của một CSDL
• Kiểm soát truy cập: Cung cấp khả năng hạn chế, kiểm soát việc truy cậpvào hệ thống máy chủ và các ứng dụng Để có thể truy cập vào máy chủ
và ứng dụng mỗi thực thể phải được xác thực
• Bảo mật dữ liệu: Bảo vệ dữ liệu khỏi các cuộc tấn công
o Bảo mật kết nối: Bảo vệ tất cả dữ liệu người dùng trên một kết nối
o Bảo mật không liên kết: Việc bảo vệ tất cả dữ liệu người dùng trongmột cơ sở dữ liệu
o Bảo mật trong lĩnh vực chọn lọc: Bảo mật các trường được chọn trong
dữ liệu người dùng trong kết nối hoặc trong một cơ sở dữ liệu
o Tính bảo mật dòng lưu lượng truy cập: Bảo vệ các thông tin được gửi
từ nguồn nhờ việc quan sát lưu lượng truyền đi
• Toàn vẹn dữ liệu: Đảm bảo việc nhận dữ liệu chính xác từ người gửi, đầy
đủ thông tin, dữ liệu không bị thay đổi, thêm, sửa xóa hoặc phát lại
• Chống chối bỏ: Ngăn cản người gửi hoặc người nhận từ chối một thôngđiệp được truyền đi
• Dịch vụ sẵn sàng: Đảm bảo sự sẵn sàng của hệ thống , giải quyết các mốiquan ngại về an ninh được gây ra bởi các cuộc tấn công từ chối dịch vụ
Trang 141.2 Bài toán thỏa thuận khóa
1.2.1 Khái niệm khóa, phân phối khóa, thỏa thuận khóa.
a) Khóa
Trong mật mã học, khóa là một đoạn thông tin điều khiển hoạt động củathuật toán mã hóa Nói một cách khác, khóa là thông tin để cá biệt hóa quátrình mã hóa cũng như giải mã Khóa cũng được sử dụng trong các thuật toán kháctrong mật mã học như thuật toán tạo chữ ký số hay hàm băm mật mã (các hàm băm
có khóa) Thông thường, khóa mật mã là các quy ước, các giá trị số, dãy ký tự, ,
đó là những thông tin bí mật mà chỉ có người lập mã và người giải mã được biết
Độ bảo mật của khóa mật mã phải đảm bảo không có khả năng phục hồi bản rõtheo bản mã nếu không có khóa, bảo đảm độ bền của hệ mật
b) Phân phối khóa
- Phân phối khóa trước: trong một lược đồ phân phối khóa trước (ký hiệu làKPS), một trung tâm ủy nhiệm TA phân phối thông tin về khóa trước trên một kênh
an toàn cho tất cả người dùng trong mạng liên lạc Sau đó tất cả những người dùngtrong mạng liên lạc có thể sử dụng các khóa mật này để mã hóa các thông báo mà
họ truyền qua mạng công khai Cụ thể, mỗi cặp người dùng trong mạng liên lạc sẽ
có thể xác định được một khóa mật mà chỉ duy nhất họ được biết
- Phân phối khóa phiên: trong phân phối khóa phiên, trung tâm ủy nhiệm TAhoạt động trực tuyến và khi những người dùng trong mạng liên lạc yêu cầu TAcung cấp khóa cho phiên làm việc, TA sẽ tạo ra các khóa phiên và phân phối chúngcho những người dùng trong mạng liên lạc qua giao thức tương tác Giao thức nàyđược gọi là lược đồ phân phối khóa phiên (ký hiệu là SKDS) Các khóa phiên được
sử dụng để mã hóa thông tin cho một khoảng thời gian cụ thể, tương đối ngắn (sửdụng trong phiên liên lạc đó) Các khóa phiên sẽ được trung tâm ủy nhiệm TA mãhóa bằng khóa bí mật đã được phân phối trước (với giả thiết là tất cả người dùngtrong mạng liên lạc và TA đã thiết lập được trước các khóa bí mật này)
Trang 15c) Thỏa thuận khóa
Thỏa thuận khóa là việc trao đổi khóa giữa chủ thể trong một cộng đồng nào
đó có thể được thiết lập một cách tự do giữa bất cứ hai người nào khi có nhu cầutrao đổi thông tin và có thể phòng tránh được bên thứ ba có thể xâm nhập vào quátrình trao đổi
Mục tiêu của phân phối khóa và thoả thuận khóa là tại thời điểm kết thúc thủtục hai bên liên quan đều có cùng một khóa K và không một bên nào khác biết giátrị của khóa K (trừ khả năng TA)
1.2.2 Phân loại khóa
a) Hệ thống khóa hữu hạn biến đổi
Khóa hữu hạn biến đổi là khóa có quy luật được tạo nên bằng một số hữuhạn các phép biến đổi đơn giản
Các phép biến đổi đơn giản là các phép biến đổi sơ cấp trong toán học như:phép thay đổi các hàng các cột của một ma trận, phép hoán vị hữu hạn phần tử,phép thay thế nhờ hữu hạn phần tử thế
Ví dụ: khóa chuyển vị trong hệ mật chuyển vị, khóa thay thế nhờ hữu hạn
phần tử thế trong hệ mật thay thế
Trong thực tế, việc tạo các khóa hữu hạn biến đổi là rất dễ Đồng thời khóabộc lộ ra những tính chất đơn giản, dễ phát hiện Vì vậy, độ bảo mật của hệ thốngkhóa này bị hạn chế và do đó các hệ mật dùng khóa hữu hạn biến đổi thường có độbảo mật không cao
Độ bảo mật của khóa hữu hạn biến đổi phụ thuộc vào 3 yếu tố sau:
- Chất lượng khóa cơ bản ban đầu: tức là kích thước khóa nhỏ hay lớn, và
tính độc lập giữa các phần tử khóa Nếu khóa có kích thước nhỏ thì việc giải mãcũng như việc duyệt toàn bộ không gian khóa sẽ dễ dàng hơn Đồng thời nếu cácphần tử khóa có tính độc lập kém thì khóa có thể bị rút gọn lại tương đương vớikhóa ngắn hơn
- Chất lượng của phép biến đổi: tức là các phần tử khóa gốc và các phần tử
khóa sinh ra qua phép biến đổi phải có tính độc lập cao, phép biến đổi tạo khóa
Trang 16phải có tính phi tuyến và là các phép biến đổi một chiều Điều này sẽ đảm bảochống lại việc tìm khóa gốc từ các phần tử khóa sinh ra trong phép biến đổi tạokhóa.
- Phương pháp sử dụng khóa: phương pháp sử dụng khóa không đúng (như
sử dụng trùng khóa) có thể giúp mã thám suy ra được khóa hoặc bản rõ được mãbằng khóa đó Vì vậy, phương pháp sử dụng khóa tốt sẽ làm tăng độ bảo mật củakhóa
Ba yếu tố trên đây không thể tách rời nhau, mà ngược lại chúng có quan hệchặt chẽ với nhau Vì vậy, mỗi mã pháp dùng hệ thống khóa này sẽ có độ bảo mậtkhác nhau
Ví dụ: Tạo khóa hữu hạn biến đổi thông qua bộ tạo đồng dư tuyến tính Ta
có:
- Khóa gốc (hay còn gọi là mầm khóa): K0 =( , , , ) (4,1,3,5)k k k k1 2 3 4 =
- Phép biến đổi: là phép cộng modulo 10 giữa hai phần tử khóa gốc để tạophần tử khóa tiếp theo: k i+4 = +k i k i+1mod 10 (i>0)
Theo phép biến đổi này ta có dãy khóa: 413554809289107017 K =
b) Hệ thống khóa ngẫu nhiên
Khóa ngẫu nhiên được hiểu là một dãy ngẫu nhiên (hữu hạn hoặc vô hạn)các phần tử có giá trị hữu hạn Các phần tử khóa lấy giá trị trên một tập hữu hạnnào đó và chúng xuất hiện trong khóa một cách ngẫu nhiên, nghĩa là chúng xuấthiện độc lập, đồng xác suất và không phụ thuộc vào bất cứ điều kiện nào
Giả sử α ={ ,α α1 2, ,αm} là một tập hữu hạn các phần tử cơ bản (ký hiệu,tín hiệu ) Ví dụ, bộ chữ cái Latinh gồm 26 chữ cái {A, B, C, , Z}, bộ các số từ
0 đến 9, các số nhị phân {0, 1}
Ta thiết lập dãy K k k= 1 2 k n , trong đó k i∈α với (i=1,2, )
Khi đó K được gọi là dãy khóa ngẫu nhiên nếu các phần tử khóa
, ( 1,2, )
i
k i= xuất hiện một cách ngẫu nhiên, độc lập và đồng xác suất Nghĩa là
với mọi nhóm gồm s phần tử khóa s k k= i i1 2 k i s ta có đẳng thức:
Trang 171 2 1 2
1( ) ( ) ( ) ( )
P k
m
= Khóa ngẫu nhiên thường chỉ dùng trong các hệ mật thay thế Hệ mật thay thếdùng khóa ngẫu nhiên là hệ mật có độ bảo mật cao Khóa ngẫu nhiên là yếu tốquyết định độ bảo mật của hệ mật này Nếu khóa ngẫu nhiên được dùng một lần thì
hệ mật có độ mật hoàn thiện Tuy nhiên việc tạo ra các khóa ngẫu nhiên là mộtcông việc khó khăn và đòi hỏi nguyên tắc sử dụng rất nghiêm ngặt
Cũng theo đặc trưng của khóa sử dụng trong hệ mật, người ta còn chia các
hệ mật thành hai loại: hệ mật khóa bí mật và hệ mật khóa công khai (xem mục1.2.3) Trong thực tế, có một số hệ mật lai ghép giữa hệ mật khóa bí mật và hệ mậtkhóa công khai
1.2.3 Vai trò của khóa trong an toàn thông tin
Trong thực tế hiện nay, khóa mật mã được sử dụng trong các hệ mật khóa bímật, hệ mật khóa công khai, hàm băm, chữ ký số Vì vậy vai trò khóa trong an toànthông tin chính là vai trò hay chức năng của hệ mật khóa bí mật, hệ mật khóa côngkhai, hàm băm và chữ ký số trong an toàn thông tin
- Hệ mật khóa bí mật (hệ mật đối xứng): là hệ mật trong đó khóa mã và khóagiải mã giống nhau hoặc dễ dàng tính khóa này từ khóa kia, khóa phải được giữ bímật và chỉ được biết bởi người gửi và người nhận Ví dụ: DES, 3DES, AES hayRC4
Trang 18Hình 1 3 : Mô hình thông tin giữa Alice và Bob (hệ mật khóa bí mật)
Hoạt động của hệ mã được mô tả trong hình 1.3 với các bước hoạt động nhưsau: Nếu A và B là hai người dùng sử dụng hệ mã khóa bí mật để gửi tin cho nhau
A dùng thuật toán E và khóa K lập mật mã cho văn bản M muốn gửi cho B, rồi gửicho B bản mã: Y = EK(M) Thuật toán mã hóa E cho các đầu ra khác nhau phụthuộc vào giá trị khóa K và bản rõ M khác nhau Ở đầu bên kia B sau khi nhậnđược bản mã Y, sẽ sử dụng thuật toán giải mã D và chính khóa K để thu được bản
rõ M
A và B chỉ có thể truyền tin được với nhau nếu cả hai cùng biết khóa K.Chức năng chính của hệ mật dùng để mã hóa dữ liệu được hai bên truyền nhận trênđường truyền và khóa K có chức năng đảm bảo tính bí mật của thông tin, ngườithứ ba không thể giải mã được thông tin nếu không có khóa K
- Hệ mật khóa công khai (hay hệ mật phi đối xứng): là hệ mật trong đó khóa
mã và khóa giải mã khác nhau, từ khóa mã công khai khó tìm ra khóa giải mã theonghĩa độ phức tạp tính toán rất cao, khóa giải mã (hay khóa riêng) phải được giữ bímật duy nhất bởi người sử dụng Ví dụ: hệ mật RSA, Elgamal, hệ mật trên đườngcong Elliptic
Trang 19Hình 1 4 : Mô hình thông tin giữa Alice và Bob (Hệ mật khóa công khai)
Khóa K của mỗi người dùng gồm hai phần K = (K', K") trong đó K' là phầncông khai, còn giữ bí mật K"
Mã hóa được thực hiện rất dễ dàng, bất kỳ người nào cũng có thể làm được,còn việc giải mã rất khó khăn nếu như không có khóa riêng, còn nếu có nó thì việcgiải mã cũng dễ như việc mã hóa Khóa riêng được tạo và lưu trữ bởi mỗi đầu mốiliên lạc và không được gửi đi bất kỳ nơi nào
Hệ mật này mã hóa khóa bí mật trên kênh truyền công khai giữa 2 bên liênlạc vậy nên khóa trong hệ mật này có vai trò là đảm bảo tính bí mật dữ liệu và xácthực
- Hàm băm mật mã tính toán ra giá trị băm khác nhau (có độ dài cố định)tương ứng với khối dữ liệu đầu vào khác nhau Có 2 loại hàm băm là: hàm băm cókhóa (ví dụ: MD5, SHA2, SHA3…) và hàm băm không có khóa (ví dụ: MAC,HMAC) Hàm băm có khóa được sử dụng trong nhiều ứng dụng bảo mật thông tin,
có thể dùng để xác thực, kiển tra tính toàn vẹn của thông điệp, dữ liệu
- Chữ kí số là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video, …)được tính toán từ các dữ liệu kèm theo này theo mô hình 1.5 và có mục đích xácđịnh tính sở hữu của người dùng hay chính tính xác thực người dùng
Trang 20Hình 1 5 : Sơ đồ chữ ký số
Ngoài ra, vì chữ ký số dùng để xác định tính sở hữu đối với dữ liệu củangười dùng gửi nên chữ ký số cũng đảm bảo tính chống chối bỏ trong an toànthông tin
1.2.4 An toàn khóa trong các giải pháp bảo mật
Trong thực tế hiện nay mật mã đảm nhận việc đảm bảo an toàn thông tintrong lưu trữ và truyền nhận Các giải pháp bảo mật phổ biến trong bảo mật đườngtruyền là sử dụng các bộ giao thức bảo mật phổ biến như IPSec, SSL/TLS, SSH vàtrong lưu trữ dữ liệu thì là các phần mềm mã hóa chuyên dụng trong lưu trữ dữliệu Tất cả các giải pháp này đều sử dụng các hệ mật mã để đảm bảo an toàn thôngtin và có những biện pháp riêng để đảm bảo an toàn cho khóa sử dụng trong các hệmật mã này
Đối với các phần mềm chuyên dụng mã hóa dữ liệu lưu trữ thì biện phápđảm bảo an toàn khóa được sử dụng chủ yếu là giao thức phân phối khóa Kerberos
Trang 21Kerberos là một hệ thống giao thức xác thực an toàn trên mạng máy tínhtrước tiên được phát triển tại Viện Công nghệ Massachusett MIT (MassachusettInstitute of Technology) về sau được dùng rộng rãi ở Mỹ Kerberos cho phép cácnút mạng chứng minh “căn cước” (identity) của mình với các đối tác, thông quamột môi trường giao dịch không tin cậy Thoạt đầu Kerberos được thiết kế theo sơ
đồ xác thực client-server (giữa máy khách - máy chủ) và sau đó cung cấp dịch vụxác thực lẫn nhau (mutual authentication), Kerberos được mặc định sử dụng cổng88
Kerberos dùng mã khóa đối xứng Các khóa đối xứng này được máy chủKerberos trao cho từng người sử dụng đã đăng nhập hệ thống Mỗi người sử dụngđược phép tạo một mật khẩu xác thực gửi cho máy chủ Kerberos để được nhận vàdùng khóa mã Để thực hiện được, hệ thống Kerberos đòi hỏi cấu hình mạng rấtphức tạp và khó quản lý: máy chủ của mỗi website đăng ký sử dụng đều phải cómáy chủ riêng được cài đặt Kerberos và máy chủ của hệ thống (bên thứ ba) sẽ phânphối khóa mã cho mỗi website đồng thời lưu giữ chúng lại để kiểm tra và đốichứng khi cần thiết
- An toàn khóa trong các bộ giao thức bảo mật IPSec, SSL/TLS, SSH
IPsec là một bộ các giao thức hoạt động tại tầng mạng nhằm bảo vệ cáctruyền thông qua giao thức Internet (IP) bằng cách xác thực và mã hóa mỗi gói tin
IP của từng phiên giao dịch IPsec cũng bao gồm cả những giao thức nhằm thiếtlập sự xác thực lẫn nhau giữa các đối tác khi khởi đầu một phiên và sự thươnglượng để thỏa thuận các khóa mật mã dùng cho phiên giao dịch đó IPSec có thể sửdụng để bảo vệ luồng dữ liệu giữa hai máy khách (host-to-host) giữa hai mạng(network-to-network) hoặc giữa một mạng và một máy khách (network-to-host)
SSL/TLS là bộ các giao thức bảo mật hoạt động tải tầng vận tải cung cấpkhả năng đảm bảo tính bí mật (mã hóa), xác thực, toàn vẹn và chống chối bỏ đốivới luồng lưu lượng truyền đi giữa các bên liên lạc Tương tự IPSec thì SSL/TLScũng có thể sử dụng để bảo vệ luồng dữ liệu giữa hai máy khách (host-to-host)giữa hai mạng (network-to-network) hoặc giữa một mạng và một máy khách(network-to-host)
Trang 22SSH là giao thức bảo mật sử dụng trong mô hình host-to-host cung cấp khảnăng mã hóa, đảm bảo tính toàn vẹn của dữ liệu trên đường truyền.
Trong cả ba giao thức bảo mật IPSec, SSL/TLS và IPSec đều sử dụng các hệmật khóa bí mật và hệ mật khóa công khai để bảo vệ an toàn dữ liệu trên đườngtruyền Công việc phân phối, thỏa thuận khóa trong ba bộ giao thức này được đảmbảo bởi giao thức thỏa thuận khóa tích hợp trong các bộ giao thức bảo mật này vàcác giao thức này sẽ được trình bày trong mục 1.3 Riêng SSH thì có thể sử dụnggiao thức phân phối khóa Kerberos để đảm bảo vấn đề an toàn khóa
1.3 Các giao thức thỏa thuận khóa phổ biến hiện nay
1.3.1 Giao thức thỏa thuận khóa Diffie-Hellman
Ngày nay, giao thức thỏa thuận khóa Diffie-Hellman nguyên thủy không cònđược sử dụng nữa, nhưng các phiên bản cải tiến của giao thức này lại được sử dụngrộng rãi nhất trong thực tế hiện nay Giao thức này chính là nội dung chính của đồ
án và được trình bày chi tiết trong chương 2
1.3.2 Giao thức thỏa thuận khóa xác thực (Diffie , Van Oorschot và Wiener)
Giao thức thỏa thuận khóa xác thực hay còn được gọi là thỏa thuận khóatrạm đến trạm do Diffie, Van Oorschot và Wiener thực hiện Trong lược đồ này,mỗi người dung: ví dụ người dung A có một thông tin xác thực nhất định IDA , mộtlược đồ chữ ký số với thuật toán kiểm tra VerA và thuật toán ký SigA Trung tâm uỷnhiệm TA cũng có lược đồ chữ ký số với thuật toán kiểm tra VerTA Định danh IDA
và thuật toán kiểm tra VerA của người dùng A được đăng ký với TA để TA pháthành một chứng chỉ cho người dùng A:
Trang 23Hình 1 6 : Lược đồ thỏa thuận khóa được xác thựcChọn các tham số miền công khai: TA chọn một số nguyên tố lớn p và mộtphần tử nguyên thuỷα ∈Z*p sao cho bài toán tính lôgarit trong Z là rất khó Các*p
tham số p và α được công bố công khai cho mọi người dùng trong mạng liên lạc
Hai người dùng A,B bất kỳ mỗi khi cần liên lạc mật với nhau trên kênh côngkhai thì có thể cùng thực hiện giao thức sau để thỏa thuận trực tiếp một khóa phiênđược xác thực cho phiên liên lạc:
1 Người dùng A chọn ngẫu nhiên một số a A(0 ≤a A ≤ −p 1) giữ bí mật giátrị aA Sau đó tính giá trị a A mod
A
b = α p và gửi các giá trị: C t er A và bA cho B
2 Người dùng B chọn ngẫu nhiên một số a B(0≤a B ≤ −p 1) , giữ bí mật giátrị a B Sau đó tính các giá trị sau:
( )
,A
modmod, ,
B
B
a B
và gửi các giá trị C t ber ,A A và γA cho A
3 A xác thực chữ ký γB bằng thuật toán kiểm tra erV t Nếu chữ ký là hợp A
lệ, A tính các giá trị:
Trang 244 A xác thực chữ ký y Abằng thuật toán kiểm tra Ver A.
Nếu tất cả các bước trên được thực hiện và các phép kiểm tra đều cho kếtquả đúng, thì giao thức tương tác kết thúc, và cả hai người dùng A và B tính racùng một khóa phiên bí mật K A B, .
1.3.3 Giao thức thỏa thuận khóa Matsumoto, Takashima và Imai
Matsumoto, Takashima và Imai đã xây dựng một số lược đồ thoả thuận khóabằng cách cải tiến lược đồ thỏa thuận khóa Diffie - Hellman Các lược đồ này được
gọi là lược đồ thỏa thuận khóa MTI Các lược đồ này không đòi hỏi A và B phải
tính bất kì chữ ký nào Chúng là các giao thức hai lần vì chỉ có hai lần truyền thông
tin riêng biệt (một từ A đến B và một từ B đến A).
Trang 25Trong lược đồ này, trung tâm uỷ nhiệm TA có lược đồ chữ ký số với thuật
toán kiểm tra VerTA công khai và thuật toán ký SigTA bí mật Mỗi người dùng A
có một thông tin xác thực nhất định ID A, một số mũ mật a A(0≤a A ≤ −p 1) và mộtkhóa công khai a A mod
A
b = α p Định danh ID A và khóa công khai b A được đăng
ký với TA để TA phát hành một chứng chỉ cho người dùng A Lược đồ thỏa thuận
khóa MTI/A0 được mô tả như hình
Hình 1 7 : Lược đồ thỏa thuận khóa MTI
Chọn các tham số miền công khai: TA chọn một số nguyên tố lớn p và một
phần tử nguyên thuỷ α ∈Z*p sao cho bài toán tính lôgarit trong Z là rất khó Các*p tham số p và α được công bố công khai cho mọi người dùng trong mạng liên lạc
Mỗi người dùng A chọn một số mũ mật a A(0≤a A ≤ −p 1) , sau đó tính giátrị công khai tương ứng a A mod
1 Người dùng A chọn ngẫu nhiên một số r A(0≤ ≤ −r A p 1) , tính giá trị
Trang 26A
r A
s = α p , và gửi các giá trị C ter , sA A cho B.
2 Người dùng B chọn ngẫu nhiên một số r B(0≤ ≤ −r B p 1) , tính giá trịmod
B
r
B
s = α p và gửi các giá trị Cert ,B s B cho A.
Cuối cùng, B tính khóa phiên:
trong đó, giá trị bB nhận được từ chứng chỉ C ter B của B.
4 Kết thúc giao thức tương tác, hai người dùng A và B tính ra cùng một
b được đặt vào trong chứng chỉ C t er B của B.
- Khi A và B cần thiết lập khóa phiên cho phiên liên lạc mới, A và B sẽ
thực hiện giao thức tương tác sau:
Trang 27+ A chọn số ngẫu nhiên r A =169, sau đó gửi giá trị
về thành phần cốt lõi trong mật mã là khóa mật mã như: khái niệm khóa mật mã,vai trò khóa mật mã trong an toàn thông tin Để đảm bảo an toàn khi sử dụng khóamật mã cần có các biện pháp trong các mô hình thông tin khác nhau (lưu trữ thông
Trang 28tin, truyền thông tin) Trong mô hình truyền tin, biện pháp sử dụng các giao thứcthỏa thuận khóa để đảm bảo an toàn trong sử dụng khóa mật mã được áp dụng phổbiến trong thực tế hiện này và cũng đã được trình bày trong phần cuối của chương.
Trang 29CHƯƠNG 2 NGHIÊN CỨU CÁC PHIÊN BẢN THỎA THUẬN
KHÓA DIFFIE – HELLMAN
2.1 Giao thức thỏa thuận khóa Diffie – Hellman nguyên thủy và các phiên bản cải tiến
2.1.1 Lược đồ giao thức
Giao thức thỏa thuận khóa Diffie – Hellman dùng để thiết lập một khóa chia
sẻ bí mật giữa người gửi và người nhận mà không cần dùng đến mã hóa công khai.Phương pháp này dùng hàm một chiều làm hàm logarith rời rạc Diffie – Hellmankhông có ý nghĩa về mặt mã hóa giống như RSA
Hình 2 1 : Lược đồ giao thức trao đổi khóa Diffie – Hellman
Trước tiên Alice và Bob sẽ thống nhất sử dụng chung một số nguyên tố p vàmột số g nhỏ hơn p và là căn nguyên thủy của p ( nghĩa là phép toán gx mod p khảnghịch ) Hai số p và g không cần giữ bí mật Sau đó Alice chọn một số a và giữ bímật số a này Bob cũng chọn số b và giữ bí mật số b Tiếp theo Alice tính và gửi gamod p cho Bob, Bob tính và gửi gb mod p cho Alice
Trên cơ sở đó Alice tính :
Trang 30Như vậy, kể phá mã Teddy có thể có được g, p, ga và gb Muốn tính được gabmod p , Teddy không thể dùng cách:
Muốn tính được gab mod p, Teddy phải tính được a hoặc b Tuy vậy, việc tính
a hay b theo công thức:
2.1.2 Tấn công lên giao thức thỏa thuận khóa Diffie – Hellman
Tấn công lên giao thức thỏa thuận khóa Diffie-Hellman được chia làm 2dạng chính: tấn công lên cấu trúc toán học và tấn công lên quá trình cài đặt thực tếtrong môi trường mạng của giao thức
a) Tấn công lên cấu trúc toán học của Diffie-Hellman nguyên thủy
Tấn công thông điệp suy biến (Degenerate message attacks)
Tấn công này được thực hiện khi các bên thiết lập khoảng lựa chọn các giátrị bí mật a, b là đoạn [1, …, p−1]với p là số nguyên tố Khi đó sẽ xuất hiện
trường hợp lựa chọn a= −p 1 dẫn tới khóa công khai và khóa chia sẻ bí mật bằng
1 Mà khóa công khai kẻ tấn công hoàn toàn có thể bắt được trên kênh truyền Và
để không xảy ra tấn công như vậy thì cần thiết lập khoảng chọn các giá trị bí mật là
(1, , p-1)
Số mũ đơn giản (Simple Exponents)
Tấn công xảy ra khi giá trị bí mật a hoặc b được lựa chọn bằng 1 Khi đó kẻtấn công sẽ dễ dàng tìm ra giá trị bí mật còn lại và cả khóa chia sẻ bí mật giữa haibên liên lạc Vì vậy cần đảm bảo rằng các giá trị bí mật không có khả năng được
chọn bằng 1 hay chính là thiết lập khoảng chọn các giá trị bí mật là (1, , p-1).
Trang 31Tấn công thay thế đơn giản (Simple substitution attack)
Trường hợp giao thức Diffie - Hellman được thực hiện giữa người với ngườithì những giá trị khóa công khai bất thường sẽ bị phát hiện (ví dụ khóa công khaiđược gửi có gí trị bằng g hoặc bằng 1) Tuy nhiên trong thực tế, giao thức Diffie -Hellman được thực hiện bởi máy tính với nhau và sẽ không có cơ chế kiểm tranhững giá trị khóa công khai bất thường và kẻ tấn công lợi dụng sơ hở này để thaythế khóa chia sẻ bí mật giữa các bên liên lạc Quá trình thực hiện như sau:
Kẻ tấn công sẽ chặn bắt khóa công khai ga , gb và thay thế chúng bằng 1
Khi đó Allice và Bob tính toán được khóa bí mật được chia sẻ bằng 1
Để ngăn chặn tấn công này cần có cơ chế kiểm tra các giá trị khóa công khai
Tính α0, α1, cho đến αx thỏa mãn αx = β Khi đó logαβ = x.
Trong thuật toán này cần tối đa p phép nhân trong Z*
p, do đó khi p lớn thìkhông thể thực hiện được về mặt tính toán Vì vậy khi thiết lập Diffie-Hellman cần
chọn giá trị p thật lớn.
b) Tấn công lên quá trình cài đặt, hoạt động của giao thức Hellman trong môi trường mạng thực tế
Diffie-Tấn công kẻ xen giữa (Man-In-The-Middle (MITM) attack)
MITM là tấn công mà kẻ tấn công chăn bắt thông tin ,từ đó kẻ tấn công cóthể thêm hoặc sửa thông điệp và dễ dàng phá vỡ giao thức Diffie – Hellman
Trang 32Hình 2 2 : Tấn công Man In The Middle
Cụ thể, O thay a mà A định gửi cho B bằng a', và thay b mà B định gửi cho
A bằng b' Như vậy O có thể tính các khóa phiên được tạo nên giữa A và O, giữa B
và O (tương ứng là g ab'modp và g a b' modp ), Lúc này cả A và B đều không biết rằng mình đang liên lạc với O và dùng những khóa này mã hóa những thông báo của mình để gửi cho O Như vậy O sẽ dịch được các thông báo của A (gửi cho B)
và B (gửi cho A), đồng thời O sẽ mã hóa các thông báo này bằng khóa phiên đã được thỏa thuận và chuyển tiếp chúng tới A và B
Tấn công phát lại (Reply Attack)
Cuộc tấn công phát lại là một cuộc tấn công rất nguy hiểm không chỉ riêngđối với giao thức Diffie-Hellman mà còn đối với rất nhiều các giao thức mạngkhác Tấn công này là một cuộc tấn công mà kẻ tấn công cố gắng nghe trộm vàchặn bắt các gói dữ liệu hợp lệ và truyền lại tới bên cung cấp dịch vụ (như các máychủ dịch vụ) nhằm mục đích chiếm quyền truy cập của người dung hợp pháp vàodịch vụ máy chủ hoặc gây ra một hành động từ xa tới máy chủ và có thể gây ngắtkết nối tới máy chủ của máy người dùng
Đối với tấn công này sẽ có những cách thức phòng chống thường được sửdụng trong các bộ giao thức bảo mật mạng mà có sử dụng giao thức thỏa thuậnkhóa Diffie-Hellman như sau:
- Trong bộ giao thức TLS và DTLS thì giá trị nonces được sử dụng trong
quá trình thỏa thuận khóa vào đóng góp vào việc tạo khóa chính để ngănchặn cuộc tấn công phát lại Riêng trong DTLS còn sử dụng số thứ tự
Trang 33được gán với mỗi thông điệp để đảm bảo chúng được truyền và xác nhậntheo thứ tự.
- Trong giao thức SSH sử dụng một giá trị ngẫu nhiên được tạo ra bởi cả 2bên và được trao đổi khi thực hiện quá trình thực hiện thỏa thuận khóa.Đồng thời trong quá trình thỏa thuận, giá trị băm các thông điệp trao đổiđược tính và chứa trong giá trị cookie, cùng với khóa công khai Diffie-Hellman được ký và khóa công khai của máy chủ được gửi tới máyngười dùng để thực hiện xác thực
- Với giao thức IKEv2 chạy trên nền giao thức UDP nhưng được tích hợpmột thủ tục để ứng phó với quá trình truyền lỗi như mất gói, lặp gói Biệnpháp ngăn chặn mất gói trong thủ tục này là IKE đính kèm thời gian gửi
và một định danh ID duy nhất trong các thông điệp trao đổi Đối với tấncông phát lại hay lặp gói tin thì các bên liên lạc trong IKE sẽ sinh một giátrị ngẫu hiện nonces chứa trong Header của những thông điệp thỏa thuậnkhóa đầu tiên để gửi tới bên đối tác liên lạc Các giá trị ngẫu nhiên cũngtham gia vào quá trình tính khóa chia sẻ chung của giao thức Diffie-Hellman được tích hợp trong IKE
- Trong giao thức ZRTP, chuỗi băm một chiều được biết bởi hai bên vàchia nhỏ ra đính kèm như một phần của thông điệp gửi cho đối tác liênlạc
Tấn công từ chối dịch vụ (Denial of Service - DoS)
Tấn công từ chối dịch vụ là một kiểu tấn công mà một người làm cho một hệthống không thể sử dụng, hoặc làm cho hệ thống đó chậm đi một cách đáng kể vớingười dùng bình thường, bằng cách làm quá tải tài nguyên của hệ thống
Mặc dù tấn công DoS không có khả năng truy cập vào dữ liệu thực của hệthống nhưng nó có thể làm gián đoạn các dịch vụ mà hệ thống đó cung cấp Nhưđịnh nghĩa trên DoS khi tấn công vào một hệ thống sẽ khai thác những cái yếu nhấtcủa hệ thống để tấn công, những mục đích của tấn công DoS:
Trang 34- Cố gắng chiếm băng thông mạng và làm hệ thống mạng bị ngập (flood),khi đó hệ thống mạng sẽ không có khả năng đáp ứng những dịch vụ kháccho người dùng bình thường.
- Cố gắng làm ngắt kết nối giữa hai máy, và ngăn chặn quá trình truy cậpvào dịch vụ
- Cố gắng ngăn chặn những người dùng cụ thể vào một dịch vụ nào đó
- Cố gắng ngăn chặn các dịch vụ không cho người khác có khả năng truycập vào
- Khi tấn công DoS xảy ra người dùng có cảm giác khi truy cập vào dịch
vụ đó như bị:
+ Disable Network - Tắt mạng
+ Disable Organization - Tổ chức không hoạt động
+ Financial Loss – Tài chính bị mất
Tấn công DoS lên giao thức Diffie – HellMan:
- Kẻ tấn công có thể gửi số lượng lớn các thông điệp DH negotiation requests (thông điệp yêu cầu thỏa thuận khóa Diffie-Hellman có chứa
khóa công khai và các tham số công khai Diffie-Hellman) với các địa chỉ
IP nguồn giả mạo tới máy nhận (máy nạn nhân), điều này khiến máy nhận
sẽ dành rất nhiều tài nguyên CPU thực hiện phép tính lũy thừa theomodule lớn để tính khóa công khai Diffie-Hellman gây ra sự quá tải trongmáy nạn nhân
- Kẻ tấn công sử dụng lượng lớn thông điệp DH negotiation requests chứa
khóa công khai Difie-Hellman khác nhau tới cho cả hai bên liên lạc đểcho máy tính bên nhận và bên gửi sẻ tốn rất nhiều tài nguyên CPU bởiviệc tính sai khóa chia sẻ bí mật chung Diffie-Hellman
- Kẻ tấn công có thể làm ngập máy bên gửi bằng việc gửi lượng lớn DHrequest chứa khóa công khai Diffie-Hellman từ máy nhận có địa chỉ IPgiả mạo
Cách phòng chống tấn công DoS lên giao thức Diffie – Hellman trong các
bộ giao thức bảo mật có sử dụng giao thức này để thỏa thuận khóa phiên như sau:
Trang 35- Sử dụng giao thức truyền tin cậy TCP tại tằng vận chuyển: ví dụ bộ giaothức TLS và SSH sử dụng kết nối TCP để giảm thiểu tấn công DoS.
- Sử dụng cookie không trạng thái (DTLS và IKEv2): Máy chủ dịch vụ sẽyêu cầu máy trạm (máy người dung) một giá trị cookie không trạng thái
và yêu cầu máy trạm gửi lại thông điệp DH negotiation requests chứa giá
Cơ chế này buộc kẻ tấn công phải có cookie đính kèm trong thông điệpthông điệp DH negotiation requests, điều này làm cho các cuộc tấn côngDoS có địa chỉ IP giả mạo khó nhưng không thể ngăn chặn các cuộc tấncông DoS từ các địa chỉ IP hợp lệ
- Tương tự như đối với tấn công phát lại thì để chống tấn công DoS thìtrong giao thức ZRTP, chuỗi băm một chiều được biết bởi hai bên vàchia nhỏ ra đính kèm như một phần của thông điệp gửi cho đối tác liênlạc
Tấn công thời gian (Timing Attacks)
Quá trình tính toán trong giao thức Diffie-Hellman thì CPU sẽ phải thực hiệnrất nhiều phép lũy thừa theo modulo Quá trình tính toán này sẽ bao hàm quá trìnhdịch xử lý các bit 0 và bit 1 của số mũ, với bit 1 CPU xử lý lâu hơn bit 0 Điều nàydẫn tới tấn công kênh kề liên quan thời gian tính toán CPU với các bit 0, 1 để tìm
ra số mũ hay chính là giá trị bí mật của các bên liên lạc
2.1.3 Các phiên bản cải tiến của giao thức Diffie-Hellman
Giao thức trao đổi khóa Diffie – Hellman có khóa phiên K chỉ được tạo rakhi bắt đầu phiên liên lạc giữa A và B và duy nhất cho phiên liên lạc này Điều nàydẫn tới không cần lưu giữ khóa K trong một thời gian dài tránh gây nguy cơ lộkhóa Ngoài ra ,việc thỏa thuận không yêu cầu cơ sở hạ tầng mạng phụ trợ nàokhác, ngoài việc thỏa thuận trước các tham số miền công khai là ( , ).α p Tuy nhiên,
nó vẫn còn tồn tại rất nhiều điểm yếu:
- Giao thức không cung cấp bất kỳ thông tin gì về định danh các bên liênlạc
- Bị tổn thương trước tấn công man-in-the-middle (tấn công xen giữa)
- Bị tổn thương trước tấn công gây tắc nghẽn
Trang 36Từ những điều hạn chế trên giao thức thỏa thuận khóa giao thức thỏa thuậnkhóa Diffie – Hellman được cải tiến nhằm tăng cường tính bảo mật và các đặcđiểm cải tiến này như sau:
- Thực hiện cơ chế cookies chống lại các cuộc tấn công tắc nghẽn (tấn
công DoS)
- Cho phép hai bên liên lạc đàm phán một group: Về bản chất là chỉ ra
tham số miền công khai cụ thể của giao thức Diffie-Hellman
- Sử dụng giá trị Nonces để chống lại tấn công phát lại.
- Cho phép chỉ cần trao đổi giá trị khóa công khai Giá trị tham số miền
công khai sẽ được cài đặt mặc định trong từng group.
- Thực hiện xác thực trong thỏa thuận khóa Diffie-Hellman chống lại tấncông xen giữa
Để hiểu thêm về những cải tiến bảo mật này thì quá trình hoạt động được lýgiải như sau:
- Mỗi bên liên lạc sẽ được yêu cầu sinh một giá trị cookies (ban đầu là một
số giả ngẫu nhiên) chứa trong các thông điệp ban đầu và được đối tác liênlạc chấp nhận Sự chấp nhận này được lặp lại trong thông điệp đầu củaquá trình trao đổi khóa Diffie-Hellman Nếu địa chỉ nguồn (bên gửi thôngđiệp) bị giả mạo bởi kẻ tấn công thì kẻ tấn công sẽ không nhận được câutrả lời Do đó, kẻ tấn công chỉ có thể bắt bên nhận tạo ra thông điệp có sựchấp nhận mà không cần thực hiện tính toán Diffie-Hellman
Một số ví dụ về phiên bản cải tiến của giao thức Diffie – Hellman:
- DH Group 1: Số modulo dài 768 bit
Trang 37- DH Group 2: Số modulo dài 768 bit
FFFFFFFF FFFFFFFF
- DH Group 3: Thỏa thuận khóa Diffie – Hellman dựa trên đường cong
Elliptics trên trường Galois GF(2155):
+ Đa thức bất khả quy: u155 + u62 +1
+ Dạng cơ số 16 của đa thức bất khả quy
800000000000000000000004000000000000001
+ Phương trình đường cong: y2 + xy x= 3 +ax2 +b
+ Tọa độ điểm cơ sở G(x,y) hệ cơ số 16: x = 7B, y = 1C8
+ Tham số a, b hệ cơ số 16: a = 0, b = 7338F
+ Bậc n của G:
800000000000000000057DB5698537193AEF944
- DH Group 4: Thỏa thuận khóa Diffie – Hellman dựa trên đường cong
Elliptics trên trường Galois GF(2185):
+ Đa thức bất khả quy: u185+ u69 +1
+ Dạng cơ số 16 của đa thức bất khả quy:
20000000000000000000000000000200000000000000001
+ Phương trình đường cong: y2 + xy x= 3 +ax2 +b
+ Tọa độ điểm cơ sở G(x,y) hệ cơ số 16: x = 18, y = D
+ Tham số a, b hệ cơ số 16: a = 0, b = 1EE9
+ Bậc n của G hệ cơ số 16:
1FFFFFFFFFFFFFFFFFFFFFFDBF2F889B73E484175F94EBC
- DH Group 5: Số modulo dài 1536 bit
Trang 38Dễ thấy rằng, DH Group 3, 4 là các phiên bản giao thức Diffie-Hellman cảitiến có độ an toàn cao được trình bày và chứng minh trong các phần tiếp theo củachương 2 đồ án Việc cải tiến giao thức Diffie-Hellman sẽ giúp ngăn chặn đượcnhững tấn công lên quá trình hoạt động của giao thức này trong môi trường mạngthực tế và cả tấn công lên cấu trúc toán học của Diffie-Hellman Ngăn chặn tấncông lên cấu trúc toán học của Diffie-Hellman nhờ vào việc lựa chọn tham số antoàn của các giao thức cải tiến này và chi tiết việc lựa chọn tham số an toàn đượctrình bày trong mục 2.3.