ฉันจะเก็บคีย์ ssl สำหรับเว็บไซต์ของเราเป็นความลับได้อย่างไร


12

ฉันต้องการเก็บรหัส SSL ของเราไว้เป็นความลับ มันถูกเก็บไว้ในแท่ง USB 2 อันหนึ่งอันในกล่องนิรภัยและอีกอันหนึ่งที่ฉันปลอดภัย จากนั้นฉันเป็นคนเดียวที่ใช้มันกับเว็บเซิร์ฟเวอร์เพื่อให้มีความปลอดภัยโดยสิ้นเชิง

ยกเว้น...

อย่างน้อยใน IIS คุณสามารถส่งออกคีย์ได้ ดังนั้นใครก็ตามที่เป็นผู้ดูแลระบบสามารถรับสำเนาของคีย์ได้ มีวิธีใดบ้างไหม? ผู้ดูแลระบบทุกคนมีสิทธิ์เข้าถึงคีย์ทั้งหมดได้อย่างสมบูรณ์หรือไม่

ปรับปรุง: ฉันมีระบบดูแลระบบที่ฉันไว้วางใจอย่างเต็มที่ สิ่งที่นำไปสู่สิ่งนี้คือหนึ่งในนั้นออกจากพวกเขา (พวกเขาใช้เวลาเดินทางหนึ่งชั่วโมงถึง บริษัท ของเราใช้เวลาเดินทาง 5 นาทีไปยัง บริษัท ใหม่) ในขณะที่ฉันเชื่อถือบุคคลนี้เช่นเดียวกับที่เราปิดการใช้งานบัญชี Active Directory เมื่อมีคนออกไปฉันคิดว่าเราควรมีวิธีที่จะประกันว่าพวกเขาจะไม่สามารถใช้ SSL ของเราได้

และสิ่งที่ทำให้ฉันรู้สึกว่าง่ายที่สุดคือถ้าฉันเป็นคนเดียวที่มีมัน ใบรับรองของเราจะหมดอายุในเดือนมกราคมดังนั้นนี่เป็นเวลาที่จะเปลี่ยนแนวทางปฏิบัติหากทำได้ จากคำตอบดูเหมือนว่าเราทำไม่ได้

ดังนั้นสิ่งนี้นำไปสู่คำถามใหม่ - เมื่อคนที่เข้าถึงใบรับรองออกมาเป็นมาตรฐานในการรับใบรับรองใหม่และเพิกถอนใบรับรองเดิม หรือถ้าคนที่เหลือเชื่อถือได้เราจะทำต่อไปกับใบรับรองที่เรามีหรือไม่?


5
แม้ว่าเซิร์ฟเวอร์ที่คุณใช้ไม่อนุญาตให้คุณส่งออก แต่ก็ยังต้องอยู่ในหน่วยความจำและสามารถแตกได้ ตัวเลือกเดียวที่ฉันเห็นคือการใช้โมดูล crypto ฮาร์ดแวร์เช่นสมาร์ทการ์ดเป็นสามเดียวเท่านั้นที่มีคีย์ แต่ทุกคนที่มีการเข้าถึงเครื่องสามารถขโมยมันได้ คุณยังสามารถยกเลิกได้หากถูกขโมย
user2313067

27
หากคุณไม่ไว้วางใจผู้ดูแลระบบของคุณคุณมีปัญหาด้านทรัพยากรบุคคล
Michael Hampton

5
ทำไมคุณถึงคัดลอกกุญแจไปยังสื่อ USB เหล่านั้นตั้งแต่แรก? รหัสลับที่ใช้กับ SSL ไม่จำเป็นต้องอยู่ในตำแหน่งอื่นนอกเหนือจากเซิร์ฟเวอร์ที่ใช้ (แน่นอนว่าอาจรวมอยู่ในสำเนาสำรองของเซิร์ฟเวอร์ แต่การสำรองคีย์นั้นสำคัญน้อยกว่าข้อมูลอื่น ๆ บนเซิร์ฟเวอร์เนื่องจากคุณสามารถสร้างรหัสลับใหม่และลงนามเช่นเดียวกับที่คุณทำกับ รุ่นเก่า.)
kasperd

ฉันไม่ใช่ผู้เชี่ยวชาญในด้านนี้ แต่ไม่มีโมดูล encryprion ของฮาร์ดแวร์ที่มีรหัสที่อยู่ข้างในและมีเพียงคำขอลงชื่อเข้าใช้และลายเซ็นจะออกมาใช่หรือไม่ การบัดกรีหรือติดกาวลงในเซิร์ฟเวอร์อาจเป็นวิธีแก้ปัญหา
matega

