Tải bản đầy đủ (.doc) (26 trang)

Tiểu luận môn Mật mã và an toàn dữ liệu Tìm hiểu công nghệ Công nghệ TLS (Transport Layer Security)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (374.53 KB, 26 trang )

Công nghệ TLS
MỤC LỤC
MỤC LỤC 1
1. Mở đầu 3
2. SSL(Secure Socket Layer) và TLS (Transport Layer Security) 3
2.1. Lịch sử SSL và TSL 3
2.2. Sự khác nhau giữa SSL và TLS 5
2.3. SSL/TLS làm giao thức bảo mật riêng 6
2.4. Tính năng bảo đảm an toàn của SSL/TLS 6
3. Các thành phần của TLS 7
3.1. TLS Record Protocol 8
3.2. TLS Handshake Protocol 8
3.2.1. Giai đoạn thương lượng: 9
3.2.2. Giai đoạn ứng dụng: 11
4. Các loại tin nhắn giao thức cảnh báo 11
5. Xác thực thông điệp 15
6. Các Cipher Suites cơ bản 16
7. Khả năng cộng tác với SSL 18
8. Tương lai của SSL và TLS 19
9. Các ứng dụng của TLS 20
10. Sử dụng SSL/TLS 20
10.1 Cài đặt Certificate Services cho Windows 2003 Server 20
10.2 Tạo một yêu cầu Certificate 20
10.3 Gởi yêu cầu certificate 21
10.4 Phát sinh và download 1 Certificate 22
10.5 Cài SSL cho web site 22
10.6 Cấu hình 23
10.7 Cài đặt Apache Webserver hỗ trợ SSL 23
10.7.1 Các packages cần cài đặt 23
10.7.2 Biên dịch 23
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 1


Công nghệ TLS
10.7.3 Start Apache webserver with ssl 24
10.7.4 Cấu hình httpd.conf 24
TÀI LIỆU THAM KHẢO 25
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 2
Công nghệ TLS
1. Mở đầu
Ngày nay, Internet có thể được dùng để liên lạc điện tử. Những người sử
dụng Internet vì mục đích này thường có nhu cầu bảo đảm an toàn cho thông tin
liên lạc đó.
Thông tin liên lạc an toàn có thể được đảm bảo bằng cách sử dụng kênh
an toàn.
Một kênh an toàn sẽ cung cấp cho người sử dụng ba tính năng là: chứng
thực những người có liên quan trong liên lạc, bảo mật cho thông tin được trao
đổi trong liên lạc và bảo đảm tính toàn vẹn của thông tin được trao đổi trong
liên lạc.
2. SSL(Secure Socket Layer) và TLS (Transport Layer Security)
2.1. Lịch sử SSL và TSL
SSL và biến thể của nó TLS là các giao thức có thể được sử dụng để thiết
lập và sử dụng một kênh truyền thông an toàn giữa hai trình ứng dụng (khách
hàng – máy chủ) có trao đổi thông tin.
SSL là một giao thức lập mạng máy tính cung cấp tính năng chứng thực,
bảo mật và đảm bảo tính toàn vẹn cho thông tin được trao đổi bởi các phương
tiện sử dụng mạng máy tính.
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 3
Công nghệ TLS
Trước đây, SSL được thiết kế bởi tổ chức Netscape Communications vào
năm 1994.
SSL phiên bản 1.0 chưa từng được công bố mà chỉ được sử dụng trong
nội bộ của Netscape.

Phiên bản được ban hành lần đầu tiên, SSL 2.0, thì lại có những nhược
điểm nghiêm trọng đòi hỏi phải cho ra đời một phiên bản SSL mới.
Vào năm 1995, Microsoft đã tiến hành phát triển PCT (một công nghệ
liên lạc cá nhân) để khắc phục lại những nhược điểm của SSLv2. Đáp lại,
Netscape cũng phát triển SSL phiên bản 3.0 để giải quyết nhược điểm SSLv2 và
cung cấp thêm một số tính năng mà PCT không có.
Tháng 5 năm 1996, cơ quan Đặc Trách Kỹ Thuật Internet (IETF) đã cho
phép hai nhóm phụ trách hoạt động TLS tiến hành thực hiện tiêu chuẩn hóa giao
thức dạng SSL.
TLS 1.0 lần đầu tiên được định nghĩa trong RFC 2246 vào tháng 1 1999
như là một nâng cấp lên phiên bản SSL 3.0. Như đã nêu trong RFC, "sự khác
biệt giữa giao thức này và SSL 3.0 này không đáng kể, nhưng họ đủ quan trọng
mà TLS 1.0 và SSL 3.0 không tương thích." TLS 1.0 bao gồm một phương tiện
mà một TLS thực hiện có thể hạ cấp kết nối đến SSL 3.0.
TLS 1.1(SSL 3.2) TLS 1.1 được quy định tại RFC 4.346 trong tháng 4 năm
2006. Đây là một bản cập nhật từ phiên bản 1.0 TLS. Sự khác biệt đáng kể trong
phiên bản này bao gồm:
Nhập bảo vệ chống lại tấn công Cipher block chaining (CBC).
Các ngầm khởi Vector (IV) được thay thế bằng một IV rõ ràng.
Thay đổi trong việc xử lý sai sót padding.
Hỗ trợ cho các thông số đăng ký IANA.
TLS 1.2 đã được định nghĩa trong RFC 5.246 trong tháng 8 năm 2008. Nó
dựa trên TLS trước đó 1.1 đặc điểm kỹ thuật. sự khác biệt chính bao gồm:
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 4
Công nghệ TLS
Sự kết hợp MD5/SHA-1 trong chức năng pseudorandom (PRF) đã được
thay thế với SHA-256, với một tùy chọn để sử dụng mật mã, bộ quy định PRFs.
Sự kết hợp MD5/SHA-1 trong hash kết thúc tin nhắn đã được thay thế với
SHA-256, với một tùy chọn để sử dụng thuật toán mã hóa-suite thuật toán băm
cụ thể.

