การแจกจ่ายใบรับรองการลงนามรหัส - แนวปฏิบัติที่ดีที่สุด [ปิด]


-1

การแจกจ่ายใบรับรองการลงนามรหัส - แนวปฏิบัติที่ดีที่สุด

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

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

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

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

เราหวังว่าการแจกจ่ายใบรับรองบางประเภทเป็นไปได้แม้กระทั่งการใช้ Active Directory

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

เราอาจจะไปกับ Microsoft Authenticode Certificate - เว้นแต่จะมีเหตุผลที่ดีที่ไม่ควรทำ

อย่างไรก็ตามเท่าที่ฉันเข้าใจ Microsoft มีตั้งแต่วันที่ 1 กุมภาพันธ์ 2017 จำเป็นต้องใช้ Hardware Security Module (HSM) เพื่อใช้ในกระบวนการลงนามโค้ด - เราหวังว่านั่นไม่ได้หมายความว่านักพัฒนาแต่ละคนต้องการ HSM ของตัวเองในคอมพิวเตอร์!

ดังนั้นเพื่อสรุปคำถามของฉัน:

  1. สำหรับการลงนามรหัสไบนารีของ Windows จะต้องใช้ใบรับรอง HSM หรือมีทางเลือกอื่นที่ดีกว่า (ในสถานการณ์นี้)
  2. มีตัวเลือกอะไรบ้างในการแจกจ่ายใบรับรองระหว่างผู้พัฒนา การใช้โฆษณาน่าจะดีเพราะมันมีอยู่แล้วทั่วโลก
  3. ในการตั้งค่าแบบกระจายเป็นไปได้ไหมที่จะทำให้ใบรับรองการลงนามเป็นความลับ?
  4. การเซ็นชื่อสองครั้งจะเป็นตัวเลือกเพื่อเพิ่มความปลอดภัยหรือไม่ (การเซ็นชื่อหนึ่งรายการเพื่อเอาชนะโปรแกรมป้องกันไวรัสในขณะทดสอบอีกรายการหนึ่งเพื่อความปลอดภัยที่แท้จริงของซอฟต์แวร์ที่เผยแพร่)
  5. คุณมีทางออกที่ดีกว่าให้เราพิจารณาหรือไม่?

ขอบคุณล่วงหน้า.

คำตอบ:


1

สำหรับการลงนามรหัสไบนารีของ Windows จะต้องใช้ใบรับรอง HSM หรือมีทางเลือกอื่นที่ดีกว่า (ในสถานการณ์นี้)

Hardware Security Module (HSM) เป็นเพียงเครื่องมือฮาร์ดแวร์สำหรับการดำเนินงานการเข้ารหัสเช่นการจัดการคีย์การแลกเปลี่ยนคีย์การเข้ารหัสการตรวจสอบและการรักษาความปลอดภัย ไม่มีสิ่งเช่นใบรับรอง HSM แต่มีใบรับรองที่สร้างโดย HSM

ฉันไม่ได้ใช้ HSM แต่ฉันจะต้องระวังคีย์ที่สร้างขึ้นโดยฮาร์ดแวร์ดังกล่าว สิ่งเหล่านี้อาจใช้ได้สำหรับการใช้ภายใน แต่สำหรับการใช้ภายนอกคุณต้องใช้ใบรับรองที่สร้างขึ้นโดย Certificate Authority (CA) ที่มีชื่อเสียง

Let's Encryptเป็น CA ฟรีที่ใช้กันอย่างแพร่หลาย ในองค์กรของฉันเราต้องการจ่ายเงินสำหรับ CA ที่มีชื่อเสียงในการเผยแพร่ซอฟต์แวร์ของเรา

มีตัวเลือกอะไรบ้างในการแจกจ่ายใบรับรองระหว่างผู้พัฒนา การใช้โฆษณาน่าจะดีเพราะมันมีอยู่แล้วทั่วโลก

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

สำหรับข้อมูลเพิ่มเติมดู:

ในการตั้งค่าแบบกระจายเป็นไปได้ไหมที่จะทำให้ใบรับรองการลงนามเป็นความลับ?

ไม่เวลาที่แบ่งปันความลับนั้นจะไม่เป็นความลับอีกต่อไป รักษาใบรับรองการแจกจ่ายให้ปลอดภัยมากดังที่กล่าวไว้ด้านบน

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

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

แน่นอนและฉันจะเห็นว่ามันเป็นไปได้ของคุณเท่านั้น ใบรับรองการพัฒนาอาจรั่วไหล แต่คุณจะไม่สนใจเนื่องจากคนที่จะรั่วก็เป็นคนที่สามารถรั่วโมดูลที่ไม่ได้ลงนาม

คุณมีทางออกที่ดีกว่าให้เราพิจารณาหรือไม่?

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

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