คำตอบ:


26

บุคคลที่มีสิทธิ์เข้าถึงระดับผู้ดูแลระบบ (หรือบ่อยครั้งที่มีอยู่จริง) ไปยังเซิร์ฟเวอร์จะสามารถแยกรหัสส่วนตัวได้ ไม่ว่าจะเป็นการส่งออกการดมกลิ่นหน่วยความจำหรือการใช้เล่ห์เหลี่ยมอื่น ๆ

ผู้ดูแลระบบของคุณสามารถเข้าถึงคีย์ส่วนตัวของเว็บเซิร์ฟเวอร์ของคุณ ยอมรับสิ่งนี้ตามความเป็นจริงและหลีกเลี่ยงสิ่งนั้น หาก sysadmins ของคุณไม่น่าเชื่อถือคุณอาจต้องการ sysadmins ที่ดีกว่าหรืออย่างน้อย sysadmins น้อยกว่าด้วยการเข้าถึงเว็บเซิร์ฟเวอร์ หากเป็นเรื่องของความหวาดระแวงด้านความปลอดภัยในการจัดการอาจมีปัญหาที่ลึกกว่าเกี่ยวกับความสามารถในการไว้วางใจดูแลระบบ

นี่ไม่ได้เป็นการบอกว่าคุณควรปล่อยให้ทุกคนสามารถเข้าถึงรหัสส่วนตัวได้ ควรมีความจำเป็นในการเข้าถึงเสมอก่อนที่จะอนุญาตการเข้าถึง เมื่อทราบแล้วคุณจะต้องใช้มาตรการที่รุนแรงเพื่อให้แน่ใจว่าระบบดูแลระบบที่มีการควบคุมเต็มรูปแบบของเว็บไซต์ไม่สามารถส่งออกคีย์ส่วนตัว แต่ยังคงสามารถจัดการเว็บไซต์ได้ด้วยวิธีที่ไม่สามารถทำได้ เรากลับมาเชื่อถือที่นี่และฉันคิดว่านั่นคือแก่นของปัญหาที่ต้องแก้ไข


2
+1 สำหรับ "ผู้ดูแลระบบของคุณสามารถเข้าถึงคีย์ส่วนตัวของเว็บเซิร์ฟเวอร์ของคุณยอมรับสิ่งนี้ตามความเป็นจริงและแก้ไขปัญหานั้น" คำถามเกี่ยวกับผลกระทบของ "ฉันจะป้องกันผู้ที่มีสิทธิ์ของผู้ดูแลระบบในการทำ X ได้อย่างไร" บ่งบอกถึงปัญหาที่ลึกซึ้งยิ่งขึ้นสำหรับฉัน ไม่ไว้ใจเกินไปหรือหละหลวมเกินไปในการให้สิทธิ์ผู้ดูแลระบบ
Brandon

2
ฉันอัพเดตด้วยสาเหตุที่ถาม ไม่ใช่ความกังวลกับผู้ดูแลระบบ แต่เป็นความปรารถนาที่จะปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด
David Thielen

11

เมื่อคุณนำเข้ากุญแจคุณมีตัวเลือกในการทำเครื่องหมายว่าไม่สามารถส่งออกได้ สิ่งนี้จะป้องกันคุณจากการใช้ IIS หรือใบรับรอง MMC เพื่อส่งออก อย่างน้อยก็ทำให้ลำบากขึ้นเล็กน้อย

อย่างไรก็ตามหากพวกเขามีบัญชีผู้ดูแลระบบในเครื่องหรือมีการเข้าถึงทางกายภาพ - พวกเขาจะยังสามารถรับรหัสผ่านวิธีการอื่นได้


1
มันไม่ได้ยากขนาดนั้นจริงๆ isecpartners.com/tools/application-security/jailbreak.aspx
Greg Askew

0

นี่คือที่ "สื่อกลาง CA" สามารถช่วยได้

"Root CA" ในตัวอย่างนี้ด้านล่างนี้เป็นของ บริษัท SSL ไม่ใช่ของคุณ

คุณไม่มีการควบคุมคีย์โดยตรงที่สร้างโดย Root CA ดังนั้นหากคีย์ที่เซ็นชื่อโดย Root CA นั้นถูกบุกรุกคุณจะต้องผ่านคีย์เหล่านั้นเพื่อเพิกถอน

