2017-04-18 1 views
-2

내 코코아 응용 프로그램에서 Swift를 사용하여 AES를 통해 파일을 암호화하는 방법을 찾고 있습니다. 일반적인 프레임 워크 (예 : CryptoSwift)는 텍스트 만 암호화하도록되어 있습니다. 이 작업을위한 특정 프레임 워크가 있습니까? 아니면이를 위해 macOS가 내장되어 있습니까?Swift와 Cocoa를 통해 파일을 암호화하는 간단한 방법은 무엇입니까?

감사합니다.

+2

* 공통 프레임 워크 (즉, CryptoSwift) *는 '문자열'과 '데이터'를 처리 할 수 ​​있습니다. – vadian

답변

2

예, CommonCrypto를 사용하는 것이 좋습니다. 그러나 자체 개발 구현을 사용하지 않는 것이 좋습니다.

보안 권한을 수행하는 것이 어렵지 만 AES도 예외는 아닙니다.

  • 당신은 당신은 당신의 데이터 블록 크기/키 사이즈보다 짧은 경우에는 (내가 PKCS7 추천) 패딩을 사용하는 데 필요한 정확한 길이 (선호 64 또는 32 바이트)
  • 의 적절한 키를 사용해야합니다. AES는 자체적으로 안전하지 않으며이 비트가 중요합니다.
  • 공격자가 동일한 키의 여러 암호화 된 스트림간에 상관 관계를 도출 할 수 있기 때문에 실제로는 initializationVector (최종 데이터 스트림에 appendend 또는 prepended)를 사용하고 싶습니다.
  • 암호화 된 데이터의 변조를 방지하고 예기치 않은 잠재적으로 유해한 결과 데이터를 제공하기 위해 HMAC (SHA2-256 이상, commoncrypto에서도 사용 가능)를 사용합니다.

구현 목록을 작성해야하기 때문에이 목록은 계속되지만이 시점에서 내 메모리는 실패합니다. CommonCrypto를 둘러싼 표준 구현을 위해 인터넷 검색을 적극 권장합니다.

또한 코드베이스가 입증되지 않았고 Apple의 프레임 워크 과 같이 올바른 검토를 거쳤 기 때문에 인 코드로 작성된 것은 사용하지 않는 것이 좋습니다 (I.E. CryptoSwift).

관련 문제