Đánh giá tiêu chuẩn mã hóa năm 2024

Độ mạnh mã hóa chứng chỉ là sự đo lường số bít trong một khóa được sử dụng để mã hóa dữ liệu trong một phiên SSL. Số lượng bit càng lớn, càng dài thì càng khó bị bẻ khóa.

Các chứng chỉ SSL dùng cho các ứng dụng hoặc website thì nên sử dụng chiều dài mã hóa là 256bit

Hiện nay, tất cả các chứng chỉ SSL đều mã hóa lên đến 256 bit. Điều này có nghĩa rằng nếu trình duyệt web của người dùng hỗ trợ mã hóa 256 bit và máy chủ web của bạn cũng hỗ trợ 256 bit thì phiên làm việc của SSL sẽ là 256 bit. Nếu cả trình duyệt và máy chủ đều không được hỗ trợ mã hóa 256 bit thì phiên làm việc của SSL sẽ xuống 128 bit. Hiện nay, hầu hết các trình duyệt đều hỗ trợ mã hóa đến 256bit.

Với sự phát triển của Internet, việc trao đổi các thông tin, chia sẻ dữ liệu ngày càng trở nên dễ dàng. Tuy nhiên việc này cũng tiềm tàng nhiều nguy cơ, rủi ro từ việc đánh cắp thông tin từ hacker. Vì vậy, các phương pháp mã hóa ra đời đã giúp ích rất nhiều cho việc bảo mật thông tin. Vậy mã hóa là gì? Các phương pháp mã hóa nào thường được sử dụng? Chúng ta cùng tìm hiểu nhé.

I. Mã hóa là gì? Tại sao cần mã hóa dữ liệu ?

1. Mã hóa là gì ?

Mã hóa là cách xáo trộn dữ liệu chỉ để hai bên trao đổi thông tin có thể hiểu được. Về mặt kỹ thuật, đó là quá trình chuyển đổi văn bản gốc sang bản mã. Nói một cách đơn giản hơn, mã hóa lấy dữ liệu có thể đọc được và thay đổi nó để dữ liệu này không giống như ban đầu. Mã hóa yêu cầu sử dụng khóa mã hóa: một tập hợp các giá trị toán học mà cả người gửi và người nhận tin nhắn được mã hóa đều biết.

Mặc dù dữ liệu được mã hóa xuất hiện ngẫu nhiên, mã hóa tiến hành theo cách hợp lý, có thể dự đoán được, để bên nhận sử dụng khóa để mã hóa dữ liệu , biến nó trở lại thành bản dữ liệu ban đầu. Mã hóa an toàn thực sự sẽ đủ phức tạp để bên thứ ba không thể giải mã được bằng brute force – nói cách khác, bằng cách đoán.

Dữ liệu có thể được mã hóa “ở trạng thái nghỉ”, khi nó được lưu trữ hoặc “quá cảnh” trong khi nó đang được truyền đi nơi khác.

2. Khóa mật mã là gì ?

Khóa mật mã (cryptographic key) là một chuỗi các ký tự được sử dụng trong thuật toán mã hóa để thay đổi dữ liệu sao cho nó xuất hiện ngẫu nhiên. Giống như một khóa vật lý, nó khóa (mã hóa) dữ liệu để chỉ người nào đó có khóa bên phải mới có thể mở khóa (giải mã) nó.

3. Tại sao cần mã hóa dữ liệu ?

Các phương pháp mã hóa được sử dụng để bảo vệ dữ liệu xuất phát từ các nguyên nhân sau:

  • Riêng tư Mã hóa đảm bảo rằng không ai có thể đọc thông tin liên lạc hoặc dữ liệu khi nghỉ ngơi ngoại trừ người nhận dự định hoặc chủ sở hữu dữ liệu phù hợp. Điều này ngăn chặn tội phạm mạng, mạng quảng cáo, nhà cung cấp dịch vụ Internet và trong một số trường hợp chính phủ chặn và đọc dữ liệu nhạy cảm.
  • Bảo vệ Mã hóa giúp tránh vi phạm dữ liệu, cho dù dữ liệu đang trong quá trình di chuyển hoặc ở trạng thái nghỉ. Nếu một thiết bị của công ty bị mất hoặc bị đánh cắp và ổ cứng của nó được mã hóa chính xác, dữ liệu trên thiết bị đó có thể sẽ vẫn được bảo mật. Tương tự, truyền thông được mã hóa cho phép các bên giao tiếp trao đổi dữ liệu nhạy cảm mà không bị rò rỉ dữ liệu. Mã hóa cũng giúp ngăn chặn các hành vi nguy hiểm như tấn công man-in-the-middle.
  • Xác thực Mã hóa khóa công khai, trong số những thứ khác, thiết lập rằng máy chủ gốc của trang web sở hữu khóa riêng và do đó được cấp chứng chỉ SSL hợp pháp.
  • Quy định Vì tất cả những lý do này, nhiều quy định của ngành và chính phủ yêu cầu các công ty xử lý dữ liệu người dùng phải giữ dữ liệu đó được mã hóa. Ví dụ về các tiêu chuẩn quy định và tuân thủ yêu cầu mã hóa bao gồm HIPAA, PCI-DSS và GDPR.

