Cassandra 노드-노드 및 클라이언트-노드 암호화는 실제로 어떻게 작동합니까?

marcv81

cqlsh 구성을 포함하여 Cassandra 3.3으로 노드 간 및 클라이언트 간 암호화를 성공적으로 설정했습니다. 내 질문은 모든 것이 실제로 어떻게 작동하는지에 관한 것입니다.

두 경우 모두 각 행위자 (노드 및 클라이언트)에 대한 키 인증서를 제공해야합니다. 암호화 또는 인증에 사용됩니까? 나는 그것이 인증에만 사용되기를 강력히 기대하고 암호화를 위해 대칭 키가 생성됩니다. 이게 옳은 거니? 클라이언트-노드 암호화에서 노드와 클라이언트 모두 키 인증서가 필요하다는 것을 알기 때문에 교환이 서버 인증뿐만 아니라 클라이언트 인증이라고 가정합니다. 이 올바른지?

참고 : 위에서 저는 "인증"을 사용하여 행위자가 서로의 신원에 대한 세부 정보를 알지 못하는 것이 아니라 서로를 신뢰할 수 있음을 의미합니다. 이것은 Cassandra가 사용자를 인증하는 방법과 완전히 별개입니다.

노드 간 암호화를 위해 모든 노드에서 고유 한 자체 서명 인증서를 사용하고 클라이언트-노드 암호화를 위해 다른 고유 한 자체 서명 인증서를 사용할 것을 고려하고 있기 때문에 이러한 질문을하고 있습니다. 내 이해가 맞다면 이것은 암호화를 손상시키지 않을 것입니다. 이게 옳은 거니?

스테판 포드 코윈 스키

인증서 생성은 노드 간 통신에만 필수입니다. 각 SSL 서버에는 모든 통신을 서버에서만 읽을 수 있도록 자체 개인 키가 있어야합니다. 키와 함께 생성 된 공개 인증서는 서버를 인증하는 데 사용됩니다. 이는 Cassandra 노드가 man-in-the-middle 공격을 피하는 데 중요하며 로컬 노드의 신뢰 저장소를 통해 인증서를 인증 할 수 있는지 확인하여 구현됩니다.

클라이언트-노드 통신의 경우 인증은 선택 사항이며 .NET Framework를 활성화하지 않으면 인증서를 만들 필요가 없습니다 require_client_auth. 이 경우 브라우저에서 SSL 보호 웹 사이트에 연결하는 것처럼 SSL 키가 투명하게 생성됩니다. 클라이언트 인증을 활성화해야하는지 여부는 Cassandra에서 사용자 로그인을 사용할 것인지 아니면 익명 로그인을 사용할 것인지에 따라 다릅니다. 사용자 이름과 암호를 사용하는 내부 Cassandra 인증 프로세스를 사용하는 경우 SSL 인증을 활성화하는데도 거의 사용되지 않습니다.

노드 간 암호화를 위해 모든 노드에서 고유 한 자체 서명 인증서를 사용하고 클라이언트-노드 암호화를 위해 다른 고유 한 자체 서명 인증서를 사용할 것을 고려하고 있기 때문에 이러한 질문을하고 있습니다.

각 노드에 대해 고유 한 자체 서명 된 인증서를 만들고 각 노드의 신뢰 저장소에 추가하는 것이 편하다면 그냥 가십시오. 이 작업을 처리하는 가장 간단하고 안전한 방법 일 수 있지만 대규모 클러스터에서는 매우 불편할 것입니다. 대체 옵션은 모든 노드에 대해 공통 CA를 통해 신뢰를 설정하는 것입니다. 이렇게하면 모든 자체 서명 된 인증서를 각 신뢰 저장소로 가져올 필요가 없습니다. CA를 사용하면 클러스터에 노드를 더 쉽게 추가 할 수 있지만 CA를 사용하여 새 인증서에 안전하게 서명하는 방법을 설정해야합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Linux에서 환경 변수를 노드로 전달하는이 예제는 어떻게 작동합니까?

분류에서Dev

로그인 노드는 slurm 클러스터의 컴퓨팅 노드와 어떻게 통신합니까?

분류에서Dev

SKNode 서브 클래스는 부모 씬 및 형제 노드와 어떻게 통신해야합니까?

분류에서Dev

하나의 마스터 노드, 작업자 노드 및 비 클러스터 클라이언트 노드가있는 Akka 클러스터

분류에서Dev

Cassandra는 nodetool getendpoints의 노드와 다른 노드로 복제합니다.

분류에서Dev

Cassandra는 시작 노드를 무작위로 선택합니까?

분류에서Dev

클라이언트와주고받는 간단한 노드 js 서버를 어떻게 구축합니까?

분류에서Dev

컨테이너를 한 노드에서 다른 노드로 어떻게 이동합니까?

분류에서Dev

컨테이너를 한 노드에서 다른 노드로 어떻게 이동합니까?

분류에서Dev

마스터 노드가 실패 할 경우 Elasticsearch는 어떻게 다른 노드로 전환합니까?

분류에서Dev

이 코드는 실제로 어떻게 작동합니까?

분류에서Dev

이 코드는 실제로 어떻게 작동합니까?

분류에서Dev

실제 장치가없는 장치 노드 및 드라이버

분류에서Dev

