Hiện có rất nhiều cácphương pháp xác thực người dùng được áp dụng phổ biến nhưng luôn còn tồn tại những nhược điểm quan trọng như: username và password, chữ ký số, To-kens, Kerberos….tr
Trang 1LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
BẢNG GIẢI THÍCH CÁC TỪ VIẾT TẮT 5
DANH MỤC HÌNH VẼ 6
PHẦN MỞ ĐẦU 7
Chương 1 10
GIỚI THIỆU TỔNG QUAN CÁC GIAO THỨC XÁC THỰC 10
1.1 AN TOÀN THÔNG TIN LÀ GÌ ? 10
1.2 GIAO THỨC XÁC THỨC 11
1.2.1 Xác thực là gì? 11
1.2.2 Những kỹ thuật xác thực cơ bản 14
1.2.3 Các phương pháp xác thực 26
1.3 MỘT SỐ GIAO THỨC XÁC THỨC 28
1.3.1 Needham-Schroeder 28
1.3.2 Giao thức SSL 30
1.3.3 Radius 31
1.3.4 Chứng chỉ khoá công khai X.509 33
1.4 Tấn công trên các giao thức xác thực 36
1.4.1 Tấn công phát lại(Replay Attack) 36
1.4.2 Tấn công người đứng giữa(Man-in-The-Middle-MiTM) 38
1.4.3 Tấn công phiên song song 42
1.4.4 Tấn công phản xạ (Reflection Attack) 43
1.4.5 Tấn công dựa trên khiếm khuyết kiểu 44
1.4.6 Tấn công do bỏ sót tên: 45
Chương 2 48
TỔNG QUAN VỀ GIAO THỨC KERBEROS 48
2.1 SƠ LƯƠT VỀ GIAO THỨC 48
2.1.1 Lịch sử phát triển 48
2.1.2 Ứng dụng của Kerberos 49
2.2 MỤC TIÊU VÀ YÊU CầU CỦA HỆ THỐNG KERBEROS 50
2.2.1 Mục Tiêu 50
2.2.2 Yêu Cầu 51
2.2.3 Nguyên tắc hoạt động chung 51
2.2.4 Mô tả giao thức 52
2.2.5 Các thành phần trong hệ thống kerberos 53
2.2.6 Mã hóa 56
2.2.7 Hoạt Động 56
2.3 ĐÁNH GIÁ HỆ THỐNG KERBEROS 63
Trang 22.3.1 Ưu điểm 63
2.3.2 Nhược điểm 65
Chương 3 66
XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG KERBEROS 66
3.1 Mục tiêu 66
3.2 Yêu cầu và nhiệm vụ của chương trình: 66
3.2.1 Yêu cầu 66
3.2.2 Nhiệm vụ 66
3.3 Quy trình hoạt động 69
3.4 Chương trình và kết quả 71
KẾT LUẬN 74
Tài liệu tham khảo 75
Trang 3DANH MỤC HÌNH V
Trang 4Hình 1 1 Cơ chế thách đố giải đố 15
Hình 1 2 Chuẩn hóa cơ chế thách đố giải đố 16
Hình 1 3 Cơ chế tem thời gian 17
Hình 1 4 Sự chuẩn hóa cơ chế tem thời gian 18
Hình 1 5 Cơ chế phi chuẩn 18
Hình 1 6 Giao thức xác thực lẫn nhau ba bước sử dụng khoá công khai ISO 20
Hình 1 7 Tấn công Wiener 20
Hình 1 8 Giao thức Woo-Lam 22
Hình 1 9 Xác thực dựa trên mật khẩu 23
Hình 1 10 Giao thức xác thực sử dụng mật khẩu của Needham 24
Hình 1 11 Trao đổi khoá có lập mã EKE 26
Hình 1 12 Hoạt đông của radius 33
Hình 1 13 Các trường Chứng chỉ khóa công khai X509 35
Hình 1 14 Mô tả giao thức xác thực khoá đối xứng Needham-Schroeder 38
Hình 1 15 Tấn công lên giao thức xác thực khoá đối xứng Needham-Schroeder .38
Hình 1 16 Mô tả giao thức xác thực khóa công khai Needhan-Schroeder 39
Hình 1 17 Tấn công lên giao thức xác thực khóa công khai Needhan-Schroeder .41
Hình 1 18 Tấn công phiên song song 43
Hình 1 19 Tấn công phản xạ 44
Hình 1 20 Mô tả giao thức được đề xuất bởi Neuman và Stubblebine 45
Hình 1 21 Tấn công lên khiếm khuyết kiểu 45
Hình 1 22 Mô tả giao thức được đề xuất bởi Denning và Sacco 46
Hình 1 23 Biến thể của giao thức Otway-Rees 47
Hình 1 24 Tấn công lên biến thể của giao thức Otway-Rees 47
Hình 1 25 Hoạt động của giao thức Kerberos 59
Hình 1 26 Người dùng truy cập vào AS 60
Hình 1 27 Trao đổi giữa người dùng và TGS 61
Hình 1 28 Người dùng chứng thực với server dịch vụ 62
Hình 1 29 Hỗ trợ uỷ nhiệm trong Kerberos 63
Hình 1 30 Giao diện chính 72
Hình 1 31 Đăng Nhập 73
Hình 1 32 Yêu cầu dịch vụ 73
Hình 1 33 Hoàn tất xác thực 73
Trang 5PHẦN MỞ ĐẦU
1 Tính cấp thiết, Tình hình nghiên cứu liên quan Đồ án
Ngày nay CNTT không ngừng phát triển, nó giúp thay đổi toàn bộ thếgiới theo xu hướng số hóa và hiện đại hóa hơn Trên thế giới trong tất cả cácngành nghề hiện có đều tồn tại sự góp mặt của CNTT từ văn phòng đến thươngmại, du lịch, học tập… Nó giúp các nước trên thế giới thu hẹp khoảng cách vềđịa lý và mở ra cơ hội hội nhập và phát triển rộng rãi Kéo theo sự phát triển củaCNTT luôn tồn tại hai mặt tốt và xấu, mặt xấu đó chính là sự an toàn bảo mậtthông tin và đánh cắp dữ liệu thông tin của các hacker đối với các tổ chức, cánhân gây ra những hiểm họa vô cùng nghiêm trọng Hiện nay trên thế giới có rấtnhiều biện pháp và cách phòng tránh các nguy cơ trên, trong đó các hoạt độngliên quan đến xác thực người dùng cũng được quan tâm Hiện có rất nhiều cácphương pháp xác thực người dùng được áp dụng phổ biến nhưng luôn còn tồn
tại những nhược điểm quan trọng như: username và password, chữ ký số,
To-kens, Kerberos….trong đó Kerberos là một giao thức với cơ chế bảo mật tốt, độtin cậy cao và là một giao thức xác thực mã nguồn mở được cung cấp miễn phí
và đem lại hiệu quả cao Từ những lý do trên và sự hướng dẫn của Tiến sĩHoàng Tuấn Hảo – Bộ môn An toàn thông tin – Khoa CNTT để tôi quyết định
chọn đồ án “Nghiên cứu và thử nghiệm phương pháp xác thực Kerberos”
làm một hướng nghiên cứu cho mình
2 Mục đích và nhiệm vụ của Đồ án
- Mục đích: Nghiên cứu và thử nghiệm phương pháp xác thực Kerberos.
- Nhiệm vụ: dựa trên cơ sở mục đích nghiên cứu, tác giả xác định đồ án
gồm hai nhiệm vụ chính sau đây:
Thứ nhất, nghiên cứu phương pháp xác thực Kerberos
Thứ hai, xây dựng một ứng dụng thử nghiệm phương pháp xác thực Kerberos.
Để hoàn thành được 2 nhiệm vụ đề ra, tác giả cẩn làm rõ được các nội dungsau:
Trang 6- Làm rõ cơ sở lý luận, thực tiễn liên quan đến phương pháp xác thựcKerberos;
- Đề xuất phương án, mô hình thử nghiệm;
- Nêu kết luận, khuyến nghị
3 Đối tượng và phạm vi nghiên cứu của Đồ án
- Đối tượng nghiên cứu:
Báo cáo xác định đối tượng nghiên cứu ở đây là Phương pháp xác thựcKerberos và các ứng dụng của phương pháp đó
- Phạm vi nghiên cứu: Do thời gian nghiên cứu còn hạn chế và một số
điều kiện khách quan, chủ quan khác, tác giả xác định hướng và xác định phạm
vi nghiên cứu là tìn hiểu tổng quan về các giao thức xác thực hiện tại và những
ưu nhược điểm của nó Nội dung đồ án tập trung nghiên cứu và tìm hiểu cơ chế,nguyên tắc hoạt động chung của giao thức Kerberos từ đó đánh giá được mụctiêu, yêu cầu và ưu nhược điểm của Kerberos
4 Phương pháp nghiên cứu của đồ án
Căn cứ vào mục đích, yêu cầu, nội dung đặt ra của đồ án, tác giả xác địnhphương pháp nghiên cứu ở đây bao gồm:
- Xây dựng một sơ đồ nghiên cứu tổng quan mang lại cái nhìn chung nhất;
- Tiến hành thu thập thông tin, nghiên cứu tài liệu, dựa trên những tài liệutham khảo, xây dựng quy trình dự kiện; nêu rõ các cơ sở khoa học từ đó xácđịnh cần nghiên cứu toàn bộ hay một số công đoạn cụ thể
- Xử lý các thông tin, số liệu thu thập được: Xử lý toán học đối với cácthông tin định lượng, thống kê, xác định quy luật của tập hợp số liệu Xử lýlogic đối với các thông tin định tính Đưa ra những phán đoán về quy luật biếnđổi, đồng thời thể hiện những liên hệ logic của sự biến đổi với các sự kiện đượcxem xét Các thông tin định lượng và định tính cần được xử lý để xây dựng các
Trang 7luận cứ, khái quát hóa để làm bộc lộ các quy luật, phục vụ cho việc chứng minhhoặc bác bỏ các giả thuyết khoa học
5 Ý nghĩa lý luận và thực tiễn của Đồ án
Đồ án tập trung nghiêm cứu về giao thức xác thực Kerberos và mô hìnhhoạt động của nó Mang lại cho bạn đọc một cái nhìn sâu sắc hơn về các giaothức xác thực nói chung và phương pháp xác thực Kerberos nói riêng Tìm hiểu
về lịch sử hình thành phát triển của Kerberos, nêu rõ ra được mục tiêu, yêu cầu
và nguyên tắc hoạt động chung của hệ thống Kerberos qua đó đánh giá đượcnhững ưu điểm và hạn chế của mô hình Đi sâu tìm hiểu về kỹ thuật xác thực,cách thức hoạt động của xác thực Kerberos và các cách tấn công trên các giaothức này Từ những tìm hiểu về Kerberos đã xây dựng mô hình thử nghiệm cácbước hoạt động của Kerberos bằng ngôn ngữ Java trên NetBeans IDE 8.0
6 Kết cấu của Đồ án
Toàn bộ nội dung của báo cáo được tổ chức theo bố cục 4 phần như sau:
- Phần mở đầu
- Phần nội dung: gồm 3 chương:
Chương 1 Giới thiệu tổng quan các giao thức xác thực
Chương 2 Tổng quan về giao thức kerberos
Chương 3 Xây dựng chương trình mô phỏng giao thức Kerberos
- Phần kết luận
- Phần danh mục tài liệu tham khảo
Trang 8Chương 1 GIỚI THIỆU TỔNG QUAN CÁC GIAO THỨC XÁC THỰC
1.1 AN TOÀN THÔNG TIN LÀ GÌ ?
An toàn nghĩa là thông tin được bảo vệ, các hệ thống và những dịch vụ cókhả năng chống lại những tai hoạ, lỗi và sự tác động không mong đợi, các thayđổi tác động đến độ an toàn của hệ thống là nhỏ nhất Hệ thống có một trong cácđặc điểm sau là không an toàn: Các thông tin dữ liệu trong hệ thống bị ngườikhông được quyền truy nhập tìm cách lấy và sử dụng (thông tin bị rò rỉ) Cácthông tin trong hệ thống bị thay thế hoặc sửa đổi làm sai lệch nội dung (thôngtin bị xáo trộn)
Thông tin chỉ có giá trị cao khi đảm bảo tính chính xác và kịp thời, hệthống chỉ có thể cung cấp các thông tin có giá trị thực sự khi các chức năng của
hệ thống đảm bảo hoạt động đúng đắn Mục tiêu của an toàn bảo mật trong côngnghệ thông tin là đưa ra một số tiêu chuẩn an toàn Ứng dụng các tiêu chuẩn antoàn này vào đâu để loại trừ hoặc giảm bớt các nguy hiểm Do kỹ thuật truyềnnhận và xử lý thông tin ngày càng phát triển đáp ứng cácyêu cầu ngày càng caonên hệ thống chỉ có thể đạt tới độ an toàn nào đó Quản lý an toàn và sự rủi rođược gắn chặt với quản lý chất lượng Khi đánh giá độ an toàn thông tin cầnphải dựa trên phân tích các rủi ro, tăng sự an toàn bằng cách giảm tối thiểu rủi
ro Các đánh giá cần hài hoà với đặc tính, cấu trúc hệ thống và quá trình kiểm trachất lượng
Hiện nay các biện pháp tấn công càng ngày càng tinh vi, sự đe doạ tới độ
an toàn thông tin có thể đến từ nhiều nơi theo nhiều cách chúng ta nên đưa racác chính sách và phương pháp đề phòng cần thiết
Trên trường quốc tế tiêu chuẩn Anh BS 7799 "Hướng dẫn về quản lý antoàn thông tin", được công bố lần đầu tiên vào năm 1995, đã được chấp nhận.Xuất phát từ phần 1 của Tiêu chuẩn Anh BS 77999 là tiêu chuẩn ISO/IEC17799:2000 mà hiện nay tồn tại dưới phiên bản được sửa đổi ISO/IEC17799:2005
Trang 9Nội dung ISO/IEC 17799:2005 bao gồm 134 biện pháp cho an toàn thôngtin và được chia thành 11 nhóm:
Chính sách an toàn thông tin (Information security policy): chỉ thị vàhướng dẫn về an toàn thông tin
Tổ chức an toàn thông tin (Organization of information security): tổchức biện pháp an tòan và qui trình quản lý
Quản lý tài sản (Asset managemen): trách nhiệm và phân loại giá trị thông tin
An ninh cá nhân (Human resource security)
An toàn vật chất và môi trường (Physical and environmental security)Quản lý vận hành và trao đổi thông tin (Communications andoperations management)
Kiểm tra truy cập (Access control)
Thu nhận, phát triển và bảo quản các hệ thống thông tin (Informationsystems acquisition, development and maintenance)
Xử lý sự cố an toàn thông tin (Information security incident Mnagement)Phương án cho trường hợp khẩn cấp (Business continuity management)Theo đúng các quy định pháp luật (Compliance)
Tiêu chuẩn ISO/IEC 27001:2005 phát triển từ phần 2 của BS 7799 Tiêuchuẩn này quy định các yêu cầu đối với một hệ thống quản lý an toàn thông tin vàtương tự như ISO 9001 là một tiêu chuẩn về quản lý có thể được cấp giấy chứngnhận
1.2 GIAO THỨC XÁC THỨC
1.2.1 Xác thực là gì?
Xác thực-Authentication là một hành động nhằm thiết lập hoặc chứngthực một cái gì đó (hoặc một người nào đó) đáng tin cậy, có nghĩa là, nhữnglời khai báo do người đó đưa ra hoặc về vật đó là sự thật Xác thực một đốitượng còn có nghĩa là công nhận nguồn gốc (provenance) của đối tượng trongkhi, xác thực một người thường bao gồm việc thẩm tra nhận dạng của họ.Việc xác thực thường phụ thuộc vào một hoặc nhiều nhân tố xácthực (authentication factors) để minh chứng cụ thể
Trang 10Trong an ninh máy tính xác thực là một quy trình nhằm cố gắng xácminh nhận dạng số (digital identity) của phần truyền gửi thông tin (sender) tronggiao thông liên lạc chẳng hạn như một yêu cầu đăng nhập Phần gửi cần phải xácthực có thể là một người dùng sử dụng một máy tính, bản thân một máytính hoặc một chương trình ứng dụng máy tính (computer program) Ngượclại Sự tin cậy mù quáng (blind credential) hoàn toàn không thiết lập sự đòi hỏinhận dạng, song chỉ thiết lập quyền hoặc địa vị hẹp hòi của người dùng hoặc củachương trình ứng dụng mà thôi
Để phân biệt từ "xác thực" (authentication) với một từ gần gũi với nó, "sự
ủy quyền" (hay sự cấp phép) (authorization)
Một ví dụ quen thuộc là ví dụ về quản lý truy cập Một hệ thống máy tínhđáng ra chỉ nên được sử dụng bởi những người được ủy quyền sử dụng mà thôi
và nó phải nỗ lực phát hiện và loại trừ những người dùng không được ủy quyền.Việc truy cập máy do đó thường được quản lý bằng cách đòi hỏi một thủ tục xácthực nhận dạng của người dùng được tiến hành, với một mức độ đáng tin cậynào đó, rồi sau đó mới ban cho người dùng những đặc quyền mà chúng ta có thểcấp cho chỉ danh của người dùng đó Những ví dụ thông thường trong việc quản
lý truy cập mà trong đó việc xác thực là một việc không tránh khỏi, gồm có:
Rút tiền mặt từ một Máy rút tiền tự động (Automated Teller
Machine - ATM).
Quản lý một máy tính từ xa thông qua Internet
Sử dụng một hệ thống giao dịch ngân hàng trên mạng internet (Online
Internet banking).
Đinh nghĩa toán học Một mã xác thực là một bộ 4 (S,R,K,C) thoả mãn
các điều kiện sau:
S là tập hữu hạn các trạng thái nguồn có thể
A là tập hợp các nhãn xác thực có thể
K là một tập hữu hạn các khoá có thể (không gian khoá) Với mỗi kK
có một quy tắc xác thực ek: S→R
Tập bản tin được xác định bằng C=S→R
Trang 11Chú ý một trạng thái nguồn tương đương với một bản rõ.Một bản tin gồmmột bản rõ với một nhãn xác thực kèm theo,một cách chính xác hơn có thể coi
đó là là một bản tin đã được xác nhận.Một quy tắc xác thực không nhất thiếtphải là hàm đơn ánh
Để phát một thông báo (đã được kí).Alice và Bob phải tuân theo giao thứcsau.Trước tiên họ phải chộn một khoá ngẫu nhiên k ∈ K.Điều này được thựchiện một cách bí mật như trong hệ mật khoá bi mật.Sau đó giả sử rằng Alicemuốn gửi một trạng thái nguồn sS cho Bob trong một kênh không antoàn.Alice sẽ tính a=ek(s) và gửi bản tin (s,a)cho Bob.Khi nhận được (s,a) Bobtính a’=eK(s).Nếu a=a’ thì Bob chấp nhận bản tin là xác thực,ngược lại Bob sẽloại bỏ nó
Ta sẽ nghiên cứu hai kiểu tấn công khác nhau mà Oscar có thể tiếnhành.Trong cả hai loại này,Oscar sẽ là’’kẻ xâm nhập vào giưa cuộc’’.Các phéptấn công này được mô tả như sau:
Ứng với mỗi phương pháp này là một xác xuất lừa bịp, là xác suất đểOscar thành công trong việc lừa Bob nếu anh ta (Oscar) tuân thủ một chiến lượctối ưu Các xác suất này được kí hiệu là Pd0 (trường hợp giảmạo)và Pd1(trườnghợp thay thế) Để tình Pd0 và Pd1 ta cần phải xác định các phân bố xác suất trên
S vàK.Các xác suất này được kí hiệu tương ứng là Ps và Pk
Trang 12Giả sử rằng Oscar đã biết mã xác thực và hai phân bố xác suất này.Chỉ cómột thông tin mà Alice và Bob có nhưng mà Oscar không được biết là giá trị củakhoá
1.2.2 Những kỹ thuật xác thực cơ bản
Có nhiều kỹ thuật khác nhau dựa trên giao thức để hiện thực hoá xác thực vàthiết lập khoá có xác thực nhưng những kiến thiết giao thức cơ bản đặc biệt lànhững kiến thiết tốt lại là thống nhất
Những kỹ thuật xác thực cơ bản là:
1.2.2.1 Tính tươi của thông báo và tính sống của thực thể
Thông báo có tươi hay không là một phần cần thiết của xác thực nguồn gốc
dữ liệu và cả trong trường hợp xác thực thực thể khi thực thể quan tâm đến sựtương ứng sống của bên liên lạc chủ ý Bởi vậy những cơ chế thiết lập tính tươicủa thông báo và tính sống của thực thể là những thành phần cơ bản nhất trongnhững giao thức xác thực
Mô tả sau đây là những cơ chế chuẩn và cơ bản để đạt được những chứcnăng này Trong những mô tả này, Alice đứng trên vị trí của người yêu cầu theotính chất (Ví dụ là tính khoẻ của Alice ta hay tính tươi của thông báo) và Bobđứng trên vị trí của người kiểm tra theo tính chất yêu cầu Chúng ta giả thuyếtrằng Alice và Bob chia sẻ khoá bí mật KAB nếu cơ chế sử dụng những kỹ thuậtmật mã đối xứng hoặc Bob biết khoá công khai của Alice thông qua chứng chỉkhoá công khai nếu cơ chế sử dụng những kỹ thuật mật mã phi đối xứng
a Cơ chế thách đố-giải đố (Challenge-Respone)
Dạng thông thường của đầu vào của Bob có thể là số ngẫu nhiên được gọi
là nonce được sinh ra bởi Bob và truyền sang cho Alice trước đó Giả sử NB kýhiệu nonce sinh ra bởi Bob Cơ chế làm tươi thông báo này có khuôn dạng tươngtác sau đây:
Trang 13Hình 1 1 Cơ chế thách đố giải đố
Thông báo được truyền trong bước một thường gọi là thách đố của Bobđối với Alice và thông báo được truyền trong bước thứ hai gọi là giải đố củaAlice đối với Bob Bob ở trong vị thế của người khởi xướng trong khi đó Alice
ở trong vị thế của người trả lời
Kỹ thuật được sử dụng trong cơ chế này là kỹ thuật mật mã đối xứng Bởivậy sau khi nhận được giải đố của Alice,Bob phải giải mã bản mã sử dụng khoáchia sẻ KAB Nếu sự giải mã lấy ra đúng nonce của anh ta thì Bob có thể kết luậnrằng Alice thực ra đã thực hiện biến đổi mật mã được yêu cầu sau hành động gửithách đố của anh ta: Nếu khoảng thời gian giữa thách đố và giải đố là nhỏ chấpnhận được thì thông báo M được coi là tươi thực sự
Bản chất của cơ chế làm tươi thông báo này là đảm bảo sự biến đổi mật
mã của Alice phải được thực hiện sau khi Alice nhận được nonce của Bob Đó là
do nonce của Bob được lấy mẫu ngẫu nhiên từ một không gian đủ lớn và nhưvậy không ai có thể đoán trước được giá trị của nó trước khi anh ta gửi nó đi
Nếu thuật toán lập mã trong cơ chế xác thực trên không cung cấp dịch
vụ nguyên vẹn dữ liệu đúng đắn thì Bob không thể thiết lập được tính tươicủa thông báo M
b Chuẩn hóa cơ chế thách đố-giải đố
ISO và IEC đã chuẩn hoá ba cơ chế thách đố-giải đố được đưa ra hiện nayđối với những cơ chế xác thực thực thể đơn phương Sự chuẩn hoá đối với cơchế đã nghiên cứu trên được gọi là “giao thức xác thực đơn phương hai bước”:
Hình 1 2 Chuẩn hóa cơ chế thách đố giải đố
Trang 14Sau khi nhận được TokenAB Bob giải mã nó và
+ Chấp nhận nếu thấy RB là nonce mà Bob gửi cho Alice
+ Từ chối trong trường hợp ngược lại
Các ký hiệu của ISO/IEC để đặc tả giao thức bao gồm:Text1, Text2 là
những trường tuỳ chọn, dấu || ký hiệu nối xâu bít, còn RB là nonce được sinh rabởi Bob
Chuẩn trên là cơ chế xác thực thực thể Chính vì vậy mà nó đưa vào thôngbáo B chính là định danh của Bob thay cho thông báo M là cực kỳ quan trọng
Trong giao thức này Bob là chủ thể xác thực và do vậy mà có mục đíchthiết lập sự tương ứng sống của Bob
c Cơ chế tem thời gian(Time Stamp).
Trong cơ chế tem thời gian Alice thêm thời gian hiện tại vào thông báo củamình Giả sử TA là ký hiệu tem thời gian được tạo ra bởi Alice khi Alice tạo rathông báo của Alice Cơ chế làm tươi thông báo này có khuôn dạng không tươngtác sau đây:
Hình 1 3 Cơ chế tem thời gian
Quá trình giải mã được thực hiện bởi Bob cũng cần được kiểm tra đối với sựđúng đắn của tính nguyên vẹn dữ liệu Sau khi giải mã Bob có thể so sánh TA
nhận được với thời gian của chính anh ta với giả thiết rằng những người thamgia giao thức sử dụng thời gian chuẩn toàn cầu như GMT chẳng hạn Nếu sựkhác nhau về thời gian đử nhỏ cho phép bởi ứng dụng trong suy nghĩ của Bobthì thông báo M dường như là tươi
Tem thời gian tránh được sự cần thiết phải tương tác và vì vậy thích hợp chonhững ứng dụng liên quan đến không tương tác ví dụ như trong những ứng dụngthư điện tử Sự bất tiện của cơ chế tem thời gian là việc đồng bộ hoá đồng hồ thời
Trang 15gian cần được đòi hỏi và phải được duy trì an toàn,trên thực tế điều này rất khókhăn.
Trong kiến thiết giao thức cơ bản nonce và tem thời gian là những thànhphần đặc biệt của thông báo Chúng đóng vai trò nhận biết tính tươi của nhữngthông báo khác được tích hợp mật mã với chúng
d Sự chuẩn hóa cơ chế tem thời gian.
ISO/IEC cũng chuẩn hoá những cơ chế tem thời gian đối với những giaothức xác thực Sự chuẩn hoá ISO/IEC đối với cơ chế nêu trên được gọi là
“Giao thức xác thực đơn phương một bước ISO khoá đối xứng” và là như sauđây:
Hình 1 4 Sự chuẩn hóa cơ chế tem thời gian
Chúng ta nhớ lại rằng giao thức xác thực nên là phi trạng thái: Một giaothức có trạng thái không thể vận hành đúng đắn trong môi trường “thù địch”.Chính vì vậy mà cơ chế số tuần tự không được khuyên cáo sử dụng mặc dùnhững cơ chế như vậy đã được chuẩn hoá theo chuẩn ISO/IEC
e Cơ chế phi chuẩn
Từ những cơ chế trên có thể dễ dàng xây dựng một biến thể,ví dụ như
Trang 16Hình 1 5 Cơ chế phi chuẩn
Đây là loại cơ chế lập mã rồi lại giải mã của thực thể nhận biết tính tươi.Thực hiện cơ chế này sẽ cung cấp phương cách để kiểm tra tính hợp lệ của
sự tương ứng sống của bên liên lạc có chủ định Cơ chế này không phù hợp
để xây dựng những giao thức xác thực Trong cơ chế này Alice có thể tình
cờ làm lộ thông tin cần giữ kín
Malice có thể ghi lại bản mã từ cuộc trao đổi kín giữa Alice và Bob vàchèn nó vào trong giao thức sử dụng cơ chế lập mã rồi sau lại giải mã
Do đó cơ chế lập mã rồi lại giải mã không được ISO/IEC xem xét trongquá trình chuẩn hóa
Tuy nhiên đã có nhiều giao thức xác thực được thiết kế để sử dụng cơ chếlập mã rồi lại giải mã Và việc sử dụng những cơ chế không chuẩn như vậy lànguyên nhân chính của những khiếm khuyết an toàn trong những giao thức này
1.2.2.2.Xác thực lẫn nhau
Những cơ chế cơ bản đối với tính tươi của thông báo và tính sống củathực thể đã đưa ra hiện đạt được cái gọi là “xác thực đơn phương” có nghĩa làchỉ có một trong hai thực thể tham gia vào giao thức là được xác thực Trongxác thực lẫn nhau cả hai thực thể liên lạc đều được xác thực nhau
Người ta có thể coi xác thực lẫn nhau chỉ đơn giản là hai xác thực đơnphương Tức là xác thực lẫn nhau có thể đạt được bằng cách áp dụng một trongnhững giao thức xác thực đơn phương cơ bản hai lần ở hai hướng ngược nhau
mà thôi Nhưng trên thực tế quan niệm này là không chính xác
Quan hệ tinh tế giữa xác thực lẫn nhau và xác thực một phía đã khôngđược hiểu rõ ràng từ trong giai đoạn sớm của quá trình chuẩn hoá ISO/IEC đốivới giao thức dưới đây
Trang 17 Giao thức: Giao thức xác thực lẫn nhau ba bước sử dụng khoá công khaiISO.
Giả thiết: A có chứng chỉ khoá công khai CertA; B có chứng chỉ khoácông khai CertB;
Mục đích: Họ đạt được sự xác thực lẫn nhau
Hình 1 6 Giao thức xác thực lẫn nhau ba bước sử dụng khoá công khai ISO
Trong đó:
TokenAB = RA || RB || B || sigA(RA || RB || B);
TokenBA = RB || RA || A || sigB(RB || RA || A)
Tấn công của Wiener:
Tấn công này còn được gọi là tấn công Canada do được khám phá ra bởi
cơ quan thành viên Canada của ISO
Trang 18Hình 1 7 Tấn công Wiener
Các bước tấn công
1 Malice giả mạo Bob gửi cho Alice RB
2 Alice nhận được thông điệp,gửi lại cho Malice: CertA, RA || RB || B ||
sigA(RA || RB || B ).
a) Malice tiến hành tách lấy RA và gửi nó cho Bob
b) B nhận được RA tiến hành gửi lại cho Malice CertB, R’B || RA || A ||
Trang 191.2.2.3.Xác thực liên quan đến bên thứ ba tin cậy:
Trong quá trình xác thực,chúng ta đã giả thiết rằng hai bên tham gia giaothức hoặc là đã chia sẻ kênh truyền an toàn trong trường hợp những kiến thiết sửdụng những kỹ thuật mật mã đối xứng hoặc biết khoá công khai của bên kia trongtrường hợp những kiến thiết sử dụng những kỹ thuật mật mã phi đối xứng.Điềunày có mục đích làm tươi kênh an toàn giữa các bên bằng cách khẳng định lại sựtương ứng sống giữa họ với nhau Nếu hai thực thể không biết nhau muốn tiếnhành liên lạc an toàn thì đầu tiên phải thiết lập kênh an toàn Kênh an toàn đượccủng cố bởi khoá mật mã Bởi vậy hai thực thể muốn thiết lập kênh an toàn vớinhau thì thực hiện giao được gọi là giao thức thiết lập khoá có xác thực Sau khikết thúc phiên liên lạc an toàn hai thực thể sẽ nhanh chóng vứt bỏ kênh này Tức
là họ quên đi khoá sử dụng trong kênh đó và không bao giờ sử dụng nó nữa.Chính vì vậy mà kênh an toàn này gọi là kênh phiên và khoá củng cố nó gọi làkhoá phiên
Kiến trúc chuẩn cho các thực thể thực hiện xác thực và những giao thứcthiết lập khoá trong hệ thống mở là sử dụng dịch vụ xác thực tập trung từ bênthứ ba tin cậy Dịch vụ như vậy có thể là trực tuyến hoặc ngoại tuyến
Có hai chuẩn ISO/IEC đối với các giao thức xác thực bên thứ ba tin cậy.Một cái có tên “giao thức xác thực bốn bước ISO” và một cái có tên “giaothức xác thực năm bước ISO” Hai giao thức này đạt được xác thực thực thểhai phía và thiết lập khoá phiên có xác thực
Giao thức Woo-Lam:
Mục đích của giao thức này là Alice xác thực mình đối với Bob thậm chí khihai thực thể ban đầu còn chưa biết nhau
Trang 20Hình 1 8 Giao thức Woo-Lam
Mô tả:
1 Alice gửi cho Bob định danh của mình để yêu cầu xác thực với Bob.
2 Bob sinh ra một nonce NB và gửi cho Alice
3 Alice mã hóa NB bằng khóa KAT chia sẻ với Trent: N BK AT
4 Bob gửi bản mã bao gồm định danh Alice và N BK AT Alice gửi cho ởbước ba cho Trent.Thông điệp được mã hóa bằng khóa KBT chia sẻ với Trent
5 Trent dựa vào hai khóa KBT và KAT lần lượt giải mã hai lần bản mã để thuđược NB.Sau đó mã hóa NB bằng KBT và gửi lại cho Bob
6 Bob giải mã thông điệp từ Trent,so sánh NB có được từ thông điệp với NB
mình sinh ra và:
a) Chấp nhận Alice xác thực đúng nếu NB đúng là mình sinh ra
b) Từ chối trong trường hợp ngược lại.
1.2.2.4.Xác thực dựa trên mật khẩu:
Xác thực dựa trên mật khẩu là hình thức xác thực phổ biến nhất trong
mô hình xác thực từ xa giữa user và host.ở dạng xác thực này user và hostchia sẻ mật khẩu
Người sử dụng U muốn sử dụng dịch vụ của trạm H thì đầu tiên phải đượckhởi hoạt bởi H và được cấp phát mật khẩu H lưu trữ một kho mật khẩu của tất
cả người sử dụng Mỗi mục của kho lưu trữ mật khẩu là một cặp (IDU,PU) với
IDU là định danh của U còn PU là mật khẩu tương ứng của U
Trang 21Hình 1 9 Xác thực dựa trên mật khẩu
Giao thức dựa trên mật khẩu được trình bày như sau:
1 Khi User U muốn đăng nhập vào Host H,U gửi cho H bản tin IDU..
2 H nhận được yêu cầu của U,gửi lại bản tin yêu cầu U cung cấp mậtkhẩu cho định danh IDU
3 U gửi cho H mật khẩu của mình (tương ứng với định danh IDU )
4 H tìm cặp (IDU,PU) từ trong kho lưu trữ và:
a) Chấp nhận nếu thấy có cặp trùng với (IDU,PU) trong kho
b) Từ chối trong trường hợp ngược lại
Cần phải lưu ý rằng giao thức này thật ra không phải là xác thực thực thể
cũng không phải là xác thực một phía từ U đến H vì không có phần nào của giaothức đả động đến nhận biết tính tươi đối với nhận biết tương ứng sống của U
Giao thức này gặp phải hai vấn đề nghiêm trọng:
1 Thứ nhất là khả năng tổn thương đối của tệp mật khẩu lưu giữ trong H.Tệp này có thể bị đọc bởi Malice Với tệp mật khẩu,Malice có thể đạt được tất
cả quyền của tất cả những người sử dụng Anh ta có thể đóng giả bất kỳ người
sử dụng nào và dưới vỏ bọc tên người khác,nguy cơ bị phát hiện là rất thấp
2 Thứ hai là đối với giao thức truy cập từ xa dựa trên mật khẩu làm chomật khẩu đi từ U đến H dưới dạng bản rõ bởi vậy nó có thể bị Malice nghe trộm.Đây là kiểu tấn công nghe trộm mật khẩu trực tuyến
a Giao thức mật khẩu Needham và việc triển khai trong hệ điều hành UNIX:
Needham có sáng kiến đưa ra phương pháp hiệu quả và đơn giản đángngạc nhiên để khắc phục lưu trữ an toàn mật khẩu tại máy trạm Trạm H nên sử
Trang 22dụng hàm một chiều để lập mã mật khẩu tức là mục (IDU,PU) nên được thaybằng (IDU, f(PU)) ở đó f là hàm một chiều cực kỳ khó nghịch đảo.
Hình 1 10 Giao thức xác thực sử dụng mật khẩu của Needham
Đây là sơ đồ xác thực sử dụng mật khẩu được cài đặt cho hệ điều hànhUNIX Hàm f được cài đặt sử dụng thuật toán lập mã DES Bằng cách này biếnđổi f(PU) sử dụng DES có thể được coi là hàm băm một chiều có khoá,khoá là PU
còn tham số là salt Nhờ có salt mục mật khẩu lưu trữ trong tệp mật khẩu trong
H sẽ là (IDU,salt,f(PU,salt))
Mặc dù tính bí mật của tệp mật khẩu đã được đảm bảo vì đã được lập mãnhưng tính nguyên vẹn dữ liệu vẫn phải được duy trì Tuy vậy mật khẩu vẫn cóthể bị nghe trộm trực tuyến vì vậy mà mật khẩu sử dụng một lần được đề xuất đểchống lại tấn công dạng này
b Sơ đồ mật khẩu sử dụng một lần:
Lamport đề xuất ý tưởng đơn giản để cản phá nghe trộm mật khẩu trựctuyến Kỹ thuật này có thể được coi là sơ đồ mật khẩu một lần “Một lần” cónghĩa là những mật khẩu được truyền từ U đến H không lặp lại tuy nhiên chúng
có quan hệ tính toán với nhau Bây giờ thì một mật khẩu bị nghe trộm sẽ khôngthể sử dụng lại và vấn đề nghe trộm mật khẩu đã được ngăn ngừa thành công
Trong thời gian khởi hoạt của người sử dụng mục mật khẩu của U đượcthiết lập là (IDU, fn(PU)) ở đó
Trang 23def n
Khi nhận được fn-1(PU) thì H chỉ việc áp dụng f một lần nữa trên mật khẩunhận được để đạt được fn(PU) và thực hiện kiểm tra tính đúng đắn như trongbước tư của mô hình 2.9 Ngoài ra H còn cập nhật mục mật khẩu của U bằngcách thay thế fn(PU) bằng fn-1(PU) Giao thức này là có trạng thái với con đếmgiảm dần từ n đến 1 Khi con đếm đạt đến 1 thì U và H phải tái thiết lập mậtkhẩu mới cho U Do đó mà đồng bộ con đếm mật khẩu giữa U và H luôn phảiđược duy trì
c Thêm Salt vào trong giao thức xác thực:
Đa số những hệ thống dựa trên mật khẩu khuyên người sử dụng chọn mậtkhẩu của họ sao cho chúng nên có 8 ký tự Mật khẩu có độ dài như vậy có thểnhớ được bởi đa số người sử dụng mà không cần phải viết ra giấy Vì các ký tựASCII được biểu diễn bằng một byte gồm 8 bít nên mật khẩu 8 ký tự sẽ tươngứng với xâu 64 bít Không gian của những xâu 64 bít có 264 khả năng và như vậy
là đủ lớn để chống lại được việc đoán mật khẩu hoặc thậm chí những tấn côngduyệt tự động
Mặc dù vậy người sử dụng thường chọn mật khẩu cho dễ nhớ như là tênngười thân,người yêu,sinh nhật,những từ trong từ điển, tên người sử dụng tất cảđều là chữ thường,hoặc có thể thêm vào cuối một hai chữ số Do đó không gianmật khẩu nhỏ hơn 264 rất nhiều và là đối tượng cho tấn công từ điển ngoại tuyến.Malice sẽ sử dụng f(PU),dò tìm trong từ điển để tìm được mật khẩu trùng khớpvới PU Thực hiện ngoại tuyến sẽ tự động và nhanh hơn so với trực tuyến Sơ đồmật khẩu một lần của Lamport cũng không thể chống lại được tấn công từ điểnngoại tuyến: Malice có thể nghe trộm giá trị trạng thái hiện hành i và fi(PU) và từ
đó có thể tiến hành duyệt tìm từ điển
Trang 24Bellovin và Merritt đề xuất một giao thức mới có tên là Trao đổi khoáđược lập mã (Encrypted Key Exchange- hay viết tắt là EKE ) Giao thức này bảo
vệ mật khẩu chống lại cả những tấn công nghe trộm trực tuyến và từ điển ngoạituyến Kỹ thuật sử dụng là lập mã xác suất cơ bản
Hình 1 11 Trao đổi khoá có lập mã EKE
Trong bước một bản mã PU(U ) là kết quả của việc lập mã một đoạn
thông tin ngẫu nhiên và một lần U sử dụng khoá P
U Trong bước hai nội dungđược lập mã hai lần trong bản mã PU (U(K)) với K là khóa phiên
Tính ngẫu nhiên một lần của Uđóng vai trò của mẹo “salt” Nếu “khoá
công khai” không là một lần thì chức năng duy nhất của giao thức EKE sẽ thất bạihoàn toàn: Thậm chí có thể dễ dàng cho Malice tìm kiếm mật khẩu PU sử dụng
Trang 25yếu điểm của thuật toán mật mã khoá công khai chẳng hạn tấn công “gặp nhau ởgiữa”
Nếu những nonce NU, NH được lập mã trong thông báo dòng 3,4,5 đượcsinh ra ngẫu nhiên và có kích cỡ lớn phù hợp chẳng hạn lớn hơn so với khoáphiên K thì chúng che giấu tiếp được khoá phiên K bằng cùng một cách như đốivới mật khẩu PU được che giấu trong hai thông báo đầu Do đó mà PU vẫn còn làđộc lập thống kê đối với bất kỳ thông báo nào đi qua trong giao thức EKE
Sự độc lập thống kê của mật khẩu PU đối với những thông báo đi quatrong chuyến giao thức có nghĩa là mật khẩu được che giấu khỏi kẻ nghe trộmtheo nghĩa an toàn lý thuyết thông tin
Về bản chất là “salt” thêm vào mật khẩu đã “khuyếch đại” kích cỡ củakhông gian mật khẩu từ kích cỡ từ điển lên đến kích cỡ khoá phi đối xứng ngẫunhiên Đó chính là mẹo đằng sau giao thức EKE
1.2.3 Các phương pháp xác thực
a Xác thực dựa trên user name và password
Sự kết hợp của một user name và password là cách xác thực cơ bản nhất.Với kiểu xác thực này, chứng từ ủy nhiệm User được đối chiếu với chứng từđược lưu trữ trên database hệ thống , nếu trùng khớp username và password, thìuser được xác thực và nếu không User bị cấm truy cập Phương thức này khôngbảo mật lắm vì chứng từ xác nhận User được gửi đi xác thực trong tình trạngplain text, tức không được mã hóa và có thể bị tóm trên đường truyền
Trang 26b Challenge handshake authentication protocol (CHAP)
Challenge Handshake Authentication Protocol (CHAP) cũng là mô hìnhxác thực dựa trên user name/password Khi user cố gắng log on, server đảmnhiệm vai trò xác thực sẽ gửi một thông điệp thử thách (challenge message) trởlại máy tính User Lúc này máy tính User sẽ phản hồi lại user name và passwordđược mã hóa Server xác thực sẽ so sánh phiên bản xác thực User được lưu giữvới phiên bản mã hóa vừa nhận , nếu trùng khớp, user sẽ được authenticated.Bản thân Password không bao giờ được gửi qua network
Phương thức CHAP thường được sử dụng khi User logon vào các remoteservers của cty chẳng hạn như RAS server Dữ liệu chứa password được mã hóagọi là password băm (hash password) Một gói băm là một loại mã hóa không cóphương cách giải mã
c Kerberos
Kerberos authentication dùng một Server trung tâm để kiểm tra việc xácthực user và cấp phát thẻ thông hành (service tickets) để User có thể truy cậpvào tài nguyên Kerberos là một phương thức rất an toàn trong authenticationbởi vì dùng cấp độ mã hóa rất mạnh Kerberos cũng dựa trên độ chính xác củathời gian xác thực giữa Server và Client Computer, do đó cần đảm bảo có mộttime server hoặc authenticating servers được đồng bộ time từ các Internet timeserver Kerberos là nền tảng xác thực chính của nhiều OS như Unix, Windows
d Tokens
Tokens là phương tiện vật lý như các thẻ thông minh (smart cards) hoặc thẻđeo của nhân viên (ID badges) chứa thông tin xác thực Tokens có thể lưu trữ sốnhận dạng cá nhân-personal identification numbers (PINs), thông tin về user, hoặcpasswords Các thông tin trên token chỉ có thể được đọc và xử lý bởi các thiết bịđặc dụng, ví dụ như thẻ smart card được đọc bởi đầu đọc smart card gắn trênComputer, sau đó thông tin này được gửi đến authenticating server Tokens chứachuỗi text hoặc giá trị số duy nhất thông thương mỗi giá trị này chỉ sử dụng mộtlần
Trang 27Ví dụ: Smart Cards là ví dụ điển hình về xác thực tokens- token-basedauthentication Một smart card là một thẻ nhựa có gắn một chip máy tính lưu trữcác loại thông tin điện tử khác nhau Nội dung thông tin của card được đọc vớimột thiết bị đặc biệt.
e Biometrics
Biometrics (phương pháp nhận dạng sinh trắc học) mô hình xác thực dựatrên đặc điểm sinh học của từng cá nhân Quét dấu vân tay (fingerprint scanner),quét võng mạc mắt (retinal scanner), nhận dạng giọng nói(voice-recognition),nhận dạng khuôn mặt(facerecognition).Vì nhận dạng sinh trắc học hiện rất tốnkém chi phí khi triển khai nên không được chấp nhận rộng rãi như các phươngthức xác thực khác
f Multi-factor authentication
Multi-factor authentication, xác thực dựa trên nhiều nhân tố kết hợp, là
mô hình xác thực yêu cầu kiểm ít nhất 2 nhân tố xác thực Có thể đó là sự kếthợp của bất cứ nhân tố nào ví dụ như: bạn là ai, bạn có gì chứng minh và bạnbiết gì?
Ví dụ: Cần phải đưa thẽ nhận dạng vào đầu đọc và cho biết tiếp password làgì?
g Mutual authentication
Mutual authentication, xác thực lẫn nhau là kỹ thuật bảo mật mà mỗithành phần tham gia giao tiếp với nhau kiểm tra lẫn nhau Trước hết Server chứatài nguyên kiểm tra “giấy phép truy cập” của client và sau đó client lại kiểm tra
“giấy phép cấp tài nguyên” của Server Điều này giống như khi bạn giao dịchvới một Server của bank, bạn cần kiểm tra Server xem có đúng của bank khônghay là một cái bẫy của hacker giăng ra, và ngược lại Server bank sẽ kiểm trabạn…
Trang 281.3 MỘT SỐ GIAO THỨC XÁC THỨC
1.3.1 Needham-Schroeder
Needham-Schroeder là một giao thức truyền thông phục vụ cho việc xácthực trên các mạng máy tính không an toàn Giao thức do Roger Needham vàMichael Schroeder phát minh vào năm 1978 Nó cho phép các thực thể trao đổithông tin có thể chứng minh nhận dạng của mình đồng thời chống lại việc nghelén và phát hiện, ngăn chặn việc truy cập, thay đổi thông tin trên đường truyền
Phiên làm việc của A & B thông qua trung gian KDC, giao thức được mô
tả như sau, trong đó A sử dụng máy chủ KDC chứng minh nhận dạng của mình
với B, đồng thời tạo ra khóa chung (K S)
Trước khi các giao dịch có thể diễn ra, mỗi người sử dụng trong hệ thống
có một khóa bí mật chia sẻ với máy chủ
Khi muốn trao đổi thông tin với B, đầu tiên, A gửi một gói tin tới máy chủ
trong đó có định danh của A và B cùng với một số được tạo ngẫu nhiêu N 1
A→KDC: IDA || IDB || N1 (
1)
Máy chủ tạo ra một khóa phiên K S để A và B sử dụng trong giao dịch tiếptheo Sau đó, máy chủ gửi khóa này cho A dưới dạng mật mã hóa bằng khóachung giữa máy chủ và A; đồng thời máy chủ cũng mật mã hóa khóa phiên bằng
khóa chung với B và gửi cho A Số ngẫu nhiên N 1 được gửi kèm cùng gói tin đểđảm bảo gói tin là mới (tránh trường hợp kẻ tấn công dùng lại gói tin cũ) và địnhdanh của B để A biết được người để dùng khóa (trong trường hợp A đồng thờigiao dịch với nhiều người)
KDC→A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ] (
Trang 29B giải mã gói tin nhận được và thu được khóa phiên B tạo ra một số ngẫunhiên khác và gửi cho A sau khi mật mã hóa với khóa phiên để chứng tỏ mình
1.3.2 Giao thức SSL
Được phát triển bởi Netscape, ngày nay giao thức Secure Socket Layer(SSL) đã được sử dụng rộng rãi trên World Wide Web trong việc xác thực và
mã hoá thông tin giữa client và server
SSL được thiết kế như là một giao thức riêng cho vấn đề bảo mật có thể
hỗ trợ cho rất nhiều ứng dụng Giao thức SSL hoạt động bên trên TCP/IP và bêndưới các giao thức ứng dụng tầng cao hơn như là HTTP-Hyper Text TransportProtocol, FTP -File Transport Protocol Trong khi SSL có thể sử dụng để hỗ trợcác giao dịch an toàn cho rất nhiều ứng dụng khác nhau trên Internet, thì hiệnnay SSL được sử dụng chính cho các giao dịch trên Web
SSL không phải là một giao thức đơn lẻ, mà là một tập các thủ tục đãđược chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau:
Xác thực server: Cho phép người sử dụng xác thực được server muốn kếtnối Lúc này, phía browser sử dụng các kỹ thuật mã hoá công khai để chắc chắnrằng certificate và public ID của server là có giá trị và được cấp phát bởi một
CA (certificate authority) trong danh sách các CA đáng tin cậy của client Điềunày rất quan trọng đối với người dùng Ví dụ như khi gửi mã số credit card qua
Trang 30mạng thì người dùng thực sự muốn kiểm tra liệu server sẽ nhận thông tin này cóđúng là server mà họ định gửi đến không.
Xác thực Client: Cho phép phía server xác thực được người sử dụng muốnkết nối Phía server cũng sử dụng các kỹ thuật mã hoá công khai để kiểm traxem certificate và public ID của server có giá trị hay không và được cấp phátbởi một CA trong danh sách các CA đáng tin cậy của server không Điều nàyrất quan trọng đối với các nhà cung cấp Ví dụ như khi một ngân hàng định gửicác thông tin tài chính mang tính bảo mật tới khách hàng thì họ rất muốn kiểmtra định danh của người nhận
Mã hoá kết nối: Tất cả các thông tin trao đổi giữa client và server được
mã hoá trên đường truyền nhằm nâng cao khả năng bảo mật Điều này rất quantrọng đối với cả hai bên khi có các giao dịch mang tính riêng tư Ngoài ra, tất cảcác dữ liệu được gửi đi trên một kết nối SSL đã được mã hoá còn được bảo vệnhờ cơ chế tự động phát hiện các xáo trộn, thay đổi trong dữ liệu ( đó là cácthuật toán băm – hash algorithm)
Giao thức SSL bao gồm 2 giao thức con: giao thức SSL record và giaothức SSL handshake Giao thức SSL record xác định các định dạng dùng đểtruyền dữ liệu Giao thức SSL handshake (gọi là giao thức bắt tay) sẽ sử dụngSSL record protocol để trao đổi một số thông tin giữa server và client vào lấnđầu tiên thiết lập kết nối SSL
Cho đến nay SSL đã có ba phiên bản:
SSL 1.0: được sử dụng nội bộ chỉ bởi Netscape Communications Nó
chứa một số khiếm khuyết nghiêm trọng và không bao giờ được tung ra bênngoài
SSL 2.0: được kết nhập vào Netscape Communications 1.0 đến 2.x Nó có
một số điểm yếu liên quan đến sự hiện thân cụ thể của cuộc tấn công của đốitượng trung gian Trong một nỗ lực nhằm dùng sự không chắc chắn của côngchúng về bảo mật của SSL, Microsoft cũng đã giới thiệu giao thức PCT (Private
Trang 31Communication Technology) cạnh tranh trong lần tung ra Internet Explorer đầutiên của nó vào năm 1996.
SSL 3.0 đã được tung ra chính thức vào tháng 3 năm 1996 Nó được thực
thi trong tất cả các trình duyệt chính bao gồm ví dụ Microsoft Internet Explorer3.0 (và các phiên bản cao hơn), Netscape Navigator 3.0 (và các phiên bản caohơn)
1.3.3 Radius
Giới thiệu giao thức
Radius ( Remote Access Dial-In User Service) là giao thức bảo mật mạngdựa theo mô hình client-server, được phát triển bởi doanh nghiệp Livingston Nódùng giao thức UDP Radius server thường chạy trên máy tính, Client là cácdạng thiết bị có thể truyền thông tin đến radius server được chỉ định trước và sau
đó đóng vai trò phúc đáp mà nó trả về Giao tiếp giữa client và radius serverđược xác thực thông qua việc sử dụng khóa bí mật chung không được truyềnqua mạng
Nó được định nghĩa trong RFC 2865 và 2866 ( RFC: Request forComments - Đề nghị duyệt thảo và bình luận) với khả năng cung cấp xác thựctập trung, cấp phép và điều khiển truy cập (authentication, authorization, vàaccounting – AAA) cho các phiên làm việc – như việc cung cấp xác thực củacác nhà cung cấp dịch vụ Internet (ISP) đều dựa trên giao thức này để xác thựcngười dùng khi họ truy cập Internet
Chức năng và hoạt động
Hình 1 12 Hoạt đông của radius
Trang 32Radius cần thiết trong tất cả các Network Access Server (NAS) để làmviệc với danh sách các username và password cho việc cấp phép, radius access-request sẽ chuyển các thông tin tới một Authentication Server, thông thường nó
là một AAA Server (AAA – authentication, authoriztion, và accounting) Trongkiến trúc của hệ thống nó tạo ra khả năng tập trung các dữ liệu, thông tin củangười dùng, các điều kiện truy cập trên một điểm duy nhất (single point), trongkhi có khả năng cung cấp cho một hệ thống lớn, cung cấp giải pháp NASs
Khi một user kết nối, NAS sẽ gửi một message dạng radius Request tới máy chủ AAA Server, chuyển các thông tin như username vàpassword, thông qua một port xác định, NAS identify, và một messageAuthenticator
Access-Sau khi nhận được các thông tin máy chủ AAA sử dụng các gói tin đượccung cấp như NAS identify, và Authenticator thẩm định lại việc NAS đó cóđược phép gửi các yêu cầu đó không Nếu có khả năng, máy chủ AAA sẽ tìmkiểm tra thông tin username và password mà người dùng yêu cầu truy cập trong
cơ sở dữ lệu Nếu quá trình kiểm tra là đúng thì nó sẽ mang một thông tin trongAccess-Request quyết định quá trình truy cập của user đó là được chấp nhận
Khi quá trình xác thực bắt đầu được sử dụng, máy chủ AAA có thể sẽ trả
về một RADIUS Access-Challenge mang một số ngẫu nhiên NAS sẽ chuyểnthông tin đến người dùng từ xa (với ví dụ này sử dụng CHAP) Khi đó ngườidùng sẽ phải trả lời đúng các yêu cầu xác nhận (trong ví dụ này, đưa ra lời đềnghị mã hoá password), sau đó NAS sẽ chuyển tới máy chủ AAA một messageRADIUS Access-Request
Nếu máy chủ AAA sau khi kiểm tra các thông tin của người dùng hoàntoàn thoả mãn sẽ cho phép sử dụng dịch vụ, nó sẽ trả về một message dạngradius Access-Accept Nếu không thoả mãn máy chủ AAA sẽ trả về một tinradius access-reject và NAS sẽ ngắt kết nối với user
Khi một gói tin Access-Accept được nhận và radius accounting đã đượcthiết lập, NAS sẽ gửi mộtgói tin RADIUS Accounting-Request (Start) tới máychủ AAA Máy chủ sẽ thêm các thông tin vào file Log của nó, với việc NAS sẽcho phép phiên làm việc với user bắt đầu khi nào, và kết thúc khi nào, RADIUS
Trang 33Accouting làm nhiệm vụ ghi lại quá trình xác thực của user vào hệ thống, khi kếtthúc phiên làm việc NAS sẽ gửi một thông tin RADIUS Accounting-Request(Stop).
1.3.4 Chứng chỉ khoá công khai X.509
Chứng chỉ X.509 v3 là định dạng chứng chỉ được sử dụng phổ biến vàđược hầu hết các nhà cung cấp sản phẩm PKI (public-key infrastructures) triểnkhai
Chứng chỉ khoá công khai X.509 được Hội viễn thông quốc tế (ITU) đưa
ra lần đầu tiên năm 1988 như là một bộ phận của dịch vụ thư mục X.500
Chứng chỉ gồm 2 phần Phần đầu là những trường cơ bản cần thiết phải cótrong chứng chỉ Phần thứ hai chứa thêm một số trường phụ, những trường phụnày được gọi là trường mở rộng dùng để xác định và đáp ứng những yêu cầu bổsung của hệ thống
Các thành phần của PKI:
Certification Authorities (CA ) Cấp và thu hồi chứng chỉ
Registration Authorities (RA) Gắn kết giữa khoá công khai và địnhdanh của người giữ chứng chỉ
Clients: Người sử dụng chứng chỉ PKI hay theo cách khác được xácđịnh như những thực thể cuối
Người sử dụng cuối hoặc hệ thống là chủ thể của chứng chỉ PKI
Repository: Hệ thống (có thể phân tán) lưu trữ chứng chỉ và danh sáchcácchứng chỉ bị thu hồi.Cung cấp cơ chế phân phối chứng chỉ và CRLs đến cácthực thể cuối
Những trường cơ bản của chứng chỉ X.509
Trang 34Hình 1 13 Các trường Chứng chỉ khóa công khai X509
Validity Period khoảng thời gian chứng chỉ có hiệu lực Trường này xác định
thời gian chứng chỉ bắt đầu có hiệu lực và thời điểm hết hạn
Subject
xác định thực thể mà khoá công khai của thực thể này được xác nhận Tên của subject phải duy nhất đối với mỗi thực thể
CA xác nhận Subject public key
information
chứa khoá công khai và những tham số liên quan; xác định thuật toán (ví dụ RSA hay DSA) được sử dụng cùng với khoá Issuer Unique ID
(Optional)
là trường không bắt buộc, trường này cho phép sử dụng lại tên người cấp Trường này hiếm được sử dụng trong triển khai thực tế
Extensions (Optional) chỉ có trong chứng chỉ v.3
Trang 35Ngoài ra chứng chỉ X509 còn một số trường mở rộng, phần mở rộng là
những thông tin về các thuộc tính cần thiết được đưa vào đểgắn những thuộctính này với người sử dụng hay khoá công Những thông tin trong phần mở rộngthường được dùng để quản lý xác thực phân cấp, chính sách chứng chỉ, thông tin
về chứng chỉ bị thu hồi…Nó cũng có thể được sử dụng để định nghĩaphần mởrộng riêng chứa những thông tin đặc trưng cho cộng đồng nhất định Mỗi trường
mở rộng trong chứng chỉ được thiết kế với cờ “critical” hoặc “uncritical”
Tính toàn vẹn của chứng chỉ được đảm bảo bằng chữ ký số của CA trênchứng chỉ Khoá công khai của CA được phân phối đến người sử dụng chứngchỉ theo một số cơ chế bảo mật trước khi thực hiện các thao tác PKI Người sửdụng kiểm tra hiệu lực của chứng chỉ được cấp với chữ ký số của CA và khoácông khaicủa CA
Trang 36Chức năng cơ bản của X509
Chứng thực (certification) là chức năng quan trọng nhất của hệ thống
PKI Đây là quá trình ràng buộc khoá công khai với định danh của thực thể CA
là thực thể PKI thực hiện chức năng chứng thực Có hai phương pháp chứngthực:
Tổ chức chứng thực (CA) tạo ra cặp khoá công khai / khoá bí mật và tạo
ra chứng chỉ cho phần khoá công của cặp khoá
Người sử dụng tự tạo cặp khoá và đưa khoá công cho CA để CA tạochứng chỉ cho khoá công đó Chứng chỉ đảm bảo tính toàn vẹn của khoá côngkhai và các thông tin gắn cùng
Thẩm tra (validation)Quá trình xác định liệu chứng chỉ đã đưa ra có thể
được sử dụng đúng mục đích thích hợp hay không được xem như là quá trìnhkiểm tra tính hiệu lực của chứng chỉ Quá trình này bao gồm một số bước sau:
Kiểm tra xem liệu có đúng là CA được tin tưởng đã ký số lên chứng chỉhay không (xử lý theo đường dẫn chứng chỉ)
Kiểm tra chữ ký số của CA trên chứng chỉ để kiểm tra tính toàn vẹn
Xác định xem chứng chỉ còn ở trong thời gian có hiệu lực hay không.Xác định xem chứng chỉ đã bị thu hồi hay chưa
Xác định xem chứng chỉ đang được sử dụng có đúng mục đích, chínhsách, giới hạn hay không (bằng cách kiểm tra những trường mở rộng cụ thể như
mở rộng chính sách chứng chỉ hay mở rộng việc sử dụng khoá)
Hệ thống PKI thực hiện chức năng chứng thực, thẩm tra cùng với một sốchức năng phụ trợ khác Dưới đây là một số chức năng và dịch vụ được hầu hếtcác hệ thống PKI cung cấp Một số những chức năng khác có thể được địnhnghĩa tuỳ theo yêu cầu cụ thể của các hệ thống PKI
Trang 371.4 Tấn công trên các giao thức xác thực
1.4.1 Tấn công phát lại(Replay Attack)
Trong tấn công phát lại Malice đã có một thông báo cũ –thông báo này được Malice ghi lại từ phiên liên lạc trước của giao thức.Malice sẽ tiến hành phát lại thông báo này trong phiên liên lạc mới
Hình 1 14 Mô tả giao thức xác thực khoá đối xứng Needham-Schroeder
Trang 38Hình 1 15 Tấn công lên giao thức xác thực khoá đối xứng Needham-Schroeder
Trong tấn công trên,Malice thay thế thông điệp mà Alice gửi được trongbước 3 bằng thông điệp cũ mà Malice đã ghi lại khi Alice và Bob trao đổi vớinhau rong quá khứ.Thông điệp cũ đó được Malice gửi lại cho Bob tại bước 3’,tấtnhiên cùng thông điệp này,Malice cũng đã biết khóa phiên trước đó K’
Tại bước 4, Bob nhận được thông điệp của Malice ,tiến hành giải mã vàthu được khóa phiên cũ K’ Bob theo thuật toán,cũng sinh NB,sau đó mã hóabằng K’,gưi thông điệp cho Malice để thách đố Tuy nhiên,do sử dụng khóa K’,
mà Malice đã biết khóa này nên sự thách đố này trở nên vô dụng,Malice hoàntoàn vượt qua được thách đố và thiết lập thành công phiên liên lạc giữa mình vàBob trong khi Bob luôn nghĩ rằng đó là Alice
1.4.2 Tấn công người đứng giữa(Man-in-The-Middle-MiTM)
Tấn công trên giao thức xác thực khóa công khai Needhan-Schroeder:
a Mô tả giao thức