Có bất kỳ lý do hợp lệ cho việc không cho phép các ký tự và giới hạn độ dài của mật khẩu không?


39

Tôi đã đi qua khá nhiều trang web giới hạn độ dài mà chúng cho phép mật khẩu và / hoặc không cho phép một số ký tự nhất định. Điều đó giới hạn với tôi khi tôi muốn mở rộng và kéo dài không gian tìm kiếm mật khẩu của mình. Nó cũng mang lại cho tôi cảm giác khó chịu rằng họ có thể không bị băm.

tốt lý do cho một trong hai thiết lập chiều dài trên hoặc không bao gồm ký tự trong mật khẩu?


26
Chắc chắn rồi! Nó làm cho việc giả mạo mật khẩu của mọi người trở nên dễ dàng hơn! : P
Thất vọngWithFormsDesigner

4
Chúng ta đang nói lý do "Kỹ thuật" hợp lệ hay lý do "Kinh doanh" hợp lệ?
Martin York

1
@Martin: Tôi đã suy nghĩ kỹ thuật nhưng tôi cho rằng.
chris

11
@JYelton Tại sao bạn quan tâm độ dài mật khẩu ban đầu là gì? Băm sẽ luôn có cùng kích thước. Tôi chắc chắn hy vọng bạn không lưu trữ chúng trong bản rõ ...
Pewpewarrows

Câu trả lời:


27

Không

Không có tốt lý do.

EDIT: Tôi không thể chứng minh rằng không có lý do chính đáng, bởi vì người ta không thể chứng minh điều tiêu cực. Tôi có thể nghĩ rằng không có lý do chính đáng nào cho việc này - như những người khác đã chỉ ra, hàm băm sẽ có cùng kích thước bất kể kích thước của đầu vào và loại bỏ các ký tự hợp lệ (khỏi ngữ cảnh câu hỏi) chỉ làm giảm không gian trạng thái. Câu trả lời dường như rõ ràng trên khuôn mặt của nó: không lý do chính đáng. Có thể có một số lượng lớn lý do nghe có vẻ tốt hoặc có vẻ tốt, nhưng chúng không phải là. Nếu đúng như vậy, ai đó đã đăng chúng ở đây hoặc nếu không có ở đây thì chắc chắn trên security.stackexchange.com, và câu trả lời này sẽ không được đánh giá quá cao.


3
Tôi đồng ý, nhưng nhận xét Kissaki đưa ra về mã hóa là hợp lệ. Một số ngăn xếp / lập trình viên dường như không thể có được mã hóa chính xác, vì họ giới hạn ASCII là một bản hack rẻ tiền để làm cho nó hoạt động.
edA-qa mort-ora-y

10
Bạn có thể ít nhất cố gắng để xây dựng? Hoặc bạn không biết điều này vì một sự thật, hoặc bạn có lý do để tin rằng những lý do phổ biến / hiện tại không hợp lệ. Cung cấp cho bạn lợi ích của sự nghi ngờ và giả định sau này, bạn nên giải thích lý do tại sao những lý do đó không hợp lệ.
Aaronaught

8
-1 - Tôi có thể nghĩ ra một số lý do chính đáng để giới hạn mật khẩu cho một bộ ký tự nhất định. Tương tự như vậy, việc phải hỗ trợ mật khẩu điện thoại cảm ứng cũng như mật khẩu bạn gõ qua bàn phím cũng là một tình huống bạn phải ghi nhớ.
rjzii

9
-1. Không biện minh, chỉ là ý kiến. Nếu bạn định đưa ra một tuyên bố chăn, hãy sao lưu nó.
Michael K

4
Điều này hiện đang được thảo luận trên trang web thảo luận meta của chúng tôi : sẽ hữu ích để hiểu lý do tại sao một câu trả lời một từ rất phổ biến và chúng ta có thể làm gì để cải thiện chất lượng câu trả lời như thế này.

25

Giới hạn độ dài có thể là một biện pháp để giới hạn thời gian thực hiện băm cũng như giới hạn băng thông (và cả hai đều thực sự không đáng kể). Ngoài ra, không có lý do chính đáng, đặc biệt là từ quan điểm bảo mật.

Người ta có thể nói: Người dân sẽ quên mật khẩu dài hơn dễ dàng hơn - nhưng đó thực sự là một tuyên bố ngu ngốc và hoàn toàn không đi đến điểm chính.

Đối với các ký tự, miễn là bạn nhận thức được các vấn đề mã hóa tiềm ẩn với việc truyền và / hoặc di chuyển dữ liệu trong tương lai (ví dụ: bạn sẽ chuyển từ ASCII sang UTF-8 trong 2 năm), cho phép nhiều ký tự chỉ có thể tốt cho cường độ mật khẩu.


