여기에 요약 된 내용을 기본적으로 설명 합니다 .
작동 방식은 다음과 같습니다. 0에서 9까지의 숫자를 취하고 3을 더하고 결과가 10보다 큰 경우 10을 빼는 함수가 있다고 가정합니다. f (2) = 5, f (8) = 1 등입니다. 이제 우리는 또 다른 함수를 만들 수 있습니다. f '라고 부르면 3이 아닌 7을 더해서 거꾸로됩니다. f '(5) = 2, f'(1) = 8 등
이것이 양방향 함수와 그 역의 예입니다. 이론적으로, 하나의 것을 다른 것으로 매핑하는 수학 함수는 반대로 될 수 있습니다. 그러나 실제로 입력을 스크램블하여 뒤집기가 매우 어려운 함수를 만들 수 있습니다.
입력을 받고 단방향 함수를 적용하는 것을 입력 "해싱"이라고하며 Amazon이 시스템에 저장하는 것은 비밀 키의 "해시"입니다. SHA1은 이러한 종류의 "단방향"기능의 예이며 공격에 대비하여 강화되었습니다.
HMAC 기능은 텍스트 문자열을 인증하기 위해 알려진 키를 사용하기 위해 설립 해쉬 함수에 구축합니다. 다음과 같이 작동합니다.
- 요청 텍스트와 비밀 키를 가져 와서 HMAC 기능을 적용하십시오.
- 해당 인증 헤더를 요청에 추가하고 Amazon으로 보냅니다.
- Amazon은 비밀 키 사본과 방금 보낸 텍스트를 찾아 HMAC 기능을 적용합니다.
- 결과가 일치하면 동일한 비밀 키를 가지고 있다는 것을 알게됩니다.
이 방법과 PKI의 차이점은이 방법이 RESTful 이므로 시스템과 Amazon 서버간에 최소한의 교환이 가능 하다는 것 입니다.
기본적으로 내 신용 카드 번호 또는 비밀번호를 요청하고 자체 데이터베이스에 저장하는 것과 같은 것이 아닙니까?
그렇습니다. 누군가 S3로 할 수있는 피해는 귀하의 계정을 소진하는 것으로 제한됩니다.
그들은 얼마나 비밀이되어야합니까? 비밀 키를 사용하는 이러한 응용 프로그램이 비밀 키를 저장합니까?
어느 시점에서 비밀 키를로드해야하며 대부분의 유닉스 기반 시스템에서는 공격자가 루트 액세스 권한을 얻을 수 있으면 키를 얻을 수 있습니다. 키를 암호화하는 경우 암호를 해독 할 코드가 있어야하며, 어느 시점에서 암호 해독 코드는 일반 텍스트 여야하므로 실행할 수 있습니다. 컴퓨터를 소유하고 있다는 점을 제외하고는 DRM과 동일한 문제입니다.
대부분의 경우 권한이 제한된 파일에 비밀 키를 넣고 시스템이 루팅되지 않도록 일반적인 예방 조치를 취합니다. 임시 파일을 피하는 등 다중 사용자 시스템에서 제대로 작동하게하려면 몇 가지 요령이 있습니다.