Hướng dẩn cài đặt và cấu hình CA (Toàn tập)
Cerificate Authority Toàn Tập
Trong thời đại CNTT ngày nay có lẽ không ai trong chúng ta không sở hữu một địa chỉ Email của riêng mình và thường xuyên thông qua đó để trao đổi thông tin cũng như liên lạc với đối tác trong kinh doanh. Vấn đề đặt ra là với những tài liệu có mức độ quan trọng và riêng tư cao mà ta không muốn có một người thứ 3 biết, tuy nhiên việc trao đổi thông tin qua Internet với các thao tác thủ mà công trước giờ ta sử dụng thì nguy cơ bị hacker đánh cắp thông tin là điều luôn luôn có khả năng xảy ra ở mức độ cao.
Vì bạn cảm thấy lo lắng về nguy cơ rò rỉ thông tin có thể xảy ra bất cứ lúc nào này, cho nên bạn tiến hành mã hóa dữ liệu của mình để gởi cho đối tác. Vậy công việc mã hóa này có thực sự an toàn hay không? và cơ chế nó mã hóa như thế nào? chúng ta hãy tìm hiểu các cơ chế bảo mật sau:
Trước tiên ta hãy tìm hiểu về qui trình mã hóa & giải mã dữ liệu. Ví dụ A có một thông tin quan trọng muốn gởi cho B có nội dung là “GC Com Co” chẳng hạn và A muốn mã hóa dữ liệu ra chứ không gởi tường minh như vậy, nên A sẽ đặt ra một khóa ví dụ là “1″ (Key=1) chẳng hạn và tiến hành mã hóa nó thành một chuỗi đại khái “JKHeifuyoiuIOYUOf”
Khi đó B nhận được thông tin từ A gởi cho vẫn là một chuỗi ký tự rườm rà trên. Để giải mã tất nhiên B phải có Key mà A cung cấp cho thì mới có thể đọc được nội dung này. Có 2 cách mã hóa & giải mã dữ liệu như sau:
1/ Cách đối xứng:
Với cách này giống như những gì tôi vừa nêu ở trên, tưởng chừng như an toàn nhưng lại tồn tại những nhược điểm lớn mà hiện tại người ta không chọn hình thức mã hóa & giải mã kiểu này, vì nếu như một ai đó có được Key này họ sẽ đọc được toàn bộ dữ liệu mà trước đó ta đã mã hóa hơn nữa trong thực tế A không chỉ có một mình B là đối tác mà có đếm hàng trăm hàng nghìn đối tác khác nữa. Với mỗi đối tác A phải có một Key riêng cho đối tác đó, và A cũng phải lưu trữ chừng ấy khóa mà phía đối tác cấp cho.

Ví dụ A gởi một gói tin tên là Data cho B đã được mã hóa với Key = 1 cho ra kết quả là gói tin Data’
B nhận được gói tin trên và tiến hành giải mã với Key trên và thu được Data ban đầu
Tuy nhiên vì một lý do nào đó C nhặt được gói tin Data’ và Key của A gởi cho B. Khi đó nó tiến hành giải mã và sửa thông tin sau đó giải mã với Key trên và gởi cho B. Vì vậy thông tin mà B nhận hoàn toàn bị sai lệch không đáng tin cậy nhưng bản thân B cũng không biết.

Trước nguy cơ đó người ta đưa ra cách mã hóa dữ liệu thứ 2
2/ Không đối xứng:
Người ta chứng minh rằng luôn tồn tại 2 số P,Q với P # Q
Khi mã hóa dữ liệu với P người ta đem kết quả thu được giải mã với Q sẽ thu được dữ liệu ban đầu và ngược lại

Với qui trình này mỗi người dùng sử dụng công nghệ mã hóa sẽ chỉ cần 2 khóa mà thôi ví dụ A sử dụng công nghệ mã hóa nên A có:
Khóa PA gọi là Public Key khóa này là khóa công khai mọi người đều có thể xem và sử dụng khóa này
Khóa QA gọi là Private Key khóa này là khóa bí mật chỉ có mình A là có thể xem và sử dụng khóa này
Vì vậy khi A gởi gói tin Data cho B nó sẽ dùng Public Key PB của B để mã hóa và cho ra kết quả là Data’
Khi đó B thu được Data’ nó dùng Private Key của riêng mình để giải mã dữ liệu và thu được Data ban đầu

