it-swarm-vi.com

Làm thế nào để một số trang web (ví dụ: ngân hàng trực tuyến) chỉ yêu cầu các ký tự cụ thể từ mật khẩu mà không lưu trữ dưới dạng bản rõ?

Tôi nghĩ Làm thế nào một hệ thống có thể thực thi số lượng ký tự thay đổi tối thiểu ... sẽ trả lời câu hỏi của tôi, nhưng có vẻ như đây là một trường hợp khác.

Khi tôi đăng nhập vào tài khoản ngân hàng trực tuyến của mình, tôi được nhắc ba chữ số ngẫu nhiên từ mã PIN bốn chữ số và ba ký tự ngẫu nhiên từ mật khẩu (dài, ngẫu nhiên) của tôi.

Từ hiểu biết hạn chế của tôi về tất cả những điều này, ngân hàng không thể tạo mật khẩu băm của tôi từ thông tin đăng nhập này vì họ không có toàn bộ mật khẩu của tôi. Vì vậy, họ đang lưu trữ mật khẩu của tôi trong Cleartext và so sánh các ký tự riêng lẻ? Đó có phải là một sự cân bằng tốt của sự thuận tiện/an ninh?

Nhắc nhở để đặt câu hỏi này bằng bài đăng trên blog này: Ai quan tâm đến bảo mật mật khẩu? NatWest không

66
alexmuller

Mặc dù tôi không biết rõ ràng cách các ngân hàng xử lý yêu cầu này, một quy trình thay thế cho quy trình mà @rakhi đề cập sẽ là sử dụng một HSM và mã hóa đảo ngược.

Ý tưởng là mật khẩu đầy đủ sẽ được lưu trữ trong cơ sở dữ liệu được mã hóa bằng mật mã đối xứng (ví dụ: AES). Sau đó, khi các ký tự mật khẩu được chuyển đến ứng dụng, chúng được đưa vào HSM cùng với mật khẩu được mã hóa.

Sau đó, HSM có thể giải mã mật khẩu và xác nhận rằng 3 ký tự như mong đợi, trả về phản hồi đạt/không đạt cho ứng dụng. Vì vậy, không có lúc nào mật khẩu được giữ rõ ràng (ngoài HSM được coi là an toàn).

Điều này sẽ liên kết với cách mà mã hóa PIN có thể được xử lý bởi các mạng ATM (ví dụ: mã hóa đối xứng và HSM)

30
Rory McCune

Bất cứ khi nào bạn gặp phải trường hợp biết điều gì đó về mật khẩu của mình ngoài hàm băm của mật khẩu đầy đủ là cần thiết, bạn có thể cho rằng mật khẩu không được băm. Mặc dù PCI-DSS đã được đề cập, không có quy định nào tôi biết về việc áp dụng cho các ngân hàng mã hóa hoặc băm thông tin mật khẩu. PCI-DSS không bao gồm thông tin tài khoản ngân hàng của bạn, bao gồm đăng nhập bằng PIN hoặc một số biến thể của thông tin đó.

Nếu chúng tốt, mật khẩu được lưu trữ bằng mã hóa. Nếu chúng không tốt như vậy, nó thực sự có thể được lưu trữ trong bản rõ.

Tôi thừa nhận tôi thích sự đánh đổi ở đây. Toàn bộ cơ sở dữ liệu mật khẩu có thể có nguy cơ bị tấn công cao hơn nếu bị xâm phạm, nhưng tôi phản bác rằng bảo mật tại các ngân hàng nên ở cấp cao hơn. Nếu một sự thỏa hiệp của cơ sở dữ liệu bị nghi ngờ, mọi thứ sẽ phải được thay đổi cho dù được băm hay mã hóa bằng mọi cách. Cả hai trường hợp Với phương pháp cụ thể này, sẽ mất nhiều thời gian hơn và mức độ phức tạp cao hơn cho kẻ tấn công để có đủ thông tin hữu ích để thực hiện một cuộc tấn công với keylogger.

Một cái gì đó liên quan đến tiếp tuyến: http://projecteuler.net/index.php?section=probols&id=79

17
Jeff Ferland

Chương trình của NatWest gây ấn tượng với tôi về giá trị đáng ngờ. Trong sơ đồ của NatWest, một cuộc tấn công lừa đảo có thể đánh cắp toàn bộ PIN và tất cả hoặc hầu hết mật khẩu của bạn. Đây là cách tấn công lừa đảo hoạt động.

  1. Trang web lừa đảo sẽ hiển thị màn hình đăng nhập giả mạo, yêu cầu 3 chữ số PIN và 3 ký tự của mật khẩu.

  2. Người dùng sẽ gõ câu trả lời của họ vào.

  3. Trang web lừa đảo hiện sẽ đưa ra phản hồi cho biết rằng mục nhập không chính xác và Nhắc lại người dùng.

  4. Nhiều người dùng có thể cho rằng họ đã nhập sai, và thử lại.

Nếu kẻ lừa đảo thông minh, Lời nhắc thứ hai từ trang lừa đảo sẽ yêu cầu một bộ chữ số và ký tự khác. Nếu người dùng thử lần thứ hai, thì trang lừa đảo có thể tìm hiểu tất cả 4 chữ số của PIN và 6 ký tự của mật khẩu người dùng. (Lưu ý rằng NatWest yêu cầu người dùng chọn mật khẩu chứa 6- 8 ký tự, vì vậy 6 ký tự của mật khẩu được đảm bảo là tất cả hoặc gần như tất cả.) Tại thời điểm đó, trò chơi kết thúc.