4
Với chi phí hoạt động của bất kỳ độ dài giao thức hiện đại nào hoàn toàn không thể là một lý do chính đáng - ngoài giới hạn cao như 1K chỉ để ngăn chặn các cuộc tấn công / vô nghĩa nhất định.
edA-qa mort-ora-y

3
Giới hạn thời gian thực hiện băm nói chung là xấu. Càng mất nhiều thời gian để tính toán một hàm băm, thì càng mất nhiều thời gian để bắt bẻ nó.
tdammers

Mặc dù điều đó đúng nhưng nó luôn luôn là một sự đánh đổi. Bạn không muốn luôn tính toán hàm băm tốt nhất mất nhiều thời gian nhất. Do đó, bắt tay không đối xứng so với luồng dữ liệu đối xứng trong VPN, v.v.
Kissaki

17

Vâng , có một lý do cho các nhân vật đặc biệt.

Không cho phép các ký tự đặc biệt là nhiều thứ có thể sử dụng hơn là liên quan đến bảo mật. Trước hết họ có thể bị sai sót bởi các vấn đề mã hóa. Thứ hai, ngay cả khi bạn đảm bảo luôn sử dụng cùng một mã hóa, vẫn có vấn đề về thiết bị đầu vào. Bạn sẽ tùy thuộc vào việc có bàn phím đầy đủ (loại bỏ hầu hết các thiết bị di động), với cùng bố cục bàn phím. Sau này khác nhau không chỉ giữa các ngôn ngữ, mà còn giữa các hệ điều hành, bố cục cho Windows, Linux và OSX có thể khác nhau một chút. Vì vậy, tôi thấy lý do chính đáng để không cho phép mật khẩu như : √Ω≈ç∫∞§…¬å∑±.


3
trừ khi bạn đang cung cấp mật khẩu cho người dùng của mình, nghĩa là, nếu họ là người nhập mật khẩu thì nếu họ chọn sử dụng một số biểu tượng toán học kỳ lạ thực sự là việc của họ. bây giờ tôi đồng ý với vấn đề mã hóa ở đây mặc dù tìm thấy nhiều lý do để vượt qua sự bất tài của radar hơn là một lý do chính đáng thực sự để ngăn chặn một số ký tự tùy ý.
Newtopian

2
@new: không phải việc của họ. Nếu họ tự bắn vào chân mình, họ vẫn sẽ nhận thấy có vấn đề với ứng dụng của bạn và gọi cho bộ phận hỗ trợ của bạn.
vartec

7
@Newtopian: Tôi ghét nó khi tôi, với tư cách là người dùng, bị chặn bởi lý do thiếu hiểu biết (chẳng hạn như không thể chỉ định "+" trong địa chỉ email của tôi). Tuy nhiên, đôi khi, không nên cho người dùng nhiều dây để tự treo. Tôi nghĩ rằng đây là một dịp như vậy. Đó không phải là về việc "tùy tiện" ngăn chặn một số nhân vật.
Zano

1
Vì vậy, bạn ủng hộ người Hy Lạp, Ả Rập, Trung Quốc và những người khác đều sử dụng US-ASCII?
l0b0

@ l0: không, tôi ủng hộ rằng họ sử dụng các ký tự bình thường, thường được sử dụng trong ngôn ngữ của họ, thay vì một số ký tự đặc biệt, có thể vắng mặt trong một số bố cục.
vartec

13

Có một chút tranh cãi trong thế giới bảo mật vài năm trước, khi khách hàng của Chase phát hiện ra rằng mật khẩu của họ không phân biệt chữ hoa chữ thường. Hóa ra trang web của họ chỉ là tiền đề của một hệ thống phụ trợ OS / 400 30 tuổi, có một hạn chế về mặt kỹ thuật mà nó đã bỏ qua trường hợp này. Sửa chữa điều này rõ ràng sẽ tốn hàng triệu đô la.

Vấn đề là, có thể có những lý do di sản đắt tiền cho việc không cho phép mật khẩu trong một độ dài nhất định.
(Lưu ý rằng tôi không bỏ qua lý do này ...)


1
trong chừng mực này là chỉ tốt lý do để mật khẩu giới hạn trong bất kỳ cách nào ... chỉ khi hệ thống cơ bản sẽ tổ chức những hạn chế như vậy ở nơi đầu tiên.
Newtopian

8

