Mục Lục
1. Security Identifier (SID) là gì?
2. Tại sao Windows cần SID?
3. Cấu trúc SID
4. Xem thông tin SID trên Windows Server
4.1 Cách 1 – “PsGetSid”
4.2 Cách 2 – “WMIC”
4.3 Cách 3 – “Registry”
5. Cách xóa SID trên Windows Server 2012
1. Security Identifier (SID) là gì?
SID (Security Identifier – Security ID) là con số dùng để định danh các đối tượng (user, group, computer,… ) trong hệ thống Windows.
2. Tại sao Windows cần SID ?
Thông tin SID cho local group và local account được tạo bởi LSA (Local Security
Authority) trên windows và nó lưu trữ thông tin SID trong registry. Còn thông tin SID cho domain account và domain group thì được tạo bởi DSA (Domian Security Authority) được lưu trữ như là 1 thuộc tính của user hoặc group trong Active directory domain services (ADDS).
SID được phát sinh khi một đối tượng (user, group, computer,… ) được khởi tạo và tuyệt nhiên không thể tồn tại 2 SID giống nhau. Thông thường chúng ta chỉ thấy username là “A” nhưng đối với Windows nó là 1 con số định danh đại diện (SID). Và Security Authority không bao giờ sử dụng lại SID của những đối tượng đã bị delete ( vi dụ: tạo user name tên B, sau đó xóa xong, tạo lại thì user name B “mới” sẽ có SID khác). SID cho phép rename các đối tượng mà không ảnh hưởng đến các thuộc tính của đối tượng.
3. Cấu trúc SID
Cấu trúc thông tin một SID có dạng như sau:
Chú giải:
Revision: xác định phiên bản của SID, nếu SID được tạo bởi HDH server 2003 trở về sau thì có Revision là 1.Identifier Authority (IA): Dùng để định danh cho tổ chức cấp phát SID có các giá trị dưới. ví dụ, 1 account hay Security Group thì IA=5 (vd: group administrators, group users v.v). SID của group EveryOne thì có IA=1.
+ IA=0: Null Authority Đại diện cho SID của một đối tượng không được biết.
+ IA=1: World Authority (Ví dụ: Đại diện cho SID của group EveryOne).
+ IA=2: Local Authority(Đại diện cho SID của user có quyền đăng nhập cục bộ).
+ IA=3 Creator Authority (Đại diện cho SID của chủ sở hữu tạo đối tượng).
+ IA=4 Non-unique Authority,
+ IA=5 NT Authority
+ IA=9: Resource Manager Authority.
Subauthorities: chứa những thông tin quan trọng của SID , dùng dể định danh local computer hoặc domain. Phần giá trị cuối cùng của Subauthorites gọi là RID (Relative identifier) dùng để định danh user hoặc security group trong domain hoac local computer.
Ví dụ: về dãy số SID của 1 user thuộc nhóm Administrator :
S-1-5-21-1180699209-877415012-3182924384-1001
Chú Thích:
S: xác định đây là 1 SID
1: Revision
5: IA
21-1180699209-877415012-3182924384: Subauthorities
1001: RID. RID của tài khoản Administrator luôn bằng 500. SID của tài khoản guest luôn bằng 501.
SID user account thay đổi khi di chuyển (move) user từ domain này sang domain kháccủa group thì không đổi), lúc này SID mới sẽ chép đè lên thuộc tính của user. SID cũ sẽđược copy vào thuộc tính khác của user là SID-Hostory (sidHistory). Cứ mỗi lần move userthì hệ thống lại làm tiếp tục như thế. Thuộc tính SID-History sẽ chứa nhiều SID cũ.
Ghi chú:
Windows cấp quyền (allow, deny) cho đối tượng để truy cập tài nguyên dựa vào Acess Control Lists (ACLs) mà ACLs lại dùng SID để định danh các đối tượng.
Trong môi trường domain, khi user đăng nhập thành công, Domain Authentication Service sẽ truy vấn về AD database, trả về kết quả là các SID của user (cũ, mới) và SID của group mà chứa user đó. Windows sẽ khởi tạo Acess Token (thẻ truy cập) chứa các SID đó.. Khi user truy cập tài nguyên, Acess Token sẽ kiểm tra lại ACLs để thực hiện hành động allow hay deny.
Do SID của group trong môi trường domain không đổi (vì it khi move group) cho nên ta nên phân quyền tài nguyên theo group,nhưng có các trường hợp ta phân quyền theo user thì nhờ vào thuộc tính Sid-History mà ACLs có thể biết quyền của user này khi nó bị thay đổi SID.
4. Xem thông tin SID trên Windows Server
4.1 Cách 1 – “PsGetSid”
Để xem thông tin SID trên hệ thống Windows Server ta có thể dùng công cụ có tên “PsGetSid“.
PsGetSid: https://docs.microsoft.com/en-us/sysinternals/downloads/psgetsid
Download chương trình “PsGetSid” về, copy PsGetsid.exe vào ổ C và sử dụng chương trình bằng terminal CMD. Lúc đó bạn sẽ có được thông tin SID như hình dưới
4.2 Cách 2 – “WMIC”
Mở terminal CMD : Run -> cmd . Sau đó thực thi câu lệnh sau trên CMD, câu lệnh này giúp xem SID của Account User.
> wmic useraccount get name,sid
Còn nếu bạn muốn xem thông tin SID của Group.
> wmic group get name,sid
Ta có thể thấy SID của các đối tượng user, group được phát sinh từ SID của computer (thêm RID).
4.3 Cách 3 – “Registry”
Bạn hoàn toàn có thể kiểm tra thông tin SID dựa vào thông tin Registry với đường dẫn registry như dưới
1. Run -> regedit ->
2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Lưu ý:
– Khi Join Domain, SID giữa các máy phải khác nhau, nếu dùng phần mềm ghost, v.v thì các máy sẽ có SID giống nhau, vì vậy ta phải xóa SID đi để hệ thống tạo ra SID khác. Nếu không sẽ phát sinh lỗi do sự trùng lặp thông tin SID.
5. Cách xóa SID trên Windows Server 2012
Chúng ta sẽ sử dụng công cụ “sysprep” có sẵn trên Windows Server. Bạn vào đĩa cài đặt or thư mục đường dẫn: C:\Windows\System32\Sysprep\Sysprep.exe, chạy chương trình Sysprep
Check vào ô “Generalize” khi tool box hiện ra như dưới.
Sau khi reboot, Windows bắt ta khai báo lại các thông số.