262.3.2. 인증 키 관리

인증 키를 관리하기 위해 명령줄 툴을 사용하면 키 관리에 가장 간단한 방법이 될 수 있습니다. 이렇게 하려면 http://www.bouncycastle.org/java.html 에서 사용할 수 있는 Java 라이브러리도 있습니다.

linux에 명령행 유틸리티 설치

apt-get install gnupg

보안 암호를 입력하여 인증 키를 생성합니다.

gpg --gen-key

다른 사람이 공개 키를 가져와야 하는 경우 파일을 암호화할 수 있습니다.

gpg --import <filename.key

다음 파일이 있어야 하며 예제를 실행하는 데 사용할 수 있습니다.

ls -l ~/.gnupg/pubring.gpg ~/.gnupg/secring.gpg

[[crypto-PGPDecrypting/Verifying ofMessagesEncrypted/SignedbyDifferentPrivate/PublicKeys]] 서로 다른 # Private/Public Keys로 암호화된 암호화 / 서명의 PGP 분리/확인

Camel 2.12.2 부터 .

PGP 데이터 형식러는 다른 공개 키로 암호화되었거나 다른 개인 키로 서명된 메시지를 암호 해독/verify할 수 있습니다. 그냥 비밀 인증 키에 해당 개인 키, 공용 인증 키의 해당 공개 키 및 암호 접근자의 암호를 제공합니다.

Map<String, String> userId2Passphrase = new HashMap<String, String>(2);
// add passphrases of several private keys whose corresponding public keys have been used to encrypt the messages
userId2Passphrase.put("UserIdOfKey1","passphrase1"); // you must specify the exact User ID!
userId2Passphrase.put("UserIdOfKey2","passphrase2");
PGPPassphraseAccessor passphraseAccessor = new PGPPassphraseAccessorDefault(userId2Passphrase);

PGPDataFormat pgpVerifyAndDecrypt = new PGPDataFormat();
pgpVerifyAndDecrypt.setPassphraseAccessor(passphraseAccessor);
// the method getSecKeyRing() provides the secret keyring as byte array containing the private keys
pgpVerifyAndDecrypt.setEncryptionKeyRing(getSecKeyRing()); // alternatively you can use setKeyFileName(keyfileName)
// the method getPublicKeyRing() provides the public keyring as byte array containing the public keys
pgpVerifyAndDecrypt.setSignatureKeyRing((getPublicKeyRing());  // alternatively you can use setSignatureKeyFileName(signatgureKeyfileName)
// it is not necessary to specify the encryption or signer  User Id

from("direct:start")
         ...
        .unmarshal(pgpVerifyAndDecrypt) // can decrypt/verify messages encrypted/signed by different private/public keys
        ...
  • 이 기능은 키 교환을 지원하는 데 특히 유용합니다. 암호 해독을 위해 개인 키를 교환하려는 경우 이전 또는 새 해당 공개 키로 암호화된 기간 동안 수락할 수 있습니다. 또는 발신자가 자신의 서명자 개인 키를 교환하려는 경우 일정 기간, 이전 또는 새 서명자 키를 수락할 수 있습니다.
  • 기술적 배경: PGP 암호화 데이터에는 데이터를 암호화하는 데 사용된 공개 키의 키 ID가 포함되어 있습니다. 이 키 ID를 사용하여 데이터의 암호를 해독하기 위해 시크릿 인증 키에서 개인 키를 찾을 수 있습니다. 동일한 메커니즘은 서명을 확인하는 공개 키를 찾는 데도 사용됩니다. 따라서 더 이상 unmarshaling에 대한 사용자 ID를 지정할 필요가 없습니다.