Tuy nhiên cách này vẫn chưa thực sự an toàn vì A chỉ lấy Public Key PB của B sử dụng mà không xác minh tính xác thực của nó có đúng là của B hay không. Khi đó với một thủ thuật nào đó C lấy Public Key PC của mình chèn vào Public Key PB của B nhằm đánh lừa A
Như vậy vô tình thay vì A dùng PB của B thì nó lại lấy PC của C và mã hóa dữ liệu gởi cho B, lúc này C sẽ lấy gói tin đã mã hóa trên và tiến hành giải mã sau đó là chỉnh sửa nội dung
Tiếp đến nó lại dùng PB của B để giải mã dữ liệu và gởi đến B. Như vậy thông tin mà A gởi cho B đến lúc này vẫn chưa thực sự an toàn.

Nhưng may thay Microsoft đã xây dựng cho ta công cụ Cerificate Authority đóng vai trò như một nhà cấp phát giấy chứng thực và quản lý các thông tin chứng thực ấy
Như vậy vấn đề ở đây là ta phải dựng một CA Server chuyên cấp các chứng thực cho người dùng, trên thực tế các CA Server do ta xây dựng mà ta xây dựng sẽ không được người sử dụng tin tưởng mà có hẳn các công ty chuyên cung cấp CA Server mà các hãng phần mềm lớn như google.com, yahoo.com vẫn thuê để sử dụng. Tuy nhiên vì chúng ta đang nghiên cứu nên không phải mua làm gì cho tốn kém mà ta sẽ tự xây dựng một CA Server riêng.

Với CA Server bản thân nó cũng có một bộ Public Key & Private Key của riêng mình. Khi A,B,C…. muốn gởi thông tin cho nhau phải thông qua CA Server này để xin cấp giấy chứng nhận cho riêng mình có như vậy khi thông tin bị đánh cắp hay sửa đổi thì nhờ có CA Server sẽ xác thực tính tin cậy của dữ liệu nhận được cho người dùng biết. Qui trình này như sau:
CA Server sẽ lấy thông tin Public Key của người dùng nào đó gọi là CRC hay thông tin đặc trưng của người dùng đó.
Kế tiếp nó mã hóa CRC này với chính Private Q của nó cho ra một giá trị S và giá trị này được công khai
Như vậy lúc này mỗi tài khoản người dùng sẽ tồn tại 2 Public Key và một Private Key

Có như vậy khi B nhận được một thông tin từ A nó sẽ đem thông tin S của nó giải mã với P của CA Server và thu được CRC nào đó
Nó sẽ lấy tiếp giá trị CRC vừa thu được đem so sánh với CRC của chính mình nếu trung khớp thì cho qua. Ngược lại nó biết đây chính là nội dung không đáng tin cậy do bị sửa đổi từ trước

OK mình vừa giới thiệu xong phần 1 của Cerificate Authority trong 70-291 của MCSA.
Bây giờ chúng ta đi vào thực tế, trong bài này tôi sẽ ứng dụng
Certificate Authority vào trong việc mã hóa
Email của các user như vậy tôi phải dựng 1
CA Server nhằm cung cấp chứng thực cho các user và một
Mail Server để các user có thể gởi mail cho nhau.
Để cho đơn giản tôi sẽ cài tất cả các dịch vụ này lên cùng một máy mà thôi
1/ CA WORKGROUP
Trước tiên ta xét trường hợp sử dụng
Certificate Authority (CA) trong môi trường
WORKGROUP
Để cài
CA Server đầu tiên bạn phải cài dịch vụ
IIS lên máy sẽ cài
CA, tuy nhiên bạn phải cài
IIS hoàn tất mới được cài
CA Services nếu không dịch vụ
CA sẽ không chạy được.

Sau khi cài
IIS hoàn tất bạn quay trở lại
Windows Components chọn
Certificate Services và nhấp
Next để cài đặt

Do ta đang ở trong môi trường
Workgroup nên 2 lựa chọn đầu tiên sẽ bị mờ đi ở đây ta chọn lưa chọn thứ 3 là
Stand-alone root CA

Đặt tên cho
CA tùy thích ở đây tôi đặt là
GC Com Co

Giữ nguyên giá trị mặc định của màn hình
Certificate Database Settings chọn
Next

Cuối quá trình cài đặt
CA bạn phải chọn
Yes để đồng ý
Enable IIS nếu không
CA không hoạt động được

Tiếp theo tôi dựng một
Mail Server với
MDaemon
Sau khi cài đặt
MDaemon hoàn tất bạn nhập domain của mình vào ô
Domain name

