• 우선 아래 내용을 인지해야 한다.
    1. IPsec
    2. IKE 프로토콜
  • IPsec
    • OSI 7 계층 중 주소 계층에서 사용되는 Protocol suite이다.
    • 인터넷 통신에 보안 기능을 제공한다.
    • IPsec은 보통 VPN 기능을 구현하기 위해 많이 사용된다.
  • IKE 프로토콜
    • Internet Key Exchange의 준말이다.
    • IKEv1 과 IKEv2가 있다.
    • IKE는 프로토콜이며, IPsec의 Security Association (SA)를 셋업하기 위해 사용된다.
  • IKE 프로토콜의 2단계
    • IKE 단계는 크게 2가지이다.
    • 1단계 : ISAKMP SA를 형성하기 위한 단계
      • Phase Level
        • Phase 1
        • Phase 2
      • Mode kind
        • Main mode
        • Aggresive mode
    • 2단계 : IPsec SA를 형성하기 위한 단계
      • Mode kind
        • 빠른 모드
  • ISAKMP SA Main mode
    • IKE 세션이 Initiator가 Responder에게 제안 또는 제안서 (prosposal)을 보낼 때 시작된다.
    • 첫번째 교환은 Peer간 기본 보안 정책을 설정한다. Initiator는 설정한 Proposal을 Responder에게 전송.
    • 두번째 교환은 공개 키와 기타 데이터를 전달. (Diffie-Hellman 알고리즘으로 Derived된)
    • 세번째 교환은 ISAKMP 세션을 인증한다.
    • IKE SA가 설정되면, IPsec협상이 시작된다.
  • IKE 프로토콜 도식
  • Description
    • Hasing : 해싱 알고리즘을 integrity를 검증하기 위해 사용한다. MD5 or SHA
    • Authentication : 각각의 peer는 자신이 누구인지를 증명해야한다. 두개의 자주 사용되는 옵션은 preshared key 또는 digital cert이다.
    • DH group : DH group은 결정한다. 키의 strengt를. 이 키는 키 교환 처리 과정에서 쓰인다.
    • Lifetime : IKE phase 1 tunnel이 얼마 동안 유지될까에 대한 정보
    • Encrytion : 암호화를 위해 우리가 무슨 알고리즘을 사용할까에 대한 정보. 예시로, DES, 3DES or AES
  • IKE 프로토콜 - Main mode 1
    • Initator는 첫번째 메시지를 보낸다. 이것은 SA를 위한 Proposal이다.
    • 다음과 같은 정보를 확인할 수 있다.
      • Initator IP와 Port, Responder의 IP와 Port
      • Iniator SPI(Security Parameter Index)
      • IKE version, mode
      • dmain of interpretation, proposal num
      • transform payload
  • IKE 프로토콜 - Main mode2
    • Responder가 보낸 첫번째 메시지에 대한 응답 메시지.
    • 이 메시지는 Responder가 Initator로부터 받은 attributes(transform payload에 있던)에 대해 agree했다는 의미이다.
    • Responder의 SPI value도 확인 가능하다.
  • IKE 프로토콜 - Main mode2
    • 우리의 목적은 peer들이 앞으로 사용할 SA에 대해 동의하는 것이다. 이를 위해 initator는 DH key 교환을 시작한다. 사진과 같이 key change와 nonce가 담겨있는 payload를 확인할 수 있다.
  • IKE 프로토콜 - Main mode 4
    • Responder 또한 자신의 DH nonce를 전송한다.
    • 이제 두 peer는 DH shared key를 계산한다.
  • IKE 프로토콜 - Main mode 5
    • 지금부터의 마지막 2개의 메시지는 암호화된다. 그래서 더 이상 컨텐츠를 확인할 수 없다. 이 두 개의 메시지는 식별과 인증을 위해 사용된다. Initiator가 먼저 시작한다.
  • IKE 프로토콜 - Main mode 6
  • 이로써, Main mode는 종료된다.


IKEv[n] 프로토콜.pptx
1.30MB

'컴퓨터 공부 > 네트워크' 카테고리의 다른 글

IPv6와 IPv4 프로토콜의 이해  (0) 2021.12.23

 최근 로컬 사용자명을 한글에서 영어로 바뀐뒤 wsl2 내용이 모두 삭제되는등의 문제가 발생했습니다.

 

그러던 중 제목과 같은 에러가 발생했는데 아래와 같이 해결합니다.

1. wsl2 쉘에서 vscode를 삭제합니다

sudo apt purge vscode

2. shell:~$ code
-bash: /usr/bin/code: No such file or directory

위와 같은 에러 로그 확인합니다.

3. vscode의 remote-wsl 확장팩을 삭제했다가 다시 설치합니다.

4. wsl2 쉘에서 code . 입력합니다.

 

만일 그래도 안된다면 아래와 같이 추가적으로 조치합니다. (제 경우가 이랬습니다.)

https://code.visualstudio.com/download# 에서 windows 버전 system installer를 선택해 설치합니다.

