
Chào các bạn,
Hôm nay lại là một ngày cuối tuần trống trải ở nhà (Singapore đang thực hiện biện pháp giãn cách xã hội một phần), nên đã hai tháng rồi mình không thể đi câu cá hoặc leo núi để giải tỏa căng thẳng. Vì vậy, mình đã quyết định tìm hiểu về một điều thú vị này. Dưới đây là một bài viết mang tính giải trí, vì vậy các bạn có thể đọc nó, nhưng đừng kỳ vọng quá nhiều nhé. Lưu ý rằng bài viết này có thể hơi dài... Vì mình chỉ viết nó trong vài giờ, và đã khá lâu rồi mình không làm việc liên quan đến Bluetooth hoặc các thiết bị di động, nên có thể một số kiến thức sẽ không còn chính xác như mình nghĩ. Anh em đừng chê bai nhé. Đây không phải là một tài liệu kỹ thuật, chỉ là một phần diễn đạt những điều mà mình biết và hiểu.
Quay lại vấn đề chính, nội dung của hôm nay mình muốn chia sẻ cùng các bạn là về hệ thống cảnh báo COVID-19 (mình gọi nó là #DịchCorona, nhưng WHO đã đổi tên cho nó rồi, vậy nên trong bài viết này mình sẽ sử dụng COVID-19).
Hôm nay lại là một ngày cuối tuần trống trải ở nhà (Singapore đang thực hiện biện pháp giãn cách xã hội một phần), nên đã hai tháng rồi mình không thể đi câu cá hoặc leo núi để giải tỏa căng thẳng. Vì vậy, mình đã quyết định tìm hiểu về một điều thú vị này. Dưới đây là một bài viết mang tính giải trí, vì vậy các bạn có thể đọc nó, nhưng đừng kỳ vọng quá nhiều nhé. Lưu ý rằng bài viết này có thể hơi dài... Vì mình chỉ viết nó trong vài giờ, và đã khá lâu rồi mình không làm việc liên quan đến Bluetooth hoặc các thiết bị di động, nên có thể một số kiến thức sẽ không còn chính xác như mình nghĩ. Anh em đừng chê bai nhé. Đây không phải là một tài liệu kỹ thuật, chỉ là một phần diễn đạt những điều mà mình biết và hiểu.
Quay lại vấn đề chính, nội dung của hôm nay mình muốn chia sẻ cùng các bạn là về hệ thống cảnh báo COVID-19 (mình gọi nó là #DịchCorona, nhưng WHO đã đổi tên cho nó rồi, vậy nên trong bài viết này mình sẽ sử dụng COVID-19).

Mình đã đọc qua các tài liệu mà Apple/Google phát hành bản draft vào ngày 22 tháng 4 (chi tiết thêm tại đây: https://www.apple.com/covid19/contacttracing/). Bởi vì API sẽ chỉ được cung cấp sớm nhất vào tháng 5, và phần mềm tích hợp sâu vào hệ điều hành có thể sẽ mất một khoảng thời gian trước khi họ phát hành, chưa kể các quốc gia còn cần phát triển ứng dụng để gọi vào các API... nên mình đã chuyển sang tìm hiểu về cách một ứng dụng tương tự mà mình đã sử dụng trong hơn 1 tháng qua. Đó là TraceTogether do chính phủ Singapore phát triển (https://www.tracetogether.gov.sg/). Bên cạnh đó, mình sẽ cũng nói một chút về BlueZone (ứng dụng Make in Vietnam được phát triển bởi BKAV https://bluezone.vn). Mình rất tự hào khi giới thiệu các sản phẩm Make in VN cho bạn bè..


Một vài lý do mình liệt kê dưới đây, có thể không đầy đủ nhưng đây là những gì mình có thể nghĩ được:
1.1. Chi phí cách ly số đông rất đắt đỏ
Việt Nam vừa trải qua một khoảng thời gian “cách ly xã hội” trong vài tuần, và trong thời gian đó, gần một trăm triệu người phải hạn chế ra ngoài, không thể đi nhậu hay quẩy trong bar/pub. Lý do là để hạn chế sự lây lan và cách ly những người có triệu chứng nhiễm virus.
1.2. Trí nhớ của con người có thể không chính xác hoặc bị sửa đổi vì lợi ích cá nhân.
Anh em hãy thử nhớ xem vào ngày thứ 13 trước đó (tính từ hôm nay), anh em đã đi đâu và gặp ai trong thời gian bao lâu? Trò chơi này quá khó, 99% người bình thường sẽ không thể nhớ hết. Chính vì vậy, việc lọc ra danh sách F0-Fn là một công việc khó khăn và mệt mỏi. Hơn nữa, vì không có bằng chứng, việc thu thập thông tin tiếp xúc có thể bị sửa đổi. Ví dụ, bệnh nhân #34 có thể tìm kiếm trên Google về ca này. Nhân tiện, nếu ai đó bị nhiễm và muốn được cách ly chung với 'crush' của mình, họ có thể nói rằng đã tiếp xúc gần với crush.
1.3. Để đẩy lùi dịch bệnh, cần có lượng dữ liệu đủ lớn và có thể liên hệ nhanh chóng nhất có thể
Vì nguyên tắc lây lan của COVID-19 quá nhanh và đáng sợ, việc có được thông tin đầy đủ, chính xác và nhanh chóng nhất để thông báo sẽ giúp giảm thiểu số người bị ảnh hưởng và dễ dàng cách ly các đối tượng cần theo dõi (sẽ không cần cách ly cả huyện hoặc cả thành phố nữa - có lẽ vậy..)
Bluetooth được ưa chuộng vì tính tiện lợi và phổ biến của nó trong ứng dụng di động. Trong khi có nhiều công nghệ khác như GPS, Bluetooth vẫn được ưa chuộng bởi khả năng theo dõi vị trí người dùng và tiện ích trong việc chia sẻ dữ liệu. Theo WHO, việc tiếp xúc lâu dưới 2 mét với người mang virus có nguy cơ lây nhiễm cao. Vì vậy, việc sử dụng Bluetooth để theo dõi vị trí và chia sẻ dữ liệu là lựa chọn phù hợp trong hoàn cảnh này.

Sự tiện lợi của Bluetooth được thể hiện qua việc chia sẻ dữ liệu gần xa và tính năng theo dõi vị trí. Công nghệ U1 của Apple trên iPhone 11+ cũng hứa hẹn trong việc này. Tuy nhiên, số lượng thiết bị hỗ trợ còn ít, khiến cho việc áp dụng công nghệ này vẫn còn hạn chế.
Cách hoạt động của các ứng dụng như TraceTogether tập trung vào việc ghi nhận các tiếp xúc giữa các thiết bị. Điều này giúp trong việc theo dõi và cách ly những người tiếp xúc với ca bệnh để ngăn chặn sự lây lan của dịch bệnh. Chỉ có cách này chúng ta mới có thể làm giảm số ca nhiễm và kiểm soát dịch bệnh.
1.1. Đăng ký và sử dụng
Với TraceTogether, người dùng chỉ cần đăng ký sau khi tải ứng dụng. Thông tin sẽ được lưu trữ bao gồm Số điện thoại và UserID. Số điện thoại được chọn làm định danh duy nhất do tính kết hợp giữa tập trung và phi tập trung của ứng dụng. UserID sẽ được tạo tự động và ngẫu nhiên.
Với BlueZone, không cần phải đăng ký gì cả. Họ sẽ tự động tạo ra một ID gồm 6 ký tự. Tuy nhiên, điều này có nghĩa là nếu người dùng mất điện thoại hoặc vô tình xóa ứng dụng, họ sẽ không nhận được cảnh báo về nguy cơ lây nhiễm.
Đối với ứng dụng được phát triển bởi Google/Apple, có lẽ họ sẽ tự động tạo ID người dùng. Do họ kiểm soát cả hệ điều hành nên không cần phải đăng ký gì cả.
1.2. Mã định danh tạm thời
Khi hai thiết bị phát hiện nhau, chúng sẽ trao đổi thông điệp bao gồm thông tin không thể định danh hoặc theo dõi (chỉ bao gồm các mã định danh tạm thời ngẫu nhiên). Những mã này sẽ thay đổi định kỳ để ngăn chặn việc người thứ ba có thể giám sát người dùng.
Do tính chất kết hợp giữa tập trung và phi tập trung, các mã định danh tạm thời sẽ được tạo ra tại máy chủ và được cung cấp đều đặn cho ứng dụng trên điện thoại (đủ để ứng dụng hoạt động mà không cần kết nối internet).
Dưới đây là định dạng của mã định danh tạm thời, đã được mã hóa 2 tầng với AED-256-GCM và Base64.

TraceTogether và ứng dụng của Apple/Google đều sử dụng mã định danh tạm và cập nhật mới mỗi 10-15 phút.
BlueZone, sau khi trải nghiệm, mình nhận thấy mã định danh được tạo khi cài đặt ứng dụng và không thay đổi cho đến khi xóa và cài lại. Mã định danh này cũng có thể được xem trên thiết bị khác nếu gần nhau. Sự ưu tiên về quyền riêng tư của người dùng không được đảm bảo. Không rõ tại sao công ty bảo mật viết ứng dụng và tiết lộ ID của người dùng và những người gần kề.

1.3. Tiếp xúc gần hoạt động như thế nào
Để giải thích đơn giản, bạn có thể tìm hiểu thêm về Bluetooth/Bluetooth Low Energy (BLE) và cách nó hoạt động. Dưới đây là một mô hình đơn giản mô tả cách hoạt động của nó. Khi hai thiết bị ở gần nhau, chúng có thể giao tiếp với nhau thông qua sóng bluetooth. Ứng dụng sẽ dựa vào cường độ sóng và ngưỡng được đặt trước để xác định xem hai thiết bị có gần nhau đủ không. Nếu đủ gần, dữ liệu sẽ được trao đổi giữa hai thiết bị. Nếu không, dữ liệu sẽ được lưu trữ và chờ đợi cho đến khi có kết nối đủ gần.

1.4. Dữ liệu tiếp xúc chỉ lưu trữ trên điện thoại
Tất cả các hệ thống đều cam kết và thiết kế tính năng này. Trên toàn thế giới, các ứng dụng này đều sẽ lưu trữ dữ liệu tiếp xúc chỉ trên thiết bị của người dùng. Không ai muốn thông tin về ai họ đã tiếp xúc được lưu trữ trên đám mây, nơi mà một số người có thể truy cập và kiểm tra. Đó là quyền riêng tư cơ bản.
Tuy nhiên, có một ngoại lệ là Trung Quốc, điều này không còn xa lạ. Mặc dù không thể đọc được chữ Hán, nhưng rõ ràng là ở đó không có khái niệm về quyền riêng tư, mà mọi dữ liệu đều được chính phủ quản lý.
Bluezone được đánh giá cao về bảo mật theo phong cách Âu Mỹ, không giống như quản lý kiểu Trung Quốc. Tuy nhiên, không rõ liệu họ có gửi dữ liệu lên máy chủ hay không? Ai có thời gian có thể cài đặt một máy ảo và kiểm tra xem liệu ứng dụng có gửi dữ liệu định kỳ không?
1.5. Cách cảnh báo khi có nguy cơ nhiễm
Một cách tiếp cận khác cho việc tăng cường độ chính xác của việc lần vết là sử dụng một ứng dụng, và TraceTogether sẽ cung cấp cảnh báo theo một mô hình khác so với ứng dụng của Apple/Google. App này có tính phi tập trung trong việc thu thập thông tin và tính tập trung trong việc lần vết. Điều này giúp cho bộ y tế có thể nắm thông tin nhanh chóng và dễ dàng hơn.
Nếu có trường hợp nhiễm bệnh, Bộ Y tế sẽ yêu cầu người dùng cung cấp thông tin về tiếp xúc, sau đó họ sẽ nhập mã PIN do Bộ Y tế cung cấp và tải dữ liệu lên hệ thống trung tâm. Sau khi dữ liệu được giải mã và khớp với thông tin trong hệ thống tập trung, Bộ Y tế sẽ liên hệ trực tiếp với những người có tiếp xúc.
Với Google/Apple, cách tiếp cận này giúp cho thông tin hoàn toàn phi tập trung (dữ liệu được bảo mật). Tuy nhiên, có trường hợp sida nhưng xông pha hiến máu, vì Bộ Y tế không thể nắm được thông tin về người có nguy cơ nhiễm do tiếp xúc.
Nếu có trường hợp nhiễm bệnh, người dùng sẽ đồng ý cung cấp thông tin định danh để Bộ Y tế nhập vào máy chủ. Hệ thống sẽ gửi các ID này xuống tất cả điện thoại, và nếu các ID khớp nhau, ứng dụng sẽ cảnh báo rủi ro và đề nghị người dùng liên hệ Bộ Y tế.

TraceTogether sẽ có hiệu suất tốt hơn trong việc khoanh vùng nhanh chóng và tiếp cận người có nguy cơ. Nó cũng không đòi hỏi kết nối internet liên tục, vì vậy ngay cả khi điện thoại hết pin hoặc hỏng, người dùng vẫn có thể biết mình có nguy cơ nhiễm bệnh qua việc Bộ Y tế liên hệ trực tiếp.
Về BlueZone, không rõ họ sẽ làm gì khi cảnh báo F2. Với thiết kế không gửi dữ liệu trở lại hệ thống, MOH không thể nhận thông tin F1. Vậy có lẽ khi một người là F1, ID của họ sẽ được tự động gửi lên hệ thống để cảnh báo cho những người là F2 (hoặc F3 nếu cần).
1.6. Cách hoạt động của ứng dụng
Một vấn đề quan trọng là cách hoạt động của ứng dụng. Để tối ưu hóa việc lần vết, ứng dụng cần phải luôn hoạt động và ghi nhận thông tin một cách liên tục. Do đó, điều bắt buộc là ứng dụng phải có khả năng hoạt động ẩn danh.
Với hệ điều hành Android, TraceTogether có thể hoạt động một cách chính xác khi ứng dụng đang chạy ở trước cảnh (foreground) hoặc nền (background) mà không ảnh hưởng đến hiệu suất. Điều này phù hợp với thiết kế của Android.
Trong khi đó, trên iOS có những hạn chế riêng. Apple áp đặt các giới hạn đặc biệt cho ứng dụng chạy nền. Ví dụ, sau 2 phút, ứng dụng sẽ chuyển sang chế độ chạy nền và mất đi một số tính năng như bình thường. Tương tự, việc truyền thông qua Bluetooth trên iOS cũng gặp phải hạn chế tương tự, khi chuyển sang chế độ chạy nền, các ứng dụng truyền thông Bluetooth trên iOS chỉ có thể gửi thông tin không tuân thủ theo tiêu chuẩn chung, do đó các thiết bị không phải là iOS sẽ không thể nhận được thông tin.
Với những lý do trên, phiên bản TraceTogether cho iOS buộc phải bổ sung tính năng tiết kiệm pin vì ứng dụng cần phải luôn hoạt động để hệ thống ghi nhận các tiếp xúc gần. Khi điện thoại được lật ngược hoặc để úp, ứng dụng sẽ hiển thị màn hình tối (tiết kiệm điện cho màn hình OLED).

Ứng dụng do Google/Apple viết sẽ không gặp các giới hạn này vì họ có thể dễ dàng tích hợp ứng dụng vào tầng hệ thống lõi.
Liên quan đến BlueZone, dường như họ không gặp phải những hạn chế này. Theo như thông tin từ họ, ứng dụng của họ không bị hạn chế khi chạy nền, và lượng thông tin vẫn được truyền đầy đủ giữa các nền tảng iOS và Android. Tuy nhiên, phát ngôn về việc ứng dụng của Singapore không trao đổi thông tin qua lại giữa iOS và Android có vẻ là không đúng, không nên tin tưởng. Hơn nữa, ai có thời gian có thể thử nghiệm bằng cách chạy TraceTogether trên iOS và sử dụng BlueZone trên Android để kiểm tra xem liệu thiết bị iOS có được phát hiện không?

Nhân đây, một điều thú vị là việc tìm kiếm ứng dụng của BlueZone trên Google Play không thành công.

Thông báo mới: Có vẻ như cách tiếp cận của họ là sử dụng một chiếc điện thoại Android hoặc iOS ở chế độ foreground như một cổng gateway để quét và cập nhật cho các thiết bị iOS đang chạy ở nền...
4. Tóm tắt
Theo nghiên cứu, phần lớn các ứng dụng sẽ có cùng một thiết kế dựa trên BLE. Mỗi ứng dụng với các kiến trúc sư khác nhau sẽ đề xuất các phương pháp tiếp cận khác nhau để phù hợp với từng quốc gia cụ thể.
Điều quan trọng nhất không phải là ứng dụng nào tốt hơn ứng dụng nào, hoặc ứng dụng nào có quảng cáo hơn ứng dụng nào. Mà là cần một lượng cài đặt đủ lớn để mô hình có thể hoạt động và ngăn chặn virus lan rộng.
Với TraceTogether, hiện đã có hơn 1 triệu người tham gia trong tổng số 6 triệu dân của Singapore. Điều này dễ hiểu khi đây là một ứng dụng do chính phủ phát triển và quảng bá. Đáng chú ý là đây là ứng dụng truy vết dựa trên Bluetooth đầu tiên được một quốc gia giới thiệu trên thế giới để hỗ trợ phòng chống COVID-19. Quốc gia thứ hai là Ấn Độ với khoảng 50 triệu người dùng. BlueZone hiện có vẻ chỉ có khoảng 15 ngàn người dùng. Hy vọng mọi người sẽ ủng hộ ứng dụng này và cài đặt nhiều hơn.
cập nhật: Mình không khuyến khích việc cài đặt BlueZone nữa, có quá nhiều vấn đề nghiêm trọng mà các chuyên gia bảo mật vừa phát hiện.
Ai cần mã nguồn, đây là link.
5.1.SGP đã công bố mã nguồn cơ bản của TraceTogether tại đây.
https://github.com/OpenTrace-community5.2. BKAV cam kết sẽ công bố mã nguồn
tại trang web sau https://bluezone.ai nhưng hiện 'Mã nguồn sẽ được công bố trong vài ngày tới'Ps: Israel và Hàn Quốc sử dụng cả vị trí trạm BTS kết hợp với bluetooth để cung cấp thông tin địa điểm, nhưng điều này không phổ biến do vấn đề riêng tư. Thế nhưng, BKAV tại sao không thu thập thông tin BTS nhỉ? Có vẻ như luật pháp không rõ ràng về quyền riêng tư.
*cập nhật: BlueZone yêu cầu quyền truy cập vào điện thoại -> bao gồm cả tín hiệu mạng. Có vẻ họ đã thu thập thông tin BTS. Không nên cài đặt app này vì không rõ ràng.