Sự kết hợp MD5/SHA-1 trong các yếu tố kỹ thuật số, ký kết được thay thế
bằng một hash đơn đàm phán trong cái bắt tay, mặc định là SHA-1.
Nâng cao trong các clients và khả năng của máy chủ để xác định các thuật
toán hash và chữ ký của họ sẽ chấp nhận. Mở rộng hỗ trợ cho các thuật toán mã
hóa mật mã xác thực, được sử dụng chủ yếu cho Galois / Counter Mode (GCM)
và chế độ CCM của mã hóa AES.
TLS mở rộng định nghĩa và Advanced Encryption Standard (AES)
CipherSuites được thêm vào.
2.2. Sự khác nhau giữa SSL và TLS
SSL v3.0 TLS v1.0
Protocol version in
messages
3.0 3.1
Alert protocol message
types
12 23
Message authentication ad hoc standard
Key material generation ad hoc PRF
CertificateVerify complex simple
Finished ad hoc PRF
Baseline cipher suites
Includes
Fortezza
no Fortezza
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 5
Công nghệ TLS
2.3. SSL/TLS làm giao thức bảo mật riêng
SSL đã được tạo riêng thành giao thức chỉ dùng cho bảo mật. Trong đó,
một tầng bảo mật đặc biệt đã được thêm vào kiến trúc của giao thức Internet.
Ở dưới cùng là giao thức Internet (IP) chịu trách nhiệm về định tuyến tin

nhắn trên mạng. Giao thức Kiểm soát Truyền dẫn (TCP) có nhiệm vụ đảm bảo
độ đáng tin cậy cho thông tin liên lạc. Phía trên cùng là Giao thức Truyền Đa
Văn Bản (HTTP) có thể xác định được các chi tiết của quá trình tương tác giữa
các trình duyệt Web và máy chủ Web.
SSL thêm vào tính năng bảo đảm an toàn bằng cách vận hành như một
giao thức bảo mật riêng đòi hỏi rất ít sự thay đổi trong các giao thức đã nói trên
và dưới đây. Đó là lý do tại sao nó có thể bảo đảm an toàn cho các ứng dụng
Internet khác như HTTP(HTTPS), SMTP (SMTPS), NNTP(NNTPS),
LDAP(LDAPS), FTP(FTPS), telnet (telnets), IMAP4(IMAPS), POP3(POP3S).
2.4. Tính năng bảo đảm an toàn của SSL/TLS
SSL/TLS được đánh giá là mạnh như các hàm mã hóa bên trong giao thức
này.
Trong phiên bản cuối cùng TLS 1.2 (RFC 5246), thuật toán SHA256
được sử dụng cho hàm giả ngẫu nhiên (PRF) và HMAC – hàm băm duy nhất
theo yếu tố ký số, bộ mã hóa AES và 3DES đã thay thế cho IDEA và DES cũ.
TLS 1.2 có năm thuộc tính mã hóa được thiết kế để dùng cho ký số, mã
hóa luồng, mã hóa khối, mã hóa AEAD (authenticated encryption with
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 6
Công nghệ TLS
additional data), mã hóa khóa công cộng tương ứng là: ký số, mã hóa mật mã
luồng, mã hóa mật mã khối, mã hóa có chứng thực với dữ liệu bổ sung (AEAD)
và mã hóa khóa công cộng.
Sự hỗ trợ mở rộng cho các mật mã mã hóa có chứng thực, được sử dụng
chủ yếu cho chế đọ Galois/Counter (GCM) và chế độ CCM của mã hóa AES
(Advanced Encryption Standard –Tiêu chuẩn mã hóa cao cấp).
Chương trình cũng thêm định nghĩa các phần mở rộng TLS và các bộ mật
mã AES.
Máy khách có thể sử dụng khóa công cộng của cơ quan chứng nhận (CA)
để xác nhận chữ ký số của CA trong chứng nhận máy chủ. Nếu có thể xác minh
chữ ký số đó thì máy khách sẽ tiếp nhận giấy chứng nhận máy chủ làm chứng

