Objective-C에서 NSString과 NSData 모두에 대해 NSString을 암호화하려고하므로 검색을 시작했습니다.초보자를위한 AES 암호화/암호 해독
나는 here을 시작했지만, 불행히도 내 머리 위로 끝났다.
나는 그 때 자신을 at this post이라고 발견했는데 따라 가기 쉽다. 그래서 나는 가서 함께 implementation을 찾으려고 노력했다. 구현을 살펴본 후 게시글에서 두 번째 대답을 확인한 결과 코드를 적용 할 수있는 구현이 더 많아서 his gist이되었습니다. 요점 readme대로, 그는 "took down this Gist due to concerns about the security of the encryption/decryption"
입니다. 따라서 위의 구현 보안에는 보안 결함이 있다고 믿을 수 있습니다.
그러나 그 요지에서 그는 내가 암호화에 사용할 수있는 another alternative을 언급했습니다. 코드를 살펴본 후 "a header, encryption salt, HMAC salt, IV, ciphertext, and HMAC"
으로 NSData를 생성하는 것으로 나타났습니다. 나는 같은 라이브러리를 다시 사용하여 디코딩 할 방법을 알고 있지만, 내가 서버에 보내는 것을 알지 못한다면 서버 녀석에게 이것을 어떻게 전달할 수 있을까요?
모든 것의 뿌리에서 나는 내 머리 위로 들어갔다. 내가 위에서 말했던 것을 감안할 때 이것에 대해 많은 학습을 할 시간이 없다는 것을 알고, 절대적으로 필요한 경우가 아니면,이 인코딩/디코딩 프로세스에 대해 어떻게 처리해야하는지, 개인 키가 주어지면 어떻게해야합니까? 나에 의해 설계되지 않은 서버로 전송하는 최종 목표는 무엇입니까? (문장을 실행하는 방법은 무엇입니까?)
서버 측에서 일하는 사람이 보안 전문가이기 때문에 가장 쉬운 해결책을 찾고 싶었습니다. 나는 iOS와 자존심에 대해 무엇을 알고 있는지 알지 못하기 때문에 이것을 위해왔다. (나는이 상황에서 유능하지 않은 것처럼 보이기를 좋아한다.) 그러나 AES를 제대로 할 필요가있는 여분의 것을 가지고 있다는 것은 무엇을 의미합니까? – RileyE
@RileyE 무작위 초기화 벡터, 무작위 소금 (옵션, 무작위로 생성 된 키 대신 암호를 사용하는 경우에만 필요)을 포함하는 형식을 가지고 있으며 hmac 태그를 추가하여 iv, salt 및 ciphertext 수정되지 않았습니다. 암호문의 수정은 AES에 대한 많은 측면 채널 공격의 핵심입니다. – jbtule
@RileyE, 또한 RNCryptor가 가장 편한 솔루션이라고 생각합니다. – jbtule