Quay lại blog

Địa chỉ MAC và OUI: tính nhất quán giữa tiền tố và khai báo thiết bị

3 byte đầu của địa chỉ MAC là OUI của nhà sản xuất do IEEE cấp, còn 3 byte cuối do nhà sản xuất tự quy hoạch. Quy tắc này giúp tiền tố có thể được kiểm tra: nếu thương hiệu hoặc loại thiết bị khai báo không khớp, sự không nhất quán sẽ xuất hiện.

Khi nhắc đến MAC, nhiều người nghĩ ngay đến máy tính Apple. Thực ra địa chỉ MAC không liên quan đến Apple; đây là một mã định danh vật lý của thiết bị mạng.

Với người quản lý nhiều tài khoản, điểm đáng chú ý là địa chỉ này tuân theo một quy tắc tạo được chuẩn hóa trên toàn cầu. Khi đã có quy tắc, tính nhất quán cũng có thể được kiểm tra.

Mã định danh phần cứng 48 bit

Địa chỉ MAC gồm 48 bit nhị phân và thường được viết thành 12 chữ số thập lục phân, ví dụ 00:1C:B3:XX:XX:XX.

MAC là viết tắt của Media Access Control, liên quan đến tầng liên kết dữ liệu; việc trùng cách viết với Mac của Apple chỉ là ngẫu nhiên. Công dụng thông thường của nó nằm trong mạng cục bộ: switch dùng địa chỉ để quyết định chuyển frame đến cổng nào, router có thể dùng trong danh sách cho phép hoặc chặn, còn mạng doanh nghiệp và mạng trường học thường dùng để nhận dạng thiết bị. Ban đầu, các trường hợp này không liên quan đến kiểm soát rủi ro tài khoản.

3 byte đầu là mã nhà sản xuất, tức OUI

12 chữ số thập lục phân được chia thành hai phần.

3 byte đầu, tức 6 chữ số thập lục phân, là mã riêng của nhà sản xuất gọi là OUI. IEEE phân bổ tập trung các dải này và mỗi nhà sản xuất nhận các khối cố định. 3 byte cuối do nhà sản xuất tự quy hoạch để tránh trùng lặp giữa các thiết bị khác nhau cùng thương hiệu.

Hai phần kết hợp tạo nên tính duy nhất toàn cầu của địa chỉ MAC, tương tự việc mỗi điện thoại có một IMEI riêng. Chính vì tiền tố được cấp phát và có thể truy vết, nó cũng trở thành một trường có thể dùng để kiểm tra chéo.

Không đọc được không có nghĩa là không thể liên kết

Trước hết cần làm rõ một điểm: trình duyệt không thể trực tiếp đọc địa chỉ MAC.

Vì vậy, có người cho rằng không đọc được đồng nghĩa với an toàn. Suy luận này không đúng. Rủi ro không nằm ở việc có đọc được mã định danh hay không, mà ở việc cùng một mã có bị tái sử dụng và liên kết nhiều môi trường với nhau hay không.

Có hai tình huống thực sự có thể gây vấn đề. Thứ nhất là sử dụng cùng phần cứng hoặc các máy ảo hay môi trường đám mây được sao chép đơn giản, khiến nhiều tài khoản nằm sau cùng một mã MAC. Bạn có thể nghĩ các môi trường đã tách biệt, nhưng mã định danh ở tầng mạng vẫn gắn chúng với nhau. Thứ hai là cộng tác từ xa: khi thành viên nhóm dùng thiết bị riêng và công cụ remote để vận hành cùng một nhóm tài khoản, đường kết nối của các thiết bị khác nhau có thể giao nhau và tạo manh mối liên kết giữa những môi trường vốn không liên quan.

Sự không nhất quán trông như thế nào

Nếu thông tin hệ thống của một thiết bị khai báo một thương hiệu nhưng tiền tố địa chỉ lại thuộc nhà sản xuất khác, đó là xung đột logic trực tiếp. Một số trường hợp tương tự gồm:

  • Loại thiết bị khai báo (máy bàn, laptop hoặc thiết bị di động) không khớp với tiền tố địa chỉ
  • Tiền tố địa chỉ của nhiều môi trường tập trung quá mức và trông như cùng một lô thiết bị
  • 3 byte cuối thể hiện quy luật rõ ràng thay vì được phân bổ ngẫu nhiên

Mỗi địa chỉ khi xem riêng có thể không có vấn đề. Mâu thuẫn chỉ lộ ra khi đặt trong tổng thể tính nhất quán của môi trường.

Thay đổi nào hợp lý và thay đổi nào tự mâu thuẫn

Cần phân biệt hai loại thay đổi.

Loại thứ nhất thuộc về quy hoạch kỹ thuật. Máy ảo, container và image dùng cho triển khai hàng loạt vốn có sơ đồ phân bổ địa chỉ riêng. Chia dải và đánh số thiết bị trong cùng một kế hoạch là cách làm bình thường; miễn là quy tắc nhất quán từ đầu đến cuối thì sẽ không tạo ra mâu thuẫn.

Loại thứ hai thực sự tự mâu thuẫn: khai báo một nhà sản xuất trong thông tin hệ thống nhưng để tiền tố trỏ tới nhà sản xuất khác; đưa địa chỉ của nhiều môi trường vào một dải tiền tố rất hẹp; hoặc sắp 3 byte cuối thành các số liên tiếp. Điểm chung là các thay đổi này phá vỡ quan hệ vốn có giữa các tham số, khiến chính hành động thay đổi trở thành một tín hiệu bất thường.

Mã định danh không lặp cũng là một phần của việc cô lập

Trong quản lý nhiều tài khoản, cô lập môi trường không chỉ là ngăn dữ liệu liên thông mà còn bao gồm việc không tái sử dụng mã định danh.

Ở lớp môi trường trình duyệt, PurpleMark cấu hình độc lập nhiều tham số, bao gồm mã định danh thiết bị, với mục tiêu để mỗi môi trường trông như một thiết bị riêng biệt từ phía nền tảng. Điểm quan trọng không phải làm một tham số nào đó trở nên đặc biệt, mà là tránh xung đột logic giữa nhiều môi trường.

Tự kiểm tra không cần công cụ chuyên nghiệp. Hãy đưa tính nhất quán của MAC vào danh sách kiểm tra môi trường cùng với kiểm tra rò rỉ WebRTC và kiểm tra tính nhất quán của fingerprint. Xem bốn điểm: tiền tố địa chỉ và khai báo hệ thống có thuộc cùng nhà sản xuất không, phân bố tiền tố giữa các môi trường có khác biệt hợp lý không, 3 byte cuối có quy luật rõ ràng không, và múi giờ, ngôn ngữ cùng độ phân giải có đồng bộ theo cùng một hướng không.

Nội dung trên chỉ nhằm giải thích nguyên lý kỹ thuật. Hãy sử dụng các công cụ liên quan một cách hợp pháp, tuân thủ quy định và điều khoản dịch vụ của từng nền tảng.