본문으로 바로가기

HTTPS 와 SSL (2)-대칭키 (openssl 암호화)

category 웹/웹 보안 2019. 7. 6. 02:06

SSL 인증서

 

인증서라는 말은 인증을 하기위한 문서라고 표현합니다.

 

SSL인증서는 클라이언트와 서버 간 통신 할 때 제 3자가 보증을 해준다는 것입니다.

 

즉 클라이언트가 서버에 접속 할 때 서버는 이 인증서를 클라이언트에게 제공하고

 

이를 받은 클라이언트는 진짜 신뢰할 만한 사이트인지(접속한 사이트가 진짜인지?) 판단합니다.

 

SSL 인증서의 이점으로 통신을 할 때 노출이 되지 않으며 신뢰를 판단할 수 있고 누군가가 데이터를 변경할수 없게됩니다.

 

통신에 노출이 되지 않는다라는 말은 암호화를 한다는 것과 동일합니다.

 

즉 Hi 라는 단어를 -> IJ로 암호화를 합니다. 

 

IJ를 Hi로 복호화를 한다고 합니다.

 

이때 사용되는 것이 Key라고 하며 이 키는 대칭키와 공개키로 나뉩니다.

 

대칭키는 암호화와 복호화를 동시에 할 수 있는 Key라고 할 수 있습니다.

 

간단하게 

 

openSSl을 이용하여 리눅스(우분투) 상에서 아무 평문(plainText)를 암호화를 시켜봅시다.

 

우선 터미널 창을 띄웁니다.

 

여기서 openssl이라는 디렉토리를 만들어주고 이동합니다.

그 다음 암호화를 시킬 평문을 아무거나 써서 파일을 만들어줍니다.

vi로 파일을 생성하셔도 무관합니다.

 

그 다음 아래 명령어를 쳐줍니다.

아래 명령어는 openssl을 이용하여 암호화를 하는데 암호화기법은 des3기법이라는 뜻입니다.

openssl enc -e -des3 -salt -in plaintext.txt -out crypt.bin;

 

여기서 키를 입력해줍니다.

 

이 키를 이용해서 암호화를하고 또 복호화를 할 수 있습니다.

키를 생성해주면 -out으로 지정한 crypt.bin 파일이 생성된 것을 볼 수 있습니다.

 

I am Lee Jeong Chan이라는 문장을 암호화를 해주었습니다.

 

cat으로 확인해보면

암호화가 된 것을 확인 할 수 있습니다.

 

만약 이를 복호화를 진행하고 싶으면

 

openssl enc -d -des3 -in crypt.bin -out plaintext2.txt;

명령어를 쳐서 -d옵션으로 복호화를 하겠다라고 지정해줍니다.

그럼 아까 만든 키를 치라고 나옵니다.

쳐주게 되면 아래와 같이 나오게 됩니다.

 

 

복호화가 진행된 것을 볼 수 있습니다.

 

' > 웹 보안' 카테고리의 다른 글

HTTPS 와 SSL (3)- 공개키  (0) 2019.07.11
HTTPS 와 SSL (1)-간단한 개념  (0) 2019.07.05