Thứ Năm, 15 tháng 3, 2012

SSL (Secure Socker Layer)

SSL (Secure Socker Layer)

Giới Thiệu Chung
SSL (Secure Socket Layer ) là giao thức đa mục đích được thiết kế để tạo ra các giao tiếp giữa hai chương trình ứng dụng trên một cổng định trước (socket 443) nhằm mã hoá toàn bộ thông tin đi/đến, mà ngày nay được sử dụng rộng rãi cho giao dịch điện tử như truyền số hiệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) trên Internet.
Giao thức SSL (Secure Socket Layer) tổ hợp nhiều giải thuật mã hóa nhằm đảm bảo quá trình trao đổi thông tin trên mạng được bảo mật. Việc mã hóa dữ liệu diễn ra một cách trong suốt, hỗ trợ nhiều giao thức khác chạy trên nền giao thức TCP.
Sercure Socket Layer (SSL) hiện nay là giao thức bảo mật rất phổ biến trên Internet trong các hoạt động thương mại điện tử (E-Commerce). Việt Nam đang trên đường hội nhập với nền công nghệ thông tin thế giới, nên nay mai, các hoạt động giao dịch trên mạng ở Việt Nam cũng sẽ diễn ra sôi nổi, khi đó vấn đề bảo mật trở nên quan trọng, việc triển khai SSL là điều thiết yếu. Tuy nhiên đến nay hình như vẫn chưa có trang Web nào ở Việt Nam sử dụng SSL trong các giao dịch của mình. Bài viết này nhằm giới thiệu sơ lược về SSL cũng như cách triển khai SSL trên Internet Information Server (IIS) 5.0 và Windows 2000
Giao thức SSL được hình thành và phát triển đầu tiên năm 1994 bởi nhóm nghiên cứu Netscape dẫn dắt bởi Elgammal và ngày nay đã trở thành chuẩn bảo mật thực hành trên mạng Internet. Phiên bản SSL hiện nay là 3.0 và vẫn đang tiếp tục được bổ sung và hoàn thiện.
SSL là giao thức tầng (layered protocol), bao gồm 4 giao thức con sau:
+ Giao thức SSL Handshake
+ Giao thức SSL Change Cipher Spec
+ Giao thức SSL Alert
+ SSL Record Layer
Vị trí của các giao thức trên, tương ứng với mô hình TCP/IP được minh hoạ theo biểu đồ sau:


Theo biểu đồ trên, SSL nằm trong tầng ứng dụng của giao thức TCP/IP. Do đặc điểm này, SSL có thể được dùng trong hầu hết mọi hệ điều hành hỗ trợ TCP/IP mà không cần phải chỉnh sửa nhân của hệ thống hoặc ngăn xếp TCP/IP. Điều này mang lại cho SSL sự cải tiến mạnh mẽ so với các giao thức khác như IPSec (IP Security Protocol). Vì giao thức này đòi hỏi nhân hệ điều hành phải hỗ trợ và chỉnh sửa ngăn xếp TCP/IP. SSL cũng có thể dễ dàng vượt qua tường lửa và proxy, cũng như NAT (Network Address Translation) mà không cần nguồn cung cấp.
Hoạt Động Của Giao Thức SSL
Điểm cơ bản của SSL được thiết kế độc lập với tầng ứng dụng để đảm bảo tính bí mật, an toàn và chống giả mạo luồng thông tin qua Internet giữa hai ứng dụng bất kỳ, thí dụ như webserver và các trình duyệt khách (browsers), do đó được sử dụng rộng rãi trong nhiều ứng dụng khác nhau trên môi trường Internet.
Toàn bộ cơ chế hoạt động và hệ thống thuật toán mã hoá sử dụng trong SSL được phổ biến công khai, trừ khoá chia xẻ tạm thời (session key) được sinh ra tại thời điểm trao đổi giữa hai ứng dụng là tạo ngẫu nhiên và bí mật đối với người quan sát trên mạng máy tính. Ngoài ra, giao thức SSL còn đỏi hỏi ứng dụng chủ phải được chứng thực bởi một đối tượng lớp thứ ba (CA) thông qua giấy chứng thực điện tử (digital certificate) dựa trên mật mã công khai (thí dụ RSA).
Sau đây ta xem xét một cách khái quát cơ chế hoạt động của SSL để phân tích cấp độ an toàn của nó và các khả năng áp dụng trong các ứng dụng nhạy cảm, đặc biệt là các ứng dụng về thương mại và thanh toán điện tử...

