OAuth: การอนุญาตอย่างปลอดภัยโดยไม่ต้องแชร์รหัสผ่านของคุณ
คุณเคยเห็นสิ่งนี้มาแล้วนับครั้งไม่ถ้วน: "Sign in with Google," "Continue with Facebook," หรือ "Log in with Apple" การคลิกปุ่มที่ดูเรียบง่ายเหล่านั้นคือ OAuth ที่กำลังทำงานอยู่ แต่จริงๆ แล้วเกิดอะไรขึ้นเบื้องหลัง และทำไมสิ่งนี้จึงสำคัญต่อความเป็นส่วนตัวและความปลอดภัยของคุณ?
OAuth คืออะไร
OAuth ย่อมาจาก Open Authorization เป็นโปรโตคอลมาตรฐานแบบเปิด ซึ่งหมายความว่าทุกคนสามารถนำไปใช้งานได้ โดยจัดการเรื่อง การอนุญาต (authorization — สิ่งที่คุณได้รับอนุญาตให้ทำ) มากกว่า การพิสูจน์ตัวตน (authentication — การยืนยันว่าคุณเป็นใคร) เวอร์ชันปัจจุบันคือ OAuth 2.0 ซึ่งถูกใช้งานโดยแทบทุกแพลตฟอร์มสำคัญบนอินเทอร์เน็ต
พูดให้เข้าใจง่าย OAuth ช่วยให้คุณมอบสิทธิ์ให้แอปพลิเคชันหนึ่งเข้าถึงข้อมูลหรือฟีเจอร์เฉพาะในอีกแอปพลิเคชันหนึ่ง โดยไม่ต้องส่งมอบรหัสผ่านของคุณเลย คุณยังคงควบคุมสิ่งที่แชร์ออกไปได้ และแอปบุคคลที่สามจะไม่มีวันเห็นข้อมูลรับรองของคุณ
OAuth ทำงานอย่างไร
นี่คือภาพรวมแบบย่อของสิ่งที่เกิดขึ้นเมื่อคุณคลิก "Sign in with Google" บนแอปบุคคลที่สาม:
- คุณขอเข้าถึง คุณคลิกปุ่มล็อกอิน และแอปจะพาคุณไปยังหน้าล็อกอินของ Google
- คุณพิสูจน์ตัวตนโดยตรง คุณกรอกข้อมูลรับรอง Google บนเซิร์ฟเวอร์ของ Google เอง โดยที่แอปบุคคลที่สามไม่เห็นอะไรเลย
- คุณให้การอนุญาต Google ถามว่าคุณต้องการให้แอปเข้าถึงข้อมูลเฉพาะ (เช่น ชื่อและอีเมลของคุณ) หรือไม่ คุณยืนยัน
- มีการออก Token Google ส่ง access token ที่มีอายุการใช้งานสั้นให้แก่แอป ซึ่งเป็นสตริงอักขระที่ทำหน้าที่เหมือนกุญแจชั่วคราว Token นี้มีขอบเขต (scope) ที่กำหนดไว้ว่าสามารถเข้าถึงอะไรได้บ้าง และมีเวลาหมดอายุ
- แอปใช้ Token แอปแสดง Token นี้เมื่อต้องการดึงข้อมูลของคุณ โดยไม่จำเป็นต้องใช้รหัสผ่านจริงของคุณเลย
หากคุณเพิกถอนการเข้าถึงในภายหลัง Token นั้นจะใช้ไม่ได้ทันที แอปบุคคลที่สามจะสูญเสียสิทธิ์ทั้งหมดทันที โดยไม่จำเป็นต้องเปลี่ยนรหัสผ่าน
ทำไม OAuth จึงสำคัญต่อความปลอดภัย
ประโยชน์ด้านความปลอดภัยหลักของ OAuth คือ การแยกข้อมูลรับรอง หากแอปบุคคลที่สามเกิดการละเมิดข้อมูล ผู้โจมตีจะได้รับเพียง access token ที่หมดอายุแล้วในกรณีเลวร้ายที่สุด ไม่ใช่รหัสผ่าน Google หรือ Apple จริงของคุณ บัญชีหลักของคุณยังคงได้รับการปกป้อง
OAuth ยังจำกัด ขอบเขต ด้วย แอปอาจขอสิทธิ์เพียงแค่อ่านที่อยู่อีเมลของคุณ ไม่ใช่ส่งอีเมลในนามของคุณ รูปแบบการอนุญาตที่ละเอียดแบบนั้นถือเป็นชั้นการป้องกันที่มีความหมาย เมื่อเทียบกับการมอบสิทธิ์เข้าถึงบัญชีทั้งหมด
OAuth และผู้ใช้ VPN
หากคุณใช้ VPN OAuth จะเกี่ยวข้องกับความเป็นส่วนตัวของคุณในหลายแง่มุมสำคัญ
ความเสี่ยงจากการดักจับ Token บนเครือข่ายที่ไม่ปลอดภัย ผู้โจมตีอาจพยายามโจมตีแบบ man-in-the-middle เพื่อดักจับ OAuth token ระหว่างกระบวนการ redirect VPN เข้ารหัสการรับส่งข้อมูลของคุณ ช่วยลดความเสี่ยงนี้ได้อย่างมีนัยสำคัญ โดยเฉพาะบน Wi-Fi สาธารณะตามสนามบิน โรงแรม หรือร้านกาแฟ
OAuth บน HTTPS OAuth 2.0 ต้องใช้ HTTPS เพื่อให้ทำงานได้อย่างปลอดภัย VPN เพิ่มชั้นการเข้ารหัสเพิ่มเติม แต่ไม่ใช่ตัวแทนของ HTTPS การใช้ทั้งสองอย่างร่วมกันให้การป้องกันที่แข็งแกร่งกว่า
ความเป็นส่วนตัวในการเชื่อมโยงบัญชี เมื่อคุณใช้ "Sign in with Google" หรือระบบที่คล้ายกัน Google จะรู้ว่าคุณกำลังเข้าถึงบริการใดและเมื่อใด VPN ซ่อน IP address ของคุณในระหว่างกระบวนการนี้ แต่ผู้ให้บริการ identity (Google, Apple ฯลฯ) ยังคงบันทึกเหตุการณ์การอนุญาตนั้น ผู้ใช้ที่มีข้อกำหนดด้านความเป็นส่วนตัวเข้มงวดควรพิจารณาถึงการแลกเปลี่ยนนี้
สภาพแวดล้อม VPN ขององค์กร ธุรกิจจำนวนมากผสมผสานการเข้าถึง VPN เข้ากับระบบ Single Sign-On (SSO) ที่ใช้ OAuth พนักงานพิสูจน์ตัวตนครั้งเดียวผ่านผู้ให้บริการ identity มักใช้ OAuth หรือโปรโตคอล OpenID Connect ที่เกี่ยวข้อง และได้รับสิทธิ์เข้าถึงทรัพยากรภายในที่ได้รับการปกป้องโดย VPN
กรณีการใช้งานจริง
- การเชื่อมต่อแอป: อนุญาตให้เครื่องมือจัดการโปรเจกต์โพสต์อัปเดตไปยัง Slack workspace ของคุณ
- การล็อกอินด้วยโซเชียล: ล็อกอิน Spotify โดยใช้บัญชี Facebook ของคุณ
- การเข้าถึง API: ให้สิทธิ์แอปจัดการงบประมาณอ่านธุรกรรมธนาคารของคุณแบบอ่านอย่างเดียว
- เครื่องมือนักพัฒนา: อนุญาตให้บริการ deploy โค้ดพุชอัปเดตไปยัง GitHub repositories ของคุณ
OAuth กับรหัสผ่าน: ภาพรวมที่กว้างขึ้น
OAuth ไม่ได้แทนที่รหัสผ่าน แต่ช่วยลดความถี่ที่คุณต้องใช้รหัสผ่านกับบริการบุคคลที่สาม เมื่อรวมกับรหัสผ่านที่แข็งแกร่ง การยืนยันตัวตนสองปัจจัย และ VPN ที่เชื่อถือได้ OAuth คือส่วนหนึ่งของแนวทางความปลอดภัยแบบหลายชั้นที่ช่วยลดพื้นที่การโจมตีของคุณบนโลกออนไลน์ได้อย่างมีนัยสำคัญ