nhận hợp pháp được phát hành bởi CA đáng tin.
Bảo vệ chống lại sự xuống cấp của giao thức trong phiên bản trước (phiên
bản ít an toàn hơn) hoặc bộ mật mã yếu hơn.
Đánh số cho tất cả các bản ghi của Ứng dụng với một mã số thứ tự và sử
dụng mã số thứ tự này trong các mã chứng thực tin (MAC).
Sử dụng digest của tin nhắn được củng cố thêm bởi một khóa (vì vậy chỉ
có người giữ khóa mới có thể kiểm tra MAC). Cấu trúc HMAC được sử dụng
bởi hầu hết các bộ mật mã TLS ciphersuites là được quy định trong RFC 2104
(SSLv3 được sử dụng bởi MAC dựa trên cơ sở hàm băm khác).
Tin nhắn hoàn thành quá trình thỏa thuận ("Finished") sẽ gửi một hàm
băm của tất cả các tin nhắn thương lượng được trao đổi mà cả hai bên đầu có thể
xem.
3. Các thành phần của TLS
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 7
Công nghệ TLS
3.1. TLS Record Protocol
3.2. TLS Handshake Protocol
Một máy khách và máy chủ TLS sẽ thương lượng một hoạt động kết nối
bằng cách sử dụng thủ tục thương lượng. Trong quá trình thương lượng, máy
khách và máy chủ sẽ thỏa thuận về các tham số khác nhau được sử dụng để
thiết lập kết nối an toàn (các kết nối trong kênh mã hóa).
Quá trình thương lượng bắt đầu khi một máy khách kết nối với một máy
chủ yêu cầu kết nối an toàn (https), và trình diễn một danh sách các bộ mật mã
được hỗ trợ (các mật mã và hàm băm).
Từ danh sách của máy khách này, máy chủ sẽ chọn ra mật mã mạnh nhất
và hàm băm mà nó cũng hỗ trợ, sau đó thông báo về quyết định này cho máy
khách.
Máy chủ sẽ gửi lại bản nhận dạng của nó dưới dạng chứng nhận số. Giấy
chứng nhận này thường có chứa tên máy chủ, các cơ quan chứng nhận (CA)
đáng tin cậy, và khóa mã hóa công cộng của máy chủ.

Máy khách có thể liên lạc với máy chủ phát hành giấy chứng nhận (tức là
CA đáng tin cậy như đã nói ở trên) và xác nhận rằng chứng nhận mang tính hợp
lệ trước khi tiến hành.
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 8
Công nghệ TLS
Để tạo ra các khóa phiên sử dụng cho kết nối an toàn, máy khách cần mã
hóa một mã số ngẫu nhiên (RN) với khóa công cộng của máy chủ (PbK), và gửi
kết quả đến máy chủ. Chỉ có máy chủ mới có thể giải mã nó (với khóa riêng của
mình (PvK)): thực tế này khiến cho các bên thứ ba không thể xem các phím đó
vì chỉ có máy chủ và máy khách mới có thể truy cập vào dữ liệu này. Máy khách
sẽ được biết PbK và RN, và máy chủ được biết về PvK cùng RN (sau khi giải
mã tin nhắn của máy khách). Một bên thứ ba chỉ có thể biết RN nếu xâm nhập
được vào PvK.
Từ mã số ngẫu nhiên đã cho, cả hai bên đều tạo ra dữ liệu khóa để phục
vụ cho việc mã hóa cũng như giải mã dữ liệu (tin nhắn).
Điều này sẽ kết thúc quá trình thương lượng và bắt đầu kết nối an toàn,
được mã hóa và giải mã với dữ liệu khóa đã tạo cho đến khi kết nối kết thúc.
Quá trình thương lượng TLS có chứng thực máy khách
3.2.1. Giai đoạn thương lượng:
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 9
Công nghệ TLS
- Client gửi một tin nhắn mang tên ClientHello để xác định phiên bản cao
nhất của giao thức SSL/TLS mà nó hỗ trợ, một mã số ngẫu nhiên, một
danh sách các bộ mật mã và phương pháp nén được hỗ trợ.
- Server phản hồi lại bằng tin nhắn ServerHello, bao gồm phiên bản giao
thức được chọn, mã số ngẫu nhiên, bộ mật mã và phương pháp nén từ lựa
chọn được máy khách đưa ra. Máy chủ cũng có thể gửi một phiên id làm
phần tin nhắn thực hiện quá trình thương lượng nối tiếp.
- Server gửi tin nhắn Certificate (tùy thuộc vào bộ mật mã được chọn).
Server yêu cầu giấy chứng nhận từ máy khách để kết nối có thể được cả

hai bên chứng thực, sử dụng tin nhắn CertificateRequest.
- Server gửi tin nhắn ServerHelloDone để cho biết nó đã thực hiện quá
trình thương lượng. Client phản hồi bằng tin nhắn Certificate có chứa
giấy chứng nhận của máy khách.
- Client gửi tin nhắn ClientKeyExchange mà có thể có chứa
PreMasterSecret, khóa công cộng hoặc không có gì. PreMasterSecret
được mã hóa bằng cách sử dụng khóa công cộng của giấy chứng nhận
máy chủ. Client gửi tin nhắn CertificateVerify, nó là một chữ ký trên các
tin nhắn trước có sử dụng khóa cá nhân trong giấy chứng nhận của máy
khách. Chữ ký này có thể được xác nhận bằng cách sử dụng khóa công
cộng của giấy chứng nhận máy khách. Điều này sẽ giúp cho máy chủ biết
được máy khách truy cập vào khóa cá nhân và sở hữu giấy chứng nhận
đó. Sau đó, máy khách và máy chủ sẽ sử dụng các số ngẫu nhiên và
PreMasterSecret để tính toán bí mật chung, được gọi là "master secret" (bí
mật chính). Tất cả các dữ liệu khóa khác được sử dụng cho kết nối này
đều xuất phát từ bí mật chính này (các giá trị ngẫu nhiên được máy khách
và máy chủ tạo ra), thông qua một “hàm giả ngẫu nhiên” được thiết kế
một cách cẩn trọng.
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 10
Công nghệ TLS
- Client gửi một bản ghi mang tên ChangeCipherSpec chủ yếu để cho máy
chủ biết rằng: "Từ bây giờ, mọi điều mà tôi nói với bạn đều sẽ được
chứng thực (và được mã hóa nếu có thương lượng về điều đó)."
- Client gửi một tin nhắn Finished đã mã hóa, nó có chứa một giá trị băm
và MAC trên các tin nhắn thương lượng trước. Server giải mã tin nhắn
Finished của máy khách và xác nhận giá trị băm cùng MAC đó.
- Server gửi bản ghi ChangeCipherSpec để cho Client biết " Từ bây giờ,
mọi điều mà tôi nói với bạn đều sẽ được chứng thực (và được mã hóa nếu
có thương lượng về điều đó)."
- Server gửi tin nhắn Finished mã hóa của chính mình. Client thực hiện sự

