PuTTY CAC เป็นทางแยกของ PuTTY ซึ่งเป็นเทอร์มินัล Secure Shell (SSH) ยอดนิยม PuTTY CAC เพิ่มความสามารถในการใช้ไลบรารี Windows Certificate API (CAPI), ไลบรารี Public Key Cryptography Standards (PKCS) หรือคีย์ Fast Identity Online (FIDO) เพื่อดำเนินการตรวจสอบสิทธิ์คีย์สาธารณะ SSH โดยใช้คีย์ส่วนตัวที่เกี่ยวข้องกับใบรับรองที่จัดเก็บไว้ใน โทเค็นฮาร์ดแวร์
PuTTY CAC สามารถใช้ได้กับโทเค็นการเข้ารหัสหลายประเภท เช่น Yubikeys และสมาร์ทการ์ดรุ่นยอดนิยม 'CAC' ใน 'PuTTY CAC' หมายถึง Common Access Card ซึ่งเป็นโทเค็นสมาร์ทการ์ดที่ใช้สำหรับสิ่งอำนวยความสะดวกของรัฐบาลสหรัฐฯ ซึ่งเป็นหนึ่งในแรงผลักดันเบื้องต้นสำหรับการพัฒนา PuTTY CAC
PuTTY CAC ได้รับการดูแลอย่างเป็นอิสระจากรัฐบาลสหรัฐฯ โดยชุมชนโอเพ่นซอร์ส
คุณสามารถดาวน์โหลด PuTTY CAC รุ่นล่าสุดได้ที่นี่: https://github.com/NoMoreFood/putty-cac/releases
ซอร์สโค้ดและไบนารีของ PuTTY CAC ใช้งานได้ฟรีเพื่อวัตถุประสงค์ใดๆ สามารถดูใบอนุญาตได้ที่นี่: https://github.com/NoMoreFood/putty-cac/blob/master/code/LICENCE
คุณสามารถดูชุดคำแนะนำพื้นฐานเกี่ยวกับการใช้งานเว็บไซต์การจัดการ ID ของรัฐบาลสหรัฐอเมริกาได้ในส่วน 'SSH การใช้ PuTTY-CAC':
https://playbooks.idmanagement.gov/piv/engineer/ssh/
PuTTY CAC รองรับตัวเลือกบรรทัดคำสั่งเดียวกันกับ PuTTY พร้อมด้วยตัวเลือกพิเศษเพิ่มเติมบางอย่างสำหรับ PuTTY CAC โดยเฉพาะ
แทนที่เส้นทางไฟล์คีย์ PuTTY สำหรับยูทิลิตี้ PuTTY คุณสามารถระบุรหัสประจำตัวของใบรับรองหรือตัวระบุแอปพลิเคชันได้ ตัวอย่างเช่น:
putty.exe user@host -i CAPI:716B8B58D8F2C3A7F98F3F645161B1BF9818B689
putty.exe user@host -i PKCS:B8B58D8F2C3A7F98F3F645161B1BF9818B689716=C:PKCS.dll
putty.exe user@host -i FIDO:ssh:MyFidoKey
โปรแกรม PuTTY (putty.exe, pageant.exe, psftp.exe) รองรับตัวเลือกบรรทัดคำสั่งเพิ่มเติมต่อไปนี้ ตัวเลือกเหล่านี้ส่วนใหญ่จะเน้นไปที่การทำงานของ Pageant และสามารถตั้งค่าได้จากอินเทอร์เฟซผู้ใช้ เมื่อตั้งค่าแล้ว ตัวเลือกเหล่านี้จะนำไปใช้กับการดำเนินการครั้งต่อๆ ไปโดยอัตโนมัติ เว้นแต่จะไม่ได้ตั้งค่าเป็นการเฉพาะ การตั้งค่าที่กรองกล่องโต้ตอบการเลือกใบรับรองการประกวดจะส่งผลต่อกล่องโต้ตอบการเลือกใบรับรองตัวกรองในแอปพลิเคชัน PuTTY มาตรฐาน:
-autoload
, -autoloadoff
-savecertlist
, -savecertlistoff
-forcepincache
, -forcepincacheoff
-certauthprompting
, -certauthpromptingoff
-trustedcertsonly
, -trustedcertsonlyoff
-ignoreexpiredcerts
, -ignoreexpiredcertsoff
-allowanycert
, -allowanycertoff
สำหรับวัตถุประสงค์ของ PuTTY CAC ใบรับรองเป็นเพียงวิธีที่สะดวกในการอ้างอิงคู่คีย์ส่วนตัว/สาธารณะ หากคุณต้องการใช้ PuTTY CAC เพื่อเข้าสู่ระบบอย่างปลอดภัย และไม่สามารถเข้าถึงผู้ออกใบรับรอง (CA) ใบรับรองสามารถลงนามด้วยตนเองได้ ในทางกลับกัน PuTTY CAC สามารถใช้ร่วมกับเซิร์ฟเวอร์ SSH ที่ได้รับการจัดการเพื่อบังคับใช้การรับรองความถูกต้องแบบหลายปัจจัยได้ ซึ่งสามารถทำได้โดยตรวจสอบให้แน่ใจว่าไฟล์ OpenSSH allowance_keys มีเฉพาะคีย์สาธารณะที่เกี่ยวข้องกับโทเค็นฮาร์ดแวร์ ไม่ว่าจะในขั้นตอนหรือโดยการสร้างดัชนีของใบรับรองที่ออกทั้งหมด แล้วค้นหาผ่านคำสั่ง OpenSSH เช่น AuthorizedKeysCommand
รหัสเฉพาะที่ใช้ในการเชื่อมต่อกับโทเค็นฮาร์ดแวร์ใช้ไลบรารีการเข้ารหัสของ Microsoft ซึ่งจะอยู่ภายใต้การตั้งค่า FIPS ระดับระบบ (ดูเว็บไซต์ของ Microsoft) ในทำนองเดียวกัน โทเค็นฮาร์ดแวร์ที่ใช้สำหรับการลงนามความท้าทายในการรับรองความถูกต้องจะรับประกันว่าจะใช้อัลกอริธึมที่สอดคล้องกับ FIPS หากคีย์ฮาร์ดแวร์ได้รับการรับรอง FIPS ดูเว็บไซต์ผู้ผลิตโทเค็นฮาร์ดแวร์สำหรับข้อมูลเพิ่มเติม PuTTY เองใช้การเข้ารหัสและการแฮชที่เป็นกรรมสิทธิ์เมื่อมีการสร้างเซสชัน SSH ซึ่งยังไม่ผ่านการประเมินการปฏิบัติตามหรือการรับรอง FIPS