Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> อินเทอร์เน็ต

ฟีเจอร์ Hotword ของ Google Chrome: เข้าใจผลกระทบต่อความเป็นส่วนตัว

ถ้ามีสิ่งหนึ่งที่สื่อเทคโนโลยีทำได้ดีที่สุด คือการกระโดดขึ้นรถบรรทุกโฮย (hype wagon) สร้างความกลัว และเผยแพร่เรื่องราวที่ไม่ได้รับการตรวจสอบและไม่สมบูรณ์เกี่ยวกับความเป็นส่วนตัวและความปลอดภัย เรื่องราวหนึ่งที่กล่าวถึงความสามารถที่มีอยู่ใน Google Chrome และ Chromium ซึ่งช่วยให้คุณใช้คำสั่งเสียง "OK, Google" ในแท็บใหม่และหน้าค้นหาของ Google

สิ่งนี้ไม่ได้เป็นเรื่องใหม่ แต่มันระเบิดขึ้นเมื่อผู้ใช้ Debian รายงานพบโค้ดปิด (closed-source blob) ใหม่ในการดาวน์โหลด Chromium 43 ทำให้ชุมชนเทคโนโลยีกลายเป็นบ้าคลั่ง ติเตียน Google ว่าร่วมมือกับหน่วยงานตรวจสอบ และผู้คนจำนวนมากย้ายไปใช้เบราว์เซอร์อื่น แต่สิ่งหนึ่งที่สื่อเทคโนโลยีไม่ทำได้ดี คือช่วยผู้คนแก้ไขปัญหาจริง ๆ ดังนั้น Chrome หรือ Chromium อาจกำลังเฝ้าติดตามคุณ มีวิธีบรรเทาปัญหานี้หรือไม่? มาดูกัน

สิ่งแรกที่ต้องทำ

สิ่งพื้นฐานที่สุดที่คุณต้องถามตัวเองคือ: หากคุณไม่น่าเชื่อถือ Google ทำไมถึงใช้ผลิตภัณฑ์ของมัน? ทำไมถึงใช้ Chrome หากคุณกลัวว่าบริษัทกำลังพยายามสร้างโปรไฟล์พฤติกรรม ขายโฆษณา และอื่น ๆ? การกระทำของคุณพูดดังกว่าคำพูด หากคุณกลัวเรื่องความเป็นส่วนตัวและความปลอดภัยจริง ๆ คุณไม่ควรใช้เบราว์เซอร์นี้

ด้วยเหตุผลเดียวกัน หากคุณไม่น่าเชื่อถือ Google คุณไม่ควรใช้ผลิตภัณฑ์ของ Google ใด ๆ แต่ผู้คนยินดีที่จะให้ข้อมูลส่วนตัวถูกเก็บรวบรวมบนสมาร์ทโฟน มีประวัติการค้นหาที่ลุ่มหลุมในเบราว์เซอร์ เพราะล็อกอินเข้า Google ขณะใช้เบราว์เซอร์ และแลกเปลี่ยนข้อมูลส่วนตัวที่ละเอียดอ่อนผ่านอีเมล แชท และอื่น ๆ นี่คือความเป็นจริง หากคุณคิดว่าเบราว์เซอร์จะถูกใช้ประโยชน์เพราะมีฟังก์ชันใหม่ คุณกำลังมองข้ามสิ่งอื่นทั้งหมด

รายละเอียดทางเทคนิค

ดีแล้ว ถ้าเราดู Chrome ในหน้าต่างการตั้งค่า ภายใต้ "ค้นหา" (Search) คุณจะมีตัวเลือกเปิดใช้งานฟังก์ชันเสียง ซึ่งถูกปิดไว้เป็นค่าเริ่มต้น

สำหรับรายละเอียดเพิ่มเติม คุณสามารถไปที่ chrome://voicesearch ที่นี่คุณจะเห็นรายละเอียดทางเทคนิคเพิ่มเติมเกี่ยวกับฟังก์ชันนี้ ซึ่งเป็นจริงทั้ง Windows และ Linux ผมทดสอบและตรวจสอบบน Windows 7 และ CentOS 7 ซึ่งไม่ใช่ตัวเลือกที่ชัดเจน แต่ผมต้องการให้คุณมีแหล่งอ้างอิงมากกว่าหนึ่ง สองภาษา (locale) เช่นกัน เพื่อความปลอดภัย

ฟังก์ชัน เปิดหรือปิด?

