Giới thiệu về sự mã hóa của SSL.

GIỚI THIỆU VỀ SỰ MÃ HÓA CỦA SSL.

Đến với bài viết này kỹ thuật sẽ giới thiệu cho các bạn biết về cơ chế của sự mã hóa SSL hoạt động như thế nào. Đầu tiên kỹ thuật giới thiệu một cách đơn giản nhất về SSL để các bạn có thể nắm được thông tin cơ bản.

SSL là gì ?

SSL là cụm từ viết tắt của “Secure Sockets Layer” là một công nghệ bảo mật tiêu chuẩn cho việc thiết lập một liên kết được mã hóa giữa server (Máy chủ) và Client (Máy khách), thông thường là một máy chủ web (trang web) và một trình duyệt; hoặc một máy chủ mail và mail client (ví dụ: Outlook, Mail ThunderBird,….). SSL cho phép các thông tin nhạy cảm như số thẻ tín dụng, số an sinh xã hội, và thông tin đăng nhập được truyền đi một cách an toàn và mã hóa hoàn toàn các thông tin đó. Để thiết lập kết nối an toàn này, trình duyệt và máy chủ cần phải có Giấy chứng nhận SSL.

Nhưng làm cách nào để thực hiện được điều này và làm thế nào để mã hóa được các thông tin dữ liệu để không ai có thể truy cập bất hợp pháp vào đường truyền từ server đến client và ngược lại để đánh cắp các thông tin cũng như là ngăn chặn các phần mềm nghe lén hoặc theo dõi trong mạng nội bộ.

Để tạo ra một kết nối được mã hóa SSL, các công việc của nó bao gồm các khóa đối xứng và bất đối xứng phối hợp làm việc với nhau một cách nhịp nhàng và nó được kết nối với nhau bởi các thuật toán và các phương trình toán học mà nhà cung cấp SSL lập trình ra.

Mã hóa bất đối xứng là gì?

Mã hóa bất đối xứng (hay mã hóa dùng public_key) phương thức này sẽ dùng 1 bộ khóa riêng để giải mã và mã hóa dữ liệu. Bất cứ ai cũng có thể dùng bộ key mã hóa (public_key) này để mã hóa 1 thông điệp. Tuy nhiên, key giải mã (Private key) là bí mật chỉ khi có bộ Private key và Public key tương ứng thì mới có thể giải mã thông điệp hay dữ liệu nào đó được mã hóa bằng public key. Hiện nay các thuật toán mã hóa bất đối xứng cơ bản thường được dùng là RSA.

Các key bất đối xứng thông thường độ dài là 1024 hoặc 2048 bits. Tuy nhiên, các key có dài 1024 bits được cho là không còn an toàn nữa và ít được sử dụng. Mã khóa độ dài 2048 Bits sẽ có đủ các ký tự số để mã hóa các dữ liệu, mặc dù các key có  độ dài lớn hơn 2048 bits có thể được tạo ra nhưng do gánh nặng cho máy chủ khi phải xử lý nhiều các thuật toán cho nên các bộ mã dài hơn 2048 bits ít khi được sử dụng. Hiện tại bộ khóa độ dài 2048 bits đã khá là an toàn vì tính theo đơn vị thời gian thì phải mất 14 tỷ năm để ta có thể bẻ khóa được key 2048 bits.

Mã hóa đối xứng là gì?

Mã hóa đối xứng (hay còn gọi là mã hóa pre-shared key) Chỉ sử dụng 1 key cho cả 2 công việc là giải mã và mã hóa. Đối với loại này cả người gửi và người nhận đều phải có chung 1 để giao tiếp.

Kích thước của key mã hóa đối xứng thường có dài là 128 bits hoặc 256 bits. Kích thước của key càng lớn sẽ càng khó để bẻ khóa. Ví dụ: một key 128 bits sẽ có tới 340.282.366.920.938.463.463.374.607.431.768.211.456 mã để giải mã và người bẻ khóa phải tra từng mã một để bẻ khóa, chính vì thể việc bẻ khóa sẽ tốn rất nhiều thời gian.

