SSL 암호와 통신에 대해 토론(조언)을 제안합니다.

안녕하세요.

제가 얼마전 Q&A 게시판에 "OpenSSL for HTTP"와 관련된 답변을 해준 일이 있는데,

답변을 하고나서 곰곰이 생각해 보니 무언가 잘 못 알려준 것 같은 기분이 들었습니다.

http://sir.co.kr/qa/87410?page=2

 

그래서 좀 더 개념을 명확히 할 필요가 있을 것 같아서 이렇게 글을 써봅니다.

 

일반적으로 SSL 보안인증서를 통한 암호화는 양방향 모두 다 암호화되는 것으로 알고있습니다.

방향1 : 클라이언트 --> 서버

방향2 : 서버 --> 클라이언트

 

그런데 letsgolee님이 공개해 주신 "OpenSSL for HTTP" 통해 암호할 때

"클라이언트 --> 서버" 의 방향에서만 암호화 하면 된다고 답변을 했는데

이게 좀 석연치가 않습니다.

 

예를 들어 게시판에 글을 작성할 때는 POST 방식으로 데이타를 서버로 전송해야 하므로

정보보호를 위해 암호화(sniffing 방지) 해야 하겠지만,

작성이 완료되고 서버의 DB에 저장된 데이타를 view 페이지나 글수정 페이지에 보여줄 때도

"서버 --> 클라이언트" 로 전송(다운로드)되는 데이타를 반드시 암호화해야 하는지가 궁금합니다. 

 

대체로 SSL 인증서 사용의 상황을 고려하면

"서버 --> 클라이언트" 로 전송되는 정보도 네트워크 상에서 패킷이 탈취될 가능성이 있으므로

암호화하는 것이 마땅해 보이지만,

데이타 전송방식이 POST 나 GET 방식의 전송이 아닌 다운로드(크라이언트 입장에서)되는 형태라고 생각하니 암호화의 필요성에 대한 개념이 명확해지지 않습니다.

 

만약 "서버 --> 클라이언트" 로 전송(다운로드)되는 정보도 암호화 해야 한다면,

"OpenSSL for HTTP" 프로그림을 사용할 때  회원정보 수정페이지는 물론 프로필, 기타 개인정보와 관련된 페이지는 모두 암호화 환경을 마련해야 하므로 많이 복잡해질 것 같다는 생각이 듭니다.

 

여러분들의 의견은 어떠하십니까? 

|

댓글 6개

"OpenSSL for HTTP" 은 일단 잘 모릅니다.

제가 이부분은 크게 잘알지 못하지만, 생각은 한번 적어볼게요.



클라이언트 -> 서버로 전송할때 전송되는 데이타가 있어야 암호화 됩니다.

페이지 전체를 암호화 해서 넘기는 것이 아니라

사용자로부터 입력받은 데이타를 포스트로 전송 할때 그 데이타만 암호화 한다는 뜻입니다.

사용자로부터 입력받은 데이타가 없다면 암호화할 대상이 없으므로 무의미 합니다.



그러나 서버에서 클라이언트로는

그런 데이타가 없지 않나 싶네요.

서버에서 클라이언트 정확히는 브라우져로 그런 데이타를 보낼 일은 없어 보입니다.

브라우져 자체가 포스트나 겟 파라미터를 받는 것이 아니라

서버로 부터 응답받은 결과값만 받아서 출력만 해주는 것입니다.

따라서 암호화 할 대상이 없기 때문에

그 문제는 클라이언트 -> 서버로만 따지는 것이 맞다고 보여집니다.



예를 들자면

로그인 페이지 http
로그인 처리 페이지 https
로그인후 페이지 http

형태로 사용되어지는 것을 들수 있을 것 같습니다.

회원가입이나 정보수정 같은 경우도 마찬가지 입니다.
명확하고 이해하기 쉽게 설명해 주셔서 감사합니다.^^
저도 이전까지는 "유창화"님께서 설명해 주신 개념으로 암호화 통신의 의미를 알고 있었습니다.

그런데, 제가 의구심을 갖게 된 부분은 아래의 링크 내용 중에
https://wiki.kldp.org/HOWTO/html/SSL-Certificates-HOWTO/x70.html

6. [웹서버] 요청받은 URL에 대한 응답을 웹브라우저로부터 받은 랜덤 대칭 암호화키를 이용하여 암호화해서 브라우저로 전송한다.

위와 같이 [웹서버]의 역할을 "암호화해서 브라우저로 전송한다"고 정의해 놓았고,