그리고 설치 도중 PATH는 꼭 잡게끔 선택해줍니다. (사실 설치하는 도중 아무것도 수정하지 않고 계속 next만 눌러주면 됩니다.)

 

그럼 정상 설치 완료됩니다. 그리고 다시 wsl2 쉘에서 code . 입력합니다.

위 사진과 같이 정상 실행되면서 처음의 에러가 발생하지 않는 것을 확인할 수 있습니다.

'컴퓨터 공부 > 여러가지' 카테고리의 다른 글

osi 1 계층에서의 비동기 통신  (0) 2022.02.06
프로토콜 스택 이해하기  (0) 2021.12.30
크롬 창 복구  (0) 2021.12.07

 업무상 1계층에서 4계층까지 다루는 업무가 많다보니 포스팅합니다.

 osi 1계층에서의 통신은 하드웨어 통신이죠. 예시로 rs-232 또는 u(s)art가 있습니다. 그리고 rs232는 아래와 같이 통신합니다.

 

 우선 송신 <-> 수신 이렇게 셋팅돼있습니다.

 

 이들이 rs232로 통신하기 위해서는 10비트가 필요합니다. 

 

 10비트의 내용은 다음과 같습니다.

 1 비트 : 통신을 시작하겠다는 시작 비트입니다.

 2~9비트 : 보내려는 데이터입니다. 총 2,3,4,5,6,7,8,9 번째 비트로, 1바이트 크기입니다.

 10 비트 : 통신을 종료하겠다는 종료 비트입니다.

 

 평상시에는 신호 레벨 1을 유지하고 있습니다. 그러다가 1에서 0으로 바뀐다면 통신을 시작합니다. 그리고 1 cycle을 기준으로 1비트씩 보냅니다. 그러다가 8비트 즉, 1바이트의 데이터 전송을 끝내기 위해서 신호레벨을 1로 고정시킵니다.

 

 데이터 전송 'A'를 생각해보겠습니다. 'A'의 아스키값은 65입니다. 그리고 65의 바이너리는 0100 0001입니다. rs232는 LSB부터 전송합니다. 즉 가장 우측 1부터 전송한다는 것이지요. 그러다가 마지막으로 가장 왼쪽에 있는 0을 보낼것이고, 전송을 종료하기 위해 신호레벨을 1로 유지할 것입니다.

 

아래 링크에 비동기 통신에 대해 설명이 잘돼있습니다. 

링크 : 

https://www.youtube.com/watch?v=NLIpEJjsGoA 

 

 

프로토콜의 스택을 어떻게 이해해야 하나 포스팅하겠습니다.

 

이해하기 쉽게 두 개를 비교해가며 알아볼게요. Thread 프로토콜과 Zigbee 프로토콜 알아보겠습니다.

 

두 프로토콜의 스택은 다음과 같습니다.

위 스택을 이해하기 위해서는 osi 7계층을 알고 계셔야해요. 

물리 계층인 1계층인 IEEE (아이 트리플 이) 802.15.4 phy를 확인할 수 있습니다. thread나 zigbee 모두 해당 phy 기반입니다. 2계층인 802.15.4 mac도 공통 기반입니다. 이것은 다음을 의미합니다. 일단 phy와 mac은 하드웨어 레벨을 의미하며, 특정 하드웨어 칩이 802.15.4 mac과 phy를 지원한다면 하나의 chip으로 Thread, zigbee를 모두 이용할 수 있다는 것을 의미합니다. 

 

그 위 계층으로, thread의 경우 6LowPAN(식스로우팬)과 ip routing, udp가 있습니다. 이것은 6LoWPAN (저전력 IPv6) 기반에서 ip routing과 udp를 이용할 수 있다는 것을 의미합니다.

 

반면 zigbee의 경우 network와 APS인것을 확인할 수 있습니다. zigbee는 일반적으로 우리가 아는 IPv4 또는 IPv6 기반의 ip 주소 체계를 이용하지 않는다는것을 의미합니다. 따라서 전송 계층도 UDP 또는 TCP가 아닌 zigbee 프로토콜이 정의하는 APS 전송계층을 이용하는 것이지요. 그렇기에 zigbee만의 네트워크가 아닌 외부 네트워크(IPv4 기반 또는 IPv6)와 통신을 하려면 별도의 게이트웨이가 있어야 합니다. 

 

가장 위 계층인 애플리케이션을 보면 Thread는 그 계층까지 정의하지않는것을 확인할 수 있습니다. 반면 zigbee는 애플리케이션 계층까지 정의하고 있죠. 여기서 두 프로토콜이 정의하는 범위의 차이를 알 수 있습니다. 이에 따라 Thread 애플리케이션 개발자는 훨씬 수월하게 애플리케이션을 만들 수 있습니다. 심지어 Thread는 IP 지정이 애플리케이션 레벨에서 가능합니다. Zigbee 애플리케이션 개발자는 좀 더 신경쓸 게 많겠죠. 다만 엄격하게 정의된 애플리케이션을 만드는 것이기에, zigbee 디바이스들간의 통신에 있어서 훨씬 안정적입니다. 

 