Do đó, tôi không rõ kế hoạch của NatWest mua cho bạn bất cứ thứ gì.

13
D.W.

Trong một câu hỏi tương tự , một nhận xét của @captaincomic đã liên kết với bài viết này: Mật khẩu một phần - Làm thế nào? (Từ Archive.org) Nó giải thích cách cho phép chức năng này không có lưu trữ mật khẩu ở dạng có thể phục hồi hoặc băm riêng từng ký tự - sử dụng sơ đồ chia sẻ bí mật Shamir.

8

Nó chỉ liên quan một cách hữu hình, nhưng David Aspinall (Đại học Edinburgh) và Mike Just (Đại học Glasgow Caledonia) đã xuất bản một bài báo về mật khẩu một phần vào năm 2013: "Đưa cho tôi thư 2, 3 và 6!": Triển khai mật khẩu một phần & Tấn công .

Bài viết của họ xem xét các cuộc tấn công trực tuyến mà cơ chế lưu trữ phụ trợ không liên quan, nhưng nó đưa ra một nhận xét vượt qua có hại cho câu hỏi của bạn:

Để hỗ trợ giao thức một phần, việc triển khai sẽ cần lưu trữ văn bản đơn giản cho mật khẩu hoặc nghĩ ra cơ chế thực hiện kiểm tra một chiều trên tất cả các kết hợp có thể được truy vấn (có thể là một số lượng lớn cho mật khẩu dài). Chúng tôi không điều tra chế độ tấn công này ở đây.

6
sampablokuper

Không có gì họ đang làm là băm từng ký tự và lưu trữ hoặc lưu trữ mật khẩu rõ ràng với hy vọng một thiết bị an toàn, ví dụ: HSM.

Đó không phải là một cách tiếp cận tồi; ngân hàng yêu cầu người dùng nhập một số ký tự (ví dụ: HSBC là 3 từ các vị trí ngẫu nhiên). Điều đó có nghĩa là nếu một trojan, logger hoặc trang lừa đảo chiếm được 3 ký tự đó thì họ không có mật khẩu đầy đủ.

Nó cũng cho phép ngân hàng sử dụng mật khẩu một phần để xác thực người dùng qua điện thoại, v.v. mà không cần dựa vào các câu hỏi bí mật hoặc mật khẩu khác, mà không cần người trung tâm cuộc gọi biết mật khẩu đầy đủ

Một vài vấn đề có lẽ là lý do tại sao nó không được sử dụng rộng rãi hơn:

  • Cái chính là bạn không muốn lưu trữ mật khẩu rõ ràng (thực tế là các quy định như PCI-DSS đã cấm). Vì vậy, cách tiếp cận là tạo một hàm băm một chiều của mật khẩu và lưu trữ nó. Khi người dùng nhập mật khẩu, mật khẩu này được băm và so sánh với hàm băm được lưu trữ, nếu chúng khớp với người dùng được xác thực. Với mật khẩu một phần, bạn phải lưu trữ mật khẩu bằng mã hóa đảo ngược, đây không phải là cách tốt nhất hoặc lưu trữ một số lượng lớn băm, ví dụ: đối với HSBC có ngày sinh nhật cộng với mỗi ký tự của mật khẩu yêu cầu băm riêng. Bạn cũng phải áp đặt độ dài mật khẩu tối đa để có thể phân bổ các trường trong cơ sở dữ liệu để lưu trữ tất cả các giá trị băm (mặc dù có thể có các công nghệ ứng dụng và cơ sở dữ liệu thông minh hơn bây giờ sẽ khắc phục điều này)

  • Nó khuyến khích người dùng chọn mật khẩu yếu, ví dụ: nếu tôi có mật khẩu phức tạp 8 ký tự: tpEz% e2S. Cố gắng nhớ những gì ký tự thứ 2, 4 và 5 là khó, điều này khuyến khích người dùng chọn một từ điển Word đơn giản.

  • Ngoài ra, nếu không có tính năng loại khóa tài khoản, bạn có thể dễ đoán theo cấp số nhân hoặc vũ phu 3 ký tự hơn 8 ký tự.

  • Niềm tin rằng mật khẩu đầy đủ không được biết có thể bị đặt sai, ví dụ: nếu mật khẩu là Fulham và bạn biết F, l, h, bạn có thể đoán đúng mật khẩu đầy đủ

  • Một trang web lừa đảo chỉ yêu cầu mật khẩu thứ 1, thứ 3, thứ 5 sau đó nói mật khẩu không chính xác và thay đổi để yêu cầu thứ 2, thứ 4, thứ 6 cũng có thể nhận được mật khẩu đầy đủ vì người dùng có thể sẽ nhập mật khẩu trước khi họ nghĩ hai lần

  • Từ góc độ tiện lợi của người dùng, điều đó có nghĩa là họ không thể sử dụng trình duyệt nhớ mật khẩu hoặc trình quản lý mật khẩu như Lastpass hoặc 1Password

Hầu hết các ngân hàng đang chuyển từ việc dựa vào tên người dùng và mật khẩu, ví dụ: HSBC cung cấp mã thông báo RSA cho khách hàng doanh nghiệp, Barclays có đầu đọc thẻ thông minh EMV, hầu hết tất cả đều sử dụng công nghệ phát hiện như xác thực thích ứng RSA để thiết lập đường cơ sở của trình duyệt, vị trí, hồ sơ sử dụng, vận tốc, vv để xác thực thụ động và phát hiện sử dụng trái phép.

2
Rakkhi