SSL - goddes4/python-study-wiki GitHub Wiki
대칭키
echo 'this is the plain text' > plaintext.txt
openssl enc -e -des3 -salt -in plaintext.txt -out ciphertext.bin
openssl enc -d -des3 -in ciphertext.bin -out plaintext2.txt
공개키
- 키가 2개 (A 키로 암호화 B 키로 복호화 or B 키로 암호화 A 키로 복호화)
- private key, public key
- public key 는 누구나 다운로드 가능
- private key 는 외부에 절대 노출되어서는 안됨
- 인증서의 원리
openssl genrsa -out private.pem 1024
openssl rsa -in private.pem -out public.pem -outform PEM -pubout
echo 'coding everybody' > file.txt
openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
SSL
- 공개키 방벙으로 모든 데이터를 처리하기에는 버거움
- 대칭키 전달용도로만 사용
- 이후에는 대칭키로 데이터 전달
SSL 인증서 역할
- 클라이언트가 접속한 서버가 신뢰 할 수 있는 서버임을 보장한다.
- 보증하는 기관 CA(Certificate authority) VeriSign
- 각각의 브라우저 밴더의 판단에 따라 내장됨
- 서비스의 정보, 서버측의 공개키
SSL 인증서가 서비스를 보증하는 방법
- 브라우저가 서버에 접속할 때 서버는 인증서를 제공한다.
- 브라우저는 인증서를 발급한 CA 가 자신의 내장 CA 리스트에 있는지 확인한다.
- CA의 공개키를 이용하여 인증서를 복호화 한다. (인증서는 인증기관의 개인키로 암호화 된 것임)
- 해당 서비스가 신뢰할 수 있다는 것을 의미