The Download Protection service in Chrome protects users from downloading malware/viruses by blocking files that are known to be unsafe by the Google’s Safe Browsing service. The way this works is that Chrome sends some basic information about the file being downloaded including the checksum to the Safe Browsing service and receives a verdict.
Historically, not all file types were checked – instead a list of extensions to be checked or ignored is defined in the Chrome source code and only those extensions would be checked. Any extensions not on the list are ignored. These lists can be found in the following file (“download_file_types.asciipb”).
Apparently, this has been changed recently. As per information provided from a recent bug report (https://crbug.com/1039128), Chrome now checks ALL extensions except for the ones on the whitelist. That means when you download almost any file, the checksum and some other information about the file are sent back to Google. It is not clear how this impacts privacy. Since other browsers use this API, it may impact them as well.
You can disable this behavior by disabling the Safe Browsing API entirely but that will also disable checks for malicious URLs. As of now, there doesn’t seem to be an option to disable download protection separately from safe browsing for URLs. The Safe Browsing API does include an option to download a list of dangerous files locally but it doesn’t appear that Chrome uses it yet.
You can see this information by typing the following in your Chrome’s URL bar and checking the “Download Protection” tab.
Example of a MRC file being downloaded from the Internet Archive:
For some files (primarily ZIPs) a hash is sent as well. You can see this when trying to download the EICAR test file (standard test file for antivirus software):
{ "archive_directory_count": 0, "archive_file_count": 1, "archive_valid": true, "archived_binary": [ { "digests": { "sha256": "2546DCFFC5AD854D4DDC64FBF056871CD5A00F2471CB7A5BFD4AC23B6E9EEDAD" }, "download_type": 6, "file_basename": "eicar_com.zip", "length": 184 } ], "download_type": 5, "file_basename": "eicarcom2.zip", "length": 308, "referrer_chain": [ { "ip_addresses": [ "89.238.73.97" ], "is_retargeting": false, "is_subframe_referrer_url_removed": false, "is_subframe_url_removed": false, "main_frame_url": "", "maybe_launched_by_external_application": false, "navigation_initiation": "RENDERER_INITIATED_WITH_USER_GESTURE", "navigation_time_msec": 1.628252679503e+12, "referrer_main_frame_url": "", "referrer_url": "https://www.eicar.org/?page_id=3950", "server_redirect_chain": [ ], "type": "EVENT_URL", "url": "https://secure.eicar.org/eicarcom2.zip" }, { "ip_addresses": [ "89.238.73.97" ], "is_retargeting": false, "is_subframe_referrer_url_removed": false, "is_subframe_url_removed": false, "main_frame_url": "", "maybe_launched_by_external_application": false, "navigation_initiation": "RENDERER_INITIATED_WITH_USER_GESTURE", "navigation_time_msec": 1.628252674199e+12, "referrer_main_frame_url": "", "referrer_url": "https://www.google.com/search?q=antivirustst+file&oq=antivirustst+file", "server_redirect_chain": [ ], "type": "LANDING_PAGE", "url": "https://www.eicar.org/?page_id=3950" }, { "ip_addresses": [ "142.250.65.196" ], "is_retargeting": false, "is_subframe_referrer_url_removed": false, "is_subframe_url_removed": false, "main_frame_url": "", "maybe_launched_by_external_application": false, "navigation_initiation": "BROWSER_INITIATED", "navigation_time_msec": 1.62825267089e+12, "referrer_main_frame_url": "", "referrer_url": "", "server_redirect_chain": [ ], "type": "LANDING_REFERRER", "url": "https://www.google.com/search?q=antivirustst+file&oq=antivirustst+file" } ], "request_ap_verdicts": false, "url": "https://secure.eicar.org/eicarcom2.zip" }
Credits
Written by Y. Shafranovich.