26/10/2026 · VietTechies · Biên tập

Ankita, một ứng dụng trợ lý AI máy tính nguồn mở được xây dựng bằng Electron và giao diện dòng lệnh terminal, cho phép người dùng thực thi các tác vụ tự động, kiểm tra kho mã nguồn và tương tác với nhiều nhà cung cấp LLM khác nhau. Tuy nhiên, việc tích hợp với các máy chủ Model Context Protocol (MCP) như Composio đặt ra những thách thức bảo mật rõ rệt vì các môi trường này thường từ chối khóa dự án hoặc khóa CLI tĩnh để ưu tiên mã thông báo chuẩn OAuth Bearer. Để bảo vệ thông tin xác thực của người dùng và đơn giản hóa quá trình khởi tạo, nhà phát triển của dự án đã thiết kế một quy trình xác thực hoàn toàn không cần khóa, tránh việc lưu trữ các dữ liệu nhạy cảm trên đĩa cứng cục bộ.
Vượt qua các giới hạn khóa API tĩnh trong máy chủ MCP
Các máy chủ Model Context Protocol thường thực thi các chính sách xác thực nghiêm ngặt, từ chối các tiêu đề thay thế hoặc thông tin xác thực dự án kèm theo lỗi xác thực. Do việc yêu cầu người dùng thông thường tự thao tác trên bảng điều khiển dành cho nhà phát triển, đăng ký khách hàng OAuth tùy chỉnh và dán bí mật khách hàng vào ứng dụng máy tính tạo ra điểm ma sát không thể chấp nhận được, các nhà phát triển phải nghĩ ra các giải pháp thay thế tự động và liền mạch. Theo tài liệu dự án, ứng dụng cần xử lý việc đăng ký khách hàng một cách linh hoạt, cho phép người dùng xác thực trực tiếp thông qua trình duyệt web mặc định của họ đồng thời đảm bảo rằng các bí mật nhạy cảm không bao giờ lưu trữ dưới dạng văn bản thuần túy trên các phân vùng lưu trữ cục bộ.
Thiết kế quy trình Loopback năm bước và PKCE
Kiến trúc kết quả dựa trên quy trình năm giai đoạn có cấu trúc bao gồm khám phá, đăng ký khách hàng động, ủy quyền trình duyệt, callback loopback một lần và trao đổi mã PKCE trước khi cấp quyền kho lưu trữ. Thay vì yêu cầu một điểm cuối công khai được lưu trữ, ứng dụng khởi chạy một trình lắng nghe loopback tạm thời trên máy cục bộ tuân theo các nguyên tắc của RFC 8252. Trình lắng nghe này liên kết với một cổng mạng ưu tiên hoặc chuyển đổi dự phòng sang cổng do hệ điều hành chỉ định, tự động tắt ngay sau khi trao đổi thành công, không khớp trạng thái, người dùng hủy hoặc hết thời gian chờ. Để phòng thủ chống lại việc chặn bắt, quy trình thực hiện PKCE với một thử thách S256 được tạo ra thông qua các byte ngẫu nhiên mã hóa, bên cạnh việc xác thực tham số trạng thái nghiêm ngặt để chặn các callback trái phép.
Lý do việc lưu trữ token an toàn và các hàng rào bảo vệ quan trọng đối với các AI Agent tự động
Khi các trợ lý AI trên máy tính ngày càng tự động hóa hơn — đọc các luồng email, thực thi lệnh terminal và duyệt các trang web thay mặt người dùng — ranh giới bảo mật của chúng trở thành các thành phần cơ sở hạ tầng quan trọng. Các AI Agent chắc chắn gặp phải các đầu vào không đáng tin cậy, bao gồm các URL độc hại được tiêm vào các trang web hoặc đầu ra của công cụ. Nếu không có việc đưa danh sách cho phép điểm cuối nghiêm ngặt và cô lập thông tin xác thực chặt chẽ, một trợ lý AI có thể vô tình bị thao túng để biến chuỗi chuyển hướng tùy ý thành một phiên OAuth sống, bị xâm phạm. Bằng cách thực thi danh sách cho phép nhà cung cấp được mã hóa cứng giới hạn ở các miền cụ thể kết hợp với kho khóa hệ điều hành nơi các token dạng văn bản thuần túy không bao giờ chạm đến hệ thống tệp cục bộ, các nhà phát triển thiết lập một mô hình phòng thủ theo chiều sâu phù hợp cho việc thực thi ngầm. Mặc dù việc mã hóa cứng các miền nhà cung cấp tạo ra chi phí bảo trì bằng cách biến mọi tích hợp nhà cung cấp mới thành một thay đổi mã thay vì một mục cấu hình đơn giản, nhưng nó loại bỏ vectơ lỗ hổng bảo mật liên quan đến danh sách tin cậy do người dùng quản lý. Đối với các nhà phát triển xây dựng công cụ tự động hóa ưu tiên cục bộ và không gian làm việc đa AI Agent, việc cân bằng sự linh hoạt của người dùng với bảo mật tự động vững chắc vẫn là một trong những thách thức kiến trúc xác định của kỹ thuật máy tính hiện đại.
Lưu trữ thông tin xác thực vào kho và quản lý vòng đời bí mật
Khi xác thực thành công, token dạng văn bản thuần túy được định tuyến trực tiếp đến chuỗi khóa bảo mật của hệ điều hành thông qua một kho lưu trữ bí mật được tiêm, trong khi các tệp siêu dữ liệu cục bộ chỉ giữ lại các mô tả không nhạy cảm như ID cấp quyền, URL điểm cuối và dấu thời gian. Sự tách biệt này đảm bảo rằng ngay cả khi các tệp cấp quyền cục bộ bị kiểm tra, không có thông tin xác thực truy cập hợp lệ nào bị lộ. Cơ chế kho lưu trữ đọc lại dữ liệu trạng thái trước khi thực hiện bất kỳ sự thay đổi nào để ngăn chặn sự chênh lệch đồng bộ hóa giữa công cụ máy tính và các công cụ trò chuyện nền. Kết hợp với phạm vi kiểm thử toàn diện mô phỏng các quyền bị từ chối và các trường hợp biên, kiến trúc không cần khóa này cung cấp một bản thiết kế mạnh mẽ để bảo mật các công cụ AI có thể mở rộng chạy cục bộ trên máy của nhà phát triển.
Ảnh bìa: minh họa do AI tạo, kèm chữ tiêu đề; không phải ảnh tư liệu.
Nguồn: How I built keyless OAuth sign-in for my AI companion: PKCE, a single-use loopback callback, and a token that never touches disk · GitHub – akyourowngames/A.N.K.I.T.A: Ankita — open-source personal AI companion for desktop (Electron + terminal). Plugin/skill system, scheduled jobs, browser tools. Local-first, MIT. · GitHub
