# เอเจนต์เบราว์เซอร์ของ Dvina

> วิธีที่เจ้าของเว็บไซต์ใช้ระบุ ตรวจสอบ อนุญาต หรือบล็อกเบราว์เซอร์ที่ Dvina ใช้ทำงานให้ผู้ใช้

เบราว์เซอร์ของ Dvina เข้าชมเว็บไซต์เพื่อผู้ใช้ทีละคน เมื่อผู้ใช้ขอให้ Dvina ทำงานที่ต้องใช้เบราว์เซอร์จริง หน้านี้เขียนขึ้นสำหรับเจ้าของเว็บไซต์ โดยอธิบายว่าเบราว์เซอร์ทำอะไร วิธีระบุคำขอที่ส่งมา และวิธีอนุญาตหรือบล็อกเบราว์เซอร์นี้

## เบราว์เซอร์นี้คืออะไร

Dvina เป็นผู้ช่วยส่วนตัว เมื่อผู้ใช้ที่ลงชื่อเข้าใช้ Dvina ขอให้ทำงานที่ต้องใช้เว็บไซต์ เช่น เปรียบเทียบข้อเสนอหรือกรอกแบบฟอร์มตามที่ขอ Dvina สามารถทำงานนั้นในเบราว์เซอร์ของตัวเองบนคอมพิวเตอร์ Dvina ของผู้ใช้คนนั้นได้ เบราว์เซอร์นี้เป็น Chromium แบบเดสก์ท็อปที่มีหน้าต่าง ไม่ใช่เบราว์เซอร์แบบ headless ผู้ใช้จึงดูการทำงานได้แบบสด ๆ และเข้าควบคุมเองได้ทุกเมื่อ

- **ทำงานให้ผู้ใช้ทีละคน** เบราว์เซอร์แต่ละตัวเป็นของผู้ใช้ Dvina ที่ลงชื่อเข้าใช้หนึ่งคน และทำงานตามที่ผู้ใช้คนนั้นขอ
- **ไม่ใช่ครอว์เลอร์** ไม่มีรายการเว็บไซต์ที่จะเข้าไปเยี่ยมชมเอง เบราว์เซอร์เปิดหน้าที่จำเป็นต่องานทีละขั้นตอน โดยโหลดหน้า อ่าน แล้วดำเนินการบนหน้านั้นเหมือนที่คนทำ
- **ไม่เคยนำข้อมูลไปใช้ฝึกโมเดล** สิ่งที่เบราว์เซอร์ของ Dvina อ่านบนเว็บไซต์ของคุณจะใช้เฉพาะเพื่อทำตามคำขอของผู้ใช้ที่เบราว์เซอร์ทำงานให้เท่านั้น ไม่เคยนำไปใช้ฝึกโมเดล AI
- **ให้ผู้ใช้ตัดสินใจเรื่องของตัวเอง** เบราว์เซอร์ไม่พิมพ์รหัสผ่านหรือข้อมูลบัตร เมื่อหน้าเว็บต้องให้ผู้ใช้ลงชื่อเข้าใช้หรือชำระเงิน Dvina จะหยุดและขอให้ผู้ใช้เข้าควบคุมเอง การใช้ข้อมูลส่วนตัว การส่ง การชำระเงิน และการลบจะรอให้ผู้ใช้ยืนยันก่อน
- **ไม่ผ่านการตรวจสอบว่าเป็นมนุษย์ให้ผู้ใช้** เมื่อพบการตรวจสอบว่าผู้ที่กำลังใช้เบราว์เซอร์เป็นคนจริง เช่น การตรวจสอบของ Cloudflare, Turnstile, reCAPTCHA หรือ hCaptcha เบราว์เซอร์จะไม่คลิก ไม่แก้โจทย์ และไม่โหลดการตรวจสอบนั้นใหม่ หากการตรวจสอบผ่านได้เอง Dvina จะรอ หากยังไม่ผ่าน งานจะหยุด และผู้ใช้จะเข้าควบคุมเบราว์เซอร์ ผ่านการตรวจสอบ แล้วส่งการควบคุมคืน

## ระบุคำขอจากเบราว์เซอร์

