it-swarm-vi.tech

Tính khả dụng và bảo mật cho người dùng truy cập và xử lý mật khẩu trong một ứng dụng web?

Tôi đang xem xét việc kết hợp một trang web nhắm đến người dùng thông thường sẽ xử lý dữ liệu cá nhân mà tôi không muốn bị xâm phạm. Làm thế nào tôi có thể làm cho trang web an toàn nhưng cũng có thể sử dụng được?

Có vẻ như hầu hết các trang web sử dụng một định danh người dùng (địa chỉ email có vẻ tốt nhất) và mật khẩu, được hiểu khá rõ.

Một số trang web ngân hàng vượt xa điều này bằng cách có PIN hoặc câu hỏi bảo mật tiếp theo từ số nhận dạng tiêu chuẩn hoặc thay thế mật khẩu. Tôi rất muốn nghe về bất kỳ giải pháp thay thế nào đã chứng minh thành công về mặt này .

Tôi cũng đã nghe nói về việc cho phép người dùng chọn colourscheme của riêng họ hoặc xem và cảm nhận cho một trang web một khi họ được xác định để làm cho việc lừa đảo chi tiết tài khoản trở nên khó khăn hơn. Có ai biết các trang web sử dụng này và nó hoạt động tốt như thế nào?

Điểm yếu thực sự trong hầu hết các hệ thống đối với tôi là cơ sở đặt lại mật khẩu. Bởi vì người dùng quên mật khẩu của họ toàn bộ thời gian, chúng tôi cần phải có một cái gì đó để giúp họ ở đây, nhưng dường như rất khó để đạt được sự cân bằng giữa không an toàn và hữu ích khủng khiếp. Một lần nữa, cách tiếp cận câu hỏi bảo mật người dùng dường như được sử dụng rộng rãi ở đây, nhưng hai mặt của vấn đề này tôi gặp phải là có một câu hỏi mà người dùng đặt ra và đưa ra câu trả lời hoặc có một số câu hỏi không thay đổi về người dùng.

Với một câu hỏi do người dùng cung cấp, tôi không tin họ không đưa ra câu hỏi "1 + 1" là gì cho dù bạn có cố gắng nói với họ rằng đây là rất quan trọng.

Với những câu hỏi không thay đổi - và nếu bạn hỏi ý kiến ​​của người dùng về những thứ thay vì những sự thật đơn giản, họ có nhiều khả năng thay đổi - họ có xu hướng biến thành loại (tên cha mẹ, thú cưng đầu tiên) thực sự khá dễ tìm ra nếu bạn đang nhắm mục tiêu một người dùng để tấn công.

Tôi nhận ra rằng sẽ luôn có một sự thỏa hiệp ở đây giữa những gì an toàn và những gì dễ sử dụng, nhưng nó phải có thể làm tốt hơn hầu hết các trang web hiện nay. Bạn có thể đề xuất bất kỳ cách tiếp cận ít thông thường nhưng đáng tin cậy để bảo mật tài khoản người dùng? Tôi đã nghe nói về lưới hình ảnh, captcha tùy chỉnh và vân vân - có kinh nghiệm nào trong số này trong thực tế không? Có bất kỳ trang web nào quản lý điều này đặc biệt tốt và nếu hiển thị như thế nào/tại sao chúng hoạt động?

10
glenatron

Câu hỏi hay.

Phiên bản ngắn

Có một số tùy chọn vượt ra ngoài tên người dùng/email/mật khẩu như hầu hết các trang web làm. Bạn không thể giải quyết vấn đề bảo mật cuối cùng, nhưng bạn có thể giáo dục. Có những lựa chọn thay thế cho captcha. Bảo mật và dễ sử dụng là một cuộc tranh luận không hồi kết, lành mạnh.