giải mã và xác nhận tương tự.
3.2.2. Giai đoạn ứng dụng:
Tại thời điểm này, "quá trình thương lượng" được hoàn tất và giao thức
ứng dụng được kích hoạt. Các tin nhắn ứng dụng trao đổi giữa Client và Server
cũng sẽ được mã hóa chính xác như trong thông báo Finished của chúng.
4. Các loại tin nhắn giao thức cảnh báo
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 11
Công nghệ TLS
Một trong những cải tiến của TLS so với SSL là trong thủ tục để thông báo
về các cảnh báo bảo mật thực tế và tiềm ẩn. Đặc biệt, TLS định nghĩa gần như
gấp đôi với nhiều mô tả cảnh báo. Bảng 1-2 cung cấp danh sách đầy đủ của các
thông báo TLS. Nó cũng đánh dấu đó của những cái mới của TLS (với một ký
hiệu bên trái cột đầu tiên), và nó nhấn mạnh một thực tế là mô tả cảnh báo 41
(NoCertificate) đa bị xoa trong TLS. Các đặc điểm kỹ thuật TLS gỡ bỏ cảnh báo
này bởi vì, trong thực tế, nó rất khó để thực hiện. Diễn giải thành công các cảnh
báo NoCertificate đòi hỏi một trình độ cao về đồng bộ hóa giữa các giao thức
cảnh báo và bắt tay (Alert and Handshake protocols), một đồng bộ hóa có nghĩa
là nếu không thì không cần thiết. Để loại bỏ các yêu cầu cho đồng bộ hóa này,
TLS có clients mà không có giấy chứng nhận phù hợp chỉ đơn giản là trả lại một
thông báo Giấy chứng nhận sản phẩm nào.
Value Name Meaning
0 CloseNotify Bên gửi chỉ ra rõ ràng rằng đó là đóng
kết nối; thông báo đóng có mức độ cảnh
báo trầm trọng.
10 UnexpectedMessage Bên gửi chỉ ra rằng nó đã nhận được
một thông báo không phù hợp; cảnh báo
này luôn luôn gây tràn.
20 BadRecord-MAC Bên gửi chỉ ra rằng nó đã nhận được
một tin nhắn với một mã xác thực thông
điệp xấu; cảnh báo này luôn luôn gây

tràn.
21 Decryption-Failed Bên gửi chỉ ra rằng tin nhắn đó đã được
giải mật mã không hợp lệ (ví dụ, nó
không phải là một bội số của kích thước
khối hoặc có đệm không hợp lệ); cảnh
báo này luôn luôn gây tràn.
22 RecordOverflow Bên gửi chỉ ra rằng một tin nhắn nó
nhận được mà sau khi giải mã hoặc giải
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 12
Công nghệ TLS
nén, có kích thước hơn 214 + 2048 byte;
cảnh báo này luôn luôn gây tràn.
30 DecompressionFailure Bên gửi chỉ ra rằng nó đã nhận được dữ
liệu mà nó không thể giải nén; cảnh báo
này luôn luôn gây tràn.
40 Hand-ShakeFailure Bên gửi chỉ ra rằng nó đã không thể đàm
phán để thiết lập chấp nhận các dịch vụ
an ninh cho phiên làm việc; cảnh báo
này luôn luôn gây tràn.
41 NoCertificate Bên gửi (mà luôn luôn là một clients)
chỉ ra rằng nó không có giấy chứng
nhận mà có thể đáp ứng yêu cầu xác
nhận của máy chủ.
42 BadCertificate Bên gửi nhận được một giấy chứng nhận
đã được sửa đổi (ví dụ, chữ ký của nó
không thể được xác minh)
43 UnsupportedCertificate Bên gửi nhận được một giấy chứng nhận
của một loại rằng nó không thể hỗ trợ
44 Certificate-Revoked Bên gửi nhận được một giấy chứng nhận
cái mà đã bị thu hồi của cơ quan cấp

