Về cơ bản xây dựng trên những gì được nêu ở đây .
Đây là cách nó hoạt động: giả sử chúng ta có một hàm lấy một số từ 0 đến chín, cộng ba và nếu kết quả lớn hơn mười, trừ mười. Vì vậy f (2) = 5, f (8) = 1, v.v ... Bây giờ, chúng ta có thể tạo một hàm khác, gọi nó là f ', đi ngược lại, bằng cách thêm bảy thay vì ba. f '(5) = 2, f' (1) = 8, v.v.
Đó là một ví dụ về hàm hai chiều và nghịch đảo của nó. Về mặt lý thuyết, bất kỳ hàm toán học nào ánh xạ thứ này sang thứ khác đều có thể đảo ngược. Tuy nhiên, trên thực tế, bạn có thể tạo một hàm làm xáo trộn đầu vào của nó tốt đến mức khó có thể đảo ngược.
Lấy đầu vào và áp dụng chức năng một chiều được gọi là "băm" đầu vào và những gì Amazon lưu trữ trên hệ thống của họ là "băm" khóa bí mật của bạn. SHA1 là một ví dụ về loại chức năng "một chiều" này, nó cũng được tăng cường chống lại các cuộc tấn công.
Hàm HMAC xây dựng trên các hàm băm đã thiết lập để sử dụng khóa đã biết để xác thực chuỗi văn bản. Nó hoạt động như thế này:
- Bạn lấy văn bản yêu cầu của bạn và khóa bí mật của bạn và áp dụng chức năng HMAC.
- Bạn thêm tiêu đề xác thực đó vào yêu cầu của bạn và gửi nó đến Amazon.
- Amazon tra cứu bản sao khóa bí mật của họ và văn bản bạn vừa gửi và áp dụng chức năng HMAC.
- Nếu kết quả khớp, họ biết rằng bạn có cùng khóa bí mật.
Sự khác biệt giữa điều này và PKI là phương thức này là RESTful , cho phép số lượng trao đổi tối thiểu giữa hệ thống của bạn và máy chủ của Amazon.
Về cơ bản, đó có phải là điều tương tự như hỏi tôi về số thẻ tín dụng hoặc mật khẩu của tôi và lưu trữ nó trong cơ sở dữ liệu của họ không?
Có, mặc dù thiệt hại mà ai đó có thể gây ra với S3 dường như bị hạn chế trong việc làm cạn kiệt tài khoản của bạn.
Họ cần bí mật như thế nào? Là những ứng dụng sử dụng các khóa bí mật lưu trữ nó bằng cách nào đó?
Tại một số điểm, bạn sẽ phải tải khóa bí mật và với hầu hết các hệ thống dựa trên Unix, nếu kẻ tấn công có thể truy cập root, họ có thể lấy khóa. Nếu bạn mã hóa khóa, bạn phải có mã để giải mã nó và đến một lúc nào đó, mã giải mã phải là văn bản đơn giản để có thể được thực thi. Đây là vấn đề tương tự DRM có, ngoại trừ việc bạn sở hữu máy tính.
Trong nhiều trường hợp, tôi chỉ đặt các khóa bí mật trong một tệp có quyền hạn chế và thực hiện các biện pháp phòng ngừa thông thường để ngăn hệ thống của tôi bị root. Có một vài thủ thuật để làm cho nó hoạt động chính xác với hệ thống nhiều người dùng, chẳng hạn như tránh các tệp tạm thời, v.v.