Nếu website không lưu trữ mật mã trên máy chủ, làm sao chúng biết mật mã của bạn có mạnh hay không?

SkylerNew

Chuyên viên tin tức
Thành viên BQT
Nhờ Javascript, độ mạnh của mật mã có thể được xác định ngay lập tức mà không cần giao tiếp với máy chủ hay làm mới trang web, bởi các đoạn mã này chạy được ngay trên trình duyệt.

2150259.jpg


Internet ban đầu là một giải pháp để kết nối nhiều máy tính và cho phép chúng tương tác với nhau, bất kể khoảng cách hay loại thiết bị.

Một ngôn ngữ chung của internet được hình thành, loại ngôn ngữ cho phép các mạng khác nhau giao tiếp và chia sẻ dữ liệu với nhau, tạo ra thế giới liên kết chặt chẽ mà chúng ta đang sống ngày nay. Chúng ta làm gần như mọi thứ trên internet: quản lý tài khoản ngân hàng, mua sắm, hẹn hò, và cả... xem những đoạn video về mấy chú mèo chảnh choẹ mà chẳng hề biết chán nữa.

Chúng ta biết rằng các website thường lưu giữ các loại dữ liệu người dùng nhạy cảm mà nếu bị truy xuất bởi kẻ xấu sẽ dẫn đến thiệt hại nặng nề cho người dùng website đó và cả công ty quản lý website. Để ngăn vấn đề này xảy ra, các website thường yêu cầu bạn phải sử dụng một mật mã đủ mạnh trong lần đầu đăng ký tài khoản.

Khi máy tính ngày càng trở nên mạnh mẽ hơn, khả năng phá mật mã của chúng cũng vậy. Do đó, các chuyên gia bảo mật khuyên bạn nên thêm nhiều loại ký tự khác nhau vào mật mã.