giấy chứng nhận
45 Certificate-Expired Bên gửi nhận được một giấy chứng nhận
đã hết hạn.
46 Certificate-Unknown Bên gửi chỉ ra một vấn đề không xác
định với một giấy chứng nhận nhận
được
47 Illegal Parameter Bên gửi chỉ ra rằng nó đã nhận được
một tin nhắn bắt tay với một giá trị tham
số đó là bất hợp pháp hoặc không phù
hợp với các thông số khác.
48 UnknownCA Bên gửi chỉ ra rằng nó không thể xác
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 13
Công nghệ TLS
định hoặc không tin tưởng các cơ quan
chứng nhận của một chuỗi giấy chứng
nhận nhận được; cảnh báo này luôn luôn
gây tràn.
49 Access-Denied Bên gửi chỉ ra rằng các bên xác định
trong giấy chứng nhận ngang hàng
không có quyền truy cập để tiếp tục đàm
phán; cảnh báo này luôn luôn gây tràn.
50 DecodeError Bên gửi chỉ ra rằng tin nhắn đã nhận
được không thể được giải mã bởi vì một
trường giá trị được ra khỏi phạm vi cho
phép hoặc chiều dài tin nhắn được
không hợp lệ; cảnh báo này luôn luôn
gây tràn.
51 DecryptError Bên gửi chỉ ra rằng một hoạt động mật
mã cần thiết để bắt tay đàm phán thất
bại.

60 ExportRestriction Bên gửi chỉ ra rằng nó phát hiện một
tham số đàm phán không phù hợp với
các hạn chế xuất khẩu áp dụng Hoa Kỳ;
cảnh báo này luôn luôn gây tràn.
70 Protocol-Version Bên gửi chỉ ra rằng nó không thể hỗ trợ
các phiên bản giao thức TLS yêu cầu;
cảnh báo này luôn luôn gây tràn.
71 Insufficient-Security Bên gửi (luôn luôn là một máy chủ) chỉ
ra rằng nó yêu cầu mật mã dãy phòng an
toàn hơn những hỗ trợ của clients; cảnh
báo này luôn luôn gây tràn.
80 InternalError Bên gửi chỉ ra rằng một lỗi địa phương
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 14
Công nghệ TLS
để hoạt động và độc lập của giao thức
TLS (như là một sự thất bại cấp phát bộ
nhớ) làm cho nó không thể tiếp tục;
cảnh báo này luôn luôn gây tràn.
90 UserCanceled Bên gửi chỉ ra rằng nó muốn hủy bỏ
việc đàm phán bắt tay vì những lý do
khác hơn là lỗi giao thức; tin nhắn này
thường là một lời cảnh báo và cần được
theo sau bởi một CloseNotify
100 NoRenegotiation Người gửi chỉ ra rằng nó không thể thực
hiện theo yêu cầu ngang hàng để đàm
phán lại TLS handshake; cảnh báo này
luôn luôn gây tràn.
Mô tả các cảnh báo của TLS
5. Xác thực thông điệp.
Một lĩnh vực khác, trong đó TLS cải thiện so với SSL là trong các thuật

toán để xác thực thông điệp. Cách xác thực của SSL kết hợp thông tin chính và
dữ liệu ứng dụng là khá độc lập, tạo ra chỉ dành cho giao thức SSL. Giao thức
TLS dựa trên một mã xác thực tin nhắn tiêu chuẩn được gọi là h-mac (for
Hashed Message Authentication Code). Các thuật toán h-mac là một quy định
tiêu chuẩn, và đã bị phân tích mật mã nghiêm ngặt. Các đặc điểm kỹ thuật h-mac
bao gồm một mô tả chính xác của phương pháp tiếp cận, cũng như mã nguồn
mẫu, hình 1 minh họa h-mac trong một định dạng có thể được so sánh với số
liệu khác trong văn bản này. Lưu ý rằng h-mac không xác định một thuật toán
băm cụ thể (như md5 hay sha); đúng hơn, nó hoạt động hiệu quả với bất kỳ thuật
toán băm đủ mạnh. Thông điệp TLS mã xác thực là một ứng dụng đơn giản của
tiêu chuẩn h-mac. Mac là kết quả của phương pháp h-mac, bằng cách sử dụng
thuật toán băm bất cứ điều gì với bộ phần mềm mật mã thương lượng yêu cầu.
Bí mật h-mac là mac viết bí mật xuất phát từ bí mật tổng thể. Bảng 1-3 liệt kê
các thông tin đó được bảo vệ.
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 15
Công nghệ TLS
Băm MAC hoạt động với bất kỳ thuật toán băm.
6. Các Cipher Suites cơ bản.
Về cơ bản, TLS gần như hỗ trợ cùng một dãy cipher suites như SSL, tuy nhiên,
rõ ràng hỗ trợ cho Fortezza/dms cipher suites đã được gỡ bỏ. Các bộ mật mã
được định nghĩa dãy phòng TLS sẽ có khả năng mở rộng như dãy phòng mật mã
mới được phát triển và triển khai thực hiện. Bởi vì IETF có một quy trình rõ
ràng để đánh giá các đề xuất, cải tiến sẽ được dễ dàng hơn để thêm vào TLS hơn
là họ đã để SSL. Bảng 1-5 liệt kê các Cipher Suites cơ bản của TLS, cùng với
các giá trị của nó trong tin nhắn hello.
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 16
Công nghệ TLS
Hình 5: TLS uses the PRF for Finished messages.
Value Cipher Suite
0,0 TLS_NULL_WITH_NULL_NULL

