AVISPA란 프로토콜의 안전성을 검증하는데 쓰이는 HLPSL언어이다.
AVISPA
- Avispa는 baisc role, session role, environment role이 존재한다.
- environment role은 다른 프로그래밍 언어의 main 함수를 의미한다.
- session role은 environment에서 basic role을 불러오는데 쓰이는 함수이다.
- basic role은 실제 기능을 수행하는 함수라 보면된다.
AVISPA을 프로그래밍 하면서 주의할점
! avispa는 컴파일시 코드를 읽는 순서가 존재한다.
-
top down 형식이 아닌, down-top 형태로 읽는다. 즉, environment role이 맨아래, session role, basic role 순으로 존재해야한다.
주의! 맨 위에서부터 environment role -> session role -> basic role 순서로 짜면, session role undefined error가 나옴.
-
다음은 session role에서 인자값으로 초기값을 정의 할 경우에 해당하는 문제
-
보통 role session(A,B:agent, Ka,Kb:symmetric_key) 이런식으로 정의하는데, 이때 모든 인자의 첫 문자는 대문자 알파벳을 가져야함.
- 소문자로 시작하여 선언해봤는데, identy error
- 소문자로 시작하여 선언해봤는데, identy error
-
session role(A,B:agent)로 선언했을 시,
- played_by A에서 agent로 선언한 A를 뜻함. 즉, role session(player1, player2:agent)라고 선언하면 player_by plater1 이런식으로 선언해주어야 에러가 안난다.
- played_by A에서 agent로 선언한 A를 뜻함. 즉, role session(player1, player2:agent)라고 선언하면 player_by plater1 이런식으로 선언해주어야 에러가 안난다.
-
text 변수 선언시, 언더바(_)를 넣으면 이후에 곤란해진다.
- transition 부분에서는 언더바(_)는 암호화됨을 뜻한다.
- 변수를 읽는 과정에서 _때문에 암호되는 부분이라 처리해버리고, 그로인해 정상적인 변수명을 읽어올 수 없음
-
SND_AB(A,B,{Ni,Mi}_K)처럼, A->B로 간다는 부분에서는 쉼표(,)를 써줘야한다.
- 암호화된 부분 {Ni, Mi}에서는 점(.)을 써줘야한다.
- 암호화 부분에서 콤마를 쓰면 바로 에러로 즉결
반응형
'기타' 카테고리의 다른 글
Unresolved reference: ext (0) | 2020.04.18 |
---|---|
Cannot add task 'clean' as a task with that name already exists. (0) | 2020.04.18 |
유클리드 호제법 (0) | 2020.04.04 |
SBCS, MBCS, WBCS (0) | 2019.07.29 |
네트워크 이중화 종류 (0) | 2019.07.16 |