asdjke
10
2019-11-28 11:18:33
3
217

API Gateway를 iOS 앱에서 호출하는 방식으로 앱을 개발중인데 질문드립니다!


안녕하세요, 현재 iOS 상에서 API Gateway를 호출하는 식으로 서버와의 통신을 하는 앱을 개발중입니다.

그런데 보안적인 측면에서 공부를 시작한 지 얼마 되지 않아 궁금한 게 많아서 질문드립니다.


현재 저희의 앱에서 서버와 통신하는 프로세스가

1. 로그인을 하면 ID, PW를 암호화해서 Query String에 넣고, header 안에 앱 내에 저장한 API Gateway의 api-key를 넣어서 서버로 Request를 보냅니다.

2. 서버에서 api-key 인가 작업을 처리하고, valid하면 서버 측에서 토큰을 생성하여 Response로 넘겨줍니다.

3. 그 뒤의 서버 작업에서 Request를 보낼 때에는 header 안에 api-key와 로그인 할 때 받았던 토큰을 같이 넣어서 보내고, 서버에서는 api-key가 valid한지 확인하고 토큰 확인 작업을 한 뒤, 정상적인 세션이라고 판단되면 정상적인 시나리오의 서버 작업을 진행합니다.


현재 이와 같은 식으로 진행이 되는데 걱정이 되는 게 역공학 등의 방법으로 앱 파일을 뜯어봐서 api-key를 뚫린다면 위의 프로세스를 앱 말고 curl이나 Postman으로도 똑같이 할 수 있을 것 같은데 이걸 막고 싶습니다. 혹시 request가 저희가 배포한 앱에서 온 건지 아닌지를 확인 할 수 있는 방법이 있거나 아니면 API Gateway 외에 다른 프레임 워크를 이용해서 이를 해결할 수 있는 방법이 있는지가 궁금합니다!

0
0
  • 답변 3

  • abilists.com
    1k
    2019-11-28 11:51:07 작성 2019-11-28 11:52:23 수정됨

    원토크때문에 안뚫릴 것 같은데...   https을 쓰면  ID, PWD암호화안해도 될것 같아요.

    1
  • asdjke
    10
    2019-11-28 12:04:26 작성 2019-11-28 12:06:05 수정됨

    abilists.com 감사합니다! ID, PW 암호화는 혹시나 해서 넣었는데 빼도 될 것 같아요. 근데 아직 궁금한 게 Request가 올 때 저희가 배포한 앱에서 온것인지, 그게 아닌지를 구분하고 싶은데 혹시 해답을 아실까요?

    0
  • abilists.com
    1k
    2019-11-28 12:46:45 작성 2019-11-28 12:47:29 수정됨

    일단, 어느웹서비스이던, 부정request는 존재합니다. 그래서  ID,PWD, 원토큰이 존재하며, 중요한건 이것이 공격으로 의심되는것이지요. 

    예전에 잛은 일정간격으로 request가오면, 블랙리스트에 넣는 일을 했습니다.(토큰과 카운터를 멤캐쉬서버에 넣어 놓고, 거 서버를 더블 마스터 서버운용)

    Auth2을 이용하는것 추천하지만, 하나의 어플에는 적용안해도 될것 같네요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.