Khóa giao diện lập trình ứng dụng (API) là mã độc nhất được API sử dụng để xác định người dùng hoặc ứng dụng đang gọi. Các khóa API được sử dụng để theo dõi và kiểm soát những ai đang sử dụng API và cách họ sử dụng API đó, cũng như để xác thực và cấp quyền cho các ứng dụng — tương tự như cách hoạt động của tên người dùng và mật khẩu. Khóa API có thể ở dạng một khóa hoặc một bộ nhiều khóa. Người dùng nên sử dụng khóa API đúng cách để cải thiện khả năng bảo mật tổng thể của họ trước hành vi trộm cắp khóa API và tránh các hậu quả liên quan do các khóa API của họ bị xâm phạm.

Phân biệt API và khóa API

Để hiểu khóa API là gì, trước tiên bạn phải hiểu API là gì. Giao diện lập trình ứng dụng hoặc API (Application programming interface) là phần mềm trung gian cho phép hai hoặc nhiều ứng dụng chia sẻ thông tin. Ví dụ: API của CoinMarketCap cho phép các ứng dụng khác truy xuất và sử dụng dữ liệu tiền mã hóa, chẳng hạn như giá, khối lượng và vốn hóa thị trường.

Một khóa API có nhiều dạng khác nhau — có thể là một khóa hoặc một bộ nhiều khóa. Các hệ thống khác nhau sử dụng các khóa này để xác thực và cấp quyền cho một ứng dụng, tương tự như cách sử dụng tên người dùng và mật khẩu. Một kóa API được ứng dụng khách API sử dụng để xác thực ứng dụng gọi API. 

Chẳng hạn, nếu Binance Academy muốn sử dụng API CoinMarketCap, thì một khóa API sẽ được CoinMarketCap tạo ra và được sử dụng để xác thực danh tính của Binance Academy (ứng dụng API) đang yêu cầu quyền truy cập API. Khi Binance Academy truy cập API của CoinMarketCap, khóa API này sẽ được gửi đến CoinMarketCap cùng với yêu cầu. 

Khóa API này chỉ nên được sử dụng bởi Binance Academy và không được chia sẻ hoặc gửi cho người khác. Việc chia sẻ khóa API này sẽ cho phép bên thứ ba truy cập CoinMarketCap với tư cách là Binance Academy và mọi hành động của bên thứ ba sẽ xuất hiện như thể chúng đến từ Binance Academy.

Khóa API cũng có thể được API CoinMarketCap sử dụng để xác nhận xem ứng dụng có được phép truy cập tài nguyên được yêu cầu hay không. Ngoài ra, các chủ sở hữu API sử dụng khóa API để theo dõi hoạt động của API, chẳng hạn như loại, lưu lượng và khối lượng yêu cầu. 

Khóa API là gì? 

Khóa API được sử dụng để kiểm soát và theo dõi ai đang sử dụng API và cách họ sử dụng API đó. Thuật ngữ “khóa API” có thể có nghĩa khác nhau đối với các hệ thống khác nhau. Một số hệ thống có một mã duy nhất nhưng những hệ thống khác có thể có nhiều mã cho một “khóa API” duy nhất.   

Như vậy, “khóa API” là một mã duy nhất hoặc một bộ mã duy nhất được một API sử dụng để xác thực và ủy quyền cho người dùng hoặc ứng dụng đang gọi. Một số mã được sử dụng để xác thực và một số được sử dụng để tạo chữ ký mật mã nhằm chứng minh tính hợp pháp của yêu cầu. 

Các mã xác thực này thường được gọi chung là “khóa API”, trong khi các mã được sử dụng cho chữ ký mật mã có nhiều tên khác nhau, chẳng hạn như “khóa bí mật”, “khóa công khai” hoặc “khóa riêng tư”. Việc xác thực đòi hỏi phải xác định các thực thể liên quan và xác nhận họ đúng như họ nói.

Mặt khác, nó ủy quyền chỉ định các dịch vụ API được phép truy cập. Chức năng của khóa API tương tự như chức năng của tên người dùng và mật khẩu tài khoản; nó cũng có thể được kết nối với các tính năng bảo mật khác để cải thiện tính bảo mật tổng thể. 

Mỗi khóa API thường được chủ sở hữu API tạo cho một thực thể cụ thể (thông tin chi tiết hơn bên dưới) và mỗi khi lệnh gọi được thực hiện tới điểm cuối API — yêu cầu xác thực hoặc ủy quyền người dùng hoặc cả hai — thì khóa có liên quan sẽ được sử dụng.

Chữ ký mật mã

Một số khóa API sử dụng chữ ký mật mã như một lớp xác minh bổ sung. Khi người dùng muốn gửi một số dữ liệu nhất định tới API, chữ ký số được tạo bởi một khóa khác có thể được thêm vào yêu cầu. Sử dụng mật mã, chủ sở hữu API có thể xác minh rằng chữ ký số này khớp với dữ liệu được gửi.

Chữ ký đối xứng và không đối xứng 

Dữ liệu được chia sẻ thông qua API có thể được ký bằng các khóa mật mã, thuộc các danh mục sau:

Các khóa đối xứng

Chúng liên quan đến việc sử dụng một khóa bí mật để thực hiện cả việc ký dữ liệu và xác minh chữ ký. Với các khóa đối xứng, khóa API và khóa bí mật thường được tạo bởi chủ sở hữu API và dịch vụ API phải sử dụng cùng một khóa bí mật để xác minh chữ ký. Ưu điểm chính của việc sử dụng khóa số ít là làm như vậy nhanh hơn và yêu cầu ít sức mạnh tính toán hơn để tạo và xác minh chữ ký. Một ví dụ điển hình về khóa đối xứng là HMAC.

Các khóa bất đối xứng

