เซิร์ฟเวอร์ทั้งหมดจำเป็นต้องใช้โปรโตคอล HTTPS หรือเป็นเซิร์ฟเวอร์แบบสาธารณะเท่านั้นหรือไม่


38

ฉันมีเว็บเซิร์ฟเวอร์ส่วนหน้าทำงานผ่าน HTTPS ซึ่งเป็นแบบสาธารณะหันหน้าไปทางนั่นคือพอร์ตเปิดอยู่

ฉันยังมีเซิร์ฟเวอร์ API แบ็กเอนด์ที่เว็บเซิร์ฟเวอร์ของฉันส่งคำขอ API ไป - นี่เป็นสาธารณะและต้องมีการตรวจสอบ - พอร์ตเปิดอยู่

เซิร์ฟเวอร์ 2 เครื่องเหล่านี้ทำงานผ่าน HTTPS

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

คำถามของฉัน ... "เซิร์ฟเวอร์อื่น ๆ จำนวนมาก" จำเป็นต้องเรียกใช้ผ่าน HTTPS หรือไม่เนื่องจากพวกเขาไม่สามารถเข้าถึงภายนอกได้พวกเขาสามารถเรียกใช้ผ่าน HTTP ได้อย่างปลอดภัยแทนหรือไม่

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


35
ในแง่ของวิธีที่ NSA แตะในลิงก์ต่างประเทศที่ Google และ Yahoo ใช้ในการสื่อสารระหว่างศูนย์ข้อมูลของพวกเขาที่ไม่ได้เข้ารหัสฉันขอแนะนำให้คุณสมมติว่าการเชื่อมต่อนั้นสงสัย คุณไม่มีทางรู้ว่ามีคนฟังอยู่ที่ไหนและปลอดภัยกว่าที่จะเสียใจ ครั้งเดียวที่ฉันจะพิจารณาใช้ HTTP เพียงอย่างเดียวคือบริการที่ทำงานบนเครื่องเดียวกับที่ใช้เปิดเฉพาะการเชื่อมต่อภายในเท่านั้น
childofsoong

7
สิ่งนี้เรียกว่าการถ่าย SSL และการสิ้นสุด SSL หากคุณต้องการทำการวิจัยเพิ่มเติม
Esben Skov Pedersen

31
มันเหมือนกับถามว่า "ประตูทุกบานจำเป็นต้องล็อคหรือเพียงแค่ประตูที่หันเข้าหาด้านนอก"? มีเพียงคุณเท่านั้นที่ตอบคำถามนี้ได้เมื่อพิจารณาถึงภัยคุกคามทั้งภายในและภายนอกเครือข่ายของคุณ
Ryan Griggs

5
ตามที่Security.SE faq กล่าวว่า : "การรักษาความปลอดภัยเป็นหัวข้อตามบริบท: การคุกคามที่ถือว่ามีความสำคัญในสภาพแวดล้อมของคุณอาจไม่สำคัญต่อผู้อื่นและในทางกลับกันคุณพยายามปกป้องคุณค่าระดับโลกจากภัยคุกคามขั้นสูงหรือไม่ คุณกำลังมองหาวิธีที่ประหยัดต้นทุนสำหรับธุรกิจขนาดเล็กที่มีรายได้น้อยหรือไม่เพื่อให้ได้คำตอบที่มีประโยชน์ที่สุดคุณควรบอกเราว่า: สินทรัพย์ใดที่คุณพยายามปกป้องใครใช้สินทรัพย์ที่คุณพยายามปกป้องและใคร คิดว่าอาจต้องการละเมิด (และเพราะเหตุใด); ...
DW

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

คำตอบ:


50

นี่เป็นเรื่องของความเห็นและเกี่ยวข้องกับประเด็นด้านกฎระเบียบด้วย (หากคุณต้องเผชิญ)

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

สิ่งที่ฉันมักจะแนะนำคือการใช้ CA ภายใน (ถ้ามี) หรือลงชื่อด้วยตนเอง (ถ้าไม่มี CA ภายใน) เซิร์ฟเวอร์ด้านหลัง เราได้กำหนดวันหมดอายุที่ดีและไกลในอนาคตเพื่อหลีกเลี่ยงการเปลี่ยนแปลงที่ไม่จำเป็น


1
มันจะดีกว่าที่จะเริ่มต้นมี - คำพูดที่ให้คุณจุด :)
danday74

12
นี่เป็นความคิดที่ดี คุณไม่ต้องการให้ NSA วาดโครงสร้างเครือข่ายของคุณอย่างไร้สาระ
เควิน

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