letsgolee님이 공개해 주신 "OpenSSL for HTTP" 프로그램에서도
(http://sir.co.kr/bbs/board.php?bo_table=g5_plugin&wr_id=14)
로그인 페이지와 같이 "클라이언트 --> 서버" 로 전송되는 부분의 암호화 형식과는 다르게

skin/member/basic/register_form.skin.php 에서 회원정보를 수정할 때
암호화된 데이타를 브라우저로 전송(표현)하는 방식으로 프로그램을 구성해 놓고 있어서 궁금증이 생겼던 것입니다.

클라이언트에서 포스트나 겟 파라미터를 넘길 때에만 암호화가 필요한 것이었다면
letsgolee님은 왜 register_form.skin.php 페이지에서 회원정보를 수정할 때
서버에 저장된 테이타를 암호화하여 브라우저로 구현하는 프로그램을 만드셨을 까요?

제가 너무 확대해서 궁금해 하는 것일까요?
아무튼 관심갖어 주심에 감사드립니다.^^
개인정보가 전송되기 때문에 서버 -> 클라이언트 쪽도 암호화하는 게 일반적입니다.
예를 들어, 쇼핑몰에서 배송정보를 조회할 때 사용자의 주소와 전화번호 등이 그대로 노출될 수 있죠.
특별한 경우가 아니라면 HTTP 위에 OpenSSL을 쓰는 것보다는 HTTPS 프로토콜을 사용하는 게 좋다고 생각합니다.
네, 의견 감사합니다.
대체로 많은 사람들이 비싼 비용을 지불하면서까지 SSL 인증서를 사용해야 하는 이유가 있다고 봐야 하겠군요.
+1
제출되는 내용이 없는 서버->클라이언트로 전송되는 내용이라도
예를 드신바처럼 특정내용에 따라 암호화 필요성이 있는 페이지가 있습니다. 사이트의 대부분이 주요정보라면 전체를 https를 통해 전송하고 아닌경우 특별한 페이지에만 적용하면 되겠죠.
그리고 startssl.com 같은데서 무료 인증서를 받을 수 도 있습니다.
의견 주셔서 감사합니다.
이곳의 의견들을 통해 다른 분들도 개념을 이해하는데 도움이 되길 바랍니다.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
10년 전 조회 935
10년 전 조회 464
10년 전 조회 1,014
10년 전 조회 867
10년 전 조회 670
10년 전 조회 544
10년 전 조회 512
10년 전 조회 583
10년 전 조회 517
10년 전 조회 542
10년 전 조회 875
10년 전 조회 466
10년 전 조회 568
10년 전 조회 731
10년 전 조회 641
10년 전 조회 1,354
10년 전 조회 1,163
10년 전 조회 625
10년 전 조회 551
10년 전 조회 878
10년 전 조회 604
10년 전 조회 510
10년 전 조회 565
10년 전 조회 504
10년 전 조회 546
10년 전 조회 488
10년 전 조회 720
10년 전 조회 2,569
10년 전 조회 704
10년 전 조회 434
10년 전 조회 488
10년 전 조회 518
10년 전 조회 1,827
10년 전 조회 1,752
10년 전 조회 1,133
10년 전 조회 1,430
10년 전 조회 1,567
10년 전 조회 1,521
10년 전 조회 903
10년 전 조회 631
10년 전 조회 1,121
10년 전 조회 662
10년 전 조회 572
10년 전 조회 760
10년 전 조회 1,451
10년 전 조회 1,143
10년 전 조회 616
10년 전 조회 1,189
10년 전 조회 5,196
10년 전 조회 674
10년 전 조회 1,732
10년 전 조회 1,097
10년 전 조회 1,583
10년 전 조회 1,329
10년 전 조회 858
10년 전 조회 1,434
10년 전 조회 1,050
10년 전 조회 633
10년 전 조회 629
10년 전 조회 883
10년 전 조회 1,387
10년 전 조회 831
10년 전 조회 1,080
10년 전 조회 939
10년 전 조회 695
10년 전 조회 1,010
10년 전 조회 520
10년 전 조회 756
10년 전 조회 667
10년 전 조회 986
10년 전 조회 1,183
10년 전 조회 1,092
10년 전 조회 794
10년 전 조회 1,114
10년 전 조회 904
10년 전 조회 669
10년 전 조회 1,266
10년 전 조회 743
10년 전 조회 1,017
10년 전 조회 695
10년 전 조회 547
10년 전 조회 1,935
10년 전 조회 1,019
10년 전 조회 1,037
10년 전 조회 823
10년 전 조회 1,107
10년 전 조회 969
10년 전 조회 712
10년 전 조회 1,179
10년 전 조회 1,616
10년 전 조회 1,016
10년 전 조회 903
10년 전 조회 931
10년 전 조회 848
10년 전 조회 1,548
10년 전 조회 1,447
10년 전 조회 500
10년 전 조회 893
10년 전 조회 471
10년 전 조회 833
🐛 버그신고