twitter에서 우연히 보게 되어서 오랜만에 오픈웹 사이트에 들어가 봤습니다. http://openweb.or.kr/?p=2284
https://lawlec.korea.ac.kr 라는 사이트에 접속하기 위해서 public key 파일(keechang_kim.crt) 파일을 설치하라는 내용입니다. 일단 해당 사이트에 들어가 봤습니다.
명색이 SSL 통신의 보안 중요성을 강요하시던 김기창 교수님께서 정작 자기 사이트는 이러한 경고창이 뜨게끔 방치를 하는군요. "Yes 버튼" 누르는 행위를 가지고 뭐라 하시는 분께서, "Proceed anyway 버튼"을 누르도록 사람들에게 강요하는 모습을 보니... 쩝... 아무튼 경고창 무시하고 계속해서 사이트에 들어가 봤습니다.
김기창 교수님께서 대학생 & 대학원생들과 강의 정보를 주고 받는 사이트 같습니다.
아무튼 웹페이지에서 설명이 되는 대로 해당 crt 파일을 설치하면 이러한 문제는 없어 지겠지만, HTTPS 웹사이트 하나 들어 가기 위해서 인증서(keechang_kim.crt)를 사용자들의 단말기에 일일이 설치하게끔 강제하는 것은 좀 우습군요. 어차피 SSL기반 웹통신은 일반적으로 서버 인증밖에 하지 않고 있기 때문에 상기와 같이 자신의 사이트에 들어 오기 위해서 사용자들에게 crt 파일을 설치하라는 것이 보안에 얼마나 도움이 될 런지는 의구심이 드네요. 개인이 발급하는 이러한 인증서를 아무렇게나 신뢰된 루트 기관에 넣어 버리는게 옳은 일일까요? 차라리 얼마 전에 털린 Comodo CA로부터 SSL 인증을 받는 것이 더 안전할 듯 합니다. ^^
오픈웹의 무궁한 발전을 기원합니다.
기술적으로 조금 자세한 설명을 오픈웹에 게시해 두었습니다. 트랙백이 걸리지 않아 댓글을 남기게 되네요. http://openweb.or.kr/?p=3886
<meta http-equiv="content-type" content="text/html; charset=utf-8">SSL 암호화 접속은 server key 로 하는 것이지, ca key로 하는 것이 아니라는 점은 아실 것입니다. 폴더 명칭부터가 "demoCA"라고 되어 있는데, 어째서 이런 오해를 하셨는지...
</meta>안녕하세요, 이경문입니다. 유명하신 분께서 제 사이트까지 찾아와 주실 줄은 몰랐네요. 오픈웹 들어 가서 관련 글 읽어 보았습니다. 요청하신 부분은 삭제를 하였습니다.
소스라고 되어 있는 부분에 있는 cakey.pem(cacert.pem) 파일과 실제 서버( https://lawlec.korea.ac.kr )에서 관리하는 파일이 같은지 다른지에 대해서 확인을 해 보지 못하고 포스팅한 점은 죄송합니다. 그런건 것까지 일일이 확인할 정도로 제가 한가한 사람이 아니라서요. 일개 개발자의 개인 홈페이지의 글에 너무 민감하게 대응하시는 것은 좀 의아합니다.
몇년 전에 김기창 교수님과 오픈웹 flame war를 벌이고 난 이후부터, online / offline을 떠나서 교수님과 대면을 했을 때 제대로 된 결론이나 합의점을 도출한 경우가 없다고 판단을 하는 바, 김교수님과의 접촉은 가급적 피하려고 합니다. 따라서, 앞으로 저의 사이트에도 (댓)글을 올려 주시는 것은 자제해 주셨으면 감사하겠습니다.
오픈웹이 대한민국의 보안의 발전에 많은 도움이 될 수 있기를 바라겠습니다.
길길님 의견에 전적으로 동의합니다.
김교수님과 토론 및 협의할 때 합의점을 찾지 못하겠던구요
말씀을 워낙 잘하셔서..
그리고 전에는 김교수님 홈페이지에 로그인하지 않고도 자유롭게 글을 쓸수 있었는데..
이제는 완전히 막아 두셨으셔서, 본인께서는 이런 저런 말씀하시면서
타인의 자유로운 의사표현은 제한하시는 점이 아쉽니다.
여하튼 길길님 홈피의 내용들이 실무에 많은 도움이 됩니다.
경문님, <meta http-equiv="content-type" content="text/html; charset=utf-8">https://lawlec.korea.ac.kr/essay/cert/ 에 가시면 "클라이언트 인증서"를 발급받을 수 있습니다.
발급받은 클라이언트 인증서를 웹브라우저에 설치(import)하고 https://lawlec.korea.ac.kr/cert/ 에 접속하면 "클라이언트 인증 접속"이 이루어집니다.
"자신의 웹사이트에 HTTPS(SSL 통신)을 구축한" 이야기가 아닙니다.
<meta http-equiv="content-type" content="text/html; charset=utf-8"></meta></meta>김기창 이 사람 또 시작이군요.
우리나라 보안 인력들 허접들뿐이니까
자기한테는 기술적으로 게임도 되지 않는다는 것을 보이기 위해
어떻게 해서이던지 트집 하나 잡아서
용쓰면서 이기려고 하는 거. ㅋㅋㅋㅋㅋ
길길님하고 youknowit님하고
기술적으로 붙어 봤자 게임이 안되는데 말이죠. ㅋㅋ
음... 그렇군요. 인증서 발급 데모 사이트에 접속하면 된다는 얘기가 나오고, 바로 뒤에 인증서(keechang_kim.crt)를 설치하라는 얘기가 있어서 제가 2개를 똑같은 것으로 간과를 했군요. 관련 글은 수정하였습니다. 제가 오픈웹 사이트 글 하나하나를 다 확인해 보지도 않은, 헤아리지 못한 점은 죄송스럽게 생각합니다.
클라이언트 인증 방식을 도입하게 되면 보안상으로 향상이 되는 것에는 김교수님께 전적으로 동의를 합니다. 하지만, 서버가 클라이언트에게 인증서를 발급하는 과정( https://lawlec.korea.ac.kr 에서 openweb_test_user_*.p12 파일을 클라이언트에게 HTTPS 프로토콜로 전달해 주는 과정)에서 에서 해당 인증서가 변조가 될 수도 있음을 알고 계시는지는 모르겠군요. Pure Web이 취약하다고 보안 업체를 옹호하는 것으로 비춰 지겠지만 Client뿐 아니라 Server도 MITM attack이 가능한게 사실입니다.
제 사이트, 트워터, 오픈웹 등에서 얘기들이 여기 저기에서 오고 가고 있군요. 정리를 해서 말씀드리겠습니다.
제가 처음 트위터에서 "오픈웹이 제안하는 인증서 발급 방식"이라는 글을 읽으면서
1. https://lawlec.korea.ac.kr/essay/cert 에서 개인 인증서를 발급해 준다는 얘기
2. lawlec.korea.ac.kr 서버와 HTTPS 통신을 하기 위해서는서버 인증서( keechang_kim.crt) )를 클라이언트단에 설치해야 한다는 얘기
상기 2가지를 제가 구분하지 못하고 동일한 개념으로 생각을 했었습니다. 분명 이는 저의 불찰입니다.
오픈웹의 해당 글( http://openweb.or.kr/?p=2284 )을 자세하게 보지 않으면 누구이든지 간에 위의 2가지를 구분하지 못할 수 있을 거라고 보여 질 수 있으므로, 이 부분(2가지의 구분)에 대해서는 약간 더 자세하게(알기 쉽도록) 구분해 주셨으면 어떨까 싶습니다(김교수님께 제안을 드리는 바입니다). 차라치, 처음 얘기가 나온 것처럼, 신뢰된 인증 기관으로부터 서버 인증서의 signing을 하시는 것이 저같은 사람으로부터 오해를 살 수 있는 소지를 없애는 데 도움이 될 듯 하네요.
다시 한번, 제가 글을 자세히 보지 않은 상태에서 실수를 했던 부분에 대해서는 죄송스럽다는 말씀을 드립니다.
상세한 포스팅 잘 보았습니다.
첫째, 보안 경고창을 무시하고 계속 진행하도록 안내하는 것은 대단히 잘못된 것입니다. ActiveX 보안 경고창을 무시하고 무조건 Yes 를 누르라고 안내하는 것이랑 거의 같습니다. 본격적인 서비스를 그런 식으로 제공하는 일은 상식밖이라는 생각입니다. 제시한 사이트는 오로지 Demo 용이기 때문에 제가 self-sign 한 서버인증서를 사용하여서 그렇습니다. 1년에 5만원 정도를 아낄려는 시도...
둘째, cakey.pem 파일은 타볼에 있는 cert.php 파일 150행을 보시면 무슨 파일인지 아실 것입니다. 제 강의안 서버의 개인키가 아니라 (만일 그랬다면, 님께서 본문에 적으신 것과 같은 비판을 받아 마땅하겠지요 ^^), 데모 인증서 발급기관의 데모인증서 서명키입니다.
혹시 추가로 궁금하신 점이 있으시면 연락바랍니다.