wolfSSL 상호 인증 API

wolfTips : IoT 장치의 보안 라이브러리 wolfSSL을 다루는 팁
            ---열쇠, 증명서편 ---

개요



wolfSSL은 IoT 장치, 내장형 소형, 경량 SSL/TLS 라이브러리입니다. 여기에서는 wolfSSL로 서버 인증, 클라이언트 인증, 또는 상호 인증을 실현하기 위한 API를 정리합니다.

TLS에서는, 핸드 셰이크 실행시에 통신의 상대방의 스푸핑등이 없는 것을 확인하기 위해서 공개키 증명서를 사용한 서버 인증, 클라이언트 인증, 어느 쪽도 둘 다를 인증하는 상호 인증을 실시할 수 있습니다. PC의 브라우저로부터의 Web 서버에의 액세스에서는 통상 서버 인증만을 실시하는 경우가 많습니다만, IoT 디바이스에서는 디바이스측의 스푸핑을 막기 위해서 클라이언트 인증을 실시하는 경우도 많이 있습니다.

위의 그림에서 볼 수 있듯이, 예를 들어 서버 인증을 위해 TLS 통신 전에 서버 인증을 수행하려는 클라이언트 측에 신뢰하는 루트 CA 인증서를 두고 서버 측에는 CA 서명 된 서버 인증서 와 해당 비밀 키를 둡니다. 클라이언트 인증은 단지 그 반대로 서버 측에 CA 인증서를 두고 클라이언트 측이 자신을 증명하기 위한 인증서와 개인 키를 둡니다. 두 인증을 모두 상호 인증이라고 합니다.



wolfSSL에서는 프로그램상에서 이것을 실현하기 위한 API로서 표 2와 같이 각각의 증명서나 키를 로드하기 위한 API가 제공되고 있습니다. 서버 인증과 클라이언트 인증은 서로 대칭이므로, API로서는 3개의 API가 한 쌍만 제공되고 있어, 인증의 방향에 따라 서버, 클라이언트의 어느쪽이든 적당한 쪽으로 이용합니다. 여기서 로드된 인증서, 키가 핸드셰이크시에 참조되어 통신 상대방의 인증이 행해집니다. 이러한 지정은, 인증되는 측의 API에서는, 하나의 컨텍스트 전체에서 공통의 파일을 지정하기 위한 API("wolfSSL_CTX_xxx")와 세션 마다 다른 파일을 지정할 수 있는 API("wolfSSL_xxx")의 2 종류 가 준비되어 있습니다.

또한 IoT 디바이스, 임베디드 시스템에서는 파일 시스템이 없는 경우도 있습니다. wolfSSL은 이러한 사용 환경을 위해 파일 이미지와 동일한 것을 메모리 버퍼에 놓고 포인터와 크기를 전달하는 인터페이스도 제공합니다. 예를 들어 wolfSSL_load_verify_locations의 경우 wolfSSL_load_verify_buffer와 같이 wolfSSL_xxx의 경우 wolfSSL_xxx_buffer와 같은 명명 규칙이 있습니다.



요약



이상, wolfSSL의 서버 인증, 클라이언트 인증을 위한 API에 대해 정리해 보았습니다. 개별 API 사양은 wolfSSL APPI 레퍼런스을 참조하십시오.

문서: htps //w w. lfsl. jp/도cs/
영어 사이트: htps //w w. lfsl. 이 m
일본어 사이트: htps //w w. lfsl. jp
Twitter: htps : // 라고 해서 r. 이 m / lfsL_japan

좋은 웹페이지 즐겨찾기