Drudwas

New Member

Download miễn phí Đồ án Secure Socket Layer





TLS tạo cách sử dụng hàm tạo số ngẫu nhiên dùng cho PRF để mở rộng các secret(phần bí mật) thành các khối dữ liệu cho mục đích sinh khóa hay phê chuẩn.Đối tượng là để tạo ra cách sử dụng các giá trị shared secret nhỏ có liên hệ với nhau, nhưng để phát sinh các khối dài hơn theo cách an toàn khỏi sự tấn công dựa trên hàm băm và MACx.PRF dựa trên hàm mở rộng dữ liệu sau:



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

a:
A(0)=seed
A(i) =HMAC_hash(secret,A(i-1))
PTIT 2009 Đề tài môn Bảo mật thông tin
Secure Socket Layer 24
Hàm mở rộng dữ liệu tạo cách sử dụng giải thuật HMAC, với hay MD5 hay SHA-1 như là trên cơ sở hàm
băm.Như ta có thể thấy,P_hash có thể lặp đi lặp lại nhiều lần như sự cần thiết để tạo ra số lượng dữ liệu được yêu
cầu.Ví dụ, nếu P_SHA-1 được dùng để sinh ra 64 byte dữ liệu,nó sẽ được lặp đi lặp lại 4 lần tạo ra 80 byte dữ
liệu,mà 16 byte cuối bị loại bỏ.Trong trường hợp này,P_MD5 cũng sẽ được lặp lại 4 lần,tạo ra chính xác 64 bytes
dữ liệu.Chú ý rằng mỗi lần lặp lại sẽ gọi 2 hàm thực thi HMAC, mỗi một cái sẽ quay sang gọi 2 hàm thực thi trên cơ
sở giải thuật hàm băm.
Để tạo ra PRF an toàn đến mức có thể,nó sử dụng 2 giải thuật băm theo cách mà sẽ đảm bảo sự an toàn của nó nếu
giải thuật vẫn còn bảo mật.PRF được định nghĩa :
hash(ClientHello.random || ServerHello.random || ServerParams)
PRF lấy khi đầu vào một giá trị bí mật, một nhãn xác định, và một giá trị hạt giống(seed) và tạo ra một output có
chiều dài tùy ý.Output được tạo bằng cách phân cắt giá trị bí mật thành hai nửa (S1 và S2 và biểu diễn P_hash ở mỗi
nửa,sử dụng MD5 ở một nửa và SHA-1 ở nửa khác.Hai kết quả được thực hiện bởi phép XOR để tạo ra output, cho
mục đích này,P_MD5 nhìn chung phải lặp lại nhiều lần hơn P_SHA-1 để tạo một lượng dữ liệu ngang bằng cho
input bằng hàm XOR)
I.8.4 Mã thông báo :
TLS hỗ trợ tất cả các mã alert code được định nghĩa trong SSLv3 với ngoại lệ no_certificate. Một số các code thêm
vào được định nghĩa trong TLS, sau đây là một số thông báo mức nguy hiểm:
 decryption_failed : một cipher text được giải mã theo cách sai, hay nó không phải là phép nhân của chiều dài
khối hay giá trị đệm của nó,khi kiểm tra là không đúng.
PTIT 2009 Đề tài môn Bảo mật thông tin
Secure Socket Layer 25
 record_overflow:một TLS record được nhận với một payload(ciphertext) có chiều dài 214+2048 bytes, hay
ciphertext được giải mã với chiều dài lớn hơn 214+1024 byte.
 unknown_ca : một chuỗi certificate hợp lệ hay 1 phần chuỗi được nhận,nhưng certificate không được chấp
nhận bởi vì CA certificate không thể được cấp phát hay không thể tạo ra kết nối với 1 CA hiểu biết,tin cậy.
 access_defined: một certificate hợp lệ được nhận, vì khi access_control được thừa nhận, sender quyết định
không thực thi với thỏa thuận.
 decord_error : một thông điệp không thể được giải mã vì 1 trường bị thiếu range đặc biệt hay chiều dài của
message không đúng.
 export_restriction : một thỏa thuận không được chấp nhận với việc xuất ra các hạn chế trên chiều dài khóa bị
phát hiện.
 protocol_version: phiên bản giao thức mà client nỗ lực thỏa thuận được nhận thấy nhưng không hỗ trợ.
 insufficient_security: trả về thay thế handshake_failure khi thỏa thuận bị thất bại 1 cách đặc biệt bởi vì server
yêu cầu cipher nhiều bảo mật hơn những cái khác được hỗ trợ bởi client.
 internal_error: một lỗi bên trong không liên hệ với cấp tương đương hay sự sửa lỗi của giao thức tạo ra
không thể để tiếp tục.
Phần còn lại của các thông báo mới bao gồm:
 decrypt_error: toán hạng mã hóa bắt tay bị hư, bao gồm không thể xác minh 1 chữ kí,mã hóa 1 trao đổi khóa
