Nội dung bài viết
Video học lập trình mỗi ngày
End-to-end encryption là gì? Thông tin là sức mạnh. Và những gì chúng ta trao đổi hằng ngày qua những ứng dụng như Piepme, zalo, facebook... đều có những giá trị to lớn, cho dù đó chỉ là những dòng chat của mỗi cá nhân. Nhưng nếu bạn là một doanh nghiệp thì đó lại là vấn đề lớn để quan tâm đến việc bảo mật nội dung tin nhắn hay dữ liệu tổ chức or cá nhân.
Tips: HTTP là gì? HTTPS là gì? Sự khác biệt giữa HTTPS và HTTP
Bài viết này sẽ không những giúp developers trong việc lựa chọn cơ chế bảo mật mà còn có thể giúp những Doanh Nghiệp hay cá nhân tìm ra những application đủ để tin tưởng và sử dụng chúng cho mục đích cá nhân của mình. Và đó cũng chính là nội dung mà tôi muốn gửi gắm thông điệp về "Tính bảo mật trong những ứng dụng hiện nay".
Hiện nay hầu hết những ứng dụng hay một website sẽ sử dụng những cơ chế bảo mật trong đó nổi lên là hai cách đó là E2E (end to end) và C2S (Client to Server). Đó là sự khác biệt trong vấn đề bảo mật truyền thông, vậy nó khác nhau như thế nào và tại sao nó lại quan trọng? Câu trả lời sẽ có ngay phía dưới, hãy kiên nhẫn và giữ tỉnh táo khi đọc bài viết này.
Trước tiên bạn phải hiểu về hai cơ chế bảo mật này, và nó chưa liên quan đến SSL hay TLS.
end-to-end là gì?
E2E là gì? là một cơ chế bảo mật giữa hai luồng dữ liệu giả sử người gửi và người nhận. Thì khi một người gửi dữ liệu sẽ mã hoá tại điểm cuối của người gửi, và được gửi tới ngưởi nhân. Và người nhận dữ liệu đó cũng chính là người duy nhất và cuối cùng giải mã dữ liệu đó ra. Máy chủ (server) không liên quan đến việc giải mã, nó chỉ có nhiệm vụ vận chuyển dữ liệu đó mà thôi.
C2S là gì?
client-to-server là gì? Cũng là một cơ chế mã hoá dữ liệu nhưng giữa người gửi và người nhận việc giải mã có khi thuộc về người thứ ba. Đó là máy chủ. Client send một data tới cho một client khác. tất nhiên là nó được mã hoá, thế nhưng thay vì người nhận tự giải mã thì ở có chế này C2S - thì máy chủ sẽ có thể là người giải mã. Hay xem hai hình ảnh để đối chiếu.
Sự khác biệt giữa mã hóa C2S và E2E
Sự khác biệt giữa mã hóa C2S và E2E không thể được phóng đại. Nói một cách đơn giản, đó là sự khác biệt giữa giao tiếp riêng tư của mỗi cá nhân hay các tổ chức doanh nghiệp và ở đó mọi thứ bạn làm có bị giám sát và theo dõi hay không? Ở đây có một điểm chung là tất cả dữ liệu chúng ta đều được mã hoá trước khi đưa xuống database, nhưng chỉ khác biệt đó là, những dữ liệu đó sẽ được giải mã ở đâu.
Ngày nay đa số nhưng công ty hay tổ chức sử dụng công nghê C2E để bảo vệ người dùng, nghĩa là họ sẽ mã hoá những nội dung của tôi và bạn nhưng họ sẽ là người giải mã những dữ liệu của chúng ta??? Nói cách khác, mã hóa C2S có một điểm yếu - nó đặt các công ty và nhà cung cấp dịch vụ ở giữa người gửi và người nhận, cấp cho họ quyền truy cập đầy đủ vào dữ liệu và thông tin liên lạc của chúng tôi. Nghe tới đây thôi, bạn cũng đủ hiểu và cảm nhận sự nguy hiểm như thế nào? Chưa hết đâu, nếu như các nhà dịch vụ sử dụng công nghệ E2E như ứng dụng live stream trực tuyến nhưng những app mà tôi biết đó là Piepme, twilio... thì cho phép liên lạc, hai chiều riêng tư. Đây là ý nghĩa của E2E - một người cuối cùng là người gửi và người cuối cùng là người nhận. Tính toán được thực hiện cục bộ trên các thiết bị (device), loại bỏ sự cần thiết của các máy chủ tập trung, và không cần server phải giải mã những dữ liệu của chúng ta.
Vừa rồi dịch COVID19, mở ra nhiều bí mật được phơi bày trong đó có phần mềm trực tuyến Zoom. Nhưng ở đó Zoom đã không bảo vệ được người dùng. Rò rỉ thông tin, room bị xâm phạm bởi hacker... Còn đó rất nhiều những ứng dụng khác mà hầu như người dùng còn chưa biết được thông tin của mình được bán cho ai??? Ví dụ: Fitbit đã được Google mua lại vào năm 2019. Nếu bạn là một trong số 28 triệu người dùng Fitbit tại thời điểm mua lại, dữ liệu sức khỏe nhạy cảm của bạn đột nhiên được chuyển cho một công ty mới mà bạn có thể hoặc không thể tin tưởng. Và từ đó nếu dịch vụ đó sử dụng C2S thì tất nhiên họ sẽ có tất cả những thứ họ muốn, mà không cần bạn. Hay việc Amazon mua lại PillPack vào năm 2018 là một ví dụ khác về một người khổng lồ công nghệ có được dữ liệu nhạy cảm của họ. Và danh sách được tiếp tục và tiếp tục...
Chưa dừng lại ở đó, ở Việt Nam có lẽ ngôi nhà thông minh chưa phổ biến cho lắm, vì chi phí và đầu tư rất tốn kém. Nhưng ở các nước phát triền đạc biệt là những quốc gia ở Châu Âu thì, những thiết bị thông minh được sử dụng rộng rãi. Nhưng bạn có tinh ý nhận ra rằng, những thiết bị có thể nói chuyện được với nhau thì huống hố gì thiết bị đó có thể nói chuyện được với ai nữa?
Do đó thực tế mới này đòi hỏi chúng ta phải lựa chọn sản phẩm một cách khôn ngoan, vì những tác động đến sự an toàn của gia đình và gia đình chúng ta chưa bao giờ lớn hơn. May mắn thay, một làn sóng mới của các sản phẩm được mã hóa E2E đang nổi lên để cung cấp quyền sở hữu và kiểm soát dữ liệu cho người dùng, không phải các nhà cung cấp dịch vụ...
Một tương lai lấy con người làm trung tâm và tôn trọng quyền riêng tư của mỗi con người đang là vấn đề xa xỉ ở hiện tại. Một nơi mà chúng ta có thể nhìn vào các thiết bị thông minh của mình mà không nghi ngờ gì rằng, bây giờ hoặc sau này, chúng ta không được theo dõi, lắng nghe hoặc theo dõi mà không có sự đồng ý của chúng tôi. Bằng cách thực thi mã hóa E2E bằng các công nghệ đáng tin cậy và chống giả mạo, chẳng hạn như blockchain, thì có khả năng chúng ta những người dùng internet sẽ được bảo vệ 100%?
Blockchain có thể đưa mã hóa E2E lên tầm cao hơn nữa để đạt được mã hóa E2E cá nhân, trong đó các key private hay public cho dữ liệu của bạn sẽ được tạo ra bởi một blockchain đáng tin cậy và được sở hữu độc quyền bởi bạn. Một cách tiếp cận lấy con người làm trung tâm - không vi phạm dữ liệu những rò rỉ, và chúng ta sẽ không còn là một nạn nhân của những ứng dụng sai lệch.
Tóm lại
Sự khác biệt giữa các nền tảng E2E và C2S là một máy chủ E2E hầu như không có giá trị đối với kẻ tấn công đang cố gắng đánh cắp các bí mật trên nền tảng E2E. Trong khi đó, đối với các nền tảng C2S, máy chủ trung tâm chứa một kho dữ liệu cực kỳ nhạy cảm khiến nó trở thành một trong những mục tiêu có giá trị nhất trong toàn bộ cơ sở hạ tầng của tổ chức.
Đạt được quyền truy cập vào máy chủ nhắn tin C2S có nghĩa là có quyền truy cập vào tất cả giao tiếp trên toàn bộ mạng của bạn trong một cú truy vấn! Họ có thể giải mã những nội dụng của người gửi chưa đến tay người nhận. Nhưng với E2E thì khác Ngược lại, trên nền tảng E2E, tất cả dữ liệu của người dùng chỉ khả dụng ở các điểm cuối liên quan đến các cuộc hội thoại riêng lẻ. (Về mặt kỹ thuật, lưu lượng được mã hóa bởi người gửi theo cách mà chỉ người nhận dự định mới có thể giải mã được. Người trung gian hoặc máy chủ trung tâm không có khả năng giải mã tin nhắn hoặc dữ liệu). Vì vậy, trong một nền tảng E2E, máy chủ chỉ thực hiện là vận chuyển dữ liệu đang mã hoá đến người nhận mà thôi, và người nhận sẽ là người duy nhất làm được điều này đó là giải mã.
Nếu bạn là một developer thì bài viết này rất quan trọng dành cho bạn, và kể cả team của bạn nữa. Còn nếu bạn là người dùng thì bạn cần phải xác định bạn đang dùng app gì để nhắn tin... Câu trả lời là Piepme hay zalo tại Việt Nam???
Tham khảo thêm:
End-to-End Encryption vs. Client-to-Server Encryption
Not All Encryption Is Created Equal