Cassandra 클러스터에 몇 개의 노드가 있는지 어떻게 알 수 있습니까?

분류에서Dev

마스터 노드는 하둡 클러스터의 모든 프로세스를 어떻게 시작합니까?

분류에서Dev

노드의 스트림에서 시작된 비동기 http 클라이언트 요청 수를 제어하는 방법은 무엇입니까?

분류에서Dev

XML 루트 노드를 하위 노드 중 하나로 바꾸려면 어떻게합니까?

분류에서Dev

RaphaelJS에서 경로의 개별 노드를 어떻게 이동합니까?

분류에서Dev

대용량 파일을 hadoop 클러스터에로드 할 때 데이터 노드로 데이터를 전송하는 동안 클라이언트가 실패하면 어떻게됩니까?

분류에서Dev

텍스트 노드가 현재 노드와 정의 된 선행 형제 사이에 개입하는지 어떻게 테스트합니까?

분류에서Dev

다른 노드 속성으로 노드를 그룹화하고 Neo4j에서 다른 노드로 정렬하려면 어떻게해야합니까?

분류에서Dev

선택 및 호버 이벤트로 jtree의 리프 노드 텍스트를 어떻게 동적으로 변경할 수 있습니까?

분류에서Dev

주어진 노드 값을 갖는 노드 이전에 노드를 제거하는 Linked List 메소드

분류에서Dev

Rabbitmq 클러스터는 다른 노드로 라우팅하는 메시지를 어떻게 저장합니까?

분류에서Dev

특정 자식 노드를 기반으로 xml 노드 그룹화 및 병합

분류에서Dev

단일 연결 목록의 중앙에있는 노드 삭제. 노드는 어떻게됩니까?

분류에서Dev

복제 된 Cassandra 노드가있는 Spark

분류에서Dev

노드 및 하위 노드 삭제

분류에서Dev

nginx로 실행되는 노드 서버에 정적 자산 (html)을 어떻게 제공합니까?

Related 관련 기사

  1. 1

    Linux에서 환경 변수를 노드로 전달하는이 예제는 어떻게 작동합니까?

  2. 2

    로그인 노드는 slurm 클러스터의 컴퓨팅 노드와 어떻게 통신합니까?

  3. 3

    SKNode 서브 클래스는 부모 씬 및 형제 노드와 어떻게 통신해야합니까?

  4. 4

    하나의 마스터 노드, 작업자 노드 및 비 클러스터 클라이언트 노드가있는 Akka 클러스터

  5. 5

    Cassandra는 nodetool getendpoints의 노드와 다른 노드로 복제합니다.

  6. 6

    Cassandra는 시작 노드를 무작위로 선택합니까?

  7. 7

    클라이언트와주고받는 간단한 노드 js 서버를 어떻게 구축합니까?

  8. 8

    컨테이너를 한 노드에서 다른 노드로 어떻게 이동합니까?

  9. 9

    컨테이너를 한 노드에서 다른 노드로 어떻게 이동합니까?

  10. 10

    마스터 노드가 실패 할 경우 Elasticsearch는 어떻게 다른 노드로 전환합니까?

  11. 11

    이 코드는 실제로 어떻게 작동합니까?

  12. 12

    이 코드는 실제로 어떻게 작동합니까?

  13. 13

    실제 장치가없는 장치 노드 및 드라이버

  14. 14

    Cassandra 클러스터에 몇 개의 노드가 있는지 어떻게 알 수 있습니까?

  15. 15

    마스터 노드는 하둡 클러스터의 모든 프로세스를 어떻게 시작합니까?

  16. 16

    노드의 스트림에서 시작된 비동기 http 클라이언트 요청 수를 제어하는 방법은 무엇입니까?

  17. 17

    XML 루트 노드를 하위 노드 중 하나로 바꾸려면 어떻게합니까?

  18. 18

    RaphaelJS에서 경로의 개별 노드를 어떻게 이동합니까?

  19. 19

    대용량 파일을 hadoop 클러스터에로드 할 때 데이터 노드로 데이터를 전송하는 동안 클라이언트가 실패하면 어떻게됩니까?

  20. 20

    텍스트 노드가 현재 노드와 정의 된 선행 형제 사이에 개입하는지 어떻게 테스트합니까?

  21. 21

    다른 노드 속성으로 노드를 그룹화하고 Neo4j에서 다른 노드로 정렬하려면 어떻게해야합니까?

  22. 22

    선택 및 호버 이벤트로 jtree의 리프 노드 텍스트를 어떻게 동적으로 변경할 수 있습니까?

  23. 23

    주어진 노드 값을 갖는 노드 이전에 노드를 제거하는 Linked List 메소드

  24. 24

    Rabbitmq 클러스터는 다른 노드로 라우팅하는 메시지를 어떻게 저장합니까?

  25. 25

    특정 자식 노드를 기반으로 xml 노드 그룹화 및 병합

  26. 26

    단일 연결 목록의 중앙에있는 노드 삭제. 노드는 어떻게됩니까?

  27. 27

    복제 된 Cassandra 노드가있는 Spark

  28. 28

    노드 및 하위 노드 삭제

  29. 29

    nginx로 실행되는 노드 서버에 정적 자산 (html)을 어떻게 제공합니까?

뜨겁다태그

보관