Transcript
Page 1: _Part 35 - Certificate Authority

“Chuyên trang dành cho kỹ thuật viên tin học” CHIA SẺ - KINH NGHIỆM - HỌC TẬP - THỦ THUẬT

Part 35 - Certificate Authority

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êngmì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 kinhdoanh. 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ướcgiờ 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ếnhà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 haykhô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ọngmuố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ởitườ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 Bphả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ữngnhượ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ộtai đó 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ế Akhô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ácA 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.

1 of 49

Page 2: _Part 35 - Certificate Authority

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ànhgiả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àntoà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

2 of 49

Page 3: _Part 35 - Certificate Authority

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ụngcô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ácminh 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 PublicKey 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 Csẽ 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 đếnlúc này vẫn chưa thực sự an toàn.

3 of 49

Page 4: _Part 35 - Certificate Authority

Nhưng may thay Microsoft đã xây dựng cho ta công cụ Certificate Authority đóng vai trò như mộtnhà 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ênthự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.comvẫ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émmà 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ìnhcó 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ủangườ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ôngkhai

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à 1 Private Key

4 of 49

Page 5: _Part 35 - Certificate Authority

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 CAServer 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ì choqua. 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

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àylê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àntất mới được cài CA Services nếu không dịch vụ CA sẽ không chạy được.

5 of 49

Page 6: _Part 35 - Certificate Authority

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ọnthứ 3 là Stand-alone root CA

6 of 49

Page 7: _Part 35 - Certificate Authority

Đặ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

7 of 49

Page 8: _Part 35 - Certificate Authority

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

8 of 49

Page 9: _Part 35 - Certificate Authority

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ảnAdmin trong MDaemon

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

9 of 49

Page 10: _Part 35 - Certificate Authority

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ãyStart 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

10 of 49

Page 11: _Part 35 - Certificate Authority

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ử

11 of 49

Page 12: _Part 35 - Certificate Authority

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 trongMDaemon

12 of 49

Page 13: _Part 35 - Certificate Authority

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ủachính mình

13 of 49

Page 14: _Part 35 - Certificate Authority

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

14 of 49

Page 15: _Part 35 - Certificate Authority

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

15 of 49

Page 16: _Part 35 - Certificate Authority

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ộtdòng mới là REPLY TO ME ngay bên dưới

16 of 49

Page 17: _Part 35 - Certificate Authority

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 đã Edittrướ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ả

17 of 49

Page 18: _Part 35 - Certificate Authority

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

18 of 49

Page 19: _Part 35 - Certificate Authority

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 ProtectionCertificate

19 of 49

Page 20: _Part 35 - Certificate Authority

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ấpSubmit để gởi yêu cầu

20 of 49

Page 21: _Part 35 - Certificate Authority

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ứngthực

21 of 49

Page 22: _Part 35 - Certificate Authority

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

22 of 49

Page 23: _Part 35 - Certificate Authority

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 CAServer chọn View the status of a pending certificate request

23 of 49

Page 24: _Part 35 - Certificate Authority

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

24 of 49

Page 25: _Part 35 - Certificate Authority

Màn hình thông báo đã cài đặt thành công

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 Mailsẽ 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

25 of 49

Page 26: _Part 35 - Certificate Authority

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

26 of 49

Page 27: _Part 35 - Certificate Authority

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ênmì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 2user 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 Emailvề 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 takhô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

27 of 49

Page 28: _Part 35 - Certificate Authority

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

28 of 49

Page 29: _Part 35 - Certificate Authority

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 haykhô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òngmới vào là REPLY TO ME

29 of 49

Page 30: _Part 35 - Certificate Authority

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

30 of 49

Page 31: _Part 35 - Certificate Authority

Logon với gccom2 và kiểm tra thư sẽ thấy xuất hiện 2 thư mới từ gccom1

31 of 49

Page 32: _Part 35 - Certificate Authority

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ậtlên cảnh báo độ tin cậy cho gccom2

32 of 49

Page 33: _Part 35 - Certificate Authority

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

33 of 49

Page 34: _Part 35 - Certificate Authority

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 đó Admincó 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ườinhậ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áybạ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 IIStrướ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ôitrường Workgroup nữa vì đây là môi trường Domain nên Windows cho phép ta chọn Enterpriseroot CA. Nhấp vào Enterprise root CA và chọn Next

34 of 49

Page 35: _Part 35 - Certificate Authority

Đặ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 cưứng thực từ CA Server cho gccom1 thao tác tương tự như trên

35 of 49

Page 36: _Part 35 - Certificate Authority

Nhấp vào Request a certificate

Chọn tiếp User Certificate

36 of 49

Page 37: _Part 35 - Certificate Authority

Do chúng ta đang ở trong môi trường Domain nên Windows sẽ tự hiểu bạn đang Logon với Accountnào và nó sẽ thông báo rằng "No further identifying information is required. To complete yourcertificate, 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ườngDomain 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

37 of 49

Page 38: _Part 35 - Certificate Authority

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ảilà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, muabá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ảnngườ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 CAcủa hệ thống Website đó

38 of 49

Page 39: _Part 35 - Certificate Authority

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ườidù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ả truycậ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 đăngký 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ủachú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 Serverlên nhấp phải vào Default Website chọn tiếp Properties

39 of 49

Page 40: _Part 35 - Certificate Authority

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

40 of 49

Page 41: _Part 35 - Certificate Authority

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 anew 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

41 of 49

Page 42: _Part 35 - Certificate Authority

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

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

42 of 49

Page 43: _Part 35 - Certificate Authority

Ở 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 DNSServer.

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

43 of 49

Page 44: _Part 35 - Certificate Authority

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

44 of 49

Page 45: _Part 35 - Certificate Authority

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ànhcông

45 of 49

Page 46: _Part 35 - Certificate Authority

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

46 of 49

Page 47: _Part 35 - Certificate Authority

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

47 of 49

Page 48: _Part 35 - Certificate Authority

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ỏixem 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

48 of 49

Page 49: _Part 35 - Certificate Authority

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áchhà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ânmà 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êmmà thôi.

OK mình vừa giới thiệu xong phần Certificate Authority trong 70-291 của MCSA.

Công ty TNHH đầu tư phát triển tin học GC Com

Chuyên trang kỹ thuật máy vi tính cho kỹ thuật viên tin họcĐiện thoại: (073) - 3.511.373 - 6.274.294

Website: http://www.gccom.net

49 of 49


Top Related