Trường Đại Học Công Nghệ Thông Tin – ĐHQG Tp.HCM
Khoa Mạng Máy Tính và Truyền Thông
MÔN ỨNG DỤNG TRUYỀN THÔNG VÀ AN NINH THÔNG TIN
CHYÊN ĐỀ 24
XÂY DỰNG MẠNG TIN CẬY
(BUILDING TRUSTED NETWORKS)
Giảng viên hướng dẫn: Ths. Tô Nguyễn Nhật Quang
Nhóm 1:
Nguyễn Tấn Thành - 08520357
Nguyễn Đức Trung - 08520432
Mẫn Văn Thắng - 08520370
Nguyễn Hinh - 08520123
Lê Xuân Vũ – 08520481
HCM, 04/2012
Mục lục
Danh sách hình
Danh sách bảng
LỜI NÓI ĐẦU
Đây là chuyên đề cuối cùng trong loạt chuyên đề của giáo trình SCNA, nó là sự tổng hợp
các kiến thức đã được giới thiệu trong các nhóm trước. Nội dung của chuyên đề này chủ yếu đi
thẳng vào việc xây dựng và triển khai một môi trường tin cậy giữa hai mạng nhỏ là Windows và
Linux. Nhưng trước tiên ta cần tìm hiểu lại các khía cạnh của mạng tin cậy bao gồm: nó là gì? nó
có cần thiết không? Các thành phần của nó? Sau đó kiến thức cơ bản về hạ tầng khóa công khai
(PKI) là hệ thống cung cấp các dịch vụ cho mạng tin cậy cũng sẽ được đề cập. Phần cuối cùng sẽ
trình bày các bước cài đặt và cấu hình một mạng tin cậy dựa trên một mô hình với các yêu cầu cụ
thể.
Nhóm 1 xin chân thành cảm ơn sự hướng dẫn tận tình của thầy Tô Nguyễn Nhật Quang
cũng như sự góp ý từ các bạn trong lớp trong quá trình thực hiện chuyên đề này.
1. GIỚI THIỆU VỀ MẠNG TIN CẬY
1.1 Sự cần thiết của mạng tin cậy
Nhiều năm trước đây và cả bây giờ, vẫn còn nhiều người có khái niệm chưa đầy đủ và chuẩn xác
về an toàn mạng. Họ cho là chỉ cần mua về một sản phẩn firewall nào đó, thay đổi một vài cấu
hình cho nó và coi như mạng của họ đã trở nên an toàn. Nếu tổ chức của họ quan tâm nhiều hơn
đến bảo mật mạng, một hệ thống phát hiện/ngăn chặn xâm nhập (IDS/IPS) cùng với hệ thống
anti-virus sẽ được triển khai thêm.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
2
Các thành phần đó (IDS/IPS, firewall, antivirus) cùng nhau tạo nên một hệ thống bảo vệ vững
chắc cho ngoại vi của mạng. Mặc dù vậy chúng vẫn là chưa đủ để đáp ứng các yêu cầu kết nối an
toàn cho một thế giới mạng phức tạp như ngày nay.
Hình 1 – Các lớp phòng thủ ngoại vi của mạng
An toàn mạng ngày nay có thể được định nghĩa như là việc đảm bảo an toàn (bao gồm sự bí mật,
tính toàn vẹn và độ sẵn sàng) cho các phiên truyền thông trên mạng và bảo vệ ngoại vi của mạng.
Khi mà các mạng bên ngoài thường không đáng tin cậy thì các công cụ và kỹ thuật trên vẫn rất
quan trọng nhưng chúng chỉ có thể giúp kiểm soát, sàng lọc các lưu lượng mạng vào và ra mạng
nội bộ của tổ chức. Dưới đây, chúng ta sẽ xem xét những thách thức và mục tiêu mà thực tế một
doanh nghiệp ngày nay thường gặp phải để từ đó thấy được việc phòng thủ ngoại vi cho mạng
thôi là chưa đủ.
Doanh nghiệp có nhiều khách hàng ở các châu lục, đất nước, vùng miền khác nhau. Mỗi khách
hàng cần có khả năng trao đổi thông tin với doanh nghiệp một cách nhanh nhất có thể. Một cách
để đạt được điều này là cung cấp cho họ một kết nối trực tiếp vào mạng doanh nghiệp. Điều này
có nghĩa rằng các khách hàng cũng như các nhà cung cấp, đối tác cần truy cập tới các thông tin
không chỉ ở dạng công khai, như website, mà còn là các thông tin ở dạng bí mật của doanh
nghiệp. Những thông tin bí mật này được lưu trữ bên trong hệ thống mạng của doanh nghiệp
thay vì nằm trên các máy chủ công cộng như webserver.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
3
Hình 2 – Mô hình mạng Extranet điển hình
Đến đây ta cần đặt ra các câu hỏi: những người dùng bên ngoài tổ chức đó cụ thể là những ai và
làm sao để tin cậy được các kênh truyền thông của họ? Các kênh truyền thông tin cậy, an toàn
luôn là một yêu cầu cần thiết. Vì vậy mà cần có cơ chế để đảm bảo không ai có thể đọc trộm
được những thông tin bí mật trên kênh truyền. Và cũng cần có biện pháp để chắc rằng không ai
có thể giả dạng là một người dùng có quyền truy cập hợp pháp vào mạng của tổ chức. Giải quyết
được các câu hỏi trên chính là ta đã hình thành được cái gọi là mạng tin cậy rồi.
Tóm lại, mạng tin cậy cần đạt được các mục tiêu sau:
• Có khả năng thiết lập được các kênh truyền thông an toàn giữa 2 điểm đầu cuối bất kỳ,
như giữa các nhân viên, khách hàng và đối tác.
• Có khả năng nhận dạng được bất kỳ yêu cầu kết nối, truy cập nào là hợp lệ hay không
hợp lệ.
• Có khả năng xác thực người dùng, thiết bị.
1.2 Các yêu cầu và thành phần của mạng tin cậy
Khi thực hiện chuyển dịch từ một mạng hướng phòng thủ sang mạng tin cậy thì cần đáp ứng một
vài dịch vụ/yêu cầu bảo mật thiết yếu sau:
• Nhận dạng
• Xác thực
• Cấp phép
• Bảo mật
• Toàn vẹn
• Không thể chối từ
Nếu không có khả năng đảm bảo tất cả các dịch vụ trên vận hành chính xác trong mạng thì
không thể thiết lập được một mạng tin cậy một cách đầy đủ. Còn trong các mạng hướng phòng
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
4
thủ thì chú trọng tới các dịch vụ sau mà thôi: bí mật, toàn vẹn và xác thực. Dưới đây sẽ bàn thêm
về 6 dịch vụ trên.
Nhận dạng (Identification) là bước đầu tiên trong quá trình xác thực, một đối tượng sẽ cung cấp
một vài dữ liệu dùng để nhận dạng nó (như tên người dùng, mật khẩu, mã PIN, vân tay,…) cho
dịch vụ xác thực.
Xác thực (Authentication) là quá trình xác định xem ai hoặc thứ gì đó có thực sự là người (hoặc
là thứ) mà nó tuyên bố hay không. Hay nói cách khác, đây là việc xác minh nhận dạng của một
người, một thiết bị, một chương trình… nào đó.
Cấp phép (Authorization) là quá trình xác định xem đối tượng (đã được xác thực) được phép làm
những gì. Bước này thường xảy ra sau bước xác thực ở trên.
Bảo mật (Confidentiality) là việc đảm bảo tính bí mật, chỉ để những người được cấp phép mới có
thể đọc được thông tin mang tính riêng tư.
Toàn vẹn (Integrity) là việc đảm bảo tính chính xác và tin cậy của thông tin, và bất kỳ sự thay đổi
trái phép nào tới thông tin sẽ được phát hiện và ngăn chặn.
Chống chối từ (Non-repudiation) là việc đảm bảo rằng đối tượng đã gửi đi thông điệp không thể
phủ nhận việc gửi đó và ngược lại, đối tượng đã nhận được thông điệp cũng không thể phủ nhận
là chưa biết đến thông điệp đó.
Để triển khai những dịch vụ trên thì cần tới các công nghệ cốt lõi sau:
• Mật mã
• Chứng thực mạnh
• Chữ ký số
• Chứng chỉ số
Các công nghệ này gắn kết với nhau để cùng xây dựng nên một mạng tin cậy.
Mật mã
Đây là thành phần có vai trò rất quan trọng, là trái tim của bất cứ mạng tin cậy nào. Nó giúp đảm
bảo bảo mật và toàn vẹn cho các thông điệp, cũng như nhận dạng và xác thực các đối tượng tham
gia vào phiên truyền thông. Về cơ bản, mật mã được phân làm 2 loại chính: mã hóa đối xứng và
mã hóa bất đối xứng.
Loại mã hóa đối xứng thường được gọi là mật mã khóa bí mật và cả hai bên đều sử dụng cùng
một khóa để mã hóa và giải mã thông tin. Các thuật toán mã hóa đối xứng phổ biến như 3DES,
AES, RC5.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
5
Còn loại mã hóa bất đối xứng còn được gọi là mật mã khóa công khai và cần sử dụng một cặp
khóa để mã hóa và giải mã. Nếu mã hóa bằng khóa thứ nhất (gọi là khóa công khai) thì chỉ có thể
giải mã bằng khóa thứ hai (gọi là khóa bí mật) và ngược lại. DSA, RSA, Diffie-Hellman là ví dụ
về các thuật toán mã hóa bất đối xứng nổi tiếng.
Ngoài ra trong mật mã còn có kỹ thuật băm một chiều (one-way hash) là một hàm nhận vào một
thông điệp có chiều dài bất kỳ và tạo ra một chuỗi có chiều dài cố định được gọi là giá trị băm.
Ví dụ, giá trị mà giải thuật băm MD5 tạo ra luôn là 128-bit, với SHA-1 là 160-bit. Hàm băm một
chiều làm việc mà không cần sử dụng bất kỳ khóa nào và đặc biệt, từ kết quả băm cuối cùng thì
rất khó (thường không thể) lần ngược lại thông điệp gốc ban đầu. Nó thường được dùng để kiểm
tra tính toàn vẹn của thông điệp, tập tin.
Chứng thực mạnh
Để thỏa mãn yêu cầu này, hệ thống chứng thực cần phải sử dụng ít nhất 2 trong 3 yếu tố sau:
Thứ mà bạn biết (something you know): mật khẩu hoặc mã PIN là ví dụ điển hình cho phương
thức chứng thực phổ biến nhất này. Cách này thì rẻ tiền, dễ triển khai nhưng có nhược điểm là
nếu ai đó biết được bí mật này thì họ có thể đạt được quyền truy cập vào hệ thống.
Thứ mà bạn có (something you have): ví dụ cho phương thức chứng thực này là thẻ ATM, thẻ
thông minh, thẻ truy cập, phù hiệu v.v… Hạn chế của cách này là những vật đó có thể bị mất
hoặc đánh cắp và bị ai đó lạm dụng để truy cập trái phép vào hệ thống.
Đặc điểm duy nhất trên cơ thể bạn (something you are): là cách nhận diện dựa trên thuộc tính vật
lý duy nhất của một người như võng mạc mắt, dấu vân tay. Phương pháp chứng thực này hiệu
quả vì khó giả mạo hay sao chép nhưng lại mắc tiền để triển khai.
Các phương pháp chứng thực 2 yếu tố (two-factor authentication) trong thực tế thường thấy như
sự kết hợp giữa mật khẩu với thẻ truy cập hoặc thẻ thông minh với sinh trắc học mang lại sự tin
cậy, an toàn hơn chỉ là sử dụng tên người dùng và mật khẩu để đăng nhập vào hệ thống. Các kỹ
thuật trong mật mã cũng được ứng dụng rộng rãi vào các phương thức xác thực như Kerberos,
RADIUS, CHAP, NTLM, v.v…
Chữ ký số
Được tạo ra sử dụng kết hợp giữa hàm băm và mật mã khóa công khai để đảm bảo tính toàn vẹn,
giúp xác thực nguồn gốc của thông điệp và đồng thời bên gửi không thể chối từ việc đã tạo ra
thông điệp đó. Nó là một giá trị băm của thông điệp được mã hóa bằng khóa bí mật của bên gửi
rồi được đính kèm với thông điệp gốc. Bên nhận sẽ dùng khóa công khai của bên gửi để giải mã
phần chữ ký ra được giá trị băm của thông điệp rồi đối chiếu với giá trị mà nó thu được từ việc
thực hiện lại hàm băm trên thông điệp gốc. Nếu hai giá trị đó giống nhau thì bên nhận có thể tin
cậy được rằng thông điệp không bị thay đổi và nó chỉ được gửi từ bên sở hữu khóa công khai ở
trên.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
6
Chứng chỉ số
Là một tập tin giúp chắc chắn rằng khóa công khai thuộc về một thực thể nào đó như người
dùng, tổ chức, máy tính và điều này được xác minh bởi một bên thứ ba đáng tin cậy thường gọi
là CA (Certificate Authorities). Chứng chỉ số chứa các thông tin nhận dạng về thực thể như tên,
địa chỉ, khóa công khai (cùng nhiều thông tin khác) và được ký số bởi khóa bí mật của CA.
Cuối cùng, tất cả 6 dịch vụ và 4 công nghệ nói trên được cung cấp và triển khai bởi một hạ tầng
khóa công khai (Public Key Infrastructure - PKI) làm nền tảng cho các mạng tin cậy mà chúng ta
sẽ cùng tìm hiểu trong phần 2 của chuyên đề này.
2. CƠ BẢN VỀ HẠ TẦNG KHÓA CÔNG KHAI
Dựa trên nền tảng của mật mã khóa công khai, PKI là một hệ thống bao gồm phần mềm, dịch vụ,
chuẩn định dạng, giao thức, quy trình, chính sách để giúp đảm bảo an toàn, tin cậy cho các phiên
truyền thông.
PKI đáp ứng các yêu cầu về xác thực, bảo mật, toàn vẹn, chống chối từ cho các thông điệp được
trao đổi.
1.3 Các thành phần của PKI
Ngoài các thành phần cơ bản đã được đề cập ở phần 1 là chứng chỉ số, chữ ký số và mật mã. PKI
còn được tạo nên bởi các thành phần chức năng chuyên biệt sau:
• Certificate Authority
• Registration Authority
• Certificate Repository và Archive
• Security Server
• PKI-enabled applications và PKI users
Certificate Authority (CA): là một bên thứ được tin cậy có trách nhiệm tạo, quản lý, phân phối,
lưu trữ và thu hồi các chứng chỉ số. CA sẽ nhận các yêu cầu cấp chứng chỉ số và chỉ cấp cho
những ai đã xác minh được nhận dạng của họ.
Registration Authority (RA): đóng vai trò trung gian giữa CA và người dùng. Khi người dùng
cần chứng chỉ số mới, họ gửi yêu cầu tới RA và RA sẽ xác nhận tất cả các thông tin nhận dạng
cần thiết trước khi chuyển tiếp yêu cầu đó tới CA để CA thực hiện tạo và ký số lên chứng chỉ rồi
gửi về cho RA hoặc gửi trực tiếp cho người dùng.
Certificate Repository và Archive: có 2 kho chứa quan trọng trong kiến trúc của PKI. Đầu tiên là
kho công khai lưu trữ và phân phối các chứng chỉ và CRL (chứa danh sách các chứng chỉ không
còn hiệu lực). Cái thứ 2 là một cơ sở dữ liệu được CA dùng để sao lưu các khóa hiện đang sử
dụng và lưu trữ các khóa hết hạn, kho này cần được bảo vệ an toàn như chính CA.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
7
Security Server: là một máy chủ cung cấp các dịch vụ quản lý tập trung tất cả các tài khoản
người dùng, các chính sách bảo mật chứng chỉ số, các mối quan hệ tin cậy (trusted relationship)
giữa các CA trong PKI, lập báo cáo và nhiều dịch vụ khác.
PKI-enabled applications và PKI users: bao gồm các người dùng sử dụng các dịch vụ của PKI
và các phần mềm có hỗ trợ cài đặt và sử dụng các chứng chỉ số như các trình duyệt web, các ứng
dụng email chạy phía máy khách.
1.4 Các kiến trúc triển khai PKI
Tùy vào các yêu cầu, quy mô và khả năng của từng tổ chức mà có thể chọn triển khai một trong
3 mô hình PKI phổ biến sau:
• Hierarchical PKI
• Mesh PKI
• Single CA
Single CA
Hình 3 – Kiến trúc Single CA
Đây là mô hình PKI cơ bản nhất phù hợp với các tổ chức nhỏ trong đó chỉ có một CA cung cấp
dịch vụ cho toàn hệ thống và tất cả người dùng đặt sự tin cậy vào CA này. Mọi thực thể muốn
tham gia vào PKI và xin cấp chứng chỉ đều phải thông qua CA duy nhất này. Mô hình này dễ
thiết kế và triển khai nhưng cũng có các hạn chế riêng. Thứ nhất là ở khả năng co giãn – khi quy
mô tổ chức được mở rộng, chỉ một CA thì khó mà quản lý và đáp ứng tốt các dịch vụ. Hạn chế
thứ hai là CA này sẽ là điểm chịu lỗi duy nhất, nếu nó ngưng hoạt động thì dịch vụ bị ngưng trệ.
Cuối cùng, nếu nó bị xâm hại thì nguy hại tới độ tin cậy của toàn bộ hệ thống và tất cả các chứng
chỉ số phải được cấp lại một khi CA này được phục hồi.
Trust List
Nếu có nhiều CA đơn lẻ trong tổ chức nhưng lại không có các trust relationship giữa các CA
được tạo ra thì bằng cách sử dụng trust list người dùng vẫn có thể tương tác với tất cả các CA.
Lúc này các người dùng sẽ duy trì một danh sách các CA mà họ tin cậy. Các CA mới về sau có
thể dễ dàng được thêm vào danh sách. Phương thức này tuy đơn giản nhưng cũng sẽ tốn thời
gian để cập nhật hết các CA cho một lượng lớn người dùng, mặt khác nếu một CA nào đó bị thỏa
hiệp thì không có một hệ thống cảnh báo nào báo cho những người dùng mà tin cậy CA đó biết
được sự cố này.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
8
Hierarchical PKI
Đây là mô hình PKI được áp dụng rộng rãi trong các tổ chức lớn. Có một CA nằm ở cấp trên
cùng gọi là root CA, tất cả các CA còn lại là các Subordinate CA (gọi tắt là sub. CA) và hoạt
động bên dưới root CA. Ngoại trừ root CA thì các CA còn lại trong đều có duy nhất một CA
khác là cấp trên của nó. Hệ thống tên miền DNS trên Internet cũng có cấu trúc tương tự mô hình
này.
Hình 4 – Kiến trúc Hierarchical PKI
Tất cả các thực thể (như người dùng, máy tính) trong tổ chức đều phải tin cậy cùng một root CA.
Sau đó các trust relationship được thiết lập giữa các sub. CA và cấp trên của chúng thông qua
việc CA cấp trên sẽ cấp các chứng chỉ cho các sub. CA ngay bên dưới nó. Lưu ý, root CA không
trực tiếp cấp chứng chỉ số cho các thực thể mà chúng sẽ được cấp bởi các sub. CA. Các CA mới
có thể được thêm ngay dưới root CA hoặc các sub. CA cấp thấp hơn để phù hợp với sự thay đổi
trong cấu trúc của tổ chức. Sẽ có các mức độ tổn thương khác nhau nếu một CA nào đó trong mô
hình này bị xâm hại.
Trường hợp một sub. CA bị thỏa hiệp thì CA cấp trên của nó sẽ thu hồi chứng chỉ đã cấp cho nó
và chỉ khi sub. CA đó được khôi phục thì nó mới có thể cấp lại các chứng chỉ mới cho người
dùng của nó. Cuối cùng, CA cấp trên sẽ cấp lại cho nó một chứng chỉ mới.
Nếu root CA bị xâm hại thì đó là một vấn đề hoàn toàn khác, toàn bộ hệ thống PKI sẽ chịu ảnh
hưởng. Khi đó tất cả các thực thể cần được thông báo về sự cố và cho đến khi root CA được
phục hồi và các chứng chỉ mới được cấp lại thì không một phiên truyền thông nào là an toàn cả.
Vì thế, cũng như single CA, root CA phải được bảo vệ an toàn ở mức cao nhất để đảm bảo điều
đó không xảy ra và thậm chí root CA có thể ở trạng thái offline – bị tắt và không được kết nối
vào mạng.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
9
Mesh PKI
Nổi lên như một sự thay thế chính cho mô hình Hierarchical PKI truyền thống, thiết kế của Mesh
PKI giống với kiến trúc Web-of-Trust trong đó không có một CA nào làm root CA và các CA sẽ
có vai trò ngang nhau trong việc cung cấp dịch vụ. Tất cả người dùng trong mạng lưới có thể tin
cậy chỉ một CA bất kỳ, không nhất thiết hai hay nhiều người dùng phải cùng tin một CA nào đó
và người dùng tin cậy CA nào thì sẽ nhận chứng chỉ do CA đó cấp.
Hình 5 – Kiến trúc Mesh PKI
Các CA trong mô hình này sau đó sẽ cấp các chứng chỉ cho nhau. Khi hai CA cấp chứng chỉ cho
nhau thì một sự tin cậy hai chiều được thiết lập giữa hai CA đó. Các CA mới có thể được thêm
vào bằng cách tạo các mối tin cậy hai chiều giữa chúng với các CA còn lại trong mạng lưới.
Vì không có một CA duy nhất làm cấp cao nhất nên sự tổn hại khi tấn công vào mô hình này có
khác so với hai mô hình trước đó. Hệ thống PKI không thể bị đánh sập khi chỉ một CA bị thỏa
hiệp. Các CA còn lại sẽ thu hồi chứng chỉ mà chúng đã cấp cho CA bị xâm hại và chỉ khi CA đó
khôi phục hoạt động thì nó mới có khả năng cấp mới các chứng chỉ cho người dùng rồi thiết lập
trust với các CA còn lại trong mạng lưới.
Trên đây là tổng quan các vấn đề trong PKI, còn nhiều nội dung khác về hạ tầng này mà không
tiện đề cập do sẽ vượt ra khỏi trọng tâm của chuyên đề. Ở phần tiếp theo sẽ trình bày việc xây
dựng và triển khai một môi trường tin cậy giữa hai mạng nhỏ Windows và Linux để giúp các
máy trạm trao đổi thông tin một cách an toàn.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
1
0
3. XÂY DỰNG VÀ TRIỂN KHAI MỘT MẠNG TIN CẬY
Đây là phần tổng hợp và áp dụng các kiến thức từ các chuyên đề trước như Cryptography and
Data Security, Secure Email, Planning A Trusted Network, v.v…
Chúng ta sẽ từng bước xây dựng hai mạng nhỏ là Windows và Linux, cả hai đều cần tới các
chứng chỉ số nếu muốn truy cập tài nguyên hay trao đổi thông điệp. Sau đó sẽ thiết lập tin cậy
chéo (cross-trust) giữa hai mạng này và cấu hình một máy chủ email để cho phép các máy trạm ở
hai mạng truyền nhận email trong một môi trường an toàn. Dưới đây là các mục tiêu cụ thể:
• Triển khai các CA trong cả 2 mạng Windows và Linux
• Cấu hình cấu trúc phân cấp CA trên Windows
• Cấu hình CA trên Linux
• Thiết lập cross-trust giữa các CA trong mạng Windows và Linux
• Triển khai và cấu hình email server và các email client để trao đổi email an toàn giữa 2
mạng Windows và Linux
1.5 Mô hình và yêu cầu chuẩn bị
Để đạt được các mục tiêu ở trên, trong bài thực hành này cần chuẩn bị 7 máy. Mô hình mạng
logic và các yêu cầu chuẩn bị cho từng máy như sau:
Hình 6 – Mô hình triển khai mạng tin cậy
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
1
1
Tên máy tính Tên đầy đủ
Domai
n
Địa chỉ IP Hệ điều hành Vai trò
RootCA rootca.uit.vm
uit.vm
10.0.10.1 /
8
Windows
Server 2003
Domain
Controller,
DNS server,
Root CA
SubCA subca.uit.vm
10.0.10.2 /
8
Windows
Server 2003
Subordinate
CA
RA ra.uit.vm
10.0.10.3 /
8
Windows
Server 2003
Registration
Authority
WinClient1 winclient1.uit.vm
10.0.10.4 /
8
Windows XP Máy trạm
DMZW dmzw.uit.vm
10.0.20.1 /
8
Windows
Server 2003
SSL Website
Email Server
LinRootCA linrootca.uit.vm
10.0.30.1 /
8
Ubuntu
Server 10.10
Root CA
LinClient1 linclient1.uit.vm
10.0.30.2 /
8
Ubuntu
11.10
Máy trạm
Bảng 1 – Yêu cầu chuẩn bị triển khai
1.6 Các bước thực hiện
1.6.1 Xây dựng Windows Domain
Trong phần này, ta sẽ tạo một Windows domain (uit.vm) có tích hợp DNS. Sau đó, cấu hình cho
các máy không tham gia vào Windows domain này gồm LinRootCA, LinClient1, DMZW cũng
nằm trong DNS namespace là uit.vm.
Windows domain uit.vm sẽ có một domain controller là máy Root CA và 3 member server là các
máy SubCA, RA, DMZW cùng với một client là máy WinClient1.
Hai máy Linux là LinRootCA và LinClient1 cũng sẽ tham gia vào DNS domain của uit.vm, vì
thế tên đầy đủ của chúng lần lượt là linrootca.uit.vm và linclient1.uit.vm.
Cho mục đích thử nghiệm nên ở đây giả định rằng cả 7 máy đều cùng lớp mạng là 10.x.x.x /
255.0.0.0. Phiên bản hệ điều hành chạy cũng như vai trò của từng máy được liệt kê ở bảng trên.
Bước 1-1: Tạo domain đầu tiên trong một forest mới
Thực hiện tại máy RootCA
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
1
2
1 Đăng nhập bằng tài khoản quản trị.
2 Thiết lập Preferred DNS Server là địa chỉ IP của chính nó (10.0.10.1).
3 Vào Start | Run, chạy lệnh dcpromo để khởi chạy trình cài đặt Active Directory. Sau
đó làm theo các hướng dẫn để cài đặt máy RootCA làm Domain Controller cho một
domain mới (uit.vm) trong một forest mới.
4 Khởi động lại máy để hoàn tất.
Hình 7 – Tạo domain đầu tiên trong một forest mới
Bước 1-2: Cấu hình DNS
Thực hiện tại máy RootCA
1 Vào Administrative Tools | DNS.
2 Tạo một Reverse Lookup Zone cho domain uit.vm.
3 Bật tùy chọn Allow Dynamic Updates cho cả 2 zone Forward và Reverse.
4 Tạo các A record và PTR record cho các máy LinRootCA, DMZW, LinClient1.
5 Sử dụng lệnh nslookup để kiểm tra hoạt động của DNS.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
1
3
Hình 8 – Tạo các A record
Cài đặt CA
Kế tiếp ta sẽ bổ sung vào domain một thành phần quan trọng là Enterprise Root CA. Tới giai
đoạn này, giả định là các chính sách cần thiết cho hoạt động của PKI đã được tạo và chấp thuận,
và các máy chủ quan trọng trong hạ tầng đã được kiện toàn bảo mật.
Bước 1-3: Cài đặt Enterprise Root CA
Thực hiện tại máy RootCA
1 Tạo một thư mục C:\labcerts để lưu trữ chứng chỉ số và thông tin về các CA để người
dùng trong mạng có thể đọc được.
2 Vào Add Remove Programs và chạy Add/Remove Windows Components rồi
chọn cài đặt gói Certificate Services.
3 Làm theo các hướng dẫn, lưu ý chọn tùy chọn Enterprise Root CA, đặt CA name là
UIT Root CA, chỉ định mục Store Configuration Information In A Shared Folder
là đường dẫn C:\labcerts và giữ nguyên mặc định các tùy chọn còn lại.
4 Chờ cho quá trình cài đặt hoàn tất.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
1
4
Hình 9 – Cài đặt Enterprise Root CA
1.6.2 Cấu hình Enterprise CA
Trong phần này, ta sẽ cấu hình cho Enterprise Root CA bao gồm:
• CRL publication interval: khoảng thời gian mà sau đó CA sẽ cập nhật danh sách các
chứng chỉ không còn hiệu lực (CRL).
• Certificate template: các mẫu chứng chỉ được tạo sẵn.
• Default GPO: thiết lập để các máy tham gia vào domain tự động nhận được chứng chỉ
• Domain user: tạo các tài khoản người dùng
• Hierarchical PKI: tạo cấu trúc CA phân cấp với sự có mặt của một Sub. CA và một RA.
Bước 2-1: Cấu hình Enterprise Root CA
Thực hiện tại máy RootCA
1 Vào Administrative Tools | Certification Authority.
2 Mở rộng nhánh UIT Root CA và nhấn phải chuột lên mục Certificate Templates rồi
chọn New | Certificate Template to Issue
3 Trong cửa sổ Enable Certificate Templates, chọn 2 cái là Smartcard User và
Enrollment Agent rồi nhấn OK.
4 Trở lại cửa sổ Certificate Authority, nhấn phải chuột lên mục Revoked Certificates
và chọn Properties. Sau đó đổi mục CRL publication interval là 1 giờ. Nhấn OK.
5 Đóng cửa sổ CA MMC để hoàn tất.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
1
5
Hình 10 – Thêm mới các Certificate Template
Hình 11 – Thiết lập CRL publication interval
Certificate Templates
Các chứng chỉ mẫu đã được Microsoft xây dựng sẵn và ta đã vừa kích hoạt thêm 2 loại chứng chỉ
(Smartcard User và Enrollment Agent) ở bước trên. Tuy nhiên, để người dùng hay máy tính có
thể nhận được các chứng chỉ dựa trên những mẫu chứng chỉ thì các đối tượng đó cần có được các
quyền read và enroll thích hợp.
Bước 2-2: Cấu hình Certificate Template
Thực hiện tại máy RootCA
1 Vào Administrative Tools | Active Directory Users and Computers.
2 Trong domain uit.vm, tạo 1 group tên Enrollers, giữ nguyên mục Group scope là
Global và mục Group type là Security.
3 Vào Administrative Tools | Active Directory Sites and Services.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
1
6
4 Nhấn phải chuột lên domain uit.vm và chọn View | Show Services Node. Sau đó
duyệt đến mục Services | Public Key Services | Certificate Templates.
5 Ở khung bên phải sẽ hiện ra danh sách các chứng chỉ mẫu, nhấn đúp vào dòng
Enrollment Agent. Tại cửa sổ Properties mới hiện ra, chọn tab Security, rồi nhấn
Add và thêm vào group Enrollers (vừa tạo ở trên) và gán thêm quyền enroll cho
nhóm này (ngoài quyền read đã được chọn sẵn).
6 Làm tương tự như bước 5 cho mẫu chứng chỉ Smartcard User.
7 Đóng hết cửa sổ MMC để hoàn tất.
Hình 12 – Cấu hình Certificate Template
Group Policy Objects (GPO)
Thông qua GPO các máy như domain controller, domain member có thể tự động nhận về các
chứng chỉ của chúng khi chúng tham gia (join) vào domain. Cũng nhờ GPO mà ta có thể điều
khiển việc một máy sẽ phản ứng như thế nào nếu thẻ thông minh (smartcard) của một người
dùng đã đăng nhập nào đó bị rút ra khỏi thiết bị đọc thẻ.
Bước 2-3: Chỉnh sửa Default GPO
Thực hiện tại máy RootCA
1 Mở Active Directory Users and Computers.
2 Nhấn phải chuột lên domain uit.vm và chọn Properties. Cửa sổ mới hiện ra, chọn tab
Group Policy rồi chọn Default Domain Policy và nhấn Edit.
3 Cửa sổ GPO Editor hiện ra, duyệt đến nhánh Computer Configuration | Windows
Settings | Security Settings | Public Key Polices | Automatic Certificate Requests
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
1
7
Settings. Ở khung bên phải, nhấn phải chuột và chọn New | Automatic Certificate
Request.
4 Một cửa sổ mới hiện ra, nhấn Next. Trong danh sách Certificate templates, chọn
Computer rồi nhấn Next và cuối cùng nhấn Finish. Sau đó, làm tương tự đối với
mẫu chứng chỉ dành cho Domain Controller.
5 Trở lại cửa sổ GPO Editor, duyệt đến nhánh Computer Configuration | Windows
Settings | Security Settings | Security Options. Ở khung bên phải, nhấn đúp chuột
vào dòng Interactive logon: Smart card removal behavior.
6 Ở cửa sổ mới hiện ra, đánh dấu kiểm vào mục Define this policy setting và chọn
Lock Workstation và nhấn OK.
7 Đóng hết cửa sổ để hoàn tất.
Hình 13 – Chỉnh default GPO để máy tính trong domain tự động xin và nhận chứng chỉ
Hình 14 – Chỉnh default GPO để tự động khóa máy tính khi người dùng rút smartcard
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
1
8
End Entities – Người dùng
Trong phần này, ta sẽ tạo và cấu hình cho các domain user - là các thực thể đầu cuối (end entity)
trong toàn bộ cấu trúc phân cấp CA mà sẽ tham gia vào hạ tầng PKI.
Bước 2-4: Tạo các user trong domain
Thực hiện tại máy RootCA
1 Mở Active Directory Users and Computers.
2 Tạo mới 5 user có Logon name là: enroller1, winuser1, winuser2, winuser3,
winuser4 và tất cả đều thuộc nhóm Domain Users, riêng tài khoản enroller1 còn nằm
trong nhóm Enrollers.
Hình 15 – Tạo các domain user
Đăng nhập với smartcard
Với mẫu chứng chỉ Smartcard User cộng với các quyền hạn được cấu hình hợp lý thì một CA có
thể cấp chứng chỉ được lưu trong smartcard cho người dùng. Sau đó nó có thể được dùng để
đăng nhập, bảo mật cho email, hay mã hóa hệ thống file bằng EFS. Việc yêu cầu người dùng
phải có smartcard để đăng nhập vào domain là một biện pháp chứng thực mạnh (gồm 2 yếu tố là
mật khẩu và smartcard) giúp tăng cường độ tin cậy cho mạng.
Bước 2-5: Cấu hình đăng nhập với smartcard
Thực hiện tại máy RootCA
1 Mở Active Directory Users and Computers.
2 Nhấn đúp vào tài khoản winuser1 để mở cửa sổ Properties của nó.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
1
9
3 Tại tab General, mục E-mail để là Tại tab Dial-in, chọn Allow
access cho mục Remote Access Permission. Qua tab Account, bên dưới danh sách
Account options chọn mục Smart card is required for interactive logon, sau đó
nhấn OK.
4 Làm tương tự từ bước 2 và 3 cho tài khoản winuser2.
Hình 16 – Thiết lập khi người dùng đăng nhập phải có smartcard
End Entities – Máy tính
Ở bước 2-3, ta đã cấu hình GPO để các máy tính (gồm cả domain controller) trong mạng sẽ tự
động nhận được các chứng chỉ khi chúng thực hiện tham gia vào domain. Bây giờ, ta sẽ cấu hình
để các máy đang nằm trong Workgroup tham gia domain. Sau đó vào CA để kiểm tra xem các
máy đó đã nhận được chứng chỉ hay chưa.
Bước 2-6: Tham gia Domain
Thực hiện tại các máy RA, SubCA, Winclient1 và DMZW
1 Đăng nhập bằng tài khoản quản trị.
2 Thiết lập Preferred DNS Server là địa chỉ IP của máy RootCA (10.0.10.1).
3 Thực hiện việc join máy vào domain uit.vm (sử dụng tài khoản Administrator trên
máy RootCA).
4 Khởi động lại máy để hoàn tất.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
2
0
Hình 17 – Thực hiện join các máy vào domain
Tạo cấu trúc phân cấp CA
Trong phần này ta sẽ tạo cấu trúc phân cấp theo mô hình Hierarchical PKI cho domain uit.vm.
Với máy rootca.uit.vm làm Root CA, máy subca.uit.vm làm Subordinate CA và máy ra.uit.vm
làm RA.
Bước 2-7: Cài đặt Enterprise Subordinate CA
Thực hiện tại máy SubCA
1 Đăng nhập vào domain uit.vm bằng tài khoản thuộc cả 2 nhóm Enterprise Admins và
Domain Admins (ở đây là tài khoản Administrator).
2 Tạo một thư mục tại C:\labcert.
3 Mở Add/Remove Windows Components và cài đặt gói Certificate Services.
4 Làm theo các hướng dẫn, lưu ý chọn tùy chọn Enterprise Subordinate CA, đặt CA
name là UIT Sub CA, chỉ định mục Store Configuration Information In A Shared
Folder là đường dẫn C:\labcerts, Parent CA là máy RootCA và giữ nguyên mặc
định các tùy chọn còn lại.
5 Chờ cho quá trình cài đặt hoàn tất.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
2
1
Hình 18 – Cài đặt Enterprise Subordinate CA
Cấu hình Subordinate CA
Các Sub. CA trong cấu trúc phân cấp không nhất thiết phải có cấu hình giống với Root CA và
thực ra, nó có sự khác biệt như thời hạn hiệu lực của chứng chỉ mà nó cấp luôn nhỏ hơn của Root
CA và điều này có thể được kiểm soát tại Root CA.
Bước 2-8: Cấu hình Enterprise Subordinate CA
Thực hiện tại máy SubCA
1 Đăng nhập vào domain với tài khoản quản trị.
2 Vào Administrative Tools | Certification Authority.
3 Mở rộng nhánh UIT Sub CA và nhấn phải chuột lên mục Certificate Templates rồi
chọn New | Certificate Template to Issue.
4 Trong cửa sổ Enable Certificate Templates, chọn 2 cái là Smartcard User và
Enrollment Agent rồi nhấn OK.
5 Trở lại cửa sổ Certificate Authority, nhấn phải chuột lên mục Revoked Certificates
và chọn Properties. Sau đó đổi mục CRL publication interval là 1 giờ. Nhấn OK.
6 Nhấn chuột phải lên UIT Sub CA và chọn Properties.
7 Trên tab General, nhấn nút View Certificate để xem các thông tin chứa trong chứng
chỉ của máy SubCA. Xác nhận rằng thời hạn hiệu lực (Valid from … to …) của nó
nhỏ hơn so với chứng chỉ của Root CA.
8 Đóng hết các cửa sổ để hoàn tất.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
2
2
Hình 19 – Cấu hình Enterprise Subordinate CA
Cài đặt RA
Các chức năng của RA thì đơn giản hơn là CA, nó không có quyền tạo hoặc quản lý các chứng
chỉ mà đơn giản làm trung gian giữa các end entity và CA. Nó nhận và chuyển tiếp các yêu cầu
tới cho CA. Sau đó nó nhận phản hồi từ CA và gửi trả lời đó lại cho end entity. Có thể coi RA là
client-side của CA và trong Windows nó cũng được nhắc tới như là Web Enrollment Support.
Bước 2-9: Cài đặt RA
Thực hiện tại máy RA
1 Đăng nhập vào domain bằng tài khoản quản trị.
2 Mở Add/Remove Windows Components và chọn cài gói Application Server (chọn
cài luôn thành phần ASP.NET). Sau đó cài tiếp gói Certificate Services (lưu ý, nhấn
Details và chỉ chọn cài mục Certificate Services Web Enrollment Support).
3 Làm theo hướng dẫn của trình cài đặt, lưu ý Browse đến mục UIT Sub CA để RA sẽ
làm trung gian giữa máy SubCA và các end entity.
4 Chờ cho quá trình cài đặt hoàn tất.
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
2
3
Hình 20 – Cài đặt RA
SSL Website
Kế tiếp, ta sẽ tạo và cấu hình một webiste có sử dụng SSL. Điều này giúp đảm bảo an toàn cho
người dùng và CA thực hiện quá trình yêu cầu và cấp chứng chỉ qua giao diện web. Ở đây có thể
sử dụng default Website (tự động được tạo ra khi cài IIS) tuy nhiên việc cài đặt CA đã đặt
virtual directory của nó ngay dưới default Website. Vì thế, ta cần tạo một website thay thế và cấu
hình các thuộc tính của nó để hỗ trợ SSL để không làm ảnh hưởng tới cài đặt của default
Website.
Bước 9-10: Cài đặt IIS và tạo một website
Thực hiện tại máy DMZW
1 Đăng nhập vào domain bằng tài khoản quản trị.
2 Mở Add/Remove Windows Components và chọn cài đặt gói Application Server.
3 Tạo một thư mục tại C:\inetpub\sslweb, trong đó tạo một file sslweb.html có nội dung
sau:
<html>
<head>
<title> A simple SSL site </title>
</head>
<body>
<H1> This is a secure website </H1>
<P> This site is protected via SSL. </P>
</body>
</html>
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
2
4
4 Vào Administrative Tools | IIS Manager. Nhấn phải chuột lên Default Web Site và
chọn Stop.
5 Tạo mới một website có các cài đặt sau:
- Mục Web Site Description: sslweb
- Giữ nguyên các thiết lập IP address và listening port
- Mục Web site home directory page: C:\inetpub\sslweb
- Giữ nguyên các thiết lập access permission
- Chọn file sslweb.html làm trang chủ của website
6 Thử truy cập vào địa chỉ và xác nhận nội dung file sslweb.html
được hiển thị. Lưu ý, nếu gặp thông báo xác thực thì đăng nhập bằng tài khoản quản
trị domain hoặc nếu muốn bỏ qua việc xác thực thì vào Properties của website, qua
tab Directory Security, mục Authentication and access control nhấn Edit, sau đó
bỏ chọn mục Integrated Windows authentication.
Hình 21 – Tạo một website
Bước 2-11: Cấu hình SSL cho website
Thực hiện trên nhiều máy tính
1 Trong IIS Manager, thực hiện Stop với website sslweb.
2 Trong Properties của sslweb, chọn tab Directory Security và tại mục Secure
communications nhấn Server Certificate.
3 Trình cài đặt hiện ra, lần lượt chọn hoặc thiết lập như sau:
- Nhấn Create A New Certificate
Môn UDTT & ANTT | Nhóm 1
Chuyên Đề 24 - Xây Dựng Mạng Tin Cậy Building Trusted Networks
2
5