Hầu hết các ngân hàng, bộ phận CNTT, v.v ... Ai thực thi các hạn chế mật khẩu tối đa không làm như vậy vì lý do kỹ thuật. Họ hoàn toàn nhận thức được cách băm mật khẩu hoạt động và cách lưu trữ mật khẩu phức tạp. Họ áp đặt những hạn chế này vì nó làm giảm số lượng cuộc gọi để hỗ trợ cho những người đã quên mật khẩu. Đây có phải là một lý do tốt để áp đặt loại hạn chế đó? Bằng không có nghĩa. Nhưng, tuy nhiên, nó là lý do chính.


1
Tôi thấy việc giảm các cuộc gọi hỗ trợ là một valid Business reason(Cá nhân tôi thực sự không tin rằng có một mối tương quan)
Martin York

2
Vâng, có nhiều cách khác để thiết lập lại mật khẩu hoặc hướng dẫn người dùng cách chọn mật khẩu đủ phức tạp, dễ nhớ. Một vài mật khẩu cuối cùng của tôi tại nơi làm việc đã có> 25 ký tự và tôi không gặp khó khăn gì khi nhớ chúng. Ngoài ra, có lẽ, những người gặp khó khăn trong việc nhớ mật khẩu dài của họ vẫn sẽ chọn mật khẩu ngắn hơn, mặc dù tôi không biết mức độ thường xuyên đó là sự thật. Giảm các cuộc gọi hỗ trợ có vẻ như là một lý do kinh doanh hợp lệ trên bề mặt, nhưng nó vẫn là một lý do tệ hại để hạn chế độ dài mật khẩu.
Greg Jackson

1
Tôi nghĩ rằng tôi (và nhiều người) sẽ tìm thấy cách gõ chính xác (không chỉ nhớ) 25 ký tự mà không thấy đầu ra gần như không thể. Tôi đã sửa 5 lỗi chính tả trong khi gõ này!
Gerry

Chà, nhớ không giống như gõ. Ghi nhớ mật khẩu dài rất dễ dàng nếu bạn biết cách chọn chúng; chỉ cần chọn các dòng từ các câu chuyện hoặc vở kịch, hoặc các phần của bài thơ hoặc lời bài hát. Miễn là bạn thay đổi một hoặc hai điều trong đó (lỗi chính tả, thay đổi từ này sang từ khác có vẻ giống như vậy hoặc có nghĩa là điều tương tự, v.v.), điều đó khá dễ dàng và cực kỳ an toàn. Đúng, gõ nó có thể khó hơn, nhưng không có lý do gì để các ngân hàng buộc bạn phải nhập ít hơn 8/10/12 ký tự.
Greg Jackson

hãy thử nhập mật khẩu 25 chữ cái đó trên thiết bị di động
Lie Ryan

7

Không phải tất cả các thiết bị đầu vào (thông minh về phần cứng) thường có tất cả các ký tự mà bàn phím đầy đủ có hoặc tương tự. Nếu một người không sử dụng trình quản lý mật khẩu, người ta có thể thấy mình gặp rắc rối khi nhập mật khẩu đó, phải không? Và Unicode vẫn còn là một cách xa (rất xa) là một tiêu chuẩn.


1
Thông thường những người nhập mật khẩu sẽ sử dụng cùng một phần cứng (hoặc lớp phần cứng) để tạo chúng và xác thực chúng. Tôi không thấy đây là một đối số trong việc giới hạn bộ ký tự hoặc độ dài. Đối với Unicode, khi xây dựng phía máy chủ (phần xác thực) tại sao bạn lại giới hạn kích thước hoặc bộ ký tự? bất kỳ hệ thống nào yêu cầu nhập mật khẩu đều có thể kiểm soát cách nhập mật khẩu này vào hệ thống, do đó, nếu bạn yêu cầu unicode cho máy khách của mình thì cứ vậy!
Newtopian

@Newtopian Bạn cho rằng bạn không phải giao tiếp với các hệ thống cũ hoặc các hệ thống ngoài tầm kiểm soát của bạn.
grahamparks

1
họ yêu cầu cho một tốt lý do, đây không phải là tốt lý do

2
@Jarrod - Không thể nhập mật khẩu không phải là lý do chính đáng?! Trong mọi trường hợp, tôi không thấy bạn nghĩ ra cái nào tốt hơn (hay cái nào cả).
Rook

3
@Rook bạn không nên sử dụng những ký tự nếu bạn biết bạn không thể chọn chúng từ một thiết bị, điều đó không làm cho nó một tốt lý do để hạn chế chúng cho mọi người, nó làm cho nó một tốt lý do để bạn cá nhân không sử dụng chúng.

