การจัดเก็บความลับ
สารบัญ:
สรุป
ประเด็น
เราต้องจัดเก็บความลับ เช่น รหัสผ่าน คีย์ส่วนตัว โทเค็นการยืนยันตัวตน ฯลฯ
ความลับบางอย่างมุ่งเน้นผู้ใช้ ตัวอย่างเช่น นักพัฒนาของเราต้องการใช้โทรศัพท์มือถือเพื่อค้นหารหัสผ่านของบริการ
ความลับบางอย่างมุ่งเน้นระบบ ตัวอย่างเช่น ไปป์ไลน์การส่งมอบอย่างต่อเนื่องของเราต้องค้นหาข้อมูลรับรองการเข้าสู่ระบบสำหรับการโฮสต์คลาวด์ของเรา
การตัดสินใจ
Bitwarden สำหรับความลับที่มุ่งเน้นผู้ใช้
Vault by HashiCorp สำหรับความลับที่มุ่งเน้นระบบ
สถานะ
ตัดสินใจแล้ว เราเปิดรับทางเลือกใหม่เมื่อมีขึ้น
รายละเอียด
สมมติฐาน
สำหรับวัตถุประสงค์นี้และสถานการณ์ปัจจุบันของเรา เราให้คุณค่ากับความสะดวกที่มุ่งเน้นผู้ใช้ เช่น แอปมือถือที่มีประโยชน์
เราต้องการให้การเข้าถึงรวดเร็วและง่ายขณะเคลื่อนที่ เช่น สำหรับนักพัฒนาที่ปฏิบัติหน้าที่เวรด้านวิศวกรรมความน่าเชื่อถือ
เราต้องการแบ่งปันความลับบางอย่างระหว่างบุคคลที่เลือก เช่น ทีม
เราไม่พยายามแก้ปัญหาสำหรับผู้ขายรายเดียว เช่น จัดเก็บความลับทั้งหมดเฉพาะที่ Amazon หรือ Azure หรือ Google
เราไม่ต้องการแนวทางเฉพาะกิจ เช่น "จำไว้" หรือ "เขียนใส่กระดาษ" หรือ "หาวิธีจัดเก็บของคุณเอง"
โมเดลความปลอดภัยของเราสำหรับวัตถุประสงค์นี้พอใจกับการใช้ผู้ขาย COTS ที่มีชื่อเสียงดี เช่น เครื่องมือจัดการรหัสผ่านแบบ SaaS
ข้อจำกัด
ตอนนี้เราต้องการสิ่งที่เรียบง่าย กล่าวคือไม่ต้องเขียนโค้ด ไม่ต้องติดตั้งเซิร์ฟเวอร์ ไม่ต้องผูกมัดมาก ไม่ต้องทำให้ทุกคนเป็นมาตรฐาน
จุดยืน
เราพิจารณา:
ตัวจัดการรหัสผ่านสำเร็จรูปที่มุ่งเน้นผู้ใช้: LastPass, 1Password, Bitwarden, Dashlane, KeePass, pass, GPG ฯลฯ
ตัวจัดการรหัสผ่าน COTS ที่มุ่งเน้นระบบ: AWS KMS, Vault by HashiCorp, EnvKey, Secret Server by Thycotic, Devolutions Password Server, Confidant by Lyft
แนวทางที่มุ่งเน้นการแบ่งปัน: การใช้เอกสาร Google ที่แชร์ ช่อง Slack ที่แชร์ โฟลเดอร์เครือข่ายที่แชร์ ฯลฯ
แนวทางเฉพาะกิจเทคโนโลยีต่ำ เช่น จำไว้ เขียนใส่กระดาษ หรือพึ่งพาให้แต่ละผู้ใช้หาวิธีจัดเก็บของตนเอง
ข้อโต้แย้ง
Bitwarden, LastPass, 1Password และ Dashlane ล้วนเป็นผลิตภัณฑ์สำเร็จรูปเชิงพาณิชย์
ฟีเจอร์ประเภทคล้ายกันสำหรับผู้ใช้ ทีม องค์กร ฯลฯ
ความสามารถบนเดสก์ท็อปสำหรับ Windows และ Mac และความสามารถบนมือถือสำหรับ Android และ iOS
ส่วนขยายเบราว์เซอร์สำหรับ Chrome และ Firefox สำหรับการกรอกฟอร์มอัตโนมัติ ฯลฯ
Bitwarden มีข้อได้เปรียบเหนือที่เหลือสองข้อ:
Bitwarden เป็นโอเพนซอร์ส หมายความว่าเพื่อนร่วมวงการตรวจสอบความปลอดภัยได้ และบริษัทโดยทั่วไปก็ได้รับความนับถือจากนักพัฒนาที่ใส่ใจความปลอดภัยด้วย
เกร็ดจากคนในวงการซอฟต์แวร์อธิบายถึงความชอบ Bitwarden เหนืออื่นอย่างมีนัยสำคัญ
บทความที่ดีโดยทั่วไป: https://jcs.org/2017/11/17/bitwarden
เว็บไซต์โหวตทั่วไปที่มีการเปรียบเทียบเคียงข้างกัน: https://stackshare.io/stackups/bitwarden-vs-dashlane
เราเลื่อน KeyPass, pass, GPG ฯลฯ เพราะมีความซับซ้อนเพิ่มเติม ทั้งหมดดูเป็นโซลูชันที่ดีสำหรับผู้ใช้เชิงเทคนิค GPG ดูดีเป็นพิเศษสำหรับผู้ใช้เชิงเทคนิคที่ต้องการความสามารถที่มุ่งเน้นคำสั่งข้ามระบบ
เราเลื่อน KMS เพราะมีการผูกติดกับผู้ขายรายเดียว
เราเลือก Vault สำหรับความต้องการที่มุ่งเน้นระบบ เพราะรีวิวเป็นบวกอย่างน่าประหลาดใจ และเพราะ HashiCorp มีประวัติที่ยอดเยี่ยมด้านซอฟต์แวร์และการสนับสนุนระดับเยี่ยม
เราคัดค้านแนวทางที่เกี่ยวข้องกับการแบ่งปัน เช่น ผ่านเอกสารที่แชร์ ช่องที่แชร์ โฟลเดอร์เครือข่ายที่แชร์ ฯลฯ สิ่งเหล่านี้ไม่ให้คุณสมบัติด้านความปลอดภัยที่เราต้องการ
เราคัดค้านแนวทางเฉพาะกิจเทคโนโลยีต่ำ เพราะเราทุกคนเห็นพ้องว่านั่นไม่ใช่หนทางไปข้างหน้าในระยะยาว
นัยยะ
นักพัฒนาอาจต้องติดตามความลับในสองที่: Bitwarden สำหรับการเข้าถึงที่มุ่งเน้นผู้ใช้ และ Vault สำหรับการเข้าถึงที่มุ่งเน้นระบบ
ที่เกี่ยวข้อง
การตัดสินใจที่เกี่ยวข้อง
การตัดสินใจว่าจะเลือกเซิร์ฟเวอร์ CI/CD ใดต้องรวมหลักฐานของความสามารถในการเข้าถึงความลับ
เราต้องตัดสินใจว่าจะจัดการความลับอย่างไร ในแง่นโยบาย การหมุนเวียน องค์กร ฯลฯ
ข้อกำหนดที่เกี่ยวข้อง
ความลับจะมีข้อกำหนดที่เกี่ยวข้องสำหรับการปฏิบัติตามกฎระเบียบ การตรวจสอบ และการรับเข้า/ปล่อยออกของทรัพยากรบุคคล
ผลงานที่เกี่ยวข้อง
เราคาดว่าเราส่งออกความลับบางอย่างไปยังตัวแปรสภาพแวดล้อมได้
หลักการที่เกี่ยวข้อง
ย้อนกลับได้ง่าย
รันคู่ขนานได้ง่าย กล่าวคือใช้ตัวจัดการรหัสผ่านหลากหลายได้ง่าย
ถูกที่จะลอง กล่าวคือมีช่วงทดลองฟรีและไม่ต้องผูกมัด
หมายเหตุ
หมายเหตุการประเมินที่นี่ หมายเหตุทั้งหมดเป็นความเห็นสาธารณะในฟอรัมอภิปราย devops ต่าง ๆ
Vault by HashiCorp
Vault คือสิ่งที่คุณต้องการตรงนี้เป๊ะ
แต่อย่าเพิ่งโยน Vault เข้าการผลิต ตั้งค่าในสภาพแวดล้อมทดสอบก่อน เพราะเอกสารของ HashiCorp อาจค่อนข้างขาด แม้ผลิตภัณฑ์ของพวกเขาจะยอดเยี่ยม
เส้นโค้งการเรียนรู้ชันมากและตั้งค่าไม่ง่าย
การตั้งค่าเริ่มต้นเป็นเรื่องน่ารำคาญเล็กน้อย คุ้มค่าอย่างแน่นอน และชุมชนจะสนับสนุนพอที่จะพาคุณผ่านไปได้
เอกสารแย่มาก แต่มีคู่มือออนไลน์มากมายจากคนที่ตั้งค่าไว้ และถ้าคุณรวมบางอย่างเข้าด้วยกัน คุณจะมีการตั้งค่าที่ใช้งานได้
การตั้งค่าเริ่มต้นต้องยุ่งกับ helm chart ของพวกเขา (vault และ consul) ในทางเทคนิคคุณใช้แบ็กเอนด์อื่นได้มากมาย แต่ฉันไม่แนะนำจริง ๆ จริง ๆ แบ็กเอนด์/consul เล็กจิ๋วได้ถ้าคุณไม่มีข้อมูลต้องจัดเก็บมาก
ทำความคุ้นเคยกับการใช้ CLI ให้ได้ เพราะ GUI เป็นเหมือนการพิสูจน์แนวคิด/พอร์ทัลโฆษณาสำหรับรุ่นองค์กรของพวกเขามากกว่า
ข้อเท็จจริงที่ว่าคุณ "เติม" ไม่ได้เฉย ๆ เป็นเรื่องน่ารำคาญ ตัวอย่างเช่น ถ้าคุณมี 5 ฟิลด์ คุณต้องเพิ่มแต่ละฟิลด์ด้วยมือสำหรับแต่ละรายการ จึงไม่ใช่ว่าคุณกำหนดฟิลด์ล่วงหน้าสำหรับหมวดหมู่เฉพาะและกรอกฟิลด์เหล่านั้นสำหรับทุกรายการในหมวดหมู่นั้น แต่เป็น "คุณสร้างทุกอย่างทุกครั้ง" มากกว่า ซึ่ง (ในความเห็นของฉัน) น่ารำคาญ
คุณอาจดู goldfish เป็น UI ที่อยู่บน vault ด้วย ทำให้ดึงทีมเข้ามาได้ค่อนข้างน่าพอใจ พวกเขามีเดโมด้วย 1. ตั้งค่า consul 2. ตั้งค่า vault ที่ชี้ไป consul 3. ตั้งค่า goldfish ที่ชี้ไป vault 3. ตั้งค่างาน cron ที่รัน consul snapshot สำหรับสำรองข้อมูล
LastPass
LastPass Teams เราใช้มัน มีเทมเพลตกำหนดเอง ACL และในความเห็นของฉันไม่ขาดอะไร
ฉันติดตั้งใช้งาน LastPass ในองค์กรของฉันและให้ C+/B- ปัญหาใหญ่ที่สุดเมื่อเร็ว ๆ นี้คือขาดความน่าเชื่อถือ ใน 90 วันที่ผ่านมามีหลายชั่วโมงที่ตู้นิรภัยถูกบังคับเข้าโหมดออฟไลน์ ไม่เหมาะกับองค์กรของฉันเพราะเรามีรหัสผ่านมากกว่า 4,000 รายการจัดเก็บในโฟลเดอร์ที่แชร์มากกว่า 20 โฟลเดอร์จริง ๆ อย่างที่คุณจินตนาการได้ด้วยรหัสผ่านมากมายขนาดนั้น อย่างน้อยบางรายการถูกอัปเดตหรือเพิ่มทุกวัน เรามีแผน DR หากปัญหายาวนานกว่าหนึ่งหรือสองชั่วโมง: สคริปต์ลงนามและเข้ารหัสการดัมพ์ CSV ของตู้นิรภัยทุกคืนซึ่งนำเข้า keepass ได้
LastPass มีช่วงที่บริการลดระดับโดยไม่มีการรายงาน: การเข้าสู่ระบบ "ใช้ได้" แต่ไม่ดึงเว็บไซต์ใด ฟังก์ชันสุ่มในแผงผู้ดูแลเสีย และคีย์ไม่ถูกแชร์อย่างถูกต้องสำหรับโฟลเดอร์ที่แชร์ระดับบนสุดใหม่ ฉันมีผู้ใช้พิเศษ "key push"/สำรองข้อมูลที่อยู่ในทุกกลุ่ม โดยปกติการเข้าสู่ระบบในฐานะผู้ใช้นั้นแก้ปัญหาการแชร์คีย์ทั้งหมด แต่ไม่ใช่เมื่อบริการลดระดับ ไม่ว่าหน้าสถานะจะบอกอะไร...
สำหรับการรวมระบบ อาจง่ายหากคุณมี ACL ที่เหมาะสมพร้อมโมเดลสิทธิ์น้อยที่สุด เช่น หากผู้ใช้มีทั้งสิทธิ์อ่านและเขียนและสิทธิ์อ่านอย่างเดียวบนรายการหรือโฟลเดอร์ จะได้เฉพาะสิทธิ์อ่าน น่าเสียดายที่ ACL ขององค์กรของฉันไม่ดีที่สุด ดังนั้นฉันจึงใช้ API การจัดสรร JSON และ python ~500 บรรทัด เพราะการพึ่งพาใน ACL หลายร้อยของเราไม่แมปกับโมเดลสิทธิ์น้อยที่สุดได้ดี ในที่สุดฉันดึง ACL ทั้งหมดที่ผู้ใช้อยู่และทำการเดินสำรวจการพึ่งพา
หากโครงสร้าง ACL หรือกลุ่มของคุณสร้างโดยคำนึงถึงโครงสร้างสิทธิ์น้อยที่สุดอยู่แล้ว เครื่องมือซิงก์ AD/LDAP สำหรับ Windows ทำงานได้ดี
ติดต่อทีมขายของพวกเขา พวกเขาจัดช่วงทดลองรุ่นองค์กรที่ยาวกว่าได้ ตรวจสอบให้แน่ใจว่าคุณเข้าใจข้อจำกัดอย่างครบถ้วนก่อนลั่นไก เรามีความเจ็บปวดจากการเติบโตค่อนข้างมาก แต่นอกเหนือจากการหยุดทำงานหรือการลดระดับฝั่งเซิร์ฟเวอร์ ก็ราบรื่นอย่างเหลือเชื่อ
Bitwarden
Bitwarden มีเครื่องมือรอบข้างที่ดี (WebUI, CLI, มือถือ, เดสก์ท็อป) โฮสต์เองได้และตั้งค่าค่อนข้างง่าย เอกสารค่อนข้างดีและเป็นเครื่องมือที่ PrivacyTools แนะนำ
EnvKey
https://www.envkey.com/ เป็น saas นำไปใช้ รวมระบบ และจัดการได้ง่ายจริง ๆ
ฟีเจอร์:
ปกป้องคีย์ API และข้อมูลรับรองการเข้าสู่ระบบ
รักษาการกำหนดค่าให้ซิงก์กันทุกที่
การจัดการการกำหนดค่าและความลับที่เข้ารหัสแบบ end-to-end อย่างชาญฉลาด
ป้องกันการแบ่งปันที่ไม่ปลอดภัยและการกำหนดค่าที่กระจัดกระจาย
รวมระบบภายในไม่กี่นาที
ความสามารถ:
จัดการการกำหนดค่าและระดับการเข้าถึงสำหรับแอป สภาพแวดล้อม และทีมทั้งหมดของคุณในที่เดียว
กำหนดค่าสภาพแวดล้อมการพัฒนาหรือเซิร์ฟเวอร์ใดก็ได้ด้วยตัวแปรสภาพแวดล้อมเพียงตัวเดียว
ข้อดี:
หน้า Landing ที่ยอดเยี่ยม
ข้อเสนอคุณค่าที่ชัดเจน
เว็บแอปที่ยอดเยี่ยมด้านภาพ
ข้อมูลตัวอย่างที่เหนือกว่า เช่น Algolia, AWS, Datadog, GitHub, Stripe ฯลฯ
คุยกับผู้ก่อตั้ง 30 นาทีเกี่ยวกับบริษัท UI ฯลฯ Dane ฟังดูมีข้อมูลดี ตรงไปตรงมาเกี่ยวกับข้อดีข้อเสีย และเป็นพันธมิตรที่เป็นไปได้
บริษัทโดยพื้นฐานเป็นบริษัท Y Combinator ทั่วไปที่มีผู้ก่อตั้ง 1 คน ระดมทุนได้ $120K ในเดือน 2018-01
โฟกัสอยู่ที่การไปถึงฟีเจอร์ระดับองค์กร โดยเฉพาะการย้ายจากการโฮสต์คลาวด์ของ EnvKey ไปยังแบบ on-prem หรือ BYOC
หนทางข้างหน้าที่เป็นไปได้: เริ่มด้วย EnvKey เพื่อความเรียบง่าย จากนั้นภายหลัง (หรือควบคู่) เพิ่ม Vault
Confidant by Lyft
https://lyft.github.io/confidant/
Confidant เป็นบริการจัดการความลับแบบโอเพนซอร์สที่ให้การจัดเก็บและเข้าถึงความลับที่ใช้งานง่ายอย่างปลอดภัย จากนักพัฒนาที่ Lyft
การยืนยันตัวตน KMS: Confidant แก้ปัญหา "ไก่กับไข่" ของการยืนยันตัวตนโดยใช้ AWS KMS และ IAM เพื่อให้บทบาท IAM สร้างโทเค็นการยืนยันตัวตนที่ปลอดภัยซึ่ง Confidant ตรวจสอบได้ Confidant ยังจัดการ KMS grant สำหรับบทบาท IAM ของคุณ ซึ่งทำให้บทบาท IAM สร้างโทเค็นที่ใช้สำหรับการยืนยันตัวตนระหว่างบริการหรือสำหรับส่งข้อความที่เข้ารหัสระหว่างบริการได้
การเข้ารหัสขณะพักของความลับที่มีเวอร์ชัน: Confidant จัดเก็บความลับแบบเพิ่มอย่างเดียวใน DynamoDB และสร้างคีย์ข้อมูล KMS ที่ไม่ซ้ำสำหรับแต่ละการแก้ไขของแต่ละความลับ โดยใช้การเข้ารหัสลับแบบสมมาตรที่ยืนยันตัวตน Fernet
ส่วนติดต่อเว็บที่ใช้งานง่ายสำหรับจัดการความลับ: Confidant ให้ส่วนติดต่อเว็บ AngularJS ที่ช่วยให้ผู้ใช้ปลายทางจัดการความลับ การแมปความลับกับบริการ และประวัติการเปลี่ยนแปลงได้อย่างง่ายดาย
Devolutions Password Server
https://server.devolutions.net/
รักษาความปลอดภัย จัดการ และเฝ้าติดตามการเข้าถึงบัญชีและเซสชันที่มีสิทธิ์พิเศษ
ตู้นิรภัยรหัสผ่านที่ครอบคลุมและมีความปลอดภัยสูงที่ช่วยให้คุณควบคุมการเข้าถึงบัญชีที่มีสิทธิ์พิเศษของคุณ พร้อมทั้งปรับปรุงการมองเห็นเครือข่ายโดยรวมสำหรับผู้ดูแลระบบและให้ประสบการณ์ที่ราบรื่นสำหรับผู้ใช้ปลายทาง
ฟีเจอร์: ตู้นิรภัยรหัสผ่านขององค์กรแบบรวมศูนย์ ตู้นิรภัยส่วนตัวเฉพาะผู้ใช้ ตัวจัดการรหัสผ่าน การฉีดข้อมูลรับรอง การรวมกับ Active Directory การควบคุมการเข้าถึงตามบทบาท การยืนยันตัวตนสองปัจจัย พร้อมสำหรับองค์กร ข้อจำกัด IP ความสามารถในการจัดการ ตัวสร้างรหัสผ่านอัตโนมัติ การเข้าถึงผ่านแอปมือถือ ประวัติรหัสผ่าน รายงานการเข้าถึง การแจ้งเตือนทางอีเมล
รองรับการเข้ารหัสข้อมูล
รองรับโครงร่างการยืนยันตัวตนหลายแบบ รวมถึง LDAP, O365 และผู้ใช้ในเครื่อง พร้อมการรองรับ MFA จากหลายแหล่ง
หลายที่เก็บ/ตู้นิรภัยพร้อมการควบคุมการเข้าถึงอย่างละเอียดสำหรับหลายทีม
UI เว็บสมัยใหม่
ตู้นิรภัยส่วนตัวสำหรับข้อมูลรับรองและการเชื่อมต่อสำหรับข้อมูลรับรอง/การเชื่อมต่อส่วนตัว
แอปมือถือสำหรับ iOS/Android
บันทึกการตรวจสอบสำหรับทุกรายการ ใคร/อะไร/เมื่อใด พร้อมคำถามทางเลือกว่าทำไมจึงเข้าถึง
เทมเพลตที่ปรับแต่งได้ (แม้จะรองรับประเภทการเชื่อมต่อหลายร้อยประเภทแบบเนทีฟ)
ฟีเจอร์เพิ่มเติมอีกมากมายและไคลเอนต์หนักสำหรับ Windows/Mac (Remote Desktop Manager) ที่คุณซิงก์ได้และขยายตัวเลือกอย่างมาก... การเชื่อมต่อด้วยคลิกเดียว
ราคาไม่แย่ - สูงสุด 15 ผู้ใช้เซิร์ฟเวอร์รหัสผ่านราคา $500 ต่อปี
Secret Server by Thycotic
https://thycotic.com/products/secret-server/
ฟีเจอร์ของรุ่น on-premises:
ควบคุมระบบความปลอดภัยแบบ end-to-end และโครงสร้างพื้นฐานของคุณได้อย่างสมบูรณ์
ติดตั้งซอฟต์แวร์ในศูนย์ข้อมูล on-premises ของคุณเองหรืออินสแตนซ์ของคุณเองของเครือข่ายส่วนตัวเสมือน
ปฏิบัติตามพันธะทางกฎหมายและกฎระเบียบที่กำหนดให้ข้อมูลและระบบทั้งหมดอยู่ on-premises
ฟีเจอร์ของรุ่นคลาวด์:
โมเดลซอฟต์แวร์เป็นบริการให้คุณลงทะเบียนและเริ่มต้นได้ทันที
ความสามารถในการปรับขนาดแบบยืดหยุ่นเมื่อคุณเติบโต
การควบคุมและความซ้ำซ้อนที่ Azure ให้พร้อม SLA เวลาทำงาน 99.9%
ข้อเสนอแนะจากผู้ใช้:
เราเคยใช้ผลิตภัณฑ์นั้น มันหลีกเลี่ยงได้ง่ายมากและกฎใช้ได้เฉพาะกับคนฉลาด ผู้ใช้ขี้เกียจหรือโง่สามารถทำให้เสียได้ง่ายในพื้นที่ทีม ราคาต่อรองได้เมื่อคุณคุยกับพวกเขา
คุณรันมันด้วย SQL express และคอมพิวเตอร์ Win 7 ได้
ถูก