คำถามติดแท็ก client-certificates

8
การพิสูจน์ตัวตนใบรับรองไคลเอ็นต์ Java HTTPS
ฉันค่อนข้างใหม่HTTPS/SSL/TLSและฉันค่อนข้างสับสนกับสิ่งที่ลูกค้าควรจะนำเสนอเมื่อรับรองความถูกต้องกับใบรับรอง ฉันเขียนลูกค้า Java ที่ความต้องการที่จะทำที่เรียบง่ายของข้อมูลที่จะโดยเฉพาะอย่างยิ่งPOST ว่าส่วนที่ทำงานได้ดีปัญหาเดียวก็คือมันควรจะทำได้มากกว่าURL ส่วนหนึ่งค่อนข้างง่ายที่จะจับ (ทั้งที่มีหรือใช้ Java ในตัวสนับสนุน) แต่ฉันติดอยู่ในการตรวจสอบที่มีใบรับรองไคลเอ็นต์ ฉันสังเกตเห็นว่ามีคำถามที่คล้ายกันอยู่แล้วในที่นี้ซึ่งฉันยังไม่ได้ลองด้วยรหัสของฉัน (จะทำได้เร็วพอ) ปัญหาปัจจุบันของฉันคือ - ไม่ว่าฉันจะทำอะไร - ไคลเอนต์ Java ไม่ส่งตามใบรับรอง (ฉันสามารถตรวจสอบได้ด้วยการทิ้ง)HTTPSHTTPSHTTPclientHTTPSPCAP ฉันต้องการที่จะรู้ว่าสิ่งที่ลูกค้าควรจะนำเสนอไปยังเซิร์ฟเวอร์เมื่อรับรองความถูกต้องกับใบรับรอง (โดยเฉพาะสำหรับ Java - ถ้าสิ่งที่สำคัญเลย) นี้เป็นJKSแฟ้มหรือPKCS#12? สิ่งที่ควรจะเป็นในพวกเขา; เพียงแค่ใบรับรองไคลเอ็นต์หรือคีย์? ถ้าเป็นเช่นนั้นคีย์ใด? มีความสับสนเล็กน้อยเกี่ยวกับไฟล์ประเภทต่างๆประเภทใบรับรองและอื่น ๆ อย่างที่ฉันได้พูดไปก่อนหน้านี้ฉันยังใหม่กับHTTPS/SSL/TLSฉันดังนั้นฉันจึงขอขอบคุณข้อมูลพื้นฐานบางอย่างเช่นกัน (ไม่จำเป็นต้องเป็นเรียงความ

9
บริการเว็บ RESTful - จะตรวจสอบสิทธิ์คำขอจากบริการอื่นได้อย่างไร?
ฉันกำลังออกแบบบริการเว็บ RESTful ที่ผู้ใช้ต้องเข้าถึง แต่ยังรวมถึงบริการเว็บและแอปพลิเคชันอื่น ๆ ด้วย คำขอที่เข้ามาทั้งหมดจะต้องได้รับการตรวจสอบสิทธิ์ การสื่อสารทั้งหมดเกิดขึ้นผ่าน HTTPS การรับรองความถูกต้องของผู้ใช้จะทำงานตามโทเค็นการตรวจสอบความถูกต้องซึ่งได้มาจากการโพสต์ชื่อผู้ใช้และรหัสผ่าน (ผ่านการเชื่อมต่อ SSL) ไปยังทรัพยากร/ เซสชันที่ให้บริการโดยบริการ ในกรณีของไคลเอ็นต์บริการบนเว็บไม่มีผู้ใช้ปลายทางอยู่เบื้องหลังบริการไคลเอ็นต์ การร้องขอจะเริ่มต้นโดยงานตามกำหนดการเหตุการณ์หรือการทำงานของคอมพิวเตอร์อื่น ๆ รายชื่อบริการเชื่อมต่อเป็นที่รู้จักล่วงหน้า (แน่นอนฉันเดา) ฉันจะตรวจสอบสิทธิ์คำขอเหล่านี้ที่มาจากบริการอื่น ๆ (เว็บ) ได้อย่างไร? ฉันต้องการให้ขั้นตอนการตรวจสอบสิทธิ์ง่ายที่สุดในการนำไปใช้กับบริการเหล่านั้น แต่ไม่ต้องเสียค่าใช้จ่ายด้านความปลอดภัย อะไรคือมาตรฐานและแนวทางปฏิบัติที่ดีที่สุดสำหรับสถานการณ์เช่นนี้ ตัวเลือกที่ฉันคิดได้ (หรือได้รับการแนะนำให้ฉัน): ให้บริการไคลเอ็นต์หันมาใช้ชื่อผู้ใช้และรหัสผ่าน "ปลอม" และตรวจสอบสิทธิ์ในลักษณะเดียวกับผู้ใช้ ฉันไม่ชอบตัวเลือกนี้ - มันไม่ถูกต้อง กำหนดรหัสแอปพลิเคชันถาวรสำหรับบริการไคลเอ็นต์ซึ่งอาจเป็นรหัสแอปพลิเคชันด้วย เท่าที่ฉันเข้าใจนี่ก็เหมือนกับการมี username + password ด้วยรหัสและรหัสนี้ฉันสามารถตรวจสอบสิทธิ์แต่ละคำขอหรือสร้างโทเค็นการตรวจสอบสิทธิ์เพื่อพิสูจน์ตัวตนคำขอเพิ่มเติม ไม่ว่าจะด้วยวิธีใดฉันไม่ชอบตัวเลือกนี้เพราะใครก็ตามที่ได้รับรหัสแอปพลิเคชันและคีย์สามารถแอบอ้างเป็นลูกค้าได้ ฉันสามารถเพิ่มการตรวจสอบที่อยู่ IP ในตัวเลือกก่อนหน้าได้ ซึ่งจะทำให้คำขอปลอมทำได้ยากขึ้น ใบรับรองไคลเอ็นต์ ตั้งค่าผู้ออกใบรับรองของฉันเองสร้างใบรับรองหลักและสร้างใบรับรองไคลเอ็นต์สำหรับบริการไคลเอ็นต์ แม้ว่าจะมีปัญหาสองประการดังนี้ก) ฉันจะยังอนุญาตให้ผู้ใช้ตรวจสอบสิทธิ์โดยไม่มีใบรับรองได้อย่างไรและ b) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.