Open thaidn opened 4 years ago
Tôi thấy mã nguồn của react-native-bluetooth-scan
đã được cập nhật. Cảm ơn team Bluezone!
Nhờ các bạn cập nhật mã nguồn của https://github.com/BluezoneGlobal/bluezone-app luôn được không? Tôi muốn hiểu cách máy chủ gửi lệnh đến app.
Anh ấy đang muốn kiểm tra để xem có lỗi privacy và security nào ko đó. HIện tại Server là blackbox lớn nhất của dự án này trong khi giữ quá nhiều dữ liệu quan trọng. Nếu sợ share cho cộng đồng mà chưa vá hết lỗi thì nên cho phép anh ấy xem private.
đây có phải open source không?
Tôi nghĩ bạn @nhantr chưa hiểu vấn đề ở đây... Câu chuyện nằm ở chỗ Bluezone được chính phủ tuyên bố là dự án nguồn mở, nhằm thể hiện quyết tâm của chính phủ trong việc minh bạch, mà đã thực hiện minh bạch thì phải minh bạch hết. Minh bạch là khái niệm có ranh giới rất rõ ràng: Hoặc là hoàn toàn có, hoặc là không.
Không biết bạn @nhantr là đại diện cho phía phát triển app hay là giữa đường thấy chuyện bất bình nhào vô chém bậy mấy nhát vậy. Nhưng cách nói chuyện của bạn cực kì kém trình độ cũng như lịch sự.
Bạn nói các bạn kia không ở VN đúng không. Vậy mình ở VN và có mười mấy năm làm trong lĩnh vực software nè. Nếu bạn không phải là dân trong nghề thì thôi, bỏ qua, còn là dân trong nghề thì nói vài điểm cho bạn rõ.
Mọi người ở đây chả ai cần minh bạch để chôm code đâu, vì với trình độ đó thì nghe vài ý thôi là biết làm sao rồi, khỏi cần đọc code. Đọc code là để xác nhận xem phía phát triển app có thực sự đưa ra giải pháp đúng hay không thôi. Và việc bên phát triển minh bạch cũng sẽ được các chuyên gia họ giúp đỡ để tìm ra hướng đi và giải pháp nhanh hơn là tự mò mẫm.
@nhantr okay fine. Bạn nói đúng, tôi không ở VN nên tôi không hiểu tình hình ở VN. Tôi ở Úc, mà tình hình Covid-19 ở đây nghiêm trọng hơn VN rất nhiều.
Tuy nhiên, tôi thấy chúng ta nói chuyện không liên quan nhau lắm. Trong khuôn khổ của issue này, không ai tranh luận xem có nên xài Bluezone hay không, chúng ta chỉ dừng lại ở việc góp ý với team Bluezone, và câu chuyện đang hướng đến chuyện mở mã nguồn server.
Chuyện người dân có quan tâm đến privacy hay không cũng là chuyện khác nốt. Nếu bạn muốn, chúng ta có thể mở một issue khác để thảo luận riêng về vấn đề này. Xin phép nhường issue này cho việc góp ý với team Bluezone, và phân tích các góp ý đó.
Nhắc lại, dù cho góp ý đó có được chấp nhận hay không, thì cũng KHÔNG LIÊN QUAN đến chuyện có nên xài app Bluezone hay là không.
Đã tạo issue khác ở đây: https://github.com/BluezoneGlobal/documents/issues/6
Mời mọi người!
Và xin để issue này cho việc thảo luận dựa trên các góp ý của @thaidn .
Tôi đã cập nhật thêm một số đề nghị.
@nhantr vâng, ông nội tôi mới chết nên tôi cần lấy mã nguồn Bluezone về tế ổng. Bạn có thì giúp giùm tôi nhé, xin cảm ơn!
Tôi mới đưa lên hướng dẫn cách reproduce để thấy máy chủ Bluezone có thể âm thầm lấy dữ liệu của người dùng như thế nào:
Tôi mới đưa lên hướng dẫn cách reproduce để thấy máy chủ Bluezone có thể âm thầm lấy dữ liệu của người dùng như thế nào:
Chào bạn @thaidn Mình đã xem qua project của bạn và có lẽ vấn đề chính là bạn chưa rõ về concept của contact tracing. Việc upload list của những token mà mình đã encounter là cần thiết trong việc xem mình có gặp phải ai mắc phải COVID-19 hay chưa. Những token này là token tạm thời do thiết bị generate mỗi interval nhất định để tăng tính bảo mật. Mỗi người dùng sẽ submit seed ID cho server để server có thể re-generate lại và flag tất cả các temporary token đó "nếu" người đó bị xác nhận là dính COVID-19. Sau đó những thiết bị khác gửi list token mình đã encounter để biết có gặp ai dính COVID-19 hay ko.
Mình làm cho cty develop Contact Tracing cho chính phủ Mỹ và mình xác nhận việc gửi list này đi là cần thiết: https://github.com/thaidn/bluezone/blob/master/request_upload_history.txt
Those tokens do not have any links to users' personal information in any ways. They are generated from random seeds
@KILLERST
Trong dữ liệu upload có TokenFirebase
. Mỗi thiết bị tại một thời điểm nhất định sẽ được đại diện bởi một TokenFirebase
duy nhất. TokenFirebase
có vai trò như một pseudonym. Khi base ID (mà bạn gọi là seed ID) và contact history được đưa lên máy chủ cùng lúc với TokenFirebase
, máy chủ sẽ biết được lịch sử tiếp xúc của thiết bị đó với những thiết bị khác. Đến đây máy chủ vẫn chỉ mới biết thiết bị nào tiếp xúc với nhau, chứ chưa biết thiết bị đó của ai. Nhưng nếu người dùng đăng ký số điện thoại, máy chủ sẽ biết chủ nhân thiết bị là ai, từ đó suy ra lịch sử tiếp xúc của người đó.
Nếu như dữ liệu upload chỉ bao gồm TokenFirebase
và base ID
thì máy chủ sẽ không biết lịch sử tiếp xúc của người dùng, bất kể người đó có đăng ký số điện thoại hay không. Lúc này để tìm F1 thì máy chủ có thể gửi base ID xuống các client khác, để client tự match. Nếu Bluezone làm theo cách này thì đã không có gì để nói, nhưng demo của tôi cho thấy Bluezone đưa lên máy chủ toàn bộ contact history.
@thaidn
"Lúc này để tìm F1 thì máy chủ có thể gửi base ID xuống các client khác, để client tự match"
Ko biết bạn có develop system contact tracing nào chưa, đây hoàn toàn ko phải là cách Contact Tracing suppose to work. Server sẽ ko bao giờ gừi base ID của những infected user về những máy khác ever. Client chỉ gửi đi những list token họ đã encounter đi và nhận lại 1 risk score dựa vào việc họ đã encounter f0, f1, hay f2. Tất cả clients sẽ ko bao giờ biết dc seed của những người đã bị infect cho nên ko thể replicate lại tất cả token của họ để pollute data hay để làm gì khác. Đương nhiên là temporary token của người infected có thể dùng phương pháp loại trừ để biết dc nhưng vẫn tốt hơn là leak seed token.
Còn về TokenFirebase thì đó dc dùng cho Google Firebase với mục địch analyze (Analytics để lấy stats) và debug (Crashlytics), Cho dù có cả TokenFirebase và base id (randomly generated at first run) cũng sẽ ko thể point ra bất kì PII nào trừ khi thông tin đăng ký như số điện thoại và thông tin cá nhân dc submit về Firebase/Bluezone server. Bạn cứ chăm chăm vào TokenFirebase lại đi nhầm hướng, E.g.:
Firebase Token + Bluetooth Token == ko vulnerable Firebase Token + personal info = vulnerable Bluetooth token + personal info = vulnerable
cái mấu chốt ở đây là personal info, at any point, có bị access và submit lại hay ko
Xin đính chính là mình chưa bao giờ khẳng định app này safe to use (see https://github.com/BluezoneGlobal/react-native-bluetooth-scan/issues/19), tuy nhiên những thứ bạn đang dùng để support claims của bạn chỉ là noises chứ ko phải evidences, và công bố vội vàng như vậy sẽ ko có tác dụng gì.
Dạ thưa bạn, tôi làm cái Exposure Notification API của Google và Apple, nên tôi nghĩ là tôi hiểu cách thức hoạt động của contact tracing.
Server sẽ ko bao giờ gừi base ID của những infected user về những máy khác ever. Client chỉ gửi đi những list token họ đã encounter đi và nhận lại 1 risk score dựa vào việc họ đã encounter f0, f1, hay f2.
Bạn đang nói cách bạn làm hay là cách Bluezone làm?
Bạn đọc tài liệu của Exposure Notification API và whitepaper của chính Bluezone sẽ thấy cả hai đều gửi danh sách F0 xuống client. Trích dẫn whitepaper của Bluezone đây:
Trích dẫn tài liệu của Exposure Notification API đây:
Bạn "làm" cài contact tracing hay "dùng"? Vì 2 cái thể hiện 2 trình độ khác nhau, mình có thể "dùng" Exposure Notification easily nhưng cách này ko hợp với hướng đi mà employer mình cần. Mình đồng ý về lỗi về việc mình skip white paper của Bluezone và nghĩ theo hướng centralized server thay vì decentralized. Decentralized server thì khả năng bị attack sẽ cao hơn nhiều, đây là 1 summary ngắn:
Thay vì có 1 điểm để protect (server), thì hướng này mỗi điện thoại sẽ là vulnerable source. Cho nên công ty mình ko theo approach này Tuy nhiên logic (bên dưới) mình đưa ở trên vẫn ko thay đổi, bạn dựa vào Firebase Token và Bluetooth Tokens để khẳng định sự vulnerable của thông tin người dùng, mình vẫn ko hề thấy trả lời gì cho vấn đề này? Mình vẫn đang tìm xem thông tin gì bị access trong khi bạn thấy Firebase Token thì đã vội khẳng định như đúng rồi?
Firebase Token + Bluetooth Token == ko vulnerable Firebase Token + personal info = vulnerable Bluetooth token + personal info = vulnerable
Để mình sửa lại lỗi đã ghi ở trên: Server sẽ ko bao giờ gừi base ID của những infected user về những máy khác ever in a proper contact tracing system, mình khuyến khích Bluezone nên theo hướng centralized, vì users cannot be trusted
@thaidn Để mình split cái này sang post mới để dễ discuss Centralized or not, bạn có bao giờ thấy at any point, anonymity của user bị vulnerable trong app này? Đây là thứ mà mình cũng đang tìm.
First you claimed that I don't understand how contact tracing works. Then I showed you irrefutable evidences that what I said is exactly how it works. Now you claim that it's not how proper contact tracing works, as if yours is the only proper way, and continue to question my credit, that is whether I'm merely a user or an actual developer of the Google/Apple Exposure Notification system.
I'm one of the two crypto leads of the EN design on Google side (Apple also has some more). The EN crypto protocol is fairly simple, I don't have many a contribution rather than convincing Google and Apple to switch from HMAC-SHA256 to AES.
I led the internal security assessment of the EN implementation on Android, was the security engineer who signed off the initial launch of the project. Yes, you read it correctly, Google waited for my approval before deciding to launch.
Is that enough credit for you? If yes, can we stop fucking appealing to authority and discuss like two educated persons?
Happy to confirm that Thai indeed works on the Google/Apple contact tracing API. As in he is my co-lead at Google for reviewing and auditing the cryptographic and other security properties of this API.
Thai is one of the most accomplished and intelligent security engineers I ever had the pleasure working with, these attacks on his character are ridiculous, and should if anything convince people that you have nothing of substance to address his vulnerability report.
Thanks @sophieschmieg ❤️
Happy to confirm that Thai indeed works on the Google/Apple contact tracing API. As in he is my co-lead at Google for reviewing and auditing the cryptographic and other security properties of this API.
Thai is one of the most accomplished and intelligent security engineers I ever had the pleasure working with, these attacks on his character are ridiculous, and should if anything convince people that you have nothing of substance to address his vulnerability report.
Is it as ridiculous as claiming vulnerability based on some findings of Firebase Tokens and Bluetooth Tokens being submitted? That what made me question his expertise in the first place. And he still hasn't answered about that. @sophieschmieg @thaidn
@sophieschmieg if tokens leaving the device is the wrong way then it is the same thing as me thinking decentralized contact tracing is the wrong way. He posted blog and made claims like his vulnerability has been confirmed/correct, when it's not. Is that professional?
a) he posted a literal demonstration. You can check it yourself if you like. b) the idea behind a decentralized contact tracing API is that tokens/keys only leave the device if the user is infected. Privacy best practice is to not share these tokens without explicit user consent, even if the user is infected.
@KILLERST I thought I've explained it clearly, but let's try again one more time.
The first big red flag is the Bluezone system does NOT do what it claims to do. Even yesterday, the development team went on a national TV network claiming that the client never uploads any data to the server. I've provided evidences to the contrary. I even provided a means for people to reproduce my findings.
Secondly, the Firebase token is a pseudonym that uniquely identifies each client. Its value alone might not disclose the user identity. However, during registration Bluezone asks users to enter and verify a phone number. The user's phone number is then linked to their device's Firebase token. When their device uploads contact history together with its Firebase token, the server can immediately tell that the data belongs to which phone number by looking up the number associated with the Firebase token.
Tôi mới đưa lên hướng dẫn cách reproduce để thấy máy chủ Bluezone có thể âm thầm lấy dữ liệu của người dùng như thế nào:
@sophieschmieg Let "Google" do the translation so you can see how that accusation translated to: "I've just posted a tutorial on how to reproduce to see how the Bluezone server can silently fetch user data"
It sounds like that in English, and in Vietnamese, it sounds even worse. I have been asking where user's data (PII) ever been collected according to his claim, however, he has been avoiding that question for a while.
I have been asking where user's data (PII) ever been collected according to his claim, however, he has been avoiding that question for a while.
No, I didn't avoid the question. It's more like you miss the answer. It's in the README of my PoC. Quoting https://github.com/thaidn/bluezone/blob/master/README.md
TokenFirebase is the Firebase token of the client device. From this token, Bluezone servers can figure out the user's phone number, if they entered it during registration.
But this is a side point. The main point is the system does indeed upload contact history data, contrary to the claim in the whitepaper and newspapers.
Edit: added the last sentence.
@KILLERST you don't understand IT privacy very well, do you? The point of a privacy respecting design is "server can't do wrong even if they try to", so saying an app is secured because there is no evidence of wrong doings from server side is a very amateur understand of privacy/security.
To give an analogy: you go to store and buy a door. You find out that the door lock isn't very secured and pointed that out. Yet the door salesman tells you "well, there is no evidence of any theft breaking this door yet, so it's in fact very secured."
@KILLERST you don't understand IT privacy very well, do you? The point of a privacy respecting design is "server can't do wrong even if they try to", so saying an app is secured because there is no evidence of wrong doings from server side is a very amateur understand of privacy/security.
Very nicely crafted personal attack and putting words in my mouth at the same time, did I ever claim that their server not doing anything wrong? Did I ever claim that this app is secured? They are putting their configuration file and logs in the hard drive and that's a very big vulnerability right there.
And to response to your edit analogy, my exact stance has been there is vulnerability (I posted on the other issue https://github.com/BluezoneGlobal/react-native-bluetooth-scan/issues/19), however, firebase tokens and bluetooth tokens leaving the device ID is not an issue yet unless there is a third variable linking to personal information, if you think user entering phone number manually (phone number is not accessed programmatically according to my static analysis, app doesn't have permission to access it anyway) is enough to be identification, there are tons of app out there collect it at launch or has the permission in the app to access it at anytime. It hasn't been an issue, why now?
I think your main attack is on relationship between phone number <--> personal identification which is required to register for a number in Vietnam. And that is an issue outside the app.
(Tôi không biết nên gửi vào đâu, nên gửi vào đây, vì thấy có người từ BKAV trả lời)
Tôi biết team Bluezone có lẽ đang rất bận cập nhật các app và backend. Tôi nghĩ cộng đồng cũng sẽ có thể giúp đỡ được phần nào nếu như có thêm tài liệu và mã nguồn mới nhất.
Đề nghị của tôi:
1/ Nhờ team Bluezone cập nhật mã nguồn và whitepaper đã công bố trên GitHub cho đúng với phiên bản mới nhất.
2/ Nếu được thì cũng nên công bố mã nguồn của máy chủ. Làm vậy sẽ giúp những ai quan tâm có thể đóng góp dễ dàng hơn.
3/ Team Bluezone cũng nên công bố phương án bảo vệ dữ liệu mà máy chủ thu thập được, đảm bảo chỉ người có thẩm quyền mới có thể đọc hoặc ghi dữ liệu.
4/ Team Bluezone và Chính phủ phải có cam kết dữ liệu chỉ được dùng cho contact tracing và sẽ được xóa sau 30 ngày kể từ khi Việt Nam tuyên bố hết dịch.
5/ Theo phân tích của tôi thì hiện giờ máy chủ có thể gửi lệnh (thông qua push notifications) xuống client để lấy dữ liêu mà không cần có sự đồng ý của người dùng. Tôi đề nghị cho người dùng được quyền quyết định có chia sẻ dữ liệu hay không.
Danh sách loại notifications mà tôi thấy:
e.NOTIFICATION_TYPE = { CHECK_CONTACT_F0: 'KiemTraLichSuTiepXuc', RESULT_VERIFY: 'CanhBaoXacNhanTiepXuc', SEND_INFOMATION: 'GuiThongBao', SEND_CONFIG: 'CapNhatCauHinh', PUSH_HISTORY: 'YeuCauGuiLichSu', PUSH_BLUEZONE_INFO: 'YeuCauGuiThongTin', PUSH_RESOURCE_LANGUAGE: 'CapNhatNgonNgu', PUSH_DELETE_NOTIFICATION: 'XoaThongBao', PUSH_GET_INFO_HISTORY: 'LayThongTinVaLichSu' };
Trong đó tôi đã kiểm tra và thấy
CHECK_CONTACT_F0
,PUSH_HISTORY
là những lệnh mà khi nhận được client sẽ tự động upload dữ liệu lên. Tôi sẽ kiểm tra các lệnh còn lại và cập nhật bài viết này sau.Edit: cập nhật thêm một số đề nghị.
Your posted a list of requests full of political issues instead of actual technical problems, are we here on github to solve political issues?
@thaidn @nedn @sophieschmieg To sum the problem up: @thaidn found connection between Firebase Token, Bluetooth Token, and the phone number to receives OTP which could potentially be stored by server. I don't say that method is the best, but it is a form of authentication so the authenticity of the users is somewhat ensured (not absolutely though, there can always be other form of spoofing). However, with his hostility stance, any form of authentication would be a confirmation of data stealing, e.g. social media sign-in, email, or phone number.
The app doesn't have any other permissions (e.g. READ_PHONE_STATE, GET_ACCOUNTS, READ/WHITE_CONTACT) to read personal information, which mean it will not link the phone number to any other personal info.
The phone number <-> identification database is accessible by the government outside the app.
I don't see the scope of the issue is within the app anymore. Does that sum up the discussion?
No. You conveniently left out some crucial details in your summary.
Bluezone is not just "any other app". It's the contact tracing app which Vietnam government recommends everyone to uses and the app developers have made guarantees that it won't collect any users data. The amount of scrutiny such an app like this deserves, of course, will be different from some random game app made by anyone.
I hope this answer your question " there are tons of app out there collect it at launch or has the permission in the app to access it at anytime. It hasn't been an issue, why now"
@KILLERST am I right that you're arguing that phone numbers by themselves are not personal information?
Your posted a list of requests full of political issues instead of actual technical problems, are we here on github to solve political issues?
I've reported many technical issues, including the one that you found, which I first reported 3 months ago and was also recently reported in https://github.com/BluezoneGlobal/bluezone-app/issues/22.
I agree that some of my request are about policies, but they're relevant to the trustworthiness of the app. I chose to post them here because I don't know where else to send them, as this is the only place I've seen some responses from members of the development team.
It's also important to have discussions like this in public, as a way to hold ourselves accountable for what we said. The country that we both came from has suffered from many bad decisions made behind closed doors, I thought we should do better.
I suspect that you only have good intentions, and you only want to make Bluezone better. That makes two of us. Though I disagree with your points, I deeply respect everyone serving the common good, especially in this troubled time. I really think we should be on the same team, rather than on opposing sides. My personal email is thaidn@gmail.com. Drop me a line if you think I'm worth talking to.
@thaidn
Thanks for being understanding. Knowing the app is made by BKAV and supported by the government, I took their advertising words about security and transparency with a grain of salt. I came here for two purpose:
Although we might not agree on some issues, centralized vs decentralized or how this app silently steals data, I agree it was a good open discussion about the security issue. The line of personal information protection is currently very blurred in Vietnam. I hope they pay more attention about it.
The app itself does has the abilities to do something malicious if the developers choose to do so. As of version 2.0.4, the user's location has not been accessed yet, but there is no guarantee about the future versions if that permission remains there. A runtime prompt won't pop again if it's already granted in previous version.
Sorry about the credibility questions as I was under the impression of you trolling them, and certainly the later guys made the situation even worse. Who would think they will response to any of your suggestions as half of them are very political. They are mostly about requesting the team to protect the users' data from the government. Begging them to do that does look very unprofessional. As an insider, you are in a better position to do something (request shutdown of the app?) if they do something malicious using the app.
Tôi thấy mã nguồn của
react-native-bluetooth-scan
đã được cập nhật. Cảm ơn team Bluezone!Nhờ các bạn cập nhật mã nguồn của https://github.com/BluezoneGlobal/bluezone-app luôn được không? Tôi muốn hiểu cách máy chủ gửi lệnh đến app.
Mình cũng rất quan tâm về phần này, không biết bản mã nguồn hiện tại đã được cập nhật mới nhất chưa? Vì theo như source code hiện tại trên github này, mình đang hiểu app ko tự động gửi history data lên bluezone server như bài.
Mình cũng rất quan tâm về phần này, không biết bản mã nguồn hiện tại đã được cập nhật mới nhất chưa? Vì theo như source code hiện tại trên github này, mình đang hiểu app ko tự động gửi history data lên bluezone server như bài.
Mã nguồn chưa được cập nhật nha bạn. Tức là app đang chạy một mã nguồn khác, so với mã nguồn đã công bố. Kết quả tôi viết trong bài là nhờ vào dịch ngược app tải về từ Google Play.
Nếu bạn muốn làm lại thí nghiệm của tôi, bạn có thể xem hướng dẫn ở https://github.com/thaidn/bluezone.
ý kiến của anh không phù hợp lắm. tại sao lại muốn xem code server? đây có phải open source không? đừng lợi dụng việc bảo mật để lấy code như thế nhé.
Đã là open source theo như Chính phủ và team đã công bố trên trang chủ của bluezone thì PHẢI công bố luôn.
Mình cũng rất quan tâm về phần này, không biết bản mã nguồn hiện tại đã được cập nhật mới nhất chưa? Vì theo như source code hiện tại trên github này, mình đang hiểu app ko tự động gửi history data lên bluezone server như bài.
Mã nguồn chưa được cập nhật nha bạn. Tức là app đang chạy một mã nguồn khác, so với mã nguồn đã công bố. Kết quả tôi viết trong bài là nhờ vào dịch ngược app tải về từ Google Play.
Nếu bạn muốn làm lại thí nghiệm của tôi, bạn có thể xem hướng dẫn ở https://github.com/thaidn/bluezone.
Mình đã thử nghiệm source trên của bạn. Tuy nhiên file apk cần phải chính xác là file từ Google Play hoặc cần build từ opensource tương ứng để mọi kết luận đều có sự chính xác nhất.
@dangquocmin: https://github.com/thaidn/bluezone/tree/master/apks có hướng dẫn cách verify các file APKs đó. Tất cả đều được signed bởi Google. Từ các file này, script create_apk.sh
chỉ unpack để đổi cấu hình Firebase và điều chỉnh AndroidManifest để có thể sniff requests thôi, hoàn toàn không đụng đến mã nguồn.
Nếu bạn thấy có chỗ nào còn nghi ngờ thì cứ hỏi, tôi sẽ giải thích.
@dangquocmin: https://github.com/thaidn/bluezone/tree/master/apks có hướng dẫn cách verify các file APKs đó. Tất cả đều được signed bởi Google. Từ các file này, script
create_apk.sh
chỉ unpack để đổi cấu hình Firebase và điều chỉnh AndroidManifest để có thể sniff requests thôi, hoàn toàn không đụng đến mã nguồn.Nếu bạn thấy có chỗ nào còn nghi ngờ thì cứ hỏi, tôi sẽ giải thích.
Cảm ơn bạn.
Mình nghĩ mình sẽ build thêm 1 bản từ open source mới nhất để tự verify thêm.
@tvc12
Mình không hiểu lắm @KILLERST có vấn đề gì về giải thích của @thaidn. Cái này chỉ là muốn xác định chính xác có phải quảng cáo một đằng làm một nẻo không thôi? Không phải cái gì có mác chỉnh phủ cũng 100% tốt (mình có xem qua code một chút thì thấy phần code java hiện giờ không hẳn là tốt, mình không rõ nó có thể hoạt động tốt nếu số case càng ngày càng tăng lên không). Nếu việc server có lưu thông tin là thât thì không chỉ thông tin người dùng bình thường có vấn đề còn có thông tin của chính người làm trong chính phủ (gồm công an, bộ đội, và các quan chức cấp cao hơn). Nên cũng nên rõ ràng về vấn đề này. Ai rảnh có thể đọc thêm https://github.com/BluezoneGlobal/documents/blob/master/Bluezone_White_paper.pdf . Trang 3 có mô tả về cách hoạt đông bằng hình khá rõ ràng. Nhưng bước 4 có vẻ có vấn đề, nếu ai xem code thì phần liên quan là BluezoneIdTrace.checkContactF .
@KILLERST @nedn Just want to add more proofs that makes Bluezone is not like "any other apps":
.gov.vn
, and only owned by the VN government.Anyway, I think anyone here would know this, so I mentioned it just in case.
Not sure if anyone mentioned this already, but aren't we generating unique ids for devices just to get rid of all the personal information? Then they used a phone number for verification, which again is personal information. And currently, it's at the risk of being leaked. I've read the whitepaper and didn't see the phone number part mentioned anywhere. Is the phone number really important here?
I've read the whitepaper and didn't see the phone number part mentioned anywhere. Is the phone number really important here?
@t-rekttt I think that's the point. The document say nothing about phone number, but who know if they collect and save in the database. I'm not saying that they will do that, but what if a hacker break their security and steal that data? That's why some people asked for the server's source code. Just to ensure, you know.
Hi. Tôi cũng là một programmer, nhưng tôi không có kiến thức về mảng này nên không giúp gì được. Nhưng tôi thấy có cả tranh cãi về vấn đề phi kỹ thuật. Tôi là một người dân, tôi sẵn sàng chống dịch nhưng tôi không muốn dữ liệu cá nhân của tôi bị người khác khai thác, dù đó là bất kì ai, chứ chưa nói đến kẻ xấu. Dù là việc chống dịch cấp bách, nhưng nếu đưa ra thị trường một sản phẩm nguy hiểm theo cách sẵn sàng hi sinh lợi ích người dân là điều không phải ai cũng chấp nhận, dù nhiều người sẵn sàng làm điều đó. Nếu chủ trương open source, hãy open một cách minh bạch để mọi người được biết, và nhiều người có thể đóng góp thêm. Dù họ có thể nói theo cách này hay cách khác, bạn có thể thích hay không, bản chất của sự việc giữa một cách nói "dễ nghe" và một cách nói "khó nghe" vẫn chỉ là một. Xét về yếu tố kỹ thuật, bạn không thể đánh lái vấn đề đang từ "security" sang "political", dù nó có vẻ liên quan đến nhau.
I've read the whitepaper and didn't see the phone number part mentioned anywhere. Is the phone number really important here?
@t-rekttt I think that's the point. The document say nothing about phone number, but who know if they collect and save in the database. I'm not saying that they will do that, but what if a hacker break their security and steal that data? That's why some people asked for the server's source code. Just to ensure, you know.
I think we should split your points into 2 parts. The part about data collecting and the part about backend security.
@t-rekttt yes, you have my point in the first part.
Regarding on backend security, I also think there are 2 things to consider:
The first one is the important point here: If there is no personal data being saved, then no one can steal it.
ý kiến của anh không phù hợp lắm. tại sao lại muốn xem code server? đây có phải open source không? đừng lợi dụng việc bảo mật để lấy code như thế nhé.
Code server có gì thần thánh đâu mà lợi dụng lấy source trời :)
@immanuel192 thế mà có thằng lấy mới ghê
Mình không hiểu @nhantr có hiểu gì về lập trình hay thiết kế hệ thống hay không? Nếu bạn không hiểu thì mình không rõ mục đích của bạn ở đây làm gì? Nếu bạn hiểu thì đáng ra bạn cũng nên biết với thiết kế của Bluezone (hay hầu hết cách Tracing app hiện giờ) thì phần khó nhất thuộc về cái App trên điện thoại. Làm sao có thể xác định được là khoảng cách xa gần thế nào? Làm sao biết là hai người có tiếp xúc gần vời nhau. Các phần khác đều rất đơn giản. Nhất là server, vì thực tế server cũng không cần thiết (nếu dưạ vào chia sẻ ngang hàng - mỗi F0 sẽ có mã số riêng từ cơ quan y tế để xác thục), nếu không, thì Server cũng chỉ cần làm nhiệm vụ rất đơn giản là chuyển thông tin của F0 (nếu thông tin của F0 được mã hoá) đến cộng đồng thôi. Thậm chí cũng không cần phải làm một dòng code nào cho server nếu đơn giản chỉ là chia sẽ thông tin. Bạn có thể tận dụng các serverless API miễn phí (nếu muốn dùng hàng trong nước thì Zalo API mình nhìn qua cũng không phải là khó dùng). Không thực ra làm một cái Tweet cho mỗi trường hợp rồi tạo RSS từ đầy cũng ổn. Phần này ai thích mình có thể ra topic riêng.
Quay lại về vấn đề hiện tại, Bluezone có dùng Server. Mục đích chắc cũng chỉ để chuyển tin cho cộng đồng. Có lẽ ý chính của Thaind muốn hỏi tại sao lại có thêm các tác vụ khác. Nếu có thì bảo mật như thế nào? Vì dự án là xác định là nguồn mở nên yêu cầu Server code là các dễ nhất để đánh giá, thay vì Team BlueZone phải củ ra người trả lời từng câu một. Cách hiểu thông thường người làm phần mềm hoặc làm về chuyên về server hoặc cung cấp API chuyên nghiệp đều cũng sẽ tìm cách tinh giảm những tác vụ/ API không cần thiết. Vì vừa không an toàn mà lại gây nhầm lẫn cho người dùng.
Mọi người cùng chung tay thì ứng dụng sẽ càng tốn hơn.
@KILLERST @nedn Just want to add more proofs that makes Bluezone is not like "any other apps":
- The official website of Bluezone app is https://bluezone.gov.vn/. See? That's
.gov.vn
, and only owned by the VN government.- Unlike other apps (or even other platforms like Google/Apple/Samsung), Bluezone's owner (which is VN government) has fully access to user information that's linked from a phone number (via VN telcos, or citizen database).
Anyway, I think anyone here would know this, so I mentioned it just in case.
Again, that is more about political than technical, the country itself has a database of phone number and its citizens, might include emails as well. And that's an issue existing outside Bluezone. What form of authentication would you prefer Bluezone to use to protect its integrity and make you feel safe at the same time? IMEI (or hash of it?), phone number, email, a separate Bluezone account?
On the other hand, you're concerning about security of people living over there while they are currently quite currently okay with it. They are willing to give full history of traveling, who they encounter (remember the guy who expose his affair?), and joining concentration quarantine sites. The line of privacy is different for each country. I do wish they care more about it, I also wish we can know further details about infected COVID-19 patients in the U.S other than a zip code. I am here to help technically, not politically.
Also, political parties say something and then do it differently is happening everywhere. If you want to change or request something, https://petitions.whitehouse.gov/ would be the place to go (or the press). I am quite tired of seeing people (especially old ones) living in one country and worrying about the other while the people living there don't give a damn. The first steps to help them would be putting on their shoes first, not changing it. How would you help given the conditions? @khanguy00
On the other hand, you're concerning about security of people living over there while they are currently quite currently okay with it. They are willing to give full history of traveling, who they encounter (remember the guy who expose his affair?), and joining concentration quarantine sites. The line of privacy is different for each country. I do wish they care more about it, I also wish we can know further details about infected COVID-19 patients in the U.S other than a zip code. I am here to help technically, not politically.
Also, political parties say something and then do it differently is happening everywhere. If you want to change or request something, https://petitions.whitehouse.gov/ would be the place to go (or the press). I am quite tired of seeing people (especially old ones) living in one country and worrying about the other while the people living there don't give a damn. The first steps to help them would be putting on their shoes first, not changing it. How would you help given the conditions? @khanguy00
Hi. As a citizen who live here, I worry about my health and the health of people around me, but I also care about my privacy, and I know quite many people here that also share the same concerns. Who are you to represent the whole population and claim what people here care about and what they do not?
I understand that you do not represent the government and therefore may not be able to answer all questions or address the issues, and that's OK, but please quit the BS arguments that "people who live here don't care about privacy" or "the line of privacy in each country is different".
I also care about my privacy, and I know quite many people here that also share the same concerns.
I specifically used 'okay' to mean a agreement level about 6-7 over a scale of 10. If you're worry about security, protect yourself by using a spoof number (promotional sim card?) or not entering the phone number at all. Why come on here and call BS when it's the people giving the number out in the first place? I can't represent the whole population but I living there for more than 20 years, I know that assessing people feeling 'okay' with status quo of privacy is a good estimate.
If you want to fight the policies, fight it publicly, do protest or speak to the press like @thaidn did. He had a very in-depth discussion with BBC about privacy issues and how social graph collected from Bluezone could be taken advantage . All the keyboard heroes can remain here and talk politics on Github. And do support each other (hero) by thumping up and down like Facebook. It's hilarious.
I can help the home country with fixing the app on Github. I cannot not fixing the govt from a version control website, which means discussing the political issues here is useless.
(Tôi không biết nên gửi vào đâu, nên gửi vào đây, vì thấy có người từ BKAV trả lời)
Tôi biết team Bluezone có lẽ đang rất bận cập nhật các app và backend. Tôi nghĩ cộng đồng cũng sẽ có thể giúp đỡ được phần nào nếu như có thêm tài liệu và mã nguồn mới nhất.
Đề nghị của tôi:
1/ Nhờ team Bluezone cập nhật mã nguồn và whitepaper đã công bố trên GitHub cho đúng với phiên bản mới nhất.
2/ Nếu được thì cũng nên công bố mã nguồn của máy chủ. Làm vậy sẽ giúp những ai quan tâm có thể đóng góp dễ dàng hơn.
3/ Team Bluezone cũng nên công bố phương án bảo vệ dữ liệu mà máy chủ thu thập được, đảm bảo chỉ người có thẩm quyền mới có thể đọc hoặc ghi dữ liệu.
4/ Team Bluezone và Chính phủ phải có cam kết dữ liệu chỉ được dùng cho contact tracing và sẽ được xóa sau 30 ngày kể từ khi Việt Nam tuyên bố hết dịch.
5/ Theo phân tích của tôi thì hiện giờ máy chủ có thể gửi lệnh (thông qua push notifications) xuống client để lấy dữ liêu mà không cần có sự đồng ý của người dùng. Tôi đề nghị cho người dùng được quyền quyết định có chia sẻ dữ liệu hay không.
Danh sách loại notifications mà tôi thấy:
Trong đó tôi đã kiểm tra và thấy
CHECK_CONTACT_F0
,PUSH_HISTORY
là những lệnh mà khi nhận được client sẽ tự động upload dữ liệu lên. Tôi sẽ kiểm tra các lệnh còn lại và cập nhật bài viết này sau.Edit: cập nhật thêm một số đề nghị.