Chúng liên quan đến việc sử dụng hai khóa: khóa riêng tư và khóa công khai, khác nhau nhưng được liên kết bằng mật mã. Khóa riêng tư được sử dụng để tạo chữ ký và khóa công khai được sử dụng để xác minh chữ ký. Khóa API được tạo bởi chủ sở hữu API nhưng cặp khóa riêng tư và khóa công khai được tạo bởi người dùng. Chủ sở hữu API chỉ cần sử dụng khóa công khai để xác minh chữ ký, vì vậy khóa riêng tư có thể vẫn là cục bộ và bí mật. 

Ưu điểm chính của việc sử dụng khóa bất đối xứng là tính bảo mật cao hơn trong việc tách riêng khóa tạo chữ ký và khóa xác minh. Điều này cho phép các hệ thống bên ngoài xác minh chữ ký mà không thể tạo chữ ký. Một ưu điểm khác là một số hệ thống mã hóa bất đối xứng hỗ trợ thêm mật khẩu vào khóa riêng tư. Một ví dụ điển hình là cặp khóa RSA. 

Các khóa API có an toàn không? 

Trách nhiệm giữ khóa API an toàn thuộc về người dùng. Các khóa API tương tự như mật khẩu và cần được xử lý cẩn thận. Việc chia sẻ khóa API cũng tương tự như chia sẻ mật khẩu và do đó, bạn không nên thực hiện việc này vì làm như vậy sẽ khiến tài khoản của người dùng gặp rủi ro. 

Các khóa API thường được nhắm mục tiêu trong các cuộc tấn công mạng vì chúng có thể được sử dụng để thực hiện các hoạt động quan trọng trên hệ thống, chẳng hạn như yêu cầu thông tin cá nhân hoặc thực hiện các giao dịch tài chính. Trên thực tế, đã có trường hợp trình thu thập thông tin và tấn công cơ sở dữ liệu trực tuyến để đánh cắp các khóa API.

Hậu quả của việc đánh cắp khóa API có thể rất nghiêm trọng và dẫn đến tổn thất tài chính đáng kể. Hơn nữa, vì một số khóa API không hết hạn nên những kẻ tấn công có thể sử dụng chúng vô thời hạn sau khi bị đánh cắp cho đến khi chính các khóa đó bị thu hồi.

Cách sử dụng khóa API đúng cách

Do cấp quyền truy cập vào dữ liệu nhạy cảm, nên việc sử dụng khóa API một cách an toàn là điều tối quan trọng. Bạn có thể làm theo các nguyên tắc thực hành tốt nhất để sử dụng khóa API này để cải thiện tính bảo mật tổng thể: 

  1. Làm mới các khóa API của bạn thường xuyên nếu có thể. Điều này có nghĩa là bạn nên xóa khóa API hiện tại của mình và tạo một khóa mới. Với nhiều hệ thống, thật dễ dàng để tạo và xóa các khóa API. Tương tự như cách một số hệ thống yêu cầu bạn thay đổi mật khẩu cứ sau 30 đến 90 ngày, bạn nên luân phiên các khóa API của mình với tần suất tương tự nếu có thể.

  2. Sử dụng danh sách trắng dành cho IP: Khi bạn tạo khóa API, hãy lập danh sách các IP được phép sử dụng khóa (danh sách IP trắng). Bạn cũng có thể chỉ định danh sách các IP bị chặn (danh sách đen IP). Bằng cách này, ngay cả khi khóa API của bạn bị đánh cắp, nó vẫn không thể bị truy cập bởi một IP không được nhận dạng.

  3. Sử dụng nhiều khóa API: Có nhiều khóa và phân chia trách nhiệm giữa chúng sẽ giảm rủi ro bảo mật, vì tính bảo mật của bạn sẽ không phụ thuộc vào một khóa duy nhất có nhiều quyền. Bạn cũng có thể đặt các danh sách trắng IP khác nhau cho mỗi khóa, giúp giảm rủi ro bảo mật hơn nữa. 

  4. Lưu trữ khóa API một cách an toàn: Không lưu trữ khóa của bạn ở những nơi công cộng, trên máy tính dùng chung hoặc ở định dạng văn bản thuần túy ban đầu của chúng. Thay vào đó, hãy lưu trữ từng cái bằng mã hóa hoặc trình quản lý bí mật để bảo mật tốt hơn và cẩn thận để không vô tình làm lộ chúng. 

  5. Không chia sẻ các khóa API của bạn. Việc chia sẻ các khóa API tương tự như chia sẻ mật khẩu của bạn. Khi làm như vậy, bạn đã cấp cho bên khác quyền xác thực và ủy quyền hoạt động giống như bạn. Nếu chúng bị xâm phạm, khóa API của bạn có thể bị đánh cắp và sử dụng để xâm nhập vào tài khoản của bạn. Khóa API chỉ nên được sử dụng giữa bạn và hệ thống tạo khóa đó.

Nếu khóa API của bạn bị xâm phạm, trước tiên bạn cần tắt nó để tránh thiệt hại thêm. Nếu có bất kỳ tổn thất tài chính nào, hãy chụp ảnh màn hình thông tin chính liên quan đến vụ việc, liên hệ với các đơn vị liên quan và gửi báo cáo cho cảnh sát. Đây là cách tốt nhất để tăng cơ hội lấy lại bất kỳ khoản tiền nào bị mất. 

Tổng kết

Khóa API cung cấp các chức năng xác thực và ủy quyền cốt lõi, đồng thời người dùng phải quản lý và bảo vệ khóa của họ một cách cẩn thận. Có nhiều bước và khía cạnh để đảm bảo việc sử dụng an toàn các khóa API. Nhìn chung, bạn nên xem khóa API như mật khẩu cho tài khoản của mình.

Đọc thêm: