암호화 및 암호 해독 기술 인프라, PKI 및 개인 CA를 만들

암호화 및 암호 해독 기술 인프라, PKI 및 개인 CA를 만들

  • 암호화 알고리즘 및 프로토콜 :
    동일한 키를 사용하여 암호화 및 암호 해독 : 1. 대칭 암호화

    DES:Data Encryption Standard; 
      3DES:Triple DES;
      AES:Advanced Encryption Standard;  (128bits, 192bits, 256bits, 384bits)
        Blowfish
        Twofish
        IDEA
        RC6
        CAST5
        特性:
        (1)加密、解密使用同一个密钥;
        (2)将原始数据分割成为固定大小的块,逐个进行加密;
        缺陷:
        (1)密钥过多;
        (2)密钥分发困难;

    2. 공개 키 암호는 : 키를 공개 키와 개인 키로 구분

    公钥:从私钥中提取产生;可公开给所有人;pubkey
    私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key;
    特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;
    用途:
        数字签名:主要在于让接收方确认发送方的身份;
       密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
       数据加密
    算法:RSA, DSA, ELGamal
              DSS: Digital Signature Standard
            DSA:Digital Signature Algorithm

    3 방향 암호화 : 즉, 그 지문 데이터에만 암호 해독 할 수 없다;

    特性:定长输出、雪崩效应;
       功能:完整性;
       算法:
             md5:Message Digest 5, 128bits
             sha1:Secure Hash Algorithm 1, 160bits
           sha224, sha256, sha384, sha512

    4. 키 교환 : IKE (인터넷 키 교환)

    公钥加密
        DH(Deffie-Hellman)
               例如:   A:p, g
                         B:p, g
                         A: x--> p^x%g ==> B
                             A: (p^y%g)^x=p^yx%g
                             B: y--> p^y%g ==> A
                             B: (p^x%g)^y=p^xy%g

    기본 암호화 통신 방법 :
    암호화 및 암호 해독 기술 인프라, PKI 및 개인 CA를 만들
    A : (1.) : 128 비트 암호 서명 단방향 디지털 다이제스트
    (2) : (A)의 디지털 전용 키와 함께 상기 요약 및 설명
    (3) 비밀 키의 특징 및 대칭 암호화 코드
    함께 B의 공개 키를 사용하여 대칭 암호화 앞의 (4)
    B : (1.) 그 자신의 개인 키 B는 복호화 된 대칭 공간을 얻었다
    (2)는 대칭 키를 사용하여 암호화 된 콘텐츠를 해독
    (3) : A를, 공개 단방향 암호화 서명 생성
    (4) 원래의 패턴과 동일 여부를 비교하여 본

  • PKI 및 SSL 세션
    1. PKI : 공개 키 인프라
      비자 기관 : CA의
      등록 기관 : RA
      인증서 해지 목록 : CRL
      인증서 액세스 라이브러리
      X.509 : 구조와 인증 프로토콜 표준의 인증 정의
      버전, 일련 번호, 서명 알고리즘 ID를, 발행자의 이름; 만료 날짜, 사용자 이름, 주제 공개 키, 고유 발행자를 식별하고 확장; 유일하게 몸 식별 발행자의 서명
      2.SSL 세션 주로 세 단계 :
      서버에 클라이언트를 정기적으로 검사 증명서를 요구,
      양 당사자 세대 " 세션 키 ";
      모두"세션 키 "암호 통신을 수행하는 단계;
      암호화 및 암호 해독 기술 인프라, PKI 및 개인 CA를 만들
      에 SSL 핸드 쉐이크 프로토콜 :
      첫번째 단계 :의 ClientHello :
      프로토콜 버전을 지원하는 등을 1.2 TLS로서
      , 클라이언트 난수를 생성하는 사용자가 나중에 생성"세션 키 "
      예 AES, 3DES, RSA와 같은 지원되는 암호화 알고리즘,
      압축 알고리즘을 지원,
      두 번째 단계 : ServerHello을
      사용하는 암호화 통신 프로토콜 버전 등 TLS 1.2 확인,
      서버가 생성하는 이상 사용하는 난수 생성"세션 비밀 키 "
      확인 암호화 방법하며
      서버 인증서,
      세 번째 단계 :
      (발행 테스트 긍정적 인 서버 인증서는 공개 키는 확인 후 삭제 기관, 인증서, 인증서 보유자의 무결성, 인증서가 유효 해지 목록)은
      서버에 다음과 같은 정보를 보낼 :
      임의의 숫자를,
      다음과 같은 정보가 상호 합의 된 암호화 방법과 키를 사용하여 전송됩니다 변경 통지를 코딩
      클라이언트 핸드 쉐이크의 완료 통지;
      단계 IV는 :
      제 난수 프리 마스터 키에 클라이언트를 수신 한 후, "세션 키"를 모든 세션 원시 컴퓨팅 비용,
      클라이언트 측에 다음 정보 전송 :
      변경 통지 인코딩, 후속 것을 의미 상기 정보는 상호 합의 된 암호화 방법 및 키와 함께 전송 될
      서버 악수 완료 통지;
  • 개인 CA 만들기
    1. 빌드에게 개인 CA 것이 :
    CA의 자체 서명 인증서 서비스를 생성하고,에 CA에 필요한 디렉토리와 파일을 제공하도록 구성을 결정하는
    步骤:
               (1)生成私钥:
                     (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
                        ():作用域子shell进程
                (2) 生成自签证书;
                      openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
                       -new:生成新证书签署请求;
                       -x509:生成自签格式证书,专用于创建私有CA时;
                       -key:生成请求时用到的私有文件路径;
                       -out:生成的请求文件路径;如果自签操作将直接生成签署过的证书;
                       -days:证书的有效时长,单位是day;
                (3)为CA提供所需的目录及文件;
                       mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}
                       touch  /etc/pki/CA/{serial,index.txt}
                       echo  01 > /etc/pki/CA/serial

    2. 서버가 보안 통신을 위해 인증서를 사용하려면 CA 서명 인증서를 요청해야

    步骤:(以nginx为例)
            (1) 用到证书的主机生成私钥;
                    mkdir  /etc/nginx/ssl
                    cd  /etc/nginx/ssl
                    (umask  077; openssl  genrsa -out  /etc/httpd/ssl/httpd.key  2048)
            (2) 生成证书签署请求
                      openssl req -new -key /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.csr -days 365
            (3) 将请求通过可靠方式发送给CA主机;
                      scp /etc/nginx/ssl/nginx.csr [email protected]:/tmp/
            (4) 在CA主机上签署证书;
                      openssl ca -in /tmp/nginx.csr  -out /etc/pki/CA/certs/nginx.crt -days 365
            (5)查看证书中的信息:
                     openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject
                        [root@localhost /]# openssl x509 -in /etc/pki/CA/certs/nginx.crt -noout -        
                        serial -subject
                         serial=01
                         subject=/C=CN/ST=Shanghai/O=cern/OU=devops/CN=devops.com

    3. 인증서를 해지 :
    단계 :

    
    (1) 客户端获取要吊销的证书的serial(在使用证书的主机执行):
                  openssl  x509  -in /etc/pki/CA/certs/nginx.crt  -noout  -serial  -subject
            (2) CA主机吊销证书:
                  先根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致;
                         吊销:
                             openssl  ca  -revoke  /etc/pki/CA/newcerts/SERIAL.pem
                             其中的SERIAL要换成证书真正的序列号;
            (3) 生成吊销证书的吊销编号(第一次吊销证书时执行)
               echo  01  > /etc/pki/CA/crlnumber
            (4) 更新证书吊销列表
               openssl  ca  -gencrl  -out  thisca.crl 

추천

출처blog.51cto.com/14418331/2426210