เบราว์เซอร์ของ Dvina ลงลายเซ็นในทุกคำขอ http และ https ที่ส่งออกด้วย [Web Bot Auth](https://datatracker.ietf.org/wg/webbotauth/about/) ซึ่งเป็นลายเซ็นข้อความ HTTP ([RFC 9421](https://www.rfc-editor.org/rfc/rfc9421)) โดยใช้คีย์ Ed25519 แต่ละคำขอมีส่วนหัวสามรายการ:

```http
Signature-Agent: "https://api.dvina.ai"
Signature-Input: sig1=("@authority" "signature-agent");created=<unix time>;expires=<created + 60>;keyid="<key id>";alg="ed25519";nonce="<random>";tag="web-bot-auth"
Signature: sig1=:<Ed25519 signature>:
```

- `Signature-Agent` ระบุ Dvina ซึ่งเป็นต้นทางที่เผยแพร่คีย์
- `Signature-Input` ครอบคลุม `@authority` ของคำขอ (โฮสต์ของคุณ) และส่วนหัว `Signature-Agent` โดย `tag` คือ `web-bot-auth`
- ลายเซ็นแต่ละรายการมีอายุ 60 วินาที ตั้งแต่ `created` ถึง `expires`
- `keyid` คือค่า JWK thumbprint ของคีย์ ([RFC 7638](https://www.rfc-editor.org/rfc/rfc7638))

เบราว์เซอร์ส่ง user agent ของ Chromium เอง ซึ่งเหมือนกับ Chromium ทั่วไปบน Linux ตัวอย่างเช่น:

```text
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36
```

เวอร์ชัน Chrome ของเบราว์เซอร์จะเปลี่ยนไปตามการอัปเดตของ Chromium และ user agent ไม่ได้ระบุข้อมูลใด ๆ เกี่ยวกับ Dvina ให้ระบุ Dvina จากลายเซ็น ไม่ใช่จาก user agent

> [!NOTE]
> เมื่อใช้แอปเดสก์ท็อป ผู้ใช้ยังสามารถให้ Dvina ใช้เบราว์เซอร์บนคอมพิวเตอร์ของตัวเองได้ด้วย เบราว์เซอร์นั้นไม่ลงลายเซ็นในคำขอ และดูเหมือนการท่องเว็บของผู้ใช้เอง

## ตรวจสอบลายเซ็น

Dvina เผยแพร่คีย์สาธารณะไว้ที่ไดเรกทอรีคีย์:

```text
https://api.dvina.ai/.well-known/http-message-signatures-directory
```

ไดเรกทอรีตอบกลับด้วย `Content-Type: application/http-message-signatures-directory+json` และ JSON Web Key Set ที่มีคีย์สาธารณะ Ed25519 ของ Dvina คำตอบลงลายเซ็นด้วยคีย์เดียวกัน โดยมี `tag="http-message-signatures-directory"`

หากเว็บไซต์ของคุณอยู่บน Cloudflare ทาง Cloudflare จะตรวจสอบเอเจนต์ที่ลงลายเซ็นให้คุณ หากต้องการตรวจสอบคำขอด้วยตัวเอง:

1. ตรวจสอบว่า `Signature-Agent` เป็น `"https://api.dvina.ai"` และ `Signature-Input` มี `tag="web-bot-auth"`
2. ตรวจสอบว่าเวลาปัจจุบันอยู่ระหว่าง `created` และ `expires`
3. ดึงไดเรกทอรีคีย์และเลือกคีย์ที่มีค่า JWK thumbprint ตรงกับ `keyid`
4. สร้างฐานลายเซ็นจาก `@authority`, `signature-agent` และพารามิเตอร์ลายเซ็นตามที่ RFC 9421 อธิบาย แล้วตรวจสอบ `Signature` ด้วยคีย์ Ed25519 นั้น

ใครก็ส่งส่วนหัวเหล่านี้ได้ ให้ถือว่าคำขอมาจาก Dvina ก็ต่อเมื่อตรวจสอบลายเซ็นกับไดเรกทอรีคีย์ของ Dvina แล้วผ่านเท่านั้น

## อนุญาตหรือบล็อกเบราว์เซอร์

เบราว์เซอร์ของ Dvina ทำงานแบบเรียลไทม์ให้กับผู้ใช้หนึ่งคน ซึ่งเป็นทราฟฟิกประเภทที่อยู่ในขอบเขตของค่าที่ตั้งไว้ล่วงหน้า **Agent** ของ Cloudflare หากเว็บไซต์ของคุณใช้ Cloudflare:

- **นโยบายบอต AI:** ใน **Security Settings** ให้เลือก **Configure AI bot policies** สำหรับ **Agent** ให้เลือก **Allow (do not block)**, **Block on pages with ads** หรือ **Block (on all pages)**
- **กฎ WAF ที่กำหนดเอง:** คำขอจากบอตที่ได้รับการยืนยันและเอเจนต์ที่มีลายเซ็นจะมีค่า `cf.client.bot` (`cf.bot_management.verified_bot` หากใช้ Bot Management) เป็น true ใช้ค่านี้ในกฎที่กำหนดเองเพื่อข้ามการตรวจสอบ ให้ยืนยันตัวตน หรือบล็อกคำขอเหล่านี้
- **ไดเรกทอรีบอตที่ได้รับการยืนยัน:** ดูเอเจนต์ที่ Cloudflare ยืนยันได้ใน [Cloudflare Radar](https://radar.cloudflare.com/verified-bots)

Anywhere else, verify the signature as described above, then allow or block requests whose verified `Signature-Agent` is `"https://api.dvina.ai"`.

## ติดต่อเรา

มีคำถามเกี่ยวกับเบราว์เซอร์ของ Dvina บนเว็บไซต์ของคุณ หรือพบคำขอที่ไม่ได้ทำงานตามที่หน้านี้อธิบายไว้ใช่ไหม? ส่งอีเมลถึง [support@dvina.ai](mailto:support@dvina.ai) พร้อมที่อยู่เว็บไซต์ของคุณ และหากมีข้อมูล ให้ระบุเวลาและ `keyid` ของคำขอเหล่านั้นด้วย

## เนื้อหาที่เกี่ยวข้อง

- [การใช้คอมพิวเตอร์](/docs/use-dvina/features/computer-use)
- [ความเป็นส่วนตัวและข้อมูล](/docs/help/privacy-and-data)