Từng bước thành lập một kết nối SSL
Giao thức SSL dựa trên hai nhóm con giao thức là giao thức "bắt tay" (handshake protocol) và giao thức "bản ghi" (record protocol). Giao thức bắt tay xác định các tham số giao dịch giữa hai đối tượng có nhu cầu trao đổi thông tin hoặc dữ liệu, còn giao thức bản ghi xác định khuôn dạng cho tiến hành mã hoá và truyền tin hai chiều giữa hai đối
tượng đó. Khi hai ứng dụng máy tính, thí dụ giữa một trình duyệt web và máy chủ web, làm việc với nhau, máy chủ và máy khách sẽ trao đổi "lời chào" (hellos) dưới dạng các thông điệp cho nhau với xuất phát đầu tiên chủ động từ máy chủ, đồng thời xác định các chuẩn về thuật toán mã hoá và nén số liệu có thể được áp dụng giữa hai ứng dụng. Ngoài ra, các ứng dụng còn trao đổi "số nhận dạng/khoá theo phiên" (session ID, session key) duy nhất cho lần làm việc đó. Sau đó ứng dụng khách (trình duyệt) yêu cầu có chứng thực điện tử (digital certificate) xác thực của ứng dụng chủ (web server).
Chứng thực điện tử thường được xác nhận rộng rãi bởi một cơ quan trung gian (là CA -Certificate Authority) như RSA Data Sercurity hay VeriSign Inc., một dạng tổ chức độc lập, trung lập và có uy tín. Các tổ chức này cung cấp dịch vụ "xác nhận" số nhận dạng của một công ty và phát hành chứng chỉ duy nhất cho công ty đó như là bằng chứng nhận dạng (identity) cho các giao dịch trên mạng, ở đây là các máy chủ webserver.
Sau khi kiểm tra chứng chỉ điện tử của máy chủ (sử dụng thuật toán mật mã công khai, như RSA tại trình máy trạm), ứng dụng máy trạm sử dụng các thông tin trong chứng chỉ điện tử để mã hoá thông điệp gửi lại máy chủ mà chỉ có máy chủ đó có thể giải mã. Trên cơ sở đó, hai ứng dụng trao đổi khoá chính (master key) - khoá bí mật hay khoá đối xứng - để làm cơ sở cho việc mã hoá luồng thông tin/dữ liệu qua lại giữa hai ứng dụng chủ khách. Toàn bộ cấp độ bảo mật và an toàn của thông tin/dữ liệu phụ thuộc vào một số tham số: (i) số nhận dạng theo phiên làm việc ngẫu nhiên; (ii) cấp độ bảo mật của các thuật toán bảo mật áp dụng cho SSL; và (iii) độ dài của khoá chính (key length) sử dụng cho lược đồ mã hoá thông tin.
Các thuật toán mã hoá và xác thực của SSL được sử dụng bao gồm (phiên bản 3.0):
1) DES - viết tắt của Data Encryption Standard. DES là hệ bảo mật đối xứng dùng
khóa riêng, nghĩa là cả bên gởi và bên nhận phải biết cùng một khóa. Phương pháp nầy
còn được gọi là khóa bí mật hoặc bảo mật đối xứng. Vấn đề chính trong phương pháp nầy
là bên gởi và bên nhận phải trao đổi khóa một cách an toàn. Một phương pháp khác là
bảo mật dùng khóa công khai. Trong sơ đồ nầy, mỗi người có một cặp khóa, một khóa bí
mật và một khóa công khai. Bên gởi mã hóa thông điệp bằng khóa công khai của bên
nhận và thông điệp nầy chỉ được giải mã bởi khóa bí mật của bên nhận. Như vậy vấn đề
trao đổi khóa được giải quyết vì các khóa được thông báo công khai.
Tiền thân của nó là Lucifer, một thuật toán do IBM phát triển. Cuối năm 1976, DES được chọn làm chuẩn mã hóa dữ liệu của nước Mỹ, sau đó được sử dụng rộng rãi trên toàn thế giới. DES cùng với mã hóa bất đối xứng đã mở ra một thời kì mới cho ngành mã hóa thông tin. Trước DES, việc nghiên cứu và sử dụng mã hóa dữ liệu chỉ giới hạn trong chính phủ và quân đội. Từ khi có DES, các sản phẩm sử dụng nó tràn ngập thị trường. Đồng thời, việc nghiên cứu mã hóa thông tin cũng không còn là bí mật nữa mà đã trở thành một ngành khoa học máy tính bình thường. Trong khoảng 20 năm sau đó, DES đã trải qua nhiều khảo sát, phân tích kỹ lưỡng và được công nhận là an toàn đối với các dạng tấn công (tất nhiên, ngoại trừ brute-force).
Tới tháng 7 năm 1998, EFF (Electronic Frontier Foundation) đã "brute-force" thành công DES trong 56 giờ. Ít lâu sau đó cùng với mạng tính toán ngang hàng Distribute.net, tổ chức này đã lập nên kỉ lục mới là 22 giờ 15 phút. Sự kiện này chứng tỏ cỡ chìa 56 bit của DES đã lỗi thời và cần được thay thế.
DES là kỹ thuật bảo mật khóa riêng dùng thuật toán để mã hóa theo từng khối 64-bit với
khóa 56-bit. Thuật toán nầy được giải thích trong mục "Cryptography". Khóa 56-bit cho
phép khoảng một triệu mũ 4 tổ hợp khác nhau. Ngoài ra, mỗi khối trong dòng dữ liệu
được mã hóa bằng các biến dạng khóa khác nhau, làm khó phát hiện sơ đồ mã hóa trong
các thông điệp dài.
DES có 3 giai đoạn :

