Video: Binance Bị hack - So sánh hệ thống bảo mật của Bcnex và Binance 2025
Đây là một câu hỏi rõ ràng khi giao dịch với các máy ủy quyền bên thứ ba: Nếu những công cụ này hoạt động thay mặt bạn, làm thế nào để Amazon Web Services (AWS) biết rằng người mà họ đại diện họ đang hành động là trong thực tế bạn? Nói cách khác, làm thế nào để AWS xác thực danh tính của bạn để đảm bảo rằng các lệnh nhận được từ bạn?
Trên thực tế, cùng một câu hỏi có giá trị ngay cả khi bạn tương tác trực tiếp với API AWS. AWS có thể xác minh tính xác thực của bạn để đảm bảo rằng nó chỉ thực hiện các lệnh cho bạn chứ?
Một cách, tất nhiên, là để bạn bao gồm tên người dùng và mật khẩu tài khoản của bạn trong các cuộc gọi API. Mặc dù một số nhà cung cấp đám mây có cách tiếp cận này, Amazon không.
Thay vì dựa vào tên người dùng và mật khẩu, nó dựa vào hai định danh khác để xác thực các cuộc gọi dịch vụ API của nó: khoá truy cập và khóa truy cập bí mật. Nó sử dụng các phím này trong các cuộc gọi dịch vụ để thực hiện bảo mật theo cách an toàn hơn chỉ sử dụng tên người dùng và mật khẩu của bạn.
Vậy nó hoạt động như thế nào? Khi bạn đăng ký một tài khoản với AWS, bạn có cơ hội tạo một chìa khóa truy cập và có một chìa khoá truy cập bí mật được gửi cho bạn. Mỗi một là một chuỗi dài các ký tự ngẫu nhiên, và khóa truy cập bí mật là lâu hơn của hai. Khi bạn tải về khóa truy cập bí mật, bạn nên lưu trữ nó ở đâu đó rất an toàn vì đó là chìa khóa (sorry - bad pun) để thực hiện các cuộc gọi dịch vụ bảo mật.
Sau khi bạn thực hiện việc này, cả bạn và Amazon đều có một bản sao của khóa truy cập và khoá truy cập bí mật. Giữ lại bản sao của khóa truy cập bí mật là rất quan trọng vì nó được sử dụng để mã hóa thông tin được gửi đi giữa bạn và AWS, và nếu bạn không có Khoá Truy cập Rút lui, bạn không thể thực hiện bất kỳ cuộc gọi dịch vụ nào trên AWS.
Cách hai phím được sử dụng là khái niệm đơn giản, mặc dù phần nào thách thức chi tiết.
Về cơ bản, đối với mỗi cuộc gọi dịch vụ bạn muốn thực hiện, bạn (hoặc một công cụ hoạt động thay mặt bạn) thực hiện các bước sau:
-
Tạo tải trọng cuộc gọi dịch vụ.
Đây là dữ liệu bạn cần gửi đến AWS. Có thể là một đối tượng bạn muốn lưu trữ trong S3 hoặc định danh hình ảnh của một hình ảnh bạn muốn khởi chạy. (Bạn cũng sẽ đính kèm các mẩu thông tin khác vào tải trọng, nhưng vì chúng thay đổi theo các chi tiết cụ thể của cuộc gọi dịch vụ, chúng không được liệt kê ở đây.. Một đoạn dữ liệu là thời gian hiện tại.)
-
Mã hóa tải trọng sử dụng khóa truy cập bí mật.
Làm như vậy đảm bảo rằng không ai có thể kiểm tra tải trọng và khám phá những gì có trong đó.
-
Ký hiệu số lượng tải trọng được mã hoá bằng cách thêm khoá bí mật vào tải trọng được mã hoá và thực hiện quá trình chữ ký số sử dụng khóa truy cập bí mật.
Khóa truy cập bí mật dài hơn và ngẫu nhiên hơn so với mật khẩu người dùng thông thường; khoá truy cập bí mật dài làm cho việc mã hoá được thực hiện với nó an toàn hơn nó nếu nó được thực hiện với một mật khẩu người dùng điển hình.
-
Gửi tổng trọng tải được mã hóa cùng với khóa truy cập của bạn tới AWS thông qua cuộc gọi dịch vụ.
Amazon sử dụng phím truy cập để tìm khóa truy cập bí mật của bạn, nó sử dụng để giải mã tải trọng. Nếu tải trọng giải mã thể hiện văn bản dễ đọc có thể được thực hiện, AWS thực hiện cuộc gọi dịch vụ. Nếu không, nó kết luận rằng có điều gì đó không ổn với cuộc gọi dịch vụ (có lẽ nó được gọi bởi một diễn viên ác độc) và không thực hiện cuộc gọi dịch vụ.
Ngoài việc mã hoá được mô tả, AWS còn có hai phương pháp khác sử dụng để đảm bảo tính hợp pháp của cuộc gọi dịch vụ:
-
Đầu tiên dựa trên thông tin ngày tháng kèm theo tải trọng cuộc gọi dịch vụ, nó sử dụng để xác định liệu thời gian liên quan đến việc tạo ra các cuộc gọi dịch vụ là thích hợp; nếu ngày trong cuộc gọi dịch vụ khác nhiều so với những gì nó nên được (nhiều hơn hoặc sớm hơn thời điểm hiện tại, nói cách khác), AWS kết luận rằng nó không phải là một cuộc gọi dịch vụ hợp pháp và loại bỏ nó.
-
Biện pháp bảo mật bổ sung thứ hai liên quan đến tổng kiểm tra tính cho tải trọng. (A checksum là số đại diện cho nội dung của một thông điệp.) AWS tính tổng kiểm tra tải trọng; nếu checksum của nó không đồng ý với bạn, nó không cho phép các cuộc gọi dịch vụ và không thực hiện nó.
Cách tiếp cận kiểm tra này đảm bảo rằng không ai cản trở nội dung của một thông điệp và ngăn cản một diễn viên ác độc đánh chặn một cuộc gọi dịch vụ hợp pháp và thay đổi nó để thực hiện một hành động không thể chấp nhận. Nếu ai đó sửa đổi thông báo, khi AWS tính toán tổng kiểm tra, checksum không còn phù hợp với thông tin được gửi kèm trong tin nhắn và AWS từ chối thực hiện cuộc gọi dịch vụ.
Nếu, giống như hầu hết người dùng AWS, bạn sử dụng một phương pháp proxy để tương tác với AWS - bảng điều khiển quản lý AWS, thư viện ngôn ngữ hoặc công cụ của bên thứ ba - bạn cần phải cung cấp khóa truy cập và khóa truy cập bí mật cho proxy. Khi proxy thực hiện cuộc gọi dịch vụ AWS thay cho bạn, nó sẽ bao gồm khóa truy cập trong cuộc gọi và sử dụng khóa truy cập bí mật để thực hiện mã hóa payload.
Do vai trò quan trọng mà các phím này đáp ứng trong AWS, bạn nên chia sẻ chúng với chỉ với các đối tượng bạn tin tưởng. Nếu bạn muốn thử một công cụ của bên thứ ba mới và bạn không biết nhiều về công ty, hãy thiết lập một tài khoản thử nghiệm AWS cho phiên tòa thay vì sử dụng chứng chỉ AWS sản xuất của bạn.
Bằng cách đó, nếu bạn quyết định không tiếp tục sử dụng công cụ, bạn có thể bỏ nó, chấm dứt tài khoản AWS thử nghiệm và tiến lên phía trước, không quan tâm đến các lỗ hổng bảo mật tiềm ẩn trong các tài khoản sản xuất chính của bạn. Tất nhiên, bạn luôn có thể tạo ra các phím truy cập mới và các phím truy cập bí mật, nhưng sử dụng các phím sản xuất để kiểm tra và sau đó thay đổi các phím tạo ra rất nhiều công việc, bởi vì bạn cần phải cập nhật mọi nơi mà làm cho tham chiếu đến các phím hiện tại của bạn.
Nếu bạn giống nhiều người dùng AWS khác, bạn sẽ sử dụng một số công cụ và thư viện và quay lại với họ để cập nhật khóa của bạn là một nỗi đau. Bạn nên sử dụng các tài khoản phi sản xuất để thử nghiệm các công cụ mới hơn.