แต่:

Root CA (SSL company)
 |
 +-Intermediate CA (You)
   |
   +-Server Key for site

หากคุณวาง CA อื่นไว้ตรงกลางและให้ใบรับรอง SSL ที่คุณซื้อเซ็นรับรอง CA ของคุณเองแทนการลงนามในใบรับรองเซิร์ฟเวอร์ของคุณโดยตรงคุณสามารถรักษาการควบคุมใบรับรองเซิร์ฟเวอร์ด้านล่างและออกใบรับรองการเพิกถอนหรือทำสิ่งอื่น ๆ .

คุณเก็บรหัสส่วนตัวของ Intermediate CA ไว้กับตัวเองและผู้ดูแลระบบไม่จำเป็นต้องดู

คุณยังสามารถทำสิ่งนี้:

Root CA (SSL company)
 |
 +-Intermediate CA (You)
   |
   +-Server Key 1 for site
   +-Server Key 2 for site 
   +-Server Key 3 for site

คุณสามารถเตรียมการประนีประนอมและสร้างใบรับรองล่วงหน้าเพื่อให้คุณสามารถสลับได้อย่างรวดเร็วในกรณีที่มีการเพิกถอนคีย์แต่ละรายการ ผู้ดูแลระบบไม่ได้รับกุญแจสำหรับ 2 หรือ 3 จนกระทั่งประนีประนอมจาก 1 คุณสามารถแจ้งให้ทราบในเว็บไซต์ของคุณเกี่ยวกับรูปแบบนี้และสิ่งนี้จะสื่อสารกับผู้ดูแลระบบของคุณว่าคุณพร้อมในกรณีที่มีการประนีประนอม ท้ายที่สุดจะไม่ทำลายเว็บไซต์ของคุณ


1
สิ่งนี้จะทำให้คำเตือน SSL สำหรับผู้ใช้สำหรับ CA ที่ไม่น่าเชื่อถือหรือไม่
ceejayoz

1
ฉันเดาว่านี่จะทำงานได้ดีถ้าคุณสามารถติดตั้ง CA เป็นใบรับรองที่เชื่อถือได้บนเบราว์เซอร์ของผู้ใช้เช่นในการตั้งค่าอินทราเน็ตขององค์กร ฉันรู้ว่ามีบางอย่างผิดปกติกับแผนการที่สดใสของฉัน :(
LawrenceC

0

มีบทความจำนวนมากที่ขอแนะนำให้จัดเก็บคีย์ส่วนตัวที่อื่นนอกเหนือจากเซิร์ฟเวอร์ แต่คีย์ส่วนตัวสำหรับผู้ที่มีกำลังใบรับรองการเซ็นโค้ด ลองนึกภาพว่าคุณมีกุญแจในคอมพิวเตอร์ออฟไลน์ที่มีเพียงคุณเท่านั้นที่เข้าถึงซอฟต์แวร์บางตัวคุณได้รับรหัสส่วนตัวจากเซิร์ฟเวอร์ออฟไลน์ลงชื่อรหัสแล้วคุณไม่จำเป็นต้องใช้รหัสส่วนตัวอีกจนกว่าคุณจะต้องลงชื่อ รหัสอีกครั้ง

ทางออกที่ดีที่สุดได้รับเสมอและจะยังคงเก็บกุญแจของคุณออฟไลน์ วิธีที่คุณทำนั้นขึ้นอยู่กับคุณอย่างสมบูรณ์ (มีวิธีการไม่กี่วิธี) เพียงจำไว้ว่าให้เก็บรักษาไว้อย่างดีในที่ทำงานที่ปลอดภัยหรือที่ไหนสักแห่งที่ไม่ใช่เรื่องง่ายสำหรับคนที่จะพกติดตัว

อ่านเพิ่มเติมได้ที่: https://www.thesslstore.com/blog/heres-what-happens-when-your-private-key-gets-compromised/

ในทางตรงกันข้ามใบรับรอง SSL มีไว้สำหรับเว็บไซต์เพื่อเปิดใช้งานการสื่อสาร HTTPS: จำเป็นต้องใช้คีย์ส่วนตัวระหว่างการจับมือแต่ละครั้งโดยเว็บเซิร์ฟเวอร์ ดังนั้นการจัดเก็บแบบออฟไลน์จะไม่ทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.