SE514769C2 - Methods and systems for authenticating a mobile communication device - Google Patents
Methods and systems for authenticating a mobile communication deviceInfo
- Publication number
- SE514769C2 SE514769C2 SE9902746A SE9902746A SE514769C2 SE 514769 C2 SE514769 C2 SE 514769C2 SE 9902746 A SE9902746 A SE 9902746A SE 9902746 A SE9902746 A SE 9902746A SE 514769 C2 SE514769 C2 SE 514769C2
- Authority
- SE
- Sweden
- Prior art keywords
- computer system
- codeword
- code message
- code
- computer
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall traversal, e.g. tunnelling or, creating pinholes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/58—Message adaptation for wireless communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
F*; "CT- DÉÅL- /UV Detta och andra syften uppnås genom ett sätt och ett system anordnat för utförande av följande steg: (I) - Generering av ett kodord i datorsystemet, vilket kodord sänds till anordningen. F *; "CT DÉÅL- / UV This and other objects are achieved by a method and a system arranged to perform the following steps: (I) - Generation of a codeword in the computer system, which codeword is sent to the device.
(II) - Mottagning av kodordet i anordningen.(II) - Receiving the codeword in the device.
(III) - Generering av ett kodmeddelande, i anordningen, baserat på det mottagna kodordet, varvid genereringen utförs på ett förutbestämt sätt.(III) - Generation of a code message, in the device, based on the received codeword, the generation being performed in a predetermined manner.
(IV) - Sändning av kodmeddelandet fràn anordningen till datorsystemet.(IV) - Sending the code message from the device to the computer system.
(V) - Användning av kodordet för att kontrollera kodmeddelandet, samt (VI) - Sändning av data från datorsystemet till anordningen om kodmeddelandet verifieras av datorsystemet.(V) - Use of the codeword to check the code message, and (VI) - Transmission of data from the computer system to the device if the code message is verified by the computer system.
Före steg (V) sänder datorsystemet information (t.ex. kodordet och ett "you've got mail"-meddelande) som används i autentiseringsprocessen, men anordningen har inte åtkomst till data i datorsystemet. Företrädesvis genererar datorsystemet ett slumpmässigt kodord. När datorsystemet sänder kodordet ill anordningen i steg (I) använder datorsystemet företrädesvis en förutbestämd adress för anordningen. Genereringen av kodmeddelandet i steg (III) utförs företrädesvis genom kryptering av det mottagna kodordet med användning av en unik krypteringsnyckel hos anordningen. Om kodmeddelandet verifieras, steg (VI), är anordningens adress autentiserad för datasändning.Before step (V), the computer system sends information (such as the password and an "you've got mail" message) used in the authentication process, but the device does not have access to data in the computer system. Preferably, the computer system generates a random codeword. When the computer system sends the codeword ill the device in step (I), the computer system preferably uses a predetermined address for the device. The generation of the code message in step (III) is preferably performed by encrypting the received codeword using a unique encryption key of the device. If the code message is verified, step (VI), the device address is authenticated for data transmission.
Vid en föredragen utföringsform sänder anordningen kodmeddelandet med användning av ett HTTP- (Hypertext Transfer Protocol) eller SMTP- (Simple Mail Transport Protocol) protokoll. Detta är fördelaktigt eftersom en brandvägg är konstruerad för att släppa igenom trafik med användning av sådana protokoll. Med andra ord minskas inte den genom brandväggen erhållna säkerheten. Vidare sänder datorsystemet m 514 'ïé9 J företrädesvis även data i steg (VI) till den adress från vilken anordningen sände det kodade meddelandet, varvid datorsystemet exempelvis extraherar mobilkommunikationsanordningens såndaradress och sänder data till denna adress. Denna adress kan skilja sig från den adress till vilken kodordet sändes.In a preferred embodiment, the device sends the code message using an HTTP (Hypertext Transfer Protocol) or SMTP (Simple Mail Transport Protocol) protocol. This is advantageous because a firewall is designed to let traffic through using such protocols. In other words, the security obtained through the firewall is not reduced. Furthermore, the computer system m 514 ', preferably also transmits data in step (VI) to the address from which the device sent the coded message, the computer system for example extracting the transmitter address of the mobile communication device and sending data to this address. This address may differ from the address to which the codeword was sent.
Genom användning av ett sådant sätt och system kan flera olika typer av autentiserad datasåndning uppnås. Automatiserad vidarebefordran av data, såsom elektronisk post (e-post), underlättad inloggning på ett säkert nätverk, såsom en bank och många andra applikationer där autentiserad sändning erfordras eller är önskvärd, kan nämnas som exempel.By using such a method and system, several different types of authenticated data transmission can be achieved. Automated transmission of data, such as electronic mail (e-mail), facilitated login to a secure network, such as a bank and many other applications where authenticated transmission is required or desired, can be mentioned as examples.
Användningen av det här beskrivna systemet och sättet underlättar även autentisering ur användarens synpunkt. Det föreligger sålunda ej något behov av generator för ett engångslösenord på systemets kundsida, eftersom det slumpmässiga kodordet genereras på systemets datorsystemsida.The use of the system and method described here also facilitates authentication from the user's point of view. Thus, there is no need for a one-time password generator on the system client side, since the random codeword is generated on the system computer side.
KORT BESKRIVNING AV RITNINGARNA Föreliggande uppfinning kommer nu att beskrivas mera detaljerat med hjälp av icke begränsande exempel och med hänvisning till åtföljande ritningar, på vilka: - Fig. 1 är en schematisk vy av ett system för automatisk överföring av e-post eller andra data med användning av internet.BRIEF DESCRIPTION OF THE DRAWINGS The present invention will now be described in more detail by way of non-limiting example and with reference to the accompanying drawings, in which: Fig. 1 is a schematic view of a system for automatic transmission of e-mail or other data with use of the internet.
- Fig. 2 är en schematisk vy av ett system för automatisk överföring av e-post eller andra data med användning av ett paketdatanät.Fig. 2 is a schematic view of a system for automatic transmission of e-mail or other data using a packet data network.
- Fig. 3 är en schematisk vy av ett system för automatisk autentisering av en anordning över en internetanslutning.Fig. 3 is a schematic view of a system for automatic authentication of a device over an Internet connection.
- Fig. 4 är ett flödesschema som åskådliggör de utförda stegen vid autentisering av en mobilkommunikationsanordning och initiering av en datatransmission i systemet enligt fig. 1.Fig. 4 is a flow chart illustrating the steps performed in authenticating a mobile communication device and initiating a data transmission in the system of Fig. 1.
- Fig. Sa och 5b år flödesscheman som åskådliggör de utförda stegen vid autentisering av en mobilkommunikationsanordning och initiering av en datatransmission i systemet i fig. 2. 514 769 L! - Pig. 6 är ett flödesschema åskådliggörande a» U) :egen vid autentisering av en mobilkommunikationsanordning i systemet enligt fig. 3.Figs. 5a and 5b are flow charts illustrating the steps performed in authenticating a mobile communication device and initiating a data transmission in the system of Fig. 2. 514 769 L! - Pig. 6 is a flow chart illustrating a »U): own in authenticating a mobile communication device in the system of Fig. 3.
BESKRIVNING Av FÖREDRAGNA UTFÖRINGSFORMER I fig. 1 visas en schematisk vy av ett system för automatisk överföring av e-post eller andra data med användning av en icke visad internetanslutning. Systemet innefattar ett datorsystem 101, som i sin tur kan innefatta ett antal olika datorer och andra anordningar. Datorsystemet 101 i fig. 1 innefattar en server 103 för elektronisk post (e-post) ansluten till ett lokalområdesnät (LAN) 107 hos datorsystemet 101. Servern 103 är anordnad att hantera elektronisk post (e-post) i datorsystemet 101. Datorsystemet 101 innefattar även en autentiseringsserver 105, som likaså är ansluten till LAN 107 och till en kommunikationsanordning 108 för sändning av meddelanden utanför datorsystemet 101.DESCRIPTION OF PREFERRED EMBODIMENTS Fig. 1 shows a schematic view of a system for automatically transmitting e-mail or other data using an Internet connection (not shown). The system includes a computer system 101, which in turn may include a number of different computers and other devices. The computer system 101 in Fig. 1 comprises a server 103 for electronic mail (e-mail) connected to a local area network (LAN) 107 of the computer system 101. The server 103 is arranged to handle electronic mail (e-mail) in the computer system 101. The computer system 101 comprises also an authentication server 105, which is also connected to LAN 107 and to a communication device 108 for sending messages outside the computer system 101.
Hela datorsystemet 101 är exempelvis beläget innanför en brandvägg 109. Det enda sättet att föra in data från utanför brandväggen 109 till datorsystemet 101 är genom brandväggen 109.For example, the entire computer system 101 is located inside a firewall 109. The only way to enter data from outside the firewall 109 to the computer system 101 is through the firewall 109.
FT Brandväggen 109 är anordnad att sl ppa igenom endast datatrafi er som anländer i ett HTTP- ell En mobilkommunikationsanordning 115 är belägen utanför brandväggen. Brandväggen är ansluten till i ternet 111, som i n sin tur är anslutet till ett antal leverantörer 113 av internettjänster (ISP-Internet Service Providers).FT Firewall 109 is arranged to let through only data traffic arriving in an HTTP or A mobile communication device 115 is located outside the firewall. The firewall is connected to the Internet 111, which in turn is connected to a number of 113 ISP Internet Service Providers.
Leverantörerna 113 av internettjänster tillhandahåller ett gränssnitt via vilket olika anordningar, såsom mobilkommunikationsanordningen 115, kan anslutas till internet.The providers 113 of Internet services provide an interface via which various devices, such as the mobile communication device 115, can be connected to the Internet.
I fig. 4 åskådliggör ett flödesschema olika steg som utförs vid autentisering av en mobilkommunikationsanordning 115 och initiering av en datatransmission från datorsystemet 101 till mobilkommunikationsanordningen 115 i det i fig. 1 visade systemet.In Fig. 4, a flow chart illustrates various steps performed in authenticating a mobile communication device 115 and initiating a data transmission from the computer system 101 to the mobile communication device 115 in the system shown in Fig. 1.
Först förorsakar en händelse, såsom anländande av e-post till e- post-servern 103 hos datorsystemet 101, vilken e-post är 514- 769 b adresserad till en användare av anordningen 115, triggning av upprättande av en autentiserad transmission mot anordning 115 från datorsystemet 101, steg 401. Med andra ord är datorsystemet 101 anordnat att automatiskt överföra data, i detta fall elektronisk post, som finns i datorsystemet och som är avsedd för en kund som för närvarande är belägen utanför datorsystemet 101 och sålunda även utanför brandväggen 109.First, an event, such as the arrival of e-mail to the e-mail server 103 of the computer system 101, which e-mail is 514-769b addressed to a user of the device 115, causes the establishment of an authenticated transmission against the device 115 from computer system 101, step 401. In other words, computer system 101 is arranged to automatically transmit data, in this case electronic mail, which is in the computer system and which is intended for a customer which is currently located outside the computer system 101 and thus also outside the firewall 109.
Systemet 101 genererar därpå ett slumpartat kodord, steg 403.The system 101 then generates a random codeword, step 403.
Kodordet genereras av autentiseringsservern 105. Det av autentiseringsservern 105 genererade kodordet sänds via kommunikationsanordningen 108, exempelvis medelst sändning av ett SMS- (Short Message Service) meddelande till anordningen 115, steg 405. Autentiseringsservern använder en förutbestämd adress för användaren, i detta fall ett SMS-nummer.The codeword is generated by the authentication server 105. The password generated by the authentication server 105 is sent via the communication device 108, for example by sending an SMS (Short Message Service) message to the device 115, step 405. The authentication server uses a predetermined address for the user, in this case an SMS -number.
Anordningen 115 mottager kodordet från datorsystemet 101, steg 407. Som svar på denna mottagning ansluter anordningen automatiskt till en internettjänstleverantör (ISP) 113, steg 409. När anordningen 115 ansluts till ISP 113 mottager den en internetprotokoll(IP)-adress från ISP 113, steg 411. Anordningen genererar även ett kodmeddelande baserat på det mottagna kodordet, steg 414.The device 115 receives the codeword from the computer system 101, step 407. In response to this reception, the device automatically connects to an Internet Service Provider (ISP) 113, step 409. When the device 115 is connected to the ISP 113, it receives an Internet Protocol (IP) address from the ISP 113. step 411. The device also generates a code message based on the received codeword, step 414.
När anordningen har mottagit en IP-adress, upprättas en e-post- server inuti anordningen, steg 413. E-post sänds därpå till autentiseringsservern 105 hos datorsystemet, steg 415. E-posten från anordningen 115 till autentiseringsservern 105 sänds via ISP 113, internet 111, genom brandväggen 109 och via LAN 107.Once the device has received an IP address, an e-mail server is established inside the device, step 413. E-mail is then sent to the authentication server 105 of the computer system, step 415. The e-mail from the device 115 to the authentication server 105 is sent via ISP 113, internet 111, through the firewall 109 and via LAN 107.
E-posten från anordningen 115 till autentiseringsservern 105 innefattar åtminstone kodmeddelandet. Kodmeddelandet genereras företrädesvis genom kryptering av det mottagna kodordet med användning av en unik krypteringsnyckel. I synnerhet genereras kodmeddelandet genom kryptering av kodordet tillsammans med en del av en krypteringsnyckel.The e-mail from the device 115 to the authentication server 105 includes at least the code message. The code message is preferably generated by encrypting the received codeword using a unique encryption key. In particular, the code message is generated by encrypting the codeword together with a part of an encryption key.
Vid en föredragen utföringsform sänds e-posten från anordningen till autentiseringsservern 105 med användning av ett SMTP- eller HTTP-protokoll eftersom brandväggen 109 är utförd att endast 7 O / 'l ...X r\ \ Ch släppa igenom sådan datatrafik. Brandväggen 109 kan sålunda upprätthålla en hög säkerhetsnivå. Företrädesvis används SMTP- protokollet, eftersom det endast kräver användning av ett uttag för anslutningen.In a preferred embodiment, the email from the device is sent to the authentication server 105 using an SMTP or HTTP protocol since the firewall 109 is configured to pass only such data traffic. The firewall 109 can thus maintain a high level of security. The SMTP protocol is preferably used, as it only requires the use of one socket for the connection.
Därpå mottager autentiseringsservern kodmeddelandet från anordningen, steg 417. Kodordet extraheras därpå från den mottagna e-posten, vilket kan erfordra avkryptering om kodordet är krypterat, steg 419. Därpå sker kontroll av om det översända kodordet överensstämmer med det extraherade kodordet, steg 421.The authentication server then receives the code message from the device, step 417. The codeword is then extracted from the received e-mail, which may require decryption if the codeword is encrypted, step 419. Then it is checked whether the transmitted codeword matches the extracted codeword, step 421.
Om det extraherade kodordet ej överensstämmer med det sända kodordet avslutas sessionen, steg 423. Vid en föredragen utföringsform kan emellertid datorsystemet 101 vara anordnat att fortsätta att försöka upprätta en autentiserad anslutning till anordningen 115 senare.If the extracted codeword does not match the transmitted codeword, the session ends, step 423. In a preferred embodiment, however, the computer system 101 may be arranged to continue trying to establish an authenticated connection to the device 115 later.
Om kodordet, vid extrahering, överensstämmer med det kodord som ursprungligen sändes till anordningen 115, vet autentiseringsservern att det rör sig om den rätta anordningen.If the codeword, upon extraction, matches the codeword originally sent to the device 115, the authentication server knows that it is the correct device.
Autentiseringsservern vet nu vart data skall sändas, i detta exempel e-post. Autentiseringsservern 105 kopierar sålunda datat från e-post-servern och sänder e-posten till anordningen 115 med användning av anordningens IP~adress, steg 425. Det sända datat är företrädesvis krypterat med användning av en unik krypteringsnyckel hos anordningen 115.The authentication server now knows where the data is to be sent, in this example email. Thus, the authentication server 105 copies the data from the e-mail server and sends the e-mail to the device 115 using the device IP address, step 425. The transmitted data is preferably encrypted using a unique encryption key of the device 115.
I fig. 2 visas ett annat system för automatisk överföring av elektronisk post eller annan data, som använder paketdatatransmission. Det i fig. 2 visade systemet liknar det i fig. 1 visade. Istället för att använda en ISP 113 för sändning av data mellan datorsystemet 101 och anordningen 105 används emellertid ett paketdatanät 112. Internet kan naturligtvis användas för sändningar mellan datorsystemet 101 och paketdatanätet 112.Fig. 2 shows another system for automatic transmission of electronic mail or other data, which uses packet data transmission. The system shown in Fig. 2 is similar to that shown in Fig. 1. However, instead of using an ISP 113 for transmitting data between the computer system 101 and the device 105, a packet data network 112 is used. The Internet can, of course, be used for transmissions between the computer system 101 and the packet data network 112.
I fig. 5a visas ett flödesschema àskådliggörande stegen som utförs vid autentisering av en mobilkommunikationsanordning i systemet enligt fig. 2. Flödesschemat i fig. 5 liknar F 4 13:13 75.19 7 flödesschemat i fig. 4. Transmissionen frän anordningen 115 till datorsystemet 101 sker emellertid via paketdatanätet 112.Fig. 5a shows a flow chart illustrating the steps performed in authenticating a mobile communication device in the system of Fig. 2. The flow chart of Fig. 5 is similar to the flow chart of Fig. 4. The transmission from the device 115 to the computer system 101 takes place. however, via the packet data network 112.
Eftersom i detta fall anordningen redan är ansluten till mobilnätet när kodordet sänds, kan även kodordet sändas till en förutbestämd adress hos anordningen med användning av paketdatanätet. Kodordet kan då överföras inbäddat i ett datapaket.Since in this case the device is already connected to the mobile network when the codeword is transmitted, the codeword can also be transmitted to a predetermined address of the device using the packet data network. The password can then be transmitted embedded in a data packet.
I fig. Sb visas ett flödesschema åskàdliggörande ytterligare ett sätt att autentisera en mobilkommunikationsanordning, som liknar den i samband med fig. Sa beskrivna metoden.Fig. Sb shows a flow chart illustrating a further way of authenticating a mobile communication device, which is similar to the method described in connection with Fig. 5a.
Skillnaden mellan flödesschemat i fig. Sa och flödesschemat i fig. Sb är att autentiseringsservern extraherar kodordet (steg 419 i fig. Sa), och jämför det med kodordet, och att autentiseringsservern extraherar kodmeddelandet (steg 418 i fig. 5b) och jämför det med ett självgenererat kodmeddelande med användning av samma kodmeddelandegenererande algoritm som anordningen.The difference between the flowchart in Fig. 5a and the flowchart in Fig. Sb is that the authentication server extracts the codeword (step 419 in Fig. 5a), and compares it with the codeword, and that the authentication server extracts the code message (step 418 in Fig. 5b) and compares it with a self-generated code message using the same code message generating algorithm as the device.
Vid mottagning av kodordet genererar sålunda anordningen ett kodmeddelande med användning av kodordet som indata i en kodmeddelandegenererande algoritm, steg 414. Systemet använder därpå samma kodmeddelandegenererande algoritm som anordningen, steg 420 i ändamål att autentisera anordningen. Anordningen genererar kodmeddelandet, steg 414, under tidsintervallet mellan mottagningen av kodordet, steg 407, och transmissionen av e- posten, steg 415. Autentiseringsservern genererar kodmeddelandet, steg 420, under tidsintervallet mellan genereringen av kodordet, steg 403, och jämförelsen av kodmeddelandena, steg 421.Thus, upon receipt of the codeword, the device generates a code message using the codeword as input in a code message generating algorithm, step 414. The system then uses the same code message generating algorithm as the device, step 420 for the purpose of authenticating the device. The device generates the code message, step 414, during the time interval between the reception of the code word, step 407, and the transmission of the e-mail, step 415. The authentication server generates the code message, step 420, during the time interval between the generation of the code word, step 403, and the comparison of the code messages, step 421.
I fig. 3 visas en vy av ett system för automatisk autentisering av en anordning över en internetanslutning. Systemet kan likna systemet i fig. 1 eller 2. Det i fig. 3 visade systemet innefattar även en server 104 för finansiella transaktioner, som är ansluten till LAN 107. 7\ 534 7 9 8 I fig. 6 visas ett flödesschema äskàdliggörande stegen som utförs vid autentisering av anordningen 115 till datorsystemet 101 i systemet enligt fig. 3.Fig. 3 shows a view of a system for automatic authentication of a device over an Internet connection. The system may be similar to the system of Fig. 1 or 2. The system shown in Fig. 3 also includes a server 104 for financial transactions, which is connected to LAN 107. Fig. 6 shows a flow chart illustrating the steps that is performed upon authentication of the device 115 to the computer system 101 in the system of Fig. 3.
När en användare av anordningen 115 önskar autentiseras av något skäl, t.ex. om användaren önskar utföra finansiella transaktioner i servern 104 för finansiella transaktioner med användning av en säker anslutning, sänder användaren e-post från anordningen 115 till autentiseringsservern 105 med begäran om att bli autentiserad, steg 400. E-posten, som innefattar information identifierande användaren, såsom ett användar-ID, sänds via ISP 113, internet 111, genom brandväggen 109, och via LAN 107 till autentiseringsservern 105.When a user of the device 115 wishes to be authenticated for some reason, e.g. if the user wishes to perform financial transactions in the financial transaction server 104 using a secure connection, the user sends e-mail from the device 115 to the authentication server 105 requesting to be authenticated, step 400. The e-mail, which includes information identifying the user, as a user ID, is sent via ISP 113, Internet 111, through firewall 109, and via LAN 107 to the authentication server 105.
Datorsystemet 101 mottager begäran, steg 402. Som svar på denna begäran genererar autentiseringsservern 105 ett kodord, i synnerhet ett slumpmässigt kodord, steg 403. Systemet 101 sänder därpå kodordet via kommunikationsanordningen 108, t.ex. genom överföring av ett SMS-medelande, till anordningen 115, steg 405.The computer system 101 receives the request, step 402. In response to this request, the authentication server 105 generates a codeword, in particular a random codeword, step 403. The system 101 then sends the codeword via the communication device 108, e.g. by transmitting an SMS message, to the device 115, step 405.
Datorsystemet sänder kodordet till en förutbestämd adress för anordningen 115. Datorsystemet 101 använder den mottagna identifieringsinformationen frän användaren tillsammans med en lagrad adresslista för att erhålla (den förutbestämda) adressen.The computer system sends the codeword to a predetermined address of the device 115. The computer system 101 uses the received identification information from the user together with a stored address list to obtain the (predetermined) address.
Vid en annan föredragen utföringsform sänds det slumpartade kodordet på internet till en server eller liknande, vilken server i sin tur sänder ett SMS-meddelande till anordningen 115.In another preferred embodiment, the random codeword is transmitted on the Internet to a server or the like, which server in turn sends an SMS message to the device 115.
Anordningen 115 mottager kodordet från datorsystemet 101, steg 407, och genererar ett kodmeddelande. Som svar pä denna mottagning sänder anordningen automatiskt en andra e-post, innehållande kodmoddelandet, till autentiseringsservern 105 hos datorsystemet, steg 415. Den andra e-posten från anordningen 115 till autentiseringsservern 105 sänds via ISP 113, internet 111, genom brandväggen 109, och via LAN 107.The device 115 receives the codeword from the computer system 101, step 407, and generates a code message. In response to this reception, the device automatically sends a second e-mail, containing the code model message, to the authentication server 105 of the computer system, step 415. The second e-mail from the device 115 to the authentication server 105 is sent via ISP 113, Internet 111, through the firewall 109, and via LAN 107.
Det bör anmärkas att, till skillnad från autentiseringsproceduren som beskrivs i samband med fig. 1 och fig. 4, anordningen 115 ej behöver upprätta en ny förbindelse till internet vid överföring av e-posten, som innefattar kodmeddelandet, eftersom en internetförbindelse redan har 514, “i upprättats vid sändning av den första e-posten i steg 400. Det är emellertid naturligtvis möjligt att låta anordningen anslutas till internet en andra gång vid mottagning av kodordet i steg 407 om detta skulle visa sig vara fördelaktigt.It should be noted that, unlike the authentication procedure described in connection with Fig. 1 and Fig. 4, the device 115 does not need to establish a new connection to the Internet upon transmission of the e-mail, which includes the code message, since an Internet connection already has 514, Was established when sending the first e-mail in step 400. However, it is of course possible to have the device connected to the Internet a second time upon receipt of the codeword in step 407 if this proves to be advantageous.
E-posten från anordningen 115 till autentiseringsservern 105 innefattar åtminstone kodmeddelandet. Genereringen av kodmeddelandet sker företrädesvis genom användning av en unik krypteringsnyckel. I synnerhet genereras kodmeddelandet genom kryptering av kodordet och en del av krypteringsnyckeln.The e-mail from the device 115 to the authentication server 105 includes at least the code message. The generation of the code message preferably takes place by using a unique encryption key. In particular, the code message is generated by encrypting the codeword and a portion of the encryption key.
I en föredragen utföringsform överförs e-postmeddelandena från anordningen 115 till autentiseringsservern 105 med användning av ett SMTP- eller HTTP-protokoll, eftersom brandväggen 109 är konstruerad att endast släppa igenom sådan datatrafik.In a preferred embodiment, the e-mails are transmitted from the device 115 to the authentication server 105 using an SMTP or HTTP protocol, since the firewall 109 is designed to pass only such data traffic.
Brandväggen 109 kan sålunda vidmakthålla en hög säkerhetsgrad.The firewall 109 can thus maintain a high degree of security.
Företrädesvis används SMTP~protokollet eftersom det endast kräver användning av ett uttag för anslutningen.The SMTP protocol is preferably used because it only requires the use of one socket for the connection.
Därpå mottager autentiseringsservern e-posten från anordningen, steg 417. Kodordet extraheras därpå från den mottagna e-posten, t.ex. genom extrahering och avkryptering av kodmeddelandet, steg 419. Därpå sker kontroll av om det översända kodordet överensstämmer med det mottagna kodordet, steg 421.The authentication server then receives the e-mail from the device, step 417. The codeword is then extracted from the received e-mail, e.g. by extracting and decrypting the code message, step 419. Thereafter, checking whether the transmitted code word matches the received code word, step 421.
Om det extraherade kodordet ej överensstämmer med det sända kodordet avslutas sessionen, steg 423. Vid en föredragen utföringsform kan emellertid datorsystemet 101 vara anordnat att returnera ett meddelande till anordningen för att informera användaren av anordningen att åtkomst nekats, så att användaren kan försöka uppkoppling igen om användaren så önskar.If the extracted password does not match the transmitted password, the session ends, step 423. In a preferred embodiment, however, the computer system 101 may be arranged to return a message to the device to inform the user of the device that access has been denied, so that the user can try to reconnect if the user so desires.
Om det extraherade kodordet överensstämmer med kodordet som ursprungligen sändes till anordningen 115, vet autentiseringsservern att det rör sig om rätt anordning. Kunden kan sålunda börja genomföra transaktioner i servern 104, steg 425.If the extracted codeword matches the codeword originally sent to the device 115, the authentication server knows that it is the correct device. The customer can thus start performing transactions in the server 104, step 425.
Anordningen 115 kan vara en godtycklig typ av mobilkommunikationsanordning, som kan mottaga och sända data.The device 115 may be any type of mobile communication device which can receive and transmit data.
"J1 14, 759 /O Anordningen kan sålunda vara en mobiltelefon, en dator innefattande ett trådlöst modem eller en kombination därav, såsom en handburen dator innefattande en integrerad mobiltelefon. För att anordningen 115 skall kunna arbeta korrekt mäste den laddas med ett lämpligt program, som tillåter anordningen att kommunicera med användning av ovan beskrivna metod. De funktioner som krävs för att tillåta anordningen att arbeta enligt metoden kan naturligtvis implementeras i hårdvara.The device may thus be a mobile telephone, a computer comprising a wireless modem or a combination thereof, such as a handheld computer comprising an integrated mobile telephone. In order for the device 115 to operate properly, it must be charged with a suitable program, which allows the device to communicate using the method described above.The functions required to allow the device to operate according to the method can of course be implemented in hardware.
Mjukvaru- eller hårdvarusupport för autentiseringsmetoden är likaså införd i datorsystemet.Software or hardware support for the authentication method is also introduced in the computer system.
Det i samband med fig. 3 och 6 beskrivna systemet kan även användas i andra typer av transaktioner än finansiella transaktioner. Sålunda är det möjligt att använda systemet i ett flertal tillämpningar där en snabb men säker autentisering av en anordning krävs. Exempel på sådana tillämpningar är bookmakin - transaktioner, biljettbokningstransaktioner, köp och försäljnin av varor etc.The system described in connection with Figures 3 and 6 can also be used in other types of transactions than financial transactions. Thus, it is possible to use the system in a variety of applications where a fast but secure authentication of a device is required. Examples of such applications are bookmaking - transactions, ticket booking transactions, purchase and sale of goods, etc.
I Appendix l-12 visas slutligen en datorprogramlista åskådliggörande en mjukvaruimplementering av olika steg. I Appendix 1-6 visas sålunda en programuppställning i C++språk av vissa procedursteg i datorsystemet. Som exempel avser "lumpio" i Appendix 5-6 kodning och avkodning. I Appendix 7-12 visas en uppställning av vissa procedursteg hos kunden eller anordningen. "pushnot" i Appendix 7-8 initierar exempelvis en uppkoppling vid mottagning av en SMS med användning av funktionen "DoConnect"; "client" i Appendix ll-12 använder funktionerna "lumpIO_fputs" och "lumpIO_fgets" för kryptering och avkryptering, och funktionen "send_file" för sändning av post.Finally, Appendix l-12 shows a computer program list illustrating a software implementation of various steps. Appendix 1-6 thus shows a program list in C ++ language of certain procedure steps in the computer system. By way of example, "lumpio" in Appendix 5-6 refers to encoding and decoding. Appendix 7-12 shows a list of certain procedure steps for the customer or device. "pushnot" in Appendix 7-8, for example, initiates a connection when receiving an SMS using the "DoConnect" function; "client" in Appendix ll-12 uses the "lumpIO_fputs" and "lumpIO_fgets" functions for encryption and decryption, and the "send_file" function for sending mail.
Genom användning av här beskrivna sätt och system kan flera olika typer av autentiserad datasändning uppnås. Som exempel kan nämnas automatiserad överföring av data, såsom elektronisk post (e-post), underlättad inloggning på ett säkert nät, såsom en bank och många fler tillämpningar där autentisering krävs eller är önskvärd. 01 _) __r~ '<1 (ï\ ß /I /*APPENDIX I: pat_smtp.h*/ íiifndeflint static char *rcsid_notifier__h = "$Header$"; #endíf #ifdef UNIX # define DEFAULT_LOG_FILE "/home/lmjm/pat_smtp/ log" # define DEFAULT_CONF1G_F ILE "/home/janko/pat_smtp/pat_smtp.conf“' # define DEFAULT_ACCOUNTS_FILE "/home/janko/pat_smtp/accounts" # define DEFAULT_QUEUE__DIR "/home/janko/pat_smtp/queue" # define DEFAULT_SERVER_VERSION "PAT Server l.0beta" # define MAX_ACCOUNTS 1000 #endíf #ifdef WIN32 # define DEFAULT__LOG_FILE "c/pat/logfilexxt" # define DEFAULT_CONFIG_FILE "c:/pat/pat_smtp.conf“ # define DEFAULT_ACCOUNTS_FILE "cz/pat/accountslxt" # define DEFAULT_QUEUE_DIR "c/pat/queue" # define DEFAULT_SERVER_VERSION "PAT Server l.0beta" # define MAX_ACCOUNTS 1000 #endif #define CLIENT_DOM "evvi" #define BIG_BUF 512 #define bool char #define true l #deñne false 0 extem bool smtp_listener; extem bool daemon; extem int verbose; extem char *config_file; extem char *queue_dir; extem char *server_versíon; extem char *program_name; extem int program _pid; void read_config_file(); i/*APPENDIX 2: pat_smtp.cpp *f/ /* SMTP listener * Can run either as a permanently running process. under inetd (on UNlX) orjust * from the command line.By using the methods and systems described here, several different types of authenticated data transmission can be achieved. Examples include automated data transmission, such as electronic mail (e-mail), facilitated login to a secure network, such as a bank, and many more applications where authentication is required or desired. 01 _) __r ~ '<1 (ï \ ß / I / * APPENDIX I: pat_smtp.h * / íiifndeflint static char * rcsid_noti fi er__h = "$ Header $"; # endíf #ifdef UNIX # de fi ne DEFAULT_LOG_FILE "/ home / lmjm / pat_smtp / log "# de fi ne DEFAULT_CONF1G_F ILE" /home/janko/pat_smtp/pat_smtp.conf "'# de fi ne DEFAULT_ACCOUNTS_FILE" / home / janko / pat_smtp / accounts "# de fi ne DEFAULT_S / PEU_S /" # "PAT Server l.0beta" # de fi ne MAX_ACCOUNTS 1000 # endíf #ifdef WIN32 # de fi ne DEFAULT__LOG_FILE "c / pat / log fi lexxt" # de fi ne DEFAULT_CONFIG_FILE "c: /pat/pat_smtp.conf“ # de COCEF / #F EC nFA " de fi ne DEFAULT_QUEUE_DIR "c / pat / queue" # de fi ne DEFAULT_SERVER_VERSION "PAT Server l.0beta" # de fi ne MAX_ACCOUNTS 1000 #endif #de fi ne CLIENT_DOM "evvi" #de fi ne BIG_BUF 512 #de fi de ; extem bool daemon; extem int verbose; extem char * con fi g_ fi le; extem char * queue_dir; extem char * server_versíon; extem char * program_name; extem int pro gram _pid; void read_con fi g_ fi le (); i / * APPENDIX 2: pat_smtp.cpp * f / / * SMTP listener * Can run either as a permanently running process. under inetd (on UNlX) orjust * from the command line.
Fk * This SMTP server expects to get either: * [[ Step (a) is NOT needed - messages will get from * the EVO server into the right place behind my back * a) "real" email from the Internet which must be sent * on to a PAT client (on EPOC) - in which case it should queue the email to be sent AND queue an SMS to be sent to the user which will contain the token used to authenticate them -X- -X- *ll * * b) "PAT" email from a PAT client (on EPOC) - this begins with * an initial "fake" SMTP incoming message ofjust: * HELO * MAIL FROMi * RCPT TO: * RCPT TO: * TURN * This is used to autlienticate the PAT client. * lfthis is successful then \\e send the pending emails and * a 'TURN so that the client can send in an) pending emails.Fk * This SMTP server expects to get either: * [[Step (a) is NOT needed - messages will get from * the EVO server into the right place behind my back * a) "real" email from the Internet which must be sent * on to a PAT client (on EPOC) - in which case it should queue the email to be sent AND queue an SMS to be sent to the user which will contain the token used to authenticate them -X- -X- * ll * * b) "PAT" email from a PAT client (on EPOC) - this begins with * an initial "fake" SMTP incoming message ofjust: * HELO * MAIL FROMi * RCPT TO: * RCPT TO: * TURN * This is used to autlienticate the PAT client. * lfthis is successful then \\ e send the pending emails and * a 'TURN so that the client can send in an) pending emails.
* Once the client lias sent an_\ einails it will end with a QlílT.* Once the client lias sent an_ \ einails it will end with a QlílT.
* $Log$ *ll .fiifndeflint static char *rcsid = "$Header$"; #endif iíinclude #include #ifdef UNIX # include # include # include # include # include # include # include # include # include # include /* For getopt() */ extem char *optarg; extern int optind; #endif #ifdef WlN32 L) l ...x 17:.. w (JN ffi l # include # include # include # include # include # include # include # include # include “win_support.h" #endif #include #include #include "pat_smtp.h" #include "netio.h" #include "keylib/keylib.h" #inc|ude "log.h" #include "base64.h" #include "cryptsup.h" #include "lumpIO.h" #include "hex.h" char *program_name = "pat_smtp"; int program_pid; bool smtp_listener = true; bool daemon = true; int verbose = 2; u_short smtp_port = 25; int max_listen_backlog = 5; int pulse_time = 5; /* break out of the accept loop every 5 seconds */ int keep_looping = l; int smtp_timeout = 120; /* how long to wait for input */ int skip_authentication = 1; #define MAX_DB_FIELDLEN 100 char user[ MAX_DB_FIELDLEN ], password[ MAX_DB_FIELDLEN ], evokey[ MAX_DB_FIELDLEN ], randnum[ MAX_DB_FIELDLEN ], dbtime[ MAX_DB_FIELDLEN ]; #define MAX_VERSION 100 char client_version[ MAX_VERSION ]; bool authenticated = false; void main( int argc, char **argv ); void parse_args( int argc, char **argv ); void become_daemon(); f.* $ Log $ * ll .fiifndeflint static char * rcsid = "$ Header $"; #endif iíinclude #include #ifdef UNIX # include # include # include # include # include # include # include # include # include # include / * For getopt () * / extem char * optarg; external int optind; #endif #ifdef WlN32 L) l ... x 17: .. w (JN f fi l # include # include # include # include # include # include # include # include # include # include “win_support.h" #endif #include #include #include "pat_smtp.h" #include "netio.h" #include "keylib / keylib.h" #inc | ude "log.h" #include "base64.h" #include "cryptsup.h" #include "lumpIO .h "#include" hex.h "char * program_name =" pat_smtp "; int program_pid; bool smtp_listener = true; bool daemon = true; int verbose = 2; u_short smtp_port = 25; int max_listen_backlog = 5; int pulse_time = 5 ; / * break out of the accept loop every 5 seconds * / int keep_looping = l; int smtp_timeout = 120; / * how long to wait for input * / int skip_authentication = 1; #de fi ne MAX_DB_FIELDLEN 100 char user [MAX_DB_FIELDLEN], password [MAX_DB_FIELDLEN], evokey [MAX_DB_FIELDLEN], randnum [MAX_DB_FIELDLEN], dbtime [MAX_DB_FIELDLEN]; #de fi ne MAX_VERSION 100 char client_version [MAX_VERSION]; void authent + arg; a rgc, char ** argv); void become_daemon (); f.
...S .ßh s\'3 für. vi) .fiifdef LJNIX void process__tinder_inetd(á); char *get__m_v_login(); #endif void process_smtp( Sock io ); bool process_state( int state. NET n, char *bufi char *addr ); void process_queue_for_user( char *user_ NET n ); bool process_queue_file( char *qfilenamta NET n )1 bool filena1ne_matches( char *filename, char *user ); void to_upper( char *str 1); int mail_rcpt_addr( char *bufi char *addr ): íidefine TMPñIN 0 iidefinc TMP_OUT l FILE *create_tinp( int where. char *tmp, char *user 0): int read_smtp_reply'( NET n, char *bufi int bufsiz ); void init_winsock(); void rename_in_tempfile( char *tmp_name ); /* Does the SMTP repl) mean OK *f íidefine REPLY_OK(r) ((200 <= (r)) && ((r) <= 299)) /* States that the server is in *f íidefine ST_INIT 0 iidefine ST_HELO 1 if-"define ST_MAIL_CLIENT_VERS 2 ššdefine ST_RCPT_SERVER_\FERS 3 :tdefine ST_RC PQTOKEN 4 fidefinc ST_MAIL_OUT 5 äidefine ST_RCPT_OUT 6 iídefine ST_DATA_OUT 7 #define ST_MAIL_IN 8 #define ST_RCPT_IN 9 âfdefine ST_DATA_IN 10 void main(' int argc. char ”argv ) t frifdef wiNsz extern int _fmode; _fmode = _O_BINARY: #endif */ if( verbose ){ netio_show( verbose ); log_to_tty = l; } program_pid = getpidO; parse_args( argc, argv ); #ifdef UNIX 514 769 15 if( ! smtp_listener ){ to = get_my_|ogin(); (void)queue_request(); exit( O ); } if( daemon ){ becomevdaemonO; exit( 0 ); } process_under_inetd(); #endif itifdef WIN32 become_daemon(): #endif } void parse_args( int argc, char **argv ) { int c; char **nargv; iätifdef UNIX while( (c = getopt( argc, argv, "avkfidiz" )) != -1 ){ #endif/* UNIX */ #ifdef WIN32 while( --argc > 0 ){ char *arg = *++argv; char *optarg; c = *arg; if( c = '-' c = arg[ l ]; else { /* Not an argument - make nargv point at all the rest */ nargv = argv; retum; } switch( c ){ case '1': optarg = *argv++; } #endif/* WIN32 */ switch( c ){ case 'v': verbose++; break; case 'a': skip__authentication = false; /* Must authenticate user */ break; case 'l': log_file = optarg; if( *logwñle Y= '/' ){ fprintfl stderr, "logfile name must begin with "in" ): exit( l ); l break; case 'f': config_file = optarg; if( *config_file != '/' ){ fprintf( stderr, "config filename must begin with An" 1 exit( l ): l break: íiifdef UNIX case 'd': /* Run as a stand-alone daemon *i smtp_listener = true; daemon = true; break; case 'i': f* Run under inetd *f smtp_listener = true: daemon = false; break: fiendif default: fprintfl stdern "Usagez %s v [-l logfile] l-fconligíile] l-d--ii-c Froinl' n". program_name ): fprintfl stderr. " -v verbose inodem" l: fprintf( stdern " -l log to this Filem" ); fprintfl stderr, " -f use this configuration fileän" l; #ifdef [JNIX fprintf( stderr. " -d run as stand-alone SNITP daemomn" ): fprintfl stderr. " -i run under inetd\n" ): ifendif fprintf( stderr, " -a authenticatedm" ): exit( 0 ); } l if( verbose ) log_to_tty = l; } void become_daemon() { Sock sock, msgsock; struct sockaddr_in server; fd_set ready; struct timeval to; int on; read_config_file(); 514 769 i? logit( INFOI, "smtp daemon starting" ); #ifdef WIN32 init_winsock(); #endif if( (sock = socket( AF_INET, SOCK_STREAM, 0 )) < 0 ) logit( FATAL, "Cannot create stream socket" ); server.sin_famíly = AF_INET; server.sin_addr.s_addr = hton|( INADDR_ANY ); server.sin_por1 = htons( smtp_port ); on = 1; if( setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, (char *)(&on), sizeof( on ) ) < 0 ) logit( WARNING, "Cannot tum on SO_REUSEADDR" ); íf( bínd( sock, (struct sockaddr *)&server, sizeof( server ) ) < O ) logit( FATAL, "Cannot bind to SMTP port %d", smtp_por1 ); listen( sock, max_lísten_backlog ); while( keep_looping ){ logit( INFO, "loop waiting for SMTP connections" ); FD_ZERO( &ready ); FD_SET( sock, &ready ); to.tv_sec = pu|se_time; to.tv_usec = 0; if( select( sock + 1, &ready, 0, 0, &to ) < 0 ){ logit( WARNING, "select error" ); continue; } if( FD__ISSET( sock, &ready ) ){ if( (msgsock = accept( sock, (struct sockaddr *)0, (int *)0 )) < 0 ) logit( WARNING, "failed to accept" ); process_smtp( msgsock ); } } } void process_smtp( Sock io ) { NET n; int state = ST_INIT; char bufl BIG_BUF ]; char tmpl[ BIG_BUF ]; char tmp2[ BIG_BUF ]; char rcpt_to[ BIG_BUF ]; char mail_from[ BIG_BUF ]; char tmp_name[ BIG_BUF ]; FILE *tmp_f; struct sockaddr_in remoteßaddr: int addrlen = sizeof( remote__addr i. struct hostent *hp: char remote_host[ BIG_BUF l; logit( INFO. "process_smtp" 4): /* Figure out who is calling me */ if( getpeernanie( io, (struct sockaddr *)&remote_addr. &addrlen ) < O ){ logit( VVARNING. "Cannot find remote host details" ); strcpy( remote_host. "unknown" )L } else { hp = gethostbyaddr( (char *)&(remote_addr.sin_addr). sizeof( struct in_addr ). AFJNET ): if( hp ) (void)strncpy( remote_host_ hp->h_name, sizeof( remote_host ) l: else (void)strncpy( remote_host_ inet_ntoa( remote_addr.sin_addr ), sizeofl remote_host ) ); r login INFOI. "procesgsintp front %s". &remote_liost[ O l ): if( (n = nopen( io )) < 0 i) logit( FATAL. "cannot use connection for smtp traffic" ): /* Talk SMTP with the remote client *f nprintf( n, "220 ME PA'I“_Sl\1TP\r\n" ): while( true ){ bool rcpt_to_cmd, mail_from_cmd; rcpt_to__cmd = mail_from_cmd = false; if( timed_read_line( n. buf. sizeof( buf i). smtp_timeout ) < 0 ) break: tmpl[ 0 ] = tmp2[ O ] = '\0'; sscanf( buf, "%[^ \r\n]%*[ \t]°/0[^\n\r]", tmpl, tmp2 ); to_upper( tmpl ); logit( INFO, "cmdz %s", tmpl ); if( strcmp( tmpl. "HELP" == O ){ nprintf( n, "2l4-Commands supported:\r\n" ); nprintf( n, "213 HELO MAIL RCPT DATA TURN QUIT HELP\r\n" ); continue; } else if( strcmp( tmpl, "HELO" ) == 0 ){ state = ST_HELO; if( ! process_state( state, n, buf, "" ) ) break; continue; 514 7:3 I°ï \.. } else if( strcmp( tmpl. "MAIL" )== 0 ){ if( ! mail_rcpt_addr( buf, mail_from ) ){ nprintf( n, "500 Bad MAIL command\r\n" ); continue; } if( state == ST_HELO ) state = ST_MAIL_CLIENT_VERS; else if( state == ST_MAIL_IN ){ state = ST_MAIL_IN; /* A tad redundant! */ if( (tmp_f = create_tmp( TMP_IN, tmp_name, user )) == NULL ){ nprintf( n, "500 Cannot create tmp files\r\n" ); break; } } else { nprintf( n, "501 Unexpected MAIL command\r\n" ); continue; } if( ! process_state( state, n, buf, mail_from ) ) break; continue; } else if( strcmp( tmpl, "RCPT" )== 0 ){ if( l mail_rcpt_addr( buf, rcpt_to ) ){ nprintf( n, "500 Bad RCPT cominand\r\n" ); continue; } if( state == ST_MAIL__CLIENT_VERS ) state = ST_RCPT_SERVER_VERS; else if( state == ST_RCPT_SERVER_VERS ) state = ST_RCPT__TOKEN; else if( state = ST_MAIL_IN ){ state = ST_RCPT_IN; } else { nprintf( n, "50l Unexpected RCPT command\r\n" ); continue; } if( ! process_state( state, n, buf, rcpt_to ) ) break; continue; } else if( strcmp(tmp1, "DATA" ) == 0 ){ bool bad_end = false; char *buf_save; state = ST_MAIL_IN; /* Await more mail after this */ struct lumpIO *f = lumplO_init( key, iv, tmp_f ); nprintf( n, "354 Enter message, ending with \".\" on a line by itselflr\n" ); while( I ){ \_J xš) i - . 5 4 ß» 20 if( timed_read_line( n. butfl sizeofl buf). smtpjiineotit ') < O y; bad_end = true: break: l if( strcmp( buf, ".\r\n" ) == 0 ) break; /* lfthe line isjust skip the first */ if( strcmp( buf. "..\r\n" )== 0 ) buf_save = &buf[ l l; else buf_save = buf; luxnplO_fpt1ts( buf_save. f); f itI bad_end ) break: fclose( tmp_f); rename_in_ternpfile( tmp_name 7); nprintf( n. "250 OK\r\n" ); connnue; l l else ifl strcmp( tmpl. "TURN" l f i )-1 ifl state == ST_itp'P'li_l'OKEN ){ state = ST_lvlAlL_OUT: nprintfl n. "250 turning (sendmg mail to client)\r\n" l: /* Fall thru to the end ofthe main ifstateinent *i else l nprintf( n. "S01 Unexpected TURN comxna|1d=~r*n" ): continue: i l l else if( strcmp( tmpl, "QUIT" == 0 ){ nprintf( n. "221 closing\r\n" ); break; l else { nprintf( n. "S00 Command unrecognized\r\n" ); continue; l if( state == ST_MAIL_OUT ){ int reply; process_queue_for_user( user, n ); state = ST_MAIL_IN; nprintf( n, "TURN\r\n" ); if( (reply = read__smtp_reply( n, buf, sizeof( buf) )) < O ) break; if( REPLY_OK( reply ) ){ continue; } /* client has no email to send to me! */ nprintf( n, "QUl"f\r\n" ); 514 7-69 break; } nprintf( n, "200 So long and thanks for all the fish.\r\n" ); nc|ose( n ); logit( lNFO, "end of process_smtp" ); } bool process_state( int state, NET n, char *buf, char *addr ) l if( state == ST_HELO ){ nprintf( n, "250 \vatcha!\r\n" ); return true; } if( state == ST_MAIL_CLIENT_VERS ){ strcpy( client_version, addr ); authenticated = false; nprintf( n, "250 thanks for the client version:... S .ßh s \ '3 für. vi) .fiifdef LJNIX void process__tinder_inetd (á); char * get__m_v_login (); #endif void process_smtp (Sock io); bool process_state (int state .NET n, char * bu fi char * addr); void process_queue_for_user (char * user_ NET n); bool process_queue_ fi le (char * q fi lenamta NET n) 1 bool filena1ne_matches (char * filename, char * user); void to_upper (char * str 1); int mail_rcpt_addr (char * bu fi char * addr): íide fi ne TMPñIN 0 iide fi nc TMP_OUT l FILE * create_tinp (int where. char * tmp, char * user 0): int read_smtp_reply '(NET n, char * bu fi int bufsiz); void init_winsock (); void rename_in_temp fi le (char * tmp_name); / * Does the SMTP repl) mean OK * f íide fi ne REPLY_OK (r) ((200 <= (r)) && ((r) <= 299)) / * States that the server is in * f íide fi ne ST_INIT 0 iide fi ne ST_HELO 1 IF "the fi ne ST_MAIL_CLIENT_VERS 2 ššde fi ne ST_RCPT_SERVER_ \ FERS 3: tde fi ne ST_RC PQTOKEN 4 fide access nc ST_MAIL_OUT 5 aide fi ne ST_RCPT_OUT 6 iide fi ne ST_DATA_OUT 7 #Those fi ne ST_MAIL_IN 8 #Those fi ne ST_RCPT_IN 9 âfde fi ne ST_DATA_IN 10 void main ( 'int argc. char" argv) t frifdef wiNsz external int _fmode; _fmode = _O_BINARY: #endif * / if (verbose) {netio_show (verbose); log_to_tty = l;} program_pid = getpidO; parse_args (argc, argv); #ifdef UNIX 514 769 15 if (! smtp_listener) {to = get_my_ | ogin (); (void) queue_request (); exit (O);} if (daemon) {geanevdaemonO; exit (0);} process_under_inetd (); #endif itifdef WIN32 become_daemon (): #endif} void parse_args (int argc, char ** argv) {int c; char ** nargv; iätifdef UNIX while ((c = getopt (argc, argv, "avkfidiz"))! = -1) {# endif / * UNIX * / #ifdef WIN32 while (--argc> 0) {char * arg = * ++ argv; cha r * optarg; c = * arg; if (c = '-' c = arg [l]; else {/ * Not an argument - make nargv point at all the rest * / nargv = argv; retum;} switch (c) {case '1': optarg = * argv ++;} # endif / * WIN32 * / switch (c) {case 'v': verbose ++; break; case 'a': skip__authentication = false; / * Must authenticate user * / break; case 'l': log_ fi le = optarg; if (* logwñle Y = '/') {fprint fl stderr, "logfile name must begin with" in "): exit (l); l break; case 'f': con fi g_ fi le = optarg; if (* con fi g_ fi le! = '/') {fprintf (stderr, "config filename must begin with An" 1 exit (l): l break: íiifdef UNIX case 'd': / * Run as a stand-alone daemon * i smtp_listener = true; daemon = true; break; case 'i': f * Run under inetd * f smtp_listener = true: daemon = false; break: fi endif default: fprint fl stdern "Usagez% sv [-l log fi le] l-fconligíile] ld - ii-c Froinl 'n ". Program_name): fprint fl stderr." -V verbose inodem "l: fprintf (stdern" -l log to this Filem "); fprint fl stderr," -f use this configuration fi leän "l; #ifdef [JNIX fprintf (stderr. "-d run as stand-alone SNITP daemomn"): fprint fl stderr. "-i run under inetd \ n"): ifendif fprintf (stderr, "-a authenticatedm"): exit (0); } l if (verbose) log_to_tty = l; } void become_daemon () {Sock sock, msgsock; struct sockaddr_in server; fd_set ready; struct timeval to; int on; read_con fi g_ fi le (); 514 769 i? logit (INFOI, "smtp daemon starting"); #ifdef WIN32 init_winsock (); #endif if ((sock = socket (AF_INET, SOCK_STREAM, 0)) <0) logit (FATAL, "Cannot create stream socket"); server.sin_famíly = AF_INET; server.sin_addr.s_addr = hton | (INADDR_ANY); server.sin_por1 = htons (smtp_port); on = 1; if (setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, (char *) (& on), sizeof (on)) <0) logit (WARNING, "Cannot tum on SO_REUSEADDR"); íf (binding (sock, (struct sockaddr *) & server, sizeof (server)) <O) logit (FATAL, "Cannot bind to SMTP port% d", smtp_por1); listen (sock, max_list_backlog); while (keep_looping) {logit (INFO, "loop waiting for SMTP connections"); FD_ZERO (&ready); FD_SET (sock, &ready); to.tv_sec = pu | se_time; to.tv_usec = 0; if (select (sock + 1, & ready, 0, 0, & to) <0) {logit (WARNING, "select error"); continue; } if (FD__ISSET (sock, & ready)) {if ((msgsock = accept (sock, (struct sockaddr *) 0, (int *) 0)) <0) logit (WARNING, "failed to accept"); process_smtp (msgsock); }}} void process_smtp (Sock io) {NET n; int state = ST_INIT; char bu fl BIG_BUF]; char tmpl [BIG_BUF]; char tmp2 [BIG_BUF]; char rcpt_to [BIG_BUF]; char mail_from [BIG_BUF]; char tmp_name [BIG_BUF]; FILE * tmp_f; struct sockaddr_in remoteßaddr: int addrlen = sizeof (remote__addr i. struct hostent * hp: char remote_host [BIG_BUF l; logit (INFO. "process_smtp" 4): / * Figure out who is calling me * / if (getpeernanie (io, ( struct sockaddr *) & remote_addr. & addrlen) <O) {logit (WARNING. "Cannot find remote host details"); strcpy (remote_host. "unknown") L} else {hp = gethostbyaddr ((char *) & (remote_addr.sin_addr . ; r login INFOI. "procesgsintp front% s". & remote_liost [O l): if ((n = nopen (io)) <0 i) logit (FATAL. "cannot use connection for smtp traffic"): / * Talk SMTP with the remote client * f nprintf (n, "220 ME PA'I“ _Sl \ 1TP \ r \ n "): while (true) {bool rcpt_to_cmd, mail_from_cmd; rcpt_to__cmd = mail_from_cmd = false; if (timed_read_line (n. buf. sizeof (buf i). smtp_timeout) <0) break: tmpl [0] = tmp2 [O] = '\ 0'; sscanf (buf, "% [^ \ r \ n]% * [\ t] ° / 0 [^ \ n \ r]", tmpl, tmp2); to_upper (tmpl); logit (INFO, "cmdz% s", tmpl); if (strcmp (tmpl. "HELP" == O) {nprintf (n, "2l4-Commands supported: \ r \ n"); nprintf (n, "213 HELO MAIL RCPT DATA TURN QUIT HELP \ r \ n") ; continue;} else if (strcmp (tmpl, "HELO") == 0) {state = ST_HELO; if (! process_state (state, n, buf, "")) break; continue; 514 7: 3 I ° ï \ ..} else if (strcmp (tmpl. "MAIL") == 0) {if (! mail_rcpt_addr (buf, mail_from)) {nprintf (n, "500 Bad MAIL command \ r \ n"); continue;} if (state == ST_HELO) state = ST_MAIL_CLIENT_VERS; else if (state == ST_MAIL_IN) {state = ST_MAIL_IN; / * A tad redundant! * / if ((tmp_f = create_tmp (TMP_IN, tmp_name, user)) == NULL) {nprintf (n, "500 Cannot create tmp les \ r \ n"); break;}} else {nprintf (n, "501 Unexpected MAIL command \ r \ n"); continue;} if (! process_state (state, n, buf, mail_from)) break; continue;} else if (strcmp (tmpl, "RCPT") == 0) {if (l mail_rcpt_addr (buf, rcpt_to)) {nprintf (n, "500 Bad RCPT cominand \ r \ n "); continue;} if (state == ST_MAIL__CLIENT_VERS) state = ST_RCPT_SERVER_VE RS; else if (state == ST_RCPT_SERVER_VERS) state = ST_RCPT__TOKEN; else if (state = ST_MAIL_IN) {state = ST_RCPT_IN; } else {nprintf (n, "50l Unexpected RCPT command \ r \ n"); continue; } if (! process_state (state, n, buf, rcpt_to)) break; continue; } else if (strcmp (tmp1, "DATA") == 0) {bool bad_end = false; char * buf_save; state = ST_MAIL_IN; / * Await more mail after this * / struct lumpIO * f = lumplO_init (key, iv, tmp_f); nprintf (n, "354 Enter message, ending with \". \ "on a line by itsel fl r \ n"); while (I) {\ _J xš) i -. 5 4 ß »20 if (timed_read_line (n. But fl sizeo fl buf). Smtpjiineotit ') <O y; bad_end = true: break: l if (strcmp (buf, ". \ r \ n") == 0) break; / * lfthe line isjust skip the fi rst * / if (strcmp (buf. ".. \ r \ n") == 0) buf_save = & buf [l l; else buf_save = buf; luxnplO_fpt1ts (buf_save. f); f itI bad_end) break: fclose (tmp_f); rename_in_ternp fi le (tmp_name 7); nprintf (n. "250 OK \ r \ n"); connnue; ll else ifl strcmp (tmpl. "TURN" lfi) -1 ifl state == ST_itp'P'li_l'OKEN) {state = ST_lvlAlL_OUT: nprintfl n. "250 turning (sendmg mail to client) \ r \ n" l: / * Fall thru to the end ofthe main ifstateinent * i else l nprintf (n. "S01 Unexpected TURN comxna | 1d = ~ r * n"): continue: ill else if (strcmp (tmpl, "QUIT" == 0) {nprintf (n. "221 closing \ r \ n"); break; l else {nprintf (n. "S00 Command unrecognized \ r \ n"); continue; l if (state == ST_MAIL_OUT) {int reply; process_queue_for_user (user, n); state = ST_MAIL_IN; nprintf (n, "TURN \ r \ n"); if ((reply = read__smtp_reply (n, buf, sizeof (buf))) <O) break; if (REPLY_OK (reply )) {continue;} / * client has no email to send to me! * / nprintf (n, "QUl" f \ r \ n "); 514 7-69 break;} nprintf (n," 200 So long and thanks for all the fi sh. \ r \ n "); nc | ose (n); logit (lNFO," end of process_smtp ");} bool process_state (int state, NET n, char * buf, char * addr) l if (state == ST_HELO) {nprintf (n, "250 \ vatcha! \ r \ n"); return true;} if (stat e == ST_MAIL_CLIENT_VERS) {strcpy (client_version, addr); authenticated = false; nprintf (n, "250 thanks for the client version:
Claims (20)
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9902746A SE514769C2 (en) | 1999-07-16 | 1999-07-16 | Methods and systems for authenticating a mobile communication device |
CNB008130310A CN1153501C (en) | 1999-07-16 | 2000-07-04 | A method and a system for authenticating a mobile communication device |
PCT/SE2000/001418 WO2001006805A1 (en) | 1999-07-16 | 2000-07-04 | A method and a system for authenticating a mobile communication device |
AU61922/00A AU6192200A (en) | 1999-07-16 | 2000-07-04 | A method and a system for authenticating a mobile communication device |
JP2001510503A JP2003504773A (en) | 1999-07-16 | 2000-07-04 | Method and system for authenticating a mobile communication device |
EP00948441A EP1195071A1 (en) | 1999-07-16 | 2000-07-04 | A method and a system for authenticating a mobile communication device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9902746A SE514769C2 (en) | 1999-07-16 | 1999-07-16 | Methods and systems for authenticating a mobile communication device |
Publications (3)
Publication Number | Publication Date |
---|---|
SE9902746D0 SE9902746D0 (en) | 1999-07-16 |
SE9902746L SE9902746L (en) | 2001-01-17 |
SE514769C2 true SE514769C2 (en) | 2001-04-23 |
Family
ID=20416536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE9902746A SE514769C2 (en) | 1999-07-16 | 1999-07-16 | Methods and systems for authenticating a mobile communication device |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1195071A1 (en) |
JP (1) | JP2003504773A (en) |
CN (1) | CN1153501C (en) |
AU (1) | AU6192200A (en) |
SE (1) | SE514769C2 (en) |
WO (1) | WO2001006805A1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2842055B1 (en) * | 2002-07-05 | 2004-12-24 | Nortel Networks Ltd | METHOD FOR CONTROLLING ACCESS TO A CELLULAR RADIO COMMUNICATION SYSTEM THROUGH A WIRELESS LOCAL AREA NETWORK, AND CONTROL MEMBER FOR IMPLEMENTING THE METHOD |
US20070093259A1 (en) * | 2005-10-26 | 2007-04-26 | Hyatt Edward C | Methods, systems, and computer program products for secured access to list server information via SMS messaging |
US8943560B2 (en) | 2008-05-28 | 2015-01-27 | Microsoft Corporation | Techniques to provision and manage a digital telephone to authenticate with a network |
CN108920629B (en) * | 2018-06-29 | 2021-10-26 | 郑州云海信息技术有限公司 | ACL permission setting method, device, equipment and medium of file system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE503752C2 (en) * | 1995-08-30 | 1996-08-26 | Sendit Ab | Systems and host device for transmission of electronic mail over a mobile telephone network |
US5699428A (en) * | 1996-01-16 | 1997-12-16 | Symantec Corporation | System for automatic decryption of file data on a per-use basis and automatic re-encryption within context of multi-threaded operating system under which applications run in real-time |
US5736932A (en) * | 1996-07-03 | 1998-04-07 | At&T Corp | Security for controlled access systems |
JPH10215488A (en) * | 1997-01-31 | 1998-08-11 | Nec Corp | Host access method in mobile radio system |
DE69841918D1 (en) * | 1997-07-30 | 2010-11-11 | Visto Corp | SYSTEM AND METHOD FOR GLOBAL AND SECURE ACCESS TO UNITED INFORMATION IN A COMPUTER NETWORK |
-
1999
- 1999-07-16 SE SE9902746A patent/SE514769C2/en not_active IP Right Cessation
-
2000
- 2000-07-04 EP EP00948441A patent/EP1195071A1/en not_active Withdrawn
- 2000-07-04 AU AU61922/00A patent/AU6192200A/en not_active Abandoned
- 2000-07-04 CN CNB008130310A patent/CN1153501C/en not_active Expired - Fee Related
- 2000-07-04 JP JP2001510503A patent/JP2003504773A/en not_active Withdrawn
- 2000-07-04 WO PCT/SE2000/001418 patent/WO2001006805A1/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
SE9902746D0 (en) | 1999-07-16 |
WO2001006805A1 (en) | 2001-01-25 |
AU6192200A (en) | 2001-02-05 |
SE9902746L (en) | 2001-01-17 |
EP1195071A1 (en) | 2002-04-10 |
CN1153501C (en) | 2004-06-09 |
CN1375173A (en) | 2002-10-16 |
JP2003504773A (en) | 2003-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Andy et al. | Attack scenarios and security analysis of MQTT communication protocol in IoT system | |
CN101390064B (en) | Preventing network reset denial of service attacks using embedded authentication information | |
CN1954545A (en) | Using TCP to authenticate IP source addresses | |
CN111183619B (en) | Data sending method, device connecting method, device and system, and device connecting method, device and system | |
US20070050630A1 (en) | Authentication method and system for asynchronous eventing over the internet | |
CN101789947A (en) | Method and firewall for preventing HTTP POST flooding attacks | |
US7747694B2 (en) | Low latency and assured delivery using HTTP | |
WO2007030238A2 (en) | Distributed authentication functionality | |
EP3375133B1 (en) | Method for securing and authenticating a telecommunication | |
JP2012034396A (en) | Method and device for reducing e-mail spam and virus distribution in communication network by authenticating e-mail message source | |
CN100541437C (en) | Prevent network reset denial of service attacks | |
CN112751870A (en) | NFS (network file system) safety transmission device and method based on proxy forwarding | |
US8453229B2 (en) | Push type communications system | |
SE514769C2 (en) | Methods and systems for authenticating a mobile communication device | |
EP1370046A1 (en) | Method based on border gateway protocol message for controlling messages security protection | |
CN101167331B (en) | Method, system and device for transferring network event log protocol message | |
WO2023151445A1 (en) | Information processing method, gateway and communication system | |
US9641533B2 (en) | System and method for trusted pair security | |
CN105306458B (en) | Authentication method and device based on network access security equipment | |
Abdulmohsin | Design and implementation a server receiving data in both forms TCP and UDP through the same port and its impact on the network performance | |
Blundo et al. | Certified email: Design and implementation of a new optimistic protocol | |
Avenido et al. | Interoperable system with authentication and authorization for IoT | |
Thomas | On the problem of signature authentication for network mail | |
Leshchenko et al. | Model of a Subsystem for Securing E-Mail Against Loss using Mail Transport Agents based on Containerized Environments | |
Sureswaran et al. | Active E-mail system protocols monitoring algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NUG | Patent has lapsed |