Có rất nhiều loại phương pháp mã hóa khác nhau, mỗi loại có những ưu và nhược điểm riêng. Thông thường phương pháp mã hóa dữ liệu được phân chia thành 4 loại chính:

1. Mã hóa cổ điển

Mã hoá cổ điển là phương pháp mã hóa đơn giản nhất, tồn lại lâu nhất trên thế giới và không cần khóa bảo mật, chỉ cần người gửi và người nhận cùng biết về thuật toán này là được.

Ví dụ: nếu chúng ta dùng thuật toán đổi kí tự trong câu văn thành kí tự liền kề trong bảng chữ cái thì chữ “PAvietnam” sẽ biến thành “QBxkfuobn”. Người nhận khi nhận được chữ “QBxkfuobn” thì chỉ việc dịch ngược lại là xong.

Tuy nhiên, phương pháp mã hóa này được xem là không an toàn, vì nếu một người thứ ba biết được thuật toán thì xem như thông tin không còn bảo mật nữa. Việc giữ bí mật thuật toán trở nên rất quan trọng, và không phải ai cũng có thể giữ bí mật đó một cách trọn vẹn. Có khả năng người đó sẽ rò rỉ ra, hoặc có ai đó ngồi giải ra thuật toán thì xem như chúng ta thua cuộc.

2. Mã hóa một chiều (hash)

phương pháp mã hóa này dùng để mã hóa những thứ không cần dịch lại nguyên bản gốc. Ví dụ, khi bạn đăng nhập vào https://support.pavietnam.vn, mật khẩu mà bạn nhập sẽ được chuyển thành một chuỗi dài các kí tự bằng một thứ gọi là hash function (tạm dịch: hàm băm).

Chuỗi này sẽ được lưu vào cơ sở dữ liệu, chứ không lưu mật khẩu thô của bạn nhằm tăng tính bảo mật. Lỡ hacker có trộm dữ liệu thì cũng chỉ thấy những thứ như GziyHGV547bklhuHgHZ chứ không biết password thật của bạn là gì.

Mỗi lần bạn đăng nhập, hash function sẽ “băm” password thật của bạn thành chuỗi kí tự rồi so sánh nó với cái trong cơ sở dữ liệu, nếu khớp thì đăng nhập tiếp, không thì báo lỗi. Chúng ta không có nhu cầu dịch ngược chuỗi nói trên ra lại thành password thật để làm gì cả.

Nói thêm về hash function, nhiệm vụ của nó là chuyển một chuỗi có độ dài bất kì thành chuỗi kí tự có độ dài cố định. Ví dụ, nếu bạn quy định chuỗi kí tự sau khi “băm” sẽ dài 10 kí tự thì dù đầu vào của bạn có bao nhiêu chữ đi nữa thì kết quả nhận được sẽ luôn là 10 và chỉ 10 kí tự mà thôi.

Đặc điểm của hash function là trong cùng 1 điều kiện, dữ liệu đầu vào như nhau thì kết quả sau khi băm cũng sẽ y hệt như nhau. Nếu chỉ đổi một chút xíu thôi, có khi chỉ là 1 kí tự nhỏ thì chuỗi kết quả sẽ khác hoàn toàn.

Cũng vì vậy mà người ta dùng hash function để kiểm tra tính toàn vẹn của dữ liệu. Ví dụ, trước khi gửi một tập tin Word cho người bạn thì mình dùng mã hóa một chiều và tạo ra được chuỗi sau băm là UHBFhvsqwuGHYfu. Khi người bạn đó tải tập tin về máy, nếu nó băm và cũng nhận được chuỗi UHBFhvsqwuGHYfu thì có nghĩa là tập tin của mình không bị can thiệp bởi hacker, còn nếu kết quả khác thì có nghĩa là quá trình truyền tải có thể đã bị lỗi làm mất một phần dữ liệu, hoặc tệ hơn là có ai đó đã xén bớt hay thêm vào thứ gì đó rồi.