0,1 TLS_RSA_WITH_NULL_MD5
0,2 TLS_RSA_WITH_NULL_SHA
0,3 TLS_RSA_EXPORT_WITH_RC4_40_MD5
0,4 TLS_RSA_WITH_RC4_128_MD5
0,5 TLS_RSA_WITH_RC4_128_SHA
0,6 TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
0,7 TLS_RSA_WITH_IDEA_CBC_SHA
0,8 TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
0,9 TLS_RSA_WITH_DES_CBC_SHA
0,10 TLS_RSA_WITH_3DES_EDE_CBC_SHA
0,11 TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
0,12 TLS_DH_DSS_WITH_DES_CBC_SHA
0,13 TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
0,14 TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
0,15 TLS_DH_RSA_WITH_DES_CBC_SHA
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 17
Công nghệ TLS
0,16 TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
0,17 TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
0,18 TLS_DHE_DSS_WITH_DES_CBC_SHA
0,19 TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
0,20 TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
0,21 TLS_DHE_RSA_WITH_DES_CBC_SHA
0,22 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
0,23 TLS_DH_anon_EXPORT_WITH_RC4_40_MD5
0,24 TLS_DH_anon_WITH_RC4_128_MD5
0,25 TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA
0,26 TLS_DH_anon_WITH_DES_CBC_SHA
0,27 TLS_DH_anon_WITH_3DES_EDE_CBC_SHA
Bảng 1-5 TLS Version 1.0 Baseline CipherSuite Values

7. Khả năng cộng tác với SSL
Như là trường hợp với sự chuyển đổi từ phiên bản SSL 2.0 sang phiên bản SSL
3.0, có một cách rõ ràng cho các hệ thống để hỗ trợ cả hai SSL 3.0 và TLS 1.0
một cách tương thích. Một clients hỗ trợ cả phiên bản SSL 3.0 và phiên bản TLS
1.0 phải gửi một phiên bản SSL 3.0 ClientHello, nhưng với phiên bản giao thức
thiết lập để 3.1. Nếu máy chủ TLS hiểu, nó phản ứng với một TLS ServerHello;
nếu không, nó phản ứng với một ServerHello SSL, và clients biết để rơi trở lại
phiên bản SSL 3.0. Máy chủ TLS hỗ trợ, ngay cả khi họ không hỗ trợ SSL, vẫn
cần được chuẩn bị để chấp nhận một SSL v3.0 ClientHello. Nếu họ nhận được
một thông điệp với phiên bản thiết lập để 3.1, họ có thể tiến hành một cách an
toàn với một cái bắt tay TLS.
Trường này xác định các kiểu bắt tay tin nhắn
Message Types
Code Description
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 18
Công nghệ TLS
0 HelloRequest
1 ClientHello
2 ServerHello
11 Certificate
12 ServerKeyExchange
13 CertificateRequest
14 ServerHelloDone
15 CertificateVerify
16 ClientKeyExchange
20 Finished
8. Tương lai của SSL và TLS
Tương lai của SSL và TLS rõ ràng là trong tay của IETF, cũng như các nhà
phát triển của các trình duyệt web, máy chủ Web, và hệ thống Internet khác đó
có yêu cầu an ninh. Phiên bản 3.0 của ssl là cũng được thành lập tại các khu vực

này, và, như các hệ thống nhiều hơn kết nối với Internet và các giao dịch
Internet nhiều hơn yêu cầu an ninh, SSL sẽ chỉ ảnh hưởng của phát triển. Đã có,
các thiết bị khác nhau, từ nhận WebTV cho các máy tính Palm bao gồm việc
triển khai của SSL hoặc TLS. Ngoài ra, các ứng dụng khác hơn cho thương mại
Web thường xuyên được thực hiện các quyền lợi của một giao thức bảo mật hiệu
quả mạng. The Open Settlement Protocol, 2 ví dụ, dựa vào SSL để đảm bảo các
dịch vụ dựa trên IP điện thoại, và các ứng dụng không dây Diễn đàn Nghị định
thư đã được xác định một biến thể của TLS3 cho việc đảm bảo các thiết bị cầm
tay. Sự thay đổi từ SSL như là một công nghệ độc quyền để TLS như một tiêu
chuẩn mở cũng sẽ tăng cường giao thức. Bây giờ TLS được quản lý bởi một tổ
chức tiêu chuẩn quốc tế, tham gia phát triển của nó được mở cửa cho bất kỳ bên
quan tâm. Quá trình chuẩn hóa TLS cho an ninh mạng cộng đồng tự do nhiều
hơn nữa để cải thiện và nâng cao hoạt động của giao thức. Nếu một lỗ hổng mới
được phát hiện, hoặc nên mới, hiệu quả hơn các thuật toán mã hóa được phát
triển, nó sẽ được dễ dàng hơn nhiều để sửa đổi TLS thích hợp. Điều này đảm
bảo rằng lợi ích một mình, dưới tên mới của nó, SSL sẽ tiếp tục hỗ trợ an toàn
thông tin liên lạc Internet trong nhiều năm tới.
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 19
Công nghệ TLS
9. Các ứng dụng của TLS.
SSL và TLS đã được thực hiện rộng rãi trong một số dự án phần mềm mã
nguồn mở. Các lập trình viên có thể sử dụng thư viện OpenSSL, NSS, hoặc
GnuTLS cho các chức năng của SSL / TLS. Microsoft Windows đưa thống xử
lý của SSL và TLS vào làm một phần của gói Secure Channel của mình. Các lập
trình viên Delphi có thể sử dụng một thư viện được gọi là Indy.
Khai triển trình duyệt
Hầu hết tất cả các trình duyệt web gần đây đều hỗ trợ TLS:
Safari hỗ trợ TLS (chưa xác định phiên bản)
Mozilla Firefox phiên bản 2 hỗ trợ TLS 1.0
Internet Explorer 8 trong Windows 7 và Windows Server 2008 R2 hỗ trợ

