틸코 API 서비스

C#을 이용한 홈택스 공인인증서 자동 로그인 구현

틸코블렛 2021. 3. 31. 16:39

안녕하세요 #틸코블렛 입니다.

오늘은 국내에서 발급되는 공인/공동인증서를 이용하여 홈택스에 자동으로 로그인되는 C# 개발에 관하여 알아보겠습니다.

국내 공인인증서 규격에 대해서는 전자서명인증관리센터(http://www.rootca.or.kr)의 기술규격 메뉴를 참고해주세요 :) 아래에 링크 클릭 !

전자서명인증관리센터 - 기술규격 메뉴

홈택스는 아이디/비밀번호 로그인을 지원하지만, 일부 메뉴에 대해서는 공인/공동인증서 로그인 없이는 접근이 불가능 하기 때문에 필수적이라고 볼 수 있죠.

사실 개인식별 수단으로서의 공인 인증서는 법의 개정 이후 기관 및 업체들의 자율성에 맡겨지고 있었으나 이용자들이 사용에 불편을 호소하면서 공인인증서-> 공동인증서 로 전환하면서 민간인증서를 허용하게 되었습니다. (자세한 내용은 아래 링크 참고😊) 하지만 20년 넘도록 온 국민의 사랑(?)을 받아온 공인인증서 기술을 완전히 걷어내는 것은 쉽지 않을 것 같습니다.

<공인인증서 폐지 소식, 자세히 보기🥤>

 

 

공동인증서? 금융인증서? 클라우드 인증서? 이제 공인인증서의 시대는 굿바이

​안녕하세요 틸코블렛입니다! ​갑작스런 공인인증서의 폐지 소식!이미 많은 분들이 뉴스를 통해 소식 전...

blog.naver.com

 

그럼 본론으로 들어가겠습니다. 공인인증서를 암/복호화 및 서명/검증하려면 아래 기술들에 대해서 어느 정도의 지식이 있어야 하는데요.

1. SEED 알고리즘

2. RSA 암/복호화 알고리즘 및 그에 따른 부수적인 지식

3. RSA 서명 알고리즘

홈택스는 암호화에 RSASSA-PKCS1-V1_5 스키마를 사용하고 있고, 해쉬 알고리즘은 Sha256입니다.

​로그인에 필요한 변수들도 살펴볼게요.

홈택스 공인인증서 로그인 개발에 필요한 변수들

 

뭔가 좀 많이 복잡해 보이죠?

* logSgnt: 건강보험공단처럼 서명/검증에 필요한 const 문자열 이라고 이해하시면 됩니다.

다만, 몇 가지 변수들이 좀 더 추가 되었습니다.

Base64 인코딩된 서명 검증용 문자열이 개인키를 통하여 서명이 되고나면, 3가지의 추가된 변수들이 합쳐집니다.

이후 전체 문자열이 다시 base64로 인코딩되게 됩니다.

* randomEnc: 공인인증서 개인키에서 추출되는 정보입니다.

* cert: 공인인증서 정보를 base64로 인코딩하여 전송하게 됩니다.

화면 해상도를 나타내는 변수들 외에 3개의 변수가 더 있는데, 큰 의미를 두지 않는 것으로 보여요.

오늘은 틸코와 함께

<홈택스 공인/공동인증서 자동 로그인 구현방법>에 대해 알아보았는데요

추가로 공인/공동인증서 스크린 스크래핑 개발 관련 문의가 있으시다면

"틸코블렛" 으로 문의해주세요.😃

 

추가내용입니다.

이러한 복잡하고 힘든 과정의 공동인증서 로그인을 자동으로 처리해 주는 API 서버가 출시되어서 알려 드립니다.

https://tauth.kr

 


🥨틸코블렛 홈페이지 바로가기

https://tilko.net/

🥨틸코블렛 1:1 컨설팅 바로가기

https://tilko.channel.io

🥨틸코블렛 카카오톡 상담 바로가기

http://pf.kakao.com/_ZahSK