Score:2

การลงนามซอฟต์แวร์ด้วย openSSL

ธง sg

บริษัทที่ฉันทำงานต้องการให้ฉันใช้ฟังก์ชัน C บางอย่างเพื่อลงนามในซอฟต์แวร์โดยอัตโนมัติ หลังจากทำการวิจัยแล้ว ฉันพบว่า openSSL นั้นยอดเยี่ยมสำหรับการทำเช่นนั้น

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

นี่คือขั้นตอนที่ฉันได้ดำเนินการ:

  1. สร้างคีย์ส่วนตัว
$openssl genrsa -ออก privat.pem 2048
  1. แยกรหัสสาธารณะออกจากรหัสส่วนตัว
$ openssl rsa -in privat.pem -outform PEM -pubout -out public.pem
  1. ลงชื่อไฟล์ตัวอย่างด้วยคีย์ส่วนตัว
$ openssl dgst -sha256 - ลงชื่อ privat.pem - ออก sign.sha256 file.txt
  1. ตรวจสอบลายเซ็นด้วยรหัสสาธารณะ
$ openssl dgst -sha256 - ตรวจสอบ public.pem -signature sign.sha256 file.txt

ยืนยันตกลง

ตอนนี้ฉันจะใช้ใบรับรองใดเพื่อพิสูจน์ว่าซอฟต์แวร์มาจากบริษัท

นอกจากนี้ ซอฟต์แวร์ยังจัดส่งเป็นคอนเทนเนอร์แอปพลิเคชันสำหรับเดเบียน ซึ่งเราสร้างส่วนหัวของแอปพลิเคชันของเราเองด้วยข้อมูลเมตา เช่น เช็คซัม เป็นต้น ฉันจะต้องใส่ลายเซ็นในส่วนหัวนี้ด้วย เป็นความคิดที่ดีไหมที่จะเก็บเอาต์พุตของ sign.sha256 ไว้ที่นั่น อาจจะอยู่ใน Base64?

DannyNiu avatar
vu flag
คำสั่งย่อย `dgst` ใช้สำหรับคำนวณแฮชไดเจสต์ของข้อมูลข้อความอินพุต คุณควรใช้คำสั่งย่อย `cms` เพื่อดำเนินการในรูปแบบข้อมูล CMS ซึ่งอนุญาตให้ลงนาม เข้ารหัส นอกเหนือจากการย่อย
DannyNiu avatar
vu flag
การใช้ซอฟต์แวร์อย่างแท้จริงอาจไม่ใช่หัวข้อบนเว็บไซต์นี้ แต่คำถามของคุณต้องการความรู้ด้านการเข้ารหัสเชิงปฏิบัติที่ไม่สำคัญเพื่อตอบ ดังนั้นฉันขอโต้แย้งสำหรับคำถามนี้ แต่คนอื่นๆ อาจมีความคิดเห็นที่แตกต่างออกไปในกรณีนี้
fgrieu avatar
ng flag
หากวัตถุประสงค์คือ "ลงชื่อซอฟต์แวร์ของตน" ในแง่ที่มีไว้สำหรับ Windows ฉันไม่รู้ว่า OpenSSL สามารถทำได้ AFAIK มีบทบาทในกระบวนการนี้จำกัดเฉพาะการสร้างคู่คีย์สาธารณะ/ส่วนตัวและการจับคู่คำขอลงนามใบรับรองกับหน่วยงานออกใบรับรอง การเซ็นชื่อเสร็จสิ้นด้วยเครื่องมืออื่นๆ โดยทั่วไปคือ signtool.exe

โพสต์คำตอบ

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