Tùy chọn bảo mật bổ sung trong quá trình đăng nhập

  • Yahoo! sử dụng khái niệm " đăng nhập con dấ ", trong đó bạn có thể chọn một số văn bản hoặc hình ảnh và tùy chỉnh đó sẽ được lưu trong cookie và hiển thị trên trang đăng nhập khi bạn quay lại. Ý tưởng ở đây là nó giúp ngăn chặn các cuộc tấn công lừa đảo: thay vì giải thích các chi tiết kỹ thuật về lừa đảo cho người dùng và mong họ nhớ những điều như "đảm bảo url bắt đầu bằng https://www.yahoo.com ", bạn chỉ cần yêu cầu người dùng tìm kiếm văn bản hoặc hình ảnh tùy chỉnh của họ trên trang. Nếu nó không ở đó, bạn không ở đúng trang web, vì vậy đừng cung cấp thông tin đăng nhập của bạn.

  • World of Warcraft sử dụng Blizzard Authenticator , đây là thiết bị bạn có thể đặt hàng và đã giao cho bạn, hoặc ứng dụng iPhone/Android. Cả hai đều tạo một mã duy nhất gắn liền với tài khoản của bạn mỗi phút. Khi bạn đăng nhập, bạn cần cung cấp địa chỉ email, mật khẩu tài khoản đã đăng ký Battle.net và mã xác thực Blizzard. Mặc dù là một trò chơi, World of Warcraft là một lục địa lừa đảo của riêng mình, cách tiếp cận này đã tỏ ra cực kỳ hiệu quả trong việc giảm số lượng tài khoản bị hack thông qua lừa đảo (kể cả khi bạn hack vào tài khoản email của ai đó và lấy hoặc thay đổi mật khẩu World of Warcraft của họ , bạn không thể đăng nhập trừ khi bạn có mã Authenticator được đồng bộ hóa cụ thể thực tế đó). Điều đáng chú ý là Authenticator có thể hack về mặt lý thuyết, nhưng phải mất nhiều công sức hơn để làm điều đó.

  • myOpenID sử dụng con dấu tương tự với Yahoo! gọi là "biểu tượng cá nhân của bạn". Vì OpenID có ý nghĩa bảo mật bổ sung (ví dụ: nếu bạn có quyền truy cập vào OpenID của tôi, giờ đây bạn có khả năng có quyền truy cập vào tất cả các trang web tôi sử dụng với OpenID đó), mọi tùy chọn đối với việc tăng cường bảo vệ đều giúp ích rất nhiều. Tuy nhiên, tôi không nghĩ rằng hầu hết người dùng phi kỹ thuật đều có tài khoản OpenID với các nhà cung cấp OpenID, vì vậy điều này có thể ít gây ảnh hưởng lớn. Tuy nhiên, tốt cho JanRain vì đã đi thêm một dặm.

Phải làm gì khi người dùng cung cấp câu hỏi và câu trả lời bảo mật rõ ràng

Đây là một vấn đề bạn không thể giải quyết và nó không thực sự là trách nhiệm của bạn. Những gì bạn nên tập trung vào là thúc đẩy hành vi đúng trong người dùng của bạn bằng cách giáo dục họ về những gì họ cần chú ý. Tùy thuộc vào loại cơ sở người dùng mà bạn có, bạn có thể ít nhiều gây hấn với nó - ví dụ: Yahoo! và Blizzard rất năng nổ và cũng thực hiện hỗ trợ bảo mật chủ động hơn, như đã đề cập ở trên.

Một số điều bạn có thể làm:

  • Nhắc người dùng sử dụng một mật khẩu duy nhất bao gồm không chỉ các ký tự chữ và số
  • Giải thích rằng mật khẩu nên được tạo từ các từ không tồn tại và giúp giải thích cách tạo mật khẩu dễ nhớ phù hợp với khuôn đó
  • Sử dụng bản sao rõ ràng trong luồng mà người dùng tạo câu hỏi đặt lại mật khẩu bảo mật và nhấn mạnh tầm quan trọng của việc hỏi những câu hỏi không tầm thường mà người khác sẽ không biết câu trả lời
  • Cung cấp các ví dụ về câu hỏi mà mọi người có thể sử dụng ( không cung cấp các ví dụ như "tên thời con gái của mẹ", có thể dễ dàng tìm thấy qua Facebook những ngày này)
  • Viết a FAQ cung cấp mẹo về cách bảo mật tài khoản của bạn. Vì webmail là lỗ hổng bảo mật được sử dụng thường xuyên, hãy cung cấp các mẹo cơ bản về bảo mật tài khoản email của bạn và cách xem các nỗ lực lừa đảo

Hãy là một chủ sở hữu trang web có trách nhiệm. Tôi ví nó như đào tạo các trạm có dấu hiệu cho biết "coi chừng bị móc túi" - trách nhiệm của cá nhân là không để ví của bạn trong tầm nhìn rõ ràng và sau đó khiếu nại khi bị đánh cắp. Nhưng thật tuyệt khi ban quản lý nhà ga nhắc nhở mọi người ghi nhớ mọi thứ. Vấn đề trên Web là nhiều người không biết phải tìm gì hoặc làm thế nào để xác định các mối đe dọa. Chúng tôi có thể giúp đỡ bằng cách liên tục, liên tục giáo dục mọi người mà chúng tôi tiếp xúc.

Captchas và các lựa chọn thay thế

Captchas tồn tại vì hai lý do: một, để ngăn chặn trang web của bạn khỏi bị DDOS và hai, để ngăn chặn tin tặc thực hiện các cuộc tấn công từ điển. Nhưng nhược điểm là, trong hầu hết các trường hợp, họ rất không thân thiện và hoàn toàn không " Đừng làm tôi suy nghĩ ".