7

Có lý do chính đáng nào cho việc đặt độ dài trên hoặc loại trừ các ký tự trong mật khẩu không?

Tôi sẽ đoán và nói rằng một số hạn chế này là do lọc ký tự trên trang web của họ ( & < > #) để ngăn chặn tin tặc. Trong khi những người khác là những ý tưởng xương đầu xuất phát từ ủy ban của những ông chủ tóc nhọn.

Tôi đã gặp một số quyết định "bảo mật" thực sự ngu ngốc (theo ý kiến ​​của tôi). Ví dụ, một công ty đầu tư lớn xử lý các tài khoản IRA cũng như lương hưu của tôi. Để thực hiện bất kỳ liên hệ nào với lương hưu yêu cầu tôi nhập mật khẩu của mình trên điện thoại (bạn không thể liên lạc với họ bằng cách khác). Tài khoản môi giới / IRA của tôi sử dụng các chữ cái (chữ hoa và chữ thường) cũng như một số dấu câu - không có ký tự nào trong số này xuất hiện trên một bảng số điện thoại. Nếu bạn không thể đăng nhập bằng mật khẩu qua điện thoại, nó sẽ cho phép bạn đặt lại mật khẩu của tài khoản môi giới của mình thành thứ bạn có thể nhập qua điện thoại.

Hệ thống bảng lương của tôi (đối với công ty tư vấn tôi làm việc) yêu cầu số và chỉ số - điều này cho phép họ sử dụng cùng một cơ sở dữ liệu cho dù người dùng gọi (tôi chưa bao giờ thực hiện việc này) hoặc sử dụng giao diện web (tôi chỉ sử dụng giao diện web này) .

Điều đó đang được nói, đã đến lúc thay đổi mật khẩu của tôi tại văn phòng. Họ có những hạn chế điên rồ đến mức tôi ước tính sẽ mất khoảng nửa ngày để tìm mật khẩu được hệ thống chấp nhận: ít nhất 2 chữ cái viết hoa, ít nhất 2 chữ cái viết thường, ít nhất 2 chữ số (không thể là +/- 1 từ mật khẩu trước đó), ít nhất 2 ký tự không phải là alpha / không phải số, không thể khớp với bất kỳ 24 mật khẩu cuối cùng nào, không thể chứa bất kỳ chuỗi nào (chuyển tiếp hoặc ngược lại) là một từ (dài 3 chữ cái trở lên) bằng tiếng Anh ( còn một vài ngôn ngữ khác tôi không có giải phóng mặt bằng để biết). Tôi nghĩ độ dài tối thiểu là 10-11 ký tự.


Yep tôi đã thấy những nhân vật trong danh sách không có.
chris

5
Tấn công đơn giản: tìm ghi chú dán dưới bàn phím vì không ai có thể nhớ mật khẩu của họ.
JeffO

@Jeff, đúng vậy. Nếu tôi để máy tính xách tay ở nhà, mật khẩu quá phức tạp để nhớ, vì vậy tôi không thể đăng nhập. Và trên hệ thống bảng lương, tôi đặt tên người dùng và mật khẩu làm một phần của dấu trang.
Tangurena

"Không thể chứa bất kỳ chuỗi nào (tiến hoặc lùi) là một từ (dài 3 chữ cái trở lên) trong tiếng Anh" Đây là chuỗi có tôi. Các cuộc tấn công từ điển không hiệu quả nếu mật khẩu chứa toàn bộ các từ, nhưng thay vào đó, nếu toàn bộ mật khẩu không có gì ngoài các từ đầy đủ ... Thực sự là một từ đầy đủ hoặc các cụm từ rất phổ biến. Mật khẩu an toàn nhất thực tế để sử dụng mà không cần viết ra là cụm mật khẩu xuất phát từ sách, thơ, lời bài hát, v.v. - thay đổi một vài chữ cái thành số, viết sai chính tả và viết hoa không thể đoán trước và không ai sẽ bẻ khóa mật khẩu đó.
Greg Jackson

1
Lọc ký tự là một dấu hiệu chắc chắn của mã rác chưa được kiểm tra trong nền. Các nhà phát triển cần phải học cách thoát khỏi chuỗi.
l0b0

5

Một lý do để giới hạn các ký tự sẽ là do cách nhập mật khẩu.

Ví dụ, một số ngân hàng, với các trang web Internet Banking của họ, hãy yêu cầu các ký tự cụ thể từ mật khẩu và bạn chọn các ký tự phù hợp thông qua hộp thả xuống.

Họ làm điều này, có lẽ, để các keylogger có thể phát hiện ra phím bấm và do đó biết [ký tự từ] mật khẩu của bạn. Trong khi tôi biết rằng có nhiều cách khác mà các biện pháp như vậy có thể bị phá vỡ, ví dụ như screencapture; nó vẫn hiệu quả đối với keylogger.

Nếu họ phải cho phép tất cả các ký tự, thì độ dài của hộp thả xuống sẽ trở nên cồng kềnh và cũng cho phép nhầm lẫn giữa các ký tự trông tương tự.


1
Chắc chắn mọi người (kỹ thuật) sẽ chỉ quan trọng trong bức thư chứ?
Gerry

@Gerry - đó là một hành vi cụ thể của trình duyệt chứ không phải là một tiêu chuẩn tuyệt đối và nó cũng phụ thuộc vào kiến ​​thức của người dùng để làm cho nó hoạt động được.
Jon Hopkins

Ngân hàng của tôi đã sử dụng một applet popup của bàn phím vì một lý do tương tự. Nhưng nó quá khó để sử dụng và bị chỉ trích rất nhiều vì không thể truy cập được (không hoạt động cho trình đọc màn hình, đầu vào thay thế, v.v.)
jqa

1
@Jon - Tôi đã nói những người kỹ thuật và tôi không biết bất kỳ trình duyệt windows nào không thực hiện ít nhất khớp ký tự đầu tiên, vì đó là hành vi chuẩn của Windows - không thể nói cho Mac và * nix
Gerry

1
@Gerry Trình duyệt trên điện thoại Android của tôi không cho phép điều này. Tôi hy vọng nó giống nhau cho nhiều thiết bị di động.
RoundTower

2

Không cho phép các ký tự đặc biệt như tab sẽ hợp lệ. Bạn có thể đăng nhập hoặc thay đổi mật khẩu bằng thẻ char ở chế độ văn bản nhưng bạn không thể sử dụng nó trong GUI hoặc môi trường web. Một char dấu gạch chéo ngược cũng sẽ trình bày một số vấn đề đa nền tảng.

btw mật khẩu dài không phải là mật khẩu - chúng là mật khẩu. Người dùng trung bình của bạn không thể nhớ 2Z8d!% G # x nhưng họ có thể nhớ 'tên thú cưng của tôi là fido con chó'. Văn bản dài hơn khó bị bẻ khóa thông qua lực lượng vũ phu và ít có khả năng được viết trên một ghi chú gắn trên màn hình.


Xem thêm xkcd.com/936
sergut

0

Khi mọi người gõ họ mắc lỗi, được gọi là "lỗi chính tả". Thông thường mọi người nhìn thấy sai lầm của họ và sửa chữa chúng. Để nhập mật khẩu thường bạn không thể thấy những gì bạn đã nhập và do đó bạn không thể sửa lỗi chính tả của mình. Bạn mắc lỗi mà không nhận ra, gửi mật khẩu và nó trở lại là "mật khẩu không hợp lệ". Sau đó, bạn thử lại. Sau đó, bạn thử lại.

Bạn có thể nghĩ về nó như là "3 lỗi chính tả nhỏ và sau đó bạn không thể phân biệt được với một cuộc tấn công vũ phu". Làm thế nào để các hệ thống bảo vệ chống lại các cuộc tấn công vũ phu? Một câu trả lời rõ ràng " Quá nhiều lần thử, biến mất, bạn sẽ không thể đăng nhập ngay cả khi bạn hiểu đúng "? Tăng chậm theo cấp số nhân khi nhập mật khẩu dẫn đến hết thời gian chờ của trình duyệt khi độ trễ quá dài, khiến bạn không thể thử đăng nhập lại? Phương pháp tiếp cận khác nhau, nhưng luôn có một hệ quả trong một hệ thống được thiết kế tốt.

Bạn có thể nghĩ về nó như là "3 lỗi chính tả nhỏ và sau đó bạn nhận được một số loại từ chối dịch vụ".

Khi độ dài mật khẩu làm tăng nguy cơ lỗi chính tả (và do đó, nguy cơ từ chối quyền truy cập của người được ủy quyền) sẽ tăng lên. Bất cứ điều gì dài hơn khoảng 20 ký tự sẽ bị nhầm lẫn thường xuyên (trừ khi người dùng thông minh / lười biếng và lưu trữ mật khẩu của họ ở đâu đó để họ có thể "sao chép và dán" mà không phải lo lắng về lỗi chính tả, như một tệp văn bản đơn giản trên máy tính để bàn của họ được gọi là " mật khẩu .txt ").

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.