Hiện nay, phương pháp mã hóa này sử dụng hai thuật toán hash function thông dụng nhất là MD5 và SHA. Nếu bạn tải tập tin trên mạng thì đôi khi sẽ thấy dòng chữ MD5 do tác giả cung cấp, mục đích là để bạn so sánh file đã tải về với file gốc xem có bị lỗi gì không.

3. Mã hóa đối xứng (symmetric key encryption)

Để hiểu về phương pháp mã hóa này, chúng ta bắt đầu đi tìm hiểu về việc bảo mật có dùng khóa. Khóa ở đây được gọi là “key”, nó là mấu chốt để thuật toán có thể nhìn vào mà biết đường mã hóa và giải mã dữ liệu.

Cũng giống như cánh cửa nhà của bạn, nếu bạn có khóa thì bạn có thể nhanh chóng đi vào trong, còn không có khóa thì bạn vẫn có thể đục cửa hay kêu thợ sửa khóa, nhưng sẽ tốn thời gian và công sức hơn. Mỗi chìa khóa cho mỗi ổ khóa trên thế giới là duy nhất với các đường rãnh không chìa nào giống chìa nào – key mã hóa cũng tương tự như vậy.

Ở phương pháp mã hóa đối xứng, chìa khóa để mã hóa và giải mã là như nhau nên người ta mới gọi là đối xứng, tiếng Anh là symmetric. Theo một số tài liệu thì phương pháp mã hóa đối xứng là giải pháp được sử dụng nhất phổ biến hiện nay.

Giả sử mình cần mã hóa một tập tin để gửi cho bạn, thì quy trình của phương pháp mã hóa đối xứng sẽ như sau:

  • B1: Mình sử dụng một thuật toán mã hóa, cộng với khóa của mình để mã hóa file (cách tạo khóa tạm thời không bàn đến, chủ yếu là dùng các giải thuật ngẫu nhiên).
  • B2: Bằng cách nào đó, mình giao cho bạn một khóa giống với mình, có thể là giao trước hoặc sau khi mã hóa tập tin đều được.
  • B3: Khi bạn nhận tập tin, bạn sẽ dùng khóa này để giải mã ra tập tin gốc có thể đọc được.Những điều bạn cần biết về mã hoá thông tin và ứng dụng của chúng.

Vấn đề ở đây, đó là mình phải làm sao để chuyển khóa cho bạn một cách an toàn. Nếu khóa này bị lộ ra thì bất kì ai cũng có thể xài thuật toán nói trên để giải mã tập tin, như vậy thì tính bảo mật sẽ không còn nữa.

Ngày nay người ta thường xài password như là khóa mã hóa, và bằng cách này bạn có thể nhanh chóng nhắn cho người nhận cùng đoạn password đó để xài làm khóa giải mã.

Các thuật toán mã hóa thường thấy bây giờ là DES và AES. Trong đó, AES phổ biến trong thế giới hiện đại hơn và nó dùng để thay thế cho DES vốn đã xuất hiện từ năm 1977. Hiện nay nhiều cơ quan chính phủ trên thế giới quy định tài liệu khi được gửi qua mạng phải mã hóa AES.

Thuật toán AES có thể dùng nhiều kích thước ô nhớ khác nhau để mã hóa dữ liệu, thường thấy là 128-bit và 256-bit, có một số lên tới 512-bit và 1024-bit. Kích thước ô nhớ càng lớn thì càng khó phá mã hơn, bù lại việc giải mã và mã hóa cũng cần nhiều năng lực xử lý hơn.

Hiện chế độ mã hóa mặc định của Android 5.0 đang xài là AES 128-bit. Điều này có nghĩa là mỗi khi bạn chuẩn bị ghi dữ liệu xuống bộ nhớ máy thì hệ điều hành sẽ mã hóa nó rồi mới tiến hành ghi.

Tương tự, mỗi khi OS chuẩn bị đọc dữ liệu thì Android phải giải mã trước rồi mới chuyển ra ngoài, khi đó thì hình ảnh mới hiện ra được, các tập tin nhạc mới chơi được và tài liệu mới có thể đọc được. Bằng cách này, nếu bạn có lỡ làm mất máy thì người lượm được cũng không thể xem trộm dữ liệu của bạn (giả sử bạn đã lock màn hình).

