2012-01-10 65 views
26

Tôi đang tìm cách thiết kế một ứng dụng web lưu trữ thông tin cá nhân một cách an toàn bằng MongoDB. Tôi muốn mã hóa toàn bộ cơ sở dữ liệu nhưng có vẻ như nó không được hỗ trợ. Tôi có thể thực hiện các tuyến đường nào để mã hóa cơ sở dữ liệu của mình?Mã hóa cơ sở dữ liệu MongoDB

+0

Bạn có thể mã hóa dữ liệu bạn chèn vào (làm cho truy vấn lộn xộn) và/hoặc bạn có thể mã hóa hệ thống tệp nơi lưu trữ DB và/hoặc bạn có thể mã hóa kết nối ổ cắm. Mô hình mối đe dọa là gì? – symcbean

+1

Tôi muốn tạo một trình tổ chức cá nhân dựa trên đám mây để quản lý mật khẩu và các dữ liệu cá nhân khác. Tôi muốn đi một bước xa hơn là chỉ mã hóa dữ liệu đang đi vào cơ sở dữ liệu - tôi không muốn biết loại dữ liệu người dùng đang gửi. Tôi đang hướng tới việc đặt cơ sở dữ liệu trên ổ đĩa được mã hóa nhưng vẫn khiến tôi gặp rủi ro về bảo mật khi khối lượng được gắn kết. – devnill

Trả lời

10

MongoDB 3.2 (Phát hành trong November 2015) cung cấp một công cụ lưu trữ được mã hóa. Không cần phải sử dụng API của bên thứ ba để mã hóa dữ liệu của bạn trước khi chèn hoặc mã hóa toàn bộ ổ đĩa. Bạn có thể tìm thêm chi tiết here.

Nó hoạt động với công cụ lưu trữ WiredTiger, đã được đưa vào thay thế cho công cụ lưu trữ MMAPv1 mặc định kể từ 3.0. Nếu cơ sở dữ liệu của bạn vẫn đang sử dụng MMAPv1, hãy đọc this guide để biết các bước chuyển đổi cơ sở dữ liệu từ MMAPv1 sang WiredTiger.

+18

Điều đáng lưu ý là tính năng này chỉ có trong phiên bản MongoDB Enterprise. –

10

Câu hỏi hay! Với Big Data ngày càng tăng, việc bảo mật dữ liệu ở phần còn lại quan trọng hơn bao giờ hết!

MongoDB không hỗ trợ trực tiếp, nhưng Gazzang Mã hóa & Nền tảng quản lý khóa đã được thiết kế riêng cho MongoDB (mặc dù nó hoạt động với các hệ thống cơ sở dữ liệu NOSQL khác). Đây là giải pháp thương mại được xây dựng trên hệ thống tệp mã hóa được mã hóa eCryptfs mã nguồn mở trong Linux và nó thực hiện mã hóa trên hệ thống tệp cơ bản theo cách bảo mật được tối đa hóa với các hiệu ứng bất lợi tối thiểu về hiệu suất.

Với danh sách điều khiển truy cập có thể tùy chỉnh, dữ liệu MongoDB không mã hóa của bạn sẽ chỉ có thể truy cập được bởi người dùng hoặc quy trình bạn chọn. Hãy xem số Big Data Security whitepaper này hoặc truy cập www.securingbigdata.com để biết thêm thông tin.

Tiết lộ đầy đủ: Tôi đang làm việc cho Gazzang.

+0

Giải pháp của bạn có phù hợp với cá nhân không? tức là không phát triển bất cứ thứ gì để bán hoặc phân phối? Tôi hiện đang sử dụng sqlcipher để mã hóa cá nhân của tôi sqlite dbs, với ý tưởng được rằng tôi sau đó có thể lưu trữ một cách an toàn cơ sở dữ liệu được mã hóa trong một cái gì đó giống như DropBox. Về cơ bản nó là một "Tôi tin tưởng khách hàng và quá trình máy chủ vì vậy tôi không sao với các phím đi qua giữa chúng, nhưng không phải là lưu trữ được đọc" mô hình, do đó, không có gì không mã hóa chạm vào phương tiện lưu trữ. – Michael

+0

@benjamincarter liên kết đầu tiên liên quan đến báo cáo chính thức không còn khả dụng nữa. –

1

Tôi khuyên bạn nên sử dụng LUKS để mã hóa khối lượng dữ liệu của mình. Nó khá đơn giản để thiết lập và quản lý so với mã hóa dựa trên hệ thống tập tin. Nó cũng di động với nhiều hương vị khác nhau của Linux và cũng linh hoạt để cho phép bạn thay đổi mật khẩu của mình. Nếu bạn cần một giải pháp ra khỏi hộp Scalegrid.io encryption support cung cấp tính năng này trong trình hướng dẫn tạo cụm MongoDB

Disclaimer: Tôi là người sáng lập ra Scalegrid.io

+0

bạn đã kiểm tra LUKS với Mongo chưa? –

+0

Có. LUKS hoạt động khá tốt với mongo - bạn có quan tâm đặc biệt với nó không? – Dharshan

+0

Tôi muốn nhận được một ý kiến ​​được thông báo từ một người đã làm điều này trước khi tôi cố gắng mạo hiểm hơn nữa. cảm ơn bạn –

Các vấn đề liên quan