hay công nhận 1 thông điệp hoàn tất.
 user_canceled: quá trình bắt tay này bị hoãn lại vì 1 số lí do không liên quan đến sự thất bại giao thức.
 no_renegotiation: gửi đi bởi client trong phần đáp lại client hello sau khi thiết lập bắt tay.hay những thông
điệp này sẽ có kết quả bình thường trong việc thỏa thuận lại,nhưng thông báo này chỉ ra rằng sender không thể
thỏa thuận.Thông điệp này luôn luôn là 1 cảnh báo(warning).
I.8.5 Cipher suite :
Có nhiều sự khác nhau nhỏ giữa các cipher suite sẵn có dưới SSLv3 và dưới TLS:
 Trao đổi khóa:TLS hỗ trợ tất cả các công nghệ trao đổi khóa của SSLv3 với ngoại lệ của Fortezza.
 Các giải thuật mã hóa đối xứng:TLS bao gồm tất cả các giải thuật mã hóa đối xứng được tìm thấy trong
SSLv3,với ngoại lệ của Fortezza.
I.8.6 Các dạng client certificate :
TLS định nghĩa cá kiểu certificate sau đây được yêu cầu trong thông điệp
certificate_request:rsa_sign,dss_sign,rsa_fixed_dh, và dss_fixed_dh. Tất cả những kiểu này được định nghĩa trong
SSLv3. Thêm vào đó,SSLv3 bao gồm rsa_ephemeral_dh, dss_ephemeral_dh và fortezza_kea.
Ephemeral Diffie-Hellman bao gồm đánh dấu các tham số Difie-Hellman với hay RSA hay DSS, với TLS,
rsa_sign và kiểu đánh dấu riêng không cần thiết để đánh dấu các tham số Diffie-Hellman.TLS không bao gồm hê
thống Fortezza.
PTIT 2009 Đề tài môn Bảo mật thông tin
Secure Socket Layer 26
I.8.7 Certificate Verify và Finished Message :
Trong thông điệp TLS_certificate_verify, mã băm MD5 và SHA-1 được tính toán chỉ trên các thông điệp bắt
tay(handshake_message).Nhớ lại rằng SSLv3 tính toán hàm băm còn bao gồm master_secret và đệm.Các trường
thêm vô này thất bại trong việc cộng thêm bảo mật không được thêm vào.
Khi các thông điệp hoàn tất trong SSLv3, thông điệp kết thúc trong TLS là 1 mã băm dựa trên
shared_master_secret, thông điệp bắt tay ở trước, và một nhãn xác định client hay server, việc tính toán có đôi chút
khác biệt.
Đối với TLS ta có:
PRF(master_secret, finished_label, MD5(handshake_messages)|| SHA-1(handshake_messages))
Với finished_label là chuỗi “client_finished” đối với client và “server finished” đối với server.
I.8.8 Tính toán mã hóa :
Pre_master_secret đối với TLS được tính toán cùng 1 cách như trong SSLv3.Như trong SSLv3, master_secret trong
TLS được tính toán như 1 hàm băm của pre_master_secret và hai số ngẫu nhiên hello.Công thức của phép tính toán
TLS khác với công thức tính của SSLv3,được định nghĩa như sau:
master_secret = PRF(pre_master_secret, "master secret", ClientHello.random || ServerHello.random)
Giải thuật biểu diễn cho đến khi 48 byte của output số ngẫu nhiên được tạo ra.Phép tính toán của khối vật liệu
key(MAC secret keys,khóa mã hóa phiên, và ma trận khởi tạo IVs) được định nghĩa như sau:
key_block = PRF(master_secret,"key expansion",SecurityParameters.server_random ||
SecurityParameters.client_random)
Cho đến khi đủ output được sinh ra.Như với SSLv3,key_block là 1 hàm của master_secret và client và server
random numbers, nhưng với TLS giải thuật thực tế là khác biệt.
I.8.9 Phần đệm :
Trong SSL, phần đệm thêm vào trước để mã hóa dữ liệu user là số lượng nhỏ nhất được yêu cầu để mà kích thước
tổng của dữ liệu được mã hóa là một phép nhân của chiều dài khối của cipher.Trong TLS, padding có thể là bất kì
số lượng nào mà có kết quả trong một tổng mà là một phép nhân của chiều dài khối của cipher lên đến 1 giá trị lớn
nhất là 255 byte.Ví dụ, nếu 1 plaintext (hay văn bản nén được dùng) cộng với MAC+padding length byte là dài 79
byte.Sau đó chiều dài padding,tính theo byte, có thể là 1,9,17 và hơn nữa,đến 249. Chiều dài phần đệm tùy biến có
thể chống lại các tấn công dựa trên một phép phân tích các chiều dài của các thông điệp trao đổi.
PTIT 2009 Đề tài môn Bảo mật thông tin
Secure Socket Layer 27
Chương II :
II.1 Quan hệ giữa các Class :
Để liên lạc một cách...
 
Top