SOS được Keromytis và các đồng nghiệp của ông [4] đề xuất trong bài báo : “SOS: Secure Overlay Services” vào ngày 21/08/2002 trong hội thảo ACM Sigcomm 2002.
Ý tưởng chính của bài báo là xây dựng nên một kiến trúc tầng bao phủ quanh server đích, nhằm ngăn chặn kẻ tấn công khỏi việc tiếp cận để tấn công phá hoại server và chỉ cho phép người dùng đã được xác định – confirm user, mới có thể kết nối đến server.
Kiến trúc SOS được thể hiện như hình vẽ dưới.
Trong kiến trúc này, yêu cầu của khách hàng từ source point sẽ đi vào một lớp bao phủ qua một node là SOAP – Secure Overlay Access Point. Do tính chất của SOS, nên node này sẽ làm nhiệm vụ kiểm tra người dùng này có hợp lệ hay không, qua một cơ chế xác thực, như là login. Sau khi xác thực xong người dùng, yêu cầu sẽ được chuyển tiếp qua mạng bao phủ. Mạng bao phủ này đóng vai trò một firewall phân tán, được xây dựng theo giao thức Chord với kĩ thuật định tuyến theo cấu trúc, sử dụng bảng băm phân tán DHT. Giao thức Chord sẽ được mô tả trong phần tiếp theo. , và trong mạng bao phủ, các node có thể đóng một trong các vai trò sau:
- SOAP: Secure Overlay Access Point: là các điểm truy cập cho khách hàng.
- Secret Servlet: Các node đặc biệt, mà chỉ có kết nối đến từ các node này mới được server đích chấp nhận.
- Beacon: Các node đặc biệt trong mạng bao phủ bởi nó biết được vị trí của các secret servlet, nhờ thông báo định kì từ các secret servlet gửi tới chúng.
- Overlay Node: các node bình thường khác trong mạng.
Sau khi node SOAP đã xác thực xong người dùng, nó sẽ lấy địa chỉ Server đích trong gói tin yêu cầu, sử dụng hàm băm của chord để đạt được một giá trị băm. Giá trị băm này sẽ cho biết vị trí của một Beacon, nhờ đó SOAP chuyển tiếp yêu cầu người dùng đến node Beacon đó. Khi Beacon nhận được gói tin, nó lại đọc địa chỉ Server đích, và sau đó chuyển tiếp gói tin đến Secret Servlet của server đích. Secret Servlet nhận được gói tin từ Beacon, nó cũng tiếp tục chuyển tiếp gói tin đến Server đích tương ứng.
Vấn đề đặt ra là làm thế nào để Beacon biết được địa chỉ của Secret Servlet tương ứng với Server đích? Điều này được thực hiện thông qua việc định kì, các Secret Servlet tương ứng với Server đích sẽ sử dụng hàm băm của Chord với địa chỉ Server đích, nhờ đó lấy được giá trị băm và biết được vị trí của Beacon cần biết nó. Ngay sau đó nó gửi một thông báo đến Beacon đó, và như vậy Beacon này sẽ nhận thông báo và biết được Secret Servlet ứng với một Server đích.
Còn với các Server đích, cơ chế của chúng đó là install một bộ lọc ở router gần nó nhất, và lựa chọn một số node trong mạng bao phủ SOS để làm Secret Servlet của mình, và cho phép chuyển tiếp kết nối thông qua các bộ lọc đến Server đích. Các router ở quanh Server đích cũng được cấu hình để chỉ chấp nhận kết nối đến từ Servlet của nó.
Với kiến trúc đề xuất như vậy, SOS được tin tưởng rằng sẽ trở thành một phương pháp tiếp cận mới và mạnh mẽ trong phương pháp chủ động phòng và chống tấn công từ chối dịch vụ.