TLS 1.2.
Opera 10 hỗ trợ TLS 1.2.
10. Sử dụng SSL/TLS
10.1 Cài đặt Certificate Services cho Windows 2003 Server
Trong Windows 2003 Server, mở cửa sổ Control Panel.
1. Chọn Add/Remove Programs, chọn tiếp Add/Remove Windows
Components.
2. Chọn Certificate Services trong Windows Components Wizard, nhấn
Next.
3. Chọn kiểu dịch vụ mà bạn muốn cài đặt : Stand-Alone root CA, nhấn
Next.
4. Nhập thông tin định danh CA được yêu cầu và nhấn Next.
5. Nhấn Next tiếp để chấp nhận các thiết lập mặc định, nhấn Finish để
hoàn thành quá trình cài đặt.
10.2 Tạo một yêu cầu Certificate
1. Mở cửa sổ Internet Service Manager Microsoft Management Console
(MMC)
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 20
Công nghệ TLS
2. Mở bảng Property của Web Site bạn cần cài Certificate
3. Chọn tab Directory Security
4. Nhấn vào nút Server Certificate, cửa sổ Certificate Wizard hiện ra,
nhấn Next
5. Chọn Create a new certificate, nhấn Next
6. Chọn Prepare the request now, but send it later và chọn Next
7. Gõ tên cho certificate, chọn dộ dài bit mã hoá và các thông tin cần thiết,
nhấn Next để tiếp tục.
8. Chọn đường dẫn và tên file để lưu thông tin certificate
9. Kiểm tra lại thông tin bạn nhập, nhấn Next để tạo certificate
10.3 Gởi yêu cầu certificate

1. Mở browser và gõ https://servername/CertSrv/
2. Chọn Request a Certificate, chọn Next
3. Chọn Advance Request, nhấn Next
4. Chọn Submit a Certificate Request using a Base64, nhấn Next
5. Mở file certificate vừa tạo
6. Chọn và copy nội dung file
BEGIN NEW CERTIFICATE REQUEST
MIIC9DCCAl0CAQAwXzEQMA4GA1UEAxMHdGVzdGluZzEQMA4GA1UECxM
HU3lzRGVwdDEQMA4GA1UEChMHTmV0U29mdDENMAsGA1UEBxMESENN
QzELMAkGA1UECBMCVEIxCzAJBgNVBAYTAlZOMIGfMA0GCSqGSIb3DQE
BAQUAA4GNADCBiQKBgQC3uElzTyLG7bwsPv0zuljVLodhZ3DvkOtyliod/iRjHl
XVeG49WpDjFcp0vY2QFJClp0fvU586Bqnf6R1UbW7z8dDSLLo3gMQuyaYOAZh
VHeeVVE4yv/vxuTBO+JW8wYN9NrsPsxHQiUgyyBIQgphnEyamClfeFYEimNQs9
/3tnQIDAQABoIIBUzAaBgorBgEEAYI3DQIDMQwWCjUuMC4yMTk1LjIwNQY
KKwYBBAGCNwIBDjEnMCUwDgYDVR0PAQH/BAQDAgTwMBMGA1UdJQQ
MMAoGCCsGAQUFBwMBMIH9BgorBgEEAYI3DQICMYHuMIHrAgEBHloATQ
BpAGMAcgBvAHMAbwBmAHQAIABSAFMAQQAgAFMAQwBoAGEAbgBuAG
UAbAAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2
AGkAZABlAHIDgYkAXxNuAz6gcBaZUdef8WQ2PAroKMW8sprcKv7QD2encz6/
Wct9DZ5CkGynLGy0f+Lff7ViSDJqxYWaJ68ddqgXyAqIilF63kivPTiC6yxLaNX65
v3cnKFx4UrUrGXZtub7M7/NuxSipOW0Vv7yCHganypxDyRzp6IhulEnL4APEH4A
AAAAAAAAADANBgkqhkiG9w0BAQUFAAOBgQBmEU7t4rNg+xXg9l1YWh+
+Ye2x3yt3S9r+/LOblckL8jllmYsS7YLvHBQYXj9zN5mh2RpoLllWWlct7wHKWig
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 21
Công nghệ TLS
87G/oeBWeGIf9bJXJFvOBYO2x/eBwK+Qk0ufy1KIKUozeS7WnqaFFse+912/mqH
5h7bh+McqwB0A+g/n1Cp0NkQ==
END NEW CERTIFICATE REQUEST
7. Paste nó vào trong text box Base64 Encoded Certificate Request
8. Dưới Certificate Template, chọn Web Server rối nhấn Next

