이용자 인증 SSL 접속

2011.06.23 글쓴이 youknowit

“인증서 로그인”이라는 것이 바로 이용자 인증 SSL 접속입니다. 국내 은행, 전자정부 등이 플러그인을 유저들 컴퓨터에 설치하고(서버도 물론 서버플러그인을 구입, 설치하여), 수행하는 것도 이것입니다. 그림 참조.
이용자 인증 SSL 접속

그러나, 웹브라우저와 웹서버는 원래 (별도의 플러그인 없이도) 이용자 인증 SSL/TLS 접속 기능이 있습니다.

https://openweb.or.kr/cert/auth 을 방문하면 테스트하실 수 있습니다.

스크린 샷 몇개 올립니다.

IE (윈도용 크롬, 사파리도 같음):
IE로 인증서 로그인하는 과정

파이어폭스:
파이어폭스로 인증서 로그인 하는 과정

크롬(리눅스에서):
크로미윰 으로 인증서 로그인 하는 과정

오페라:
오페라로 인증서 로그인 하는 과정

“공인인증서를 사용해야 한다”고 해서 플러그인도 사용해야 하는 것은 아닙니다. 플러그인은 이제 좀 걷어내 주세요.

Categories: 보안, 스마트폰, 인터넷 뱅킹, 인터넷 쇼핑, 전자정부, 정책제안 | 18 comments  오픈웹 구독 메일로 받기

  • 석준 이

    로그인이야 그렇다 치고, 전자서명은 어떻게 할까요? ^^

    • http://openweb.or.kr youknowit

      거래내역 전자서명도 플러그인이 꼭 필요한 것이 아닙니다. 
      javascript를 이용한 서명 툴이 있네요:
      http://www9.atwiki.jp/kurushima/pub/jsrsa/sample-rsasign.html

      ETRI와 방통위가 내세우던 Smart Sign 도 우습게 됐네요.

      그러나, javascript가 됐건, Smart Sign (앱+url scheme) 방식이건, 서명을 “할 수 있다”는 것이지, 전자서명을 하는 것이 보안면에서 바람직하다는 뜻은 아닙니다.

      전자서명을 하게 하려면, 유저의 개인키가 쉽게 접근 가능한 파일 형태로 존재해야 하고, 악의적인 서버가 전자서명을 미끼로 유저의 개인키를 입수하는 사태를 막기가 쉽지 않습니다.

      Smart Sign 역시 비슷한 문제가 있습니다. 공격자가 악성앱(유저의 개인키를 서버에게 전달하는 못된 짓을 하는 앱)을 만들어 smartsign:// 에 호출되도록 할 경우에 대한 대비책이 별로 없습니다.

  • http://openweb.or.kr youknowit

    공인인증서(와 동등한 인증기술) 사용을 “강제”하는 규정은 있어도, 전자서명을 강요하는 규정은 없습니다. 

    서명을 받아본들 “법적으로” 부인방지 효과도 없지만, 그래도 서명을 받아두려는 사업자는 (서명)플러그인을 배포하겠지요.

  • http://twitter.com/youngdragon5 전 용성

    아이폰4에서 안 됩니다.
    뭐가 잘 못 되었는지 ….

    • http://openweb.or.kr youknowit

      다른 분들도 같은 문제가 있나요? 제가 아이폰이 없어서…
      1. 인증서를 아이폰으로 import 하셨나요?
      2. https:// 로 주소가 시작하는 것을 확인하셨나요?
      3. 다른 페이지를 방문하셨다가 나중에 이 페이지로 다시 와보시면 어떤 가요?

      • http://twitter.com/youngdragon5 전 용성

        인증서를 설치하고도 동일 현상이네요.
        인증서가 “신뢰하지 않음”이어서인지 ….
        주소는 거듭 확인하였고요. https://openweb.or.kr/cert/auth

      • http://twitter.com/gulimche Developer

        저도 동일한 문제가 있습니다…  인증서 문제가 아니라,
        뭔가 서버인증 관련해서 문제가 있는것 같습니다. 비단 아이폰만의 문제가 아니라, 사파리 브라우저를 통해 접속할 경우, 보안서버 에러가 나네요.

        서버 인증서를 신뢰하지 못해서 그런건 아닌것 같고… 그럴경우 예외로 가능하니… 그런것도 아니고 아예 보안 서버

        오류가 나는군요. 맥에서 사파리로 접속한 스크린샷입니다…

    • http://openweb.or.kr youknowit

      혹시 이제는 접속이 되나요?  서버 설정을 조금 바꾸어 보았습니다만…

      https://lawlec.korea.ac.kr/cert 는 접속이 가능한가요?

      • http://openweb.or.kr youknowit

        사파리 웹브라우저의 버그(bug)라는 군요. https://twitter.com/#!/extendjh/status/16829655303

        여기도 참조: https://discussions.apple.com/message/7957076?messageID=7957076

        iOS4로 업그레이드 하면 해결된다는 것 같네요. 하여간 다른 모든 웹브라우저가 잘 접속하는데, 사파리(맥/아이폰 용)만 안되는 것은 사파리의 문제인듯.

  • http://openweb.or.kr youknowit

    안드로이드 폰에는 Sandrob 이라는 웹브라우저를 설치하면, 인증서 로그인이 가능합니다. (*.p12 파일이 SD카드 최 상위에 있으면 자동 인식하고, 그렇지 않으면, 그 파일명칭과 위치를 직접 입력해야 합니다만…)

    https://market.android.com/details?id=org.sandrob

  • http://twitter.com/Ilikenokcha 生白手

    가만보면 우리나라 법이 은행이나 사업자쪽에 불리하게 되어 있어서 오히려 자기방어 차원에서 웹이 이렇게 되지 않았나 싶네요 그런데 막상 업체들 보안은 엉망이고 말이죠 거래를 엄격하게 해도 데이터는 술술 빠져나가고

    • http://openweb.or.kr youknowit

      미국과 한국 간에 이 분야 법제도의 차이는 없습니다. 미국에서도 개인고객과의 거래에서 사고가 발생하면 금융기관이 배상하도록 규정되어 있습니다.

      이렇게 해두어야 금융기관이 스스로 안전한 솔루션에 투자할 인센티브가 생긴다는 것이지요. 미국이나 영국은 금융기관의 기술선택에 정부가 전혀 개입하지 않습니다.

      외국과 차이가 나는 부분은, 한국에는 “공인인증”제도가 있고, 이 제도에 이해관계를 가지는 정부부처(과거 정통부)가 이것의 사용을 금감원을 통하여 금융기관에게 강제함으로써 “밥그릇”챙기기를 하려했고, 금감원은 덕분에 더 큰 규제권한을 누리게 되므로 이제 스스로도 이것을 안 놓으려 하는 것입니다.

      은행의 배상책임 문제와는 상관이 없습니다.

      개인 고객과의 관계에서 사고가 나면 개인이 책임지라는 식의 법제도를 가진 나라는 없습니다.

  • http://openweb.or.kr youknowit

    여기 오셔서 공인인증서 사용을 “강제”해야 한다는 도배성 댓글을 다시는 어떤 분은 ETRI 에 근무하시는 선임 연구원입니다.

    ETRI 는 기술 전문가들로 구성된 조직입니다. 기술인력이 우수한 “기술”로 온 세계를 상대로 당당히 승부하려 노력하지는 않고, 고작 국내 시장에서 정부/공무원의 행정 강제력에 기대려는 발상에 골몰하는 것은 좀 보기 딱하군요.

    정말 우수한 기술이라면 왜 강제 규정이 필요한가요?

    강제 규정이 없어지면 그 날로 외면 받을 기술이라면 진작에 사라졌어야 옳지 않나요? 강제 규정으로 근근히 연명하는 기술은 그 자체로 이미 경쟁력을 잃은 것입니다.

  • Anonymous

    공인인증서 관련 글이 ZDNET에 떴어요.
    http://www.zdnet.co.kr/news/news_view.asp?artice_id=20110628134434

    출처 : ZDNET

    그리고 이상한 기사가 또 발견했는데.
    글쓴이가 좀 이해가 안가는 말을 하시는것 더군요.

    http://www.etnews.co.kr/201104260055

    출처 : 전자신문

    • http://twitter.com/gulimche Developer

      뭐 늘 있는 공인인증서 예찬하는 글이네요.

      소프트포럼 SW연구개발실 이사, 한국정보인증 대표 라니

      두 사람 다 현 공인인증 제도와 이해관계가 첨예하게 걸려있는 사람들이니 저런소리를 할 수 밖에요.

      한국정보인증 대표라는 사람은 국회의원 보조관에다가, 국회의장 정무수석비서관까지한 사람이군요.

      이 문제가 왜 그렇게 해결이 안되는지 어느 정도는 납득이 갑니다.

      참 내막이 궁금해지네요. 정치학과 출신이던데, 기술에 대한 지식을 가지고 저런 글을 쓰는건지, 그저 누가 해준말을 앵무새처럼 읊어대는건지…

      참 이 문제가 이렇게 해결이 안되는것은, 일단 정부의 규제가 생기고, 그 규제로 생긴 기득권안에서 수혜를 입는 사람들의 권력이 막강하기 때문이겠죠.

      그 규제가 생긴 내막이야 알 길이 없지만,

      그리고 나서는 공인인증 기관으로 지정받은 기관은 가만히 앉아서 인증서만 열심히 발급해주면 돈이 알아서 굴러 들어로고,

      보안업체는 그저 아무런 투자도 기술 개발도 안하고, 앉아서 규제대로만 맞추면 편하게 장사해먹을 수 있으니…

  • Hyun Kim

    저기 궁금한게 있는데요.
    그러면 인증서의 유효성 검증은 어떻게 하나요?
    사설인증서도 그냥 되는것 같은데,

    서버는 SSL 인증서를 사용한다고 하면 되지만,
    클라이언트 인증서는 그냥 스스로 만들어도 되나요?

    그리고,
    2013년 부터는 PC에 인증서를 저장하지 못하도록 법이 생긴다고 하는데,
    위 스크립트는 PC 브라우저 내부에 저장된 인증서만 볼 수 있도록 구성되어 있습니다.

    고수님들의 답변 부탁드립니다.

    • http://openweb.or.kr youknowit

      고수는 물론 아닙니다만, 아는 범위에서 말씀드리면,

      서버인증서 검증은 웹브라우저가 기계적으로 수행합니다. 웹브라우저 마다 신뢰된 인증기관 인증서들이 심어져 있고, 특정 웹서버의 인증서가 이들 신뢰된 인증기관이 발급해 준 것이면 웹브라우저는 불평없이 SSL 접속을 합니다. 한국의 최상위 인증기관 KISA는 Firefox 웹브라우저를 제외한 다른 웹브라우저들에서는 신뢰된 인증기관으로 인정받았습니다. KISA의 하위에 있는 인증기관이 바로 국내의 5개 공인인증기관입니다. 이들도 서버인증서를 판매합니다. 이들 국내 공인인증기관으로부터 서버인증서를 발급받은 어떤 웹서버에 MS IE, 크롬, 오페라로 접속하면(윈도에서 작동할 경우), 별 문제 없이 SSL 접속이 이루어집니다. 그러나 Firefox 로 접속하면 “믿을 수 없는 웹서버이니 조심하라; 접속하지 않는 것이 좋다”는 내용의 경고가 뜹니다. 리눅스에서는 크롬, 오페라, 파이어폭스 모두에서 이런 경고가 뜹니다.

      클라이언트 인증서에 대한 검증은 웹서버가 수행합니다. 웹서버는 자신이 믿기로 선택하는 인증기관 인증서들을 웹서버에 탑재해 두고 있습니다. 어떤 인증기관을 믿을 것인지는 웹서버 마음입니다. 국제적으로 인정받는 인증기관이 발급한 클라이언트 인증서를 제시하는 user라면 접근을 허용하겠다고 판단하는 웹서버라면, 이들 국제적 인증기관의 인증기관 인증서를 자신이 운영하는 웹서버에 심어두면 됩니다.

      오픈웹이 Demo 용으로 “마구” 발급해주는 클라이언트 인증서를 믿기로 하는 웹서버는 없겠지요^^ 왜냐하면, 오픈웹이 데모 용으로 발급하는 인증서는 발급과정에서 어떠한 본인확인 절차도 없이 마구 발급해주기 때문입니다. 따라서 제정신이 있는 웹서버라면 “오픈웹 Demo 인증기관 인증서”를 자신의 서버에 심어둘 이유가 없습니다. 따라서 오픈웹에서 발급 받은 데모용 클라이언트 인증서로는 아무데도 인증서 로그인을 할 수 없습니다. 물론, 저는 “오픈웹 Demo 인증기관 인증서”를 오픈웹 서버에 심어두었습니다. 그래야 데모용 클라이언트 인증서로 인증서 로그인하는 절차를 여러분들께 보여줄 수 있게 되기 때문입니다. 거기에 더하여 저는 금결원 인증기관 인증서도 오픈웹 서버에 심어두었습니다. 따라서 금결원에서 발급한 개인들의 공인인증서로도 별도의 “인증서 등록절차 없이” 오픈웹에 인증서 로그인을 할 수 있습니다.

      (시중 은행들이 타행 발급 공인인증서를 그대로 인정하지 않고, 등록을 하도록 하는 것은 좀 모순적인데가 있습니다. 공인인증서를 정말로 믿는다면, 별도의 “등록”절차 없이 인증서 로그인을 허용해야 옳습니다. 그러나, 시중은행들 스스로가 공인인증서를 실은 믿지 못합니다. 그래서, 공인인증서만으로는 접근을 허용하지 않고, 타행이 발급한 공인인증서의 경우, 공인인증서 ‘등록’ 과정을 반드시 거쳐가도록 요구하면서, 보안카드 번호 등을 추가로 요구하는 것입니다. 이걸 보더라도, 공인인증서는 실은 “쑈”에 불과하고, 은행이 진짜로 믿는 것은 보안카드라는 것을 알수 있습니다.)

      인증서는 “신뢰(trust)” 체계를 기술적으로 유지하는 수단입니다. 암호화를 한다고 해서, 또는 인증서 파일을 사용한다고 해서 신뢰가 “생겨나는” 것은 아닙니다, 신뢰는 사람이 수행하는 본인 확인 절차가 얼마나 꼼꼼하고 믿을만 한지, 인증기관의 업무 수행 절차가 얼마나 제대로 관리되고 있는지에 달려 있습니다.

      신뢰는 인간이 인간과의 관계에서 올바르고 성실하게 업무를 수행함으로써 생겨나는 것이고, 인증서 기술은 이렇게 생겨난 신뢰를 “기술적으로 유지”하는 수단에 불과합니다. 암호기술이나 전자서명이 신뢰를 만들어 낸다고 생각하는 것은 착각 중에도 매우 저급한 착각입니다.

  • http://openweb.or.kr youknowit

    공인인증서를 앞으로는 PC 하드드라이브에 저장 못하게 하고, USB에 저장하도록 하겠다는 KISA의 정책은 개인인증서를 NPKI 폴더에 저장하도록 하는 “괴상한” 규격을 계속 유지할 경우를 전제로 한 것입니다. 

    그러나 아마도 NPKI 폴더에 공인인증서를 저장하도록 강제하는 규격 자체가 폐지될 가능성이 더 많다고 봐야 겠지요.

    물론 USB에 저장하게 해도, 유저가 USB에 있는 NPKI 폴더 자체를 C드라이브의 Programs Folder 속에 copy&paste 해두고 사용하는 행위를 막을 수는 없겠지요. 이것까지 막으려면, 공인인증 클라이언트 플러그인을 모두 업그레이드 해서, C 드라이브에 있는 개인인증서는 아예 인식하지 않도록 수정해야 하겠지요.

    기술적으로야 다 가능한 짓이지만, 부질 없는 삽질이라는 생각입니다.

«

»