Tùy vào khả năng mã hóa của máy chủ và máy khách mà sẽ sử dụng 128 bits hay 256 bits. Chứng chỉ SSL sẽ không ra yêu cầu bắt buộc phải dùng loại nào.

Phương thức mã hóa nào là tối ưu ?

Ta có thể thấy rằng nhờ vào độ lớn của mã hóa bất đối xứng sẽ lớn hơn mã hóa đối xứng rất nhiều, cho nên việc bẻ khóa để ăn cắp dữ liệu sẽ rất khó khăn. Tuy nhiên điều này không có nghĩa là mã hóa bất đối xứng sẽ tối ưu hơn, vì nếu như chúng ta so sánh về hiệu năng ví dụ như là gánh nặng tính toán và dễ dàng phân phối. thì bộ mã hóa đối xứng sẽ hơn hẳn vì có độ lớn nhỏ hơn rất nhiều lần.

Tuy nhiên, mã hóa đối xứng sẽ gặp bất lợi, nhất là khi bạn sử dụng chúng trong việc sử dụng chúng để đảm bảo an toàn khi truyền dữ liệ, bởi vì cả người nhận và người gửi phải có chung 1 key. Ta không thể đảm bảo rằng người gửi và người gửi luôn luôn có được pre-shared key chính xác, và khi ta để chúng ở 1 nơi lưu trữ nào đó thì ta sẽ phải lo lắng về việc bị đánh cắp dự liệu bất cứ lúc nào.

Đối với mã hóa bất đối xứng sẽ không phải gặp hiện tượng này. Miễn là bạn giữ bí mật bộ private-key của bạn thì không ai có thể giải mã thông điệp của bạn. Bạn có thể chi sẽ phân phối bộ public-key tương ứng với private-key của bạn rộng rãi mà không cần phải lo lắng người nhận là ai. Bất cứ ai có được public-key đều có thể mã hóa dữ liệu nhưng chỉ có private-key mới có thể giải mã dữ liệu.

Cách mà SSL sử dụng phối hợp mã hóa bất đối xứng và mã hóa đối xứng.

Cấu trúc hạ tầng của public_key (PKI) là một tập hợp các phần cứng, phần mềm, con người, chính sách và các thủ tục cần thiết để tạo, quản lý, phân phối, sử dụng, lưu trữ và thu hồi giấy chứng nhận kỹ thuật số. Public_key (PKI) cũng là key những gì gắn với danh tính người dùng bằng một Certificate Authority (CA). PKI là một hệ thống sử dụng mã hóa hỗn hợp với các tính năng tiện ích từ 2 loại mã hóa. Trong giao tiếp SSL, chứng chỉ SSL của máy chủ được chứa cặp khóa bất đối xứng là public_key và Private_key. Các phiên truy cập để máy chủ và máy khách bắt tay với nhau sẽ dũng mã hóa đối xứng.

  1. Server sẽ gửi một bản sao của public_key của nó đến cho máy khách.
  2. Trình duyệt sẽ tạo ra một session key và mã hóa nó với public_key bất đối xứng của máy chủ. Sau đó gửi nó đến các máy chủ.
  3. Server sẽ giải mã session key bằng private_key để có được một session key với dạng mã hóa đối xứng.
  4. Lúc này server và trình duyệt hiện các mã hóa và giải mã tất cả các dữ liệu được truyền với session key. Điều này cho phép một kênh an toàn vì chỉ trình duyệt và máy chủ biết session key, và session key chỉ được sử dụng cho phiên truy cập đó. Nếu trình duyệt là để kết nối đến máy chủ cùng vào ngày hôm sau, một session key mới sẽ được tạo ra.

Đến đây chắc hẳn các bạn đã hiểu được thêm phần nào cơ chế làm việc của SSL.

Cám ơn các bạn đã theo dõi!

Xin cám ơn.

 

Rate This Article

Leave A Comment?