2017-11-19 5 views
-1

시스템에 문제가 있습니다. 후, 모든 파일 암호화를 사용하여 파일 공유, 수신자에게 안전하게 키를 보내는 방법은 무엇입니까?

  • 해독 파일을
  • 내 문제가 암호화

  • 들어오는 파일을 수신

    1. 는 (심지어 암호화 된) 모든 파일
    2. 암호화를 보내기 : 내 응용 프로그램은 기본적으로 4 가지를 할 것입니다 수신자가 암호화 된 파일을 수신하고이를 해독하기 위해 키를 입력해야합니다. 송신자의 원래 키가 수신자가 수신자없이 입력과 같거나 같지 않은 경우 조건문을 작성하려면 어떻게해야합니까? 동일한 앱이므로 키에 대한 정보가 있지만 리시버 앱에는 해당 특정 문자열에 대한 지식이 없습니다.

      내가 생각할 수있는 것은 키가 들어있는 텍스트 파일을 만들고받는 사람이 키를 얻기 위해 해당 파일의 내용을 읽는 것입니다. 궁극적으로 키의 조건부 일치에만 해당됩니다. 나는 매우 혼란 스럽지만 나는 ES 파일 탐색기라는 안드로이드 앱에서 작동한다는 것을 알았다. ES 파일 탐색기를 사용하여 파일을 암호화 한 다음 SHAREit과 함께 전송 한 다음 다른 전화로 암호를 해독했습니다. 잘못된 키를 입력하면 앱이 인터넷없이 입력 한 키가 잘못되었음을 알게되었습니다.

  • 답변

    -1

    내가 아는 한 기본적으로 ES 파일 탐색기는 magic numbers을 기반으로합니다. 이것은 모든 파일 확장명을 식별하는 데 사용되는 고유 한 바이트 순서입니다. 따라서 예를 들어 .class 파일의 바이트를 고려하면 파일은 일반적으로 0xCAFEBABE (16 진수 형식) 시퀀스로 시작합니다.

    해독 방법이 어떻게 작동하는지 이해하려면 예를 들어 가장 단순한 암호화 알고리즘 인 xor 암호화가 필요합니다. 이제 암호화하기 전에 .class 파일이 있다고 가정하고 첫 번째 바이트는 CA FE BA BE입니다. 그런 다음 암호를 선택하여 비트로 변환하고 암호화 된 파일의 비트로 xor 변환하십시오. 이제 암호화 된 .class 파일이 생겼습니다. 파일을 암호화/해독하기위한 대부분의 유틸리티는 항상 파일 확장명을 유지합니다. 따라서 친구에게 파일을 보내고 친구가 올바른 비밀번호를 알고 있으면 친구가해야 할 일은 비밀번호를 비트로 변환하고 암호화 된 파일의 비트로 xor로 변환하는 것입니다.

    다음 두 가지 옵션을 사용하여 암호가 올바른지 확인하십시오. 그들은 CA FE BA BE 동일한 경우

    • 간단한 하나가 바로 첫 번째 바이트를 확인한다 (당신은 그것의 확장과 함께 그 에 파일을 전송하기 때문에 자신이 알고있는 원인 그것은을 .class 파일입니다). 암호가 아니면 일 것입니다.
    • 두 번째 것은 모든 파일 확장자 인 에 대한 모든 다른 마법 번호 목록을 갖고 있으며 어느 것이 올바른지 확인하는 것입니다.

    내가 생각하는 일부 암호화/암호 해독 유틸리티는이 두 가지를 모두 사용합니다. 또한 최악의 시나리오의 일부는 암호가 올바른지 확인하기 위해 파일 형식을 추측 해 봅니다.

    Notice : 인터넷 사용은 필요하지 않습니다.

    +1

    이 문제를 해결하는 것은 매우 어려운 방법입니다. XOR 암호화에 대한 논의는 불필요하며 나쁜 관행을 조장합니다. –

    0

    올바른 암호화 키가 사용 된 경우 결정하는 일반적인 두 가지 방법이 있습니다 :

    • HMAC (해시 된 메시지 인증 코드) - 파일을 암호화하고 실행 보통 SHA256 또는 서로 함께 (HMAC를 통해 SHA 제품군). 결과 해시를 암호화 된 파일 앞에 추가하십시오. 항상 암호화 후 HMAC 을 적용하십시오. 그런 다음 수신자는이 HMAC를 계산하여 사용중인 키가 올바른 것인지 판단 할 수 있습니다. 타임 - 세이프 (time-safe) 비교 함수를 사용하여 결과 해시를 비교하여 타이밍 공격을 피하십시오.
    • AEAD 블록 모드 - 암호화하는 동안 GCM 또는 CCM과 같은 블록 모드를 사용하십시오. 이것은 선호되는 옵션입니다. 이러한 블록 모드는 모든 데이터 인증을 처리합니다. GCM이 일반적으로 선호됩니다. 그러나 두 가지 다른 암호화 작업에 동일한 nonce/key 쌍을 사용하면 일반 텍스트가 누출 될 수 있으므로 조심스럽게 nonce 생성이 필요합니다.

    편집 : 문의하신 문제에 대한 안전한 접근 방법을 자세히 설명한 this question에 대한 제 응답을 참조하십시오.

    +0

    감사합니다. 귀하의 답변이 가장 정확한 답변이지만, 귀하가 진술 한 방식을 완전히 사용하기에 충분한 지식과 프로그래밍 기술이 아직 없다고 생각합니다. 나는 실제로 학생이며 언급 한 단계에 대한 자습서를 반드시 읽어야합니다. 감사합니다! – Cyril

    +0

    걱정할 필요가 없습니다. 편집을 참조하십시오. 링크 된 답변의 코드는 GCM 모드에서 파일을 암호화하는 안전한 방법을 자세히 설명합니다. –

    +0

    @LukePark 암호화 후 해시를 적용한 로그인 (암호화 된 파일)? – JAAAY

    관련 문제