암호화에 SSL 인증서 사용 및 생성 된 키

스테판 -v

저는 암호화 작업을하고 있으며 현재 openssl_encrypt데이터를 암호화 하는 솔루션을 사용하고 있습니다. 현재 나는 openssl_public_encrypt을 사용하는 오래된 코드베이스를 다시 작성 하고 openssl_private_decrypt있습니다.

물론 이전에 사용했던 암호화와 일치해야하지만 암호화 된 데이터를 취소하고 이에 대한 암호화 및 복호화 방법을 다시 작성할 생각입니다.

openssl_public_encrypt의 단점 은 암호화에 사용되는 인증서보다 클 수 없다는 것입니다. 이 단점은 openssl_encrypt.

http://php.net/manual/en/function.openssl-public-encrypt.php#55901

레거시 코드베이스의 해결 방법은 대용량 데이터를 암호화 할 수 있도록 암호화 조각을 함께 붙이는 것이 었습니다. 이것은 나에게 꽤 지저분하고 집중적 인 것 같습니다.

내 현재 솔루션은 openssl_encryptLaravel이 키를 생성하는 것과 같은 간단한 생성 키를 사용하고 있습니다.

protected function generateRandomKey()
{
    return 'base64:'.base64_encode(random_bytes(
        $this->laravel['config']['app.cipher'] == 'AES-128-CBC' ? 16 : 32
    ));
}

이것은 훌륭하게 작동하지만 이전 코드 기반에서는 아직 완전히 알지 못하는 이유로 암호화 / 암호 해독을 위해 SSL 인증서를 선택했습니다.

openssl_encrypt공공 / 사설 방식 의 장점 / 단점은 무엇입니까 ?

제 3 자와 협력하여 공개 인증서를 제공 할 수 있지만 생성 된 키를 제공 할 수도 있습니다.

금융 시스템과 같은 제 3자가 암호화에 액세스해야하는 경우에도 암호를 해독 할 수 있습니다.

두 경우 모두 데이터를 해독하기위한 키를 제공합니다.

나는 누군가가 당신이 public/private openssl기능을 사용할 수 있도록 인증서보다 더 이상 값을 암호화하지 않도록 자신을 제한하는 이유를 밝힐 수 있기를 바랍니다 .

건배.

DarkSquirrel42

약간의 빛 ... 알았어 ...

먼저 여기서 다루고있는 알고리즘 또는 알고리즘 범주를 살펴 보겠습니다.

공개 / 개인 키 ... 이것은 RSA ... DH ...와 같은 알고리즘을 사용하는 비대칭 암호화를 의미합니다.

AES ... DES ... TwoFish ...와 같은 알고리즘을 사용하는 대칭 암호화와 달리

코드베이스에 데이터 크기가 비대칭 알고리즘에 비해 너무 커서 암호화 된 데이터 청크를 묶는 것과 같은 내용이 포함되어있는 경우 자신이 무엇을하는지 모르는 빌드를 안전하게 말할 수 있습니다.

대칭 알고리즘은 대량 데이터를 암호화하는 데 사용됩니다. 비대칭 알고리즘은 대칭 키를 암호화하는 데 사용되므로 해당 개인 키의 소유자가 대칭 키를 해독 할 수 있으므로 대량 데이터 암호문을 해독 할 수 있습니다.

AES와 같은 대칭 암호의 키는 설명 된 방법에서 찾은 크기 제한보다 크지 않습니다.

비대칭 암호화의 이유는 공개 키를 전 세계와 공유 할 수 있고 모든 사람이 데이터를 암호화 할 수 있기 때문입니다 (여기서 데이터는 모든 실제 시나리오의 99 %를 의미합니다 : 대칭 키). 암호를 해독 할 수 있습니다 ... 개인 키는 절대 손을 떠나지 않습니다 ... 소유자를 제외하고는 아무도 액세스 할 수 없습니다.

인증서는 단순히 공개 키 + 메타 데이터입니다.

해당 메타 데이터에는 키 쌍을 소유 한 사람, 키 쌍이 사용되는 용도, 키 쌍이 유효한시기 등의 정보가 포함됩니다.

메타 데이터는 특정 형식으로 저장되고 신뢰할 수있는 제 3 자에 의해 서명됩니다. 결과는 인증서라고 부르는 것입니다.

