Lưu trữ mật khẩu (mã hóa) trên GitHub có an toàn không?


21

Tôi đang sử dụng pass để xử lý tất cả mật khẩu của mình. Chúng được mã hóa bằng GPG với khóa 4096 bit, sử dụng thuật toán SHA256. Tôi đang sử dụng một mật khẩu khác nhau cho mỗi lần đăng nhập trong cửa hàng mật khẩu của mình.

Một trong những tính năng thú vị của pass là mọi thứ được giữ trong một thư mục với hệ thống phân cấp đẹp, hoàn hảo để thiết lập một repo git (pass thậm chí còn cung cấp khả năng đó). Tôi muốn cập nhật mật khẩu trên tất cả các máy tính của mình.

Có an toàn không khi đẩy kho lưu trữ git pass sang kho lưu trữ GitHub riêng? Nếu không, liên kết yếu là gì?


Tôi không khuyên bạn nên làm điều này. Một lý do, là bạn để lại mật khẩu được mã hóa sẽ bị tấn công ngoại tuyến.
heavyyd

Xem xét đó là một repo riêng, tôi sẽ cho rằng (cũng như các khách hàng của GitHub) rằng không ai ngoại trừ chính GitHub sẽ có quyền truy cập vào repo. Trừ khi, tất nhiên, bằng cách nào đó, tôi bằng cách nào đó cam kết một repo sai một ngày.
Nicolas Mattia

1
Ngoài ra, không ai có quyền truy cập vào khóa GPG, vì vậy ai đó sẽ cần phải phá vỡ mã hóa 4096 bit, điều này khó có thể xảy ra ngay cả đối với một cuộc tấn công vũ phu ngoại tuyến
Nicolas Mattia

1
Trừ khi họ làm hỏng và mật khẩu khóa riêng là Mật khẩu1;) chỉ vì tôi đã đưa nó lên một lần hôm nay, tôi vẫn nghĩ siêu cá sử dụng tên của công ty đó là mật khẩu (komodia). Nó chỉ làm cho nó dễ dàng hơn để crack, nhưng vẫn còn. Sai lầm ngu ngốc làm cho mật khẩu dễ dàng hơn để giải mã.
dakre18

Cấp độ @ dakre18 chuyển từ "không thể xảy ra" sang "giải mã hài hước"
m3nda

Câu trả lời:


13

Câu trả lời tuyệt vời

Bạn có thể đặt pass repo github.

Trả lời dài dòng

Repo pass của bạn được mã hóa GPG bằng bất kỳ khóa riêng nào bạn đã chọn, do đó, nó là bằng chứng đạn như khóa bạn đã chọn. Hơn nữa, khóa riêng của bạn không được lưu trong repo pass của bạn. Điều này có nghĩa là vị trí riêng tư và công khai của các tệp mật khẩu được mã hóa của bạn không phải là liên kết yếu trong bảo mật của người quản lý mật khẩu của bạn. Thay vào đó, đó là khóa riêng mà bạn đã mã hóa chúng mà bạn phải lo lắng.

Hãy chắc chắn rằng đó là một khóa tốt (như khóa bạn đã đề cập) và không để lộ cho bất kỳ ai vì họ sẽ không phải bẻ khóa chìa khóa lớn đó để sử dụng nó. Họ sẽ phải gõ mật khẩu của bạn, và, hãy đối mặt với nó, thật khó để chắc chắn mật khẩu của bạn đủ tốt để ngăn chặn tất cả mọi người .

Vì vậy, đừng để bất cứ ai khác nhìn thấy chìa khóa của bạn. Nếu bạn di chuyển khóa riêng của mình đến từng máy tính sử dụng pass, thì bạn có thể lấy repo pass của mình từ github và sử dụng khóa riêng được lưu trữ trên các máy tính đó. Bây giờ tất cả họ sẽ được đồng bộ hóa và an toàn.

Thêm hai điều cần xem xét

Toàn bộ điểm vượt qua là giữ mật khẩu của bạn được mã hóa. Nếu bạn không ổn khi họ ở trên github.com, thì điều bạn thực sự tin tưởng là vị trí riêng tư của họ chứ không phải trạng thái được mã hóa của họ. Nếu đó là trường hợp, tại sao lại mã hóa chúng? Bạn chỉ có thể sử dụng cùng các tệp phẳng chuyển qua sử dụng và không bận tâm mã hóa chúng. Điều đó sẽ khá thuận tiện!

Ngoài ra, hãy nhớ rằng làm cho trình quản lý mật khẩu của bạn dễ sử dụng hơn có nghĩa là bạn sẽ ít muốn / cần phải lật đổ nó hơn. Bất cứ lúc nào bạn phải thực hiện công việc của mình cho nó (ví dụ: đặt lại mật khẩu trên tài khoản vì mật khẩu an toàn tốt đẹp đã được tạo trên một máy tính khác và bạn chưa được đồng bộ hóa thủ công, nhưng bạn phải truy cập ngay) Sẽ giảm bảo mật mà nó cung cấp.