Nếu bạn muốn ngăn chặn, hoặc ít nhất là can ngăn, tấn công từ điển, hãy xem xét thêm một bộ đếm thời gian vào màn hình đăng nhập tăng cho mỗi lần thử (sau một số nhất định). Hầu hết người dùng sẽ nhận được sau, giả sử, 5 lần thử, và nhiều hơn thế nữa là hành vi đáng ngờ. Làm cho các cuộc tấn công từ điển gây khó chịu để thực thi bằng cách gây ra vấn đề cho người phạm tội, không phải người dùng thường xuyên.

Bảo mật và dễ sử dụng

Jakob Nielsen đã gây ra một sự giật gân vào năm ngoái khi ông viết rằng các trường mật khẩu có vấn đề về khả năng sử dụng và nên dừng việc che dấu đầu vào của họ . Ông lập luận rằng việc che giấu đầu vào chỉ thực sự ngăn chặn rò rỉ bảo mật khi có ai đó đứng ngay sau bạn, và đó không phải là trường hợp 99%, vậy tại sao làm cho mọi thứ khó sử dụng hơn chỉ cho trường hợp Edge? Là một chuyên gia về khả năng sử dụng, thật khó để tranh luận với anh ta. Và chuyên gia bảo mật Bruce Schneier thậm chí đã đồng ý với anh ta!

Vì vậy, bảo mật và dễ sử dụng là một vấn đề gây tranh cãi không thể thực sự được giải quyết. Và đó là một lý lẽ lành mạnh: nếu mọi thứ đi quá xa theo cả hai hướng, điều đó sẽ không tốt cho người dùng cuối. Là một nhà thiết kế giao diện người dùng, điều quan trọng là nhận ra các đối số của các chuyên gia bảo mật và tính đến những điều đó khi thiết kế trải nghiệm người dùng của bạn.

9
Rahul

Trên thực tế, với hầu hết các nhà cung cấp ngoài đó cung cấp API đăng nhập (thường dựa trên Open Auth), bạn thậm chí không cần phải xử lý các vấn đề đăng nhập/xác thực người dùng. Chỉ cần người dùng của bạn đăng nhập bằng Facebook, Google, Yahoo, Twitter, v.v ... Tôi cảm thấy rằng Google, Microsoft, Yahoo, et. al. sẽ làm tốt hơn việc bảo mật thông tin đăng nhập và xử lý cài đặt lại mật khẩu so với tôi. Đây thực sự là trường hợp tốt nhất cho người dùng của bạn vì họ không cần phải nhớ một bộ thông tin đăng nhập mới và, trong hầu hết các trường hợp, nếu họ đã đăng nhập vào thư của họ, họ sẽ không nhập lại mật khẩu. Đó là đăng nhập hoàn hảo bằng một cú nhấp chuột (không cần gõ).

Có hai vấn đề nhỏ để thực hiện công việc này. (1) Bạn phải hỗ trợ một số lượng lớn các nhà cung cấp đăng nhập để đảm bảo bạn nắm bắt được tất cả người dùng của mình mà không làm phiền họ. (2) Bạn phải hỗ trợ và khuyến khích liên kết tài khoản để người dùng có thể thêm nhiều nhà cung cấp đăng nhập vào tài khoản của họ tại trang web của bạn vì nhà cung cấp có thể (và thường làm mà không cảnh báo) thay đổi API của họ hoặc ngừng bảo trì để khóa những người dùng đó một cách hiệu quả của trang web của bạn.

Về phía bạn, bạn thường có thể truy xuất thông số người dùng trực tiếp từ nhà cung cấp để người dùng không phải nhập thông tin như địa chỉ e-mail, tên, điện thoại, v.v.

1
Jonathan

Thành thật mà nói, là một lập trình viên, tôi không thực sự thích các bước bảo mật/câu hỏi cá nhân vì các câu trả lời có thể được nhập sai từ quan điểm lập trình nghiêm ngặt. Điều gì xảy ra nếu câu trả lời của họ là một cái tên, nhưng họ không nhớ nếu họ đặt toàn bộ tên hoặc chỉ tên ngắn của họ hoặc chỉ tên họ của họ, hoặc họ bỏ lỡ một dấu nháy đơn và không nhận ra.

Captchas (thuộc nhiều loại khác nhau) mặt khác đòi hỏi một câu trả lời trắng đen. Nó hợp lệ hoặc không. Điều đó đang được nói, khả năng đọc của captcha đôi khi gây ra vấn đề cho người dùng. Hầu hết đều có thể đọc được, nhưng một số chỉ bị cắt xén.

Tôi nghĩ rằng phương pháp yêu cầu xác minh e-mail khi đặt lại mật khẩu luôn có vẻ khá an toàn đối với tôi, vì nó rõ ràng yêu cầu tôi phải biết chi tiết đăng nhập của mình để hệ thống giây (tài khoản thư của tôi) truy cập liên kết trở lại đến trang web để yêu cầu mật khẩu mới.

0
Nick Bedford