2016-08-30 2 views
0

Cognito User Pools/Federated Identities, Mobile Analytics 및 S3를 사용하여 앱의 다양한 기능을 관리하는 iOS 앱을 개발하고 있으며 최근에 이러한 기능의 보안에 관심이 있습니다. 인증되지 않은 사용자와 액세스 권한이있는 서비스를 제어하기 위해 이미 IAM 역할을 사용하지만 이러한 서비스의 대부분은 문자열을 사용합니다 (예 : 사용자 풀의 클라이언트 풀 앱 클라이언트 ID 또는 사용자 풀 앱 클라이언트 비밀 또는 모바일 애널리틱스의 앱 ID). 해당 서비스에 대한 앱 액세스iOS 용 AWS 서비스 ID를 안전하게 저장하는 방법은 무엇입니까?

필요할 때 사용할 문자열을이 장치에 안전하게 저장하는 가장 좋은 방법은 무엇입니까? 앱에서 IAM 역할을 사용하기 때문에 이러한 문자열을 보호해야 할 필요가 있습니까?

문자열을 안전하게 저장해야하는 경우 CommonCrypto 라이브러리를 사용하여 문자열을 키 체인에 넣기 전에 암호화하는 것이 가장 좋지만 사용자가 필요로 할 때 암호화에 어떤 키를 사용해야하는지 잘 모르겠습니다. 해당 서비스에 대한 인증되지 않은 액세스. 어떤 충고라도 대단히 도움이 될 것입니다.

답변

0

이것은 모든 모바일 앱의 일반적인 문제입니다. 누군가 정말로 원한다면 앱을 디 컴파일하고 키를 긁어내는 것이 어렵지 않습니다. IAM 역할을 사용하여 기능 사용을 제한하는 것이 좋습니다. 이것은 공격자의 폭발 반지름을 제한하지만, 반드시 막을 수는 없습니다.

Wth 사용자 풀에는 IAM과 함께 사용할 수있는 전 세계적으로 고유 한 식별자가있어 사용자가 사전 수정에 액세스 할 수있는 객체를 제한하기 위해 주요 사전 수정 (폴더와 유사하게 동작)을 사용할 수있는 S3를 제한합니다 그들의 유일한 식별자와 함께. https://mobile.awsblog.com/post/Tx1OSMBRHZVM9V0/Understanding-Amazon-Cognito-Authentication-Part-3-Roles-and-Policies (사용자 풀을 공급자로 사용하여 ID 아이디를 접두어로 사용)를 참조 할 수 있습니다. 앱 구성 방법에 따라이를 사용할 수 있으므로 각 사용자는 자신의 개체 만 수정할 수 있습니다. 애널리틱스에서 이와 같이 제한하는 방법이 없다고 생각합니다. 실제로 의미가 없기 때문입니다.

신분증을 안전하게 보호하기 위해 할 수있는 일이 있지만, 누군가가 그것을 가져 가지 못하게하는 어리석은 방법은 없습니다. 예를 들어 앱에서 ID에 대한 서버 호출을 할 수 있지만 공격자가 서버를 호출 할 수 있습니다. 당신은 그것을 암호화 할 수 있습니다. 공격자가 공격하기가 더 어려워 질 수도 있지만, 어딘가에 열쇠를 보관해야합니다. 만약 앱이 그것을 얻을 수 있다면, 앱을 디 컴파일하는 누군가가 될 수 있습니다. 앱 사용자가 앱 외부에서 일종의 비밀번호를 받아서 거기에 넣지 않는 한 공격자를 차단하는 완벽한 방법은 아닙니다.

희망이 도움이됩니다.

관련 문제