오랜만입니다. 게을러서 글을 올리지 못했습니다. 요즘 다른거 개발한다고 기존에 만든걸 까먹기까지 해서 정말 포스트해야지 마음먹기가 너무 힘드네요. 나이를 먹어서 그런걸까요?
OPCUA의 인증은 대략적으로 알고있어서 알고있는 수준에서만 설명을 드리겠습니다. 인증부분은 제가 테스트만 해봤지 정확한 개념을 알고있지 못하기 때문에 만약 오류가 있다면 집단지성으로 저를 꾸짖어주시기 바랍니다. ^^
제가 개발했던 환경에서는 None 방식을 사용했었습니다. 보통 우리가 말하는 OA망과 FA망이 분리되어있다면 None으로 해도 상관이 없습니다. 만약 그렇지 않다면 OPCUA 인증을 사용해야겠지요. 만약 None 방식으로 OPCUAfoundation에서 받은 서버소스를 사용하고 싶다면 XML의 주석을 해제하셔야 합니다. 이것은 다음포스트에서 다룰게요.
10. OPCUA의 인증
인증이라. 인증은 왜할까요? 만약에 아무런 보안도 되어있지 않다고 가정을 해보겠습니다. 시계열 제조데이터는 사실 분석하기도 까다로운 정보이지만 이 정보를 가지고 있는 입장에서는 누군가 내 데이터를 본다는 것은 보안상 이슈일 수 있습니다. 뿐만 아니라 내 OPCUA 서버에 아무 클라이언트나 마음대로 접근해서 생산 값을 내려버린다면 더 큰일이겠지요. 그래서 데이터베이스같은 경우는 role을 정하여 특정 사용자만 데이터베이스 조작을 가능하게 하기도 합니다. 이러한 일들을 하기위해 필요한 것이 바로 인증절차입니다.
OPCUA 는 아래 4가지 방법으로 인증합니다.
1) Tier 1 : No Authentication
- 클라이언트, 서버 모두 서로에 대한 권한 확인 없이 통신 진행. 인증서는 상호간에 교환해야 하고 유효하지 않은 인증서인 경우 통신이 되지 않는다. 독립된 네트워크 환경 혹은 보안이 필요하지 않는 공공 데이터인 경우가 이에 해당한다.
2) Tier 2 : Server Authentication
- 서버는 모든 클라이언트의 접근을 허용하고 클라이언트가 서버의 유효성 유무를 판단한다.
- 서버는 ID / Password , 사용자의 개인인증서를 이용하여 인증 관리가 가능하다.
- 클라이언트는 서버가 전송한 인증서가 신뢰하는 CA(Certificate Authority)에서 발행한 인증서이거나, 신뢰하는 인증서로 등록되어 있는 경우 통신을 허용한다.
- 미등록 인증서인 경우, 인증서의 도메인 정보와 실제 접속하고 있는 서버의 도메인의 일치 여부를 확인하고 일치하면 접속을 허용한다.
3) Tier 3 - Client Authentication
- 클라이언트는 검증없이 서버에 접속하고 서버에서 클라이언트를 인증한다.
4) Tier 4 - Mutual Authentication
- 서버, 클라이언트 상호간에 인증한다.
어려운 그림도 하나 첨부해보겠습니다.
저는 도저히 무슨말인지 처음에는 그림만 보고 몰랐습니다. 쉽게 설명해드릴게요.
OPCUA는 인증서라는 것이 있습니다. 서버는 서버 인증서가 있고 클라이언트는 클라이언트 인증서가 있습니다. 그리고 인증서를 저장하는 Folder가 있습니다.
- 만들어진 인증서의 기본저장 폴더 위치는 아래와 같습니다.
C:\ProgramData\OPC Foundation\CertificateStores\MachineDefault\certs
C:\ProgramData\OPC Foundation\CertificateStores\UA Applications\certs
OPCUA의 인증을 사용하기 위해서는 다음과 같이 하면 됩니다. 신뢰하는 인증서의 위치는 기본적으로 제공하는 XML에 표기되어있습니다. 별도의 클라이언트 프로그램을 쓰는 경우라면 클라이언트 프로그램 내부에 인증서에 대한 기능이 들어있을 겁니다.
1) 서버가 클라이언트를 인증하는 경우 (Tier 3)
- 클라이언트 인증서를 서버의 신뢰하는 인증서 저장위치로 저장하면 됩니다.
C:\ProgramData\OPC Foundation\CertificateStores\UA Applications\certs
2) 클라이언트가 서버를 인증하는 경우 (Tier 2)
- 서버 인증서를 클라이언트의 신뢰하는 인증서 저장위치로 저장하면 됩니다.
C:\ProgramData\OPC Foundation\CertificateStores\UA Applications\certs
3) 상호 인증
- 서로의 인증서를 각각의 신뢰하는 인증서 위치에 복사 붙여넣기 하면 됩니다.
인증이라고 하면 내부적으로는 대단한 기술이 들어갈테지만 사용자 입장에서는 이정도만 알아도 되지 않을까 싶네요.
'IT 지식 > OPCUA' 카테고리의 다른 글
OPCUA 서버 개발하기 - 1편. 준비물 (5) | 2021.10.29 |
---|---|
OPCUA 통신 쉽게 알기 - 5편 Monitoring item (17) | 2021.03.27 |
OPCUA 통신 쉽게 알기 - 4편 Pub/Sub의 개념익히기 (Monitoring) (1) | 2020.07.14 |
OPCUA 통신 쉽게 알기 - 3편 OPC 서버와 PLC 의 연결 (6) | 2020.02.10 |
OPCUA 통신 쉽게 알기 - 2편 OPC 의 이점과 기능 (0) | 2020.02.10 |