Tôi nghĩ rằng bạn đang thực hiện ba điểm thực sự tốt: 1) khóa mã hóa không có trên máy chủ 2) có ai đó thấy mật khẩu của tôi là lý do tại sao nó được mã hóa ở vị trí đầu tiên 3) ngón tay vụng về của tôi chủ yếu được lấy ra khỏi vòng lặp. Nhưng như @Jens đã nói, sau đó tôi đã tin tưởng vào phần mềm.
Nicolas Mattia

1
Pass đủ đơn giản để bạn không thực sự tin tưởng Pass, bạn đang tin tưởng PGP. Điều đó đang được nói, vâng, bạn vẫn phải tin tưởng PGP. Suy nghĩ của tôi về điều đó là, tại sao lại sử dụng PGP cho bất cứ điều gì nếu bạn không tin rằng nó mã hóa công cụ?
Tyler Abair

7

Điều này sẽ an toàn, nhưng sẽ khiến bạn gặp rủi ro bổ sung so với việc không lưu trữ mật khẩu ở nơi công cộng.

  • Vô tình tải lên các mật khẩu không được mã hóa (bạn sẽ không cố tình làm điều đó, nhưng chắc chắn nó có thể không xảy ra do tai nạn hoặc do một số lỗi phần mềm?)
  • Điểm yếu không xác định trong RSA hoặc mã hóa đối xứng đang sử dụng
  • Mô hình sử dụng được tiết lộ (số liệu thống kê mạnh mẽ)
  • Vô tình phát hành mã thông báo truy cập của bạn dẫn đến dữ liệu công khai; nếu bạn giữ kín điều đó, bạn sẽ an toàn hơn nhiều
  • Trường hợp xấu nhất là toàn bộ lịch sử lưu trữ mật khẩu của bạn bị tiết lộ, so với chỉ hiện tại

Nói cách khác: nếu bạn không mắc lỗi, hãy tin tưởng vào phần mềm và toán học đằng sau thuật toán mã hóa vẫn an toàn lưu trữ công khai lưu trữ mật khẩu được mã hóa. Nếu bạn nghi ngờ bất kỳ ai trong số đó (và cá nhân tôi, thì niềm tin của tôi sẽ chính xác theo thứ tự này, với sự mất niềm tin vào bản thân với tư cách là người dùng có tính bảo mật cao trong toán học phía sau), hãy giữ kín cửa hàng.

Bạn đã bao giờ đăng một mật khẩu riêng trong một số cửa sổ trò chuyện do tai nạn xuất hiện chưa? Tôi biết một nhóm người đã làm, bao gồm cả bản thân tôi.


3

Đây là một câu hỏi hay, vì nó đã từng là một vấn đề trong quá khứ khi ai đó đặt mật khẩu riêng vào kho lưu trữ công cộng.

Hãy nghĩ về nó theo cách này, cách tốt nhất là không lưu trữ tệp đó (cùng với bất kỳ tệp nhạy cảm nào khác) trong kho lưu trữ công khai, ngay cả khi đó là riêng tư. Thật tốt khi sao lưu nó ở đâu đó, nhưng nếu giả sử mật khẩu của bạn đã được truy xuất bằng cách nào đó (ví dụ trang web của bên thứ ba), họ có thể truy cập github của bạn và vẫn lấy lại mật khẩu. Trường hợp xấu nhất, nhưng nó vẫn có thể. Tôi thường đề nghị có một số loại tệp được lưu trữ trên ổ cứng ngoài và có thể lưu trữ ổ cứng ở đâu đó trong trường hợp có hỏa hoạn.

Nếu bạn thực sự muốn sử dụng một kho lưu trữ hoặc đám mây để lưu trữ nó, chỉ cần làm mọi thứ bạn có thể để giữ an toàn.

Nhìn chung, đó không phải là ý tưởng tốt nhất. Đó không phải là điều tồi tệ nhất, nhưng tốt nhất là nghĩ về "chuyện gì sẽ xảy ra nếu?" kịch bản. Nó có thể không bao giờ xảy ra với bạn, nhưng nếu nó đã xảy ra, nó có đáng để gặp rắc rối không?

Chỉnh sửa: Tôi đã nghĩ về các chương trình trong một số bài đăng của tôi, vì vậy tôi đã cắt nó ra để bạn trả lời câu hỏi của bạn tốt hơn.


0

Một trong những tính năng thú vị của pass là mọi thứ được giữ trong một thư mục với hệ thống phân cấp đẹp, hoàn hảo để thiết lập một repo git

Tôi nghĩ rằng nó không an toàn. Đối với tất cả tài khoản của bạn (cấu trúc thư mục) không được mã hóa. Chỉ có mật khẩu đã được bảo vệ bởi gpg.

(vượt qua thậm chí cung cấp khả năng đó)

Nếu làm điều đó bằng cách sử dụng khả năng của pass. Có lẽ nó an toàn hơn. Nhưng bạn cần xây dựng lại cửa hàng của mình bằng cách sử dụng "pass git init".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.