Giai đoạn 1: Hoán vị 64 bit trong một khối
Giai đoạn 2: ứng dụng đưa ra thao tác 16 vòng trong 64 bit
Giai đoạn 3 : Hoán vị 64 bit sử dụng nghịch đảo của hoán vị gốc
2) SA - thuật toán chữ ký điện tử, chuẩn xác thực điện tử, phát minh và sử dụng của chính phủ Mỹ
3) KEA - thuật toán trao đổi khoá, phát minh và sử dụng của chính phủ Mỹ
4) MD5 - thuật toán tạo giá trị "băm" (message digest), phát minh bởi Rivest;
5) RC2, RC4 - mã hoá Rivest, phát triển bởi công ty RSA Data Security;
6) RSA- là một thuật toán mã hóa khoá công cộng bất đối xứng được sử dụng rất rộng rãi trong giao dịch điện tử. Whitfield Diffie và Martin Hellman thiết kế phương
pháp mã hóa khoá công cộng không đối xứng vào giữa những năm 1970. Cơ bản là, ai
muốn mã hóa và gửi thông điệp tới người khác cần phải tạo ra hai mã khóa. Một mã được
giữ bí mật riêng và mã kia được phổ biến công cộng, giống như danh bạ điện thoại gồm
số điện thoại của mọi người. Nếu có người muốn gửi thông điệp đến cho bạn, anh ta dùng
mã khóa công cộng của bạn, mã hóa nó, và gửi tới bạn thông điệp đó. Chỉ có khóa riêng
của bạn có thể giải mã, nếu có người ngăn chặn thông điệp thì không thể giải mã nó bằng
khóa công cộng của bạn được.Dù Diffie và Hellman thiết kế mã hóa khóa công cộng
không đối xứng, nhưng chính RSA (Rivest, Shamir, Adleman) Data Systems (nay thuộc
Security Dynamics) đã đưa ứng dụng nầy vào hệ thống thực tế.
Hệ thống mã khóa công cộng RSA như sau :
+ Lấy hai số, p và q, nhân chúng n=pq; n được gọi là môđun.
+ Chọn một số e, nhỏ hơn n và e và (p-1)(q-1) nguyên tố cùng nhau, nghĩa là
e và (p-1)(q-1) không có ước số công cộng nào khác ngoài 1.
+ Tìm một số khác d, mà (ed-1) là ước số của (p-1)(q-1). Giá trị e và d được gọi
là số mũ chung và số mũ riêng. d = e-1 mod ((p-1)*(q-1))
+ Khóa công cộng là cặp (n,e).
+ Khóa riêng là (n,d).
+ Mã hoá c=me mod n
+ Giả mã m=cd mod n
Ví dụ :
+ Chọn p=7 và q=11, n=7*11=77
+ (p-1)*(q-1)= 6*10=60, e=13
+ d =13-1 mod 60 ->13*d mod 60 = 1 mod 60, d = 37
giả sử số gửi vào m = 7
hế thống mã hoá thành : c = 713 mod 77 =35
giả mã m= 3537 mod 77 =7
7) RSA key exchange - thuật toán trao đổi khoá cho SSL dựa trên thuật toán RSA;
8) SHA-1 - thuật toán hàm băm an toàn, phát triển và sử dụng bởi chính phủ Mỹ
9) SKIPJACK - thuật toán khoá đối xứng phân loại được thực hiện trong phần cứng Fortezza, sử dụng bởi chính phủ Mỹ
10) Triple-DES - mã hoá DES ba lần

Không có nhận xét nào:

Đăng nhận xét

(Chơi cho vui) AIRDROP CHAINGE FINANCE - dự án xây dựng ứng dụng ngân hàng số cho mọi người

 Không hiểu lắm về cái này, tuy nhiên thấy quảng cáo khá nhiều, lại chỉ cung cấp vài thông tin cá nhân (mà mấy ông lớn như facebook với goog...