Tại màn hình
Setup your first account bạn đặt một tài khoản mới, tài khoản này chính là tài khoản
Admin trong
MDaemon

Màn hình
Setup you DNS để trống và nhấp
Next

Cuối quá trình cài đặt bạn vào
Services xem dịch vụ
MDaemon có được
Started chưa nếu chưa bạn hãy
Start nó thì mới có thể sử dụng
MDaemon được

Mặc nhiên
MDaemon sẽ không cho tạo tài khoản mới với
password đơn giản vì vậy trong bài tôi sẽ để bỏ tính năng này bằng cách nhấp vào
Menu Setup -> Miscellaneous Options
Chọn tiếp
Tab Misc và bỏ mục
Require strong passwords

Bây giờ tôi sẽ tạo 2 tài khoản mới là
gccom1 và
gccom2 trong
Account Manager để các
User có thể sử dụng tài khoản này
Test mail thử

Trong
Local user and Group tôi cũng sẽ tạo 2
Account mới là
gccom1 và
gccom2 để kiểm chứng
Logon với
gccom1 và cấu hình
Outlook Express cho
Account này ứng với tài khoản
gccom1 trong
MDaemon

Nhập chính xác email của
gccom1 trong
Email address

Do chúng ta đang thử nghiệm trên chính máy mình nên các dịch vụ
SMTP & POP3 bạn nhập
IP của chính mình

Nhập lại tài khoản & mật khẩu của
Account gccom1 trong
MDaemon

Bây giờ
gccom1 sẽ gởi một
Email cho
gccom2 với nội dung
GCCOM1 SENT TO GCCOM2

Đăng nhập với tài khoản
Administrator và vào
C:\MDaemon\Users\gccom.net\gccom2 để xem các
Email mà
gccom1 gởi cho
gccom2

Tôi đã tìm thấy nội dung
Email mà
gccom1 gởi cho
gccom2. Sau đó tôi thử
Edit nó bằng cách thêm một dòng mới là
REPLY TO ME ngay bên dưới
Logon với
gccom để kiểm tra mail
gccom2 sẽ thấy rằng mình nhận được một
Email từ
gccom1 với nội dung đã bị
Administrator đã
Edit trước đó mà nó không hề hay biết. Như vậy đến đây ta thấy hệ thống của chúng ta lúc này
thực sự không an toàn chút nào cả

Bây giờ
gccom1 &
gccom2 sẽ tiến hành cài
CA lên mình để ứng dụng
CA vào việc ký tên điện tử và mã hóa
Email như sau:
Vào địa chỉ
http://[IP máy CA Server]/certsrv
Nhấp vào
Request a certificate để yêu cầu
CA Server cấp chứng thực cho mình

Do chúng ta cần chứng thực cho
Email mà thôi nên tại màn hình tiếp theo ta chọn
Email Protection Certificate

Tại màn hình
Information bạn phải nhập chính xác thông tin về tài khoản
email của mình và nhấp
Submit để gởi yêu cầu

Chọn
Yes để hoàn tất

Cuối cùng nó sẽ hiển thị màn hình thông báo đã nhận đơn yêu cầu của bạn và chờ
Administrator chứng thực

Tại
CA Server bạn vào
Start -> Programs -> Administrative tools -> Certificate Authority để xem các yêu cầu chứng thực từ các
Client

Trong
Folder Pending Requests bạn chọn
Issue để chấp nhận đơn của
user

Đơn sau khi được chấp nhận sẽ hiển thị trong
Folder Issued Certificates

Các user sau khi được chứng thực phải tiến hành cài
CA lên chính mình bằng cách vào lại trang
Web CA Server chọn V
iew the status of a pending certificate request

Nhấp vào
Link Email Protection Certificate

Chọn
Install this certificate để tiến hành cài đặt
CA lên mình

Màn hình thông báo đã cài đặt thành công
(còn tiếp)
Bây giờ tại
gccom1 tôi sẽ tiến hành gởi
2 Email cho
gccom2 một
Mail sử dụng chữ ký điện tử, một
Mail sẽ mã hóa hoàn toàn nội dung
Trước tên tôi tạo một Email thứ 1 với:
Subject là
Test CA 1
Nội dung Test CA 1
Và nhấp vào nút
Sign bên trên và gởi đi

