เชื่อมต่อ VPN ของ Windows ใหม่โดยไม่ใส่รหัสผ่านในงาน
งาน rasdial ทำงานจนกว่าคุณจะอ่านอาร์กิวเมนต์ของมัน เปรียบเทียบสามดีไซน์ที่หลีกเลี่ยงความลับในข้อความธรรมดา และเลือกตามการรองรับของเซิร์ฟเวอร์และโหมดล็อกออน
ทุกสูตรการเชื่อมต่อใหม่อัตโนมัติย่อมมาถึงคำถามเดียวกันในที่สุด: รหัสผ่านอยู่ที่ไหน คำตอบยอดนิยมคือการกระทำของงานเอง ซึ่งเป็นที่ที่แย่ที่สุดสำหรับมันด้วย มีอีกสองดีไซน์ สิ่งที่เหมาะสมขึ้นอยู่กับว่าเครื่องสามารถพิสูจน์ตัวตนได้โดยไม่มีคนหรือไม่ และเซิร์ฟเวอร์ยอมรับใบรับรองหรือไม่
สิ่งที่การกระทำของงานทิ้งไว้ให้อ่านได้
อาร์กิวเมนต์ในงานที่ตั้งเวลาไว้เป็นส่วนหนึ่งของคำจำกัดความ ไม่ใช่ค่าที่ซ่อนไว้ขณะรัน ใครก็ตามที่อ่านงานได้ กู้คืนสำรองของงาน หรือส่งออก XML ของงานจะเห็นสตริงตรงตามที่คุณพิมพ์ ขณะรันสตริงเดียวกันจะปรากฏในรายการโปรเซส เอเจนต์ตรวจสอบอาจคัดลอกไปยังบันทึกที่คุณไม่เคยตรวจ
schtasks /query /tn "VPN Reconnect" /xml
cmdkey /list
ตรวจสอบก่อนที่จะสันนิษฐานตรงกันข้าม คำสั่งแรกพิมพ์คำจำกัดความทั้งหมด รวมถึงการกระทำและอาร์กิวเมนต์ คำสั่งที่สองแสดงว่าบัญชีปัจจุบันแคชข้อมูลรับรองใดไว้ ซึ่งสำคัญสำหรับดีไซน์ทางเลือกด้านล่าง หากรหัสผ่านปรากฏใน XML ของงาน การหมุนรหัสเป็นเพียงครึ่งเดียวของการซ่อม เพราะงานยังคงเก็บค่าเก่าไว้
คีย์ที่แชร์ล่วงหน้าและจัดเก็บไว้ให้อะไรจริง
Add-VpnConnection -L2tpPsk เขียนคีย์ลงในรายการสมุดโทรศัพท์ของการเชื่อมต่อแทนที่จะเขียนลงในงาน นั่นเป็นพื้นผิวการเปิดเผยที่เล็กกว่าการกระทำของงาน มันยังคงเป็นความลับที่กู้คืนได้ เพราะผู้ดูแลระบบบนเครื่องสามารถอ่านสมุดโทรศัพท์ได้
สำหรับลิงก์ห้องปฏิบัติการระหว่างสองเครื่องที่คุณควบคุม การแลกเปลี่ยนนั้นอาจยอมรับได้ สำหรับข้อมูลรับรองผู้ใช้บนปลายทางที่ใช้ร่วมกันไม่ใช่ การเรียกมันว่าที่เก็บแบบเข้ารหัสไม่เปลี่ยนว่าใครอ่านได้ สมุดโทรศัพท์เป็นไฟล์กำหนดค่า วางแผนสำหรับคนที่เปิดมันได้ ไม่ใช่แค่คนที่ล็อกออนเป็นผู้ใช้ได้
ข้อมูลรับรอง Winlogon ลบความลับและเพิ่มการพึ่งพา
-UseWinlogonCredential เลือกเส้นทางอื่น การเชื่อมต่อพิสูจน์ตัวตนด้วย MSCHAPv2 เทียบกับข้อมูลรับรองของผู้ใช้ที่ล็อกออนอยู่ ไม่มีอะไรถูกจัดเก็บเพิ่มเติมสำหรับบัญชีนั้น
การพึ่งพาที่เพิ่มเข้ามามีนัยสำคัญ ต้องมีการล็อกออนแบบโต้ตอบให้ยืมใช้ ซึ่งตัดบัญชีบริการและงานก่อนล็อกออนออก การเชื่อมต่อยังสืบทอดทุกสิ่งที่ข้อมูลรับรองของผู้ใช้รายนั้นเข้าถึงได้บนเซิร์ฟเวอร์ อ่านสวิตช์เป็นข้อความเกี่ยวกับแหล่งที่มาของข้อมูลรับรอง ไม่ใช่การตั้งค่าความปลอดภัย มันเปลี่ยนแหล่งที่มา และไม่มีอะไรเกี่ยวกับวิธีที่เซิร์ฟเวอร์อนุญาตเซสชันหลังจากนั้น
การพิสูจน์ตัวตนด้วยใบรับรองขยายได้เพราะไม่มีอะไรถูกจัดเก็บ
ที่ซึ่งเซิร์ฟเวอร์รองรับ EAP-TLS ใบรับรองเครื่องจะลบความลับที่แชร์ทั้งหมด และการเพิกถอนเกิดขึ้นที่ชั้นใบรับรอง งานที่รันเป็น SYSTEM สามารถนำเสนอใบรับรองนั้นได้โดยไม่ต้องล็อกออนแบบโต้ตอบ ยืนยันว่าเซิร์ฟเวอร์ยอมรับการพิสูจน์ตัวตนด้วยใบรับรองก่อนสร้างบนมัน ดีไซน์ที่พึ่งพาวิธีที่ไม่รองรับเป็นแผนมากกว่าวิธีแก้ไข จากนั้นตัดสินใจว่าคีย์ส่วนตัวอยู่ที่ไหน: ที่เก็บของเครื่องสำหรับตัวตนอุปกรณ์ ที่เก็บของผู้ใช้สำหรับบุคคล
ที่ซึ่งหลีกเลี่ยงชื่อผู้ใช้และรหัสผ่านไม่ได้ ให้เก็บไว้ใน Credential Manager โดยจำกัดขอบเขตที่บัญชีของงานเอง ให้ไคลเอนต์อ่านจากที่นั่นแทนอาร์กิวเมนต์ ความลับที่งานดึงได้โดยไม่พิมพ์มันเป็นปัญหาที่เล็กกว่าความลับที่เขียนไว้ในคำจำกัดความ
ตรวจสอบอาร์ติแฟกต์ก่อนการหมุนครั้งถัดไป
ดูสิ่งที่ถูกจัดเก็บ ไม่ใช่สิ่งที่คุณตั้งใจ ตรวจสอบสมุดโทรศัพท์ต่อผู้ใช้ สำเนาสำหรับผู้ใช้ทั้งหมด XML ของงาน และสคริปต์ใดก็ตามที่เรียกคำสั่งหมุนหมายเลข จากนั้นยืนยันว่าใบรับรองหรือข้อมูลรับรองที่แคชไว้ถูกจำกัดที่บัญชีที่งานใช้ เพราะข้อมูลรับรองที่จัดเก็บไว้สำหรับบัญชีแบบโต้ตอบของคุณมองไม่เห็นต่อ SYSTEM
บันทึกวิธีการพิสูจน์ตัวตนและบัญชีไว้ในบันทึกของงานเอง คนถัดไปที่จะเปลี่ยนนโยบายของเซิร์ฟเวอร์ต้องรู้ว่าดีไซน์ใดกำลังถูกใช้ คำตอบนั้นไม่สามารถเห็นได้จากพฤติกรรมการเชื่อมต่อใหม่เพียงอย่างเดียว เขียนไว้ที่ที่การหมุนครั้งถัดไปจะดูเป็นอันดับแรก