8
" We'd set the expiration date nice and far into the future to avoid unnecessary changes." และโปรดเพิ่มกฎลงในชุดการตรวจสอบที่คุณต้องการเพื่อเตือนคุณเมื่อกำลังจะหมดอายุ โปรด!
GnP

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

19

TL; DR คุณควรเข้ารหัสทราฟฟิกยกเว้นว่าอยู่ในโฮสต์เดียวกัน

คุณไม่สามารถเชื่อถือเครือข่ายของคุณได้ มัลแวร์ในเครือข่ายของคุณสามารถดักจับ / แก้ไขคำร้องขอ http

มันไม่ใช่การโจมตีทางทฤษฎี แต่เป็นตัวอย่างชีวิตจริง:


16

"เซิร์ฟเวอร์อื่น ๆ จำนวนมาก" จำเป็นต้องเรียกใช้ผ่าน HTTPS หรือไม่เนื่องจากพวกเขาไม่สามารถเข้าถึงจากภายนอกได้พวกเขาสามารถเรียกใช้ผ่าน HTTP ได้อย่างปลอดภัยแทนหรือไม่

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

นี่เป็นคำถามความคิดเห็นมากกว่านี้จริง ๆ แต่คำตอบนั้นขึ้นอยู่กับ คุณพยายามจะทำอะไร? คุณเข้ารหัสข้อมูลชนิดใด คุณกำลังพยายามป้องกันภัยคุกคามอะไรบ้าง คุณมีข้อกำหนดทางกฎหมาย (เช่น PCI-DSS, HIPAA และอื่น ๆ ) ที่ระบุว่าคุณต้องการเข้ารหัสข้อมูลระหว่างทาง หากข้อมูลมีความละเอียดอ่อนและคุณกังวลว่าอาจถูกนำไปใช้ในทางที่ผิดเมื่อมีการส่งข้อมูลภายในเครือข่ายของคุณฉันขอแนะนำให้ร่วมมือกับฝ่ายจัดการเพื่อแก้ไขปัญหา ดังนั้นในที่สุดสิ่งที่คุณพยายามปกป้องและทำไมคุณพยายามปกป้องมัน


13

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

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

ที่กล่าวว่าใช่ขึ้นอยู่กับข้อมูลที่ถูกส่งปัญหาการปฏิบัติตามกฎหมายใด ๆ ฯลฯ คุณอาจตัดสินใจว่าคุณไม่สนใจว่ามีใครบางคนดมกลิ่นพูดข้อมูลสภาพอากาศ ที่กล่าวว่ามันเป็นไปได้ว่าแม้ว่าที่ส่งข้อมูลไม่ไวตอนนี้บางคนอาจจะตัดสินใจที่จะเพิ่มคุณสมบัติในการใช้งานของคุณในภายหลังว่ามีความละเอียดอ่อนดังนั้นฉันจะแนะนำหวาดระแวงมากขึ้น (รวม HTTPS)


ข้อมูล Wheather อาจมีความอ่อนไหวพอ: บางคนอาจใช้การตัดสินใจผิด ๆ ในการแก้ไขข้อมูล wheather
Hagen von Eitzen

1
ยุติธรรมเพียงพอมันขึ้นอยู่กับสิ่งที่คุณใช้ข้อมูลสภาพอากาศ ฉันพยายามคิดอะไรบางอย่างที่ไม่น่ากลัว :)
Katherine Villyard

1
@HagenvonEitzen หรือผู้โจมตีจะฉีดมัลแวร์ / โฆษณาในนั้นดังนั้นคุณยายจะได้รับ pwned เมื่อเธอตรวจสอบสภาพอากาศโดยใช้เครื่อง Windows XP ของเธอ
André Borie

8

วันนี้มีคำสั่ง CPU เฉพาะเพื่อเพิ่มความเร็วในการเข้ารหัสและโปรโตคอลการขนส่งใหม่ที่จะไม่ทำงานเลยหรือทำงานด้วยประสิทธิภาพที่ลดลงผ่านลิงค์ที่ไม่ได้เข้ารหัส (HTTP / 2, gRPC, ฯลฯ ... ) บางทีคำถามที่ดีกว่าคือ: เหตุผลที่คุณต้องการดาวน์เกรดลิงก์เครือข่ายไปยัง HTTP หากไม่มีเหตุผลที่เฉพาะเจาะจงคำตอบก็คือยังคงอยู่กับ HTTPS


กระบวนการคิดที่ดี
danday74

5

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

มันจะเหมือนกับการวางสปอยเลอร์บนแทรคเตอร์: คุณจะได้ไม่ติดอะไรในทางทฤษฎีและไม่สะดวกในทางปฏิบัติ

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