อ่าน 3 นาที
API การปกป้องข้อมูล
อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันการป้องกันข้อมูล ( DPAPI ) เป็นอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเค ชันการเข้ารหัสแบบง่าย ที่มีให้เป็นส่วนประกอบในตัวในระบบปฏิบัติการWindows...
API การปกป้องข้อมูล
อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันการป้องกันข้อมูล ( DPAPI ) เป็นอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเค ชันการเข้ารหัสแบบง่าย ที่มีให้เป็นส่วนประกอบในตัวในระบบปฏิบัติการWindows 2000และเวอร์ชันต่อมาของMicrosoft Windowsในทางทฤษฎี Data Protection API สามารถเปิดใช้งานการเข้ารหัสแบบสมมาตรของข้อมูลทุกประเภท ในทางปฏิบัติ การใช้งานหลักในระบบปฏิบัติการ Windows คือการเข้ารหัสแบบสมมาตรของคีย์ส่วนตัวแบบอสมมาตร โดยใช้ความลับของผู้ใช้หรือระบบเป็นส่วนประกอบสำคัญของเอนโทรปี การวิเคราะห์โดยละเอียดเกี่ยวกับการทำงานภายในของ DPAPI ได้รับการตีพิมพ์ในปี 2011 โดยBursztein et al. [ 1 ]
สำหรับระบบเข้ารหัส เกือบทั้งหมด หนึ่งในความท้าทายที่ยากที่สุดคือ " การจัดการคีย์ " – โดยเฉพาะอย่างยิ่งวิธีการจัดเก็บคีย์ถอดรหัสอย่างปลอดภัย หากคีย์ถูกจัดเก็บในรูปแบบข้อความธรรมดาผู้ใช้ทุกคนที่สามารถเข้าถึงคีย์ได้ก็จะสามารถเข้าถึงข้อมูลที่เข้ารหัสได้ หากต้องการเข้ารหัสคีย์ ก็จำเป็นต้องใช้คีย์อื่น และเป็นเช่นนี้เรื่อยไป DPAPI อนุญาตให้นักพัฒนาเข้ารหัสคีย์โดยใช้คีย์สมมาตรที่ได้มาจากรหัสลับการเข้าสู่ระบบของผู้ใช้ หรือในกรณีของการเข้ารหัสระบบ โดยใช้รหัสลับการตรวจสอบสิทธิ์โดเมนของระบบ
คีย์ DPAPI ที่ใช้ในการเข้ารหัส คีย์ RSA ของผู้ใช้ จะถูกจัดเก็บไว้ใน%APPDATA%\Microsoft\Protect\{SID}ไดเร็กทอรีที่ {SID} คือตัวระบุความปลอดภัยของผู้ใช้นั้น คีย์ DPAPI จะถูกจัดเก็บไว้ในไฟล์เดียวกันกับคีย์หลักที่ใช้ปกป้องคีย์ส่วนตัวของผู้ใช้ โดยปกติจะมีขนาด 64 ไบต์ เป็นข้อมูลสุ่ม
คุณสมบัติด้านความปลอดภัย
DPAPI ไม่ได้จัดเก็บข้อมูลถาวรใดๆ ไว้กับตัวเอง แต่จะรับข้อความธรรมดาและส่งคืนข้อความที่เข้ารหัส แล้ว (หรือในทางกลับกัน)
การรักษาความปลอดภัยของ DPAPI อาศัยความสามารถของระบบปฏิบัติการ Windows ในการปกป้องคีย์หลักและ คีย์ส่วนตัว RSAจากการถูกบุกรุก ซึ่งในสถานการณ์การโจมตีส่วนใหญ่นั้นขึ้นอยู่กับความปลอดภัยของข้อมูลประจำตัวของผู้ใช้ปลายทางเป็นอย่างมาก คีย์การเข้ารหัส/ถอดรหัสหลักจะถูกสร้างขึ้นจากรหัสผ่านของผู้ใช้โดยฟังก์ชันPBKDF2 [ 2 ]วัตถุไบนารีขนาดใหญ่ที่มีข้อมูลเฉพาะสามารถเข้ารหัสได้ในลักษณะที่ เพิ่ม เกลือและ/หรือต้องใช้รหัสผ่านที่ผู้ใช้ป้อนจากภายนอก (หรือที่เรียกว่า "การป้องกันคีย์ที่แข็งแกร่ง") การใช้เกลือเป็นตัวเลือกต่อการใช้งาน – กล่าวคืออยู่ภายใต้การควบคุมของนักพัฒนาแอปพลิเคชัน – และผู้ใช้ปลายทางหรือผู้ดูแลระบบไม่สามารถควบคุมได้
สามารถมอบสิทธิ์การเข้าถึงให้กับคีย์ต่างๆ ได้โดยใช้COM+ object ซึ่งจะช่วยให้เว็บเซิร์ฟเวอร์IIS สามารถใช้ DPAPI ได้
คีย์สำรองข้อมูล Active Directory
เมื่อคอมพิวเตอร์เป็นสมาชิกของโดเมน DPAPI จะมีกลไกสำรองข้อมูลเพื่ออนุญาตให้ยกเลิกการป้องกันข้อมูลในกรณีที่ผู้ใช้ลืมรหัสผ่าน ซึ่งเรียกว่า "Credential Roaming" เมื่อติดตั้งโดเมนใหม่บนตัวควบคุมโดเมน จะมีการสร้างคู่คีย์สาธารณะและคีย์ส่วนตัวขึ้นมา ซึ่งเชื่อมโยงกับ DPAPI เมื่อมีการสร้างมาสเตอร์คีย์บนเวิร์กสเตชันไคลเอ็นต์ ไคลเอ็นต์จะสื่อสารผ่านการ เรียก RPC ที่ได้รับการตรวจสอบสิทธิ์ กับตัวควบคุมโดเมนเพื่อดึงสำเนาคีย์สาธารณะของโดเมน ไคลเอ็นต์จะเข้ารหัสมาสเตอร์คีย์ด้วยคีย์สาธารณะของตัวควบคุมโดเมน สุดท้าย ไคลเอ็นต์จะจัดเก็บมาสเตอร์คีย์สำรองใหม่นี้ไว้ในไดเร็กทอรี AppData เช่นเดียวกับการจัดเก็บมาสเตอร์คีย์แบบดั้งเดิม
การใช้งาน DPAPI โดยซอฟต์แวร์ของ Microsoft
แม้ว่าจะไม่ได้นำมาใช้ในผลิตภัณฑ์ของ Microsoft ทุกตัว แต่การใช้ DPAPI ในผลิตภัณฑ์ของ Microsoft ก็เพิ่มขึ้นในแต่ละเวอร์ชันของ Windows อย่างไรก็ตาม แอปพลิเคชันจำนวนมากจาก Microsoft และนักพัฒนาบุคคลที่สามยังคงนิยมใช้วิธีการป้องกันของตนเอง หรือเพิ่งเปลี่ยนมาใช้ DPAPI เมื่อไม่นานมานี้ ตัวอย่างเช่นInternet Explorerเวอร์ชัน 4.0–6.0, Outlook ExpressและMSN Explorerใช้ API Protected Storage (PStore) รุ่นเก่าในการจัดเก็บข้อมูลประจำตัวที่บันทึกไว้ เช่น รหัสผ่าน เป็นต้น ปัจจุบัน Internet Explorer 7ปกป้องข้อมูลประจำตัวผู้ใช้ที่บันทึกไว้โดยใช้ DPAPI [ 3 ]
- รหัสผ่านรูปภาพ, PIN และลายนิ้วมือในWindows 8
- การเข้ารหัสระบบไฟล์ใน Windows 2000 และเวอร์ชันที่ใหม่กว่า
- การเข้ารหัสคีย์หลักของบริการการเข้ารหัสข้อมูลแบบโปร่งใส (TDE) ของ SQL Server [ 4 ]
- Internet Explorer 7ทั้งในรูปแบบเวอร์ชันแบบติดตั้งแยกต่างหากสำหรับWindows XPและในรูปแบบที่ติดตั้งมาพร้อมกับWindows VistaและWindows Server 2008
- ไมโครซอฟต์ เอดจ์
- Windows MailและWindows Live Mail
- แนวโน้มสำหรับS/MIME
- บริการข้อมูลอินเทอร์เน็ตสำหรับSSL/TLS
- ไคลเอ็นต์ Windows Rights Management Servicesเวอร์ชัน 1.1 และเวอร์ชันที่ใหม่กว่า
- Windows 2000และเวอร์ชันที่ใหม่กว่า สำหรับEAP/TLS ( การตรวจสอบสิทธิ์ VPN ) และ 802.1x ( การตรวจสอบสิทธิ์ WiFi )
- Windows XP และเวอร์ชันที่ใหม่กว่าสำหรับการจัดเก็บชื่อผู้ใช้และรหัสผ่าน[ 5 ] (หรือที่เรียกว่า Credential Manager)
- .NET Framework 2.0และเวอร์ชันที่ใหม่กว่าสำหรับ System.Security.Cryptography.ProtectedData [ 6 ]
- การตรวจสอบสิทธิ์ Microsoft.Owin (Katana) เป็นค่าเริ่มต้นเมื่อโฮสต์ด้วยตนเอง (รวมถึงการตรวจสอบสิทธิ์คุกกี้และ โทเค็น OAuth ) [ 7 ] [ 8 ]
ลิงก์ภายนอก
- "Le fonctionnement de DPAPI สำหรับ Processus Thief" (ในภาษาฝรั่งเศส) 20-10-2022. เก็บถาวรจากต้นฉบับเมื่อ 2022-10-20
- เอกสารไวท์เปเปอร์เกี่ยวกับ Windows Data Protection API (DPAPI) โดย NAI Labs
- การเข้ารหัสข้อมูลด้วย DPAPI เก็บถาวรเมื่อวันที่ 18 มีนาคม 2008 ที่Wayback Machine
- วิธีใช้งาน DPAPI (User Store) จาก ASP.NET 1.1 ร่วมกับ Enterprise Services
- System.Security.Cryptography.ProtectedData ใน .NET Framework 2.0 และเวอร์ชันที่ใหม่กว่า
- การอภิปรายเกี่ยวกับการใช้โปรโตคอล MS BackupKey Remote Protocol โดย DPAPI เพื่อปกป้องข้อมูลลับของผู้ใช้
- Windows Store
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ API การปกป้องข้อมูล
อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันการป้องกันข้อมูล ( DPAPI ) เป็นอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเค ชันการเข้ารหัสแบบง่าย ที่มีให้เป็นส่วนประกอบในตัวในระบบปฏิบัติการWindows...
คุณสมบัติด้านความปลอดภัย
DPAPI ไม่ได้จัดเก็บข้อมูลถาวรใดๆ ไว้กับตัวเอง แต่จะรับ ข้อความธรรมดา และส่งคืน ข้อความที่เข้ารหัส แล้ว (หรือในทางกลับกัน)
คีย์สำรองข้อมูล Active Directory
เมื่อคอมพิวเตอร์เป็นสมาชิกของโดเมน DPAPI จะมีกลไกสำรองข้อมูลเพื่ออนุญาตให้ยกเลิกการป้องกันข้อมูลในกรณีที่ผู้ใช้ลืมรหัสผ่าน ซึ่งเรียกว่า "Credential Roaming" เมื่อติดตั้งโดเมนใหม่บนตัวควบคุมโดเมน จะมีการสร้างคู่คีย์สาธารณะและคีย์ส่วนตัวขึ้นมา ซึ่งเชื่อมโยงกับ...
การใช้งาน DPAPI โดยซอฟต์แวร์ของ Microsoft
แม้ว่าจะไม่ได้นำมาใช้ในผลิตภัณฑ์ของ Microsoft ทุกตัว แต่การใช้ DPAPI ในผลิตภัณฑ์ของ Microsoft ก็เพิ่มขึ้นในแต่ละเวอร์ชันของ Windows อย่างไรก็ตาม แอปพลิเคชันจำนวนมากจาก Microsoft และนักพัฒนาบุคคลที่สามยังคงนิยมใช้วิธีการป้องกันของตนเอง หรือเพิ่งเปลี่ยนมาใช้...