Tiếp theo tôi tạo một Email thứ 2 với:
Subject là
Test CA 2
Nội dung Test CA 2
Và nhấp vào cả 2 nút
Sign và
Encrypt bên trên và gởi đi

Lúc này
Outlook Express sẽ thông báo lỗi vì thực chất cả 2 user
gccom1 và
gccom2 chỉ mới cài
CA lên mình nhưng chưa làm công đoạn thông báo cho nhau về thông tin
CA của chính mình.
Vì vậy đến đây 2 user phải gởi cho nhau 2 email
Sign nhưng không
Encrypt để cung cấp
CA cho nhau trước thì các
Email về sau mới có thể
Encrypt được

Sau khi đã gởi
Mail cho nhau thành công và đã có
CA lẫn nhau thì giờ đây mỗi khi gởi mail cho nhau ta không phải nhập địa chỉ
Mail của user kia nữa mà nhấp trực tiếp vào nút
To

Trong màn hình
Select Recipients đã xuất hiện thông tin
CA của 2 bên

Trở lại việc
gccom1 gởi
Mail với tùy chọn
Sign & Encrypt cho
gccom2

Sau khi gởi hoàn tất cho
gccom2 tại mục
Sent Items của
gccom1 sẽ thấy xuất hiện
2 Email một có icon
đóng dấu và một có icon
chìa khóa

Bây giờ tôi đăng nhập vào
Administrator và thử tiến hành sửa Email xem
gccom2 có phát hiện hay không
Tại Email có ký tên điện tử chúng ta thấy nội dung không bị mã hóa, vì vậy tôi có thể thêm một dòng mới vào là
REPLY TO ME

Nhưng với
Email đã bị mã hóa toàn thì toàn bộ nội dung ta không xem được, nhưng tất nhiên là có thể phá phách thoải mái ở đây tôi cũng thêm một dòng
REPLY TO ME
Logon với
gccom2 và kiểm tra thư sẽ thấy xuất hiện 2 thư mới từ
gccom1

Với
Email đã ký tên điện tử nội dung sẽ không hiển thị ngay mà bạn phải click vào nút
Continue để xem

Tuy nhiên do trước đó
Email này đã bị
Administrator sửa đổi nên tại màn hình xem nội dung nó sẽ bật lên cảnh báo độ tin cậy cho
gccom2

Nhưng với
Email đã bị mã hóa
Outlook Express sẽ hiện thông báo
Email này đã bị lỗi và không thể xem được nội dung

Như vậy đến đây ta đã thấy được thế mạnh của
CA trong mã hóa dữ liệu
Email. Cho dù trước đó
Admin có sửa đổi thì cũng sẽ không xem được nội dung hoặc có sửa đổi thành công đi chăng nữa thì người nhận vẫn biết
Email mà họ nhận được là không đáng tin cậy.
2/ CA DOMAIN
Bây giờ ta xét trường hợp sử dụng
Certificate Authority (CA) trong môi trường
Domain để xem có gì khác biệt và có thêm những tính năng mạnh mẽ nào. Tất nhiên để làm được điếu này trước tiên máy bạn phải
Upgrade lên
DC trước và cũng như đã cài
CA trong môi trường
Workgroup bạn phải cài
IIS trước.
Sau đó cài tiếp dịch vụ
CA tại đây ta thấy 2 lựa chọn đầu tiên không bị mờ như ta đã cài
CA trong môi trường
Workgroup nữa vì đây là môi trường
Domain nên
Windows cho phép ta chọn
Enterprise root CA. Nhấp vào
Enterprise root CA và chọn
Next

Đặt tên cho
CA của mình và thực hiện các quá trình cài đặt tương tự như trong môi trường
Workgroup

Bây giờ tôi sẽ thực hiện xin chứng thực từ
CA Server cho
gccom1 thao tác tương tự như trên

Nhấp vào
Request a certificate

Chọn tiếp
User Certificate

Do chúng ta đang ở trong môi trường
Domain nên
Windows sẽ tự hiểu bạn đang
Logon với
Account nào và nó sẽ thông báo rằng “
No further identifying information is required. To complete your certificate, press submit” nghĩa nôm na rằng “
Bạn không cần phải nhập thêm bất cứ thông tin gì cả. Nhấp nút Submit để hoàn tất”

Đến đây thay vì phải chờ cho
Admin của
CA trong môi trường
WORKGROUP Issued thì tại môi trường
Domain CA Server thông minh hơn và nó tự chứng thực cho
User luôn và tại bước kế tiếp
User chỉ việc cài đặt luôn
Certificate mà không cần chờ đợi gì cả. Nhấp
Install this certificate