Nếu người đó có gỡ chip nhớ ra để đọc thì dữ liệu cũng đã mã hóa hết. Tất nhiên, Android cũng xài key dạng symmetric (tạo ra dựa vào password của bạn), và key đó còn được băm thêm một lần nữa bằng SHA 256-bit để tăng tính an toàn.

4. Mã hóa bất đối xứng (public key encryption)

Nếu như ở trên, khóa mã hóa và khóa giải mã đều giống nhau thì với phương pháp mã hóa bất đối xứng, hai khóa này hoàn toàn khác nhau. Để phân biệt giữa hai khóa thì người ta gọi khóa mã hóa là public key, còn khóa giải mã là private key.

Public, như cái tên đã gợi ý, mang tính chất “công cộng” và có thể được sử dụng để mã hóa dữ liệu bởi bất kì ai. Tuy nhiên, chỉ người nào nằm trong tay private key mới có khả năng giải mã dữ liệu để xem.

Phương pháp mã hóa bất đối xứng sử dụng quy trình như sau:

  • B1: Bên nhận sẽ tạo ra một cặp public + private key. Người này giữ lại private key cho riêng mình và cất cẩn thận, còn public key thì chuyển cho bên gửi (dưới hình thức email, copy qua USB, v.v) hoặc post đâu đó lên mạng.
  • B2: Bên gửi sử dụng public key để mã hóa dữ liệu, sau đó gửi file đã mã hóa lại cho bên nhận.
  • B3: Bên nhận lúc này sẽ xài private key đã lưu khi nãy để giải mã dữ liệu và sử dụng.Những điều bạn cần biết về mã hoá thông tin và ứng dụng của chúng

Nhược điểm của phương pháp mã hóa bất đối xứng là tốc độ giải mã chậm hơn so với phương pháp mã hóa đối xứng, tức là chúng ta phải tốn nhiều năng lực xử lý của CPU hơn, phải chờ lâu hơn, dẫn đến “chi phí” cao hơn. Khoảng thời gian lâu hơn là bao nhiêu thì còn tùy vào thuật toán mã hóa, cách thức mã hóa và key.

Chính vì thế mà hiện tại ít ai mã hóa cả một file bằng phương pháp mã hóa bất đối xứng. Thay vào đó, họ sử dụng phương pháp mã hóa bất đối xứng để mã hóa chính cái key dùng trong phương pháp mã hóa đối xứng (hoặc tạo ra key đó bằng cách tổng hợp public và private key của bên gửi và nhận).

Như đã nói ở trên, phương pháp mã hóa đối xứng có nhược điểm là key bị lộ là coi như xong, vậy thì giờ chúng ta mã hóa luôn cái key đó cho an toàn và có thể gửi key thoải mái hơn. Một khi đã giải mã bất đối xứng để ra key gốc rồi thì tiến hành giải mã thêm lần nữa bằng phương pháp đối xứng để ra file ban đầu.

Một thuật toán mã hóa thường được xài là RSA.

III. HTTPS – Ứng dụng của mã hóa

Mã hóa là nền tảng cho nhiều công nghệ, nhưng nó đặc biệt quan trọng để giữ an toàn cho các yêu cầu và phản hồi HTTP và để xác thực các máy chủ gốc của trang web . Giao thức chịu trách nhiệm cho việc này được gọi là HTTPS (Hypertext Transfer Protocol Secure). Một trang web được phân phát qua HTTPS thay vì HTTP sẽ có URL bắt đầu bằng https: // thay vì http: //.

HTTPS sử dụng giao thức mã hóa có tên là Transport Layer Security (TLS). Trước đây, một giao thức mã hóa trước đó được gọi là Lớp cổng bảo mật (SSL) là tiêu chuẩn, nhưng TLS đã thay thế SSL. Một trang web thực hiện HTTPS sẽ có chứng chỉ SSL được cài đặt trên máy chủ gốc của nó.

Bạn có thể tìm hiều thêm về https tại đây

IV. Kết luận

Trong môi trường Internet hiện nay, tiềm ẩn rất nhiều nguy cơ và rủi ro. Vì vậy việc mã hóa dữ liệu là cần thiết để bảo vệ tốt thông tin người dùng. Các ứng dụng hầu như đã hỗ trợ đầy đủ các phương pháp mã hóa. Tuy nhiên, không ít người dùng vẫn sử dụng các giao thức thông thường (không được mã hóa), rất dễ bị rò rỉ thông tin. Hi vọng qua bài viết này, bạn sẽ hiểu hơn về mã hóa và các phương pháp mã hóa. Chúc bạn bảo vệ tốt thông tin, dữ liệu của mình