2014-06-18 2 views
1

주제가 처음 사용되었으며 iOS 용 공개/비공개 키 암호화를 구현하는 방법에 대한 도움말/방향에 감사드립니다. 보안 프레임 워크가 필요한 것을 수행 할 것으로 보이지만 최선의 조언을하고 싶습니다.공개 키/개인 키를 사용하는 iOS 앱 데이터 암호화

기본적으로 사용자 A와 사용자 B는 안전하게 통신하기를 원합니다. 사용자 A는 사용자 B 공개 키를 사용하고이를 사용하여 메시지를 암호화합니다. 그런 다음 사용자 B가 메시지를 가져와 개인 키로 암호를 해독합니다.

  1. 는 공개/개인 키를 생성하는 가장 좋은 방법은 무엇입니까 :

    그래서 나는 질문이 같아요. 그게 OpenSSL일까요?

  2. OpenSSL 인 경우 iOS 장치에서이를 수행 할 수 있습니까? 아니면 개인/공개 키에 서버/외부 생성을 사용해야합니까?

  3. iOS 기기 외부에서 비공개/공개 키를 생성하는 것이 유일한 옵션 인 경우 iOS 기기가 정상 다운로드와 같이 HTTP를 통해 키 파일을 요청하도록하는 간단한 문제입니까?

  4. 마지막으로 사용자에게 publica 및 개인 키가있는 경우 RSA (bsw RSA 옵션)를 사용하여 메시지를 암호화하고 해독하는 방법을 보여주는 간단한 자습서/예제가 있습니까?

답변

1
  1. 않도록 OpenSSL이 가능하면, OSX/iOS의 애플 암호화 방법을 사용합니다.
  2. 서버 측에서 OpenSSL이 최선의 방법 일 수 있습니다.
  3. https을 사용하면 안전하게 키를 전송할 수 있습니다.

는 키가 예제 코드에 대한 SO Question를 참조 SecKeyGeneratePair() 사용 생성하려면 :

  • 다음 링크는 좋은 예제 코드를 제공합니다.

    전송 용 키를 얻으려면 SecItemCopyMatching() 예제 코드는 SO Answer을 참조하십시오.

    예 코드 RSA 암호화를 수행하기위한

    SO Answer

    정보를 참조 :

    공개/개인 키 동일한 시스템에 함께 생성된다. 공개 키는 공개적으로 쉽게 공유 할 수 있지만 공개 키를 인증하는 것이 문제입니다. https은 키를 전송할 수있는 효과적인 방법입니다.

    일반적으로 데이터는 음부/개인 키로 암호화/암호 해독되지 않습니다. 이는 몇 가지 이유입니다. 매우 느리며 데이터 크기가 제한되어 있습니다 (키 크기에 따라 제한됨). 일반적으로 데이터는 AES 및 임의 키와 같은 대칭 방식으로 암호화되며 키는 공개 키로 암호화되고 개인 키로 보내고 암호를 해독합니다. 그런 다음이 키는 AES로 암호화 된 실제 데이터를 해독하는 데 사용됩니다.

    OpenSSL은 더 이상 Apple에서 제공하지 않으므로 원하는 소스 버전을 구하여 직접 만들어야합니다.OpenSSL을 제공하지 않는 이유는 부 버전이 이전 버전과 호환되지 않기 때문이며 Apple이 현재 버전을 제공하고 개발자가 호환되지 않는 이전 버전을 사용하는 응용 프로그램을 사용하는 경우 문제가 발생합니다.

    튜토리얼 : Google it.

  • +0

    데이터를 암호화하고 다른 쪽에서 암호 해독을 제안 하시겠습니까? 감사! – marcelorocks

    +0

    요즘에는 백엔드를 피합니다. 개인적으로 가능하다면 가능한 한 SSL/Open Transport, https 만 사용하십시오. RSA 구성 요소는 코드 기반간에 거의 상호 운용성을 제공하지 않아야합니다. AES는 더 많은 문제와 더 많은 옵션과 문제가 있으며 많은 서버 측 솔루션이 낮은 수준에서 수행하는 작업을 적절하게 문서화하지 못합니다. 서버 측 코드가 Apple 암호화가 가능한 상호 합의를 충분히 설명하고 있고 몇 가지 예외가 상호 운용 될 수 있다면 Apple은 함께 사용할 수있는 개별 구성 요소를 제공합니다. – zaph

    +0

    확인, 결론. 암호화 코드를 작동 시키면 보안을 제공하는 것이 쉽습니다. 적어도 수백 시간의 암호 경험이없고 ** 안전한 시스템 **을 원하면 암호 도메인 전문가가 참여해야합니다. 최소한 암호화 체계와 코드를 검토하십시오. 또한 훌륭한 아이디어는 기본 암호 시스템 설계에 관련된 사람입니다. 보안 코드에 하나의 "버그"가 있으며 안전하지 않습니다. goto가 실패했습니다. 제 아내는 평생 5 년 이상 풀 타임으로 복습에서 평론가 또는 레드 잉크로 전학했습니다. 추신 나는 그렇게하지 않는다. – zaph

    관련 문제