인증서의 서명은 공개 키 암호화로 할 수있는 다른 작업입니다 ...하지만 이번에는 다른 방법으로 ... 특정 데이터 세트에 대한 서명을 생성하려면 개인 키가 필요합니다 ... 서명 할 수 없지만 공개 키를 보유한 모든 사람이 서명을 확인할 수 있습니다. 서명이 속한 데이터의 단일 비트를 변경하면 무효화되므로 인증서의 내용을 간단히 조작 할 수 없습니다. 예를 들어 키 변경

최신 정보:

제 3자가 공개 키를 가지고있는 동안 암호화 된 데이터를 보낼 수 있도록해야하는 경우 :

-그들은 그들에게만 알려질 RANDOM 대칭 키를 생성합니다 (Ksym이라고합시다)
-그 키와 대칭 암호로 필요한 데이터를 암호화합니다 ... (ct = ENC (DATA, Ksym))
-암호화 공개 키를 사용하는 Ks (eKsym = ENC (Ksym, Kpub))
-ct 및 eKsym을 보냅니다.

-당신은 eKsym을 해독합니다 (Ksym = DEC (eKsym, Kpriv))
-당신은 DATA를 해독합니다 = DEC (ct, Ksym)

사리:

당신과 그 제 3 자만이 Ksym을 알고 있습니다.

타사에서도 해독 할 수없는 방식으로 해당 데이터를 저장하려면 다시 암호화해야합니다.

eKsym 및 ct를 저장하는 경우 데이터를 원래 암호화 한 제 3 자만이 필요한 암호 해독 키 Ksym에 대해 알고 있습니다 (물론 귀하 또는 제 3 자로부터 키를받은 모든 사람).

재미있는 사실은 : Ksym은 들어오는 데이터의 모든 부분에 대해 다르며 해당 데이터에 대해서만 유효합니다. 하나의 Ksym을 다른 제 3 자와 공유하면이 키에 속한 데이터의 한 부분에만 액세스 할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

암호에서 파생 된 키로 암호화 된 파일 ... 사용자가 암호를 잊어 버린 경우

분류에서Dev

IdentityServer3에 대한 SSL 자체 서명 된 인증서 생성 및 구성

분류에서Dev

rsa : 2048을 사용하여 생성 된 SSL 인증서는 SHA-2 암호화 해시 알고리즘을 사용합니까?

분류에서Dev

IBM AppScan-암호화 된 세션 (SSL) 쿠키에서 누락 된 보안 속성

분류에서Dev

활성화 된 API 키를 사용하여 Evernote 프로덕션에서 인증 토큰 생성 오류

분류에서Dev

phpseclib를 사용하여 생성 된 인증서에 확장 된 키 사용 확장 추가

분류에서Dev

암호화에서 잘못된 키 사용

분류에서Dev

기존 SSL 인증서에 대한 개인 키 생성

분류에서Dev

Triple DES 암호화를 사용하여 RSA 개인 키 생성

분류에서Dev

URL에서 직접 사용할 수있는 암호화 된 문자열 생성

분류에서Dev

암호 인증이 비활성화 된 상태에서 scp를 사용하여 파일을 원격 서버에 복사 할 때 암호 프롬프트

분류에서Dev

회사 iOS 배포 인증서 취소 및 새 키로 새 인증서 생성

분류에서Dev

SSL 인증서 및 개인 암호

분류에서Dev

비활성화 된 암호 및 로그인으로 사용자 추가

분류에서Dev

서버 인증서 및 키에 따라 서버의 "ssl3_get_client_hello : 공유 암호 없음"

분류에서Dev

openssh에서 다단계 인증 활성화 (공개 키 + 암호)

분류에서Dev

AWS Secrets Manager에서 키 교체로 생성 된 새 암호를 사용하는 방법

분류에서Dev

openssl은 PBKDF2를 사용하여 암호에서 파생 된 키를 어떻게 구성합니까?

분류에서Dev

새로 생성 된 DM-CRYPT / LUKS 파티션에서 "이 암호로 사용할 수있는 키 없음"

분류에서Dev

CakePHP 해싱 알고리즘 및 SALT를 사용하여 CakePHP 웹 사이트 데이터베이스 용 MySQL에서 암호화 된 암호를 생성하는 SQL 문을 작성하는 방법은 무엇입니까?