Màn hình thông báo cài đặt
CA hoàn tất
SSL (Secure Sockets Layer)
Bây giờ chúng ta tìm hiểu thêm về ứng dụng
CA trong việc mã hóa thông tin trên
Web hay còn gọi là
SSL.
Thông thường với các trang
Web không yêu cầu tính bảo mật cao người quản trị mạng không cần phải làm gì khác ngoài việc cho trang Web ấy chạy ổn định là xong.
Tuy nhiên đối với một số trang
Web mà thông tin người dùng phải tuyệt đối được bảo mật ở mức độ cao như các trang Web về ngân hàng, mua bán qua mạng thì người quản trị mạng phải mã hóa dữ liệu trên
Web…. Vì nếu không may tài khoản người dùng nhập trên
Web lọt vào tay kẻ xấu thì vô cùng nguy hiểm.
Chính vì thế những thông tin cá nhân mà người dùng nhập tại máy
Client trước khi gởi lên
Server sẽ được mã hóa cẩn thận bởi chính
CA của hệ thống
Website đó
Tuy nhiên trên thực tế với các hãng phần mềm lớn như
google.com, yahoo.com thì
CA này họ không tự làm lấy mà thuê hẳn
CA của các công ty chuyên cung cấp
CA nổi tiếng trên thế giới. Có như vậy người dùng mới thực sự an tâm về thông tin của mình.
Để chạy trang
Web theo giao thức
SSL bạn phải thêm chữ “
s” ngay sau cụm từ “
http” trong địa chỉ
Address của mình.
Bây giờ giả sử tôi đăng nhập vào trang
Web của máy
Server với địa chỉ
http://192.168.1.1 kết quả truy cập thành công

Tuy nhiên khi tôi thêm chữ “
s” vào sau “
http” thì
IE báo là không thể hiển thị được. Lý đo ta chưa đăng ký
CA cho
Website

Bây giờ ta tiến hành cấu hình
SSL cho trang
Web của chúng ta (trong ví dụ này trang
Web chính của chúng ta chính là
Default Website mà
Windows tạo mặc định). Bạn mở
IIS của máy chạy
Web Server lên nhấp phải vào
Default Website chọn tiếp
Properties

Chọn tiếp
Tab Directory Sercurity và để ý rằng nút
View Certificate bị mờ đi vì chưa có
Certificate

Nhấp vào nút
Server Certificate trong màn hình
Server Certificate chọn lưa chọn đầu tiên là
Create a new certificate để tạo một
Certificate mới cho
Website

Chọn
Send the request immediately to an online certificate authority và nhấp
Next

Giữ nguyên giá trị mặc định chọn
Next

Nhập thông tin của bạn vào đây

Ở màn hình
Your Site’s Common Name bạn phải nhập chính xác
Host(A) của bạn trong máy
DNS Server.

Nhập tiếp các thông tin cần thiết khác

Tại màn hình
SSL Port Windows thông báo với chúng ta rằng chúng ta sẽ chạy
SSL trên
Port 443

Giữ nguyên giá trị mặc định chọn
Next

Màn hình kết thúc xin
Certificate cho
Website

Trở lại
Tab Directory bây giờ bạn thấy nút
View Certificate đã sáng lên nghĩa là chúng ta đăng ký thành công

Nhấp vào nút
Certificate để xem thông tin
Certificate

Trở lại Tab
Website bạn thấy giờ đây trang Web chúng ta chạy được trên cả 2 Port là
80 và Port mới là
443

OK bây giờ trở lại
IE đăng nhập lài trang Web với giao thức
SSL xem thử.
Windows sẽ thông báo hỏi xem bạn có muốn truy cập
Web với giao thức này không, chọn
Yes

Đăng nhập thành công

Tuy nhiên trên thực tế người ta không lạm dụng
SSL trên toàn hệ thống
Website mà chỉ yêu cầu khách hàng sử dụng nó khi mà đăng nhập vào tài khoản hoặc các thao tác có liên quan đến riêng tư cá nhân mà thôi.
Vì như chúng ta biết dữ liệu trên đường truyền khi đã mã hóa sẽ có dung lượng lớn hơn là dữ liệu thuần túy. Chính vì thế lạm dụng
SSL sẽ làm cho trang Web của chúng ta thêm chậm chạp thêm mà thôi.
Theo: Gccom.net