9. Nếu Certificate Server được cấu hình Always Issue the Certificate, bạn
có thể download certificate ngay lập tức.
10. Nếu Certificate Server được cấu hình là Set the certificate request
status to pending, bạn sẽ nhận được thông điệp Certificate Pending.
10.4 Phát sinh và download 1 Certificate
1. Mở Certificate Authority (CA) Microsoft Management Console
(MMC) bằng cách chọn Start – Program – Administrator Tools –
Certificate Authority
2. Mở Certificate Authority
3. Chọn Pending Requests. Cửa sổ bên phải sẽ xuất hiện những yêu cầu
chưa xử lý
4. Nhấn phải chuột vào yêu cầu chưa được xử lý đó, chọn All Tasks rồi
nhấn Issue
Sau khi đã phát sinh certificate, việc tiếp theo là download certificate
1. Mở IE, gõ http://servername/CertSrv
2. Trong trang mặc định, chọn Check on a pending certificate và chọn
Next
3. Trong trang download, nhấn link Download CA Certificate
10.5 Cài SSL cho web site
1. Mở Internet Service Manager
2. Mở Property của Web site muốn cài SSL
3. Thiết lập cổng SSL là 443.
4. Chọn tab Directory Security, dưới Secure Communications, nhấn Server
Certificate. Để mở Certificate Installation Wizard, nhấn Next
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 22
Công nghệ TLS
5. Chọn Select Pending request and install the certificate, chọn Next
6. Chọn file certificate
7. Nhấn Finish.
10.6 Cấu hình

1. Trong tab Directory Security, dưới Secure Communications, nhấn
Edit. Dialog Secure Communications sẽ xuất hiện.
2. Chọn Require Secure Chanel (SSL), nhấn OK.
3. Nhấn Apply rồi OK.
10.7 Cài đặt Apache Webserver hỗ trợ SSL
10.7.1 Các packages cần cài đặt
• mod-ssl-2.8.8-1.3.33.tar.gz ()
• openssl-0.9.7g.tar.gz ()
• apache-1.3.33.tar.gz ()
• perl 5 Module openssl là thư viện thực hiện các giải thuật mã hoá DES,
MD5, RSA,
Module mod-ssl dùng để “plug-in” openssl vào apache webserver.
Chép các packages này vào cùng một thư mục và giải nén.
10.7.2 Biên dịch
1. Trước tiên cài package perl trước.
2. Cài package OpenSSL
• $ cd openssl-0.9.7g
• $ perl Configure VC-WIN32 prefix=c:/openssl
• $ ms\do_ms
3. Cài package modssl.
• $ cd /mod-ssl-2.8.8-1.3.33
• $ configure –with-apache= /apache-1.3.24
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 23
Công nghệ TLS
with –ssl= /openssl-0.9.6.b
prefix=/usr/local/apache
enable-shared=ssl
4. Cài đặt Apache
• $ cd /apache-1.3.24
• $ make

• $ make certificate
• $ make install
10.7.3 Start Apache webserver with ssl
#apachectl startssl
10.7.4 Cấu hình httpd.conf
Giả sử ta muốn website aaa.bbb.ccc.ddd hỗ trợ giao thức https.
<VirtualHost aaa.bbb.ccc.ddd:443>
SSLEngine on
ServerName www.your-domain.netsoft
DocumentRoot /www/docs/secure
SSLCertificateFile /www/conf/ssl.crt/certificate-filename.crt
SSLCertificateKeyFile /www/conf/ssl.key/filename.key
</VirtualHost>
Ngoài ra, chúng ta có thể sử dụng dịch vụ xác nhận chữ ký trực tuyến để
phát sinh một certificate cho server theo cách sau :
1. Tạo một yêu cầu chứng thực server
• Chạy MMC, vào Key Manager, chọn Create New Key
• Chọn Put the request in a file that you will send to an
authority, gán một tên file yêu cầu chứng chỉ, nhấn Next.
• Gán tên và mật khẩu (mã hoá khoá bí mật và cần khi cài đặt
chứng chỉ) cho cặp khoá, nhấn Next.
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 24
Công nghệ TLS
• Cung cấp thông tin về tổ chức của bạn, nhấn Commit Change
Now để Save khoá mới.
Kết quả được một cặp khoá mới (bí mật và công khai), một file
yêu cầu chứng thực Server.
2. Chỉ WebBrowser đến trang
3. Chọn WebServer bên dưới Organizations trên trang đăng ký của
VeriSign

4. Chọn I want a Digital ID for Testing purpose only (miễn phí và
chỉ có giá trị trong một thời gian nhất định)
5. Chọn Microsoft từ danh sách các hãng phần mềm có sẵn
6. Cut và paste yêu cầu chứng thực vào một nơi đặc biệt và cung
cấp toàn bộ các thông tin được yêu cầu.
7. Chọn Accept để chấp nhận yêu cầu, nếu yêu cầu được chấp nhận
 một email chứa chứng chỉ Server do VeriSign cung cấp sẽ được
gửi trở lại.
8. Phần chứng chỉ được bắt đầu từ dòng BEGIN CERTIFICATE
đến END CERTIFICATE trong email.
Tham khảo thêm về modssl và openssl tại địa chỉ :


Về các dịch vụ chứng thực điện tử tại :


TÀI LIỆU THAM KHẢO
1. The Transport Layer Security Ver1.1
2. The Transport Layer Security Ver1.2
Đoàn Văn Phi – K19 KTPM – ĐH Công Nghệ - ĐH QGHN Trang 25

×