SA (Security Association, 보안 관련 집합정보)
(https://en.wikipedia.org/wiki/Security_association) 요소
RFC7296 - Internet Key Exchange Protocol Version 2
(https://www.rfc-editor.org/rfc/rfc7296))
RFC4303 - IP Encapsulating Security Payload
(https://www.rfc-editor.org/rfc/rfc4303))
RFC4302 - IP Authentication Header
(https://tools.ietf.org/html/rfc4302))
RFC3173 - IP Payload Compression Protocol
(https://tools.ietf.org/html/rfc3173)) | 참고 영상 |
| 참고 그림 |
![]() [PNG image (131.6 KB)] |
![]() [PNG image (415.5 KB)] |
| 분류 | 내용 |
| 장점 | 저비용 구축 및 통신비 절감 |
| Network을 관리하는데 소요되는 운용비용 절감 | |
| 기업 입장에서 Netowork을 선택하고 교체하는데 필요한 선택기회 증가 (근무자의 위치가 이동하여도 유연하게 대응이 가능) | |
| 정보통신 관련 전문기술 활용 가능 | |
| 단점 | 공개된 망을 이용함에 따른 보안성 우려 |
| Public Network(공중망, 인터넷)의 여러 외부요인에 의한 불안정성 | |
| 장비간 호환성 | |
| 관리의 편의성면에서는 떨어짐 | |
| QoS 보장 (Internet은 기본적으로 통제가 되지 않는 신뢰성이 약한 Network들의 모임이기 때문에 안전 및 품질을 보장하기 어렵다는 점) | |
| 표준화 (단일화된 표준의 부재) | |
AEAD (Authenticated Encryption with Associated Data)
(https://en.wikipedia.org/wiki/Authenticated_encryption)
AH (Authentication Header)
(https://en.wikipedia.org/wiki/IPsec#Authentication_Header)
ASN.1 (Abstract Syntax Notation One)
(https://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One)
CIDR (싸이더, Classless Inter-Domain Routing)
(https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
DH (Diffie–Hellman) key exchange
(https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange)
DR (Disaster recovery)
(https://en.wikipedia.org/wiki/Disaster_recover)
ESP (Encapsulation Security Protocol)
(https://en.wikipedia.org/wiki/IPsec#Encapsulating_Security_Payload)
HMAC (Hash-based message authentication code)
(https://en.wikipedia.org/wiki/Hash-based_message_authentication_code)
IKE (Internet Key Exchange)
(https://en.wikipedia.org/wiki/Internet_Key_Exchange)
IPSec (Internet Protocol Security)
(https://en.wikipedia.org/wiki/IPsec)
ISAKMP (Internet Security Association and Key Management Protocol)
(https://en.wikipedia.org/wiki/Internet_Security_Association_and_Key_Management_Protocol)
NAT-T (NAT traversal)
(https://en.wikipedia.org/wiki/NAT_traversal)
OSI (Open System Interconnection) 7 Layer
(https://en.wikipedia.org/wiki/OSI_model)
PFS (Perfect Forward Secrecy)
(https://en.wikipedia.org/wiki/Forward_secrecy)
PSK (Pre-Shared Key)
(https://en.wikipedia.org/wiki/Pre-shared_key)
RSA (cryptosystem)
(https://en.wikipedia.org/wiki/RSA_(cryptosystem))
SA (Security Association)
(https://en.wikipedia.org/wiki/Security_association)
SAD (Security Association Database)
(http://wiki.treck.com/Security_Policy_Database_(SPD)_and_Security_Association_Database_(SAD))
SPD (Security Policy Database)
(http://wiki.treck.com/Security_Policy_Database_(SPD)_and_Security_Association_Database_(SAD))
SPI (Security Parameter Index)
(https://en.wikipedia.org/wiki/Security_Parameter_Index)
VPN (가상사설망, Virtual Private Network)
(https://en.wikipedia.org/wiki/Virtual_private_network)
PSK(Pre-Shared Key)
(https://en.wikipedia.org/wiki/Pre-shared_key)와 디지털 인증서를 사용하는 방식등이 있습니다.
ESP
(https://en.wikipedia.org/wiki/IPsec#Encapsulating_Security_Payload)등이 활용됩니다.
| 기술 | 설명 |
| 터널링(Tunneling) | 양단간 가상의 통신경로를 설정하는 기술로써 Tunnel의 외부 환경에서는 내부에 있는 Protocol을 파악하기 어렵다는 특징이 있습니다. |
| 인증(Authentication) | 외부에서 통신을 변조하지 못하도록 양단간을 확고하게 신뢰할 수 있도록 하여 외부로부터 변조된 내용이 삽입, 누락등을 유도하더라도 이를 판별할 수 있습니다. |
| 암호화(Encryption) | 각 Tunnel을 안전하게 보호하기 위해서 암호화 기법을 사용하게 되며 이를 통해서 외부 환경에서는 암호화된 내용을 해독할 수 없습니다. |
| 접근제어(AccessControl) | VPN내부 통신자원을 제어하여 불필요한 접근등을 차단하는 기능을 제공합니다. |
| 종류 | 암호화를 수행하는 Layer | 주요 용도 | 비고 | |
IPSec (https://en.wikipedia.org/wiki/IPsec) VPN | (Generic) IPSec VPN | Layer 3 이상 | 본사와 지사간 연결 | 보통 대규모 VPN에 많이 사용되며 가장 기본적인 VPN이라고 할 수 있습니다. |
GRE(Generic Routing Encapsulation) (https://en.wikipedia.org/wiki/Generic_Routing_Encapsulation) IPSec VPN | Layer 3 이상 | 본사와 지사간 연결 | GRE(Generic Routing Encapsulation) (https://en.wikipedia.org/wiki/Generic_Routing_Encapsulation)를 이용하여 Routing을 해결하는 IPSec VPN | |
Dynamic Multipoint VPN (DMVPN) (https://en.wikipedia.org/wiki/Dynamic_Multipoint_Virtual_Private_Network) | Layer 3 이상 | 본사와 지사간 연결 | 대규모 VPN | |
| IPSec Virtual Tunnel Interface (IPSec VTI) | Layer 3 이상 | 본사와 지사간 연결 | 설정이 비교적 간편한 VPN | |
| Easy VPN | Layer 3 이상 | 본사와 PC간 연결 | 외부 근무자에게 내부망으로의 접속을 허용하기 위한 VPN | |
| Flex VPN | Layer 3 이상 | 본사와 지사간 연결 또는 본사와 PC간 연결 | IKEv2 기반 통합 VPN | |
| Group Encrypted Transport VPN (Get VPN) | Layer 4 이상 | 본사와 지사간 연결 | 대규모 VPN, Multicast, QoS지원 | |
SSL (https://en.wikipedia.org/wiki/Transport_Layer_Security) VPN | Layer 5 이상 | 서버와 PC 연결 | 전자상거래등의 용도로 많이 사용하며 다양한 정책들을 수립하기 좋습니다. | |
PPTP (https://en.wikipedia.org/wiki/Point-to-Point_Tunneling_Protocol) VPN | Layer 2 이상 | 본사와 PC 연결 | 외부근무자에게 내부망으로의 접속을 허용하기 위해서 많이 사용합니다. | |
L2TP (https://en.wikipedia.org/wiki/Layer_2_Tunneling_Protocol) VPN | Layer 2 이상 | 본사와 PC 연결 | 외부근무자에게 내부망으로의 접속을 허용하기 위해서 많이 사용하지만 요즘에는 비교적 많이 쓰이지는 않습니다. | |
MPLS (https://en.wikipedia.org/wiki/Multiprotocol_Label_Switching) VPN | 암호화 하지 않음 | 본사와 지사간 연결 | 보통은 ISP측에서 제공하므로 사용자 입장에서는 별도의 장비구입이 필요없는 경우가 대부분이며, IPSec VPN과 함께 사용합니다. | |
RFC2407 - The Internet IP Security Domain of Interpretation for ISAKMP
(https://tools.ietf.org/html/rfc2407)
RFC2408 - Internet Security Association and Key Management Protocol
(https://tools.ietf.org/html/rfc2408)
RFC2409 - The Internet Key Exchange
(https://tools.ietf.org/html/rfc2409)
RFC7296 - Internet Key Exchange Protocol Version 2 (IKEv2)
(https://tools.ietf.org/html/rfc7296)
RFC4302 - IP Authentication Header
(https://tools.ietf.org/html/rfc4302)
RFC3948 - UDP Encapsulation of IPsec ESP Packets
(https://tools.ietf.org/html/rfc3948)
RFC4303 - IP Encapsulating Security Payload
(https://tools.ietf.org/html/rfc4303)
RFC7402 - Using the Encapsulating Security Payload (ESP) Transport Format with the Host Identity Protocol
(https://tools.ietf.org/html/rfc7402)
RFC3173 - IP Payload Compression Protocol
(https://tools.ietf.org/html/rfc3173)
RFC3947 - Negotiation of NAT-Traversal in the IKE
(https://tools.ietf.org/html/rfc3947)
RFC3948 - UDP Encapsulation of IPsec ESP Packets
(https://tools.ietf.org/html/rfc3948)
SA(Security Association)
(https://en.wikipedia.org/wiki/Security_association)를 결정하며 필요한 여러 Key를 결정하기 위하여
IKE(Internet Key Exchange)
(https://en.wikipedia.org/wiki/Internet_Key_Exchange)와 ISAKMP (Internet Security Association and Key Management Protocol)을 사용합니다.
SA(Security Association)
(https://en.wikipedia.org/wiki/Security_association)라고 하며 이를 사용하게 됩니다. 여기서 이것을 하나의 코드로 표시한 것을
SPI(Security Parameter Index)
(https://en.wikipedia.org/wiki/Security_Parameter_Index)라고 합니다.
ESP(Encapsulation Security Protocol)
(https://en.wikipedia.org/wiki/IPsec#Encapsulating_Security_Payload)를 사용하거나 개별 패킷의 무결성만을 확인하는
AH(Authentication Header)
(https://en.wikipedia.org/wiki/IPsec#Authentication_Header)을 사용합니다.
AH(Authentication Header)
(https://en.wikipedia.org/wiki/IPsec#Authentication_Header)는 암호화 기능이 없어 기밀성(Confidentiality)을 보완하기 위한 방법(AH + ESP 조합하는 방법)를 별도로 추가도입하지 않으면 대체적으로 잘 사용하지 않는 편입니다.
RFC2408 - Internet Security Association and Key Management Protocol
(https://tools.ietf.org/html/rfc2408) 는 통신하고자 하는 양단간에 통신을 보호하기 위한 보안통신을 달성하기 위해서 필요한 암호화 및 무결성 확인을 방법이 정해지도록 일련의 절차들이 필요한데 이와 같은 일을 하도록 절차를 명시한 Protocol 이라고 할 수 있습니다.
RFC2409 - The Internet Key Exchange
(https://tools.ietf.org/html/rfc2409) 가 있으며 이것은 ISAKMP가 명시한 절차에 필요한 구체적인 Protocol의 종류와 사용방법등을 정의한 것입니다. 그러나 이 둘간의 유사성이 매우 커서 2010년 9월에 개정된
RFC5996 - Internet Key Exchange Protocol Version 2
(https://tools.ietf.org/html/rfc5996) 에서 IKE와 ISAKMP를 통합하여 정의하게 되었습니다.
SA(Securify Association, 보안 관련 집합정보)
(https://en.wikipedia.org/wiki/Security_association)라고 하며 송신자와 수신자가 안전하게 이러한 정보를 교환하기 위해서 SA 및 Session-Key를 관리(생성, 협상, 삭제)할 수 있도록 하는 Protocol 중 하나가 ISAKMP라고 합니다.

강한인증(strong authentication)
(https://en.wikipedia.org/wiki/Strong_authentication)기능을 제공해야 하며 이를 위해서 다음을 만족하도록 정의됩니다.
PFS(Perfect Forward Secrecy)
(https://en.wikipedia.org/wiki/Forward_secrecy) 서비스를 달성 가능하다는 장점이 있습니다.

반향공격(Reflection attack)
(https://en.wikipedia.org/wiki/Reflection_attack) 에 대한 취약성에 유의해야 합니다.
SA(Security Association)
(https://en.wikipedia.org/wiki/Security_association) 를 생성하여 교환하는 과정이며 단계2(Phase 2)의 협상(Negotiation)할 때의 정보들을 암호화 하는데 사용됩니다.
SA(Security Association)
(https://en.wikipedia.org/wiki/Security_association)는 안전하게 보호될 수 있으며 이를 이용하여 실제 Data의 통신을 보호 할 수 있게 됩니다.




PFS(Perfect Forward Secrecy)
(https://en.wikipedia.org/wiki/Forward_secrecy)를 달성합니다.
SA (Security Association, 보안 관련 집합정보)
(https://en.wikipedia.org/wiki/Security_association) 요소
RFC4303 - Section 2.1. Security Parameters Index
(https://tools.ietf.org/html/rfc4303#section-2.1))
RFC2407
(https://tools.ietf.org/html/rfc2407))
RFC2407 - Section 4.2. IPSEC Situation Definition
(https://tools.ietf.org/html/rfc2407#section-4.2))
PFS(Perfect Forward Secrecy)
(https://en.wikipedia.org/wiki/Forward_secrecy), 인증등의 서비스를 달성하기 위해서 메세지의 교환 형태가 정의된 것을 말합니다.
SA(Security Association, 보안 관련 집합정보)
(https://en.wikipedia.org/wiki/Security_association) 내용 및 키 교환을 위한 내용들을 전송하기 위해서 생성 및 해석을 합니다.
| MAC header | IP header | UDP header | ISAKMP packet |
RFC2408 Section 3.1 ISAKMP Header Format
(https://tools.ietf.org/html/rfc2408#section-3.1))
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Initiator Cookie (8 octets) | |||||||||||||||||||||||||||||||
| Responder Cookie (8 octets) | |||||||||||||||||||||||||||||||
| Next Payload (1 octet) | Major version (4 bits) | Minor version (4 bits) | Exchange Type (1 octet) | Flags (1 octet) | |||||||||||||||||||||||||||
| Message ID (4 octets) | |||||||||||||||||||||||||||||||
| Length (4 octets) | |||||||||||||||||||||||||||||||
| 값 | 의미 | |
| 0 | NONE (No Next Payload) | |
| 1 | Security Association (SA, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 2 | Proposal (P, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 3 | Transform (T, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 4 | Key Exchange (KE, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 5 | Identification (ID: IDi/IDr, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 6 | Certification (CERT, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 7 | Cerificate Request (CR, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 8 | Hash (HASH) | (AUTH, RFC2408 (https://tools.ietf.org/html/rfc2408)) |
| 9 | Signature (SIG, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 10 | Nonce (NONCE, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 11 | Notification (N, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 12 | Delete (D, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 13 | Vendor (VID, RFC2408 (https://tools.ietf.org/html/rfc2408)) | |
| 14 | Attributes Payload (ISAKMP Mode Config, aka configuration payload, https://tools.ietf.org/tools/rfcmarkup/rfcmarkup.cgi?draft=draft-ietf-ipsec-isakmp-mode-cfg-05.txt ) | |
| 15 | SA KEK Payload (SAK, RFC3547 (https://tools.ietf.org/html/rfc3547), RFC6407 (https://tools.ietf.org/html/rfc6407)) | |
| 16 | SA TEK Payload (SAT, RFC3547 (https://tools.ietf.org/html/rfc3547), RFC6407 (https://tools.ietf.org/html/rfc6407)) | |
| 17 | Key Download (KD, RFC3547 (https://tools.ietf.org/html/rfc3547)) | |
| 18 | Sequence Number (SEQ, RFC3547 (https://tools.ietf.org/html/rfc3547)) | |
| 19 | Proof of Possession (POP, RFC3547 (https://tools.ietf.org/html/rfc3547)) | |
| 20 | NAT Discovery (NAT-D, RFC3947 (https://tools.ietf.org/html/rfc3947)) | |
| 21 | NAT Original Address (NAT-OA, RFC3947 (https://tools.ietf.org/html/rfc3947)) | |
| 22~32 | RESERVED | |
| 33 | Security Association (SA, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 34 | Key Exchange (KE, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 35 | Identification - Initiator (IDi, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 36 | Identification - Responder (IDr, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 37 | Certificate (CERT, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 38 | Certificate Request (CERTREQ, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 39 | Authentication (AUTH, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 40 | Nonce (Ni/Nr, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 41 | Notify (N, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 42 | Delete (D, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 43 | Vendor ID (V, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 44 | Traffic Selector - Initiator (TSi, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 45 | Traffic Selector - Responder (TSr, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 46 | Encrypted and Authenticated (SK, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 47 | Configuration (CP, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 48 | Extensible Authentication (EAP, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 49 | Generic Secure Password Method (GSPM, RFC7296 (https://tools.ietf.org/html/rfc7296)) | |
| 50 | Group Identification (IDg, draft-yeung-g-ikev2) | |
| 51 | Group Security Association (GSA, draft-yeung-g-ikev2) | |
| 52 | Key Download (KD, draft-yeung-g-ikev2) | |
| 53 | Encrypted and Authenticated Fragment (SKF, RFC7383 (https://tools.ietf.org/html/rfc7383)) | |
| 54 | Puzzle Solution (PS, RFC8019 (https://tools.ietf.org/html/rfc8019)) | |
| 55~127 | RESERVED | |
| 128~255 | Private Use | |
RFC5996 - Internet Key Exchange Protocol Version 2 (IKEv2)
(https://tools.ietf.org/html/rfc5996) 인 경우는 Major version 2로 명시합니다. (참고:
RFC5996 Section 2.5 Version Numbers and Forward Compatibility
(https://tools.ietf.org/html/rfc5996#section-2.5))
| IKEv1 | |
| 값 | 의미 |
| 0 | None ( RFC2408 (https://tools.ietf.org/html/rfc2408)) |
| 1 | Base ( RFC2408 (https://tools.ietf.org/html/rfc2408)) |
| 2 | Identify Protection ( RFC2408 (https://tools.ietf.org/html/rfc2408)) |
| 3 | Authentication Only ( RFC2408 (https://tools.ietf.org/html/rfc2408)) |
| 4 | Aggressive ( RFC2408 (https://tools.ietf.org/html/rfc2408)) |
| 5 | Informational ( RFC2408 (https://tools.ietf.org/html/rfc2408)) |
| 6~31 | ISAKMP Future Use |
| 32 | Quick Mode ( RFC2409 (https://tools.ietf.org/html/rfc2409)) |
| 33 | New Group Mode ( RFC2409 (https://tools.ietf.org/html/rfc2409)) |
| 34 | IKE_SA_INIT ( RFC7296 (https://tools.ietf.org/html/rfc7296)) |
| 35 | IKE_AUTH ( RFC7296 (https://tools.ietf.org/html/rfc7296)) |
| 36 | CREATE_CHILD_SA ( RFC7296 (https://tools.ietf.org/html/rfc7296)) |
| 37 | INFORMATIONAL ( RFC7296 (https://tools.ietf.org/html/rfc7296)) |
| 38 | IKE_SESSION_RESUME ( RFC7296 (https://tools.ietf.org/html/rfc7296)) |
| 39 | GSA_AUTH (draft-yeung-g-ikev2) |
| 40 | GSA_REGISTRATION (draft-yeung-g-ikev2) |
| 41 | GSA_REKEY (draft-yeung-g-ikev2) |
| 42~239 | DOI(Domain of Interpretation) Specific Use (RESERVED TO IANA) |
| 240~255 | Reserved for private use |
| Bit(0 ~ 7) | 의미 |
| 0 | E(ncryption Bit) |
| 1 | C(ommit Bit) |
| 2 | A(uthentication Only Bit) |
| 3 ~ 7 | RESERVED(항상 0으로 설정되어 있어야 함) |
RFC2408 Section 3.2 Generic Payload Header
(https://tools.ietf.org/html/rfc2408#section-3.2))
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | RESERVED (1 octet) | Payload Length | |||||||||||||||||||||||||||||
| (Payload) | |||||||||||||||||||||||||||||||

RFC2408 Section 3.3 Data Attributes
(https://tools.ietf.org/html/rfc2408#section-3.3))
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| AF (1 bit) | Attribute Type (15 bits) | AF=0 ? Attibute Length (2 octets) AF=1 ? Attribute Value (2 octets) | |||||||||||||||||||||||||||||
| AF=0 ? Attibute Value (Variable size: Attibute Length) AF=1 ? Not Transmitted | |||||||||||||||||||||||||||||||
RFC2408 Section 3.4 Security Association Payload
(https://tools.ietf.org/html/rfc2408#section-3.4))
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | RESERVED (1 octet) | Payload Length | |||||||||||||||||||||||||||||
| Domain of Interpretation (DOI) (4octets) | |||||||||||||||||||||||||||||||
| (Situation) (Variable length) | |||||||||||||||||||||||||||||||
RFC2407 - The Internet IP Security Domain of Interpretation for ISAKMP
(https://tools.ietf.org/html/rfc2407))를 지칭합니다.
RFC2407 Section 4.6.1 Security Association Payload
(https://tools.ietf.org/html/rfc2407#section-4.6.1))
RFC7296 - Internet Key Exchange Protocol Version 2
(https://www.rfc-editor.org/rfc/rfc7296))| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| IKE SA Initiator's SPI (8 octets) | |||||||||||||||||||||||||||||||
| IKE SA Responder's SPI (8 octets) | |||||||||||||||||||||||||||||||
| Next Payload (1 octet) | Major version (4 bits) | Minor version (4 bits) | Exchange Type (1 octet) | Flags (1 octet) | |||||||||||||||||||||||||||
| Message ID (4 octets) | |||||||||||||||||||||||||||||||
| Length (4 octets) | |||||||||||||||||||||||||||||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IKE SA Initiator's SPI |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IKE SA Responder's SPI |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Payload | MjVer | MnVer | Exchange Type | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
RFC5996 - Internet Key Exchange Protocol Version 2 (IKEv2)
(https://tools.ietf.org/html/rfc5996) 인 경우는 Major version 2로 명시합니다. (참고:
RFC5996 Section 2.5 Version Numbers and Forward Compatibility
(https://tools.ietf.org/html/rfc5996#section-2.5))
| IKEv1 | |
| 값 | 의미 |
| 34 | IKE_SA_INIT ( RFC7296 (https://tools.ietf.org/html/rfc7296)) |
| 35 | IKE_AUTH ( RFC7296 (https://tools.ietf.org/html/rfc7296)) |
| 36 | CREATE_CHILD_SA ( RFC7296 (https://tools.ietf.org/html/rfc7296)) |
| 37 | INFORMATIONAL ( RFC7296 (https://tools.ietf.org/html/rfc7296)) |
| Bit(0 ~ 7) | 의미 |
| 0 | X (0 cleared and ignored) |
| 1 | X (0 cleared and ignored) |
| 2 | X (0 cleared and ignored) |
| 3 | I (Initiator) |
| 4 | V (Version) |
| 5 | R (Response) |
| 6 | X (0 cleared and ignored) |
| 7 | X (0 cleared and ignored) |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| (Payload) | |||||||||||||||||||||||||||||||
| 표기법(Notation) | 값 | 의미 |
| - | 0 | No Next Payload |
| SA | 33 | Security Association |
| KE | 34 | Key Exchange |
| IDi | 35 | Identification - Initiator |
| IDr | 36 | Identification - Responder |
| CERT | 37 | Certificate |
| CERTREQ | 38 | Certificate Request |
| AUTH | 39 | Authentication |
| Ni, Nr | 40 | Nonce |
| N | 41 | Notify |
| D | 42 | Delete |
| V | 43 | Vendor ID |
| TSi | 44 | Traffic Selector - Initiator |
| TSr | 45 | Traffic Selector - Responder |
| SK | 46 | Encrypted and Authenticated |
| CP | 47 | Configuration |
| EAP | 48 | Extensible Authentication |
RFC7296
(https://www.rfc-editor.org/rfc/rfc7296) 에 정의된 Payload Type은 0으로 설정해야 합니다.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| AF (1 bit) | Attribute Type (15 bits) | AF=0 ? Attibute Length (2 octets) AF=1 ? Attribute Value (2 octets) | |||||||||||||||||||||||||||||
| AF=0 ? Attibute Value (Variable size: Attibute Length) AF=1 ? Not Transmitted | |||||||||||||||||||||||||||||||
SA Payload
|
+--- Proposal #1 ( Proto ID = ESP(3), SPI size = 4,
| | 7 transforms, SPI = 0x052357bb )
| |
| +-- Transform ENCR ( Name = ENCR_AES_CBC )
| | +-- Attribute ( Key Length = 128 )
| |
| +-- Transform ENCR ( Name = ENCR_AES_CBC )
| | +-- Attribute ( Key Length = 192 )
| |
| +-- Transform ENCR ( Name = ENCR_AES_CBC )
| | +-- Attribute ( Key Length = 256 )
| |
| +-- Transform INTEG ( Name = AUTH_HMAC_SHA1_96 )
| +-- Transform INTEG ( Name = AUTH_AES_XCBC_96 )
| +-- Transform ESN ( Name = ESNs )
| +-- Transform ESN ( Name = No ESNs )
|
+--- Proposal #2 ( Proto ID = ESP(3), SPI size = 4,
| 4 transforms, SPI = 0x35a1d6f2 )
|
+-- Transform ENCR ( Name = AES-GCM with a 8 octet ICV )
| +-- Attribute ( Key Length = 128 )
|
+-- Transform ENCR ( Name = AES-GCM with a 8 octet ICV )
| +-- Attribute ( Key Length = 256 )
|
+-- Transform ESN ( Name = ESNs )
+-- Transform ESN ( Name = No ESNs )
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Last Substruc (1 octet) | RESERVED (1 octet) | Proposal Length (2 octets) | |||||||||||||||||||||||||||||
| Proposal Num (1 octet) | Protocol ID (1 octet) | SPI Size (1 octet) | Num Transforms (1 octet) | ||||||||||||||||||||||||||||
| SPI (variable) | |||||||||||||||||||||||||||||||
| <Transforms> (variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Last Substruc (1 octet) | RESERVED (1 octet) | Transform Length (2 octets) | |||||||||||||||||||||||||||||
| Transform Type (1 octet) | RESERVED (1 octet) | Transform ID (2 octets) | |||||||||||||||||||||||||||||
| Transform Attributes (variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| Diffie-Hellman Group Num (2 octets) | RESERVED (2 octets) | ||||||||||||||||||||||||||||||
| Key Exchange Data (variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| ID Type (1 octet) | RESERVED (3 octets) | ||||||||||||||||||||||||||||||
| Identification Data (variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| Cert Encoding (1 octet) | Certificate Data (variable) | ||||||||||||||||||||||||||||||
| Certificate Data (...) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| Cert Encoding (1 octet) | Certification Authority (variable) | ||||||||||||||||||||||||||||||
| Certification Authority (...) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| Auth Method (1 octet) | RESERVED (3 octets) | ||||||||||||||||||||||||||||||
| Authentication Data (variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| Nonce Data (variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| Protocol ID (1 octet) | SPI Size (1 octet) | Notify Message Type (2 octets) | |||||||||||||||||||||||||||||
| Security Parameter Index (SPI, variable) | |||||||||||||||||||||||||||||||
| Notification Data (variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| Protocol ID (1 octet) | SPI Size (1 octet) | Num of SPIs (2 octets) | |||||||||||||||||||||||||||||
| Security Parameter Index(es) (SPI, variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| Vendor ID (VID, variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| Number of TSs (1 octet) | RESERVED (3 octets) | ||||||||||||||||||||||||||||||
| <Traffic Selectors> (variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| Initialization Vector (length is block size for encryption algorithm) | |||||||||||||||||||||||||||||||
| Encrypted IKE Payloads (variable) | |||||||||||||||||||||||||||||||
| Padding (0-255 octets) | Pad Length (1 octet) | ||||||||||||||||||||||||||||||
| Integrity Checksum Data (variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| CFG Type (1 octet) | RESERVED (3 octets) | ||||||||||||||||||||||||||||||
| Configuration Attributes (variable) | |||||||||||||||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Next Payload (1 octet) | Critical (1 bit) | RESERVED (7 bits) | Payload Length (2 octets) | ||||||||||||||||||||||||||||
| EAP Message (variable) | |||||||||||||||||||||||||||||||
RFC4303 - IP Encapsulating Security Payload
(https://www.rfc-editor.org/rfc/rfc4303))| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Security Parameters Index (SPI, 4 octets) | |||||||||||||||||||||||||||||||
| Sequence Number (4 octets) | |||||||||||||||||||||||||||||||
| Payload Data (variable) | |||||||||||||||||||||||||||||||
| Padding (0-255 bytes) | Pad Length | Next Header | |||||||||||||||||||||||||||||
| Authentication Data (variable) | |||||||||||||||||||||||||||||||
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Security Parameters Index (SPI) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Data (variable) |
~ ~
| |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Padding (0-255 bytes) |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Pad Length | Next Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication Data (variable) |
~ ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
=> 입력 key, message, hash function, block size, output(digest) size 를 사용하여 구함.
function hmac is
input:
key: Bytes // Array of bytes
message: Bytes // Array of bytes to be hashed
hash: Function // The hash function to use (e.g. SHA-1)
blockSize: Integer // The block size of the hash function (e.g. 64 bytes for SHA-1)
outputSize: Integer // The output size of the hash function (e.g. 20 bytes for SHA-1)
// Keys longer than blockSize are shortened by hashing them
if (length(key) > blockSize) then
key ← hash(key) // key is outputSize bytes long
// Keys shorter than blockSize are padded to blockSize by padding with zeros on the right
if (length(key) < blockSize) then
key ← Pad(key, blockSize) // Pad key with zeros to make it blockSize bytes long
o_key_pad ← key xor [0x5c * blockSize] // Outer padded key
i_key_pad ← key xor [0x36 * blockSize] // Inner padded key
return hash(o_key_pad ∥ hash(i_key_pad ∥ message))
{NewIP-Header:20bytes} + AssociationData({ESP-Header:8bytes} + If-ESN[{ESN-SeqHi:4bytes}]) + {IV:16bytes} + CBC_Encrypt({OriginIP-Header:20bytes}+{IP-Payload:16bytes}+{Pad:10bytes}+{PadLen:1byte}+{NextHeader:1byte}) + {ESP-Tailer:12bytes}
ESP-Tailer 에는 ESP-Header 부터 ESP-Tailer 직전까지를 HMAC-SHA1 계산하여 결과를 Auth trunc size 만큼 잘라서 붙입니다.
RFC4305 - Cryptographic Algorithm Implementation Requirements for Encapsulating Security Payload (ESP) and Authentication Header (AH)
(https://tools.ietf.org/html/rfc4305)Requirement Encryption Algorithm (notes) ----------- -------------------- MUST NULL (1) MUST- TripleDES-CBC [RFC2451] SHOULD+ AES-CBC with 128-bit keys [RFC3602] SHOULD AES-CTR [RFC3686] SHOULD NOT DES-CBC [RFC2405] (3) Requirement Authentication Algorithm (notes) ----------- ------------------------ MUST HMAC-SHA1-96 [RFC2404] MUST NULL (1) SHOULD+ AES-XCBC-MAC-96 [RFC3566] MAY HMAC-MD5-96 [RFC2403] (2)
RFC4302 - IP Authentication Header
(https://tools.ietf.org/html/rfc4302))
RFC3173 - IP Payload Compression Protocol
(https://tools.ietf.org/html/rfc3173))


VPN(Virtual Private Network)
(https://en.wikipedia.org/wiki/Virtual_private_network)
SDNS(Software Defined Network Service)
(https://en.wikipedia.org/wiki/Software-defined_networking)
IANA(Internet Assigned Numbers Authority, 인터넷 할당 번호 관리기관)
(https://en.wikipedia.org/wiki/Internet_Assigned_Numbers_Authority)
ICANN(Internet Corporation for Assigned Names and Numbers, 국제인터넷주소관리기구)
(https://en.wikipedia.org/wiki/ICANN)
MAC Address(Media Access Control Address)
(https://en.wikipedia.org/wiki/MAC_address)
MTU(Maximum Transmission Unit)
(https://en.wikipedia.org/wiki/Maximum_transmission_unit)
MSS(Maximum segment size, MSS = "MTU Size" - "IP Header Size" - "TCP Header Size")
(https://en.wikipedia.org/wiki/Maximum_segment_size)
IP(Internet Protocol)
(https://en.wikipedia.org/wiki/Internet_Protocol)
UDP(User Datagram Protocol)
(https://en.wikipedia.org/wiki/User_Datagram_Protocol)
TCP(Transmission Control Protocol)
(https://en.wikipedia.org/wiki/Transmission_Control_Protocol)
IPSec(IP Security, Internet Protocol Security)
(https://en.wikipedia.org/wiki/IPsec)
SSL, TLS(Secure Socket Layer, Transport Layer Security)
(https://en.wikipedia.org/wiki/Transport_Layer_Security)
PPTP(Point-to-Point Tunneling Protocol)
(https://en.wikipedia.org/wiki/Point-to-Point_Tunneling_Protocol)
PPP(Point-to-Point Protocol)
(https://en.wikipedia.org/wiki/Point-to-Point_Protocol)
GSS-API(Generic Security Services Application Program Interface)
(https://en.wikipedia.org/wiki/Generic_Security_Services_Application_Program_Interface)
PAP(Password Authentication Protocol)
(https://en.wikipedia.org/wiki/Password_Authentication_Protocol)
CHAP(Challenge-Handshake Authentication Protocol)
(https://en.wikipedia.org/wiki/Challenge-Handshake_Authentication_Protocol)
PFS(Perfect Forward Secrecy)
(https://en.wikipedia.org/wiki/Forward_secrecy)
QoS(Quality of Services)
(https://en.wikipedia.org/wiki/Quality_of_service)
SSH(Secure shell)
(https://en.wikipedia.org/wiki/Secure_Shell)
L2TP(Layer 2 Tunneling Protocol)
(https://en.wikipedia.org/wiki/Layer_2_Tunneling_Protocol)
L2F(Layer 2 Forwarding)
(https://en.wikipedia.org/wiki/Layer_2_Forwarding_Protocol)
IKE(Internet Key Exchange)
(https://en.wikipedia.org/wiki/Internet_Key_Exchange)
ISAKMP(Internet Security Association and Key Management Protocol)
(https://en.wikipedia.org/wiki/Internet_Security_Association_and_Key_Management_Protocol)
AH(Authentication Header)
(https://en.wikipedia.org/wiki/IPsec#Authentication_Header)
ESP(Encapsulation Security Protocol)
(https://en.wikipedia.org/wiki/IPsec#Encapsulating_Security_Payload)
DR(Disaster recovery)
(https://en.wikipedia.org/wiki/Disaster_recovery)
HAIPE(High Assurance Internet Protocol Encryptor)
(https://en.wikipedia.org/wiki/High_Assurance_Internet_Protocol_Encryptor)
VTP(VLAN Trunking Protocol)
(https://en.wikipedia.org/wiki/VLAN_Trunking_Protocol)
SPI(Security Parameter Index)
(https://en.wikipedia.org/wiki/Security_Parameter_Index)
GDOI(Group Domain of Interpretation)
(https://en.wikipedia.org/wiki/Group_Domain_of_Interpretation)
SA(Security Association)
(https://en.wikipedia.org/wiki/Security_association)
PSK(Pre-Shared Key)
(https://en.wikipedia.org/wiki/Pre-shared_key)
RSA (cryptosystem, 공개키 암호화 방식의 약칭, 이 암호화 방식의 개발자인 당시 MIT 재학생 Rivest-Shamir-Adelman 3명의 머릿글자)
(https://en.wikipedia.org/wiki/RSA_(cryptosystem))
ASN.1(Abstract Syntax Notation One)
(https://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One)
MPLS(Multiprotocol Label Switching)
(https://en.wikipedia.org/wiki/Multiprotocol_Label_Switching)
HMAC(Hash-based message authentication code, 원문에 양단만이 이미 알고 있는 key를 추가해서 Hash를 산출하여 양단 사이의 전송구간에서 Hash를 변조 하더라도 변조유무를 확인이 가능하게 하는 방법)
(https://en.wikipedia.org/wiki/Hash-based_message_authentication_code)
APT(Advanced Persistent Threat)
(https://en.wikipedia.org/wiki/Advanced_persistent_threat)
SNAT(Source Network Address Translation, Normal NAT)
(https://en.wikipedia.org/wiki/Network_address_translation#SNAT)
DNAT(Destination Network Address Translation, Reverse NAT)
(https://en.wikipedia.org/wiki/Network_address_translation#DNAT)
NAT-T(NAT traversal)
(https://en.wikipedia.org/wiki/NAT_traversal)
CIDR(Classless Inter-Domain Routing)
(https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
Personal Area Network
(https://en.wikipedia.org/wiki/Personal_area_network)" or "Protected Area Network" or "Private Area Network" (풀어쓸때 의미가 다소 다르나 일반적으로 "
Personal Area Network
(https://en.wikipedia.org/wiki/Personal_area_network)"을 지칭)
SSO(Single Sign-On)
(https://en.wikipedia.org/wiki/Single_sign-on)
ARP(Address Resolution Protocol)
(https://en.wikipedia.org/wiki/Address_Resolution_Protocol)
RARP(Reverse Address Resolution Protocol)
(https://en.wikipedia.org/wiki/Reverse_Address_Resolution_Protocol)
Virtual Router Redundancy Protocol
(https://en.wikipedia.org/wiki/Virtual_Router_Redundancy_Protocol)
NDP(Neighbor Discovery Protocol)
(https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol)
MLD(Multicast Listener Discovery)
(https://en.wikipedia.org/wiki/Multicast_Listener_Discovery)
FQDN(Fully Qualified Domain Name)
(https://en.wikipedia.org/wiki/Fully_qualified_domain_name)
Symmetric Encryption(대칭형 암호화, 양단의 Key 값이 같은 암호화를 지칭)
(https://en.wikipedia.org/wiki/Symmetric-key_algorithm)
Public key cryptography(asymmetric cryptography, 공개키 암호방식 또는 비대칭형 암호방식, 양단의 Key가 서로 다른 암호화 방법)
(https://en.wikipedia.org/wiki/Public-key_cryptography)
DH(Diffie–Hellman) key exchange(디피-헬만 키 교환, 암호 키를 교환하는 하나의 방법, 두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 하는 방법)
(https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange)
GRE(Generic Routing Encapsulation)
(https://en.wikipedia.org/wiki/Generic_Routing_Encapsulation)
Dynamic Multipoint VPN (DMVPN)
(https://en.wikipedia.org/wiki/Dynamic_Multipoint_Virtual_Private_Network)
UTM(Unified Threat Management, 통합 위협관리)
(https://en.wikipedia.org/wiki/Unified_threat_management)
RFC822 - STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
(https://tools.ietf.org/html/rfc822)
RFC826 - An Ethernet Address Resolution Protocol
(https://tools.ietf.org/html/rfc826)
RFC903 - A Reverse Address Resolution Protocol
(https://tools.ietf.org/html/rfc903)
RFC1035 - DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION
(https://tools.ietf.org/html/rfc1035)
RFC1123 - Requirements for Internet Hosts -- Application and Support
(https://tools.ietf.org/html/rfc1123)
RFC1519 - Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy
(https://tools.ietf.org/html/rfc1519)
RFC1521 - MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies
(https://tools.ietf.org/html/rfc1521)
RFC1701 - Generic Routing Encapsulation (GRE)
(https://tools.ietf.org/html/rfc1701)
RFC1702 - Generic Routing Encapsulation over IPv4 networks
(https://tools.ietf.org/html/rfc1702)
RFC1825 - Security Architecture for the Internet Protocol
(https://tools.ietf.org/html/rfc1825)
RFC1826 - IP Authentication Header
(https://tools.ietf.org/html/rfc1826)
RFC1827 - IP Encapsulating Security Payload (ESP)
(https://tools.ietf.org/html/rfc1827)
RFC1828 - IP Authentication using Keyed MD5
(https://tools.ietf.org/html/rfc1828)
RFC1829 - The ESP DES-CBC Transform
(https://tools.ietf.org/html/rfc1829)
RFC1851 - The ESP Triple DES Transform
(https://tools.ietf.org/html/rfc1851)
RFC1918 - Address Allocation for Private Internets
(https://tools.ietf.org/html/rfc1918)
RFC1950 - ZLIB Compressed Data Format Specification version 3.3
(https://tools.ietf.org/html/rfc1950)
RFC1951 - DEFLATE Compressed Data Format Specification version 1.3
(https://tools.ietf.org/html/rfc1951)
RFC1952 - GZIP file format specification version 4.3
(https://tools.ietf.org/html/rfc1952)
RFC2045 - Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
(https://tools.ietf.org/html/rfc2045)
RFC2047 - MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text
(https://tools.ietf.org/html/rfc2047)
RFC2085 - HMAC-MD5 IP Authentication with Replay Prevention
(https://tools.ietf.org/html/rfc2085)
RFC2104 - HMAC: Keyed-Hashing for Message Authentication
(https://tools.ietf.org/html/rfc2104)
RFC2183 - Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field
(https://tools.ietf.org/html/rfc2183)
RFC2313 - PKCS #1: RSA Encryption Version 1.5
(https://tools.ietf.org/html/rfc2313)
RFC2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
(https://tools.ietf.org/html/rfc2315)
RFC2341 - Cisco Layer Two Forwarding (Protocol) "L2F"
(https://tools.ietf.org/html/rfc2341)
RFC2390 - Inverse Address Resolution Protocol
(https://tools.ietf.org/html/rfc2390)
RFC2401 - Security Architecture for the Internet Protocol
(https://tools.ietf.org/html/rfc2401)
RFC2402 - IP Authentication Header
(https://tools.ietf.org/html/rfc2402)
RFC2403 - The Use of HMAC-MD5-96 within ESP and AH
(https://tools.ietf.org/html/rfc2403)
RFC2404 - The Use of HMAC-SHA-1-96 within ESP and AH
(https://tools.ietf.org/html/rfc2404)
RFC2405 - The ESP DES-CBC Cipher Algorithm With Explicit IV
(https://tools.ietf.org/html/rfc2405)
RFC2406 - IP Encapsulating Security Payload (ESP)
(https://tools.ietf.org/html/rfc2406)
RFC2407 - The Internet IP Security Domain of Interpretation for ISAKMP
(https://tools.ietf.org/html/rfc2407)
RFC2408 - Internet Security Association and Key Management Protocol (ISAKMP)
(https://tools.ietf.org/html/rfc2408)
RFC2409 - The Internet Key Exchange (IKE)
(https://tools.ietf.org/html/rfc2409)
RFC2410 - The NULL Encryption Algorithm and Its Use With IPsec
(https://tools.ietf.org/html/rfc2410)
RFC2411 - IP Security Document Roadmap
(https://tools.ietf.org/html/rfc2411)
RFC2412 - The OAKLEY Key Determination Protocol
(https://tools.ietf.org/html/rfc2412)
RFC2437 - PKCS #1: RSA Cryptography Specifications Version 2.0
(https://tools.ietf.org/html/rfc2437)
RFC2451 - The ESP CBC-Mode Cipher Algorithms
(https://tools.ietf.org/html/rfc2451)
RFC2459 - Internet X.509 Public Key Infrastructure Certificate and CRL Profile
(https://tools.ietf.org/html/rfc2459)
RFC2474 - Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers
(https://tools.ietf.org/html/rfc2474)
RFC2475 - An Architecture for Differentiated Services
(https://tools.ietf.org/html/rfc2475)
RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1
(https://tools.ietf.org/html/rfc2616)
RFC2617 - HTTP Authentication: Basic and Digest Access Authentication
(https://tools.ietf.org/html/rfc2617)
RFC2631 - Diffie-Hellman Key Agreement Method
(https://tools.ietf.org/html/rfc2631)
RFC2637 - Point-to-Point Tunneling Protocol (PPTP)
(https://tools.ietf.org/html/rfc2637)
RFC2661 - Layer Two Tunneling Protocol "L2TP"
(https://tools.ietf.org/html/rfc2661)
RFC2764 - A Framework for IP Based Virtual Private Networks
(https://tools.ietf.org/html/rfc2764)
RFC2774 - An HTTP Extension Framework
(https://tools.ietf.org/html/rfc2774)
RFC2782 - A DNS RR for specifying the location of services (DNS SRV)
(https://tools.ietf.org/html/rfc2782)
RFC2784 - Generic Routing Encapsulation (GRE)
(https://tools.ietf.org/html/rfc2784)
RFC2821 - Simple Mail Transfer Protocol
(https://tools.ietf.org/html/rfc2821)
RFC2822 - Internet Message Format
(https://tools.ietf.org/html/rfc2822)
RFC2857 - The Use of HMAC-RIPEMD-160-96 within ESP and AH
(https://tools.ietf.org/html/rfc2857)
RFC2890 - Key and Sequence Number Extensions to GRE
(https://tools.ietf.org/html/rfc2890)
RFC2898 - PKCS #5: Password-Based Cryptography Specification Version 2.0
(https://tools.ietf.org/html/rfc2898)
RFC2927 - A Core MPLS IP VPN Architecture
(https://tools.ietf.org/html/rfc2917)
RFC2986 - PKCS #10: Certification Request Syntax Specification Version 1.7
(https://tools.ietf.org/html/rfc2986)
RFC3173 - IP Payload Compression Protocol (IPComp)
(https://tools.ietf.org/html/rfc3173)
RFC3394 - Advanced Encryption Standard (AES) Key Wrap Algorithm
(https://tools.ietf.org/html/rfc3394)
RFC3447 - Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1
(https://tools.ietf.org/html/rfc3447)
RFC3526 - More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)
(https://tools.ietf.org/html/rfc3526)
RFC3547 - The Group Domain of Interpretation
(https://tools.ietf.org/html/rfc3547)
RFC3548 - The Base16, Base32, and Base64 Data Encodings
(https://tools.ietf.org/html/rfc3548)
RFC3554 - On the Use of Stream Control Transmission Protocol (SCTP) with IPsec
(https://tools.ietf.org/html/rfc3554)
RFC3566 - The AES-XCBC-MAC-96 Algorithm and Its Use With IPsec
(https://tools.ietf.org/html/rfc3566)
RFC3602 - The AES-CBC Cipher Algorithm and Its Use with IPsec
(https://tools.ietf.org/html/rfc3602)
RFC3664 - The AES-XCBC-PRF-128 Algorithm for the Internet Key Exchange Protocol (IKE)
(https://tools.ietf.org/html/rfc3664)
RFC3686 - Using Advanced Encryption Standard (AES) Counter Mode With IPsec Encapsulating Security Payload (ESP)
(https://tools.ietf.org/html/rfc3686)
RFC3696 - Application Techniques for Checking and Transformation of Names
(https://tools.ietf.org/html/rfc3696)
RFC3706 - A Traffic-Based Method of Detecting Dead Internet Key Exchange (IKE) Peers
(https://tools.ietf.org/html/rfc3706)
RFC3715 - IPsec-Network Address Translation (NAT) Compatibility Requirements
(https://tools.ietf.org/html/rfc3715)
RFC3768 - Virtual Router Redundancy Protocol (VRRP)
(https://tools.ietf.org/html/rfc3768)
RFC3875 - The Common Gateway Interface (CGI) Version 1.1
(https://tools.ietf.org/html/rfc3875)
RFC3947 - Negotiation of NAT-Traversal in the IKE
(https://tools.ietf.org/html/rfc3947)
RFC3948 - UDP Encapsulation of IPsec ESP Packets
(https://tools.ietf.org/html/rfc3948)
RFC3986 - Uniform Resource Identifier (URI): Generic Syntax
(https://tools.ietf.org/html/rfc3986)
RFC4009 - The SEED Encryption Algorithm
(https://tools.ietf.org/html/rfc4009)
RFC4026 - Provider Provisioned Virtual Private Network (VPN) Terminology
(https://tools.ietf.org/html/rfc4026)
RFC4106 - The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP)
(https://tools.ietf.org/html/rfc4106)
RFC4162 - Addition of SEED Cipher Suites to Transport Layer Security (TLS)
(https://tools.ietf.org/html/rfc4162)
RFC4196 - The SEED Cipher Algorithm and Its Use with IPsec
(https://tools.ietf.org/html/rfc4196)
RFC4269 - The SEED Encryption Algorithm
(https://tools.ietf.org/html/rfc4269)
RFC4301 - Security Architecture for the Internet Protocol
(https://tools.ietf.org/html/rfc4301)
RFC4302 - IP Authentication Header
(https://tools.ietf.org/html/rfc4302)
RFC4303 - IP Encapsulating Security Payload (ESP)
(https://tools.ietf.org/html/rfc4303)
RFC4304 - Extended Sequence Number (ESN) Addendum to IPsec Domain of Interpretation (DOI) for Internet Security Association and Key Management Protocol (ISAKMP)
(https://tools.ietf.org/html/rfc4304)
RFC4305 - Cryptographic Algorithm Implementation Requirements for Encapsulating Security Payload (ESP) and Authentication Header (AH)
(https://tools.ietf.org/html/rfc4305)
RFC4306 - Internet Key Exchange (IKEv2) Protocol
(https://tools.ietf.org/html/rfc4306)
RFC4307 - Cryptographic Algorithms for Use in the Internet Key Exchange Version 2 (IKEv2)
(https://tools.ietf.org/html/rfc4307)
RFC4308 - Cryptographic Suites for IPsec
(https://tools.ietf.org/html/rfc4308)
RFC4309 - Using Advanced Encryption Standard (AES) CCM Mode with IPsec Encapsulating Security Payload (ESP)
(https://tools.ietf.org/html/rfc4309)
RFC4346 - The Transport Layer Security (TLS) Protocol Version 1.1
(https://tools.ietf.org/html/rfc4346)
RFC4364 - BGP/MPLS IP Virtual Private Networks (VPNs)
(https://tools.ietf.org/html/rfc4364)
RFC4514 - Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names
(https://tools.ietf.org/html/rfc4514)
RFC4555 - IKEv2 Mobility and Multihoming Protocol (MOBIKE)
(https://tools.ietf.org/html/rfc4555)
RFC4703 - Resolution of Fully Qualified Domain Name (FQDN) Conflicts among Dynamic Host Configuration Protocol (DHCP) Clients
(https://tools.ietf.org/html/rfc4703)
RFC4835 - Cryptographic Algorithm Implementation Requirements for Encapsulating Security Payload (ESP) and Authentication Header (AH)
(https://tools.ietf.org/html/rfc4835)
RFC5202 - Using the Encapsulating Security Payload (ESP) Transport Format with the Host Identity Protocol (HIP)
(https://tools.ietf.org/html/rfc5202)
RFC5208 - Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification Version 1.2
(https://tools.ietf.org/html/rfc5208)
RFC5227 - IPv4 Address Conflict Detection
(https://tools.ietf.org/html/rfc5227)
RFC5246 - The Transport Layer Security (TLS) Protocol Version 1.2
(https://tools.ietf.org/html/rfc5246)
RFC5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
(https://tools.ietf.org/html/rfc5280)
RFC5335 - Internationalized Email Headers
(https://tools.ietf.org/html/rfc5335)
RFC5389 - Session Traversal Utilities for NAT (STUN)
(https://tools.ietf.org/html/rfc5389)
RFC5890 - Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework
(https://tools.ietf.org/html/rfc5890)
RFC5996 - Internet Key Exchange Protocol Version 2 (IKEv2)
(https://tools.ietf.org/html/rfc5996)
RFC6071 - IP Security (IPsec) and Internet Key Exchange (IKE) Document Roadmap
(https://tools.ietf.org/html/rfc6071)
RFC6101 - The Secure Sockets Layer (SSL) Protocol Version 3.0
(https://tools.ietf.org/html/rfc6101)
RFC6407 - The Group Domain of Interpretation
(https://tools.ietf.org/html/rfc6407)
RFC6434 - IPv6 Node Requirements
(https://tools.ietf.org/html/rfc6434)
RFC7296 - Internet Key Exchange Protocol Version 2 (IKEv2)
(https://tools.ietf.org/html/rfc7296)
RFC7383 - Internet Key Exchange Protocol Version 2 (IKEv2) Message Fragmentation
(https://tools.ietf.org/html/rfc7383)
RFC7402 - Using the Encapsulating Security Payload (ESP) Transport Format with the Host Identity Protocol (HIP)
(https://tools.ietf.org/html/rfc7402)
RFC8019 - Protecting Internet Key Exchange Protocol Version 2 (IKEv2) Implementations from Distributed Denial-of-Service Attacks
(https://tools.ietf.org/html/rfc8019)
RFC9370 - Multiple Key Exchanges in the Internet Key Exchange Protocol Version 2 (IKEv2)
(https://tools.ietf.org/html/rfc9370)
Post-Quantum Cryptography for Engineers draft-ar-pquip-pqc-engineers-03
(https://datatracker.ietf.org/doc/draft-ar-pquip-pqc-engineers/)
Service Name and Transport Protocol Port Number Registry
(https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml)
AES, Advanced Encryption Standard
(http://www.networksorcery.com/enp/data/aes.htm)
AES homepage
(http://csrc.nist.gov/archive/aes/)
wikipedia - Advanced Encryption Standard (AES)
(https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
KISA - SEED 알고리즘
(https://seed.kisa.or.kr/iwt/ko/sup/EgovSeedInfo.do)
wikipedia - Virtual private network
(https://en.wikipedia.org/wiki/Virtual_private_network)
IANA - Assigned Internet Protocol Numbers
(http://www.iana.org/assignments/protocol-numbers)
IANA - "Magic Numbers" for ISAKMP Protocol
(https://www.iana.org/assignments/isakmp-registry/isakmp-registry.xhtml)
IANA - IPSEC ESP Transform Identifiers
(https://www.iana.org/assignments/isakmp-registry/isakmp-registry.xhtml#isakmp-registry-9)
IANA - Internet Key Exchange (IKE) Attributes
(https://www.iana.org/assignments/ipsec-registry/ipsec-registry.xhtml)
IANA - Internet Key Exchange Version 2 (IKEv2) Parameters
(https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml)
http://www.networksorcery.com/enp/Protocol/isakmp.htm
http://image.ahnlab.com/file_upload/tech/VPN(2)_AH.pdf
ccie-study - IPSec
(https://ccie-study.wikispaces.com/IPSec)
Cisco Support Community - Main Mode Vs Aggressive Mode
(https://supportforums.cisco.com/document/31741/main-mode-vs-aggressive-mode)
Cisco Troubleshooting TechNotes - IKEv2 Packet Exchange and Protocol Level Debugging
(http://www.cisco.com/c/en/us/support/docs/security-vpn/ipsec-negotiation-ike-protocols/115936-understanding-ikev2-packet-exch-debug.html)
생활코딩(egoing) - HTTPS와 SSL 인증서
(https://opentutorials.org/course/228/4894)
http://www.enclue.com/library/protocol_ipsec.html
https://wiki.kldp.org/wiki.php/DocbookSgml/SSL-Certificates-HOWTO
http://www.serverbank.co.kr/file/img/980368.pdf
http://m.blog.naver.com/ipvpn/80051783135
Xeno`s Study - ipSec 사용하기 - strongswan 사용법 / debuging
(http://xenostudy.tistory.com/470)
https://wiki.strongswan.org/projects/strongswan
http://dacs-web.ewi.utwente.nl/~pras/netsec/3-ipsec.pdf
https://en.wikipedia.org/wiki/RSA_(cryptosystem)
https://en.wikipedia.org/wiki/Hash-based_message_authentication_code
An Illustrated Guide to IPsec
(http://www.unixwiz.net/techtips/iguide-ipsec.html)
Connecting AWS Virtual Private Clouds using VPN 'Strongswan'
(http://www.cakesolutions.net/teamblogs/connecting-aws-virtual-private-clouds-using-vpn-strongswan)
VRRP (Virtual Router Redundancy Protocol) 상세 동작 원리 - Netmanias
(http://www.netmanias.com/ko/?m=view&id=techdocs&no=5049)
VRRP (Virtual Router Redundancy Protocol) - 늑대와 향신료 blog
(http://spiceandwolf.tistory.com/54)
터널링 / VPN / IPsec - jujinho218's blog
(http://m.blog.naver.com/jujinho218/220678922858)
What is Advanced Encryption Standards (AES) Encryption? - Boni Satani
(https://thebestvpn.com/aes-encryption/)
Beginners Guide: What is a VPN?
(https://www.cloudwards.net/what-is-a-vpn/)
https://www.cloudwards.net/best-vpn/
VPN 포로토콜 비교 - PPTP 대 L2TP 대 OpenVPN ™ 대 Chameleon ™
(https://kr.giganews.com/vyprvpn/compare-vpn-protocols.html)
https://security.stackexchange.com/questions/76444/what-are-the-practical-risks-of-using-ike-aggressive-mode-with-a-pre-shared-key
CRL(Certificate Revocation Lists) 은 무엇인가? (완벽정리)
(https://m.blog.naver.com/PostView.nhn?blogId=onestone73&logNo=110106361719&proxyReferer=https%3A%2F%2Fwww.google.com%2F)
Forwarding Client Traffic sysctl net.ipv4.ip_forward=1 sysctl net.ipv6.conf.all.forwarding=1 Hosts on the Internet iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -o eth0 -j MASQUERADE General NAT problems iptables -t nat -I POSTROUTING -m policy --pol ipsec --dir out -j ACCEPT MTU/MSS issues iptables -t mangle -A FORWARD -m policy --pol ipsec --dir in -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360 iptables -t mangle -A FORWARD -m policy --pol ipsec --dir out -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360
https://www.juniper.net/documentation/us/en/software/junos/vpn-ipsec/topics/topic-map/security-ipsecvpns-for-ikev2.html
Understanding the details of SPI in IKE and IPsec
(https://security.stackexchange.com/questions/56434/understanding-the-details-of-spi-in-ike-and-ipsec)
https://i5i5.tistory.com/928
(RFC7296, IKEv2 IPsec SPI와 IKE SPI)
Initiator Responder
SAD_GETSPI (inbound SA) -----------> {select algorithms and derive keys}
SAD_ADD (outbound SA)
SAD_GETSPI (inbound SA)
{derive keys} <----------- SAD_UPDATE (inbound SA)
SAD_UPDATE (inbound SA)
SAD_ADD (outbound SA)
AEAD Cipher(CCM, GCM)
(https://blog.naver.com/vjhh0712v/221533578238)
Authenticated Encryption with Associated Data (AEAD) 의 약자입니다. 즉, Associated Data 관련 데이터와 인증된 암호화 라는 뜻인데, ... AE는 인증 암호화(암호화 + 인증)을 의미 ... AD를 일반적으로 AAD(Addtional Associated Data)라고도 부릅니다. ... GCM mode는 GF(Galois Field) 상에서 정의된 GHASH 함수를 이용하여 인증을 보장합니다. CCM mode와 비교했을때 데이터 암호화는 CTR mode를 사용하는 것은 같지만 CBC-MAC 대신 GMAC이라고 불리는 연산을 사용합니다. ... CCM은 Decryption 후에 MAC 계산을 하는 번거로움이 있었지만 GCM은 그러지 않아도 된다는 것이지요~ ...
Linux Kernel Crypto API
(https://www.kernel.org/doc/html/latest/crypto/)
Kernel Crypto API Architecture
(https://www.kernel.org/doc/html/latest/crypto/architecture.html)
kernel crypto API | IPSEC Layer
|
+-----------+ |
| | (1)
| aead | <----------------------------------- esp_output
| (seqiv) | ---+
+-----------+ |
| (2)
+-----------+ |
| | <--+ (2)
| aead | <----------------------------------- esp_input
| (gcm) | ------------+
+-----------+ |
| (3) | (5)
v v
+-----------+ +-----------+
| | | |
| skcipher | | ahash |
| (ctr) | ---+ | (ghash) |
+-----------+ | +-----------+
|
+-----------+ | (4)
| | <--+
| cipher |
| (aes) |
+-----------+
kernel crypto API | Caller
|
+-----------+ (1) |
| | <------------------ some_function
| ahash |
| (hmac) | ---+
+-----------+ |
| (2)
+-----------+ |
| | <--+
| shash |
| (sha256) |
+-----------+
Cryptography(암호학) - 4주차-Message Authentication Codes
(https://velog.io/@y3yun/Cryptography%EC%95%94%ED%98%B8%ED%95%99-4%EC%A3%BC%EC%B0%A8-Message-Authentication-Codes)
Authenticated encryption - wikipedia
(https://en.wikipedia.org/wiki/Authenticated_encryption)
OpenVPN
(https://openvpn.net/)
Openswan(IPsec implementation for Linux)
(https://www.openswan.org/)
strongSwan(OpenSource IPsec implementation.)
(https://www.strongswan.org/)
strongSwan Source Code Documentation (doxygen)
(https://www.strongswan.org/apidoc/)
strongSwan에서 지원하는 crypto
(https://wiki.strongswan.org/projects/strongswan/wiki/PublicKeySpeed)
strongswan doxygen browser
(https://fossies.org/dox/strongswan-5.5.1/dir_68267d1309a1af8e8297ef4c3efbcdba.html)
strongSwan 4.2 - Installation
(https://www.strongswan.org/docs/install42.htm)
Route-based VPN - strongSwan
(https://docs.strongswan.org/docs/5.9/features/routeBasedVpn.html)
GMP(The GNU Multiple Precision Arithmetic Library)
(https://gmplib.org/)
IPsec-Tools
(http://ipsec-tools.sourceforge.net/)
Keepalived (routing software)
(http://www.keepalived.org/)
https://github.com/shadowsocks/shadowsocks-libev
https://www.stunnel.org/
도서정보 관련링크
(http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788909098830&orderClick=LAG&Kc=))
도서정보 관련링크
(http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788995324325&orderClick=LAH&Kc=))
도서정보 관련링크
(http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788997030064&orderClick=LAH&Kc=))
도서정보 관련링크
(http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788960778719&orderClick=LAH&Kc=))