2013-04-08 2 views
4

libspotify의 사용 조건에는 키가 안전하게 저장되어야한다는 내용이 나와 있습니다. 내가 찾은 키를 저장하는 유일한 권장 사항은 응용 프로그램을 컴파일하고 바이너리를 배포하는 것입니다. 키를 디버거를 사용하여 쉽게 검색 할 수 있기 때문에 보안이 아닌 다른 것으로보기가 어렵습니다.libspotify 키의 오용 방지

이것은 실제로 Spotify가 제안하는 접근 방식입니까? 키를 포함하는 파일 만 컴파일하고 나머지 응용 프로그램을 오픈 소스로 배포하면 어떨까요?

내 질문의 핵심은 이것입니다. 모든 사용자가 자신의 키를 얻지 않고 ToS를 위반하지 않도록하려면 어떻게해야합니까?

+0

이 질문은 spotify의 서비스 약관에 관한 것이므로 주제와 관련이없는 것으로 보입니다. spotify api에 관한 질문 만 주제입니다. – quetzalcoatl

답변

6

로직은 다음과 같습니다 (저는 Spotify에서 작업합니다) : 개발자가 API 키를 바이너리로 가져 오기 위해 많은 노력을해야만 개발자가 그만한 가치가 있습니다. 모두가 불행해질 것입니다.

그러나 우리는 모든 사람이 하나의 키를 사용하고 있기 때문에 신뢰할 수있는 방식으로 추적 할 수 없기 때문에 키가 확산되지 않도록하고 해당 키가 악의적 인 용도로 사용되면서 우리가 많은 것을 죽이기 때문에 응용 프로그램이 갑자기 손상됩니다.

끔찍한 자동차 유추를 강요하려면 API 키가 귀중한 아이템이고 애플리케이션이 자동차라고 상상해보십시오. 자동차 좌석에 항목을 남겨두면 (즉 API 키가 일반 텍스트로 표시됨) 누군가를 침입하여 도용 (즉, 자신의 앱에서 키 사용)하도록 초대합니다. 글러브 박스에 넣으면 (바이너리로 컴파일) 누군가가 글러브 박스에 있다는 것을 알고 누군가가 차에 침입하면 (앱을 분해합니다), 어쨌든 꽤 많은 게임입니다.

간단히 말해서 키를 컴파일하는 것이 절대적으로 보안상의 문제이지만, 다른 애플리케이션의 API 키를 자연스럽게 재사용하지 못하도록하는 것으로 충분합니다.

내 질문의 핵심은 다음과 같습니다. 모든 사용자가 자체 키를 얻지 않고 ToS를 위반하지 않도록하려면 어떻게해야합니까?

애플리케이션을 바이너리 형식으로 배포하는 경우 컴파일하는 것이 좋습니다. 소스 형식으로 배포하는 경우 키를 실제로 포함 할 수 없습니다.

+0

나는 알기 쉽게 설명해 주셔서 감사합니다. 그러나 마지막 문장을 다음과 같이 확장 해줄 것을 요청할 수 있습니다. 키 자체를 오픈 소스로 배포 할 수는 없지만 오브젝트 코드로 키 (키)를 재배포하는 방법은 무엇입니까? 나머지 소스가 열려 있습니까? 필자가 얻는 것은 물론이다. 내 애플리케이션의 소스를 컴파일 된 버전의 키와 함께 (예 : 공용 GitHub 저장소에) 넣을 수 있을까? 나는 결국 열쇠를 책임지고 있음을 이해합니다. 나는 이것에 대한 Spotify의 입장에 대해서 궁금해. –

+0

나는이 질문에 답할 수밖에 없다. 왜냐하면 그것이 바로 가장자리에 있기 때문이다. 예, 컴파일되었지만 appkey.o는 아주 쉬운 목표가 될 것이다. – iKenndac

+0

이해할 수 있습니다. 나는 너를 곤경에 빠뜨릴 수있는 말을하도록 강요하고 싶지 않다. 상관없이 당신의 도움에 감사드립니다. 나는 내 자신을 위해 열쇠를 보관하고 지금은 소스를 배포 할 것이다. –