1) https://www.telink-semi.com/zigbee-vs-thread-smart-home-applications/

 

Telink | Zigbee Versus Thread for Smart Home Applications

As smart device connectivity technologies compete for market share, manufacturers must choose which protocols to use in their smart home offerings.

www.telink-semi.com

2) https://e2e.ti.com/blogs_/b/process/posts/thread-vs-zigbee-what-s-the-difference

 

다음 포스팅에서는 stm32wb55 보드를 가지고 thread 프로토콜 스택에 대해 더 깊게 알아보겠습니다!

 일반적으로 IPv4와 IPv6하면 그에 따른 주소 체계를 생각하곤 합니다. 하지만 특정 대역대가 예약이 돼있다는것을 최근에 알게 됐습니다. 

 먼저 IPv4를 생각해보겠습니다.

특수 용도 주소

주소 대역용도

0.0.0.0/8 자체 네트워크
10.0.0.0/8 사설 네트워크
127.0.0.0/8 루프백(loopback) 즉, 자기자신
169.254.0.0/16 링크 로컬(link local)
172.16.0.0/12 사설 네트워크
192.0.2.0/24 예제 등 문서에서 사용
192.88.99.0/24 6to4 릴레이 애니캐스트
192.168.0.0/16 사설 네트워크
198.18.0.0/15 네트워크 장비 벤치마킹 테스트
224.0.0.0/4 멀티캐스트
240.0.0.0/4 미래 사용 용도로 예약

출처 : https://ko.wikipedia.org/wiki/IPv4

 

IPv4 - 위키백과, 우리 모두의 백과사전

IPv4는 인터넷 프로토콜의 4번째 판이며, 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이다. 과거에 인터넷에서 사용되는 유일한 프로토콜이였으나 오늘날에는 IPv6이 대중화되었다. IETF RFC 791(1

ko.wikipedia.org

 

그 다음은 IPv6입니다.

특수 주소 공간[편집]

  • ::/128 - 이 주소는 모든 값을 0으로 설정한 특수한 주소이다. 가상적으로만 사용된다. IP 미설정 상태의 발신 주소이다..
  • ::1/128 - 자기 자신의 주소를 가리키는 루프백 주소이다. 프로그램에서 이 주소로 패킷을 전송하면 네트워크는 전송자에게로 패킷을 반송한다. IPv4의 127.0.0.1 주소와 동일하다.
  • ::/96 - IPv4 호환 주소를 위해 사용되는 주소공간이다.
  • ::ffff:0:0/96 - IPv4 매핑 주소를 위해 사용되는 주소공간이다.
  • fc00::/7 - IPv6 유니캐스트를 위한 주소공간이다.
  • fe80::/10 - link-local address를 위한 주소공간이다. IPv4의 자동 설정 IP 주소인 169.254.x.x 에 해당한다.
  • fec0::/10 - site-local address를 위한 주소공간이다. 네트워크 내부에서만 유효한 주소이며, 2004년 10월 RFC3879에서 폐기되어 더 이상 사용되지 않는다.
  • ff00::/8 - IPv6 멀티캐스트를 위한 주소공간이다. IPv4의 브로드캐스트는 더 이상 지원되지 않으며, IPv6에서는 대신 멀티캐스트를 사용해야 한다.

출처 : https://ko.wikipedia.org/wiki/IPv6

 

IPv6 - 위키백과, 우리 모두의 백과사전

IPv6(Internet Protocol version 6)는 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 버전 6 인터넷 프로토콜(version 6 Internet Protocol)로 제정된 차세대 인터넷 프로토콜을 말한다. 인터넷(Internet)은

ko.wikipedia.org

각각의 대역대는 특정 기능을 위해 존재합니다. 

 

추가로 IPv6에 대한 실제적인 예제는 저의 다른 게시글에서 확인해볼 예정입니다. ST의 stm32wb55보드를 이용해 패킷 내용을 확인할 것입니다. 그리고 특정 기능을 위해 각각의 대역대가 쓰이는것 또한 게시할 생각입니다!

 

IPv4 또한 시간이 날 때 확인할 예정입니다!

'컴퓨터 공부 > 네트워크' 카테고리의 다른 글

IKEv1 Phase1 - Main mode  (0) 2023.04.30

 저는 컴퓨터 재부팅을 수시로 하는 편인데요, 그럴때마다 크롬에 펼쳐놨던 창을 복구하기가 무척 난감했습니다. 그래서 알아보니 해결법이 있더군요. 

 실수로 창을 내리더라도 크롬 창 하나 새로 띄우고 ctrl + shift + t 누르면 최근 창들을 복구할 수 있습니다. 몇개까지 복구할 수 있는지는 잘 모르겠습니다. 하지만 엄청 유용한것 같습니다!

+ Recent posts