Signal แอพแชทเข้ารหัสได้อัพเดตฟีเจอร์ใหม่สำหรับ iOS และ Android โดยมีรายการปรับปรุงดังนี้
สำหรับ Android อัพเดตเป็นเวอร์ชัน 4.13.6 โดยมีอีโมจิใหม่ 56 แบบ รองรับ Unicode 10.0 และ Emoji 5.0, แถบค้นหาเข้าถึงได้ง่ายขึ้น และตอบรับสายเรียกเข้าได้โดยการปัดขึ้นหรือลง
ส่วนบน iOS นั้นเป็นเวอร์ชัน 2.19.2 โดยมีฟีเจอร์ใหม่ดังนี้
- รองรับหน้าจอ iPhone X
- ปรับปรุงเลย์เอาท์โค้ด เพื่อเพิ่มประสิทธิภาพและความยืดหยุ่น ผู้ใช้จะสังเกตได้ถึงความราบรื่นของทุกสิ่งในแอพ
- ข้อมูลแชทเก่า ๆ สามารถเลื่อนขึ้นไปดูได้ โดยจะปรากฏอัตโนมัติ โดยไม่ต้องกดปุ่ม Load Earlier Messages อีกแล้ว
- ประมวลผลข้อความไวขึ้น และใช้เครือข่ายได้อย่างมีประสิทธิภาพมากยิ่งขึ้น
- Jumbomoji แสดงอีโมจิแบบใหม่ที่มีขนาดใหญ่ขึ้นในข้อความที่มีแต่อีโมจิ
- ระบบรายงานการส่งข้อความล้มเหลวแสดงให้ผู้ใช้เห็นชัดเจนยิ่งขึ้น และส่งซ้ำได้ง่ายขึ้น
- เพิ่มปุ่ม Tap For More สำหรับข้อความขนาดยาวมาก ๆ
- การส่งไฟล์, ภาพ และ GIF ปรับปรุงใหม่ ไฟล์แนบจะแสดงพรีวิวบน message bar แทนที่จะมีหน้าจอยืนยันการส่งอีกครั้ง เพื่อให้ส่งไฟล์ได้เร็วขึ้น
- ผู้ใช้ที่มีคีย์บอร์ดแยกสามารถใช้คีย์ลัด Shift+Return หรือ Command+Return ในการขึ้นไปข้างบนหรือแทนการกดปุ่มส่งตามลำดับ
- เพิ่มภาษาที่รองรับ คือ Burmese, Hebrew และ Persian
ถัดไปคือ Signal Beta สำหรับ iOS ทางผู้พัฒนาจะเริ่มทดสอบการค้นหาไฟล์ GIF ภายในแอพ Signal ซึ่งทางผู้พัฒนาได้อธิบายถึงวิธีการปกป้องความเป็นส่วนตัวของผู้ใช้ด้วย เนื่องจากบริการค้นหาไฟล์ GIF อย่างเช่น GIPHY จะให้ส่งสตริงไปหาโดยตรง แต่ Signal จะใช้ proxy เพื่อป้องกันอีกชั้น โดยมีกระบวนการดังนี้
- แอพ Signal เปิดการเชื่อมต่อ TCP กับบริการ Signal
- บริการ Signal เปิดการเชื่อมต่อ TCP กับ GIPHY HTTPS API endpoint และถ่ายโอนข้อมูลระหว่างแอพและ GIPHY
- แอพ Signal จะใช้ระบบ TLS ผ่านการเชื่อมต่อ TCP แบบ proxy ในทุก ๆ ช่องทางที่เชื่อมต่อไปยัง GIPHY HTTPS API endpoint
จะเห็นได้ว่า การเชื่อมต่อนั้นผ่าน TLS ในทุกช่องทางที่เข้าสู่ GIPHY ดังนั้นบริการ Signal จะไม่เห็นข้อมูลว่ามีการรับส่งอะไรบ้าง และการเชื่อมต่อ TCP นั้นถูก proxy ผ่านระบบของ Signal เอง ดังนั้น GIPHY ก็จะไม่ทราบว่าใครเป็นคนเรียกข้อมูล (หรือว่าง่าย ๆ คือ Signal จะทำตัวเป็นเหมือน VPN สำหรับทราฟฟิกที่ส่งไปยัง GIPHY นั่นเอง)
แต่ยังไม่จบแค่นั้น Signal กล่าวว่าหากเซิร์ฟเวอร์ที่ให้บริการเกิดปัญหาอย่างเช่นมีผู้บุกรุก ข้อมูลที่ส่งผ่านเซิร์ฟเวอร์ก็จะสามารถวัดได้ว่าข้อมูลมีขนาดเท่าไร ดังนั้น Signal จะใช้วิธีการ padding ด้วยค่าสุ่มเข้าไปอีกชั้นที่ตัว ซึ่งจะทำให้ขนาดข้อมูลที่เห็นโดย Signal ก็จะไม่ใช่ขนาดจริง ด้วยมาตรฐาน RFC 7233 ที่อนุญาตให้ไคลเอนท์สามารถระบุว่าส่วนไหนของไฟล์ที่ต้องการรับจากเซิร์ฟเวอร์ระยะไกล โดยจะใส่เฮดเดอร์ Range เข้าไปใน request และเซิร์ฟเวอร์จะส่งส่วนของคอนเทนต์ตามขนาดไบต์มาให้
ยกตัวอย่างเช่น ไฟล์ขนาด 13 ไบต์ เลือกขนาดบล็อกมา เช่น 6 ไบต์ต่อบล็อก ซึ่งจะทำให้เหลือ 1 ไบต์ในบล็อกสุดท้าย ในส่วนบล็อกสุดท้ายนี้จะใช้วิธีให้บล็อกสุดท้ายเป็นคอนเทนต์จริงเฉพาะไบต์สุดท้าย ส่วนที่เหลือ 5 ไบต์แรกจะเป็น padding ดังนั้นเมื่อผู้ใช้ request ทั้งหมด 3 บล็อก สองบล็อกแรกจะเป็นข้อมูลเต็ม ส่วนบล็อกสุดท้ายก็จะทิ้ง 5 ไบต์ซึ่งเป็น padding ออกไปคงเหลือเฉพาะข้อมูลจริง 1 ไบต์เท่านั้น มาประกอบกันเป็นข้อมูลจริง
รายละเอียดฉบับเต็มและวิธีการทดสอบอ่านได้จาก Signal
ที่มา - Signal, App Store, Google Play
Signal
hisoft Sun, 12/03/2017 - 12:26
แต่หัวข่าวมีแค่ iOS?
ตาม update note นั้น Android
nutmos Sun, 12/03/2017 - 15:05
In reply to Signal by hisoft
ตาม update note นั้น Android ไม่ได้มีการเปลี่ยนแปลงอะไรขนาดนั้นครับ (เน้นเพิ่มฟีเจอร์เล็ก ๆ น้อย ๆ และไม่ได้กล่าวถึงเรื่องการปรับปรุงประสิทธิภาพ) ในขณะที่ iOS เน้นที่การปรับปรุงประสิทธิภาพ แล้วก็ไม่อยากจะเขียนแยกไปคนละข่าว เลยใช้หัวข้อแบบนี้ครับ