분류에서Dev

사용자 이름-암호 조합을 암호화 된 형식으로 키 체인에 저장하는 방법

분류에서Dev

동일한 비밀 키를 사용하여 자바에서 C # 및 암호 해독의 암호화

분류에서Dev

암호화 된 비밀번호에 대한 인증 사용

분류에서Dev

자체 서명 된 인증서 및 basic128rsa15 암호화를 사용하는 Python opc-ua 통신

분류에서Dev

사전 생성 및 값 표현식 선언에서 키 사용

분류에서Dev

C ++를 사용하여 Windows에서 암호화 된 폴더 읽기 및 쓰기

분류에서Dev

CentOS 7에서 GnuPG를 사용하여 자체 서명 된 공개 키 생성 및 전송

분류에서Dev

이미 암호화 된 데이터에 대한 AES 키 생성

분류에서Dev

Xamarin Cycle 8에서 SSL 인증서 유효성 검사 실패 (Android 및 iOS)

Related 관련 기사

  1. 1

    암호에서 파생 된 키로 암호화 된 파일 ... 사용자가 암호를 잊어 버린 경우

  2. 2

    IdentityServer3에 대한 SSL 자체 서명 된 인증서 생성 및 구성

  3. 3

    rsa : 2048을 사용하여 생성 된 SSL 인증서는 SHA-2 암호화 해시 알고리즘을 사용합니까?

  4. 4

    IBM AppScan-암호화 된 세션 (SSL) 쿠키에서 누락 된 보안 속성

  5. 5

    활성화 된 API 키를 사용하여 Evernote 프로덕션에서 인증 토큰 생성 오류

  6. 6

    phpseclib를 사용하여 생성 된 인증서에 확장 된 키 사용 확장 추가

  7. 7

    암호화에서 잘못된 키 사용

  8. 8

    기존 SSL 인증서에 대한 개인 키 생성

  9. 9

    Triple DES 암호화를 사용하여 RSA 개인 키 생성

  10. 10

    URL에서 직접 사용할 수있는 암호화 된 문자열 생성

  11. 11

    암호 인증이 비활성화 된 상태에서 scp를 사용하여 파일을 원격 서버에 복사 할 때 암호 프롬프트

  12. 12

    회사 iOS 배포 인증서 취소 및 새 키로 새 인증서 생성

  13. 13

    SSL 인증서 및 개인 암호

  14. 14

    비활성화 된 암호 및 로그인으로 사용자 추가

  15. 15

    서버 인증서 및 키에 따라 서버의 "ssl3_get_client_hello : 공유 암호 없음"

  16. 16

    openssh에서 다단계 인증 활성화 (공개 키 + 암호)

  17. 17

    AWS Secrets Manager에서 키 교체로 생성 된 새 암호를 사용하는 방법

  18. 18

    openssl은 PBKDF2를 사용하여 암호에서 파생 된 키를 어떻게 구성합니까?

  19. 19

    새로 생성 된 DM-CRYPT / LUKS 파티션에서 "이 암호로 사용할 수있는 키 없음"

  20. 20

    CakePHP 해싱 알고리즘 및 SALT를 사용하여 CakePHP 웹 사이트 데이터베이스 용 MySQL에서 암호화 된 암호를 생성하는 SQL 문을 작성하는 방법은 무엇입니까?

  21. 21

    사용자 이름-암호 조합을 암호화 된 형식으로 키 체인에 저장하는 방법

  22. 22

    동일한 비밀 키를 사용하여 자바에서 C # 및 암호 해독의 암호화

  23. 23

    암호화 된 비밀번호에 대한 인증 사용

  24. 24

    자체 서명 된 인증서 및 basic128rsa15 암호화를 사용하는 Python opc-ua 통신

  25. 25

    사전 생성 및 값 표현식 선언에서 키 사용

  26. 26

    C ++를 사용하여 Windows에서 암호화 된 폴더 읽기 및 쓰기

  27. 27

    CentOS 7에서 GnuPG를 사용하여 자체 서명 된 공개 키 생성 및 전송

  28. 28

    이미 암호화 된 데이터에 대한 AES 키 생성

  29. 29

    Xamarin Cycle 8에서 SSL 인증서 유효성 검사 실패 (Android 및 iOS)

뜨겁다태그

보관