Điều này cũng thể hiện trong quá trình đăng ký tài khoản mới, khi mà bạn bị bắt buộc phải thêm các ký tự như một từ viết hoa (A), một từ viết thường (m), một con số (7), một ký tự đặc biệt (_, #, &, %, /) và phải đạt được một số lượng ký tự tối thiểu (từ 8 - 15)...

Nhưng bằng cách nào những website đó đánh giá được độ mạnh của mật mã bạn đặt ra và xác nhận rằng bạn đã đạt đủ mọi tiêu chí về mật mã, khi mà website không lưu trữ mật mã trên các máy chủ của chúng?

Làm sao mà website đánh giá được độ mạnh của mật mã và xác định bạn đã đạt đủ mọi tiêu chí đặt ra khi mà nó không lưu trữ mọi mật mã trên các máy chủ của mình?

Làm sao mà quá trình đánh giá này dường như diễn ra ngay lập tức khi bạn nhập mật mã vào ô nhập liệu, không hề lag cũng như không đòi hỏi phải làm mới lại trang?

Hãy tìm hiểu xem điều đó diễn ra như thế nào.

Mật mã được đánh giá ở đâu?


2150262.jpg


Đầu tiên, hãy nói sơ về cách vận hành của các website. Một website chứa một nhóm các trang web riêng lẻ liên kết với nhau để hiển thị các phần khác nhau của website.

Một trang web sử dụng văn bản, hình ảnh, video, liên kết, các trường động, và nút bấm, để giao tiếp với người dùng ghé thăm tên miền của website.

Giống như hình dáng và chức năng của cơ thể chúng ta (màu tóc, cách protein phân ra thành các amino acid) được cấu thành từ mã di truyền (DNA), hình dáng và chức năng của một website (màu sắc của header, cách nó đề xuất các sản phẩm tương tự) cũng được cấu thành trong mã kỹ thuật số (HTML, CSS, JavaScript, PHP...)

Khi bạn vào một địa chỉ web trên trình duyệt (Chrome, Firefox...), trình duyệt sẽ lấy mã dựng website từ nơi đặt máy chủ web và hiển thị thông tin này lên màn hình của bạn. Mỗi khi bạn tải lại màn hình hoặc bấm vào một trang mới của website, quy trình này sẽ được thực hiện.

Hãy để ý rằng khi bạn ghé thăm một website mới và bắt đầu quy trình tạo tài khoản (ID và mật mã mới), trang web không bao giờ tải lại cho đến khi bạn bấm nút đăng ký (sign-up). Trang web kiểm tra độ mạnh của mật mã bạn vừa nhập mà không hề giao tiếp với máy chủ bởi mã được thực thi ngay trên máy tính của bạn thông qua trình duyệt bạn đang sử dụng. Phép màu nhỏ này được thực hiện bằng cách viết một đoạn mã đơn giản trong một ngôn ngữ gọi là JavaScript.

JavaScript là gì và nó đánh giá mật mã như thế nào?

2150265.jpg


JavaScript là một ngôn ngữ lập trình hướng đối tượng, mà cùng với HTML và CSS, cấu thành nên công nghệ cốt lõi để xây dựng nên world wide web. Nó được sử dụng để thêm khả năng tương tác cho các website và chủ yếu được sử dụng để quản lý hành vi của trang web trên máy khách, có nghĩa là nó đảm nhiệm quá trình giao tiếp của trang web với bạn và ngược lại.

Đối với tương tác tức thời trên một trang web (ví dụ: hiệu ứng hoạt hoạ khi bạn bấm nút, kiểm tra xem username đã tồn tại hay chưa...), JavaScript sẽ chạy trên trình duyệt web bạn đang sử dụng để truy xuất đến một website, không phải máy chủ. Quá trình tương tác nhanh gọn này có thể mang lại cho một website đơn giản khá nhiều đặc tính thú vị, giúp nó thân thiện với người dùng hơn và tăng cường trải nghiệm ghé thăm đối với các vị khách.

JavaScript có thể được lập trình để quan sát các trường mà người dùng sẽ nhập dữ liệu vào. Các phép toán logic cụ thể có thể được gán vào các trường để xử lý hàng loạt các dữ liệu do người dùng nhập vào, và JavaScript có thể phản hồi với từng phép toán logic một cách phù hợp.

Trong trường hợp bạn đặt một mật mã mới, lập trình viên có thể gán một điều kiện vào trường để yêu cầu người dùng đặt mật mã theo quy định, bao gồm:

- các từ viết hoa (A, B, C)

- các từ viết thường (a, b, c)

- số (1, 2, 3)

- các ký tự đặc biệt (_, /, #, &, %, /)

- độ dài cụ thể (từ 8 - 15 ký tự)

Đoạn mã được lập trình sẵn sẽ theo dõi trường mật mã để thu dữ liệu bạn nhập vào và đối chiếu nó với danh sách yêu cầu nói trên. Nếu có yêu cầu nào chưa được đáp ứng, đoạn mã sẽ hiển thị một thông báo lỗi chỉ ra những ký tự nào bạn chưa đưa vào mật mã.

Nó cũng sẽ đánh giá độ mạnh của mật mã dựa trên độ phức tạp của nội dung mật mã; các ký tự trong mật mã càng đa dạng, mật mã càng khó bị phá.

Tạm kết

Dù phương thức này được sử dụng rộng rãi, nhiều website hiện sử dụng hệ thống Single Sign-On (SSO) để người dùng đăng ký tài khoản. SSO cho phép các website bên thứ ba sử dụng các tài khoản người dùng từ Google, Facebook, Twitter... làm thông tin xác thực và giúp khách ghé thăm đăng nhập vào website mà không cần tạo một tài khoản dành riêng cho website đó.

Rõ ràng, hệ thống này rất tiện lợi; bởi số lượng webste bạn ghé thăm đòi hỏi đăng nhập ngày càng nhiều, số lượng mật mã bạn phải nhớ sẽ càng tăng, và ai thích điều đó chứ?

Tuy nhiên, phương thức xác thực mật mã truyền thống bằng JavaScript nói trên sẽ không hoàn toàn biến mất, xét việc nhiều website vẫn muốn người dùng có những tài khoản độc lập (ví dụ: ngân hàng trực tuyến, quản lý cổ phiếu...). Do đó quản lý tốt mật mã, tránh rơi vào tình huống quên mất thông tin đăng nhập là điều quan trọng mà bất kỳ ai sử dụng internet cũng cần lưu ý.

Theo Vn review​
 
Bên trên