Khảnăng mạo danh bằng cách đánh tráo chìa khoá công khai
Trong mô hình chữ ký số nêu trên thì chữ ký sốđược tạo ra bằng chìa khoá bí mật của người ký và được kiểm tra bằng chìa khoá công khai của người đó. Như
vậy, nếu như kẻ gian có thể thay thế chìa khoá công khai của ông A nào đó bằng chìa khoá công khai của mình thì kẻđó có thể giả danh ông A một cách hoàn hảo. Vì khi ấy, mọi văn bản mà hắn ký sẽđược hiểu là do ông A ký. Khi ấy hệ thống sẽ trở nên hỗn loạn khôn lường, vì kẻ gian có thểđóng vai trò một nhà lãnh đạo.
Để không xảy ra tình trạng này thì phải có giải pháp ngăn chặn việc đánh tráo chìa
khoá công khai, tức là xác định chính xác ai sở hữu chìa khoá công khai nào.
30
Như vậy, vấn đề đặt ra là cần tìm một giải pháp để gắn kết một chìa khoá công khai với một thực thể, mà kẻ gian không thể nào phá vỡđược. Giải pháp cho vấn đềnày đưa ta đến với khái niệm chứng thư số (có vai trò như chứng minh thư
của công dân).
Hạ tầng khóa công khai
Hạ tầng khóa công khai (tiếng Anh: public key infrastructure, viết tắt PKI) là một cơ chếđể cho một bên thứ3 (thường là nhà cung cấp chứng thư số) cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin. Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công khai/khóa bí mật. Các quá trình này thường được thực hiện bởi một phần mềm đặt tại trung tâm và các phần mềm phối hợp khác tại các địa điểm của người dùng.
Khóa công khai thường được phân phối trong chứng thư khóa công khai.
PKI cho phép những người tham gia xác thực lẫn nhau và sử dụng thông tin từ các chứng thưkhóa công khai để mã hóa và giải mã thông tin trong quá trình
trao đổi. Thông thường, PKI bao gồm phần mềm máy khách (client), phần mềm máy chủ (server), phần cứng (như thẻ thông minh) và các quy trình hoạt động liên
quan. Người sử dụng cũng có thể ký các văn bản điện tử với khóa bí mật của mình và mọi người đều có thể kiểm tra với khóa công khai của người đó. PKI cho phép
các giao dịch điện tửđược diễn ra đảm bảo tính bí mật, toàn vẹn và xác thực lẫn nhau mà không cần phải trao đổi các thông tin mật từtrước.
Hầu hết các hệ thống PKI quy mô doanh nghiệp đều dựa trên các chuỗi chứng thưđể xác thực các thực thể. Chứng thư của người dùng sẽđược một nhà cung cấp chứng thư số cấp, đến lượt nhà cung cấp này lại có chứng thư được một nhà cung cấp khác ở cấp cao hơn tạo ra,... Hệ thống sẽ bao gồm nhiều máy tính thuộc nhiều tổ chức khác nhau với các gói phần mềm tương thích từ nhiều nguồn khác nhau. Vì vậy, các tiêu chuẩn là yếu tố rất quan trọng đối với hoạt động của các PKI. Hầu hết các tiêu chuẩn về PKI hiện tại được soạn thảo bởi nhóm làm việc PKIX của IETF.
Các hệ thống PKI doanh nghiệp thường được tổ chức theo mô hình danh bạ trong đó khóa công khai của mỗi người dùng được lưu trữ (bên trong các chứng
31
thư số) kèm với các thông tin cá nhân (sốđiện thoại, email, địa chỉ, nơi làm việc,...). Hiện nay, công nghệ danh bạ tiên tiến nhất là LDAP và định dạng chứng thư phổ
biến nhất (X.509) cũng được phát triển từ mô hình tiền nhiệm của LDAP (X.500).
Nhà cung cấp chứng thư số
Nhà cung cấp chứng thư số (tiếng Anh: Certificate Authority, viết tắt: CA) là thực thể phát hành các chứng thư khóa công khai cho người dùng. Nhà cung cấp chứng thư sốđóng vai trò là bên thứba (được cảhai bên tin tưởng) để hỗ trợ cho
quá trình trao đổi thông tin an toàn. Các nhà cung cấp chứng thư số là thành phần trung tâm trong nhiều mô hình hạ tầng khóa công khai (PKI).
Hiện nay có nhiều CA thương mại mà người dùng phải trả phí khi sử dụng dịch vụ. Các tổ chức và chính phủ cũng có thể có những CA của riêng họ. Bên cạnh đó cũng có những CA cung cấp dịch vụ miễn phí.
CA phát hành các chứng thưkhóa công khai trong đó thể hiện rằng CA đó
chứng nhận khóa công khai nằm trong mỗi chứng thư thuộc về cá nhân, tổ chức, máy chủ hay bất kỳ thực thể nào ghi trong cùng chứng thư đó. Nhiệm vụ của CA là kiểm tra tính chính xác của thông tin liên quan tới thực thểđược cấp chứng thư. Khi người sử dụng tin tưởng vào một CA và có thể kiểm tra chữ ký số của CA đó
thì họcũng có thểtin tưởng vào khóa công khai và thực thểđược ghi trong chứng
thư.
Khi CA có thể bị xâm nhập thì an toàn của hệ thống sẽ bị phá vỡ. Nếu kẻ tấn công (Trudy) có thể can thiệp để tạo ra một chứng thư giảtrong đó gắn khóa công khai của kẻ tấn công với định danh của người dùng khác (Alice) thì mọi giao dịch của người khác với Alice có thể bị Trudy can thiệp.
Việc đảm bảo độ chính xác của thông tin trong chứng thư là rất quan trọng
nhưng lại khó thực hiện, đặc biệt khi phần lớn các giao dịch sẽ được thông qua
đường điện tử. Vì thếcác CA thương mại thường dùng phối hợp nhiều biện pháp
để kiểm tra thông tin: dùng các thông tin hành chính (chính phủ), hệ thống thanh
toán, các cơ sở dữ liệu của bên thứ 3 và các phương pháp riêng biệt khác. Trong một số hệ thống của doanh nghiệp, thì việc cấp chứng thư có thể thực hiện thông qua một giao thức nhận chứng thư nội bộ (chẳng hạn như Giao thức Kerberos).
32
Sau đó, chứng thư này được dùng để giao dịch với hệ thống bên ngoài. Một số hệ
thống khác lại đòi hỏi có sự tham gia của công chứng viên khi cấp chứng thư. Khi được ứng dụng trên quy mô lớn, hệ thống sẽ bao gồm nhiều nhà cung cấp chứng thư số. Giả sử Alice và Bob cần trao đổi thông tin nhưng chứng thư của
hai người lại do hai nhà cung cấp khác nhau tạo ra. Khi đó chứng thư của Bob gửi tới Alice phải bao gồm cả khóa công khai của nhà cung cấp của Bob và được ký bởi một nhà cung cấp khác để Alice có thể kiểm tra. Quá trình này sẽ dẫn đến một hệ thống các nhà cung cấp tổ chức theo thang bậc hoặc mạng lưới.
Dưới đây là danh sách một số CA được nhiều người biết đến. Khi sử dụng bất kỳ CA nào thì người sử dụng cũng phải tin vào CA đó. Trong trường hợp một trình duyệt web truy cập vào trang web có chứng thư thì lý tưởng nhất là trình duyệt đó đã nhận biết CA cấp chứng thư. Trong trường hợp ngược lại thì người dùng sẽđưa ra quyết định có tin vào CA đó hay không. Một số CA tự nhận rằng
đã được 99% trình duyệt tin tưởng.
• CA thu phí: VeriSign, Thawte, GeoTrust, GoDaddy.
• CA không thu phí: Startcom, CACert.
Mạng lưới tín nhiệm
Mạng lưới tín nhiệm là một mô hình dùng trong các hệ thống PGP, GnuPG, và các hệ thống dựa trên OpenPGP để thiết lập tính xác thực của mối liên hệ giữa khóa công khai và người sử dụng. Trong một khía cạnh nào đó, đây là một lựa chọn thay cho mô hình hạ tầng khóa công khai tập trung (PKI) dựa trên các nhà cung cấp chứng thư số. Cũng như mạng máy tính, tồn tại nhiều mạng lưới tín nhiệm hoạt động độc lập với nhau. Mỗi người sử dụng trong mô hình này có thể là thành viên của nhiều mạng và như vậy họ trở thành cầu nối giữa các mạng đó.
Tất cả các hệ thống tuân theo OpenPGP đều quy định cách thức để xem xét các chứng thư. Các chứng thư thường được chính người dùng tạo ra cho mình (thông qua phần mềm máy khách) và sẽđược ký xác nhận bởi những người dùng khác nếu họ biết được rằng mối quan hệ giữa khóa công khai và định danh người dùng trong chứng thư là đúng. Thông thường việc ký xác nhận được tiến hành trong các buổi ký xác nhận khóa (key signing party).
33 Các hệ thống tuân theo OpenPGP còn bao gồm các cơ chế để người dùng quyết định sựtin tưởng vào thông tin trong một chứng thư. Chẳng hạn người dùng sẽ tin vào một chứng thư khi chứng thư đó có tối thiểu 3 xác nhận bán phần hoặc 1 xác nhận toàn phần. Các quy định này thông thường có thểthay đổi và thậm chí có thểđược bỏ qua.
Các cơ chế mạng lưới tin cậy rất mềm dẻo và việc quyết định hoàn toàn phụ
thuộc vào từng người sử dụng. Vì thế chúng không hoàn hảo và cần được giám sát
thường xuyên bởi chính những người sử dụng. Các hệ thống hạ tầng khóa công khai trung tâm thì trái lại. Chúng kém mềm dẻo và người dùng bắt buộc phải tuân theo những quy định của nhà cung cấp chứng thư số trung tâm. Các hệ thống này
cũng không hoàn hảo và người dùng vẫn cần phải thận trọng khi sử dụng.
Trong mô hình PKI theo tiêu chuẩn X.509 thì mỗi chứng thư chỉđược ký bởi một thực thể duy nhất là nhà cung cấp chứng thư số (CA). Chứng thư của CA này có thể lại được ký bởi một nhà cung cấp chứng thư số khác cho tới CA cấp cao nhất (tự xác nhận - root CA). Do đó, các chứng thư gốc phải được phân phối rộng
rãi và đảm bảo sẵn sàng bất cứ khi nào cần đến. Một cách phân phối đã được sử
dụng là thông qua các trình duyệt và chương trình email máy khách. Bằng cách này, các trang web dùng giao thức SSL/TLS hay các email có thểđược chứng thực
mà người dùng không cần phải cài đặt các chứng thư gốc. Ngày nay, nhiều ứng dụng đã được cài sẵn hàng trăm chứng thư gốc của nhiều nhà cung cấp PKI khác
nhau để có thể tựđộng nhận dạng phần lớn các chứng thư. Tuy nhiên trong số các chứng thư gốc được cài sẵn, một số lại thuộc vềcác công ty đã ngừng hoạt động (trong thời kỳ bong bóng đầu tư dot.com chẳng hạn). Vì thế trừ trường hợp các PKI này vẫn được quản lý tốt thì các PKI gốc đó không nên được sử dụng.
Mạng lưới tín nhiệm sẽ không bị ảnh hưởng đáng kể khi một công ty nào đó
ngừng hoạt động. Tuy nhiên cũng có nhiều vấn đề nảy sinh trong cách hoạt động của hệ thống. Nếu một người dùng nào đó (cá nhân hoặc tổ chức) bị mất khóa bí mật thì không thể giải mã được các thông tin gửi đến sử dụng khóa công khai trong chứng thư của mình. Trong trường hợp này người nhận chỉ có thể hủy các thông
điệp nhận được và thông báo lại cho bên gửi để gửi lại với khóa công khai khác. Các chứng thư PGP thời kỳđầu hoàn toàn không có thời gian sử dụng. Các phiên
34 bản PGP về sau và các hệ thống dựa trên OpenPGP đều đã đưa thêm thời gian sử
dụng vào trong chứng thư. Việc này đã loại bỏ được một số vấn đề khi được sử
dụng hợp lý.
Do mạng lưới tín nhiệm không có thực thểđóng vai trò điều khiển trung tâm, một vấn đề khác nảy sinh liên quan đến khía cạnh xã hội của hệ thống. Phần lớn
người sử dụng hệ thống sẽ chỉ tin tưởng vào những chứng thư đã được xác nhận bởi một hoặc nhiều người sử dụng khác. Vì thế một người sử dụng mới sẽ không
được những người khác tin tưởng cho đến khi có một người sử dụng nào đó xác
nhận vào chứng thư mà quá trình này nhiều khi đòi hỏi có sự gặp mặt trực tiếp.
Điều này càng đặc biệt khó khăn cho những người sử dụng ở những vùng hẻo lánh hoặc kém phát triển vì mật độ người sử dụng ở những nơi này rất thấp. Một điều nữa cần chú ý là nếu người ký vào chứng thư cũng là người sử dụng mới hoặc không được nhiều người biết đến thì chữ ký của họcũng sẽ có ít giá trị. Các buổi ký xác nhận khóa là một cơ chếtương đối mới để giải quyết vấn đề này. Tại những buổi như vậy, người dùng có cơ hội dễdàng hơn đểtìm ra người sử dụng khác ký xác nhận cho mình. Ngoài ra cũng có các website cung cấp những thông tin vềđịa chỉngười dùng hệ thống OpenPGP để giúp cho việc ký xác nhận. Ví dụnhư trang
Gossamer Spider Web of Trust giúp liên kết người sử dụng OpenPGP thông qua việc tổ chức mạng lưới tín nhiệm theo thứ bậc.
Chứng thư số
Chứng thư sốlà cơ chế chứng thực sử dụng chữ ký sốđể gắn một chìa khoá công khai với một thực thể (một cá nhân, một cơ quan, một công ty, một máy chủ
hay một phần mềm dịch vụ,...).
Nội dung của chứng thư số luôn bao gồm một chìa khoá công khai, một số
thông tin về chủ thể sở hữu chìa khoá công khai đó (tên, địa chỉ, đặc điểm,...) và một chữ ký sốđảm bảo mối liên kết của 2 phần thông tin đó. Chữ ký số này thuộc vềcơ quan thẩm quyền phát hành chứng thư số (Certificate Authority, viết tắt là CA).
Để tạo ra một chứng thư số, CA phải sinh được một cặp chìa khoá phi đối xứng có độ an toàn cao để gán cho chủ thể(người yêu cầu cấp chứng thư).Thông
35 tin trên chứng thư số của người dùng (trong đó có chìa khoá công khai) là chính
xác nếu như chữ ký sốở trong chứng thư đó là chính xác. Đây là chữ ký của CA
và để kiểm tra nó thì cần phải có thông tin chính xác về chìa khoá công khai của CA. Thông tin này có trong chứng thư số của CA và chứng thư này luôn sẵn có trên hệ thống, như là yêu cầu đặt ra đối với hệ thống xác thực chuẩn mực.
Hình 1.10. Chứng thư số [19]
Trong một mô hình hạ tầng khóa công khai (PKI) tiêu biểu, chữ ký trong chứng thư thuộc về nhà cung cấp chứng thư số. Trong mô hình mạng lưới tín nhiệm (web of trust), thì chữ ký có thể là của chính thực thể đó hoặc của một thực thể
khác. Trong bất kỳtrường hợp nào thì chữ ký trong chứng thư là sự đảm bảo của
người ký về mối liên hệ giữa khóa công khai và thực thểđược chứng nhận.
Cả Liên minh Viễn thông Quốc tế(ITU) và IETF đều xây dựng các tiêu chuẩn cho CA. ITU X.509 [ITU 2005a] chỉ định dịch vụ xác thực cũng như cú pháp cụ
thể cho chứng thư. [RFC 1422] mô tả quản lý khóa dựa trên CA để sử dụng với e- mail Internet bảo mật. Nó tương thích với X.509 nhưng vượt xa X.509 bằng cách thiết lập các quy trình và quy ước cho một kiến trúc quản lý khóa. Sau đây là mô
tả một sốtrường quan trọng trong một chứng thư.
Bảng 1.1 Chuẩn X.509
36 Version Số phiên bản của đặc tả X.509.
Serial number Định danh duy nhất cho một chứng thư số do CA phát hành.
Signature Xác định thuật toán được sử dụng bởi CA để ký chứng
thư số này.
Issuer name Định danh của CA phát hành chứng thư sốnày, trong định dạng tên phân biệt (DN)[RFC 4512].
Validity period Bắt đầu và kết thúc thời hạn hiệu lực của chứng thư số. Subject name Định danh của chủ thể sở hữu khóa công khai liên kết với
chứng thư sốnày, trong định dạng DN.
Subject public key Khóa công khai của chủ thể cũng như chỉ báo về thuật toán khóa công khai (và các tham số thuật toán) sẽđược sử dụng với khóa này.