หากคุณสลับการค้นหาด้วยเสียงเปิด/ปิด สถานะไมโครโฟน (Microphone yes/no) จะเปลี่ยนแปลงได้อย่างน่าเชื่อถือบน Windows แต่บน Linux อาจไม่สะท้อนสถานะของฟังก์ชัน อย่างไรก็ตาม นี่ค่อนข้างหลอกลวง เราจะพูดถึงในอีกสักครู่ การบันทึกเสียง (Audio capture) และ NaCl จะเปิดอยู่ตลอด ค่า "Hotword Search Enabled" ไม่เปลี่ยนแปลง ไม่ว่าคุณจะเลือกตัวเลือกใด สถานะของไลบรารีร่วม (shared library) และส่วนขยาย (extension) ไม่เปลี่ยนแปลง ไม่ว่าคุณจะเลือกตัวเลือกใด

และในกล่อง CentOS 7 ของเรา เรามี:

มีข้อมูลที่มีประโยชน์มากกว่านี้ที่เราต้องดู ตามที่กล่าวไว้ voicesearch ถูกเสนอเป็นส่วนขยาย (extension) รวมถึงโมดูลร่วม (shared module) จริง ๆ แล้ว ไบนารีแบบปิด (closed-source binary blob) ที่เป็นโมดูลร่วมนี้คือสาเหตุของความว้าวุ่น แต่ลองดูส่วนขยาย

ส่วนขยาย (Extension)

พาธบน Windows ชี้ไปที่ Program Files และใน Linux อยู่ภายใต้ /opt ตามที่เห็นในสกรีนช็อตด้านบน อย่างแปลกมาก บนทั้งสองแพลตฟอร์ม พาธเหล่านี้ไม่ถูกต้อง ไม่มีอะไรอยู่ที่นั่น

Extension Id: nbpagnldghgfoolbancepceaanlmhfmd
Extension Version: 0.0.1.4
Extension Path: C:\Program Files (x86)\Google\Chrome\
Application\43.0.2357.130\resources\hotword
Extension State: ENABLED

แม้คุณจะค้นหาทั่วระบบ เช่นบน Linux คุณจะไม่พบอะไรนอกจากชิ้นส่วนของโมดูลร่วม ซึ่งตั้งอยู่ภายในโปรไฟล์ผู้ใช้ในโฟลเดอร์บ้าน (home directory):

find / -name \*hotword\*
/home/roger/.config.../x86-64_en-us/hotword.data
/home/roger/.config.../x86-64_en-us/hotword-x86-64.nexe
/home/roger/.config.../0.3.0.5_0/hotword_ru.nmf
/home/roger/.config.../hotword_pt-br.nmf
/home/roger/.config.../hotword_.nmf
...

นอกจากนี้ ส่วนขยายไม่แสดงในรายการส่วนขยาย ซึ่งเป็นที่ร้องเรียนอีกอย่างของผู้ใช้ Chrome และ Chromium หากสิ่งใดควรเป็นส่วนขยาย มันควรจะมองเห็นได้ และผู้ใช้ควรควบคุมสถานะของมันได้

อย่างไรก็ตาม หากคุณต้องการดูส่วนขยาย คุณสามารถเริ่ม Google Chrome ด้วยแฟล็ก --show-component-extension-options จากบรรทัดคำสั่ง และคุณจะเห็นรายการเต็ม รวมถึง voice search คุณไม่สามารถเปิด/ปิด/ลบส่วนขยายได้ด้วยวิธีใด ๆ อีกแหล่งหนึ่งของความหงุดหงิดและความกลัว

โมดูลร่วม (Shared Module)

โมดูลร่วมตั้งอยู่ที่ระบุไว้ ภายในโปรไฟล์ผู้ใช้ พาธค่อนข้างซับซ้อน ทั้ง Windows และ Linux มันมาพร้อมชื่อและนามสกุลเดียวกัน (nexe) โดยพื้นฐาน โมดูลร่วมประกอบด้วยสองไฟล์ หนึ่งคือข้อมูล (data) ซึ่งอ่านการกำหนดค่าภาษาต่าง ๆ และการตั้งค่าอื่น ๆ จากไฟล์กำหนดค่า hotword

Shared Module Id: lccekmodgklaepjeofjdjpbminllajkg
Shared Module Version: 0.3.0.5
Shared Module Path: C:\Users\...\AppData\Local\Google\
Chrome\User Data\Default\Extensions\
lccekmodgklaepjeofjdjpbminllajkg\
0.3.0.5_0
Shared Module State: ENABLED

การกำหนดค่ามาในรูปแบบไฟล์เฉพาะภูมิภาค/ภาษา บวกกับ manifest ทั้งหมดในรูปแบบ JSON ที่ดูไม่สวยงาม ไม่มีอะไรพิเศษ สิ่งทั่วไปของส่วนขยาย Chrome ดูสิ:

{
"description": "Support files for Chrome Hotwording.",
...
"key": "...MIIBIjB",
"manifest_version": 2,
"minimum_chrome_version": "39",
"name": "Chrome Hotword Shared Module",
"platforms": [ {
"lang": "de",
"nacl_arch": "arm",
"sub_package_path": "_platform_specific/arm_de/"
}, {
... 

ไฟล์ nexe เป็นไบนารีจริง และถูก strip debug symbols:

file ./.config/google-chrome.../x86-64_en-us/hotword-x86-64.nexe
./.config/google-chrome.../x86-64_en-us/hotword-x86-64.nexe: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=0x555dd22448ca6d88d6311092340a8b92309865f5, stripped

หากคุณต้องการติดตามการทำงานของ Chrome และดูว่าจะเกิดอะไรขึ้นเมื่อคุณสลับการตั้งค่าการค้นหาด้วยเสียง รวมถึงใช้ hotword คุณไม่สามารถทำได้โดยไม่ใช้แฟล็กซ่อนอีกตัวของ Chrome โดยค่าเริ่มต้น:

strace -f -s512 -o /tmp/chrome /opt/google/chrome/chrome
The setuid sandbox is not running as root. Common causes:
* An unprivileged process using ptrace on it, like a debugger.
* A parent process set prctl(PR_SET_NO_NEW_PRIVS, ...)
Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted

คุณจะต้องรันโปรแกรมด้วย --disable-setuid-sandbox อย่างไรก็ตาม ไม่มีอะไรที่มีประโยชน์หรือน่าสนใจในการทำงาน และการคลิกปุ่มและการเปลี่ยนสถานะ checkbox ไม่สะท้อนใน system calls หรือ library calls ทั้งหมดเป็นฟังก์ชันภายใน คุณอาจคิดว่านี่น่าสงสัย แต่ไม่ใช่ นี่เป็นเรื่องปกติสมบูรณ์

สรุปย่อ

สิ่งที่เรามีในขณะนี้คือ:

  • สถานะไมโครโฟนของ voicesearch เปลี่ยนเมื่อคุณสลับ 'OK, Google' hotword เปิด/ปิด ในการตั้งค่าระบบ แต่ไม่ใช่กลไกเดียวที่ส่งผลต่อการตั้งค่านี้ การตั้งค่าอื่น ๆ สองอย่างด้านเสียงไม่ได้รับผลกระทบ ค่า hotword, extension และ shared module จะอ่านว่า enabled ตลอด แม้จะไม่ได้ใช้งานหรือสลับในเมนูการตั้งค่าเบราว์เซอร์
  • ฟังก์ชันนี้แสดงเป็นส่วนขยาย แต่ส่วนขยายดังกล่าวไม่มีอยู่ในระบบไฟล์ มันแสดงในรายการเมื่อเรียก Chrome ด้วยแฟล็กพิเศษ
  • โมดูลร่วมมีชื่อเดียวกันบน Windows และ Linux และตั้งอยู่ภายในโปรไฟล์ผู้ใช้ มันถูก strip debug symbols และเมื่อ trace ไม่แสดงกิจกรรมใด ๆ ที่เกี่ยวข้องกับฟังก์ชัน voicesearch

วิธีปิดการค้นหาด้วยเสียง (voicesearch)

ตอนนี้ หากคุณทดสอบเบราว์เซอร์และไมโครโฟน คุณจะเห็นว่า 'OK, Google' ทำงานเมื่อเปิดใช้งาน และไม่ทำงานเมื่อปิดใช้งาน ดีแล้ว คุณยังสามารถใช้ไอคอนไมโครโฟนใน Google search เพื่อค้นหาด้วยเสียงได้เสมอ ไม่ว่าจะเป็นอย่างไรก็ตาม ต่อมา Chrome จะถามว่าคุณต้องการอนุญาตให้ใช้ไมโครโฟนหรือไม่:

หากคุณต้องการปิดความสามารถของเบราว์เซอร์ในการฟังอย่างสมบูรณ์ คุณจะต้องถอนโมดูลร่วมออก คุณสามารถเปลี่ยนสิทธิ์ ย้ายไฟล์ไปโฟลเดอร์อื่น หรือแม้แต่ลบมัน:

chmod 000 ~/.config/.../x86-64_en-us/hotword-x86-64.nexe

หากคุณทำเช่นนี้ คุณจะเห็นพฤติกรรมดังนี้ ใน Windows สถานะของไมโครโฟนจะไม่เปลี่ยนในหน้า chrome://voicesearch เว้นแต่คุณจะติ๊ก checkbox เปิด/ปิด แม้ไฟล์ hotword จะไม่มีอยู่ เบราว์เซอร์จะทำงานโดยไม่มีข้อผิดพลาด และไม่โยนข้อยกเว้นใด ๆ อย่างไรก็ตาม การค้นหาด้วยเสียงจะ ไม่ทำงาน การย้าย ลบ หรือถอนสิทธิ์ไฟล์ hotword executable ทำงานได้จริง

ใน Linux สถานะของไมโครโฟนจะเปลี่ยนเป็น No หากโมดูลร่วมหายไป และคุณจะไม่สามารถใช้การค้นหาด้วยเสียงด้วย hotwords ได้ เว้นแต่คุณจะคลิกปุ่มเสียงในหน้า Google search อย่างชัดเจน

สถานะของโมดูลร่วมและส่วนขยายจะอ่านว่า ENABLED บนทั้งสองแพลตฟอร์ม แม้คุณจะลบไฟล์ อย่างไรก็ตาม ประเภท (type) จะเปลี่ยนจากแพลตฟอร์มที่รู้จัก สู่ประเภทที่ไม่ได้กำหนด:

ตอนนี้ เนื่องจากเราลบไฟล์แล้ว พวกมันทฤษฎีแล้วอาจกลับมาด้วยการอัปเกรดเบราว์เซอร์ครั้งถัดไป ดังนั้นนี่คือสิ่งที่คุณต้องใส่ใจ แต่เช่นเดิม อย่าใช้ผลิตภัณฑ์ที่คุณไม่น่าเชื่อถือ หากคุณปวดหัวจริง ๆ เกี่ยวกับสิ่งที่ Google ทำ คุณไม่ควรกลั้นกล่อมกับ Chrome จริง ๆ วัตถุประสงค์ของทั้งการทดลองนี้คือเพื่อแสดงให้คุณเห็นว่าสิ่งต่าง ๆ ทำได้ สิ่งต่าง ๆ ไม่ได้เลวร้ายอย่างที่ดูครั้งแรก คุณมีความสามารถในการควบคุมระบบของคุณ และตอนนี้คุณเข้าใจว่าเบราว์เซอร์ทำอะไร

บทสรุป

Google ไม่ได้ช่วยตัวเองโดยการเสนอข้อความที่ขัดแย้งกันมากมายในแพ็กเกจเดียว เปิด ปิด ใช่ ไม่ มีการจัดเรียงแบบต่าง ๆ ของฟังก์ชันนี้หลายโหล ซึ่งไม่ได้สะท้อนว่atechnology ทำงานจริงและทำงานอย่างไร แต่ค่อนข้างง่าย เมนูการตั้งค่า GUI เป็นสิ่งที่กำหนดสถานะจริง ๆ และหากคุณเป็นคนรังเกียจจริง ๆ คุณสามารถลบโมดูลร่วมออก และฟังก์ชันจะหายไปไม่ว่าคุณจะเลือกอะไรในเมนู

ผมเข้าใจความโกรธของผู้ใช้ Chromium แต่พื้นฐานของความกลัวของพวกเขาไร้พื้นฐาน อีกครั้ง Google อาจช่วยตัวเองได้โดยการทำให้การลอง hotword ทั้งหมดโปร่งใสและง่ายต่อการนำทางและปรับแต่งมากขึ้น แต่ไม่มีอะไรบ่งชี้ถึงเจตนาร้าย แค่โค้ดที่เขียนไม่ดี (wonky coding)當然 มีคำถามพื้นฐานที่ใหญ่กว่านี้เกี่ยวกับความไว้วางใจ ที่นี่ คำแนะนำของผมค่อนข้างง่าย อย่าใช้ซอฟต์แวร์หากคุณไม่รู้สึกปลอดภัยกับมัน จริงสำหรับ Chrome หรือโปรแกรมอื่น ๆ การบ่นไม่ช่วยอะไร ง่ายมาก

แล้วเสร็จ เรื่องนี้ไม่น่ารังเกียจเท่า GWX ที่ Microsoft ดึงให้ผู้ใช้ แต่ใกล้เคียง แล้วเราจะไม่รู้จริง ๆ ว่า binary blob นี้อาจทำอะไรในวันหนึ่ง และเราไม่มีการควบคุมมัน อาจเป็นความกังวลจริง แต่หากคุณต้อง ลบไฟล์แล้วปัญหาแก้ไข เหตุผลที่ผมเขียนบทความนี้ เพื่อให้คุณมีตัวเลือกตัดสินใจว่าอะไรดีที่สุดสำหรับคุณ โอ้ และ Google ดึงส่วนขยายออกจาก Chromium builds แล้ว จึงไม่มีความกังวลแล้ว จนกว่าครั้งหน้า

ขอบคุณครับ